30const int kRoomStructSize = 104;
40 void clearTalkingAnims();
42 void clearRoomStickerPixels();
43 void loadRoomMetadata(
Common::File *roomFile,
int roomNumber);
52 void loadRoomTalkingAnimations(
int roomNumber);
53 void getPalette(
Common::File *roomFile,
int roomOffset,
byte *palette);
54 void getBackground(
Common::File *roomFile,
int roomOffset,
byte *background);
55 void loadWaterPaletteRemap();
58 void addSticker(
int stickerId,
int persist = PERSIST_BOTH);
59 void addStickerToRoom(
byte room,
int stickerId,
int persist = PERSIST_BOTH);
61 void removeSticker(
int stickerId);
62 void removeStickerFromRoom(
byte room,
int stickerId);
64 bool hasSticker(
int index);
65 bool hasSticker(
byte room,
int index);
67 void changeExit(
byte index,
bool enabled,
int persist = PERSIST_BOTH);
68 void changeExit(
byte room,
byte index,
bool enabled,
int persist = PERSIST_BOTH);
70 void disableExit(
byte index,
int persist = PERSIST_BOTH);
71 void disableExit(
byte room,
byte index,
int persist = PERSIST_BOTH);
72 void enableExit(
byte index,
int persist = PERSIST_BOTH);
73 void enableExit(
byte room,
byte index,
int persist = PERSIST_BOTH);
75 void changeWalkBox(
WalkBox walkbox,
int persist = PERSIST_BOTH);
76 void changeWalkbox(
byte room,
WalkBox walkbox,
int persist = PERSIST_BOTH);
78 void changeHotSpot(
HotSpot hotspot,
int persist = PERSIST_BOTH);
79 void changeHotspot(
byte room,
HotSpot hotspot,
int persist = PERSIST_BOTH);
81 void disableSprite(
byte spriteIndex,
int persist = PERSIST_BOTH);
82 void disableSprite(
byte roomNumber,
byte spriteIndex,
int persist = PERSIST_BOTH);
83 void enableSprite(
byte spriteIndex,
byte zOrder,
int persist = PERSIST_BOTH);
84 void enableSprite(
byte roomNumber,
byte spriteIndex,
byte zOrder,
int persist = PERSIST_BOTH);
91 void disableHotspot(
HotSpot *hotspot,
int persist = PERSIST_BOTH);
92 void disableHotspot(
byte room,
HotSpot *hotspot,
int persist = PERSIST_BOTH);
94 void moveHotspot(
HotSpot *hotspot, int16 newX, int16 newY,
int persist = PERSIST_BOTH);
95 void moveHotspot(
byte room,
HotSpot *hotspot, int16 newX, int16 newY,
int persist = PERSIST_BOTH);
96 void setActionMask(
HotSpot *hotspot,
byte actionMask,
int persist = PERSIST_BOTH);
98 void addWalkbox(
WalkBox walkbox,
int persist = PERSIST_BOTH);
99 void addWalkbox(
byte room,
WalkBox walkbox,
int persist = PERSIST_BOTH);
101 void applyDisabledChoices(
byte roomNumber,
byte *conversationData,
size_t conversationDataSize);
102 void applyDisabledChoice(
ResetEntry entry,
byte *conversationData,
size_t conversationDataSize);
110 Sprite *findSpriteByIndex(
byte index);
111 Sprite *findSpriteByExtra(int16 extra);
112 HotSpot *findHotspotByIndex(
byte index);
113 HotSpot *findHotspotByExtra(uint16 extra);
114 PaletteAnim *getPaletteAnimForRoom(
int roomNumber);
116 byte _currentRoomNumber = 0;
117 int _prevRoomNumber = -1;
126 byte *_pixelsShadows =
nullptr;
127 byte _roomPalette[768];
128 byte _paletteRemaps[5][256];
129 byte _musicTrack = 0;
133 byte *_conversationData =
nullptr;
134 size_t _conversationDataSize = 0;
137 uint32 _conversationOffset;
141 void loadAnimationPixelData(
Common::File *roomFile,
int roomOffset,
byte *&buffer,
size_t &outSize);
142 void loadRoomAnimations(
byte *pixelData,
size_t pixelDataSize,
byte *data,
size_t size);
143 void loadHotspots(
byte *data,
size_t size);
144 void loadExits(
byte *data,
size_t size);
146 void loadWalkboxes(
byte *data,
size_t size);
148 void loadConversationData(
byte *pair12data,
size_t pair12size, uint32 startPos,
size_t &outConversationDataSize,
byte *&outConversationData);
149 void resetConversationStates(
byte roomNumber,
byte *conversationData,
size_t conversationDataSize);
150 void resetMetadataDefaults(
byte room,
byte *&data,
size_t size);
152 byte *loadShadowMap(
int roomNumber);
153 void loadRemaps(
int roomNumber);
155 byte loadMusicTrackForRoom(
Common::File *roomFile,
int roomOffset);
158 byte *_resetData =
nullptr;
Common::Array< HotSpot > unifyHotspots(Common::Array< Pelrock::Sprite > &anims, Common::Array< Pelrock::HotSpot > &staticHotspots)
RoomPasserBys * loadPasserByAnims(int roomNumber)
void enableHotspot(HotSpot *hotspot, int persist=3)
bool isPickableByExtra(uint16 extra)
void addSticker(int stickerId, int persist=3)
Definition: algorithm.h:29