457 lines
24 KiB
XML
Executable File
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
|