B1CityTravelData
- State of a single in-progress city travel. It is saved, so fields are kept minimal.
* The same-city flag, number of nights, fare, etc. are not stored; they are derived or deferred to a later phase.
| Property | Type | Description | Metadata |
|---|---|---|---|
| TravelCityName | FName | Travel destination city. | |
| PossessedHomeCity | FName | Homecoming target = departure city. | |
| PossessedEntityId | FB1EntityId | The possessed (representative) character at departure. Basis for restoring possession after arrival. | |
| Companions | TArray | Up to 8 members, including the possessed representative. | |
| PseudoSimulatedCarryEntityIds | TArray | Pseudo-simulated characters carried for this travel, tracked per travel so teardown does not depend on the cumulative AlwaysLoaded set. | |
| LodgingSiteId | FName | Reserved lodging site (Site table row id). This is the check-in argument plus a record for arrival spawning, not the source for residence routing (routing is handled by the accommodation buff -> GetHomeSite). At reservation time the destination city is unloaded so no Site entity exists; hence referenced by FName, not EntityId. | |
| RoomPurposeId | FName | Reserved room within the lodging site. With LodgingSiteId it forms the accommodation RoomKey {AccommodationDtId=LodgingSiteId, RoomPurposeId}. Set by the lodging-room selection UI; EntireSite means the whole site. | |
| CheckOutTicks | int64 | Absolute time of automatic check-out (homecoming). The only time field; basis for re-registering the timer on save restore. | |
| bIsNewCity | bool | Whether the destination was a first-visit (new) city, captured at departure (CheckNewCity). On revisit arrival the first-visit game-start wake (InduceGameStartForCityTransfer) is skipped, so this is used to force-realize the possessed character there. (BL-59215) | |
| Nights | int32 | Total booked nights (updated on stay extension). Basis for the extension cap: max stay days - current nights. |