Files
2025-09-29 00:52:08 +02:00

457 lines
24 KiB
XML
Executable File

USING "rage_builtins.sch"
USING "globals.sch"
USING "commands_entity.sch"
// Do nothing in release mode
#IF IS_FINAL_BUILD
SCRIPT
ENDSCRIPT
#ENDIF
// Only include in debug mode
#IF IS_DEBUG_BUILD
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
//
// MISSION NAME : SP_Respawn_Debug.sch
// AUTHOR : Keith (copied from Kenneth's .sc file)
// DESCRIPTION : Contains any standard Respawn debug functionality.
// NOTES : Respawns are after being busted and wasted (police and hospital)
// after a game launch or a reload (savehouse) or on return from
// multiplayer.
//
// *****************************************************************************************
// *****************************************************************************************
// *****************************************************************************************
// NOTE: Only the respawn_controller will include this debug header file so it is okay for
// these variables to be loose rather than wrapped up in a struct.
CONST_INT RESPAWN_FLAG_ACTUAL 0
CONST_INT RESPAWN_FLAG_DEBUG 1
INT iCount
INT iSavehouseSelection = 0
INT iHospitalSelection = 0
INT iPoliceStationSelection = 0
BOOL bWarpToSavehouse = FALSE
BOOL bWarpToHospital = FALSE
BOOL bWarpToPoliceStation = FALSE
#if USE_CLF_DLC
BOOL bSavehouseAvailable[NUMBER_OF_CLF_SAVEHOUSE][2]
#endif
#if USE_NRM_DLC
BOOL bSavehouseAvailable[NUMBER_OF_NRM_SAVEHOUSE][2]
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
BOOL bSavehouseAvailable[NUMBER_OF_SAVEHOUSE_LOCATIONS][2]
#endif
#endif
BOOL bHospitalAvailable[NUMBER_OF_HOSPITAL_LOCATIONS][2]
BOOL bPoliceStationAvailable[NUMBER_OF_POLICE_STATION_LOCATIONS][2]
TEXT_LABEL_63 sText
#if USE_CLF_DLC
FUNC WIDGET_GROUP_ID SETUP_RESPAWN_CONTROL_WIDGETSCLF()
WIDGET_GROUP_ID respawn_widget_group = START_WIDGET_GROUP("Respawn Controller")
ADD_WIDGET_BOOL("g_bDebug_KeepRespawnControllerRunning", g_bDebug_KeepRespawnControllerRunning)
START_WIDGET_GROUP("Savehouses")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_CLF_SAVEHOUSE)-1)
ADD_TO_WIDGET_COMBO(Get_Savehouse_Respawn_Name(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Savehouses", iSavehouseSelection)
ADD_WIDGET_BOOL("Warp to selected savehouse", bWarpToSavehouse)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_CLF_SAVEHOUSE)-1)
sText = Get_Savehouse_Respawn_Name(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount))
sText += " Available"
bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Hospitals")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Hospital_Respawn_Name(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Hospitals", iHospitalSelection)
ADD_WIDGET_BOOL("Warp to selected hospital", bWarpToHospital)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1)
sText = Get_Hospital_Respawn_Name(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount))
sText += " Available"
bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Police Stations")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Police_Respawn_Name(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Police Stations", iPoliceStationSelection)
ADD_WIDGET_BOOL("Warp to selected police station", bWarpToPoliceStation)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1)
sText = Get_Police_Respawn_Name(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount))
sText += " Available"
bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Respawn Flags")
ADD_WIDGET_BOOL("bSeenFirstTimeWasted", g_savedGlobalsClifford.sRespawnData.bSeenFirstTimeWasted)
ADD_WIDGET_BOOL("bSeenFirstTimeDrowned", g_savedGlobalsClifford.sRespawnData.bSeenFirstTimeDrowned)
ADD_WIDGET_BOOL("bSeenFirstTimeBusted", g_savedGlobalsClifford.sRespawnData.bSeenFirstTimeBusted)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
RETURN respawn_widget_group
ENDFUNC
#endif
#if USE_NRM_DLC
FUNC WIDGET_GROUP_ID SETUP_RESPAWN_CONTROL_WIDGETSNRM()
WIDGET_GROUP_ID respawn_widget_group = START_WIDGET_GROUP("Respawn Controller")
ADD_WIDGET_BOOL("g_bDebug_KeepRespawnControllerRunning", g_bDebug_KeepRespawnControllerRunning)
START_WIDGET_GROUP("Savehouses")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_NRM_SAVEHOUSE)-1)
ADD_TO_WIDGET_COMBO(Get_Savehouse_Respawn_Name(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Savehouses", iSavehouseSelection)
ADD_WIDGET_BOOL("Warp to selected savehouse", bWarpToSavehouse)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_NRM_SAVEHOUSE)-1)
sText = Get_Savehouse_Respawn_Name(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount))
sText += " Available"
bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Hospitals")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Hospital_Respawn_Name(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Hospitals", iHospitalSelection)
ADD_WIDGET_BOOL("Warp to selected hospital", bWarpToHospital)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1)
sText = Get_Hospital_Respawn_Name(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount))
sText += " Available"
bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Police Stations")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Police_Respawn_Name(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Police Stations", iPoliceStationSelection)
ADD_WIDGET_BOOL("Warp to selected police station", bWarpToPoliceStation)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1)
sText = Get_Police_Respawn_Name(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount))
sText += " Available"
bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Respawn Flags")
ADD_WIDGET_BOOL("bSeenFirstTimeWasted", g_savedGlobalsnorman.sRespawnData.bSeenFirstTimeWasted)
ADD_WIDGET_BOOL("bSeenFirstTimeDrowned", g_savedGlobalsnorman.sRespawnData.bSeenFirstTimeDrowned)
ADD_WIDGET_BOOL("bSeenFirstTimeBusted", g_savedGlobalsnorman.sRespawnData.bSeenFirstTimeBusted)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
RETURN respawn_widget_group
ENDFUNC
#endif
FUNC WIDGET_GROUP_ID SETUP_RESPAWN_CONTROL_WIDGETS()
#if USE_CLF_DLC
RETURN SETUP_RESPAWN_CONTROL_WIDGETSCLF()
#endif
#if USE_NRM_DLC
RETURN SETUP_RESPAWN_CONTROL_WIDGETSNRM()
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
WIDGET_GROUP_ID respawn_widget_group = START_WIDGET_GROUP("Respawn Controller")
ADD_WIDGET_BOOL("g_bDebug_KeepRespawnControllerRunning", g_bDebug_KeepRespawnControllerRunning)
START_WIDGET_GROUP("Savehouses")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_SAVEHOUSE_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Savehouse_Respawn_Name(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Savehouses", iSavehouseSelection)
ADD_WIDGET_BOOL("Warp to selected savehouse", bWarpToSavehouse)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_SAVEHOUSE_LOCATIONS)-1)
sText = Get_Savehouse_Respawn_Name(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount))
sText += " Available"
bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Hospitals")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Hospital_Respawn_Name(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Hospitals", iHospitalSelection)
ADD_WIDGET_BOOL("Warp to selected hospital", bWarpToHospital)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1)
sText = Get_Hospital_Respawn_Name(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount))
sText += " Available"
bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobals.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobals.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Police Stations")
START_NEW_WIDGET_COMBO()
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1)
ADD_TO_WIDGET_COMBO(Get_Police_Respawn_Name(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount)))
ENDFOR
STOP_WIDGET_COMBO("Police Stations", iPoliceStationSelection)
ADD_WIDGET_BOOL("Warp to selected police station", bWarpToPoliceStation)
FOR iCount = 0 TO (ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1)
sText = Get_Police_Respawn_Name(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount))
sText += " Available"
bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobals.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobals.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
ADD_WIDGET_BOOL(sText, bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDFOR
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Respawn Flags")
ADD_WIDGET_BOOL("bSeenFirstTimeWasted", g_savedGlobals.sRespawnData.bSeenFirstTimeWasted)
ADD_WIDGET_BOOL("bSeenFirstTimeDrowned", g_savedGlobals.sRespawnData.bSeenFirstTimeDrowned)
ADD_WIDGET_BOOL("bSeenFirstTimeBusted", g_savedGlobals.sRespawnData.bSeenFirstTimeBusted)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
RETURN respawn_widget_group
#endif
#endif
ENDFUNC
PROC MAINTAIN_RESPAWN_CONTROL_WIDGETS()
////////////////////////////////////////////////////////////////////////
/// SAVEHOUSES
#if USE_CLF_DLC
IF bWarpToSavehouse
IF iSavehouseSelection < ENUM_TO_INT(NUMBER_OF_CLF_SAVEHOUSE)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), g_sSavehouses[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iSavehouseSelection)].vSpawnCoords)
SET_ENTITY_HEADING(PLAYER_PED_ID(), g_sSavehouses[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iSavehouseSelection)].fSpawnHeading)
bWarpToSavehouse = FALSE
ENDIF
ENDIF
ENDIF
FOR iCount = 0 TO ENUM_TO_INT(NUMBER_OF_CLF_SAVEHOUSE)-1
IF NOT (IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Savehouse_Respawn_Available(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount), bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
endfor
#endif
#if USE_NRM_DLC
IF bWarpToSavehouse
IF iSavehouseSelection < ENUM_TO_INT(NUMBER_OF_NRM_SAVEHOUSE)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), g_sSavehouses[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iSavehouseSelection)].vSpawnCoords)
SET_ENTITY_HEADING(PLAYER_PED_ID(), g_sSavehouses[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iSavehouseSelection)].fSpawnHeading)
bWarpToSavehouse = FALSE
ENDIF
ENDIF
ENDIF
FOR iCount = 0 TO ENUM_TO_INT(NUMBER_OF_NRM_SAVEHOUSE)-1
IF NOT (IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Savehouse_Respawn_Available(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount), bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
endfor
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF bWarpToSavehouse
IF iSavehouseSelection < ENUM_TO_INT(NUMBER_OF_SAVEHOUSE_LOCATIONS)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), g_sSavehouses[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iSavehouseSelection)].vSpawnCoords)
SET_ENTITY_HEADING(PLAYER_PED_ID(), g_sSavehouses[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iSavehouseSelection)].fSpawnHeading)
bWarpToSavehouse = FALSE
ENDIF
ENDIF
ENDIF
FOR iCount = 0 TO ENUM_TO_INT(NUMBER_OF_SAVEHOUSE_LOCATIONS)-1
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bSavehouseAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Savehouse_Respawn_Available(INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iCount), bSavehouseAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
ENDFOR
#endif
#endif
////////////////////////////////////////////////////////////////////////
/// HOSPITALS
IF bWarpToHospital
IF iHospitalSelection < ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), g_sHospitals[INT_TO_ENUM(HOSPITAL_NAME_ENUM, iHospitalSelection)].vSpawnCoords)
SET_ENTITY_HEADING(PLAYER_PED_ID(), g_sHospitals[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iHospitalSelection)].fSpawnHeading)
bWarpToHospital = FALSE
ENDIF
ENDIF
ENDIF
FOR iCount = 0 TO ENUM_TO_INT(NUMBER_OF_HOSPITAL_LOCATIONS)-1
#if USE_CLF_DLC
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Hospital_Respawn_Available(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount), bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
#endif
#if USE_NRM_DLC
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Hospital_Respawn_Available(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount), bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
#endif
#if not USE_CLF_DLC
#if not use_NRM_DLC
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobals.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bHospitalAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobals.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobals.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobals.sRespawnData.iHospitalProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Hospital_Respawn_Available(INT_TO_ENUM(HOSPITAL_NAME_ENUM, iCount), bHospitalAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
#endif
#endif
ENDFOR
////////////////////////////////////////////////////////////////////////
/// POLICE STATIONS
IF bWarpToPoliceStation
IF iPoliceStationSelection < ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_PED_COORDS_KEEP_VEHICLE(PLAYER_PED_ID(), g_sPoliceStations[INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iPoliceStationSelection)].vSpawnCoords)
SET_ENTITY_HEADING(PLAYER_PED_ID(), g_sPoliceStations[INT_TO_ENUM(SAVEHOUSE_NAME_ENUM, iPoliceStationSelection)].fSpawnHeading)
bWarpToPoliceStation = FALSE
ENDIF
ENDIF
ENDIF
FOR iCount = 0 TO ENUM_TO_INT(NUMBER_OF_POLICE_STATION_LOCATIONS)-1
#if USE_CLF_DLC
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Police_Respawn_Available(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount), bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
#endif
#if USE_NRM_DLC
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Police_Respawn_Available(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount), bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
#endif
#if not USE_CLF_DLC
#if not use_NRM_DLC
// If the real flag has been updated then update our debug flags
IF NOT (IS_BIT_SET(g_savedGlobals.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL])
bPoliceStationAvailable[iCount][RESPAWN_FLAG_ACTUAL] = IS_BIT_SET(g_savedGlobals.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG] = IS_BIT_SET(g_savedGlobals.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT)
// Otherwise if we updated the debug flag then update the real flag
ELIF NOT (IS_BIT_SET(g_savedGlobals.sRespawnData.iPoliceStationProperties[iCount], REPAWN_FLAG_AVAILABLE_BIT) = bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
Set_Police_Respawn_Available(INT_TO_ENUM(POLICE_STATION_NAME_ENUM, iCount), bPoliceStationAvailable[iCount][RESPAWN_FLAG_DEBUG])
ENDIF
#endif
#endif
ENDFOR
ENDPROC
#ENDIF