HoverRace
2.0
|
Represents all objects (wall, floor, ceiling, etc.) that can be found in a maze. More...
#include <MazeElement.h>
Public Member Functions | |
Element (const Util::ObjectFromFactoryId &id) | |
virtual | ~Element () |
virtual void | AddRenderer () |
virtual void | ApplyEffect (const ContactEffect *pEffect, MR_SimulationTime pTime, MR_SimulationTime pDuration, BOOL pValidDirection, MR_Angle pHorizontalDirection, MR_Int32 pZMin, MR_Int32 pZMax, Track &track) |
void | ApplyEffects (const ContactEffectList *pList, MR_SimulationTime pTime, MR_SimulationTime pDuration, BOOL pValidDirection, MR_Angle pHorizontalDirection, MR_Int32 pZMin, MR_Int32 pZMax, Track &track) |
virtual const ContactEffectList * | GetEffectList () |
void | Serialize (Parcel::ObjStream &) overridefinal |
![]() | |
ObjectFromFactory (const ObjectFromFactoryId &pId) noexcept | |
virtual | ~ObjectFromFactory () |
const ObjectFromFactoryId & | GetTypeId () const noexcept |
Private Types | |
using | SUPER = Util::ObjectFromFactory |
Additional Inherited Members | |
![]() | |
template<class T > | |
static void | SerializeShared (Parcel::ObjStream &archive, typename std::enable_if< std::is_base_of< ObjectFromFactory, T >::value, std::shared_ptr< T >>::type &obj) |
Serialize a shared pointer to a serializable object. More... | |
Represents all objects (wall, floor, ceiling, etc.) that can be found in a maze.
There are two kinds of elements, the surface elements and the free elements. Surface elements have a geometry based on the maze geometry. That means that a wall element contains no geometry, its geometry is defined by the surface of the maze that it is attached to.
Free elements are monsters, furniture, etc. They contain their own geometry but they do not contain their position or orientation.
Elements are formed from components. There are two kinds of components in an element, the logic component and the rendering component. The logic component owns the part of the object that is responsible of the logic simulation of the element. The rendering component contains the data needed for the rendering of the object (usually this component is empty).
Data that is shared by the two possible components is stored directly in the element body.
|
private |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in HoverRace::MainCharacter::MainCharacter.
|
inlinevirtual |
|
inline |
|
inlinevirtual |
Reimplemented in HoverRace::MainCharacter::MainCharacter, HoverRace::ObjFac1::BitmapSurface, HoverRace::ObjFac1::TestElement, HoverRace::ObjFac1::Missile, HoverRace::ObjFac1::FinishLine, HoverRace::ObjFac1::BumperGate, HoverRace::ObjFac1::DoubleSpeedSource, HoverRace::ObjFac1::FuelSource, HoverRace::ObjFac1::Mine, and HoverRace::ObjFac1::PowerUp.
|
inlinefinaloverridevirtual |
Implements HoverRace::Util::ObjectFromFactory.