- summary: One room of the player's haven bag: which room it is, and the theme currently applied to it.
- area: Game.Haven.Bag
One room of the player's haven bag: which room it is, and the theme currently applied to it.
Kind struct · Area Game.Haven.Bag
A room and its theme. Both members are plain integers and they are easy to swap, so the distinction matters: the room is WHICH ROOM, and the theme is WHAT IT LOOKS LIKE.
THE ROOM IS THE IDENTITY, THE THEME IS THE PAYLOAD. When the server amends the list rather than resending it, the real client finds the room it already holds with the matching room id and overwrites only that room's theme. Nothing else about the entry is kept. Treat the room id as a key and the theme as the mutable value, and the amending form works; treat them the other way round and every update lands on the wrong room.
Both are opaque ids into the client's own data files - the theme id resolves to a haven bag theme, and the room id numbers the rooms of the bag. Neither is a display value.
Not sent on its own — it is only ever an element of HavenBagRoomUpdateEvent.preview. inferred
Used by
Fields
| # | Field | Type | Meaning | You set it |
|---|---|---|---|---|
| 1 | room_id | int32 | Which room of the haven bag this entry is about. (room id) This is the key. On the amending form the client matches on it and leaves everything else alone, so an entry whose room id you do not recognise is a new room rather than a correction. | never; inbound only |
| 2 | theme_id | int32 | The theme currently applied to that room. (haven bag theme id) This is the mutable half: it is the only thing an amendment overwrites on a room you already hold. | never; inbound only |