28 #if defined(_WIN32) && defined(HR_ENGINE_SHARED) 30 # define MR_DllDeclare __declspec( dllexport ) 32 # define MR_DllDeclare __declspec( dllimport ) 35 # define MR_DllDeclare 39 #define MR_NB_MAX_PLAYER 32 40 #define MR_NB_PERNET_ACTORS 512 43 #define OPT_ALLOW_WEAPONS 0x40 44 #define OPT_ALLOW_MINES 0x20 45 #define OPT_ALLOW_CANS 0x10 46 #define OPT_ALLOW_BASIC 0x08 47 #define OPT_ALLOW_BI 0x02 48 #define OPT_ALLOW_CX 0x04 49 #define OPT_ALLOW_EON 0x01 84 enum { eNonClassified = -1, eMustBeDeleted = -2 };
181 MR_Int32 X(
int pIndex)
const override {
return section->mVertexList[pIndex].mX ; }
182 MR_Int32 Y(
int pIndex)
const override {
return section->mVertexList[pIndex].mY; }
240 void (*mElementCreationBroadcastHook) (
FreeElement *pElement,
int pRoom,
void *pHookData);
241 void (*mPermElementStateBroadcastHook) (
FreeElement *pElement,
int pRoom,
int pPermId,
void *pHookData);
245 int GetRealRoomRecursive(
const MR_2DCoordinate &pPosition,
int pOriginalSection,
int = -1)
const;
248 Level(
Track &track, BOOL pAllowRendering = FALSE,
char pGameOpts = 1);
255 void SetBroadcastHook(
264 int GetRoomCount()
const;
267 int GetPlayerCount()
const;
268 int GetPlayerTeam(
int pPlayerId)
const;
269 int GetStartingRoom(
int pPlayerId)
const;
271 MR_Angle GetStartingOrientation(
int pPlayerId)
const;
275 MR_Int32 GetRoomWallLen(
int pRoomId,
int pVertex)
const;
276 MR_Int32 GetRoomBottomLevel(
int pRoomId)
const;
277 MR_Int32 GetRoomTopLevel(
int pRoomId)
const;
279 int GetRoomVertexCount(
int pRoomId)
const;
282 MR_Int32 GetFeatureWallLen(
int pFeatureId,
int pVertex)
const;
283 MR_Int32 GetFeatureBottomLevel(
int pFeatureId)
const;
284 MR_Int32 GetFeatureTopLevel(
int pFeatureId)
const;
285 const MR_2DCoordinate &GetFeatureVertex(
int pFeatureId,
int pVertex)
const;
286 int GetFeatureVertexCount(
int pFeatureId)
const;
288 const int *GetVisibleZones(
int pRoomId,
int &pNbVisibleZones)
const;
289 int GetNbVisibleSurface(
int pRoomId)
const;
290 const SectionId *GetVisibleFloorList(
int pRoomId)
const;
291 const SectionId *GetVisibleCeilingList(
int pRoomId)
const;
292 int GetNeighbor(
int pRoomId,
int pVertex)
const;
293 int GetParent(
int pFeatureId)
const;
294 int GetFeatureCount(
int pRoomId)
const;
295 int GetFeature(
int pRoomId,
int pChildIndex)
const;
297 SurfaceElement *GetRoomWallElement(
int pRoomId,
size_t pVertex)
const;
301 SurfaceElement *GetFeatureWallElement(
int pFeatureId,
size_t pVertex)
const;
315 int pNewRoom, BOOL Broadcast = FALSE);
319 void SetPermElementPos(
int pPermElement,
int pRoom,
const MR_3DCoordinate &pNewPos);
320 void FlushPermElementPosCache();
323 int FindRoomForPoint(
const MR_2DCoordinate &pPosition,
int pStartingRoom)
const;
327 BOOL GetRoomWallContactOrientation(
int pRoom,
int pWall,
const ShapeInterface *pShape,
MR_Angle &pAnswer);
FreeElementList * mFreeElementNonClassifiedList
Definition: Level.h:228
int VertexCount() const override
Definition: Level.h:179
Track & track
Definition: Level.h:334
MR_Int32 YMin() const override
Definition: Level.h:174
std::shared_ptr< SurfaceElement > mCeilingTexture
Definition: Level.h:104
MR_2DCoordinate mMax
Definition: Level.h:99
std::vector< std::shared_ptr< SurfaceElement > > mWallTexture
Definition: Level.h:102
int mNbPlayer
Definition: Level.h:221
eSectionType
Definition: Level.h:66
Room * mRoomList
Definition: Level.h:213
Level
Definition: Log.h:62
Section * section
Definition: Level.h:186
MR_2DCoordinate mMin
Definition: Level.h:98
Definition: WorldCoordinates.h:46
#define MR_NB_PERNET_ACTORS
Definition: Level.h:40
eSectionType mType
Definition: Level.h:68
FreeElementList()
Definition: Level.h:192
MR_Int32 YMax() const override
Definition: Level.h:175
#define MR_NB_MAX_PLAYER
Definition: Level.h:39
int mNbPermNetActor
Definition: Level.h:231
int mSectionSource
Definition: Level.h:132
char mGameOpts
Definition: Level.h:218
int mPermActorCacheCount
Definition: Level.h:235
void * mBroadcastHookData
Definition: Level.h:242
Definition: MazeElement.h:128
Definition: WorldCoordinates.h:75
AudibleRoom * mAudibleRoomList
Definition: Level.h:156
MR_Int16 MR_Angle
Definition: WorldCoordinates.h:96
SectionId * mVisibleFloorList
Definition: Level.h:152
MR_Int32 XMax() const override
Definition: Level.h:173
int mNbVisibleRoom
Definition: Level.h:147
int mNbChild
Definition: Level.h:139
Feature * mFeatureList
Definition: Level.h:216
MR_Int32 mFloorLevel
Definition: Level.h:92
int mParentSectionIndex
Definition: Level.h:116
Definition: MazeElement.h:151
int * mVisibleRoomList
Definition: Level.h:148
FreeElementList * mNext
Definition: Level.h:204
int mNbVertexSources
Definition: Level.h:133
int mNbAudibleRoom
Definition: Level.h:155
Base class for parcel serializers.
Definition: ObjStream.h:58
A track level.
Definition: Track.h:57
int * mNeighborList
Definition: Level.h:142
int32_t MR_Int32
Definition: MR_Types.h:43
int mNbRoom
Definition: Level.h:212
FreeElementList ** mFreeElementClassifiedByRoomList
Definition: Level.h:229
MR_Int32 ZMin() const override
Definition: Level.h:176
int mNbVisibleSurface
Definition: Level.h:151
MR_Int32 * mWallLen
Definition: Level.h:95
int mNbVertex
Definition: Level.h:89
MR_Int32 X(int pIndex) const override
Definition: Level.h:181
BOOL mAllowRendering
Definition: Level.h:210
MR_Int32 Y(int pIndex) const override
Definition: Level.h:182
FreeElementList ** mPrevLink
Definition: Level.h:203
BYTE * mSoundCoefficient
Definition: Level.h:135
MR_Int32 ZMax() const override
Definition: Level.h:177
MR_FreeElementHandleClass * MR_FreeElementHandle
Definition: MazeElement.h:51
int * mVertexList
Definition: Level.h:134
Definition: Announcement.h:24
std::shared_ptr< SurfaceElement > mFloorTexture
Definition: Level.h:103
#define MR_DllDeclare
Definition: Level.h:35
MR_Int32 XMin() const override
Definition: Level.h:172
SectionId * mVisibleCeilingList
Definition: Level.h:153
MR_Int32 SideLen(int pIndex) const override
Definition: Level.h:183
MR_2DCoordinate * mVertexList
Definition: Level.h:94
int mNbFeature
Definition: Level.h:215
MR_Int32 mId
Definition: Level.h:69
std::shared_ptr< FreeElement > mElement
Definition: Level.h:205
SectionShape(Section *section)
Definition: Level.h:170
int * mChildList
Definition: Level.h:140
MR_Int32 mCeilingLevel
Definition: Level.h:93