22#ifndef DARKSEED_ROOM_H
23#define DARKSEED_ROOM_H
25#include "common/rect.h"
26#include "darkseed/nsp.h"
27#include "darkseed/pal.h"
28#include "darkseed/pic.h"
38 uint16 roomNumber = 0;
58 bool _palLoaded =
false;
61 static constexpr int MAX_CONNECTORS = 12;
75 uint16 _selectedObjIndex = 0;
76 int16 _collisionType = 0;
78 explicit Room(
int roomNumber);
85 int checkCursorAndMoveableObjects();
86 int checkCursorAndStaticObjects(
int x,
int y);
87 int CheckCursorAndMovedObjects();
88 int getRoomExitAtCursor();
89 void getWalkTargetForObjectType_maybe(
int objId);
90 int getObjectUnderCursor();
91 uint16 getDoorTargetRoom(
int objId);
92 int getExitRoomNumberAtPoint(
int x,
int y);
95 bool canWalkAtLocation(
int x,
int y);
96 bool canWalkInLineToTarget(
int x,
int y,
int targetX,
int targetY);
97 void printRoomDescriptionText()
const;
98 void calculateScaledSpriteDimensions(
int width,
int height,
int curYPosition);
99 bool isOutside()
const;
101 void runRoomObjects();
102 void removeObjectFromRoom(int16 objNum);
103 void updateRoomObj(int16 objNum, int16 x, int16 width, int16 y, int16 height);
104 bool advanceFrame(
int animIdx);
105 void mikeStickThrowAnim();
106 void loadRoom61AWalkableLocations();
107 void restorePalette();
108 void installPalette();
112 static MusicId getMusicIdForRoom(uint8 roomNumber);
113 void loadRoomMusic();
119 void advanceLocAnimFrame(
int roomObjIdx);
120 void dosDemoFixupRoomObjects();