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 ShapeInterfaceGetGivingContactEffectShape ()
 Get the shape that gives an effect when touching while moving. More...
 
virtual ElementNetState GetNetState () const
 
virtual const ShapeInterfaceGetObstacleShape ()
 Get the shape that stops other elements' movement. More...
 
virtual const ShapeInterfaceGetReceivingContactEffectShape ()
 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 ContactEffectListGetEffectList ()
 
void Serialize (Parcel::ObjStream &) overridefinal
 
- Public Member Functions inherited from HoverRace::Util::ObjectFromFactory
 ObjectFromFactory (const ObjectFromFactoryId &pId) noexcept
 
virtual ~ObjectFromFactory ()
 
const ObjectFromFactoryIdGetTypeId () 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: