Class "RoomDescriptor"⚓︎
Variables⚓︎
Allowed·Doors⚓︎
DoorSet AllowedDoors⚓︎
Contains just on load swapped data (in cases like minibosses, or other such events)
Award·Seed⚓︎
int AwardSeed⚓︎
used to spawn clear awards (normal, miniboss, boss rooms) and initialize shop items (shop, devil rooms)
Challenge·Done⚓︎
boolean ChallengeDone⚓︎
Clear⚓︎
boolean Clear⚓︎
Clear·Count⚓︎
int ClearCount⚓︎
room is clear, don't spawn enemies when visiting
Data⚓︎
RoomConfig Room Data⚓︎
Decoration·Seed⚓︎
int DecorationSeed⚓︎
used for cosmetic stuff like backdrops, room decorations, shopkeeper skins
Delirium·Distance⚓︎
int DeliriumDistance⚓︎
Helper for The Void stage, holds the distance to the Delirium boss in room nr.
Display·Flags⚓︎
int DisplayFlags⚓︎
Indicates what is visible on the minimap. Display Flags (bitwise):
1 2 3 4 |
|
Examples
The flags are hard to interpret, but here are some examples:
000 = invisible, this is how most rooms start
101 = standard room visibility, this includes rooms that are adjacent and you haven't actively visited. This will usually show icons.
011 = secret room, locked rooms, sac rooms pre-entry*
111 = 011 rooms after entry, but also the rooms directly adjacent to them* (applied after entry)
* If you have spelunker's hat, bit 1 is completely unused. All special rooms will have the normal behavior of either 000 or 101. iirc this is unique to spelunker's hat, mapping items follow the normal rules.
Quote from User 'Budj'
From this my best guess is that bits 1 and 2 are special rendering (display) flags that may have more meaning down below.
The important bit for using them is minding that they're used differently mostly for special rooms.
As far as I've seen, 001 is completely unused. 010, 100, and 110 may be used for compass or blue map, I don't remember. I think they use 100
Grid·Index⚓︎
int GridIndex⚓︎
index in the level grid (always top left)
Notes
This will always return the top left coordinate of the room on the levelgrid. Therefore, it will return an index not part of the actual room, when checking this value for J-shaped rooms. (See graphic below)
Has·Water⚓︎
boolean HasWater⚓︎
List·Index⚓︎
int ListIndex⚓︎
index in the room list
No·Reward⚓︎
boolean NoReward⚓︎
Override·Data⚓︎
RoomConfig Room OverrideData⚓︎
Tim's reminder to himself: The room variant is in Data. Because Room::Init uses a mix of datas, one from level layout and one from replacement data like minibosses, we need to hold the new room data somewhere.
Pits·Count⚓︎
int PitsCount⚓︎
Poop·Count⚓︎
int PoopCount⚓︎
Pressure·Plates·Triggered⚓︎
boolean PressurePlatesTriggered⚓︎
Sacrifice·Done⚓︎
boolean SacrificeDone⚓︎
Safe·Grid·Index⚓︎
int SafeGridIndex⚓︎
index in the level grid (not always top left, but is guaranteed to point to the room. this is important for LTL shapes!)
Notes
This will always return the top left coordinate of the room on the levelgrid, except for J-shaped rooms, where it returns the top right index. (see graphic below)
Shop·Item·Discount·Idx⚓︎
int ShopItemDiscountIdx⚓︎
Shop·Item·Idx⚓︎
int ShopItemIdx⚓︎
Spawn·Seed⚓︎
int SpawnSeed⚓︎
used to spawn entities at room load and initialize enemy drop seeds
Surprise·Miniboss⚓︎
boolean SurpriseMiniboss⚓︎
Visited·Count⚓︎
int VisitedCount⚓︎
how often the room has been visited