#pragma once #include "../types.hpp" #include "GlobalPlayerBD.hpp" struct IMPOUND_VEHICLE_INFO { SCR_INT ImpoundId; SCR_BOOL OccupiedCheckDone; SCR_INT EntityAreaHandle; SCR_INT TimeCreated; }; static_assert(sizeof(IMPOUND_VEHICLE_INFO) == 4 * 8); struct CEO_COLOR { PLAYER_INDEX Owner; SCR_INT Color; }; static_assert(sizeof(CEO_COLOR) == 2 * 8); struct CEO_COLORS { SCR_ARRAY CeoColorIndices; SCR_ARRAY CeoColorIndices2; SCR_ARRAY CeoColors; SCR_INT PAD_0065; uint64_t PAD_0066[19]; SCR_INT PAD_0085; // added b3095 ("Press ~INPUT_CONTEXT~ to contact Jamal and begin stealing bolt cutters for The Cargo Ship Robbery" mission variation) }; static_assert(sizeof(CEO_COLORS) == 86 * 8); struct SMPL_INTERIOR_DATA_SERVER { SCR_INT PAD_0000; // unused SCR_ARRAY PlayerInteriorInstances; SCR_ARRAY PlayerInteriorIds; // used solely for telemetry SCR_INT PlayerInteriorCreationRequestBitset; SCR_ARRAY PlayerOwnerBitset; SCR_INT PlayerInteriorRemovalRequestBitset; SCR_ARRAY PlayerInteriorCreationTimes; SCR_ARRAY PlayerInteriorSimpleInteriorTypes; SCR_ARRAY PlayerInteriorIsOwnerless; SCR_ARRAY PlayerInteriorOwners; }; static_assert(sizeof(SMPL_INTERIOR_DATA_SERVER) == 234 * 8); struct LEAVE_CLUBHOUSE_SERVER { SCR_ARRAY Identifiers; SCR_ARRAY ExitLocations; SCR_ARRAY ExitLocationSlots; }; static_assert(sizeof(LEAVE_CLUBHOUSE_SERVER) == 99 * 8); struct IE_DELIVERY_INFO { PLAYER_INDEX Player_; SCR_HASH VehicleModel; PLAYER_INDEX ContrabandOwner; SCR_INT TimeCreated; SCR_BOOL PAD_0004; }; static_assert(sizeof(IE_DELIVERY_INFO) == 5 * 8); struct GSBD { alignas(8) eFreemodeState FreemodeState; SCR_INT SessionToken; // time when freemode had started for the script host SCR_ARRAY ImpoundVehicleInfos; SCR_ARRAY SpawnPositions; SCR_ARRAY SpawnPositionCreationTimes; SCR_ARRAY SpawnPositionsValid; SCR_ARRAY PAD_0294; SCR_ARRAY SpawnPositionTokens; SCR_INT SpawnPositionCounter; SCR_ARRAY RespawnVehicles; SCR_ARRAY RespawnVehicleSeats; SCR_ARRAY MorsMutualSpawnSlots; SCR_INT MorsMutualSpawnPlayersBitset; uint64_t PAD_0461[353]; // TODO SCR_BOOL CopTimerOn; // cut CnC content SCR_BOOL CrookTimerOn; SCR_BOOL PAD_0816; // always set to FALSE SCR_INT PAD_0817; // unused CEO_COLORS CeoColors; SMPL_INTERIOR_DATA_SERVER SimpleInteriorData; LEAVE_CLUBHOUSE_SERVER LeaveClubhouse; SCR_ARRAY IEDeliveryInfos; SCR_INT PAD_1397; NETWORK_INDEX IAATurretCameraVehicleId; // used by DDH act 1 uint64_t PAD_1399[97]; SCR_INT CayoPericoStrandedAnimalChoice; }; static_assert(sizeof(GSBD) == 1498 * 8);