HoverRace  2.0
Public Member Functions | Public Attributes | Private Types | List of all members
HoverRace::Model::FreeElement Class Reference

#include <MazeElement.h>

+ Inheritance diagram for HoverRace::Model::FreeElement:

Public Member Functions

 FreeElement (const Util::ObjectFromFactoryId &id={0, 0})
 
virtual ~FreeElement ()
 
virtual bool AssignPermNumber (int pNumber)
 Assign a permanent hook number. More...
 
virtual const ShapeInterface * GetGivingContactEffectShape ()
 Get the shape that gives an effect when touching while moving. More...
 
virtual ElementNetState GetNetState () const
 
virtual const ShapeInterface * GetObstacleShape ()
 Get the shape that stops other elements' movement. More...
 
virtual const ShapeInterface * GetReceivingContactEffectShape ()
 Get the shape that gives an effect when touched by a moving element. More...
 
virtual void PlayExternalSounds (int pDB, int pPan)
 
virtual void PlayInternalSounds ()
 
virtual void Render (VideoServices::Viewport3D *pDest, MR_SimulationTime pTime)
 
virtual void SetNetState (int pDataLen, const MR_UInt8 *pData)
 
virtual void SetOwnerId (int pOwnerId)
 
virtual int Simulate (MR_SimulationTime pTimeSlice, Track &track, int pRoom)
 Advance the simulation. More...
 
- Public Member Functions inherited from HoverRace::Model::Element
 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
 
- Public Member Functions inherited from HoverRace::Util::ObjectFromFactory
 ObjectFromFactory (const ObjectFromFactoryId &pId) noexcept
 
virtual ~ObjectFromFactory ()
 
const ObjectFromFactoryId & GetTypeId () const noexcept
 

Public Attributes

MR_Angle mOrientation
 
MR_3DCoordinate mPosition
 

Private Types

using SUPER = Element
 

Additional Inherited Members

- Static Public Member Functions inherited from HoverRace::Util::ObjectFromFactory
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...
 

Member Typedef Documentation

Constructor & Destructor Documentation

HoverRace::Model::FreeElement::FreeElement ( const Util::ObjectFromFactoryId &  id = { 0, 0 })
inline
virtual HoverRace::Model::FreeElement::~FreeElement ( )
inlinevirtual

Member Function Documentation

virtual bool HoverRace::Model::FreeElement::AssignPermNumber ( int  pNumber)
inlinevirtual

Assign a permanent hook number.

Parameters
pNumberThe hook number.
Returns
true if accepted, false otherwise.

Reimplemented in HoverRace::ObjFac1::Mine, and HoverRace::ObjFac1::PowerUp.

virtual const ShapeInterface* HoverRace::Model::FreeElement::GetGivingContactEffectShape ( )
inlinevirtual

Get the shape that gives an effect when touching while moving.

Returns
The shape, or nullptr if none.

Reimplemented in HoverRace::MainCharacter::MainCharacter, HoverRace::ObjFac1::TestElement, HoverRace::ObjFac1::Missile, HoverRace::ObjFac1::BumperGate, HoverRace::ObjFac1::Mine, and HoverRace::ObjFac1::PowerUp.

virtual ElementNetState HoverRace::Model::FreeElement::GetNetState ( ) const
inlinevirtual
virtual const ShapeInterface* HoverRace::Model::FreeElement::GetObstacleShape ( )
inlinevirtual

Get the shape that stops other elements' movement.

Returns
The shape, or nullptr if none.

Reimplemented in HoverRace::MainCharacter::MainCharacter, and HoverRace::ObjFac1::TestElement.

virtual const ShapeInterface* HoverRace::Model::FreeElement::GetReceivingContactEffectShape ( )
inlinevirtual
virtual void HoverRace::Model::FreeElement::PlayExternalSounds ( int  pDB,
int  pPan 
)
inlinevirtual
virtual void HoverRace::Model::FreeElement::PlayInternalSounds ( )
inlinevirtual
virtual void HoverRace::Model::FreeElement::Render ( VideoServices::Viewport3D *  pDest,
MR_SimulationTime  pTime 
)
inlinevirtual
virtual void HoverRace::Model::FreeElement::SetNetState ( int  pDataLen,
const MR_UInt8 *  pData 
)
inlinevirtual
virtual void HoverRace::Model::FreeElement::SetOwnerId ( int  pOwnerId)
inlinevirtual

Reimplemented in HoverRace::ObjFac1::Missile.

virtual int HoverRace::Model::FreeElement::Simulate ( MR_SimulationTime  pTimeSlice,
Track &  track,
int  pRoom 
)
inlinevirtual

Advance the simulation.

Parameters
pTimeSliceThe time slice to simulate over.
trackThe track.
pRoomThe room number.
Returns
The new room number.

Reimplemented in HoverRace::MainCharacter::MainCharacter, HoverRace::ObjFac1::Missile, HoverRace::ObjFac1::BumperGate, HoverRace::ObjFac1::Mine, HoverRace::ObjFac1::PowerUp, and HoverRace::ObjFac1::TestElement.

Member Data Documentation

MR_Angle HoverRace::Model::FreeElement::mOrientation
MR_3DCoordinate HoverRace::Model::FreeElement::mPosition

The documentation for this class was generated from the following file: