USING "commands_graphics.sch" USING "net_include.sch" USING "Screen_placements.sch" USING "Cellphone_public.sch" USING "fm_in_Corona_header.sch" //USING "fm_playlist_header.sch" //USING "Net_Spectator_cam_common.sch" //USING "net_spectator_cam.sch" CONST_INT MAX_NUM_CHECKPOINT_SPRITE 4 CONST_INT MAX_NUM_CHECKPOINT_RECT 1 CONST_INT MAX_NUM_CHECKPOINT_TEXT 5 CONST_INT FIVE_ICON_SCORE_BAR_DELAY_TIME 3000 CONST_FLOAT PLAYERNAME_TITLE_OFFSET -0.004 CONST_FLOAT RIGHT_EDGE_CORONA_OFFSET -0.113 CONST_FLOAT TITLE_NON_ROMANIC_OFFSET -0.008 CONST_FLOAT TITLE_NON_ROMANIC_OFFSET_CHINESE -0.012 CONST_FLOAT TITLE_NON_ROMANIC_OFFSET_LITTLE -0.003 CONST_FLOAT TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE -0.009 CONST_FLOAT TITLE_NON_ROMANIC_OFFSET_LITTLE_DOTS -0.007 CONST_INT TIMER_METER_NON_SELECTED_ALPHA 51 ENUM UIELEMENTS UIELEMENTS_NOTSET = 0, UIELEMENTS_BOTTOMRIGHT, UIELEMENTS_MIDDLERIGHT ENDENUM CONST_INT NUMBER_SPACES_FOR_HUD_ELEMENTS 12 CONST_FLOAT TIMER_OVERLAY_X 0.079 CONST_FLOAT TIMER_OVERLAY_W 0.157 CONST_FLOAT TIMER_OVERLAY_X_NON_ROMANIC_OFFSET -0.025 CONST_FLOAT TIMER_OVERLAY_W_NON_ROMANIC_OFFSET 0.050 CONST_FLOAT TIMER_OVERLAY_Y_TIME 0.008 CONST_FLOAT TIMER_OVERLAY_H_TIME 0.036 CONST_FLOAT TIMER_OVERLAY_Y_SCORE 0.008 CONST_FLOAT TIMER_OVERLAY_H_SCORE 0.036 CONST_FLOAT TIMER_OVERLAY_Y_SCORESML 0.01 CONST_FLOAT TIMER_OVERLAY_H_SCORESML 0.033 CONST_FLOAT TIMER_OVERLAY_Y_BIGNUM 0.002 //-0.003+0.005 CONST_FLOAT TIMER_OVERLAY_H_BIGNUM 0.049 //0.056-0.007 CONST_FLOAT TIMER_OVERLAY_Y_BIGNUMSML 0.009 CONST_FLOAT TIMER_OVERLAY_H_BIGNUMSML 0.035 CONST_FLOAT TIMER_OVERLAY_Y_BIGNUMPLACE 0.002 //-0.003+0.005 CONST_FLOAT TIMER_OVERLAY_H_BIGNUMPLACE 0.048 //0.058 CONST_FLOAT TIMER_OVERLAY_Y_SINGLEBIGNUM 0.002 //-0.002 CONST_FLOAT TIMER_OVERLAY_H_SINGLEBIGNUM 0.049 //0.057 CONST_FLOAT TIMER_OVERLAY_Y_SPRITES 0.012 CONST_FLOAT TIMER_OVERLAY_H_SPRITES 0.028 CONST_FLOAT TIMER_OVERLAY_Y_BIGMETER 0.008 CONST_FLOAT TIMER_OVERLAY_H_BIGMETER 0.036 CONST_FLOAT TIMER_OVERLAY_Y_SPRITEMETER 0.008 CONST_FLOAT TIMER_OVERLAY_H_SPRITEMETER 0.036 CONST_FLOAT TIMER_OVERLAY_Y_BIGTIME 0.002 CONST_FLOAT TIMER_OVERLAY_H_BIGTIME 0.048 CONST_FLOAT CHECKPOINT_DOT_SPACING -0.0094 CONST_FLOAT CHECKPOINT_DOT_W 0.012 CONST_FLOAT CHECKPOINT_DOT_H 0.023 CONST_INT TIMER_OVERLAY_ALPHA HUD_COLOUR_INGAME_BG CONST_INT CHECKPOINT_TIMER_SWITCH 9 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////// PUBLIC FUNCTIONS ///////////////////////////////////////////////////////////////////////////// FUNC BOOL IS_RANKUP_RUNNING_BAR_AND_DISPLAY() RETURN MPGlobalsHud.bIsaRankupRunningBarAndBanner ENDFUNC PROC SET_RANKUP_RUNNING_BAR_AND_DISPLAY(BOOL isRunning) #IF IS_DEBUG_BUILD BOOL bPrint IF G_bTurnOnAllHUDBlockers bPrint = TRUE ENDIF IF MPGlobalsHud.bIsaRankupRunningBarAndBanner <> MPGlobalsHud.bIsaRankupRunningBarAndBannerLastFrame bPrint = TRUE ENDIF IF bPrint DEBUG_PRINTCALLSTACK() NET_NL()NET_PRINT("<<< SET_RANKUP_RUNNING_BAR_AND_DISPLAY called with ")NET_PRINT_BOOL(isRunning)NET_PRINT(" >>>") ENDIF #ENDIF MPGlobalsHud.bIsaRankupRunningBarAndBanner = isRunning #IF IS_DEBUG_BUILD MPGlobalsHud.bIsaRankupRunningBarAndBannerLastFrame = isRunning #ENDIF ENDPROC FUNC BOOL CAN_DISPLAY_DPADDOWN_PARTS() // IF ((IS_RANKUP_RUNNING_BAR_AND_DISPLAY() AND IS_SCRIPT_HUD_DISABLED(HUDPART_RANKBAR) = FALSE) // OR IS_SCRIPT_HUD_DISABLED(HUDPART_RANKBAR)) RETURN TRUE // ENDIF RETURN FALSE ENDFUNC FUNC GFX_DRAW_ORDER SET_GFX_TIMERS_DRAW_ORDER() //GFX_ORDER_AFTER_HUD - Works //GFX_ORDER_BEFORE_HUD - Broken Damage Meter GFX_DRAW_ORDER anOrder = GFX_ORDER_BEFORE_HUD /*IF g_bDeathmatchPlayerDead anOrder = GFX_ORDER_AFTER_FADE ENDIF*/ IF MPGlobalsScoreHud.bSniperScopeOn anOrder = GFX_ORDER_AFTER_FADE ENDIF RETURN anOrder ENDFUNC PROC RESET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_AFTER_HUD) ENDPROC PROC UPDATE_ALL_PROGRESSHUD_LAST_FRAME() INT I FOR I = 0 TO NUMBER_OF_PROGRESSHUD_ELEMENTS-1 MPGlobalsScoreHud.ProgressHud_LastFrameBitset[I] = MPGlobalsScoreHud.ProgressHud_ActivationBitset[I] ENDFOR ENDPROC PROC FORCE_TIMER_ORDER_REFRESH() MPGlobalsScoreHud.ProgressHud_ForceReset = TRUE ENDPROC FUNC BOOL HAS_ANY_PROGRESSHUD_ACTIVATION_CHANGED() INT I FOR I = 0 TO NUMBER_OF_PROGRESSHUD_ELEMENTS-1 IF MPGlobalsScoreHud.ProgressHud_LastFrameBitset[I] <> MPGlobalsScoreHud.ProgressHud_ActivationBitset[I] RETURN TRUE ENDIF ENDFOR IF MPGlobalsScoreHud.ProgressHud_ForceReset MPGlobalsScoreHud.ProgressHud_ForceReset = FALSE RETURN TRUE ENDIF RETURN FALSE ENDFUNC PROC UPDATE_PROGRESSHUD_LAST_FRAME(PROGRESSHUD_ELEMENTS aProgressHudPart) MPGlobalsScoreHud.ProgressHud_LastFrameBitset[ENUM_TO_INT(aProgressHudPart)] = MPGlobalsScoreHud.ProgressHud_ActivationBitset[ENUM_TO_INT(aProgressHudPart)] ENDPROC FUNC BOOL HAS_PROGRESSHUD_ACTIVATION_CHANGED(PROGRESSHUD_ELEMENTS aProgressHudPart) IF MPGlobalsScoreHud.ProgressHud_LastFrameBitset[ENUM_TO_INT(aProgressHudPart)] <> MPGlobalsScoreHud.ProgressHud_ActivationBitset[ENUM_TO_INT(aProgressHudPart)] RETURN TRUE ENDIF RETURN FALSE ENDFUNC PROC SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) SET_BIT(MPGlobalsScoreHud.ProgressHud_ActivationBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDPROC //PROC SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) // CLEAR_BIT(MPGlobalsScoreHud.ProgressHud_ActivationBitset[ENUM_TO_INT(aProgressHudPart)], Index) //ENDPROC FUNC BOOL IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) RETURN IS_BIT_SET(MPGlobalsScoreHud.ProgressHud_ActivationBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDFUNC FUNC BOOL IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_ELEMENTS aProgressHudPart) IF MPGlobalsScoreHud.ProgressHud_ActivationBitset[ENUM_TO_INT(aProgressHudPart)] > 0 RETURN TRUE ENDIF RETURN FALSE ENDFUNC PROC RESET_PROGRESSHUD_BITSET() INT I FOR I = 0 TO NUMBER_OF_PROGRESSHUD_ELEMENTS-1 MPGlobalsScoreHud.ProgressHud_ActivationBitset[I] = 0 ENDFOR ENDPROC PROC SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) SET_BIT(MPGlobalsScoreHud.ProgressHud_InitBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDPROC PROC SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) CLEAR_BIT(MPGlobalsScoreHud.ProgressHud_InitBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDPROC FUNC BOOL IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) RETURN IS_BIT_SET(MPGlobalsScoreHud.ProgressHud_InitBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDFUNC FUNC BOOL IS_PROGRESSHUD_INIT_DONE(PROGRESSHUD_ELEMENTS aProgressHudPart) IF MPGlobalsScoreHud.ProgressHud_InitBitset[ENUM_TO_INT(aProgressHudPart)] > 0 RETURN TRUE ENDIF RETURN FALSE ENDFUNC PROC RESET_PROGRESSHUD_INIT_BITSET() INT I FOR I = 0 TO NUMBER_OF_PROGRESSHUD_ELEMENTS-1 MPGlobalsScoreHud.ProgressHud_InitBitset[I] = 0 ENDFOR ENDPROC PROC SET_PROGRESSHUD_EXTENDDISPLAY(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) SET_BIT(MPGlobalsScoreHud.ProgressHud_ExtendDisplayBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDPROC PROC CLEAR_PROGRESSHUD_EXTENDDISPLAY(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) CLEAR_BIT(MPGlobalsScoreHud.ProgressHud_ExtendDisplayBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDPROC FUNC BOOL IS_PROGRESSHUD_EXTENDDISPLAY_SET_INDEXED(PROGRESSHUD_ELEMENTS aProgressHudPart, INT Index) RETURN IS_BIT_SET(MPGlobalsScoreHud.ProgressHud_ExtendDisplayBitset[ENUM_TO_INT(aProgressHudPart)], Index) ENDFUNC FUNC BOOL IS_PROGRESSHUD_EXTENDDISPLAY_SET(PROGRESSHUD_ELEMENTS aProgressHudPart) IF MPGlobalsScoreHud.ProgressHud_ExtendDisplayBitset[ENUM_TO_INT(aProgressHudPart)] > 0 RETURN TRUE ENDIF RETURN FALSE ENDFUNC PROC RESET_PROGRESSHUD_EXTENDDISPLAY_BITSET() INT I FOR I = 0 TO NUMBER_OF_PROGRESSHUD_ELEMENTS-1 MPGlobalsScoreHud.ProgressHud_ExtendDisplayBitset[I] = 0 ENDFOR ENDPROC FUNC FLOAT CAST_METRES_TO_MILES(FLOAT fMetres) RETURN(fMetres * 0.000621371192) ENDFUNC FUNC BOOL IS_BOTTOM_RIGHT_AREA_FREE() // IF g_sSelectorUI.bOnScreen = TRUE // RETURN FALSE // ENDIF RETURN TRUE ENDFUNC FUNC TEXT_LABEL_63 GET_POSITION_STRING_WITH_NUMBER(INT Position) TEXT_LABEL_63 tl_63 = "" IF Position > 0 INT Units Position = Position%100 //Shave off third column Units = Position%10 IF Units = 1 tl_63 += "TIMER_ST" ELIF Units = 2 tl_63 += "TIMER_ND" ELIF Units = 3 tl_63 += "TIMER_RD" ELSE tl_63 += "TIMER_TH" ENDIF IF Position > 9 AND Position < 21 tl_63 = "" tl_63 += "TIMER_TH" ENDIF ENDIF RETURN tl_63 ENDFUNC FUNC TEXT_LABEL_63 GET_POSITION_STRING(INT Position) TEXT_LABEL_63 tl_63 = "" IF Position > 0 INT Units Position = Position%100 //Shave off third column Units = Position%10 IF Units = 1 tl_63 += "TIMER_NST" ELIF Units = 2 tl_63 += "TIMER_NND" ELIF Units = 3 tl_63 += "TIMER_NRD" ELSE tl_63 += "TIMER_NTH" ENDIF IF Position > 9 AND Position < 21 tl_63 = "" tl_63 += "TIMER_NTH" ENDIF ENDIF RETURN tl_63 ENDFUNC ///// PURPOSE: ///// Draws a Timer hud in the bottom right of the screen to be used in races ///// /// PARAMS: /// TimerRunning - The time the race will run for /// RacePos - The players current position /// MaxRacePos - the number of racers in the race /// iPlayerTeam - Pass in the players gang so the lap meter can match the gang colour. /// LapNum - the number of laps completed /// MaxLaps - the maximum number of laps to complete /// ExtraTime - If the player is to be given or subtracing extra time from the TimerRunning amount, this shows up a -num or +num /// FlashTime - how long you want the hud to flash. Only does all the hud, let Brenda know if you need this indivdual /// Title - The text next to the TimerRunning, defaults to "TIMER" if left blank /// FixedTitle - The title for the fixed timer, defaults to "BEST TIME" if left blank /// Medal - adds text and colouring for the fixed timer. Used if the fixed timer is telling the player "this time will get you a silver medal" //PROC DRAW_RACE_TIMER_HUD(INT TimerRunning = -1, INT RacePos = 0, INT MaxRacePos = 0, INT iPlayerTeam = -1, INT LapNum = 0, INT MaxLaps = 0, INT ExtraTime = 0, INT BestTime = -1, INT FlashTime = 0, STRING Title = NULL, STRING FixedTitle = NULL, PODIUMPOS Medal = PODIUMPOS_NONE ) // // IF TimerRunning = 0 // ENDIF // IF RacePos = 0 // ENDIF // IF MaxRacePos = 0 // ENDIF // IF iPlayerTeam = 9 // ENDIF // IF LapNum = 9 // ENDIF // IF MaxLaps = 9 // ENDIF // IF BestTime = 9 // ENDIF // IF FlashTime = 9 // ENDIF // IF ExtraTime = 9 // ENDIF // IF Medal = PODIUMPOS_NONE // ENDIF // IF IS_STRING_EMPTY_HUD(Title) // ENDIF // IF IS_STRING_EMPTY_HUD(FixedTitle) // ENDIF // //ENDPROC FUNC BOOL IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_JAPANESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED RETURN TRUE ENDIF RETURN FALSE ENDFUNC PROC RESET_GENERIC_NUMBER_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericNumber_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericNumber_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_NUMBER_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericNumber_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericNumber_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_SCORE_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericScore_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericScore_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_SCORE_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericScore_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericScore_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_TIMER_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericTimer_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericTimer_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_TIMER_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericTimer_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericTimer_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_DOUBLE_NUMBER_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericDoubleNumber_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericDoubleNumber_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_DOUBLE_NUMBER_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumber_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumber_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_DOUBLE_NUMBER_PLACE_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericDoubleNumberPlace_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericDoubleNumberPlace_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_DOUBLE_NUMBER_PLACE_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumberPlace_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumberPlace_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_CHECKPOINT_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericCheckpoint_Hud[Index] ) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericCheckpoint_MiniHud[Index] ) MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_TitleNumber[Index] = -1 ENDPROC PROC RESET_GENERIC_CHECKPOINT_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericCheckpoint_Hud[Index] ) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericCheckpoint_MiniHud[Index] ) ENDPROC PROC RESET_GENERIC_METER_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericMeter_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericMeter_MiniHud[Index]) MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_TitleNumber[Index] = -1 ENDPROC PROC RESET_GENERIC_METER_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericMeter_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericMeter_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_ELIMINATION_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericElimination_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericElimination_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_ELIMINATION_FLASHING_COLOUR(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericElimination_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iColourFlashing_GenericElimination_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_FOUR_ICON_BAR_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericFourIconBar_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericFourIconBar_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_FIVE_ICON_SCORE_BAR_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_FIVE_ICON_SCORE_BAR_AVATAR_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_Avatar_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_Avatar_MiniHud[Index]) ENDPROC PROC RESET_GENERIC_SIX_ICON_BAR_FLASHING(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericSixIconBar_Hud[Index]) RESET_NET_TIMER(MPGlobalsScoreHud.iFlashing_GenericSixIconBar_MiniHud[Index]) ENDPROC //FLOAT TheHudOffset //FLOAT HudOffsetArray[20] //BOOL CreatedWidget PROC RESET_HUDELEMENT_METERS(INT Index) MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_Number[Index] = 0 MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_MaxNumber[Index] = 0 MPGlobalsScoreHud.ElementHud_METER.sGenericMeter_Title[Index] = "" MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_METER.GenericMeter_Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_METER.GenericMeter_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FreeRoamPos[Index] = <<0.5, 0.5, 0.0>> MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bIsPlayer[Index] = FALSE MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bOnlyZeroIsEmpty[Index] = FALSE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_ExtendedStartTimer[Index] ) MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_ExtendedTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bBigMeter[Index] = FALSE MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iDrawRedDangerZonePercent[Index] = 0 MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bIsLiteralString[Index] = FALSE MPGlobalsScoreHud.ElementHud_METER.PulseToColour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_METER.iPulseTime[Index] = -1 // RESET_GENERIC_METER_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_CHECKPOINTS(INT Index) // HUDELEMENT_CHECKPOINT_STUCT emptyCheckpointStruct // MPGlobalsScoreHud.ElementHud_CHECKPOINT = emptyCheckpointStruct MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_Number[Index] = 0 MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_MaxNumber[Index] = 0 MPGlobalsScoreHud.ElementHud_CHECKPOINT.sGenericCheckpoint_Title[Index] = "" MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FreeRoamPos[Index] = <<0.5, 0.5, 0.0>> MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_bIsPlayer[Index]= FALSE #IF USE_TU_CHANGES GenericCheckpoint_Cross0[Index] = FALSE GenericCheckpoint_Cross1[Index] = FALSE GenericCheckpoint_Cross2[Index] = FALSE GenericCheckpoint_Cross3[Index] = FALSE GenericCheckpoint_Cross4[Index] = FALSE GenericCheckpoint_Cross5[Index] = FALSE GenericCheckpoint_Cross6[Index] = FALSE GenericCheckpoint_Cross7[Index] = FALSE GenericElimination_Cross0[Index] = FALSE GenericElimination_Cross1[Index] = FALSE GenericElimination_Cross2[Index] = FALSE GenericElimination_Cross3[Index] = FALSE GenericElimination_Cross4[Index] = FALSE GenericElimination_Cross5[Index] = FALSE GenericElimination_Cross6[Index] = FALSE GenericElimination_Cross7[Index] = FALSE #ENDIF RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_ExtendedStartTimer[Index]) MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_ExtendedTimer[Index] = -1 // RESET_GENERIC_CHECKPOINT_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_ELIMINATION(INT Index) // HUDELEMENT_ELIMINATION_STUCT emptyEliminationStruct // MPGlobalsScoreHud.ElementHud_ELIMINATION = emptyEliminationStruct MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_MaxNumber[Index] = 0 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive1[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive2[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive3[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive4[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive5[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive6[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive7[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive8[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.sGenericElimination_Title[Index] = "" MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_VisibleBoxes[Index] = -1 MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFirst[Index] = HUD_COLOUR_GREEN MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourSecond[Index] = HUD_COLOUR_RED MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_TitleNumber[Index] = -1 // MPGlobalsScoreHud.ElementHud_ELIMINATION.bRunning_GenericElimination[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FreeRoamPos[Index] = <<0.5, 0.5, 0.0>> MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_bIsPlayer[Index] = FALSE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box1Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box2Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box3Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box4Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box5Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box6Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box7Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box8Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box1Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box2Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box3Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box4Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box5Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box6Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box7Colour_InActive[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box8Colour_InActive[Index] = HUD_COLOUR_WHITE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedStartTimer[Index]) MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_bUseNonPlayerFont[Index] = FALSE // RESET_GENERIC_ELIMINATION_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_SINGLENUMBER(INT Index) // HUDELEMENT_SINGLE_NUMBER_STUCT emptySINGLENUMStruct // MPGlobalsScoreHud.ElementHud_SINGLENUMBER = emptySINGLENUMStruct MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_Number[Index] = 0 MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_NumberTitle[Index] = "" MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_bIsPlayer[Index] = FALSE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_ExtendedStartTimer[Index]) MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_ExtendedTimer[Index] = -1 // RESET_GENERIC_NUMBER_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_DOUBLENUMBER(INT Index) // HUDELEMENT_DOUBLE_NUMBER_STUCT emptyDOUBLENUMStruct // MPGlobalsScoreHud.ElementHud_DOUBLENUMBER = emptyDOUBLENUMStruct MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_Number[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.sGenericDoubleNumber_Title[Index] = "" MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_NumberTwo[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_COLOUR[Index] =HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bIsPlayer[Index] = FALSE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_ExtendedStartTimer[Index]) MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_ExtendedTimer[Index] = -1 // RESET_GENERIC_DOUBLE_NUMBER_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_DOUBLENUMPLACE(INT Index) // HUDELEMENT_DOUBLE_NUMBER_PLACE_STUCT emptyDOUBLENUMPLACEStruct // MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE = emptyDOUBLENUMPLACEStruct MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_Number[Index] = 0 MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.sGenericDoubleNumberPlace_Title[Index] = "" MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_NumberTwo[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_COLOUR[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_bIsPlayer[Index] = FALSE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_ExtendedStartTimer[Index] ) MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_ExtendedTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_bCustomFont[Index] = FALSE MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_eCustomFont[Index] = FONT_STANDARD // RESET_GENERIC_DOUBLE_NUMBER_PLACE_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_SCORE(INT Index) // HUDELEMENT_SCORE_STUCT emptyScoreStruct // MPGlobalsScoreHud.ElementHud_SCORE = emptyScoreStruct MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_Number[Index] = 0 MPGlobalsScoreHud.ElementHud_SCORE.sGenericScore_Title[Index] = "" MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bIsPlayer[Index] = FALSE MPGlobalsScoreHud.ElementHud_SCORE.sGenericScore_NumberString[Index] = "" MPGlobalsScoreHud.ElementHud_SCORE.bGenericScore_IsFloat[Index] = FALSE MPGlobalsScoreHud.ElementHud_SCORE.bGenericScore_FloatValue[Index] = -1 RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_ExtendedStartTimer[Index]) MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_ExtendedTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Style[Index] = HUD_COUNTER_STYLE_DEFAULT // RESET_GENERIC_SCORE_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_TIMER(INT Index) // HUDELEMENT_TIMER_STUCT emptyTimerStruct // MPGlobalsScoreHud.ElementHud_TIMER = emptyTimerStruct MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_Timer[Index] = 0 MPGlobalsScoreHud.ElementHud_TIMER.sGenericTimer_TimerTitle[Index] = "" MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtraTime[Index] = -1 MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_MedalDisplay[Index] = PODIUMPOS_NONE MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_TIMER.bGenericTimer_TimerStyle[Index] = TIMER_STYLE_DONTUSEMILLISECONDS MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bIsPlayer[Index] = FALSE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtendedStartTimer[Index] ) MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtendedTimer[Index] = -1 // RESET_GENERIC_TIMER_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_WINDMETER(INT idx) MPGlobalsScoreHud.ElementHud_WIND.fGenericMeter_Heading[idx] = 0.0 MPGlobalsScoreHud.ElementHud_WIND.sGenericMeter_Title[idx] = "" MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_WindSpeed[idx] = 0 MPGlobalsScoreHud.ElementHud_WIND.fGenericMeter_Heading[idx] = 0.0 MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_RedComponent[idx] = 0 MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_BlueComponent[idx] = 0 MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_GreenComponent[idx] = 0 MPGlobalsScoreHud.ElementHud_WIND.eGenericMeter_HUDOrder[idx] = HUDORDER_DONTCARE ENDPROC PROC RESET_HUDELEMENT_BIG_RACE_POSITION(INT idx) MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_iRacePosition[idx] = 0 MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_eRacePositionHUDColour[idx] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_HUDOrder[idx] = HUDORDER_DONTCARE ENDPROC PROC RESET_HUDELEMENT_SPRITE_METERS(INT Index) MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_Number[Index] = 0 MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_MaxNumber[Index] = 0 MPGlobalsScoreHud.ElementHud_SPRITEMETER.sGenericMeter_Title[Index] = "" MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_FlashTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_Colour[Index] = HUD_COLOUR_WHITE MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_TitleNumber[Index] = -1 MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_HUDOrder[Index] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bIsPlayer[Index] = FALSE MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bOnlyZeroIsEmpty[Index] = FALSE RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_ExtendedStartTimer[Index] ) MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_ExtendedTimer[Index] = -1 MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bIsLiteralString[Index] = FALSE // RESET_GENERIC_METER_FLASHING(Index) ENDPROC PROC RESET_HUDELEMENT_FOUR_ICON_BAR(INT idx) MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_TitleColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerOne[idx] = NULL MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerTwo[idx] = NULL MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerThree[idx] = NULL MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerFour[idx] = NULL MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupOne[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupTwo[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupThree[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupFour[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_HUDOrder[idx] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconOne[idx] = FALSE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconTwo[idx] = FALSE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconThree[idx] = FALSE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconFour[idx] = FALSE MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_iFlashTime[idx] = -1 ENDPROC PROC RESET_HUDELEMENT_FIVE_ICON_SCORE_BAR(INT idx) MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_Number[idx] = 0 MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_MaXNumber[idx] = 0 MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_FloatValue[idx] = 0.0 MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_NumberString[idx] = "" MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_isFloat[idx] = FALSE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_DrawInfinity[idx] = FALSE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_TitleColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerOne[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerTwo[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerThree[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerFour[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerFive[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupOne[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupTwo[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupThree[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupFour[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupFive[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_HUDOrder[idx] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerToHighlight[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bEnablePlayerHighlight[idx] = FALSE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupOneColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupTwoColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupThreeColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupFourColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupFiveColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iInstanceToHighlight[idx] = 0 MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bPulseHighlight[idx] = FALSE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iPulseTime[idx] = 0 MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pAvatarToFlash[idx] = NULL MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bFlashAvatar[idx] = FALSE MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iAvatarFlashTime[idx] = 0 MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iAvatarSlotToFlash[idx] = 0 ENDPROC PROC RESET_HUDELEMENT_SIX_ICON_BAR(INT idx) MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_TitleColour[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerOne[idx] = NULL MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerTwo[idx] = NULL MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerThree[idx] = NULL MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerFour[idx] = NULL MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerFive[idx] = NULL MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerSix[idx] = NULL MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupOne[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupTwo[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupThree[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupFour[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupFive[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupSix[idx] = ACTIVITY_POWERUP_NONE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_HUDOrder[idx] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconOne[idx] = FALSE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconTwo[idx] = FALSE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconThree[idx] = FALSE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconFour[idx] = FALSE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconFive[idx] = FALSE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconSix[idx] = FALSE MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_iFlashTime[idx] = -1 ENDPROC PROC RESET_HUDELEMENT_DOUBLE_TEXT(INT idx) MPGlobalsScoreHud.ElementHud_DOUBLETEXT.sGenericDoubleText_TitleLeft[idx] = "" MPGlobalsScoreHud.ElementHud_DOUBLETEXT.sGenericDoubleText_TitleRight[idx] = "" MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bTitleLeftLiteral[idx] = FALSE MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bTitleRightLiteral[idx] = FALSE MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_HUDOrder[idx] = HUDORDER_DONTCARE MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_TitleCOLOUR[idx] = HUD_COLOUR_PURE_WHITE MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bCustomFont[idx] = FALSE MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_eCustomFont[idx] = FONT_STANDARD ENDPROC PROC EXTEND_ALL_HUD_ELEMENTS() INT I // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_SINGLE_NUMBER, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SINGLE_NUMBER, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_ExtendedStartTimer[I]) // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_ExtendedTimer[I]) = FALSE // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SINGLE_NUMBER, I) // ENDIF // ENDIF // ENDFOR // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_SCORE, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SCORE, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_ExtendedStartTimer[I]) // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_ExtendedTimer[I]) = FALSE // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SCORE, I) // ENDIF // ENDIF // ENDFOR // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_TIMER, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_TIMER, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtendedStartTimer[I]) // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtendedTimer[I]) = FALSE // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_TIMER, I) // ENDIF // ENDIF // ENDFOR // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_ExtendedStartTimer[I]) // // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_ExtendedTimer[I]) = FALSE // // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) // ENDIF // ENDIF // ENDFOR // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_DOUBLE_NUMBER, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_ExtendedStartTimer[I]) // // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_ExtendedTimer[I]) = FALSE // // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_NUMBER, I) // ENDIF // ENDIF // ENDFOR // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_CHECKPOINT, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_CHECKPOINT, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_ExtendedStartTimer[I]) // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_ExtendedTimer[I]) = FALSE // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_CHECKPOINT, I) // ENDIF // ENDIF // ENDFOR // FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_METER, I) // AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_METER, I) // RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_ExtendedStartTimer[I]) // ELSE // IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_ExtendedTimer[I]) = FALSE // MPGlobalsScoreHud.isSomethingDisplaying = TRUE // SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_METER, I) // ENDIF // ENDIF // ENDFOR IF IS_PROGRESSHUD_EXTENDDISPLAY_SET(PROGRESSHUD_ELIMINATION) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 // IF MPGlobalsScoreHud.bInit_GenericElimination[I] = TRUE // NET_NL()NET_PRINT("MPGlobalsScoreHud.bInit_GenericElimination[I] = TRUE ")NET_PRINT_INT(I)NET_NL() // ELSE // NET_NL()NET_PRINT("MPGlobalsScoreHud.bInit_GenericElimination[I] = FALSE ")NET_PRINT_INT(I)NET_NL() // ENDIF // IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_ELIMINATION, I) = TRUE // NET_NL()NET_PRINT("PROGRESSHUD_ELIMINATION = TRUE ")NET_PRINT_INT(I)NET_NL() // ELSE // NET_NL()NET_PRINT("PROGRESSHUD_ELIMINATION = FALSE ")NET_PRINT_INT(I)NET_NL() // ENDIF // NET_NL()NET_PRINT("MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[I] = ")NET_PRINT_INT(MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[I])NET_PRINT(" I = ")NET_PRINT_INT(I) NET_NL() IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_ELIMINATION, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_ELIMINATION, I) RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedStartTimer[I]) // NET_NL()NET_PRINT("MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[I] = RESET_NET_TIMER") ELSE IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedStartTimer[I], MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[I]) = FALSE MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_ELIMINATION, I) // NET_NL()NET_PRINT("MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[I] = HAS_NET_TIMER_EXPIRED TRUE") ELSE CLEAR_PROGRESSHUD_EXTENDDISPLAY(PROGRESSHUD_ELIMINATION, I) // NET_NL()NET_PRINT("MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[I] = HAS_NET_TIMER_EXPIRED = FALSE ") ENDIF ENDIF ENDFOR ENDIF ENDPROC //BOOL InitWidgetBaseLine //FLOAT BaseLineWidgetOffset FUNC FLOAT BASE_LINE_OFFSET() FLOAT result = 0.925-0.002 result += -0.036*MPGlobalsScoreHud.bNumberOfInstructionalButtonsRowsUnderHud IF MPGlobalsScoreHud.bGolfScoreUnderHud = TRUE result += -0.15 ELIF MPGlobalsScoreHud.bCoronaUnderHud = TRUE result += -0.048-0.753 ENDIF IF MPGlobalsScoreHud.bTopRightHud = TRUE result += -0.919 ENDIF IF MPGlobalsScoreHud.bSwitchWheel = TRUE result += -0.184 ENDIF IF MPGlobalsScoreHud.bSwitchWheelAndStats = TRUE result += -0.522 ENDIF IF MPGlobalsScoreHud.bPhoneUnderHud = TRUE AND MPGlobalsScoreHud.bPhoneUnderHudNoRise = FALSE SWITCH get_current_player_ped_enum() CASE CHAR_MICHAEL result += -0.405 BREAK CASE CHAR_TREVOR result += -0.405 BREAK CASE CHAR_FRANKLIN result += -0.414 BREAK DEFAULT //MP IF NOT IS_CELLPHONE_CAMERA_IN_USE() result += -0.405 ENDIF BREAK ENDSWITCH ENDIF // #IF IS_DEBUG_BUILD // IF InitWidgetBaseLine = FALSE // START_WIDGET_GROUP("BOTTOM RIGHT START POSITION") // ADD_WIDGET_FLOAT_SLIDER("BaseLineWidgetOffset", BaseLineWidgetOffset, -1, 1, 0.001) // ADD_WIDGET_BOOL("bTopRightHud", MPGlobalsScoreHud.bTopRightHud) // ADD_WIDGET_BOOL("bPhoneUnderHud", MPGlobalsScoreHud.bPhoneUnderHud) // STOP_WIDGET_GROUP() // InitWidgetBaseLine = TRUE // ENDIF // result += BaseLineWidgetOffset // #ENDIF RETURN result ENDFUNC PROC RESET_ALL_HUD_ELEMENTS_PRIVATE() MPGlobalsScoreHud.iHowManyDisplays = 0 MPGlobalsScoreHud.HudStartY = 0.725 MPGlobalsScoreHud.BottomStartY = BASE_LINE_OFFSET() MPGlobalsScoreHud.isSomethingDisplaying = FALSE MPGlobalsScoreHud.bNumberOfInstructionalButtonsRowsUnderHud = 0 MPGlobalsScoreHud.bGolfScoreUnderHud = FALSE MPGlobalsScoreHud.bCoronaUnderHud = FALSE MPGlobalsScoreHud.bPhoneUnderHud = FALSE MPGlobalsScoreHud.bPhoneUnderHudNoRise = FALSE MPGlobalsScoreHud.bTopRightHud = FALSE MPGlobalsScoreHud.bSwitchWheel = FALSE MPGlobalsScoreHud.bSwitchWheelAndStats = FALSE MPGlobalsScoreHud.bSniperScopeOn = FALSE MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE MPGlobalsScoreHud.bTitleMiddleJustified = FALSE MPGlobalsScoreHud.bTitleExtraLeftJustified = FALSE MPGlobalsScoreHud.bTitleInsaneLeftJustified = FALSE MPGlobalsScoreHud.bTitleInsanePlusLeftJustified = FALSE #IF USE_TU_CHANGES g_b_HoldOffDrawingTimersThisFrame = FALSE #ENDIF g_b_ChangePlayerNameToTeamName = FALSE g_b_UseBottomRightTitleColour = FALSE g_b_iNumberOfDecimalPlacesForScore = 1 #IF USE_TU_CHANGES g_b_IsATMrenderingForTimers = FALSE #ENDIF //BC Added a reset for the Generic Number UI INT I IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SINGLE_NUMBER) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_SINGLE_NUMBER, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SINGLE_NUMBER, I) RESET_HUDELEMENT_SINGLENUMBER(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_SINGLE_NUMBER, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_SINGLE_NUMBER, I) ENDFOR ENDIF IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SCORE) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_SCORE, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SCORE, I) RESET_HUDELEMENT_SCORE(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_SCORE, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_SCORE, I) ENDFOR ENDIF //BC Added a reset for the Generic Timer UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_TIMER) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_TIMER, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_TIMER, I) RESET_HUDELEMENT_TIMER(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_TIMER, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_TIMER, I) ENDFOR ENDIF //BC Added a reset for the Generic Double Number UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_NUMBER) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_DOUBLE_NUMBER, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER, I) RESET_HUDELEMENT_DOUBLENUMBER(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_DOUBLE_NUMBER, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_DOUBLE_NUMBER, I) ENDFOR ENDIF //BC Added a reset for the Generic Double with Placement Number UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_NUMBER_PLACE) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) RESET_HUDELEMENT_DOUBLENUMPLACE(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) ENDFOR ENDIF //BC Added a reset for the Generic Checkpoint UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_CHECKPOINT) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_CHECKPOINT, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_CHECKPOINT, I) RESET_HUDELEMENT_CHECKPOINTS(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_CHECKPOINT, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_CHECKPOINT, I) ENDFOR ENDIF //BC Added a reset for the Generic Meter UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_METER) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_METER, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_METER, I) RESET_HUDELEMENT_METERS(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_METER, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_METER, I) ENDFOR ENDIF //BC Added a reset for the Generic Elimination UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_ELIMINATION) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_ELIMINATION, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_ELIMINATION, I) = FALSE RESET_HUDELEMENT_ELIMINATION(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_ELIMINATION, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_ELIMINATION, I) ENDFOR ENDIF //RP Added a reset for Generic Wind Meter UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_WINDMETER) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_WINDMETER, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_WINDMETER, I) = FALSE RESET_HUDELEMENT_WINDMETER(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_WINDMETER, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_WINDMETER, I) ENDFOR ENDIF //SR Added a reset for Generic Big Race Position UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_BIG_RACE_POSITION) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_BIG_RACE_POSITION, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_BIG_RACE_POSITION, I) = FALSE RESET_HUDELEMENT_BIG_RACE_POSITION(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_BIG_RACE_POSITION, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_BIG_RACE_POSITION, I) ENDFOR ENDIF //SR Added a reset for Generic Sprite Meter UI IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SPRITE_METER) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_SPRITE_METER, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SPRITE_METER, I) = FALSE RESET_HUDELEMENT_SPRITE_METERS(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_SPRITE_METER, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_SPRITE_METER, I) ENDFOR ENDIF //SR Added a reset for Generic Four Icon Bar IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_FOUR_ICON_BAR) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_FOUR_ICON_BAR, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_FOUR_ICON_BAR, I) = FALSE RESET_HUDELEMENT_FOUR_ICON_BAR(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_FOUR_ICON_BAR, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_FOUR_ICON_BAR, I) ENDFOR ENDIF //SR Added a reset for Generic Five Icon Score Bar IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_FIVE_ICON_SCORE_BAR) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_FIVE_ICON_SCORE_BAR, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_FIVE_ICON_SCORE_BAR, I) = FALSE RESET_HUDELEMENT_FIVE_ICON_SCORE_BAR(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_FIVE_ICON_SCORE_BAR, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_FIVE_ICON_SCORE_BAR, I) ENDFOR ENDIF //SR Added a reset for Generic Six Icon Bar IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SIX_ICON_BAR) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT - 1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_SIX_ICON_BAR, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SIX_ICON_BAR, I) = FALSE RESET_HUDELEMENT_SIX_ICON_BAR(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_SIX_ICON_BAR, I) ENDIF ENDFOR ENDIF //SR Added a reset for Generic Double Text IF IS_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_TEXT) FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF IS_PROGRESSHUD_INIT_DONE_INDEXED(PROGRESSHUD_DOUBLE_TEXT, I) AND IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_TEXT, I) = FALSE RESET_HUDELEMENT_DOUBLE_TEXT(I) SET_PROGRESSHUD_INIT_NOT_DONE(PROGRESSHUD_DOUBLE_TEXT, I) ENDIF // SET_PROGRESSHUD_ACTIVATION_OFF(PROGRESSHUD_DOUBLE_TEXT, I) ENDFOR ENDIF ENDPROC //BOOL RightEdgeWidgetStart //FLOAT RightEdge_WIDGETVAlue //FLOAT RightEdge_UI_SINGLE_NUMBER_WIDGETVAlue PROC SET_WORD_WRAPPING_RIGHTEDGE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF RightEdgeWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_RIGHTEDGE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_RIGHTEDGE: RightEdge_WIDGETVAlue", RightEdge_WIDGETVAlue, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_RIGHTEDGE: SINGLE NUMBER", RightEdge_UI_SINGLE_NUMBER_WIDGETVAlue, -1, 1, 0.001) // // STOP_WIDGET_GROUP() // RightEdgeWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Offset = 0.95-0.047+0.001+0.047-0.002+0.001 aTitle.WrapEndX = Offset IF MPGlobalsScoreHud.bCoronaUnderHud = FALSE SWITCH aTitle.aTextType CASE TEXTTYPE_TS_UI_SINGLE_NUMBER aTitle.WrapEndX += 0.001 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdge_UI_SINGLE_NUMBER_WIDGETVAlue // #ENDIF BREAK CASE TEXTTYPE_TS_UI_TIMERNUMBER_TWOSETS aTitle.WrapEndX += 0.001 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdge_UI_SINGLE_NUMBER_WIDGETVAlue // #ENDIF BREAK DEFAULT BREAK ENDSWITCH ENDIF IF MPGlobalsScoreHud.bCoronaUnderHud = TRUE aTitle.WrapEndX = Offset aTitle.WrapEndX += RIGHT_EDGE_CORONA_OFFSET ENDIF // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdge_WIDGETVAlue // #ENDIF ENDPROC //BOOL RightEdgeDOTWidgetStart //FLOAT RightEdgeDOT_WIDGETVAlue PROC SET_WORD_WRAPPING_RIGHTEDGE_AND_DOT(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF RightEdgeDOTWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_RIGHTEDGE_AND_DOT") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_RIGHTEDGE_AND_DOT: RightEdge_WIDGETVAlue", RightEdgeDOT_WIDGETVAlue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // RightEdgeDOTWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = 0.95-0.047+0.001+0.047-0.002-0.013 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdgeDOT_WIDGETVAlue // #ENDIF ENDPROC //BOOL RightEdgePLACEWidgetStart //FLOAT RightEdgePLACE_WIDGETVAlue PROC SET_WORD_WRAPPING_RIGHTEDGE_AND_PLACE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF RightEdgePLACEWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_RIGHTEDGE_AND_PLACE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_RIGHTEDGE_AND_PLACE: RightEdge_WIDGETVAlue", RightEdgePLACE_WIDGETVAlue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // RightEdgePLACEWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = 0.95-0.047+0.001+0.047-0.002-0.013+0.014 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdgePLACE_WIDGETVAlue // #ENDIF ENDPROC //BOOL RightEdgeAMPMWidgetStart //FLOAT RightEdgeAMPM_WIDGETVAlue PROC SET_WORD_WRAPPING_RIGHTEDGE_AMPM(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF RightEdgeAMPMWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_RIGHTEDGE_AND_AMPM") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_RIGHTEDGE_AND_AMPM: RightEdge_WIDGETVAlue", RightEdgeAMPM_WIDGETVAlue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // RightEdgeAMPMWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = 0.95-0.047+0.001+0.047-0.002-0.013+0.014-0.024+0.005 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdgeAMPM_WIDGETVAlue // #ENDIF ENDPROC //BOOL RightEdgeXPWidgetStart //FLOAT RightEdgeXP_WIDGETVAlue PROC SET_WORD_WRAPPING_RIGHTEDGE_AND_XP(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF RightEdgeXPWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_RIGHTEDGE_AND_XP") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_RIGHTEDGE_AND_XP: RightEdge_WIDGETVAlue", RightEdgeXP_WIDGETVAlue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // RightEdgeXPWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = 0.95-0.047+0.001+0.047-0.002-0.013-0.002-0.001 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += RightEdgeXP_WIDGETVAlue // #ENDIF ENDPROC PROC SET_WORD_HUD_COLOUR(TEXT_STYLE& aTitle, HUD_COLOURS aColour) INT RED, GREEN, BLUE, AlphaValue GET_HUD_COLOUR(aColour, RED, GREEN, BLUE, AlphaValue) aTitle.r = RED aTitle.g = GREEN aTitle.b = BLUE aTitle.a = AlphaValue ENDPROC #IF USE_TU_CHANGES FUNC BOOL DRAW_CROSSED_DOT(INT Index, BOOL CrossedDot0,BOOL CrossedDot1,BOOL CrossedDot2,BOOL CrossedDot3,BOOL CrossedDot4,BOOL CrossedDot5,BOOL CrossedDot6,BOOL CrossedDot7) IF Index = 0 AND CrossedDot0 = TRUE RETURN TRUE ENDIF IF Index = 1 AND CrossedDot1 = TRUE RETURN TRUE ENDIF IF Index = 2 AND CrossedDot2 = TRUE RETURN TRUE ENDIF IF Index = 3 AND CrossedDot3 = TRUE RETURN TRUE ENDIF IF Index = 4 AND CrossedDot4 = TRUE RETURN TRUE ENDIF IF Index = 5 AND CrossedDot5 = TRUE RETURN TRUE ENDIF IF Index = 6 AND CrossedDot6 = TRUE RETURN TRUE ENDIF IF Index = 7 AND CrossedDot7 = TRUE RETURN TRUE ENDIF RETURN FALSE ENDFUNC #ENDIF //#IF IS_DEBUG_BUILD //BOOL InitiMask //SPRITE_PLACEMENT CheckpointWidget //FLOAT CheckpointSpacingWidget //TEXT_STYLE NumberStyle_Widget //TEXT_PLACEMENT NumberPlacement_Widget //#ENDIF PROC RUN_CHECKPOINT_GUTS(INT NumCheckpointsPassed, INT MaxNumCheckpoints, SPRITE_PLACEMENT& Sprites[], TEXT_STYLE& NumberStyle, TEXT_PLACEMENT& NumberPlace, HUD_COLOURS Colour, GFX_DRAW_ORDER anOrder, BOOL DisplaySingleDot #IF USE_TU_CHANGES , BOOL CrossedDot0,BOOL CrossedDot1,BOOL CrossedDot2,BOOL CrossedDot3,BOOL CrossedDot4,BOOL CrossedDot5,BOOL CrossedDot6,BOOL CrossedDot7 #ENDIF) // #IF IS_DEBUG_BUILD // IF InitiMask = FALSE //// // START_WIDGET_GROUP("CHECKPOINT") // CREATE_A_SPRITE_PLACEMENT_WIDGET(CheckpointWidget, "CheckpointWidget") // ADD_WIDGET_FLOAT_SLIDER("CheckpointSpacingWidget", CheckpointSpacingWidget, -1, 1, 0.001) // // CREATE_A_TEXT_STYLE_WIGET(NumberStyle_Widget, "NumberStyle_Widget") // CREATE_A_TEXT_PLACEMENT_WIDGET(NumberPlacement_Widget, "NumberPlacement_Widget") // STOP_WIDGET_GROUP() //// // InitiMask = TRUE // ENDIF // #ENDIF // FLOAT WidthOffsetTimers = -0.002 // FLOAT XOffsetTimers = 0.001 // // FLOAT MaskWidthOffsetTimersCheckPoint = -0.001//0.001 //0.0 if you want a sliver at 0 // IF NumCheckpointsPassed = 0 // MaskWidthOffsetTimersCheckPoint = 0.0 // ENDIF // FLOAT MaskXOffsetTimersCheckPoint = 0.002 // // FLOAT MainMaskHeight = -0.003 // FLOAT OverlayMaskHeight = 0.004 // FLOAT FillMaskHeight = 0.002 IF MaxNumCheckpoints < CHECKPOINT_TIMER_SWITCH FLOAT SpacingofDots = CHECKPOINT_DOT_SPACING // #IF IS_DEBUG_BUILD // SpacingofDots += CheckpointSpacingWidget // #ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") #IF IS_DEBUG_BUILD REQUEST_STREAMED_TEXTURE_DICT("Cross") #ENDIF IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") #IF IS_DEBUG_BUILD AND HAS_STREAMED_TEXTURE_DICT_LOADED("Cross") #ENDIF INT I FOR I = 0 TO MaxNumCheckpoints-1 // #if IS_DEBUG_BUILD // // UPDATE_SPRITE_WIDGET_VALUE(Sprites[I], CheckpointWidget) // #ENDIF Sprites[I].x += SpacingofDots*I IF ((MaxNumCheckpoints-I) > NumCheckpointsPassed) // Sprites[I].x += SpacingofDots*I SET_SPRITE_HUD_COLOUR(Sprites[I], Colour) Sprites[I].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "Circle_checkpoints_Outline", Sprites[I], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ELSE // IF (MaxNumCheckpoints-I) > NumCheckpointsPassed // SET_SPRITE_HUD_COLOUR(Sprites[I], HUD_COLOUR_BLACK) // ELSE SET_SPRITE_HUD_COLOUR(Sprites[I], Colour) // ENDIF DRAW_2D_SPRITE("TimerBars", "Circle_checkpoints", Sprites[I], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) #IF USE_TU_CHANGES IF DRAW_CROSSED_DOT(I, CrossedDot0, CrossedDot1, CrossedDot2, CrossedDot3, CrossedDot4, CrossedDot5, CrossedDot6, CrossedDot7) SET_SPRITE_HUD_COLOUR(Sprites[I], HUD_COLOUR_BLACK) DRAW_2D_SPRITE("Cross", "Circle_checkpoints_Cross", Sprites[I], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF #ENDIF ENDIF ENDFOR // SET_SPRITE_HUD_COLOUR(Sprites[0], OuterRingColour) // // DRAW_2D_SPRITE("TimerBars", "GaugeForIngameHUD_Outline", Sprites[0], FALSE) // // Sprites[0].w += WidthOffsetTimers // Sprites[0].x += XOffsetTimers // Sprites[0].h += MainMaskHeight // // GET_SPRITE_LEVEL_BAR(Sprites[0], 100,Sprites[1], FALSE) // // // SET_SPRITE_HUD_COLOUR(Sprites[1], Colour) // // GET_SPRITE_LEVEL_BAR(Sprites[0], 100,Sprites[3], FALSE) // IF GET_BAR_CONTRAST_COLOUR(Colour) = HUD_COLOUR_BLACK // Sprites[3].a = 90 // ENDIF // Sprites[3].h += FillMaskHeight // SET_SPRITE_HUD_COLOUR(Sprites[3], GET_BAR_CONTRAST_COLOUR(Colour)) // DRAW_2D_SPRITE("TimerBars", "GaugeForIngameHUD_BackgroundAndFill", Sprites[3], FALSE) // // IF NumCheckpointsPassed > 0 // FLOAT Percent = (TO_FLOAT(NumCheckpointsPassed)/TO_FLOAT(MaxNumCheckpoints) *100) // // GET_SPRITE_LEVEL_BAR(Sprites[0], Percent,Sprites[2], FALSE, FALSE, 0, FALSE) // Sprites[2].w += MaskWidthOffsetTimersCheckPoint // Sprites[2].x += MaskXOffsetTimersCheckPoint // Sprites[2].h += OverlayMaskHeight // // // //SET_SPRITES_DRAW_BEFORE_FADE(FALSE) // // SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_AFTER_HUD) // SET_MASK_ATTRIBUTES(Sprites[2].x, Sprites[2].y, Sprites[2].w, Sprites[2].h) // SET_MASK_ACTIVE(TRUE) // DRAW_2D_SPRITE("TimerBars", "GaugeForIngameHUD_BackgroundAndFill", Sprites[1], FALSE) // SET_MASK_ATTRIBUTES(0,0,0,0) // SET_MASK_ACTIVE(FALSE) // ENDIF // // DRAW_DIVIDING_LINES(Sprites[0],aRect, MaxNumCheckpoints) ELSE NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() ENDIF ELSE // #IF IS_DEBUG_BUILD // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle, NumberStyle_Widget) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberPlace, NumberPlacement_Widget) // #ENDIF IF Colour = HUD_COLOUR_WHITE DRAW_TEXT_WITH_2_NUMBERS(NumberPlace,NumberStyle,"TIMER_DASHES", NumCheckpointsPassed,MaxNumCheckpoints,FONT_RIGHT) ELSE SET_WORD_WRAPPING_RIGHTEDGE_AND_DOT(NumberStyle) IF DisplaySingleDot REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Sprites[0], CheckpointWidget) // #ENDIF Sprites[0].x += 0.058-0.060 Sprites[0].y += -0.005 Sprites[0].w += 0.003-0.005+0.002 Sprites[0].h += 0.009-0.010 SET_SPRITE_HUD_COLOUR(Sprites[0], Colour) DRAW_2D_SPRITE("TimerBars", "Circle_checkpoints_Big", Sprites[0], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ENDIF STRING Dashes = "TIMER_DASHES" IF DisplaySingleDot = TRUE AND NumCheckpointsPassed > 99 AND MaxNumCheckpoints > 99 Dashes = "TIMER_DASHES" ENDIF DRAW_TEXT_WITH_2_NUMBERS(NumberPlace,NumberStyle,Dashes, NumCheckpointsPassed,MaxNumCheckpoints,FONT_RIGHT) ENDIF ENDIF ENDPROC //BOOL DamagedWidgetINIT //SPRITE_PLACEMENT Offset_Widget_Sprite[2] PROC SET_SPRITE_PULSE_COLOUR(SPRITE_PLACEMENT &thisSprite, HUD_COLOURS eStartingColour, HUD_COLOURS ePulseColour, INT iPulseTime, SCRIPT_TIMER stPulseTimer) INT iR, iG, iB, iA, iPR, iPG, iPB, iPA INT iElapsedTime = GET_NET_TIMER_DIFFERENCE_WITH_CURRENT_TIME(stPulseTimer) FLOAT fPulseTime IF (iPulseTime / 2) > iElapsedTime fPulseTime = (TO_FLOAT(iElapsedTime / 2) / TO_FLOAT(iPulseTime / 2)) GET_HUD_COLOUR(eStartingColour, iR, iG, iB, iA) GET_HUD_COLOUR(ePulseColour, iPR, iPG, iPB, iPA) ELSE fPulseTime = (TO_FLOAT(iElapsedTime) / TO_FLOAT(iPulseTime)) GET_HUD_COLOUR(ePulseColour, iR, iG, iB, iA) GET_HUD_COLOUR(eStartingColour, iPR, iPG, iPB, iPA) ENDIF thisSprite.r = FLOOR(LERP_FLOAT(TO_FLOAT(iR), TO_FLOAT(iPR), fPulseTime)) thisSprite.g = FLOOR(LERP_FLOAT(TO_FLOAT(iG), TO_FLOAT(iPG), fPulseTime)) thisSprite.b = FLOOR(LERP_FLOAT(TO_FLOAT(iB), TO_FLOAT(iPB), fPulseTime)) thisSprite.a = FLOOR(LERP_FLOAT(TO_FLOAT(iA), TO_FLOAT(iPA), fPulseTime)) ENDPROC PROC RUN_METER_GUTS(INT CurrentLevel, INT MaxLevel, SPRITE_PLACEMENT& Sprites[], HUD_COLOURS Colour, BOOL OnlyZeroIsEmpty, GFX_DRAW_ORDER anOrder , SCRIPT_TIMER &stPulseTimer, SCRIPT_TIMER &stSecBarPulseTimer, INT iDrawRedDangerZonePercent = 0, PERCENTAGE_METER_LINE Percentage = PERCENTAGE_METER_LINE_NONE, BOOL MakeBarUrgent = FALSE, INT iUrgentPercentage = 0, FLOAT fCurrentLevel = -1.0, FLOAT fMaxLevel = -1.0, HUD_COLOURS PulseToColour = HUD_COLOUR_WHITE, INT iPulseTime = -1, BOOL bUseSecondaryBar = FALSE, HUD_COLOURS eSecondaryBarColour = HUD_COLOUR_WHITE, FLOAT fSecondaryBarPercentage = -1.0, BOOL bTransparentSecBarIntersectingMainBar = FALSE, HUD_COLOURS eSecBarPulseToColour = HUD_COLOUR_WHITE, INT iSecBarPulseTime = -1, FLOAT fSecBarStartPercentage = 0.0, BOOL bCapMaxPercentage = TRUE) CONST_FLOAT METER_WIDTH 0.007 CONST_FLOAT METER_HEIGHT 0.004 SPRITE_PLACEMENT Offsets[2] Offsets[0].y = 0.0 Offsets[0].w = METER_WIDTH Offsets[0].h = METER_HEIGHT Offsets[1].x = 0 Offsets[1].w = METER_WIDTH Offsets[1].h = METER_HEIGHT // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Offsets[0], Offset_Widget_Sprite[0]) // UPDATE_SPRITE_WIDGET_VALUE(Offsets[1], Offset_Widget_Sprite[1]) // // #ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF Percentage != PERCENTAGE_METER_LINE_NONE REQUEST_STREAMED_TEXTURE_DICT("timerbar_lines") ENDIF IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") // #IF IS_DEBUG_BUILD // IF DamagedWidgetINIT = FALSE // START_WIDGET_GROUP("DAMAGE METER GUTS") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_Sprite[0], "Offset_Widget_Sprite[0]") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_Sprite[1], "Offset_Widget_Sprite[1]") // // // STOP_WIDGET_GROUP() // DamagedWidgetINIT = TRUE // ENDIF // #ENDIF UPDATE_SPRITE_VALUE(Sprites[0], Offsets[0]) UPDATE_SPRITE_VALUE(Sprites[1], Offsets[1]) Sprites[3] = Sprites[0] SET_SPRITE_HUD_COLOUR(Sprites[1], Colour) IF MakeBarUrgent SET_SPRITE_HUD_COLOUR(Sprites[3], HUD_COLOUR_GREY) ELSE SET_SPRITE_HUD_COLOUR(Sprites[3], Colour) ENDIF IF iUrgentPercentage != 0 AND CurrentLevel < iUrgentPercentage SET_SPRITE_HUD_COLOUR(Sprites[1], HUD_COLOUR_RED) ENDIF IF iPulseTime > 0 IF NOT HAS_NET_TIMER_STARTED(stPulseTimer) START_NET_TIMER(stPulseTimer) ELIF HAS_NET_TIMER_EXPIRED(stPulseTimer, iPulseTime) REINIT_NET_TIMER(stPulseTimer) ENDIF SET_SPRITE_PULSE_COLOUR(Sprites[1], Colour, PulseToColour, iPulseTime, stPulseTimer) ENDIF #IF IS_DEBUG_BUILD IF GET_COMMANDLINE_PARAM_EXISTS("sc_displaytimerhudcolour") PRINTLN("[BCTIMER] TimerBars hud colour = ", HUD_COLOUR_AS_STRING(Colour)) ENDIF #ENDIF FLOAT Percent = ((TO_FLOAT(CurrentLevel)/TO_FLOAT(MaxLevel)) *100) IF (fCurrentLevel != -1.0 AND fMaxLevel != -1.0) Percent = (fCurrentLevel/fMaxLevel)*100.0 ELIF (fCurrentLevel != -1.0 AND fMaxLevel = -1.0) Percent = (fCurrentLevel/TO_FLOAT(MaxLevel))*100.0 ELIF (fCurrentLevel = -1.0 AND fMaxLevel != -1.0) Percent = (TO_FLOAT(CurrentLevel)/fMaxLevel)*100.0 ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) Sprites[3].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) IF MakeBarUrgent SET_SPRITE_HUD_COLOUR(Sprites[3], HUD_COLOUR_GREY) ELSE SET_SPRITE_HUD_COLOUR(Sprites[3], Colour) ENDIF Sprites[3].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) Sprites[3].a = 255 GET_SPRITE_LEVEL_BAR(Sprites[0], Percent, Sprites[1], TRUE, TRUE, OnlyZeroIsEmpty, DEFAULT, bCapMaxPercentage) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[1], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) IF (bUseSecondaryBar) SPRITE_PLACEMENT SecondaryBar = Sprites[1] GET_SPRITE_LEVEL_BAR(Sprites[0], fSecondaryBarPercentage, SecondaryBar, TRUE, TRUE, OnlyZeroIsEmpty, fSecBarStartPercentage, bCapMaxPercentage) SET_SPRITE_HUD_COLOUR(SecondaryBar, eSecondaryBarColour) SecondaryBar.a = 255 IF iSecBarPulseTime > 0 IF NOT HAS_NET_TIMER_STARTED(stSecBarPulseTimer) START_NET_TIMER(stSecBarPulseTimer) ELIF HAS_NET_TIMER_EXPIRED(stSecBarPulseTimer, iSecBarPulseTime) REINIT_NET_TIMER(stSecBarPulseTimer) ENDIF SET_SPRITE_PULSE_COLOUR(SecondaryBar, eSecondaryBarColour, eSecBarPulseToColour, iSecBarPulseTime, stSecBarPulseTimer) ENDIF IF (bTransparentSecBarIntersectingMainBar) IF (Percent <= fSecondaryBarPercentage) SecondaryBar.a = 100 ENDIF ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", SecondaryBar, FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder, FALSE) ENDIF // NET_NL()NET_PRINT("Percentage = ")NET_PRINT_INT(ENUM_TO_INT(Percentage)) IF Percentage != PERCENTAGE_METER_LINE_NONE REQUEST_STREAMED_TEXTURE_DICT("timerbar_lines") IF HAS_STREAMED_TEXTURE_DICT_LOADED("timerbar_lines") IF Percentage != PERCENTAGE_METER_LINE_ALL_20 STRING LineTexture = "LineMarker90_128" SWITCH Percentage CASE PERCENTAGE_METER_LINE_10 LineTexture = "LineMarker10_128" BREAK CASE PERCENTAGE_METER_LINE_20 LineTexture = "LineMarker20_128" BREAK CASE PERCENTAGE_METER_LINE_30 LineTexture = "LineMarker30_128" BREAK CASE PERCENTAGE_METER_LINE_40 LineTexture = "LineMarker40_128" BREAK CASE PERCENTAGE_METER_LINE_50 LineTexture = "LineMarker50_128" BREAK CASE PERCENTAGE_METER_LINE_60 LineTexture = "LineMarker60_128" BREAK CASE PERCENTAGE_METER_LINE_70 LineTexture = "LineMarker70_128" BREAK CASE PERCENTAGE_METER_LINE_80 LineTexture = "LineMarker80_128" BREAK CASE PERCENTAGE_METER_LINE_90 LineTexture = "LineMarker90_128" BREAK ENDSWITCH Sprites[3].a = 255 SET_SPRITE_HUD_COLOUR(Sprites[3], HUD_COLOUR_BLACK) // NET_NL()NET_PRINT("LineTexture = ")NET_PRINT(LineTexture) DRAW_2D_SPRITE("timerbar_lines", LineTexture, Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ELSE Sprites[3].a = 255 SET_SPRITE_HUD_COLOUR(Sprites[3], HUD_COLOUR_BLACK) DRAW_2D_SPRITE("timerbar_lines", "LineMarker20_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) DRAW_2D_SPRITE("timerbar_lines", "LineMarker40_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) DRAW_2D_SPRITE("timerbar_lines", "LineMarker60_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) DRAW_2D_SPRITE("timerbar_lines", "LineMarker80_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE NET_NL()NET_PRINT("waiting on timerbar_lines to load")NET_NL() ENDIF ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF (iDrawRedDangerZonePercent > 0) AND (Percent >= iDrawRedDangerZonePercent) SET_SPRITE_HUD_COLOUR(Sprites[1], HUD_COLOUR_RED) GET_SPRITE_LEVEL_BAR(Sprites[0], TO_FLOAT(iDrawRedDangerZonePercent), Sprites[1], TRUE, TRUE, OnlyZeroIsEmpty, DEFAULT, bCapMaxPercentage) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[1], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // DRAW_2D_SPRITE("TimerBars", "DamageBar_128", Sprites[0], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ELSE NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() ENDIF // SPRITE_PLACEMENT Offsets[4] // // Offsets[0].y += 0.00025 // Offsets[0].w = 0.006-0.003+0.004 // Offsets[0].h = 0.006-0.002 // // Offsets[1].x = 0.001+0.001 // Offsets[1].y += -0.001 // Offsets[1].w = 0.003 // Offsets[1].h = 0.003-0.008 // // Offsets[2].x = 0.002+0.001+0.001 // // Offsets[2].w = 0.003+0.002 // Offsets[2].h = 0.002+0.003 // // Offsets[3].x = 0.001-0.001 // Offsets[3].y += -0.0005-0.001 // Offsets[3].w = 0.005-0.006 // Offsets[3].h = 0.018-0.005-0.010-0.005 // // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Offsets[0], Offset_Widget_Sprite[0]) // UPDATE_SPRITE_WIDGET_VALUE(Offsets[1], Offset_Widget_Sprite[1]) // UPDATE_SPRITE_WIDGET_VALUE(Offsets[2], Offset_Widget_Sprite[2]) // UPDATE_SPRITE_WIDGET_VALUE(Offsets[3], Offset_Widget_Sprite[3]) // #ENDIF // // REQUEST_STREAMED_TEXTURE_DICT("TimerBars") // IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") // // #IF IS_DEBUG_BUILD // IF DamagedWidgetINIT = FALSE // START_WIDGET_GROUP("DAMAGE METER GUTS") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_Sprite[0], "Offset_Widget_Sprite[0]") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_Sprite[1], "Offset_Widget_Sprite[1]") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_Sprite[2], "Offset_Widget_Sprite[2]") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_Sprite[3], "Offset_Widget_Sprite[3]") // // STOP_WIDGET_GROUP() // DamagedWidgetINIT = TRUE // ENDIF // #ENDIF // // UPDATE_SPRITE_VALUE(Sprites[0], Offsets[0]) // // Sprites[1] = Sprites[0] // Sprites[3] = Sprites[0] // // // // // // // // // // SET_SPRITE_HUD_COLOUR(Sprites[1], Colour) // SET_SPRITE_HUD_COLOUR(Sprites[3], HUD_COLOUR_BLACK)// GET_BAR_CONTRAST_COLOUR(Colour)) // // // // FLOAT Percent = ((TO_FLOAT(CurrentLevel)/TO_FLOAT(MaxLevel)) *100) // // SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // UPDATE_SPRITE_VALUE(Sprites[3], Offsets[3]) // Sprites[3].a = 128 // DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) // SET_SPRITE_HUD_COLOUR(Sprites[3], GET_BAR_CONTRAST_COLOUR(Colour)) // Sprites[3].a = 178 // DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Sprites[3].a = 255 // // GET_SPRITE_LEVEL_BAR(Sprites[0], Percent,Sprites[2], FALSE, FALSE, OnlyZeroIsEmpty) // // SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // UPDATE_SPRITE_VALUE(Sprites[2], Offsets[2]) // SET_MASK_ATTRIBUTES(Sprites[2].x, Sprites[2].y, Sprites[2].w, Sprites[2].h) // SET_MASK_ACTIVE(TRUE) // SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // UPDATE_SPRITE_VALUE(Sprites[1], Offsets[1]) // DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[1], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) // SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // SET_MASK_ATTRIBUTES(0,0,0,0) // SET_MASK_ACTIVE(FALSE) // // // // SET_SCRIPT_GFX_DRAW_ORDER(anOrder) //// DRAW_2D_SPRITE("TimerBars", "DamageBar_128", Sprites[0], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // // // ELSE // NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() // // ENDIF ENDPROC //BOOL DamagedBIGWidgetINIT //SPRITE_PLACEMENT Offset_BIGWidget_Sprite[2] PROC RUN_BIG_METER_GUTS(INT CurrentLevel, INT MaxLevel, SPRITE_PLACEMENT& Sprites[], HUD_COLOURS Colour, BOOL OnlyZeroIsEmpty, GFX_DRAW_ORDER anOrder, PERCENTAGE_METER_LINE Percentage, SCRIPT_TIMER &stPulseTimer, SCRIPT_TIMER &stSecBarPulseTimer, FLOAT fCurrentLevel = -1.0, FLOAT fMaxLevel = -1.0, HUD_COLOURS PulseToColour = HUD_COLOUR_WHITE, INT iPulseTime = -1, BOOL bUseSecondaryBar = FALSE, HUD_COLOURS eSecondaryBarColour = HUD_COLOUR_WHITE, FLOAT fSecondaryBarPercentage = 0.0, BOOL bTransparentSecBarIntersectingMainBar = FALSE, HUD_COLOURS eSecBarPulseToColour = HUD_COLOUR_WHITE, INT iSecBarPulseTime = -1, BOOL bCapMaxPercentage = TRUE) CONST_FLOAT METER_WIDTH 0.007 CONST_FLOAT METER_HEIGHT 0.016 SPRITE_PLACEMENT Offsets[2] Offsets[0].y = -0.004 Offsets[0].w = METER_WIDTH Offsets[0].h = METER_HEIGHT Offsets[1].w = METER_WIDTH Offsets[1].h = METER_HEIGHT // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Offsets[0], Offset_BIGWidget_Sprite[0]) // UPDATE_SPRITE_WIDGET_VALUE(Offsets[1], Offset_BIGWidget_Sprite[1]) // // #ENDIF // #IF IS_DEBUG_BUILD // IF DamagedBIGWidgetINIT = FALSE // START_WIDGET_GROUP("DAMAGE BIG METER GUTS") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_BIGWidget_Sprite[0], "Offset_Widget_Sprite[0]") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_BIGWidget_Sprite[1], "Offset_Widget_Sprite[1]") // // // STOP_WIDGET_GROUP() // DamagedBIGWidgetINIT = TRUE // ENDIF // #ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF Percentage != PERCENTAGE_METER_LINE_NONE REQUEST_STREAMED_TEXTURE_DICT("timerbar_lines") ENDIF IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") UPDATE_SPRITE_VALUE(Sprites[0], Offsets[0]) UPDATE_SPRITE_VALUE(Sprites[1], Offsets[1]) Sprites[3] = Sprites[0] SET_SPRITE_HUD_COLOUR(Sprites[1], Colour) SET_SPRITE_HUD_COLOUR(Sprites[3], Colour) IF iPulseTime > 0 IF NOT HAS_NET_TIMER_STARTED(stPulseTimer) START_NET_TIMER(stPulseTimer) ELIF HAS_NET_TIMER_EXPIRED(stPulseTimer, iPulseTime) REINIT_NET_TIMER(stPulseTimer) ENDIF SET_SPRITE_PULSE_COLOUR(Sprites[1], Colour, PulseToColour, iPulseTime, stPulseTimer) ENDIF FLOAT Percent = ((TO_FLOAT(CurrentLevel)/TO_FLOAT(MaxLevel)) *100) IF (fCurrentLevel != -1.0 AND fMaxLevel != -1.0) Percent = (fCurrentLevel/fMaxLevel)*100.0 ELIF (fCurrentLevel != -1.0 AND fMaxLevel = -1.0) Percent = (fCurrentLevel/TO_FLOAT(MaxLevel))*100.0 ELIF (fCurrentLevel = -1.0 AND fMaxLevel != -1.0) Percent = (TO_FLOAT(CurrentLevel)/fMaxLevel)*100.0 ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) Sprites[3].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) SET_SPRITE_HUD_COLOUR(Sprites[3], Colour) Sprites[3].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) Sprites[3].a = 255 GET_SPRITE_LEVEL_BAR(Sprites[0], Percent,Sprites[1], TRUE, TRUE, OnlyZeroIsEmpty, DEFAULT, bCapMaxPercentage) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[1], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) IF (bUseSecondaryBar) SPRITE_PLACEMENT SecondaryBar = Sprites[1] GET_SPRITE_LEVEL_BAR(Sprites[0], fSecondaryBarPercentage, SecondaryBar, TRUE, TRUE, OnlyZeroIsEmpty, DEFAULT, bCapMaxPercentage) SET_SPRITE_HUD_COLOUR(SecondaryBar, eSecondaryBarColour) SecondaryBar.a = 255 IF iSecBarPulseTime > 0 IF NOT HAS_NET_TIMER_STARTED(stSecBarPulseTimer) START_NET_TIMER(stSecBarPulseTimer) ELIF HAS_NET_TIMER_EXPIRED(stSecBarPulseTimer, iSecBarPulseTime) REINIT_NET_TIMER(stSecBarPulseTimer) ENDIF SET_SPRITE_PULSE_COLOUR(SecondaryBar, eSecondaryBarColour, eSecBarPulseToColour, iSecBarPulseTime, stSecBarPulseTimer) ENDIF IF (bTransparentSecBarIntersectingMainBar) IF (Percent <= fSecondaryBarPercentage) SecondaryBar.a = 100 ENDIF ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", SecondaryBar, FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF IF Percentage != PERCENTAGE_METER_LINE_NONE REQUEST_STREAMED_TEXTURE_DICT("timerbar_lines") IF HAS_STREAMED_TEXTURE_DICT_LOADED("timerbar_lines") STRING LineTexture = "LineMarker90_128" SWITCH Percentage CASE PERCENTAGE_METER_LINE_10 LineTexture = "LineMarker10_128" BREAK CASE PERCENTAGE_METER_LINE_20 LineTexture = "LineMarker20_128" BREAK CASE PERCENTAGE_METER_LINE_30 LineTexture = "LineMarker30_128" BREAK CASE PERCENTAGE_METER_LINE_40 LineTexture = "LineMarker40_128" BREAK CASE PERCENTAGE_METER_LINE_50 LineTexture = "LineMarker50_128" BREAK CASE PERCENTAGE_METER_LINE_60 LineTexture = "LineMarker60_128" BREAK CASE PERCENTAGE_METER_LINE_70 LineTexture = "LineMarker70_128" BREAK CASE PERCENTAGE_METER_LINE_80 LineTexture = "LineMarker80_128" BREAK CASE PERCENTAGE_METER_LINE_90 LineTexture = "LineMarker90_128" BREAK ENDSWITCH Sprites[1].a = 255 SET_SPRITE_HUD_COLOUR(Sprites[1], HUD_COLOUR_BLACK) NET_NL()NET_PRINT("LineTexture = ")NET_PRINT(LineTexture) DRAW_2D_SPRITE("timerbar_lines", LineTexture, Sprites[1], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ELSE NET_NL()NET_PRINT("waiting on timerbar_lines to load")NET_NL() ENDIF ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // DRAW_2D_SPRITE("TimerBars", "DamageBar_128", Sprites[0], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ELSE NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() ENDIF ENDPROC //BOOL DamagedWidgetSpriteMeterINIT //SPRITE_PLACEMENT Offset_Widget_SpriteMeter[2] PROC RUN_SPRITE_METER_GUTS(INT CurrentLevel, INT MaxLevel, SPRITE_PLACEMENT& Sprites[], HUD_COLOURS Colour, BOOL OnlyZeroIsEmpty, GFX_DRAW_ORDER anOrder) CONST_FLOAT METER_WIDTH 0.011 CONST_FLOAT METER_HEIGHT 0.059 SPRITE_PLACEMENT Offsets[2] Offsets[0].x = 0.003 Offsets[0].y = -0.004 Offsets[0].w = METER_WIDTH Offsets[0].h = METER_HEIGHT Offsets[1].x = 0 Offsets[1].w = METER_WIDTH Offsets[1].h = METER_HEIGHT // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Offsets[0], Offset_Widget_SpriteMeter[0]) // UPDATE_SPRITE_WIDGET_VALUE(Offsets[1], Offset_Widget_SpriteMeter[1]) // // #ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") // #IF IS_DEBUG_BUILD // IF DamagedWidgetSpriteMeterINIT = FALSE // START_WIDGET_GROUP("DAMAGE SPRITE METER GUTS") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_SpriteMeter[0], "Offset_Widget_SpriteMeter[0]") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_SpriteMeter[1], "Offset_Widget_SpriteMeter[1]") // // // STOP_WIDGET_GROUP() // DamagedWidgetSpriteMeterINIT = TRUE // ENDIF // #ENDIF UPDATE_SPRITE_VALUE(Sprites[0], Offsets[0]) UPDATE_SPRITE_VALUE(Sprites[1], Offsets[1]) Sprites[3] = Sprites[0] SET_SPRITE_HUD_COLOUR(Sprites[1], Colour) SET_SPRITE_HUD_COLOUR(Sprites[3], Colour) // #IF IS_DEBUG_BUILD // IF GET_COMMANDLINE_PARAM_EXISTS("sc_displaytimerhudcolour") // PRINTLN("[BCTIMER] TimerBars hud colour = ", HUD_COLOUR_AS_STRING(Colour)) // ENDIF // #ENDIF FLOAT Percent = ((TO_FLOAT(CurrentLevel)/TO_FLOAT(MaxLevel)) *100) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) Sprites[3].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) SET_SPRITE_HUD_COLOUR(Sprites[3], Colour) Sprites[3].a = TIMER_METER_NON_SELECTED_ALPHA DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[3], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) Sprites[3].a = 255 GET_SPRITE_LEVEL_BAR(Sprites[0], Percent, Sprites[1], TRUE, TRUE, OnlyZeroIsEmpty) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) DRAW_2D_SPRITE("TimerBars", "DamageBarFill_128", Sprites[1], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) ELSE NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() ENDIF ENDPROC FUNC STRING GET_MODELNAME_TEXTURE(MODEL_NAMES modelName) SWITCH modelname CASE HUNTER RETURN "hunter" CASE ROGUE RETURN "rogue" CASE HAVOK RETURN "havok" CASE MOGUL RETURN "mogul" CASE STARLING RETURN "starling" CASE MOLOTOK RETURN "molotok" CASE NOKOTA RETURN "nokota" CASE PYRO RETURN "pyro" CASE LAZER RETURN "lazer" CASE TULA RETURN "tula" CASE MICROLIGHT RETURN "ultralight" CASE HYDRA RETURN "hydra" CASE ANNIHILATOR RETURN "annihl" CASE BUZZARD RETURN "buzzard" CASE SAVAGE RETURN "savage" CASE THRUSTER RETURN "thruster" CASE AKULA RETURN "akula" ENDSWITCH RETURN "" ENDFUNC FUNC STRING GET_WEAPONTYPE_TEXTURE(WEAPON_TYPE aWeapon) SWITCH aWeapon CASE WEAPONTYPE_DLC_ASSAULTMG RETURN "WEAPON_ASSAULT_MG" CASE WEAPONTYPE_BALL RETURN "WEAPON_BALL" CASE WEAPONTYPE_BAT RETURN "WEAPON_BAT" CASE WEAPONTYPE_DLC_BOTTLE RETURN "WEAPON_BOTTLE" CASE WEAPONTYPE_DLC_BULLPUPRIFLE RETURN "WEAPON_BULLPUPRIFLE" CASE WEAPONTYPE_DLC_COMBATPDW RETURN "WEAPON_COMBATPDW" CASE WEAPONTYPE_DLC_COMPACTRIFLE RETURN "WEAPON_COMPACTRIFLE" CASE WEAPONTYPE_CROWBAR RETURN "WEAPON_CROWBAR" CASE WEAPONTYPE_DLC_DAGGER RETURN "WEAPON_DAGGER" CASE WEAPONTYPE_DLC_DBSHOTGUN RETURN "WEAPON_DBSHOTGUN" CASE WEAPONTYPE_DLC_FIREWORK RETURN "WEAPON_FIREWORK" CASE WEAPONTYPE_FLARE RETURN "WEAPON_FLARE" CASE WEAPONTYPE_DLC_FLAREGUN RETURN "WEAPON_FLARE_GUN" CASE WEAPONTYPE_DLC_FLASHLIGHT RETURN "WEAPON_FLASHLIGHT" CASE WEAPONTYPE_GOLFCLUB RETURN "WEAPON_GOLFCLUB" CASE WEAPONTYPE_DLC_GUSENBERG RETURN "WEAPON_GUSENBERG" CASE WEAPONTYPE_HAMMER RETURN "WEAPON_HAMMER" CASE WEAPONTYPE_DLC_HATCHET RETURN "WEAPON_HATCHET" CASE WEAPONTYPE_GRENADELAUNCHER RETURN "WEAPON_HEAVY_GRENADE_LAUNCHER" CASE WEAPONTYPE_MINIGUN RETURN "WEAPON_HEAVY_MINIGUN" CASE WEAPONTYPE_DLC_HEAVYRIFLE RETURN "WEAPON_HEAVY_RIFLE" CASE WEAPONTYPE_RPG RETURN "WEAPON_HEAVY_RPG" CASE WEAPONTYPE_DLC_HEAVYPISTOL RETURN "WEAPON_HEAVYPISTOL" CASE WEAPONTYPE_DLC_HEAVYSHOTGUN RETURN "WEAPON_HEAVYSHOTGUN" CASE WEAPONTYPE_DLC_HOMINGLAUNCHER RETURN "WEAPON_HOMINGLAUNCHER" CASE WEAPONTYPE_PETROLCAN RETURN "WEAPON_JERRY_CAN" CASE WEAPONTYPE_KNIFE RETURN "WEAPON_KNIFE" CASE WEAPONTYPE_DLC_KNUCKLE RETURN "WEAPON_KNUCKLE" CASE WEAPONTYPE_MG RETURN "WEAPON_LMG" CASE WEAPONTYPE_COMBATMG RETURN "WEAPON_LMG_COMBAT" CASE WEAPONTYPE_DLC_MACHETE RETURN "WEAPON_MACHETE" CASE WEAPONTYPE_DLC_MACHINEPISTOL RETURN "WEAPON_MACHINEPISTOL" CASE WEAPONTYPE_DLC_MARKSMANPISTOL RETURN "WEAPON_MARKSMANPISTOL" CASE WEAPONTYPE_DLC_MARKSMANRIFLE RETURN "WEAPON_MARKSMANRIFLE" CASE WEAPONTYPE_MOLOTOV RETURN "WEAPON_MOLOTOV" CASE WEAPONTYPE_DLC_MUSKET RETURN "WEAPON_MUSKET" CASE WEAPONTYPE_NIGHTSTICK RETURN "WEAPON_NIGHTSTICK" CASE WEAPONTYPE_PISTOL RETURN "WEAPON_PISTOL" CASE WEAPONTYPE_DLC_PISTOL50 RETURN "WEAPON_PISTOL_50" CASE WEAPONTYPE_APPISTOL RETURN "WEAPON_PISTOL_AP" CASE WEAPONTYPE_COMBATPISTOL RETURN "WEAPON_PISTOL_COMBAT" CASE WEAPONTYPE_DLC_PROGRAMMABLEAR RETURN "WEAPON_PROGRAMMABLE_AR" CASE WEAPONTYPE_DLC_PROXMINE RETURN "WEAPON_PROXIMINE" CASE WEAPONTYPE_DLC_RAILGUN RETURN "WEAPON_RAILGUN" CASE WEAPONTYPE_DLC_REVOLVER RETURN "WEAPON_REVOLVER" CASE WEAPONTYPE_ADVANCEDRIFLE RETURN "WEAPON_RIFLE_ADVANCED" CASE WEAPONTYPE_ASSAULTRIFLE RETURN "WEAPON_RIFLE_ASSAULT" CASE WEAPONTYPE_CARBINERIFLE RETURN "WEAPON_RIFLE_CARBINE" CASE WEAPONTYPE_ASSAULTSHOTGUN RETURN "WEAPON_SHOTGUN_ASSAULT" CASE WEAPONTYPE_DLC_BULLPUPSHOTGUN RETURN "WEAPON_SHOTGUN_BULLPUP" CASE WEAPONTYPE_PUMPSHOTGUN RETURN "WEAPON_SHOTGUN_PUMP" CASE WEAPONTYPE_SAWNOFFSHOTGUN RETURN "WEAPON_SHOTGUN_SAWNOFF" CASE WEAPONTYPE_SMG RETURN "WEAPON_SMG" CASE WEAPONTYPE_DLC_ASSAULTSMG RETURN "WEAPON_SMG_ASSAULT" CASE WEAPONTYPE_MICROSMG RETURN "WEAPON_SMG_MICRO" CASE WEAPONTYPE_SNIPERRIFLE RETURN "WEAPON_SNIPER" CASE WEAPONTYPE_DLC_ASSAULTSNIPER RETURN "WEAPON_SNIPER_ASSAULT" CASE WEAPONTYPE_HEAVYSNIPER RETURN "WEAPON_SNIPER_HEAVY" CASE WEAPONTYPE_DLC_SNOWBALL RETURN "WEAPON_SNOWBALL" CASE WEAPONTYPE_DLC_SNSPISTOL RETURN "WEAPON_SNSPISTOL" CASE WEAPONTYPE_DLC_SPECIALCARBINE RETURN "WEAPON_SPECIALCARBINE" CASE WEAPONTYPE_STUNGUN RETURN "WEAPON_STUNGUN" CASE WEAPONTYPE_DLC_SWITCHBLADE RETURN "WEAPON_SWITCHBLADE" CASE WEAPONTYPE_BZGAS RETURN "WEAPON_THROWN_BZ_GAS" CASE WEAPONTYPE_GRENADE RETURN "WEAPON_THROWN_GRENADE" CASE WEAPONTYPE_STICKYBOMB RETURN "WEAPON_THROWN_STICKY" CASE WEAPONTYPE_UNARMED RETURN "WEAPON_UNARMED" CASE WEAPONTYPE_DLC_VINTAGEPISTOL RETURN "WEAPON_VINTAGEPISTOL" CASE WEAPONTYPE_DLC_AUTOSHOTGUN RETURN "WEAPON_AUTOMATIC_SHOTGUN" CASE WEAPONTYPE_DLC_BATTLEAXE RETURN "WEAPON_BATTLE_AXE" CASE WEAPONTYPE_DLC_COMPACTLAUNCHER RETURN "WEAPON_COMPACT_GRENADE_LAUNCHER" CASE WEAPONTYPE_DLC_MINISMG RETURN "WEAPON_MINI_SMG" CASE WEAPONTYPE_DLC_PIPEBOMB RETURN "WEAPON_PIPEBOMB" CASE WEAPONTYPE_DLC_POOLCUE RETURN "WEAPON_POOL_CUE" CASE WEAPONTYPE_DLC_WRENCH RETURN "WEAPON_WRENCH" ENDSWITCH RETURN "" ENDFUNC //BOOL DamagedWidgetSpriteWeaponINIT //SPRITE_PLACEMENT Offset_Widget_SpriteWeapon[2] PROC RUN_SPRITE_METER_SPRITE(STRING spriteName, SPRITE_PLACEMENT& Sprites[], GFX_DRAW_ORDER anOrder, STRING dictionaryName) SPRITE_PLACEMENT Offsets[1] Offsets[0].x = 0 Offsets[0].y = 0 Offsets[0].w = -0.015 Offsets[0].h = -0.025 // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Offsets[0], Offset_Widget_SpriteWeapon[0]) // // // #ENDIF REQUEST_STREAMED_TEXTURE_DICT(dictionaryName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(dictionaryName) // #IF IS_DEBUG_BUILD // IF DamagedWidgetSpriteWeaponINIT = FALSE // START_WIDGET_GROUP("DAMAGE SPRITE METER WEAPONS") // CREATE_A_SPRITE_PLACEMENT_WIDGET(Offset_Widget_SpriteWeapon[0], "Offset_Widget_SpriteWeapon[0]") // STOP_WIDGET_GROUP() // DamagedWidgetSpriteWeaponINIT = TRUE // ENDIF // #ENDIF UPDATE_SPRITE_VALUE(Sprites[0], Offsets[0]) SET_SPRITE_HUD_COLOUR(Sprites[0], HUD_COLOUR_WHITE) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) Sprites[0].a = 255 DRAW_2D_SPRITE(dictionaryName, spriteName, Sprites[0], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) SET_SCRIPT_GFX_DRAW_ORDER(anOrder) ELSE NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() ENDIF ENDPROC FUNC BOOL SHOULD_DRAW_SQUARE(INT iCurrentSquare, INT NumVisibleSquares) IF NumVisibleSquares = -1 RETURN TRUE ENDIF IF iCurrentSquare > NumVisibleSquares RETURN FALSE ENDIF RETURN TRUE ENDFUNC FUNC SPRITE_PLACEMENT SET_SPRITE_COLOUR_ACTIVE(SPRITE_PLACEMENT aSprite, BOOL Active) SPRITE_PLACEMENT TempSprite = aSprite IF Active TempSprite.r = 20 TempSprite.g = 120 TempSprite.b = 20 ELSE TempSprite.r = 120 TempSprite.g = 20 TempSprite.b = 20 ENDIF RETURN TempSprite ENDFUNC FUNC SPRITE_PLACEMENT SET_SPRITE_COLOUR_ELIMINATION(SPRITE_PLACEMENT aSprite, BOOL Active, HUD_COLOURS ActiveColour, HUD_COLOURS inActiveColour, HUD_COLOURS BoxColour, HUD_COLOURS BoxColour_Inactive) SPRITE_PLACEMENT TempSprite = aSprite IF BoxColour = HUD_COLOUR_PURE_WHITE // AND BoxColour_Inactive = HUD_COLOUR_PURE_WHITE //Potential fix if your buttons are pure_white. IF Active SET_SPRITE_HUD_COLOUR(TempSprite, ActiveColour) ELSE SET_SPRITE_HUD_COLOUR(TempSprite, inActiveColour) ENDIF ELSE IF Active SET_SPRITE_HUD_COLOUR(TempSprite,BoxColour) ELSE SET_SPRITE_HUD_COLOUR(TempSprite,BoxColour_Inactive) ENDIF ENDIF IF Active = FALSE // TempSprite.a = 90 ENDIF RETURN TempSprite ENDFUNC //#IF IS_DEBUG_BUILD // BOOL InitiMaskElim // SPRITE_PLACEMENT EliminationWidget // FLOAT EliminationSpacingWidget //#ENDIF PROC RUN_ELIMINATION_GUTS(INT MaxNumCheckpoints, SPRITE_PLACEMENT& Sprites[], HUD_COLOURS FirstColour, HUD_COLOURS SecondColour, INT iVisibleBoxes, BOOL IsEliminated1, BOOL IsEliminated2, BOOL IsEliminated3, BOOL IsEliminated4, BOOL IsEliminated5, BOOL IsEliminated6, BOOL IsEliminated7, BOOL IsEliminated8, HUD_COLOURS Box1Colour,HUD_COLOURS Box2Colour, HUD_COLOURS Box3Colour, HUD_COLOURS Box4Colour, HUD_COLOURS Box5Colour, HUD_COLOURS Box6Colour, HUD_COLOURS Box7Colour, HUD_COLOURS Box8Colour, HUD_COLOURS Box1Colour_Inactive,HUD_COLOURS Box2Colour_Inactive, HUD_COLOURS Box3Colour_Inactive, HUD_COLOURS Box4Colour_Inactive, HUD_COLOURS Box5Colour_Inactive, HUD_COLOURS Box6Colour_Inactive, HUD_COLOURS Box7Colour_Inactive, HUD_COLOURS Box8Colour_Inactive, GFX_DRAW_ORDER anOrder #IF USE_TU_CHANGES , BOOL CrossedDot0, BOOL CrossedDot1, BOOL CrossedDot2, BOOL CrossedDot3, BOOL CrossedDot4, BOOL CrossedDot5, BOOL CrossedDot6, BOOL CrossedDot7, HUD_COLOURS CrossedDot0Colour, HUD_COLOURS CrossedDot1Colour, HUD_COLOURS CrossedDot2Colour, HUD_COLOURS CrossedDot3Colour, HUD_COLOURS CrossedDot4Colour, HUD_COLOURS CrossedDot5Colour, HUD_COLOURS CrossedDot6Colour, HUD_COLOURS CrossedDot7Colour #ENDIF ) // #IF IS_DEBUG_BUILD // IF InitiMaskElim = FALSE // // START_WIDGET_GROUP("RUN ELIMINATION GUTS") // CREATE_A_SPRITE_PLACEMENT_WIDGET(EliminationWidget, "EliminationWidget") // ADD_WIDGET_FLOAT_SLIDER("EliminationSpacingWidget", EliminationSpacingWidget, -1, 1, 0.001) // // STOP_WIDGET_GROUP() // // InitiMaskElim = TRUE // ENDIF // #ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") #IF USE_TU_CHANGES REQUEST_STREAMED_TEXTURE_DICT("Cross") #ENDIF IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") #IF USE_TU_CHANGES AND HAS_STREAMED_TEXTURE_DICT_LOADED("Cross") #ENDIF BOOL IsActive HUD_COLOURS BoxColour, BoxColour_Inactive FLOAT SpacingofDots = CHECKPOINT_DOT_SPACING // #IF IS_DEBUG_BUILD // SpacingofDots += EliminationSpacingWidget // #ENDIF INT I FOR I = 0 TO MaxNumCheckpoints-1 // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Sprites[I], EliminationWidget) // #ENDIF Sprites[I].x += SpacingofDots*(I) IF SHOULD_DRAW_SQUARE(i, iVisibleBoxes) SWITCH I CASE 0 IsActive = IsEliminated1 BoxColour = Box1Colour BoxColour_Inactive = Box1Colour_Inactive BREAK CASE 1 IsActive = IsEliminated2 BoxColour = Box2Colour BoxColour_Inactive = Box2Colour_Inactive BREAK CASE 2 IsActive = IsEliminated3 BoxColour = Box3Colour BoxColour_Inactive = Box3Colour_Inactive BREAK CASE 3 IsActive = IsEliminated4 BoxColour = Box4Colour BoxColour_Inactive = Box4Colour_Inactive BREAK CASE 4 IsActive = IsEliminated5 BoxColour = Box5Colour BoxColour_Inactive = Box5Colour_Inactive BREAK CASE 5 IsActive = IsEliminated6 BoxColour = Box6Colour BoxColour_Inactive = Box6Colour_Inactive BREAK CASE 6 IsActive = IsEliminated7 BoxColour = Box7Colour BoxColour_Inactive = Box7Colour_Inactive BREAK CASE 7 IsActive = IsEliminated8 BoxColour = Box8Colour BoxColour_Inactive = Box8Colour_Inactive BREAK ENDSWITCH // NET_NL()NET_PRINT("RUN_ELIMINATION_GUTS: FirstColour = ")NET_PRINT(HUD_COLOUR_AS_STRING(FirstColour)) // NET_NL()NET_PRINT("RUN_ELIMINATION_GUTS: SecondColour = ")NET_PRINT(HUD_COLOUR_AS_STRING(SecondColour)) // NET_NL()NET_PRINT("RUN_ELIMINATION_GUTS: BoxColour_Inactive = ")NET_PRINT(HUD_COLOUR_AS_STRING(BoxColour_Inactive)) // NET_NL()NET_PRINT("RUN_ELIMINATION_GUTS: BoxColour = ")NET_PRINT(HUD_COLOUR_AS_STRING(BoxColour)) SPRITE_PLACEMENT sTempPlacement BOOL reduceAlpha = FALSE IF BoxColour_Inactive = HUD_COLOUR_BLACK reduceAlpha = TRUE BoxColour_Inactive = HUD_COLOUR_WHITE ENDIF sTempPlacement = SET_SPRITE_COLOUR_ELIMINATION(Sprites[I], IsActive, FirstColour, SecondColour, BoxColour, BoxColour_Inactive) IF reduceAlpha sTempPlacement.a = TIMER_METER_NON_SELECTED_ALPHA ENDIF DRAW_2D_SPRITE("TimerBars", "Circle_checkpoints", sTempPlacement, FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) #IF USE_TU_CHANGES IF DRAW_CROSSED_DOT(I, CrossedDot0, CrossedDot1, CrossedDot2, CrossedDot3, CrossedDot4, CrossedDot5, CrossedDot6, CrossedDot7) SWITCH I CASE 0 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot0Colour) BREAK CASE 1 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot1Colour) BREAK CASE 2 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot2Colour) BREAK CASE 3 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot3Colour) BREAK CASE 4 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot4Colour) BREAK CASE 5 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot5Colour) BREAK CASE 6 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot6Colour) BREAK CASE 7 SET_SPRITE_HUD_COLOUR(Sprites[I], CrossedDot7Colour) BREAK ENDSWITCH DRAW_2D_SPRITE("Cross", "Circle_checkpoints_Cross", Sprites[I], FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF #ENDIF ENDIF ENDFOR ENDIF // // // // SET_SPRITE_HUD_COLOUR(Sprites[0], OuterRingColour) // DRAW_2D_SPRITE("TimerBars", "GaugeForIngameHUD_Outline", Sprites[0], FALSE) // INT I // BOOL IsActive // HUD_COLOURS BoxColour, BoxColour_Inactive // // IF iVisibleBoxes > -1 // GET_SPRITE_LEVEL_BAR(Sprites[0], 100,Sprites[2], FALSE) // //// SET_SPRITE_BLACK(Sprites[2]) // Sprites[2].a = 90 // // DRAW_2D_SPRITE("TimerBars", "GaugeForIngameHUD_BackgroundAndFill", Sprites[2], FALSE) // ENDIF // // FOR I = 1 TO MaxNumCheckpoints // // // SWITCH I // CASE 1 // IsActive = IsEliminated1 // BoxColour = Box1Colour // BoxColour_Inactive = Box1Colour_Inactive // BREAK // CASE 2 // IsActive = IsEliminated2 // BoxColour = Box2Colour // BoxColour_Inactive = Box2Colour_Inactive // BREAK // CASE 3 // IsActive = IsEliminated3 // BoxColour = Box3Colour // BoxColour_Inactive = Box3Colour_Inactive // BREAK // CASE 4 // IsActive = IsEliminated4 // BoxColour = Box4Colour // BoxColour_Inactive = Box4Colour_Inactive // BREAK // CASE 5 // IsActive = IsEliminated5 // BoxColour = Box5Colour // BoxColour_Inactive = Box5Colour_Inactive // BREAK // CASE 6 // IsActive = IsEliminated6 // BoxColour = Box6Colour // BoxColour_Inactive = Box6Colour_Inactive // BREAK // CASE 7 // IsActive = IsEliminated7 // BoxColour = Box7Colour // BoxColour_Inactive = Box7Colour_Inactive // BREAK // CASE 8 // IsActive = IsEliminated8 // BoxColour = Box8Colour // BoxColour_Inactive = Box8Colour_Inactive // BREAK // ENDSWITCH // // FLOAT BlockPercentage = TO_FLOAT(I)/TO_FLOAT(MaxNumCheckpoints) // BlockPercentage *= 100 // FLOAT iBlockPercentage = (BlockPercentage) // // IF SHOULD_DRAW_SQUARE(i, iVisibleBoxes) // GET_SPRITE_LEVEL_BAR(Sprites[0], iBlockPercentage,Sprites[1], FALSE, TRUE, MaxNumCheckpoints) // SPRITE_PLACEMENT sTempPlacement = SET_SPRITE_COLOUR_ELIMINATION(Sprites[1], IsActive, FirstColour, SecondColour, BoxColour, BoxColour_Inactive) // DRAW_2D_SPRITE("TimerBars", "GaugeForIngameHUD_BackgroundAndFill", sTempPlacement, FALSE) // ENDIF // ENDFOR // DRAW_DIVIDING_LINES(Sprites[0],aRect, MaxNumCheckpoints) // ELSE // NET_NL()NET_PRINT("waiting on TimerBars to load")NET_NL() // // ENDIF ENDPROC //FUNC BOOL IS_CHECKBOX_DISPLAYING() // RETURN MPGlobalsScoreHud.bRunningCheckbox //ENDFUNC // //FUNC BOOL IS_SCREEN_TIMER_DISPLAYING() // RETURN MPGlobalsScoreHud.bRunningScreenTimer //ENDFUNC //FUNC INT GET_NUM_BAR_DISPLAYS_ON_SCREEN() // INT Count // IF IS_CHECKBOX_DISPLAYING() // Count++ // ENDIF // IF IS_SCREEN_TIMER_DISPLAYING() // Count++ // ENDIF // RETURN Count //ENDFUNC FUNC FLOAT GET_Y_SHIFT(UIELEMENTS WhichSpace) SWITCH WhichSpace CASE UIELEMENTS_BOTTOMRIGHT RETURN MPGlobalsScoreHud.BottomStartY BREAK CASE UIELEMENTS_MIDDLERIGHT RETURN MPGlobalsScoreHud.HudStartY BREAK ENDSWITCH RETURN MPGlobalsScoreHud.BottomStartY ENDFUNC PROC CHANGE_Y_SHIFT_END(UIELEMENTS WhichSpace, FLOAT Amount) SWITCH WhichSpace CASE UIELEMENTS_BOTTOMRIGHT MPGlobalsScoreHud.BottomStartY += Amount BREAK CASE UIELEMENTS_MIDDLERIGHT MPGlobalsScoreHud.HudStartY += Amount BREAK ENDSWITCH ENDPROC PROC SET_INSTRUCTIONAL_BUTTONS_UNDER_HUD_THIS_FRAME(INT iNumRows = 1) #IF IS_DEBUG_BUILD IF GET_COMMANDLINE_PARAM_EXISTS("sc_TraceTimersShiftUp") DEBUG_PRINTCALLSTACK() NET_NL()NET_PRINT("SET_INSTRUCTIONAL_BUTTONS_UNDER_HUD_THIS_FRAME - called - iNumRows = ")NET_PRINT_INT(iNumRows) ENDIF #ENDIF MPGlobalsScoreHud.bNumberOfInstructionalButtonsRowsUnderHud = iNumRows ENDPROC PROC SET_GOLF_SCORE_UNDER_HUD_THIS_FRAME() MPGlobalsScoreHud.bGolfScoreUnderHud = TRUE ENDPROC PROC SET_CORONA_UNDER_HUD_THIS_FRAME() MPGlobalsScoreHud.bCoronaUnderHud = TRUE ENDPROC PROC SET_PHONE_UNDER_HUD_THIS_FRAME() MPGlobalsScoreHud.bPhoneUnderHud = TRUE ENDPROC PROC SET_PHONE_UNDER_HUD_NO_RISE_THIS_FRAME() MPGlobalsScoreHud.bPhoneUnderHudNoRise = TRUE ENDPROC PROC SET_TOP_RIGHT_HUD_THIS_FRAME() MPGlobalsScoreHud.bTopRightHud = TRUE ENDPROC PROC SET_SWITCH_WHEEL_UNDER_HUD_THIS_FRAME() MPGlobalsScoreHud.bSwitchWheel = TRUE ENDPROC PROC SET_SWITCH_WHEEL_AND_STATS_UNDER_HUD_THIS_FRAME() MPGlobalsScoreHud.bSwitchWheelAndStats = TRUE ENDPROC PROC SET_SNIPER_SCOPE_UNDER_HUD_THIS_FRAME() MPGlobalsScoreHud.bSniperScopeOn = TRUE ENDPROC PROC SET_FAR_RIGHT_TITLE_POSITION_HUD_THIS_FRAME() MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE ENDPROC PROC SET_MIDDLE_TITLE_POSITION_HUD_THIS_FRAME() MPGlobalsScoreHud.bTitleMiddleJustified = TRUE ENDPROC PROC SET_DECIMAL_POINTS_FOR_BOTTOM_RIGHT_HUD_THIS_FRAME(INT iDecimalPoints = 1) g_b_iNumberOfDecimalPlacesForScore = iDecimalPoints ENDPROC //BOOL ValueToTitleWidgetStart //FLOAT ValueToTitle_THREESETS_WIDGET //FLOAT ValueToTitle_TWOSETS_WIDGET //FLOAT ValueToTitle_SINGLE_NUMBER_WIDGET // //FLOAT ValueToTitle_DASHSINGLE_WIDGET //FLOAT ValueToTitle_DASHDOUBLE_WIDGET //FLOAT ValueToTitle_DASHTRIPLE_WIDGET //FLOAT ValueToTitle_POSITION_SYMBOL_WIDGET //FLOAT ValueToTitle_SCORE_WIDGET //FLOAT ValueToTitle_SCORE_SMALL_WIDGET //FLOAT ValueToTitle_SCORE_SMALL_NON_ROMANIC_WIDGET //FLOAT ValueToTitle_TIMER_PLYR_NAME //FLOAT ValueToTitle_TIMER_AMPM FUNC FLOAT GET_VALUE_TO_TITLE_OFFSET(TEXT_STYLE& BottomTextUsed) // #IF IS_DEBUG_BUILD // IF ValueToTitleWidgetStart = FALSE // START_WIDGET_GROUP("GET_VALUE_TO_TITLE_OFFSET") // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: THREESETS", ValueToTitle_THREESETS_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: TWOSETS", ValueToTitle_TWOSETS_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: SINGLE NUMBER", ValueToTitle_SINGLE_NUMBER_WIDGET, -1, 1, 0.001) // // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: DASHSINGLE", ValueToTitle_DASHSINGLE_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: DASHDOUBLE", ValueToTitle_DASHDOUBLE_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: DASHTRIPLE", ValueToTitle_DASHTRIPLE_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: POSITION", ValueToTitle_POSITION_SYMBOL_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: SCORE", ValueToTitle_SCORE_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: SCORE SMALL", ValueToTitle_SCORE_SMALL_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: SCORE SMALL NON ROMANIC", ValueToTitle_SCORE_SMALL_NON_ROMANIC_WIDGET, -1, 1, 0.001) // // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: PLAYER NAME", ValueToTitle_TIMER_PLYR_NAME, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_TO_TITLE_OFFSET: AMPM", ValueToTitle_TIMER_AMPM, -1, 1, 0.001) // STOP_WIDGET_GROUP() // ValueToTitleWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Result SWITCH BottomTextUsed.aTextType CASE TEXTTYPE_TS_UI_TIMERNUMBER_THREESETS Result = (-0.010)-0.005+0.004-0.0005-0.002+0.002+0.0005 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_THREESETS_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_TIMERNUMBER_TWOSETS Result = (-0.025)-0.003+0.002-0.006+0.001 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_TWOSETS_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SINGLE_NUMBER Result = (-0.047)-0.004+0.012+0.001+0.007 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_SINGLE_NUMBER_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_DASHSINGLE Result = (-0.019)+0.011+0.004 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_DASHSINGLE_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_DASHDOUBLE Result = (-0.012)+0.001 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_DASHDOUBLE_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_DASHTRIPLE Result = (-0.012)+0.001+0.001 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_DASHTRIPLE_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_POSITION_SYMBOL Result = (-0.035)-0.008+0.006+0.013+0.0005 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_POSITION_SYMBOL_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SCORE Result = (-0.010)-0.005+0.004-0.001+0.001 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_SCORE_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SCORE_SMALL Result = (-0.010)-0.005+0.004+0.005+0.0007 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_SCORE_SMALL_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SCORE_SMALL_NON_ROMANIC Result = (-0.010)-0.005+0.004+0.005+0.003 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_SCORE_SMALL_NON_ROMANIC_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_TIMER_PLYR_NAME Result = (-0.010)-0.005+0.004+0.005 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_TIMER_PLYR_NAME // #ENDIF BREAK CASE TEXTTYPE_TS_UI_AMPM Result = (-0.010)-0.005+0.004+0.005 // #IF IS_DEBUG_BUILD // Result += ValueToTitle_TIMER_AMPM // #ENDIF BREAK ENDSWITCH IF IS_LANGUAGE_NON_ROMANIC() Result += 0.003 ENDIF RETURN Result ENDFUNC //BOOL TITLEToTitleWidgetStart //FLOAT TitleOffset_TIMER_PLYR_NAME //FLOAT TitleOffset_TS_STANDARDSMALLHUD FUNC FLOAT GET_TITLE_OFFSET(TEXT_STYLE& BottomTextUsed) // #IF IS_DEBUG_BUILD // IF TITLEToTitleWidgetStart = FALSE // START_WIDGET_GROUP("GET_TITLE_OFFSET") // ADD_WIDGET_FLOAT_SLIDER("GET_TITLE_OFFSET: PLAYER NAME", TitleOffset_TIMER_PLYR_NAME, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_TITLE_OFFSET: SMALL HUD", TitleOffset_TS_STANDARDSMALLHUD, -1, 1, 0.001) // STOP_WIDGET_GROUP() // TITLEToTitleWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Result SWITCH BottomTextUsed.aTextType CASE TEXTTYPE_TS_TIMER_PLYR_NAME Result = 0 // #IF IS_DEBUG_BUILD // Result += TitleOffset_TIMER_PLYR_NAME // #ENDIF BREAK // CASE TEXTTYPE_TS_STANDARDSMALLHUD // Result = 0.0 // #IF IS_DEBUG_BUILD // Result += TitleOffset_TS_STANDARDSMALLHUD // #ENDIF // BREAK ENDSWITCH RETURN Result ENDFUNC //BOOL BarToTitleWidgetStart //FLOAT BAR_TO_TITLE_WIDGET FUNC FLOAT GET_BAR_TO_TITLE_OFFSET() // #IF IS_DEBUG_BUILD // IF BarToTitleWidgetStart = FALSE // START_WIDGET_GROUP("GET_BAR_TO_TITLE_OFFSET") // ADD_WIDGET_FLOAT_SLIDER("GET_BAR_TO_TITLE_OFFSET: BAR_TO_TITLE", BAR_TO_TITLE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // BarToTitleWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Result = (0.013)-0.002+0.001+0.001-0.001 // #IF IS_DEBUG_BUILD // Result += BAR_TO_TITLE_WIDGET // #ENDIF RETURN Result ENDFUNC //BOOL CHECKPOINTToTitleWidgetStartX //FLOAT CHECKPOINT_TO_TITLE_WIDGETX FUNC FLOAT GET_CHECKPOINT_TO_TITLE_OFFSET_X() // #IF IS_DEBUG_BUILD // IF CHECKPOINTToTitleWidgetStartX = FALSE // START_WIDGET_GROUP("GET_CHECKPOINT_TO_TITLE_OFFSET_X") // ADD_WIDGET_FLOAT_SLIDER("GET_CHECKPOINT_TO_TITLE_OFFSET_X: CHECKPOINT_TO_TITLE_WIDGETX", CHECKPOINT_TO_TITLE_WIDGETX, -1, 1, 0.001) // STOP_WIDGET_GROUP() // CHECKPOINTToTitleWidgetStartX = TRUE // ENDIF // #ENDIF FLOAT Result = 0.919-0.081+0.004-0.006+0.050-0.001-0.005+0.065-0.0005 // #IF IS_DEBUG_BUILD // Result += CHECKPOINT_TO_TITLE_WIDGETX // #ENDIF RETURN Result ENDFUNC //BOOL BarToTitleWidgetStartX //FLOAT BAR_TO_TITLE_WIDGETX FUNC FLOAT GET_BAR_TO_TITLE_OFFSET_X() // #IF IS_DEBUG_BUILD // IF BarToTitleWidgetStartX = FALSE // START_WIDGET_GROUP("GET_BAR_TO_TITLE_OFFSET_X") // ADD_WIDGET_FLOAT_SLIDER("GET_BAR_TO_TITLE_OFFSET_X: BAR_TO_TITLE_WIDGETX", BAR_TO_TITLE_WIDGETX, -1, 1, 0.001) // STOP_WIDGET_GROUP() // BarToTitleWidgetStartX = TRUE // ENDIF // #ENDIF FLOAT Result = 0.919-0.081+0.004-0.006+0.050-0.001 // #IF IS_DEBUG_BUILD // Result += BAR_TO_TITLE_WIDGETX // #ENDIF RETURN Result ENDFUNC //BOOL DamageBarToTitleWidgetStartX //FLOAT DAMAGE_BAR_TO_TITLE_WIDGETX FUNC FLOAT GET_DAMAGE_BAR_TO_TITLE_OFFSET_X() // #IF IS_DEBUG_BUILD // IF DamageBarToTitleWidgetStartX = FALSE // START_WIDGET_GROUP("GET_DAMAGE_BAR_TO_TITLE_OFFSET_X") // ADD_WIDGET_FLOAT_SLIDER("GET_DAMAGE_BAR_TO_TITLE_OFFSET_X: BAR_TO_TITLE_WIDGETX", DAMAGE_BAR_TO_TITLE_WIDGETX, -1, 1, 0.001) // STOP_WIDGET_GROUP() // DamageBarToTitleWidgetStartX = TRUE // ENDIF // #ENDIF FLOAT Result = 0.919-0.081+0.028+0.050-0.001-0.002 // #IF IS_DEBUG_BUILD // Result += DAMAGE_BAR_TO_TITLE_WIDGETX // #ENDIF RETURN Result ENDFUNC //BOOL EXTRATIMEToTitleWidgetStart //FLOAT EXTRATIME_TO_TITLE_WIDGET FUNC FLOAT GET_EXTRATIME_TO_TITLE_OFFSET() // #IF IS_DEBUG_BUILD // IF EXTRATIMEToTitleWidgetStart = FALSE // START_WIDGET_GROUP("GET_EXTRATIME_TO_TITLE_OFFSET") // ADD_WIDGET_FLOAT_SLIDER("GET_EXTRATIME_TO_TITLE_OFFSET: EXTRATIME_TO_TITLE", EXTRATIME_TO_TITLE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // EXTRATIMEToTitleWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Result = -0.004-0.007 // #IF IS_DEBUG_BUILD // Result += EXTRATIME_TO_TITLE_WIDGET // #ENDIF RETURN Result ENDFUNC //BOOL GapWordWidgetStart //FLOAT TIMERNUMBER_THREESETS_WIDGET //FLOAT TIMERNUMBER_TWOSETS_WIDGET //FLOAT SINGLE_NUMBER_WIDGET //FLOAT TRIPLE_NUMBER_WIDGET //FLOAT DOUBLE_NUMBER_WIDGET //FLOAT SCORE_NUMBER_WIDGET //FLOAT SCORE_SMALL_NUMBER_WIDGET //FLOAT SCORE_SMALL_NUMBER_NON_ROMANIC_WIDGET //FLOAT AMPM_NUMBER_WIDGET FUNC FLOAT GET_VALUE_OF_GAP(TEXT_STYLE& BottomTextUsed) // #IF IS_DEBUG_BUILD // IF GapWordWidgetStart = FALSE // // START_WIDGET_GROUP("GET_VALUE_OF_GAP") // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: THREESETS", TIMERNUMBER_THREESETS_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: TWOSETS", TIMERNUMBER_TWOSETS_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: SINGLE NUMBER", SINGLE_NUMBER_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: TRIPLE NUMBER", TRIPLE_NUMBER_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: DOUBLE NUMBER", DOUBLE_NUMBER_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: SCORE NUMBER", SCORE_NUMBER_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: SCORE SMALL NUMBER", SCORE_SMALL_NUMBER_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: AMPM NUMBER", AMPM_NUMBER_WIDGET, -1, 1, 0.001) // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP: SCORE SMALL NON ROMANIC NUMBER", SCORE_SMALL_NUMBER_NON_ROMANIC_WIDGET, -1, 1, 0.001) // // STOP_WIDGET_GROUP() // GapWordWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Result SWITCH BottomTextUsed.aTextType CASE TEXTTYPE_TS_UI_TIMERNUMBER_THREESETS Result= (0.035)+0.023-0.003+0.001-0.007-0.012+0.001+0.0018+0.0005-0.0005 // #IF IS_DEBUG_BUILD // Result += TIMERNUMBER_THREESETS_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_TIMERNUMBER_TWOSETS Result= (0.035)+0.023-0.003+0.001-0.007+0.003+0.002-0.004 // #IF IS_DEBUG_BUILD // Result += TIMERNUMBER_TWOSETS_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SINGLE_NUMBER Result= (0.065)+0.009-0.006-0.009+0.001-0.009 // #IF IS_DEBUG_BUILD // Result += SINGLE_NUMBER_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_DASHSINGLE Result= 0.0 //HudOffsetArray[3] BREAK CASE TEXTTYPE_TS_UI_DASHDOUBLE Result= (0.065)+0.009 // #IF IS_DEBUG_BUILD // Result += DOUBLE_NUMBER_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_DASHTRIPLE Result= (0.065)+0.009-0.015-0.022 // #IF IS_DEBUG_BUILD // Result += TRIPLE_NUMBER_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_POSITION_SYMBOL Result= 0.0 //HudOffsetArray[5] BREAK CASE TEXTTYPE_TS_UI_SCORE Result= (0.035)+0.023-0.003+0.001-0.007-0.012+0.001+0.002+0.0003 // #IF IS_DEBUG_BUILD // Result += SCORE_NUMBER_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SCORE_SMALL Result= (0.035)+0.023-0.003+0.001-0.007-0.012-0.0005 // #IF IS_DEBUG_BUILD // Result += SCORE_SMALL_NUMBER_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_SCORE_SMALL_NON_ROMANIC Result= (0.035)+0.023-0.003+0.001-0.007-0.012 // #IF IS_DEBUG_BUILD // Result += SCORE_SMALL_NUMBER_NON_ROMANIC_WIDGET // #ENDIF BREAK CASE TEXTTYPE_TS_UI_AMPM Result= (0.035)+0.023-0.003+0.001-0.007-0.012 // #IF IS_DEBUG_BUILD // Result += AMPM_NUMBER_WIDGET // #ENDIF BREAK ENDSWITCH RETURN Result ENDFUNC //BOOL GapBarWidgetStart //FLOAT GapBarWidgetValue FUNC FLOAT GET_VALUE_OF_GAP_BAR_SPRITE(BOOL bBigMeter , BOOL SpriteBar) // #IF IS_DEBUG_BUILD // IF GapBarWidgetStart = FALSE // // START_WIDGET_GROUP("GET_VALUE_OF_GAP_BAR_SPRITE") // ADD_WIDGET_FLOAT_SLIDER("GET_VALUE_OF_GAP_BAR_SPRITE: GapBarWidgetValue", GapBarWidgetValue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapBarWidgetStart = TRUE // ENDIF // #ENDIF FLOAT Result = (0.025)+0.006+0.0009 IF bBigMeter = TRUE Result += 0.008 ENDIF IF SpriteBar Result += 0.008 ENDIF // #IF IS_DEBUG_BUILD // Result += GapBarWidgetValue // #ENDIF RETURN Result ENDFUNC //PROC SET_Y_SHIFT_START(UIELEMENTS WhichSpace, TEXT_STYLE& BottomTextUsed) PROC SET_Y_SHIFT_START(UIELEMENTS WhichSpace) SWITCH WhichSpace CASE UIELEMENTS_BOTTOMRIGHT MPGlobalsScoreHud.BottomStartY = BASE_LINE_OFFSET() BREAK CASE UIELEMENTS_MIDDLERIGHT MPGlobalsScoreHud.HudStartY = BASE_LINE_OFFSET() BREAK ENDSWITCH ENDPROC FUNC BOOL IS_SCREEN_NARROW() IF IS_PC_VERSION() INT iX, iY GET_ACTUAL_SCREEN_RESOLUTION(iX, iY) IF iX <= 1024 RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC //BOOL TitleWrapWidgetStart //FLOAT TitleWrapWidgetValue PROC SET_WORD_WRAPPING_TITLE(TEXT_STYLE& aTitle) FLOAT Result = 0.880-0.062+0.026+0.027+0.030 // #IF IS_DEBUG_BUILD // IF TitleWrapWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_TITLE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_TITLE: TitleWrapWidgetValue", TitleWrapWidgetValue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // TitleWrapWidgetStart = TRUE // ENDIF // Result += TitleWrapWidgetValue // #ENDIF IF MPGlobalsScoreHud.bTitleFarLeftJustified // NET_NL()NET_PRINT("SET_WORD_WRAPPING_TITLE: bTitleFarLeftJustified = TRUE ") Result += -0.034 IF GET_IS_WIDESCREEN() = FALSE Result += -0.02 ENDIF ENDIF IF MPGlobalsScoreHud.bTitleMiddleJustified AND MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE // NET_NL()NET_PRINT("SET_WORD_WRAPPING_TITLE: bTitleMiddleJustified = TRUE ") Result += -0.015-0.003 IF GET_IS_WIDESCREEN() = FALSE Result += -0.017 ENDIF ENDIF IF MPGlobalsScoreHud.bTitleExtraLeftJustified AND MPGlobalsScoreHud.bTitleMiddleJustified = FALSE AND MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE // NET_NL()NET_PRINT("SET_WORD_WRAPPING_TITLE: bTitleExtraLeftJustified = TRUE ") Result += -0.038 ENDIF IF MPGlobalsScoreHud.bCoronaUnderHud = TRUE // NET_NL()NET_PRINT("SET_WORD_WRAPPING_TITLE: bCoronaUnderHud = TRUE ") Result += RIGHT_EDGE_CORONA_OFFSET ENDIF IF GET_CURRENT_LANGUAGE() = LANGUAGE_RUSSIAN AND GET_CURRENT_LANGUAGE() = LANGUAGE_FRENCH AND NOT GET_IS_WIDESCREEN() AND MPGlobalsScoreHud.bTitleExtraLeftJustified Result += -0.007 ENDIF IF MPGlobalsScoreHud.bTitleInsaneLeftJustified IF GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH AND GET_CURRENT_LANGUAGE() != LANGUAGE_PORTUGUESE AND GET_CURRENT_LANGUAGE() != LANGUAGE_POLISH AND GET_CURRENT_LANGUAGE() != LANGUAGE_CHINESE AND GET_CURRENT_LANGUAGE() != LANGUAGE_MEXICAN AND GET_CURRENT_LANGUAGE() != LANGUAGE_CHINESE_SIMPLIFIED Result += -0.009 ELSE Result += -0.009 ENDIF ENDIF IF MPGlobalsScoreHud.bTitleInsanePlusLeftJustified IF IS_SCREEN_NARROW() Result += -0.03 ELSE IF GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH AND GET_CURRENT_LANGUAGE() != LANGUAGE_PORTUGUESE AND GET_CURRENT_LANGUAGE() != LANGUAGE_POLISH AND GET_CURRENT_LANGUAGE() != LANGUAGE_CHINESE AND GET_CURRENT_LANGUAGE() != LANGUAGE_MEXICAN AND GET_CURRENT_LANGUAGE() != LANGUAGE_CHINESE_SIMPLIFIED Result += -0.024 ELSE Result += -0.019 //-0.014 ENDIF ENDIF ENDIF IF (GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN OR GET_CURRENT_LANGUAGE() = LANGUAGE_RUSSIAN OR GET_CURRENT_LANGUAGE() = LANGUAGE_FRENCH) AND MPGlobalsScoreHud.bTitleMiddleJustified = FALSE AND MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE AND MPGlobalsScoreHud.bCoronaUnderHud = FALSE AND MPGlobalsScoreHud.bTitleExtraLeftJustified = FALSE AND MPGlobalsScoreHud.bTitleInsaneLeftJustified = FALSE AND MPGlobalsScoreHud.bTitleInsanePlusLeftJustified = FALSE AND IS_PC_VERSION() Result += -0.005 ENDIF aTitle.WrapEndX = Result ENDPROC //BOOL MULTIPLYERWrapWidgetStart //FLOAT MULTIPLYERWrapWidgetValue PROC SET_WORD_WRAPPING_MULTIPLYER(TEXT_STYLE& aTitle) FLOAT Result = 0.880-0.062+0.026+0.027+0.037+0.003 // #IF IS_DEBUG_BUILD // IF MULTIPLYERWrapWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_MULTIPLYER") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_MULTIPLYER: MULTIPLYERWrapWidgetValue", MULTIPLYERWrapWidgetValue, -1, 1, 0.001) // STOP_WIDGET_GROUP() // MULTIPLYERWrapWidgetStart = TRUE // ENDIF // Result += MULTIPLYERWrapWidgetValue // #ENDIF aTitle.WrapEndX = Result ENDPROC PROC SET_WORD_WRAPPING_EXTRATIME(TEXT_STYLE& aTitle, INT Number)//, STRING Title) // FLOAT Width = GET_STRING_WIDTH(Title) // aTitle.WrapEndX = (1/Width*(0.006))+0.790 // (1/Width*(HudOffsetArray[1]))+HudOffsetArray[0]// IF Number < 9999 aTitle.WrapEndX = 0.933 ELSE aTitle.WrapEndX = 0.933+0.008 ENDIF ENDPROC //BOOL GapWordDASHDOUBLEWidgetStart //FLOAT DASH_DOUBLE_WIDGET PROC SET_WORD_WRAPPING_DASH_DOUBLE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF GapWordDASHDOUBLEWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_DASH_DOUBLE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_DASH_DOUBLE: DASH_DOUBLE_WIDGET", DASH_DOUBLE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapWordDASHDOUBLEWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = (0.928)-0.051+0.050-0.021-0.005+0.011-0.005 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += DASH_DOUBLE_WIDGET // #ENDIF ENDPROC //BOOL GapWordDASHDOUBLEPlaceWidgetStart //FLOAT DASH_DOUBLE_PLACE_WIDGET PROC SET_WORD_WRAPPING_DASH_DOUBLE_PLACE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF GapWordDASHDOUBLEPlaceWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_DASH_DOUBLE_PLACE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_DASH_DOUBLE_PLACE: DASH_DOUBLE_PLACE_WIDGET", DASH_DOUBLE_PLACE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapWordDASHDOUBLEPlaceWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = (0.928)-0.051+0.050-0.021+0.023 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += DASH_DOUBLE_PLACE_WIDGET // #ENDIF ENDPROC //BOOL GapWordDASHTRIPLEWidgetStart //FLOAT DASH_TRIPLE_WIDGET PROC SET_WORD_WRAPPING_DASH_TRIPLE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF GapWordDASHTRIPLEWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_DASH_TRIPLE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_DASH_TRIPLE: DASH_TRIPLE_WIDGET", DASH_TRIPLE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapWordDASHTRIPLEWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = (0.928)-0.051+0.050-0.010+0.001 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += DASH_TRIPLE_WIDGET // #ENDIF ENDPROC //BOOL GapWordDASHTRIPLEPLACEWidgetStart //FLOAT DASH_TRIPLE_PLACE_WIDGET PROC SET_WORD_WRAPPING_DASH_TRIPLE_PLACE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF GapWordDASHTRIPLEPLACEWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_DASH_TRIPLE_PLACE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_DASH_TRIPLE_PLACE: DASH_TRIPLE_PLACE_WIDGET", DASH_TRIPLE_PLACE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapWordDASHTRIPLEPLACEWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = (0.928)-0.051+0.050-0.010+0.001+0.007-0.002 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += DASH_TRIPLE_PLACE_WIDGET // #ENDIF ENDPROC //BOOL GapWordDASHSINGLEWidgetStart //FLOAT DASH_SINGLE_WIDGET PROC SET_WORD_WRAPPING_DASH_SINGLE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF GapWordDASHSINGLEWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_DASH_SINGLE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_DASH_SINGLE: DASH_SINGLE_WIDGET", DASH_SINGLE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapWordDASHSINGLEWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = (0.918)-0.054+0.050+0.010 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += DASH_SINGLE_WIDGET // #ENDIF ENDPROC //BOOL GapWordDASHSINGLEPLACEWidgetStart //FLOAT DASH_SINGLEPLACE_WIDGET PROC SET_WORD_WRAPPING_DASH_SINGLE_PLACE(TEXT_STYLE& aTitle) // #IF IS_DEBUG_BUILD // IF GapWordDASHSINGLEPLACEWidgetStart = FALSE // // START_WIDGET_GROUP("SET_WORD_WRAPPING_DASH_SINGLE_PLACE") // ADD_WIDGET_FLOAT_SLIDER("SET_WORD_WRAPPING_DASH_SINGLE_PLACE: DASH_SINGLEPLACE_WIDGET", DASH_SINGLEPLACE_WIDGET, -1, 1, 0.001) // STOP_WIDGET_GROUP() // GapWordDASHSINGLEPLACEWidgetStart = TRUE // ENDIF // #ENDIF aTitle.WrapEndX = (0.933)-0.050+0.049+0.001-0.001 // #IF IS_DEBUG_BUILD // aTitle.WrapEndX += DASH_SINGLEPLACE_WIDGET // #ENDIF ENDPROC PROC SET_WORD_WRAPPING_TO_POSITION(TEXT_STYLE& aTitle, FLOAT WrapTo) aTitle.WrapEndX = WrapTo ENDPROC /// PURPOSE: /// Multiplier for spacing between timer elements based on screen aspect ratio FUNC FLOAT GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT() FLOAT fAR = GET_ASPECT_RATIO(FALSE) INT x, y GET_ACTUAL_SCREEN_RESOLUTION(x, y) // PRINTLN("x = ",x," y = ", y, " " ) FLOAT vAR = TO_FLOAT(x)/TO_FLOAT(y) #IF IS_DEBUG_BUILD BOOL bPrint = FALSE IF GET_COMMANDLINE_PARAM_EXISTS("sc_ScreenRatioPrints") bPrint = TRUE ENDIF IF bPrint PRINTLN("[TIMERRATIO] fAR = ", fAR) PRINTLN("[TIMERRATIO] vAR = ", vAR) PRINTLN("[TIMERRATIO] PROFILE_DISPLAY_SAFEZONE_SIZE = ",GET_PROFILE_SETTING(PROFILE_DISPLAY_SAFEZONE_SIZE)) ENDIF #ENDIF fAR = fMIN(fAR, vAR) #IF IS_DEBUG_BUILD IF bPrint PRINTLN("[TIMERRATIO] after fAR = ", fAR) ENDIF #ENDIF IF vAR > 3.5 AND fAR > 1.7 #IF IS_DEBUG_BUILD IF bPrint PRINTLN("[TIMERRATIO] Big adjustment actually needed vAR is very large, returning 1.4 ") ENDIF #ENDIF RETURN 1.4 ENDIF if fAR > 1.7 //16:9, default #IF IS_DEBUG_BUILD IF bPrint PRINTLN("[TIMERRATIO] RETURN 1.0 ") ENDIF #ENDIF RETURN 1.0 elif fAR > 1.5 //16:10, mild adjustment #IF IS_DEBUG_BUILD IF bPrint PRINTLN("[TIMERRATIO] RETURN 1.2 ") ENDIF #ENDIF RETURN 1.2 ELIF fAR > 1.3 //4:3, big adjustment #IF IS_DEBUG_BUILD IF bPrint PRINTLN("[TIMERRATIO] RETURN 1.3 ") ENDIF #ENDIF RETURN 1.3 ENDIF #IF IS_DEBUG_BUILD IF bPrint PRINTLN("[TIMERRATIO] RETURN 1.4 ") ENDIF #ENDIF RETURN 1.4 //Shouldn't get here, almost square AR, even bigger adjustment ENDFUNC //BOOL OFleckWidgets //RECT aFleckDebug PROC DRAW_ORGANISATION_FLECK(SPRITE_PLACEMENT& Overlay, HUD_COLOURS aColour) IF aColour = HUD_COLOUR_PURE_WHITE EXIT ENDIF // IF OFleckWidgets = FALSE // // START_WIDGET_GROUP("SCORE PLACE") // CREATE_A_RECT_PLACEMENT_WIDGET(aFleckDebug, "Rectangle Fleck") // // STOP_WIDGET_GROUP() // OFleckWidgets = TRUE // ENDIF RECT aFleck aFleck.x = 0.951 aFleck.y = Overlay.y aFleck.w = 0.002 aFleck.h = Overlay.h INT R, G, B, A GET_HUD_COLOUR(aColour, R, G, B, A) aFleck.r = R aFleck.g = G aFleck.b = B aFleck.a = A // #IF IS_DEBUG_BUILD // UPDATE_RECT_WIDGET_VALUE(aFleck, aFleckDebug) // #ENDIF DRAW_RECTANGLE(aFleck) ENDPROC PROC INIT_SCREEN_GENERAL_SINGLE_SCORE(TEXT_STYLE& NumberStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace, UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle ) FLOAT LargeGap = GET_VALUE_OF_GAP(NumberStyle) //0.115 TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) NumberPlace.x = 0.795 NumberPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberStyle) CHANGE_Y_SHIFT_END(WhichSpace, -LargeGap) ENDPROC PROC DISPLAY_TEXT_FROM_SINGLE_SCORE_GUTS(TEXT_STYLE& TitleStyle, TEXT_PLACEMENT& TitlePlace, STRING Title, HUD_COLOURS TitleColour, HUD_COLOURS aColour, INT TitleNumber, BOOL IsPlayer, BOOL UseTitleColourForTitle) IF IsPlayer = TRUE IF UseTitleColourForTitle DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title,"", TitleColour, FONT_RIGHT) ELSE DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title,"", aColour, FONT_RIGHT) ENDIF ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE TitlePlace.y += (TITLE_NON_ROMANIC_OFFSET_LITTLE - 0.001) DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF ENDPROC // //TEXT_STYLE TitleStyleWidgetScore, NumberStyleWidgetScore //TEXT_PLACEMENT TitlePlacementWidgetScore, NumberPlacmentWidgetScore //SPRITE_PLACEMENT OverlayWidgetScore, XPWidgetScore //BOOL ScoreWidgets //FLOAT TitleWidgetOffset // // //FLOAT WidgetStringLengthConverter_SCORE //FLOAT WidgetStringLengthConverter_x_SCORE //FLOAT WidgetStringLengthConverter_b_SCORE //FLOAT WidgetStringLengthConverter_m_SCORE //SPRITE_PLACEMENT WarningWidgetSCORE PROC SET_NUMBER_PULSE_COLOUR(TEXT_STYLE &eNumberStyle, HUD_COLOURS eStartingColour, HUD_COLOURS ePulseColour, INT iPulseTime, SCRIPT_TIMER stPulseTimer) INT iR, iG, iB, iA, iPR, iPG, iPB, iPA INT iElapsedTime = GET_NET_TIMER_DIFFERENCE_WITH_CURRENT_TIME(stPulseTimer) FLOAT fPulseTime IF (iPulseTime / 2) > iElapsedTime fPulseTime = (TO_FLOAT(iElapsedTime / 2) / TO_FLOAT(iPulseTime / 2)) GET_HUD_COLOUR(eStartingColour, iR, iG, iB, iA) GET_HUD_COLOUR(ePulseColour, iPR, iPG, iPB, iPA) ELSE fPulseTime = (TO_FLOAT(iElapsedTime) / TO_FLOAT(iPulseTime)) GET_HUD_COLOUR(ePulseColour, iR, iG, iB, iA) GET_HUD_COLOUR(eStartingColour, iPR, iPG, iPB, iPA) ENDIF eNumberStyle.r = FLOOR(LERP_FLOAT(TO_FLOAT(iR), TO_FLOAT(iPR), fPulseTime)) eNumberStyle.g = FLOOR(LERP_FLOAT(TO_FLOAT(iG), TO_FLOAT(iPG), fPulseTime)) eNumberStyle.b = FLOOR(LERP_FLOAT(TO_FLOAT(iB), TO_FLOAT(iPB), fPulseTime)) eNumberStyle.a = FLOOR(LERP_FLOAT(TO_FLOAT(iA), TO_FLOAT(iPA), fPulseTime)) ENDPROC PROC DRAW_GENERAL_SINGLE_SCORE_GUTS(INT index, TEXT_STYLE& TitleStyle, TEXT_STYLE& NumberStyle,TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace, INT Number, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber, BOOL isPlayer, STRING NumberString, BOOL isFloat, FLOAT FloatValue, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS TitleColour, BOOL bDisplayWarning, INT MaXNumber, BOOL DrawInfinity, ACTIVITY_POWERUP aPowerup, HUD_COUNTER_STYLE eCounterStyle, STRING sPlacementText, BOOL bUseNonPlayerFont = FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, INT iAlpha = 255, BOOL bDisplayBlankScore = FALSE, PLAYER_INDEX pPlayerID = NULL, BOOL bFlashTitle = FALSE, BOOL bDrawLineUnderName = FALSE, HUD_COLOURS LineUnderNameColour = HUD_COLOUR_WHITE, BOOL bEnablePulsing = FALSE, HUD_COLOURS PulseToColour = HUD_COLOUR_PURE_WHITE, INT iPulseTime = -1, BOOL bUsePlacementText = FALSE, BOOL bLiteralPlacementText = FALSE, BOOL bCustomFont = FALSE, TEXT_FONTS eCustomFont = FONT_STANDARD) MPGlobalsScoreHud.iHowManyDisplays++ // INT I IF IS_BOTTOM_RIGHT_AREA_FREE() SPRITE_PLACEMENT WarningIcon SET_SPRITE_PLACEMENT(WarningIcon, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) SPRITE_PLACEMENT UpIcon SET_SPRITE_PLACEMENT(UpIcon, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) SPRITE_PLACEMENT DownIcon SET_SPRITE_PLACEMENT(DownIcon, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) BOOL bDisplayTimerCheckbox IF IS_LANGUAGE_NON_ROMANIC() IF bUseNonPlayerFont SET_STANDARD_SMALL_HUD_TEXT_NON_ROMANIC(TitleStyle, DROPSTYLE_NONE) ELIF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT_NON_ROMANIC(TitleStyle, DROPSTYLE_NONE) ENDIF ELSE IF bUseNonPlayerFont SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ELIF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF #IF USE_TU_CHANGES IF g_b_ChangePlayerNameToTeamName AND isPlayer IF IS_LANGUAGE_NON_ROMANIC() SET_STANDARD_SMALL_HUD_TEXT_NON_ROMANIC(TitleStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF #ENDIF IF Number < 1000000 IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN AND (FloatValue >= 100) AND ARE_STRINGS_EQUAL("AMCH_KMHN", NumberString) SET_STANDARD_UI_SCORE_SMALL_NUMBER_NON_ROMANIC(NumberStyle, DROPSTYLE_NONE) ELIF (GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED ) AND (Number > 999 OR MaXNumber > 999 OR FloatValue > 1000) SET_STANDARD_UI_SCORE_SMALL_NUMBER_NON_ROMANIC(NumberStyle, DROPSTYLE_NONE) ELSE IF MaXNumber > 99 SET_STANDARD_UI_SCORE_SMALL_NUMBER(NumberStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_UI_SCORE_NUMBER(NumberStyle, DROPSTYLE_NONE) ENDIF ENDIF ELSE IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN AND ( ARE_STRINGS_EQUAL("HUD_CASH", NumberString) OR ARE_STRINGS_EQUAL("HUD_CASH_NEG", NumberString)) SET_STANDARD_UI_SCORE_SMALL_NUMBER_NON_ROMANIC(NumberStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_UI_SCORE_SMALL_NUMBER(NumberStyle, DROPSTYLE_NONE) ENDIF ENDIF SET_WORD_WRAPPING_TITLE(TitleStyle) SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) // IF ScoreWidgets = FALSE // // START_WIDGET_GROUP("SCORE PLACE") // // CREATE_A_TEXT_PLACEMENT_WIDGET(TitlePlacementWidgetScore, "TitlePlacementWidgetScore") // CREATE_A_TEXT_PLACEMENT_WIDGET(NumberPlacmentWidgetScore, "NumberPlacmentWidgetScore") // // CREATE_A_TEXT_STYLE_WIGET(TitleStyleWidgetScore, "TitleStyleWidgetScore") // CREATE_A_TEXT_STYLE_WIGET(NumberStyleWidgetScore, "NumberStyleWidgetScore") // // CREATE_A_SPRITE_PLACEMENT_WIDGET(XPWidgetScore, "XPWidgetScore") // // ADD_WIDGET_FLOAT_SLIDER("TitleWidgetOffset", TitleWidgetOffset, -5, 5, 0.001) // // // STOP_WIDGET_GROUP() // // START_WIDGET_GROUP("SINGLE SCORE OVERLAY") // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetScore, "OverlayWidgetScore") // // STOP_WIDGET_GROUP() // // // START_WIDGET_GROUP("SINGLE SCORE WARNING") // CREATE_A_SPRITE_PLACEMENT_WIDGET(WarningWidgetSCORE, "WarningWidgetSCORE") // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_SCORE", WidgetStringLengthConverter_SCORE, -1000, 1000, 0.001) // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_x_SCORE", WidgetStringLengthConverter_x_SCORE, -1000, 1000, 0.001) // // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_m_SCORE", WidgetStringLengthConverter_m_SCORE, -1000, 1000, 0.001) // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_b_SCORE", WidgetStringLengthConverter_b_SCORE, -1000, 1000, 0.001) // // STOP_WIDGET_GROUP() // // ScoreWidgets = TRUE // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_SCORE, Index) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_SINGLE_SCORE(NumberStyle, TitlePlace, NumberPlace, WhichSpace, TitleStyle) // Invert black/white foreground/background to highlight as input counter IF eCounterStyle = HUD_COUNTER_STYLE_INPUT_ARROWS TitleColour = HUD_COLOUR_BLACK aColour = HUD_COLOUR_BLACK ENDIF SET_WORD_HUD_COLOUR(NumberStyle, aColour) // #IF IS_DEBUG_BUILD // // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TitlePlace, TitlePlacementWidgetScore) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberPlace, NumberPlacmentWidgetScore) // // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, TitleStyleWidgetScore) // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle,NumberStyleWidgetScore) // // #ENDIF IF FlashTime = 0 RESET_GENERIC_SCORE_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_SCORE_FLASHING_COLOUR(Index) ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericScore_Hud[index],MPGlobalsScoreHud.iFlashing_GenericScore_MiniHud[index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y WarningIcon.x = TitlePlace.x WarningIcon.y = TitlePlace.y+0.001 // Display with larger background height to highlight as input counter IF eCounterStyle = HUD_COUNTER_STYLE_INPUT_ARROWS Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_BIGNUM Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_BIGNUM Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ELIF Number < 1000000 Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORE Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORE Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ELSE Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORESML Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORESML Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ENDIF IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetScore) // UPDATE_SPRITE_WIDGET_VALUE(WarningIcon, WarningWidgetSCORE) // #ENDIF IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericScore[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericScore[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericScore[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericScore[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericScore[Index] IF ColourFlashType = HUDFLASHING_FLASHRED SET_SPRITE_HUD_COLOUR(ColourOverlays, HUD_COLOUR_RED) ELIF ColourFlashType = HUDFLASHING_FLASHGREEN SET_SPRITE_HUD_COLOUR(ColourOverlays, HUD_COLOUR_GREEN) ELSE SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericScore[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericScore[Index]) ENDIF // Invert black/white foreground/background to highlight as input counter IF eCounterStyle = HUD_COUNTER_STYLE_INPUT_ARROWS DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ELSE DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, TitleColour) BOOL UseTitleColourForTitle = TRUE #IF USE_TU_CHANGES IF g_b_ChangePlayerNameToTeamName UseTitleColourForTitle = FALSE ENDIF IF g_b_UseBottomRightTitleColour = TRUE UseTitleColourForTitle = TRUE ENDIF #ENDIF SET_TEXT_STYLE(TitleStyle) IF IS_LANGUAGE_NON_ROMANIC() IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE NumberPlace.y += PLAYERNAME_TITLE_OFFSET ELSE TitlePlace.y += PLAYERNAME_TITLE_OFFSET ENDIF ELIF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE NumberPlace.y += PLAYERNAME_TITLE_OFFSET ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF ELSE IF bUseNonPlayerFont TitlePlace.y +=0.0 ELIF isPlayer #IF USE_TU_CHANGES AND g_b_ChangePlayerNameToTeamName = FALSE #ENDIF TitlePlace.y += -0.002-0.004 ENDIF ENDIF // Display with larger background height to highlight as input counter IF eCounterStyle = HUD_COUNTER_STYLE_INPUT_ARROWS TitlePlace.y -= 0.007 NumberPlace.y -= 0.007 ENDIF // #IF IS_DEBUG_BUILD // TitlePlace.y += TitleWidgetOffset // #ENDIF IF aPowerup = ACTIVITY_POWERUP_ROCKETS AND IS_STRING_NULL_OR_EMPTY(Title) Title = "HUD_ROCKET" ELIF aPowerup = ACTIVITY_POWERUP_BOOSTS Title = "HUD_BOOST" ELIF aPowerup = ACTIVITY_POWERUP_SPIKES Title = "HUD_SPIKES" ENDIF // Set title and score alpha B* 3360285 TitleStyle.a = iAlpha NumberStyle.a = iAlpha // Display blank score B* 3360276 IF bDisplayBlankScore NumberStyle.a = 0 ENDIF IF (bCustomFont) TitleStyle.aFont = eCustomFont ENDIF IF bFlashTitle IF bDisplayTimerCheckbox DISPLAY_TEXT_FROM_SINGLE_SCORE_GUTS(TitleStyle, TitlePlace, Title, TitleColour, aColour, TitleNumber, IsPlayer, UseTitleColourForTitle) ENDIF ELSE DISPLAY_TEXT_FROM_SINGLE_SCORE_GUTS(TitleStyle, TitlePlace, Title, TitleColour, aColour, TitleNumber, IsPlayer, UseTitleColourForTitle) ENDIF // Pulse between aColour & PulseToColour IF bEnablePulsing IF iPulseTime > 0 IF NOT HAS_NET_TIMER_STARTED(MPGlobalsScoreHud.iColourPulsing_GenericBigNumber_Hud[index]) START_NET_TIMER(MPGlobalsScoreHud.iColourPulsing_GenericBigNumber_Hud[index]) ELIF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iColourPulsing_GenericBigNumber_Hud[index], iPulseTime) REINIT_NET_TIMER(MPGlobalsScoreHud.iColourPulsing_GenericBigNumber_Hud[index]) ENDIF SET_NUMBER_PULSE_COLOUR(NumberStyle, aColour, PulseToColour, iPulseTime, MPGlobalsScoreHud.iColourPulsing_GenericBigNumber_Hud[index]) ENDIF ENDIF // Display with up/down arrows to highlight as input counter IF eCounterStyle = HUD_COUNTER_STYLE_INPUT_ARROWS UpIcon.x = NumberStyle.WrapEndX UpIcon.y = NumberPlace.y-0.0175 DownIcon.x = NumberStyle.WrapEndX DownIcon.y = NumberPlace.y+0.0175 REQUEST_STREAMED_TEXTURE_DICT("MPArrow") IF HAS_STREAMED_TEXTURE_DICT_LOADED("MPArrow") UpIcon.x += 0.0095 UpIcon.x -= 0.015 UpIcon.y += 0.019//0.008 UpIcon.w += 0.01//0.0125//0.022 UpIcon.h += 0.01//0.0125//0.022//0.040 UpIcon.r += 0//194 UpIcon.g += 0//80 UpIcon.b += 0//80 UpIcon.a -= 50 UpIcon.fRotation = -90.0 DRAW_2D_SPRITE("MPArrow", "MP_ArrowXLarge", UpIcon, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) DownIcon.x += 0.0095 DownIcon.x -= 0.015 DownIcon.y += 0.019//0.008 DownIcon.w += 0.01//0.0125//0.022 DownIcon.h += 0.01//0.0125//0.022//0.040 DownIcon.r += 0//194 DownIcon.g += 0//80 DownIcon.b += 0//80 DownIcon.a -= 50 DownIcon.fRotation = 90.0 DRAW_2D_SPRITE("MPArrow", "MP_ArrowXLarge", DownIcon, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ENDIF IF bDrawLineUnderName FLOAT BarYPos FLOAT BarXPos SPRITE_PLACEMENT LineSprite BarYPos = GET_BAR_TO_TITLE_OFFSET()+GET_Y_SHIFT(WhichSpace) BarXPos = GET_DAMAGE_BAR_TO_TITLE_OFFSET_X() IF IS_LANGUAGE_NON_ROMANIC() LineSprite.x = BarXPos-0.061 ELSE LineSprite.x = BarXPos-0.0365 ENDIF LineSprite.y = BarYPos+0.057 LineSprite.w = Overlays.w-0.004 LineSprite.h = 0.01 LineSprite.r = 255 LineSprite.g = 255 LineSprite.b = 255 LineSprite.a = 255 SET_SPRITE_HUD_COLOUR(LineSprite, LineUnderNameColour) DRAW_2D_SPRITE("TimerBars", "DamagebarFill_128", LineSprite, FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF IF bDisplayWarning REQUEST_STREAMED_TEXTURE_DICT("CommonMenu") IF HAS_STREAMED_TEXTURE_DICT_LOADED("CommonMenu") FLOAT StringIconOffset = 0.0 FLOAT x IF IsPlayer = TRUE BEGIN_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT("STRING") ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(Title) x = END_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT(TRUE) ELSE BEGIN_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT((Title)) IF TitleNumber != -1 // Double spacing so display warning symbol doesn't intersect ADD_TEXT_COMPONENT_INTEGER(TitleNumber) ADD_TEXT_COMPONENT_INTEGER(TitleNumber) ENDIF x = END_TEXT_COMMAND_GET_SCREEN_WIDTH_OF_DISPLAY_TEXT(TRUE) ENDIF FLOAT b FLOAT m IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN AND IsPlayer = FALSE b = 0.153-0.072 m = -0.457 ELIF GET_CURRENT_LANGUAGE() = LANGUAGE_JAPANESE AND IsPlayer = FALSE b = 0.153-0.010-0.060 m = -0.457 ELIF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE AND IsPlayer = FALSE b = 0.153-0.012-0.060 m = -0.457 ELIF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED AND IsPlayer = FALSE b = 0.153-0.012-0.060 m = -0.457 ELSE b = 0.153-0.037-0.036 m = -0.457+0.194 ENDIF b += 0.03 IF MPGlobalsScoreHud.bTitleFarLeftJustified b += -0.030 ENDIF IF IS_PC_VERSION() AND NOT GET_IS_WIDESCREEN() b += -0.015 ENDIF IF MPGlobalsScoreHud.bTitleMiddleJustified AND MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE b += -0.015-0.003 ENDIF // #IF IS_DEBUG_BUILD // StringIconOffset += WidgetStringLengthConverter_SCORE // x += WidgetStringLengthConverter_x_SCORE // b += WidgetStringLengthConverter_b_SCORE // m += WidgetStringLengthConverter_m_SCORE // // // NET_NL() // IF IsPlayer // NET_PRINT("PLAYER NAME - ") // ENDIF // NET_PRINT(" x = ")NET_PRINT_FLOAT(x) // NET_PRINT(" b = ")NET_PRINT_FLOAT(b) // NET_PRINT(" m = ")NET_PRINT_FLOAT(m) // // #ENDIF StringIconOffset = (m*x)+B WarningIcon.x += StringIconOffset WarningIcon.x -= 0.015 WarningIcon.y += 0.008 WarningIcon.w += 0.022 WarningIcon.h += 0.040 WarningIcon.r += 194 WarningIcon.g += 80 WarningIcon.b += 80 WarningIcon.a -= 50 DRAW_2D_SPRITE("CommonMenu", "MP_AlertTriangle",WarningIcon, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ENDIF IF bDisplayTimerCheckbox IF aPowerup != ACTIVITY_POWERUP_NONE SET_WORD_WRAPPING_RIGHTEDGE_AND_XP(NumberStyle) SPRITE_PLACEMENT XPIconSprite SPRITE_PLACEMENT secondaryXPIconSprite XPIconSprite.x = NumberPlace.x+0.145+0.001 IF IS_LANGUAGE_NON_ROMANIC() XPIconSprite.y = NumberPlace.y+0.016-0.006 ELSE XPIconSprite.y = NumberPlace.y+0.016 ENDIF XPIconSprite.w = 0.016+0.003 XPIconSprite.h = 0.032+0.004 XPIconSprite.a = iAlpha // Set powerup alpha B* 3360285 SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_WHITE) // For Overlaping Icon - Powerup ACTIVITY_POWERUP_PED_HEADSHOT_DEAD secondaryXPIconSprite.x = NumberPlace.x+0.145+0.001 IF IS_LANGUAGE_NON_ROMANIC() secondaryXPIconSprite.y = NumberPlace.y+0.016-0.006 ELSE secondaryXPIconSprite.y = NumberPlace.y+0.016 ENDIF secondaryXPIconSprite.w = 0.016+0.003 secondaryXPIconSprite.h = 0.032+0.004 secondaryXPIconSprite.a = 255 SET_SPRITE_HUD_COLOUR(secondaryXPIconSprite, HUD_COLOUR_WHITE) // Display blank icon B* 3360276 IF bDisplayBlankScore XPIconSprite.a = 0 ENDIF // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(XPIconSprite, XPWidgetScore) // #ENDIF PEDHEADSHOT_ID pHeadshotID STRING secondaryTextureDictName = "" STRING secondaryTextureSpriteName HUD_COLOURS secondaryTextureHudColour = HUD_COLOUR_WHITE STRING textureDictName = "" STRING textureSpriteName HUD_COLOURS textureHudColour = HUD_COLOUR_WHITE SWITCH aPowerup CASE ACTIVITY_POWERUP_XP XPIconSprite.h += -0.009 XPIconSprite.w += -0.002 IF IS_LANGUAGE_NON_ROMANIC() XPIconSprite.y += 0.0055 ELSE XPIconSprite.y += 0.0025 ENDIF textureDictName = "MPRPSymbol" textureSpriteName = "RP" BREAK CASE ACTIVITY_POWERUP_ROCKETS textureDictName = "TimerBars" textureSpriteName = "Rockets" BREAK CASE ACTIVITY_POWERUP_HOMING_ROCKETS textureDictName = "MpSpecialRace" textureSpriteName = "HOMING_ROCKET" BREAK CASE ACTIVITY_POWERUP_SPIKES textureDictName = "TimerBars" textureSpriteName = "Spikes" BREAK CASE ACTIVITY_POWERUP_BOOSTS textureDictName = "TimerBars" textureSpriteName = "Boost" BREAK CASE ACTIVITY_POWERUP_TICK textureDictName = "CrossTheLine" textureSpriteName = "Timer_LargeTick_32" textureHudColour = HUD_COLOUR_GREEN BREAK CASE ACTIVITY_POWERUP_CROSS textureDictName = "CrossTheLine" textureSpriteName = "Timer_LargeCross_32" textureHudColour = HUD_COLOUR_RED BREAK CASE ACTIVITY_POWERUP_BEAST textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Beast" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_BULLET textureDictName = "MPSpecialRace" textureSpriteName = "MACHINE_GUN" BREAK CASE ACTIVITY_POWERUP_RANDOM textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Random" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_SLOW_TIME textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Slow_Time" //textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_SWAP textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Swap" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_TESTOSTERONE textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Testosterone" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_THERMAL textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Thermal" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_WEED textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Weed" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_HIDDEN textureDictName = "TimerBar_Icons" textureSpriteName = "Pickup_Hidden" textureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_PED_HEADSHOT CASE ACTIVITY_POWERUP_PED_HEADSHOT_DEAD IF pPlayerID != INVALID_PLAYER_INDEX() pHeadshotID = Get_HeadshotID_For_Player(pPlayerID) IF pHeadshotID != NULL textureDictName = GET_PEDHEADSHOT_TXD_STRING(pHeadshotID) textureSpriteName = GET_PEDHEADSHOT_TXD_STRING(pHeadshotID) ENDIF ENDIF // Headshot Positioning IF IS_LANGUAGE_NON_ROMANIC() XPIconSprite.y = NumberPlace.y+0.016-0.0005 ELSE XPIconSprite.y = NumberPlace.y+0.0185 ENDIF XPIconSprite.w = 0.016+0.004 XPIconSprite.h = 0.032+0.002 // Dead Headshot Cross Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_DEAD IF IS_LANGUAGE_NON_ROMANIC() secondaryXPIconSprite.y = NumberPlace.y+0.016 ELSE secondaryXPIconSprite.y = NumberPlace.y+0.019 ENDIF secondaryXPIconSprite.w = 0.016+0.004 secondaryXPIconSprite.h = 0.032+0.002 secondaryTextureDictName = "timerbar_sr" secondaryTextureSpriteName = "timer_cross" secondaryTextureHudColour = TitleColour XPIconSprite.a = 127 // Dead headshot half alpha ENDIF BREAK ENDSWITCH IF NOT IS_STRING_NULL_OR_EMPTY(textureDictName) REQUEST_STREAMED_TEXTURE_DICT(textureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(textureDictName) SET_SPRITE_HUD_COLOUR(XPIconSprite, textureHudColour) DRAW_2D_SPRITE(textureDictName, textureSpriteName, XPIconSprite) ELSE PRINTLN("[BCTIMERS] ", aPowerup, " - ", textureDictName, " dict is loading... ") ENDIF ENDIF IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_DEAD IF NOT IS_STRING_NULL_OR_EMPTY(secondaryTextureDictName) REQUEST_STREAMED_TEXTURE_DICT(secondaryTextureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(secondaryTextureDictName) SET_SPRITE_HUD_COLOUR(secondaryXPIconSprite, secondaryTextureHudColour) DRAW_2D_SPRITE(secondaryTextureDictName, secondaryTextureSpriteName, secondaryXPIconSprite) ELSE PRINTLN("[BCTIMERS] (SECONDARY) ", aPowerup, " - ", secondaryTextureDictName, " dict is loading... ") ENDIF ENDIF ENDIF ENDIF SET_TEXT_STYLE(NumberStyle) anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF aPowerup = ACTIVITY_POWERUP_NONE OR aPowerup = ACTIVITY_POWERUP_XP OR aPowerup = ACTIVITY_POWERUP_BULLET TEXT_STYLE ePlacementTextStyle = TitleStyle SET_WORD_WRAPPING_RIGHTEDGE(ePlacementTextStyle) IF DrawInfinity DRAW_TEXT_WITH_PLAYER_NAME(NumberPlace, NumberStyle, "∞", "", HUD_COLOUR_WHITE, FONT_RIGHT) ELSE IF aPowerup = ACTIVITY_POWERUP_XP IF (bUsePlacementText) IF NOT IS_STRING_NULL_OR_EMPTY(sPlacementText) DISPLAY_TEXT_FROM_SINGLE_SCORE_GUTS(ePlacementTextStyle, TitlePlace, sPlacementText, TitleColour, aColour, -1, bLiteralPlacementText, UseTitleColourForTitle) ENDIF ELSE IF isFloat = FALSE DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,"HUD_KSMULTI", Number,FONT_RIGHT) ELSE DRAW_TEXT_WITH_FLOAT(NumberPlace,NumberStyle,"HUD_KSMULTI", FloatValue,g_b_iNumberOfDecimalPlacesForScore,FONT_RIGHT) ENDIF ENDIF ELSE IF IS_STRING_EMPTY_HUD(NumberString) IF (bUsePlacementText) IF NOT IS_STRING_NULL_OR_EMPTY(sPlacementText) DISPLAY_TEXT_FROM_SINGLE_SCORE_GUTS(ePlacementTextStyle, TitlePlace, sPlacementText, TitleColour, aColour, -1, bLiteralPlacementText, UseTitleColourForTitle) ENDIF ELSE IF MaXNumber = 0 IF isFloat = FALSE DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,"NUMBER", Number,FONT_RIGHT) ELSE DRAW_TEXT_WITH_FLOAT(NumberPlace, NumberStyle,"NUMBER", FloatValue,g_b_iNumberOfDecimalPlacesForScore,FONT_RIGHT) ENDIF ELSE DRAW_TEXT_WITH_2_NUMBERS(NumberPlace,NumberStyle,"TIMER_DASHES", Number, MaXNumber ,FONT_RIGHT) ENDIF ENDIF ELSE IF (bUsePlacementText) IF NOT IS_STRING_NULL_OR_EMPTY(sPlacementText) DISPLAY_TEXT_FROM_SINGLE_SCORE_GUTS(ePlacementTextStyle, TitlePlace, sPlacementText, TitleColour, aColour, -1, bLiteralPlacementText, UseTitleColourForTitle) ENDIF ELSE IF ARE_STRINGS_EQUAL("HUD_CASH", NumberString) OR ARE_STRINGS_EQUAL("HUD_CASH_S", NumberString) NumberString = "HUD_CASH_S" NumberStyle.aFont = FONT_STYLE_FIXED_WIDTH_NUMBERS SET_TEXT_STYLE(NumberStyle) DRAW_CASH_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number,FONT_RIGHT) ELIF ARE_STRINGS_EQUAL("HUD_CASH_NEG", NumberString) OR ARE_STRINGS_EQUAL("HUD_CASH_NEG_S", NumberString) NumberStyle.aFont = FONT_STYLE_FIXED_WIDTH_NUMBERS SET_TEXT_STYLE(NumberStyle) NumberString = "HUD_CASH_NEG_S" DRAW_CASH_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number,FONT_RIGHT) ELSE IF isFloat = FALSE DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number,FONT_RIGHT) ELSE DRAW_TEXT_WITH_FLOAT(NumberPlace,NumberStyle,NumberString, FloatValue,g_b_iNumberOfDecimalPlacesForScore,FONT_RIGHT) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_SINGLE_SCORE(INT Index, INT Number, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber,BOOL isPlayer, STRING NumberString, BOOL isFloat, FLOAT FloatValue, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS TitleColour, BOOL bDisplayWarning, INT MaXNumber, BOOL DrawInfinity, ACTIVITY_POWERUP aPowerup, HUD_COUNTER_STYLE eCounterStyle, BOOL bIsLiteralTitle, HUD_COLOURS FleckColour, INT iAlpha, BOOL bDisplayBlankScore, PLAYER_INDEX pPlayerID, BOOL bFlashTitle, BOOL bDrawLineUnderName, HUD_COLOURS LineUnderNameColour) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SCORE, Index) TEXT_STYLE TitleStyle, NumberStyle TEXT_PLACEMENT TitlePlace, NumberPlace DRAW_GENERAL_SINGLE_SCORE_GUTS(index, TitleStyle, NumberStyle, TitlePlace, NumberPlace, Number, UIELEMENTS_BOTTOMRIGHT, Title, aColour, FlashTime, TitleNumber, isPlayer, NumberString, isFloat, FloatValue, ColourFlashType, ColourFlash, TitleColour, bDisplayWarning, MaXNumber, DrawInfinity, aPowerup, eCounterStyle, "", bIsLiteralTitle, FleckColour, iAlpha, bDisplayBlankScore, pPlayerID, bFlashTitle, bDrawLineUnderName, LineUnderNameColour) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_SINGLE_SCORE index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_TIME_TIMER(TEXT_STYLE& NumberStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& TimerPlace, TEXT_PLACEMENT& ExtraTimePlace, UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle, TEXT_STYLE& AmPmStyle, TEXT_PLACEMENT& AMPMPLace ) FLOAT Gap = GET_VALUE_OF_GAP(NumberStyle) //0.04 TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) TimerPlace.x = 0.795 TimerPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberStyle) //-0.017 AMPMPLace.x = 0.795 AMPMPLace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(AmPmStyle) //-0.017 ExtraTimePlace.x = TimerPlace.x ExtraTimePlace.y = TimerPlace.y //TitlePlace.y+GET_EXTRATIME_TO_TITLE_OFFSET() //0.038 CHANGE_Y_SHIFT_END(WhichSpace, -Gap) ENDPROC PROC RESET_HUD_TIMER_EXTRA_TIME(INT Index) RESET_NET_TIMER(MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtraTimeTimer[Index]) ENDPROC //TEXT_STYLE TitleStyleWidget, TimerTextStyleWidget, ExtraDisplayStyleWidget, AMPMStyleWidget //TEXT_PLACEMENT TitlePlacementWidget, TimerPlacementWidget, ExtraDisplayPlacementWidget, AMPMPlacementWidget //SPRITE_PLACEMENT OverlayWidgetTime //BOOL TimerTimerWidgetBOol //FLOAT RatioMultiplyerWidget //// //INT ColourFlashTypeWidget //INT ColourFlashingTime PROC DRAW_GENERAL_TIME_TIMER_GUTS(INT Index, TEXT_STYLE& TitleStyle, TEXT_STYLE& NumberStyle, TEXT_STYLE& ExtraTimeStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& TimerPlace, TEXT_PLACEMENT& ExtraTimePlace, INT TimerRunner, UIELEMENTS WhichSpace, INT ExtraTime, PODIUMPOS MedalDisplay, STRING Title, HUD_COLOURS aColour, TIMER_STYLE aTimerStyle, INT FlashTime, INT TitleNumber, BOOL isPlayer, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL bDisplayAllAsDashes, HUD_COLOURS TitleColour, BOOL bIsLiteral, HUD_COLOURS FleckColour, ACTIVITY_POWERUP aPowerup, BOOL bHideUnusedZeros) MPGlobalsScoreHud.iHowManyDisplays++ // INT I // IF IS_BOTTOM_RIGHT_AREA_FREE() IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF TEXT_STYLE AMPMStyle TEXT_PLACEMENT AMPMPlace SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) // #IF IS_DEBUG_BUILD // IF TimerTimerWidgetBOol = FALSE // // WIDGET_GROUP_ID MpToSpWidgetGroup = GET_ID_OF_TOP_LEVEL_WIDGET_GROUP() // SET_CURRENT_WIDGET_GROUP(MpToSpWidgetGroup) // START_WIDGET_GROUP("TIMER TIME") // CREATE_A_TEXT_STYLE_WIGET(TitleStyleWidget, "Timer Title") // CREATE_A_TEXT_STYLE_WIGET(TimerTextStyleWidget, "Timer Number Style") // CREATE_A_TEXT_STYLE_WIGET(ExtraDisplayStyleWidget, "Extra Number Style") // CREATE_A_TEXT_STYLE_WIGET(AMPMStyleWidget, "AM PM Style") // // CREATE_A_TEXT_PLACEMENT_WIDGET(TitlePlacementWidget, "Timer Title Placement") // CREATE_A_TEXT_PLACEMENT_WIDGET(ExtraDisplayPlacementWidget, "Extra Number Placement") // CREATE_A_TEXT_PLACEMENT_WIDGET(TimerPlacementWidget, "Timer Number Placement") // CREATE_A_TEXT_PLACEMENT_WIDGET(AMPMPlacementWidget, "AM PM Placement") // // ADD_WIDGET_FLOAT_SLIDER("RatioMultiplyerWidget", RatioMultiplyerWidget, -5, 5, 0.001) // // STOP_WIDGET_GROUP() // // // START_WIDGET_GROUP("TIME OVERLAY") // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetTime, "OverlayWidgetTime") // ADD_WIDGET_INT_SLIDER("FlashTypeWidget", ColourFlashTypeWidget, 0, 5, 1) // ADD_WIDGET_INT_SLIDER("ColourFlashingTime", ColourFlashingTime, 0, 50000, 500) // STOP_WIDGET_GROUP() // CLEAR_CURRENT_WIDGET_GROUP(MpToSpWidgetGroup) // // TimerTimerWidgetBOol = TRUE // ENDIF // #ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_TIMER, Index) IF bIsLiteral SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ELIF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELIF IS_LANGUAGE_NON_ROMANIC() SET_STANDARD_SMALL_HUD_TEXT_NON_ROMANIC(TitleStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF SET_STANDARD_UI_AMPM(AMPMStyle, DROPSTYLE_NONE) SWITCH aTimerStyle CASE TIMER_STYLE_USEMILLISECONDS CASE TIMER_STYLE_DONTUSEMILLISECONDS CASE TIMER_STYLE_ONLY_SECONDS IF bDisplayAllAsDashes SET_STANDARD_UI_POSITION_SYMBOL(ExtraTimeStyle, DROPSTYLE_NONE) SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE, FONT_STANDARD) ELSE SET_STANDARD_UI_POSITION_SYMBOL(ExtraTimeStyle, DROPSTYLE_NONE) SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE, FONT_STYLE_FIXED_WIDTH_NUMBERS) ENDIF SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) SET_WORD_WRAPPING_RIGHTEDGE(ExtraTimeStyle)//, Title) BREAK // CASE TIMER_STYLE_DONTUSEMILLISECONDS // // IF bDisplayAllAsDashes // SET_STANDARD_UI_TIMERNUMBER_TWOSET(ExtraTimeStyle, DROPSTYLE_NONE, FONT_STANDARD) // SET_STANDARD_UI_TIMERNUMBER_TWOSET(NumberStyle, DROPSTYLE_NONE, FONT_STANDARD) // ELSE // SET_STANDARD_UI_TIMERNUMBER_TWOSET(ExtraTimeStyle, DROPSTYLE_NONE, FONT_STANDARD) // SET_STANDARD_UI_TIMERNUMBER_TWOSET(NumberStyle, DROPSTYLE_NONE, FONT_STYLE_FIXED_WIDTH_NUMBERS) // ENDIF // SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) // SET_WORD_WRAPPING_RIGHTEDGE(ExtraTimeStyle)//, Title) // BREAK CASE TIMER_STYLE_CLOCKAM SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE, FONT_STANDARD) SET_WORD_WRAPPING_RIGHTEDGE(AMPMStyle ) SET_WORD_WRAPPING_RIGHTEDGE(ExtraTimeStyle)//, Title) SET_WORD_WRAPPING_RIGHTEDGE_AMPM(NumberStyle) BREAK CASE TIMER_STYLE_CLOCKPM SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE, FONT_STANDARD) SET_WORD_WRAPPING_RIGHTEDGE(AMPMStyle ) SET_WORD_WRAPPING_RIGHTEDGE(ExtraTimeStyle)//, Title) SET_WORD_WRAPPING_RIGHTEDGE_AMPM(NumberStyle) BREAK CASE TIMER_STYLE_STUNTPLANE SET_STANDARD_UI_TIMERNUMBER_THREESET(ExtraTimeStyle, DROPSTYLE_NONE, FONT_STANDARD) IF bDisplayAllAsDashes SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE, FONT_STANDARD) ELSE SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE, FONT_STYLE_FIXED_WIDTH_NUMBERS) ENDIF SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) SET_WORD_WRAPPING_RIGHTEDGE(ExtraTimeStyle)//, Title) BREAK // CASE TIMER_STYLE_ONLY_SECONDS // // SET_STANDARD_UI_TIMERNUMBER_TWOSET(ExtraTimeStyle, DROPSTYLE_NONE, FONT_STANDARD) // SET_STANDARD_UI_TIMERNUMBER_TWOSET(NumberStyle, DROPSTYLE_NONE, FONT_STYLE_FIXED_WIDTH_NUMBERS) // SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) // SET_WORD_WRAPPING_RIGHTEDGE(ExtraTimeStyle)//, Title) // BREAK ENDSWITCH SET_WORD_WRAPPING_TITLE(TitleStyle) IF MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE AND MPGlobalsScoreHud.bTitleMiddleJustified = FALSE IF aTimerStyle = TIMER_STYLE_USEMILLISECONDS TitleStyle.wrapEndX += -0.016 IF IS_LANGUAGE_NON_ROMANIC() TitleStyle.wrapEndX += -0.008 ENDIF ENDIF ELIF MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE AND MPGlobalsScoreHud.bTitleMiddleJustified = TRUE IF aTimerStyle = TIMER_STYLE_USEMILLISECONDS TitleStyle.wrapEndX += 0.0 IF IS_LANGUAGE_NON_ROMANIC() TitleStyle.wrapEndX += -0.009 ENDIF ENDIF ENDIF IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_TIME_TIMER( NumberStyle, TitlePlace, TimerPlace, ExtraTimePlace, WhichSpace, TitleStyle, AMPMStyle,AMPMPlace ) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) SET_WORD_HUD_COLOUR(NumberStyle, aColour) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TitlePlace, TitlePlacementWidget) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TimerPlace, TimerPlacementWidget) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TimerPlace, ExtraDisplayPlacementWidget) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(AMPMPlace, AMPMPlacementWidget) // // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle,TitleStyleWidget) // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle,TimerTextStyleWidget) // UPDATE_TEXT_STYLE_WIDGET_VALUE(ExtraTimeStyle, ExtraDisplayStyleWidget) // UPDATE_TEXT_STYLE_WIDGET_VALUE(AMPMStyle, AMPMStyleWidget) // #ENDIF BOOL bDisplayTimerCheckbox IF FlashTime = 0 RESET_GENERIC_TIMER_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_TIMER_FLASHING_COLOUR(Index) ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericTimer_Hud[Index],MPGlobalsScoreHud.iFlashing_GenericTimer_MiniHud[Index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF //Setting up rectangular overlay below the timer text/bar Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y IF MPGlobalsScoreHud.bCoronaUnderHud = TRUE Overlays.x += RIGHT_EDGE_CORONA_OFFSET ENDIF SWITCH aTimerStyle CASE TIMER_STYLE_USEMILLISECONDS CASE TIMER_STYLE_DONTUSEMILLISECONDS CASE TIMER_STYLE_ONLY_SECONDS Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_TIME Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_TIME Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 BREAK // CASE TIMER_STYLE_DONTUSEMILLISECONDS // Overlays.x += TIMER_OVERLAY_X // Overlays.y += TIMER_OVERLAY_Y_BIGTIME // Overlays.w += TIMER_OVERLAY_W // Overlays.h += TIMER_OVERLAY_H_BIGTIME // Overlays.r += 255 // Overlays.g += 255 // Overlays.b += 255 // Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 // BREAK CASE TIMER_STYLE_CLOCKAM Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_TIME Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_TIME Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 BREAK CASE TIMER_STYLE_CLOCKPM Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_TIME Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_TIME Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 BREAK CASE TIMER_STYLE_STUNTPLANE Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_TIME Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_TIME Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 BREAK // CASE TIMER_STYLE_ONLY_SECONDS // Overlays.x += TIMER_OVERLAY_X // Overlays.y += TIMER_OVERLAY_Y_BIGTIME // Overlays.w += TIMER_OVERLAY_W // Overlays.h += TIMER_OVERLAY_H_BIGTIME // Overlays.r += 255 // Overlays.g += 255 // Overlays.b += 255 // Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 // BREAK ENDSWITCH SPRITE_PLACEMENT XPIconSprite XPIconSprite.x = TimerPlace.x+0.145+0.001 IF IS_LANGUAGE_NON_ROMANIC() XPIconSprite.y = TimerPlace.y+0.019-0.006 ELSE XPIconSprite.y = TimerPlace.y+0.019 ENDIF XPIconSprite.w = 0.016+0.003 XPIconSprite.h = 0.032+0.004 XPIconSprite.a = 255 SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_WHITE) // Position icon between title and timer XPIconSprite.x = TitleStyle.WrapEndX - ((NumberStyle.WrapEndX - TitleStyle.WrapEndX)/8) IF IS_LANGUAGE_NON_ROMANIC() XPIconSprite.x -= 0.003 ENDIF SWITCH aPowerup CASE ACTIVITY_POWERUP_XP XPIconSprite.h += -0.009 XPIconSprite.w += -0.002 IF IS_LANGUAGE_NON_ROMANIC() XPIconSprite.y += 0.0055 ELSE XPIconSprite.y += 0.0025 ENDIF REQUEST_STREAMED_TEXTURE_DICT("MPRPSymbol") IF HAS_STREAMED_TEXTURE_DICT_LOADED("MPRPSymbol") DRAW_2D_SPRITE("MPRPSymbol", "RP", XPIconSprite) ENDIF BREAK CASE ACTIVITY_POWERUP_ROCKETS REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") DRAW_2D_SPRITE("TimerBars", "Rockets", XPIconSprite) ENDIF BREAK CASE ACTIVITY_POWERUP_SPIKES REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") DRAW_2D_SPRITE("TimerBars", "Spikes", XPIconSprite) ENDIF BREAK CASE ACTIVITY_POWERUP_BOOSTS REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") DRAW_2D_SPRITE("TimerBars", "Boost", XPIconSprite) ENDIF BREAK CASE ACTIVITY_POWERUP_TICK REQUEST_STREAMED_TEXTURE_DICT("CrossTheLine") IF HAS_STREAMED_TEXTURE_DICT_LOADED("CrossTheLine") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_GREEN) DRAW_2D_SPRITE("CrossTheLine", "Timer_LargeTick_32", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_TICK - CrossTheLine dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_CROSS REQUEST_STREAMED_TEXTURE_DICT("CrossTheLine") IF HAS_STREAMED_TEXTURE_DICT_LOADED("CrossTheLine") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_RED) DRAW_2D_SPRITE("CrossTheLine", "Timer_LargeCross_32", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_CROSS - CrossTheLine dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_BEAST REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Beast", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_BEAST - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_BULLET REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_B_Time", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_BULLET - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_RANDOM REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Random", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_RANDOM - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_SLOW_TIME REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Slow_Time", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_SLOW_TIME - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_SWAP REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Swap", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_SWAP - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_TESTOSTERONE REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Testosterone", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_TESTOSTERONE - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_THERMAL REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Thermal", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_THERMAL - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_WEED REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Weed", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_WEED - TimerBar_Icons dict is loading... ") ENDIF BREAK CASE ACTIVITY_POWERUP_HIDDEN REQUEST_STREAMED_TEXTURE_DICT("TimerBar_Icons") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBar_Icons") SET_SPRITE_HUD_COLOUR(XPIconSprite, HUD_COLOUR_FRIENDLY) DRAW_2D_SPRITE("TimerBar_Icons", "Pickup_Hidden", XPIconSprite) ELSE NET_NL()NET_PRINT("[BCTIMERS] ACTIVITY_POWERUP_HIDDEN - TimerBar_Icons dict is loading... ") ENDIF BREAK ENDSWITCH IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h IF MPGlobalsScoreHud.bCoronaUnderHud = FALSE IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericTimer[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericTimer[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericTimer[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericTimer[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericTimer[Index] IF ColourFlashType = HUDFLASHING_FLASHRED SET_SPRITE_HUD_COLOUR(ColourOverlays, HUD_COLOUR_RED) ELIF ColourFlashType = HUDFLASHING_FLASHGREEN SET_SPRITE_HUD_COLOUR(ColourOverlays, HUD_COLOUR_GREEN) ELSE SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericTimer[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericTimer[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += PLAYERNAME_TITLE_OFFSET ENDIF ELIF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) SET_WORD_HUD_COLOUR(TitleStyle, TitleColour) IF MPGlobalsScoreHud.bCoronaUnderHud = FALSE SET_TEXT_STYLE(TitleStyle) IF IS_STRING_EMPTY_HUD(Title) = FALSE IF bIsLiteral = TRUE DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TitleColour, FONT_RIGHT) ELIF IsPlayer = TRUE TitleStyle.aFont = FONT_CONDENSED DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TitleColour, FONT_RIGHT) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF ENDIF ENDIF IF bDisplayTimerCheckbox IF ExtraTime = 0 RESET_HUD_TIMER_EXTRA_TIME(Index) ENDIF IF ExtraTime <> 0 AND HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtraTimeTimer[Index], 4000) = FALSE IF (aTimerStyle != TIMER_STYLE_STUNTPLANE) IF ExtraTime > 0 SET_TEXT_GREEN(ExtraTimeStyle) DRAW_TEXT_TIMER(ExtraTimePlace, ExtraTimeStyle, ExtraTime, TIME_FORMAT_SECONDS|TEXT_FORMAT_HIDE_LEADING_ZEROS_ON_LEADING_UNITS, "TIMER_POS", FALSE, TRUE) SET_TEXT_WHITE(ExtraTimeStyle) ELSE SET_TEXT_RED(ExtraTimeStyle) DRAW_TEXT_TIMER(ExtraTimePlace, ExtraTimeStyle, ExtraTime, TIME_FORMAT_SECONDS|TEXT_FORMAT_HIDE_LEADING_ZEROS_ON_LEADING_UNITS, "STRING", FALSE, TRUE) SET_TEXT_WHITE(ExtraTimeStyle) ENDIF ELSE IF ExtraTime > 0 SET_TEXT_RED(ExtraTimeStyle) DRAW_TEXT_TIMER(ExtraTimePlace, ExtraTimeStyle, ExtraTime, TIME_FORMAT_SECONDS|TEXT_FORMAT_HIDE_LEADING_ZEROS_ON_LEADING_UNITS, "TIMER_POS", FALSE, TRUE) SET_TEXT_WHITE(ExtraTimeStyle) ELSE SET_TEXT_GREEN(ExtraTimeStyle) //Do not add ABSI to this. Pass in the correct number instead. DRAW_TEXT_TIMER(ExtraTimePlace, ExtraTimeStyle, (ExtraTime), TIME_FORMAT_SECONDS|TEXT_FORMAT_HIDE_LEADING_ZEROS_ON_LEADING_UNITS, "STRING", FALSE, TRUE) SET_TEXT_WHITE(ExtraTimeStyle) ENDIF ENDIF ELSE IF MedalDisplay <> PODIUMPOS_NONE IF MedalDisplay = PODIUMPOS_BRONZE SET_TEXT_BRONZE(NumberStyle) ELIF MedalDisplay = PODIUMPOS_SILVER SET_TEXT_SILVER(NumberStyle) ELIF MedalDisplay = PODIUMPOS_GOLD SET_TEXT_GOLD(NumberStyle) ENDIF ENDIF IF MPGlobalsScoreHud.bCoronaUnderHud = TRUE NumberStyle.drop = DROPSTYLE_NONE SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_AFTER_FADE) ENDIF SET_TEXT_STYLE(NumberStyle) SWITCH aTimerStyle CASE TIMER_STYLE_USEMILLISECONDS IF bDisplayAllAsDashes DRAW_TEXT_WITH_PLAYER_NAME(TimerPlace,NumberStyle, "--:--:--","", HUD_COLOUR_WHITE, FONT_RIGHT ) ELSE TimerPlace.x += 0.117 IF bHideUnusedZeros DRAW_TEXT_TIMER(TimerPlace,NumberStyle, TimerRunner, TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER|TEXT_FORMAT_HIDE_MILLISECONDS_UNITS_DIGIT|TEXT_FORMAT_HIDE_LEADING_ZEROS_ON_LEADING_UNITS, "", FALSE, TRUE) ELSE DRAW_TEXT_TIMER(TimerPlace,NumberStyle, TimerRunner, TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER|TEXT_FORMAT_HIDE_MILLISECONDS_UNITS_DIGIT, "", FALSE, TRUE) ENDIF ENDIF BREAK CASE TIMER_STYLE_DONTUSEMILLISECONDS IF bDisplayAllAsDashes DRAW_TEXT_WITH_PLAYER_NAME(TimerPlace,NumberStyle, "--:--","", HUD_COLOUR_WHITE, FONT_RIGHT ) ELSE TimerPlace.x += 0.117 DRAW_TEXT_TIMER(TimerPlace,NumberStyle, TimerRunner, TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS, "", FALSE, TRUE) ENDIF BREAK CASE TIMER_STYLE_CLOCKAM TimerPlace.x += 0.120 DRAW_TEXT_TIMER(TimerPlace,NumberStyle, TimerRunner, TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS, "", FALSE, TRUE) DRAW_TEXT_WITH_ALIGNMENT(AMPMPlace, AMPMStyle, "TIMER_AM_O", FALSE, TRUE) BREAK CASE TIMER_STYLE_CLOCKPM TimerPlace.x += 0.120 DRAW_TEXT_TIMER(TimerPlace,NumberStyle, TimerRunner, TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS, "", FALSE, TRUE) DRAW_TEXT_WITH_ALIGNMENT(AMPMPlace, AMPMStyle, "TIMER_PM_O", FALSE, TRUE) BREAK CASE TIMER_STYLE_STUNTPLANE TimerPlace.x += 0.120 IF bDisplayAllAsDashes DRAW_TEXT_WITH_PLAYER_NAME(TimerPlace,NumberStyle, "--:--:--","", HUD_COLOUR_WHITE, FONT_RIGHT ) ELSE DRAW_TEXT_TIMER(TimerPlace, NumberStyle, TimerRunner, TIME_FORMAT_MINUTES|TIME_FORMAT_SECONDS|TIME_FORMAT_MILLISECONDS|TEXT_FORMAT_HIDE_MILLISECONDS_UNITS_DIGIT|TEXT_FORMAT_USE_DOT_FOR_MILLISECOND_DIVIDER|TEXT_FORMAT_HIDE_MILLISECONDS_UNITS_DIGIT, "", FALSE, TRUE) ENDIF BREAK CASE TIMER_STYLE_ONLY_SECONDS TimerPlace.x += 0.117 DRAW_TEXT_TIMER(TimerPlace,NumberStyle, TimerRunner, TIME_FORMAT_SECONDS, "", FALSE, TRUE) BREAK ENDSWITCH ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF // ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_TIME_TIMER(INT index, INT TimerRunning, STRING Title, INT ExtraTimeGiven, PODIUMPOS MedalDisplay, TIMER_STYLE TimerStyle, HUD_COLOURS aColour, INT iFlashingTimer, INT TitleNumber,BOOL isPlayer, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL bDisplayAsDashes, HUD_COLOURS TitleColour, BOOL bIsLiteral, HUD_COLOURS FleckColour, ACTIVITY_POWERUP aPowerup, BOOL bHideUnusedZeros) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_TIMER, Index) TEXT_STYLE TitleStyle, TimerTextStyle, ExtraDisplayStyle TEXT_PLACEMENT TitlePlacement, TimerPlacement, ExtraDisplayPlacement DRAW_GENERAL_TIME_TIMER_GUTS(Index, TitleStyle, TimerTextStyle,ExtraDisplayStyle, TitlePlacement, TimerPlacement, ExtraDisplayPlacement, TimerRunning, UIELEMENTS_BOTTOMRIGHT, ExtraTimeGiven, MedalDisplay, Title, aColour, TimerStyle, iFlashingTimer, TitleNumber, isPlayer, ColourFlashType, ColourFlash, bDisplayAsDashes, TitleColour, bIsLiteral, FleckColour, aPowerup, bHideUnusedZeros) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_TIME_TIMER index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_SINGLE_BIG_NUMBER(TEXT_STYLE& NumberStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace, UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle ) FLOAT LargeGap = GET_VALUE_OF_GAP(NumberStyle) //0.115 TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) NumberPlace.x = 0.795 NumberPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberStyle) CHANGE_Y_SHIFT_END(WhichSpace, -LargeGap) ENDPROC //SPRITE_PLACEMENT OverlayWidgetSingleBig //TEXT_STYLE styleWidgetSingleBig //TEXT_STYLE styleWidgetSingleBigTitle // //BOOL SingleBigWidget PROC DRAW_GENERAL_SINGLE_BIG_NUMBER_GUTS(INT index, TEXT_STYLE& TitleStyle, TEXT_STYLE& NumberStyle,TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace, INT Number, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber,BOOL isPlayer, STRING NumberString, HUD_COLOURS TitleColour, BOOL bDrawInfinity, HUDFLASHING ColourFlashType, INT ColourFlash,HUD_COLOURS FleckColour) IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF MPGlobalsScoreHud.iHowManyDisplays++ // INT I // IF IS_BOTTOM_RIGHT_AREA_FREE() SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) BOOL bDisplayTimerCheckbox // IF SingleBigWidget = FALSE // // START_WIDGET_GROUP("SINGLE BIG NUMBER STYLE") // CREATE_A_TEXT_STYLE_WIGET(styleWidgetSingleBig, "styleWidgetSingleBig") // CREATE_A_TEXT_STYLE_WIGET(styleWidgetSingleBigTitle, "styleWidgetSingleBigTitle") // STOP_WIDGET_GROUP() // // START_WIDGET_GROUP("SINGLE BIG NUMBER OVERLAY") // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetSingleBig, "OverlayWidgetSingleBig") // STOP_WIDGET_GROUP() // // SingleBigWidget = TRUE // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_SINGLE_NUMBER, Index) IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF SET_STANDARD_UI_SINGLE_NUMBER(NumberStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle, styleWidgetSingleBig) // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, styleWidgetSingleBigTitle) // // #ENDIF IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_SINGLE_BIG_NUMBER(NumberStyle, TitlePlace, NumberPlace, WhichSpace, TitleStyle) SET_WORD_HUD_COLOUR(NumberStyle, aColour) IF FlashTime = 0 RESET_GENERIC_NUMBER_FLASHING(index) ENDIF IF ColourFlash = 0 RESET_GENERIC_NUMBER_FLASHING_COLOUR(Index) ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericNumber_Hud[index],MPGlobalsScoreHud.iFlashing_GenericNumber_MiniHud[index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF SET_WORD_HUD_COLOUR(TitleStyle, TitleColour) Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SINGLEBIGNUM Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SINGLEBIGNUM Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetSingleBig) // #ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsScoreHud.iColourFlashing_GenericNumber_Hud[Index], MPGlobalsScoreHud.iColourFlashing_GenericNumber_MiniHud[Index]) // // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays,TRUE,HIGHLIGHT_OPTION_NORMAL, anOrder ) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays,TRUE,HIGHLIGHT_OPTION_NORMAL, anOrder ) // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays,TRUE,HIGHLIGHT_OPTION_NORMAL, anOrder ) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays,TRUE,HIGHLIGHT_OPTION_NORMAL, anOrder ) // // BREAK // // ENDSWITCH // ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsHud.iColourFlashing_GenericNumber_Hud[Index], MPGlobalsHud.iColourFlashing_GenericNumber_MiniHud[Index]) IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericNumber[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericNumber[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericNumber[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericNumber[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericNumber[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericNumber[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericNumber[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += PLAYERNAME_TITLE_OFFSET ENDIF ELIF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF SET_TEXT_STYLE(TitleStyle) IF IsPlayer = TRUE TitleStyle.aFont = FONT_CONDENSED // #IF IS_DEBUG_BUILD // TitlePlace.y += GET_VALUE_TO_TITLE_OFFSET(TitleStyle) // #ENDIF DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TitleColour, FONT_RIGHT) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF IF bDisplayTimerCheckbox SET_TEXT_STYLE(NumberStyle) IF bDrawInfinity = FALSE DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number,FONT_RIGHT) ELSE DRAW_TEXT_WITH_PLAYER_NAME(NumberPlace, NumberStyle, "∞", "", HUD_COLOUR_WHITE, FONT_RIGHT) ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF // ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_SINGLE_BIG_NUMBER(INT Index, INT Number, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber,BOOL isPlayer, STRING NumberString, HUD_COLOURS TitleColour, BOOL bDrawInfinity, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS Fleckcolour, BOOL bEnablePulsing, HUD_COLOURS PulseToColour, INT iPulseTime) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SINGLE_NUMBER, Index) TEXT_STYLE TitleStyle, NumberStyle TEXT_PLACEMENT TitlePlace, NumberPlace // DRAW_GENERAL_SINGLE_BIG_NUMBER_GUTS(index, TitleStyle, NumberStyle, TitlePlace, NumberPlace, Number, UIELEMENTS_BOTTOMRIGHT, Title, aColour, FlashTime, TitleNumber, isPlayer, NumberString, TitleColour, bDrawInfinity, ColourFlashType, ColourFlash) DRAW_GENERAL_SINGLE_SCORE_GUTS(index, TitleStyle, NumberStyle, TitlePlace, NumberPlace, Number,UIELEMENTS_BOTTOMRIGHT,Title, aColour, FlashTime, TitleNumber, isPlayer,NumberString, FALSE, 0.0, ColourFlashType, ColourFlash, TitleColour, FALSE, 0,bDrawInfinity, ACTIVITY_POWERUP_NONE, HUD_COUNTER_STYLE_DEFAULT, "", DEFAULT, Fleckcolour, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, bEnablePulsing, PulseToColour, iPulseTime) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_SINGLE_BIG_NUMBER index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_DOUBLE_BIG_NUMBER(TEXT_STYLE& NumberStyle,TEXT_STYLE& NumberTwoStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace, TEXT_PLACEMENT& NumberTwoPlace, UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle ) FLOAT LargeGap = GET_VALUE_OF_GAP(NumberTwoStyle) //0.115 TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) NumberPlace.x = 0.795 NumberPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberStyle) NumberTwoPlace.x = 0.795 NumberTwoPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberTwoStyle) CHANGE_Y_SHIFT_END(WhichSpace, -LargeGap) ENDPROC // //TEXT_STYLE TitleStyleWidgetDouble, NumberStyleWidgetDouble, SecondNumberStyleWidgetDouble //TEXT_PLACEMENT TitlePlacementWidgetDouble, NumberPlacmentWidgetDouble, SecondNumberPlacementWidgetDouble //SPRITE_PLACEMENT OverlayWidgetBig //SPRITE_PLACEMENT WarningWidgetBig //FLOAT WidgetStringLengthConverter //FLOAT WidgetStringLengthConverter_x //FLOAT WidgetStringLengthConverter_m //FLOAT WidgetStringLengthConverter_b //BOOL BIG_Number_Widget PROC DRAW_GENERAL_DOUBLE_BIG_NUMBER_GUTS(INT INDEX, TEXT_STYLE& TitleStyle, TEXT_STYLE& NumberStyle,TEXT_STYLE& NumberTwoStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace,TEXT_PLACEMENT& NumberTwoPlace, INT Number, INT Number2, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber,BOOL isPlayer, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL bDisplayWarning, HUD_COLOURS FleckColour) IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() BOOL bDisplayTimerCheckbox SPRITE_PLACEMENT Overlays SPRITE_PLACEMENT WarningIcon SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) SET_SPRITE_PLACEMENT(WarningIcon, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) // IF BIG_Number_Widget = FALSE // // START_WIDGET_GROUP("DOUBLE BIG NUMBER") // // CREATE_A_TEXT_PLACEMENT_WIDGET(TitlePlacementWidgetDouble, "TitlePlacementWidgetDouble") // CREATE_A_TEXT_PLACEMENT_WIDGET(NumberPlacmentWidgetDouble, "NumberPlacmentWidgetDouble") // CREATE_A_TEXT_PLACEMENT_WIDGET(SecondNumberPlacementWidgetDouble, "SecondNumberPlacementWidgetDouble") // // CREATE_A_TEXT_STYLE_WIGET(TitleStyleWidgetDouble, "TitleStyleWidgetDouble") // CREATE_A_TEXT_STYLE_WIGET(NumberStyleWidgetDouble, "NumberStyleWidgetDouble") // CREATE_A_TEXT_STYLE_WIGET(SecondNumberStyleWidgetDouble, "SecondNumberStyleWidgetDouble") // // STOP_WIDGET_GROUP() // START_WIDGET_GROUP("BIG NUMBER OVERLAY") // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetBig, "OverlayWidgetBig") // // STOP_WIDGET_GROUP() // START_WIDGET_GROUP("BIG NUMBER WARNING") // CREATE_A_SPRITE_PLACEMENT_WIDGET(WarningWidgetBig, "WarningWidgetBig") // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter", WidgetStringLengthConverter, -1000, 1000, 0.001) // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_x", WidgetStringLengthConverter_x, -1000, 1000, 0.001) // // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_m", WidgetStringLengthConverter_m, -1000, 1000, 0.001) // ADD_WIDGET_FLOAT_SLIDER("WidgetStringLengthConverter_b", WidgetStringLengthConverter_b, -1000, 1000, 0.001) // // STOP_WIDGET_GROUP() // // BIG_Number_Widget = TRUE // // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_DOUBLE_NUMBER, Index) // IF Number2 > 99 // SET_STANDARD_UI_DASHTRIPLE(NumberStyle, DROPSTYLE_NONE) // ELSE // SET_STANDARD_UI_SINGLE_NUMBER(NumberStyle, DROPSTYLE_NONE) // ENDIF // IF Number2 > 9 // SET_STANDARD_UI_DASHDOUBLE(NumberTwoStyle, DROPSTYLE_NONE) // ELSE IF Number2 > 99 SET_STANDARD_UI_DASHTRIPLE(NumberTwoStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_UI_SINGLE_NUMBER(NumberTwoStyle, DROPSTYLE_NONE) ENDIF IF IS_LANGUAGE_NON_ROMANIC() IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT_NON_ROMANIC(TitleStyle, DROPSTYLE_NONE) ENDIF ELSE IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) // IF Number2 > 99 // SET_WORD_WRAPPING_DASH_TRIPLE(NumberStyle) // ELIF Number2 > 9 // SET_WORD_WRAPPING_DASH_DOUBLE(NumberStyle) // ELSE // SET_WORD_WRAPPING_DASH_SINGLE(NumberStyle) // ENDIF SET_WORD_WRAPPING_RIGHTEDGE(NumberTwoStyle) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_DOUBLE_BIG_NUMBER(NumberStyle, NumberTwoStyle,TitlePlace, NumberPlace, NumberTwoPlace, WhichSpace, TitleStyle) SET_WORD_HUD_COLOUR(NumberStyle, aColour) // #IF IS_DEBUG_BUILD // // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TitlePlace, TitlePlacementWidgetDouble) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberPlace, NumberPlacmentWidgetDouble) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberTwoPlace, SecondNumberPlacementWidgetDouble) // // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, TitleStyleWidgetDouble) // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle,NumberStyleWidgetDouble ) // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberTwoStyle, SecondNumberStyleWidgetDouble) // // // #ENDIF IF FlashTime = 0 RESET_GENERIC_DOUBLE_NUMBER_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_DOUBLE_NUMBER_FLASHING_COLOUR(Index) ENDIF IF bDisplayWarning REQUEST_STREAMED_TEXTURE_DICT("CommonMenu") ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericDoubleNumber_Hud[INDEX] ,MPGlobalsScoreHud.iFlashing_GenericDoubleNumber_MiniHud[INDEX]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y WarningIcon.x = TitlePlace.x WarningIcon.y = TitlePlace.y+0.001 IF Number2 > 99 Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_BIGNUMSML Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_BIGNUMSML Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ELSE Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_BIGNUM Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_BIGNUM Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ENDIF IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetBig) // UPDATE_SPRITE_WIDGET_VALUE(WarningIcon, WarningWidgetSCORE) // #ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumber_Hud[Index], MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumber_MiniHud[Index]) // // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder ) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsHud.iColourFlashing_GenericDoubleNumber_Hud[Index], MPGlobalsHud.iColourFlashing_GenericDoubleNumber_MiniHud[Index]) IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericDoubleNumber[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericDoubleNumber[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumber[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumber[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumber[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumber[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericDoubleNumber[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += PLAYERNAME_TITLE_OFFSET ENDIF ELIF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF SET_TEXT_STYLE(TitleStyle) IF IsPlayer = TRUE DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title,"", HUD_COLOUR_WHITE, FONT_RIGHT) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF IF bDisplayWarning REQUEST_STREAMED_TEXTURE_DICT("CommonMenu") IF HAS_STREAMED_TEXTURE_DICT_LOADED("CommonMenu") FLOAT StringIconOffset = 0.0 FLOAT x = TO_FLOAT(GET_LENGTH_OF_STRING_WITH_THIS_TEXT_LABEL(Title)) FLOAT b = 0.081 FLOAT m = -0.0059 b += 0.03 IF MPGlobalsScoreHud.bTitleFarLeftJustified b += -0.030 ENDIF IF MPGlobalsScoreHud.bTitleMiddleJustified AND MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE b += -0.015-0.003 ENDIF // #IF IS_DEBUG_BUILD // StringIconOffset += WidgetStringLengthConverter // x += WidgetStringLengthConverter_x // b += WidgetStringLengthConverter_b // m += WidgetStringLengthConverter_m // // #ENDIF StringIconOffset = (m*x)+B WarningIcon.x += StringIconOffset WarningIcon.x -= 0.015 WarningIcon.y += 0.008 WarningIcon.w += 0.022 WarningIcon.h += 0.040 WarningIcon.r += 194 WarningIcon.g += 80 WarningIcon.b += 80 WarningIcon.a -= 50 DRAW_2D_SPRITE("CommonMenu", "MP_AlertTriangle",WarningIcon, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ENDIF IF bDisplayTimerCheckbox // SET_TEXT_STYLE(NumberStyle) SET_TEXT_STYLE(NumberTwoStyle) // DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,"NUMBER", Number,FONT_RIGHT) // DRAW_TEXT_WITH_NUMBER(NumberTwoPlace,NumberTwoStyle,"TIMER_DASH", Number2,FONT_RIGHT) DRAW_TEXT_WITH_2_NUMBERS(NumberTwoPlace,NumberTwoStyle, "TIMER_DASHES",Number, Number2, FONT_RIGHT) ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER(INT index, INT CurrentNumber, INT MaxNumber, STRING Title, HUD_COLOURS aColour, INT iFlashTimer, INT TitleNumber, BOOL isPlayer, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL bDisplayWarning, BOOL bUseNonPlayerFont, HUD_COLOURS TitleColour, HUD_COLOURS FleckColour, INT iAlpha, BOOL bFlashTitle) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER, Index) TEXT_STYLE TitleStyle, NumberStyle//, SecondNumberStyle TEXT_PLACEMENT TitlePlace, NumberPlace//, SecondNumberPlacement // DRAW_GENERAL_DOUBLE_BIG_NUMBER_GUTS(Index,TitleStyle, NumberStyle, SecondNumberStyle, TitlePlace, NumberPlace, SecondNumberPlacement, // CurrentNumber, MaxNumber, UIELEMENTS_BOTTOMRIGHT, Title, aColour, iFlashTimer, TitleNumber, isPlayer, // ColourFlashType, ColourFlash, bDisplayWarning) DRAW_GENERAL_SINGLE_SCORE_GUTS(index, TitleStyle, NumberStyle, TitlePlace, NumberPlace, CurrentNumber,UIELEMENTS_BOTTOMRIGHT, Title, aColour,iFlashTimer, TitleNumber, isPlayer, "", FALSE, 0, ColourFlashType, ColourFlash, TitleColour, bDisplayWarning, MaxNumber, FALSE, ACTIVITY_POWERUP_NONE, HUD_COUNTER_STYLE_DEFAULT, "", bUseNonPlayerFont,FleckColour, iAlpha, DEFAULT, DEFAULT, bFlashTitle) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC // //BOOL PlacementStandingWidget //FLOAT PlacementStandingWidget_VAlueSingle //FLOAT PlacementStandingWidget_VAlueDouble //FLOAT PlacementStandingWidget_VAlueTriple FUNC FLOAT GET_POSITION_SYMBOL_XPOS(TEXT_STYLE& NumberTwoStyle, TEXT_STYLE& NumberStyle) // IF PlacementStandingWidget = FALSE // // START_WIDGET_GROUP("GET_POSITION_SYMBOL_XPOS") // ADD_WIDGET_FLOAT_SLIDER("PlacementStandingWidget_VAlueSingle", PlacementStandingWidget_VAlueSingle, -2, 2, 0.001) // ADD_WIDGET_FLOAT_SLIDER("PlacementStandingWidget_VAlueDouble", PlacementStandingWidget_VAlueDouble, -2, 2, 0.001) // ADD_WIDGET_FLOAT_SLIDER("PlacementStandingWidget_VAlueTriple", PlacementStandingWidget_VAlueTriple, -2, 2, 0.001) // STOP_WIDGET_GROUP() // PlacementStandingWidget = TRUE // // ENDIF FLOAT Result SWITCH NumberTwoStyle.aTextType CASE TEXTTYPE_TS_UI_DASHSINGLE Result = (0.930)-0.049+0.048+0.001 // #IF IS_DEBUG_BUILD // Result += PlacementStandingWidget_VAlueSingle // #ENDIF RETURN Result BREAK CASE TEXTTYPE_TS_UI_DASHDOUBLE IF NumberStyle.aTextType = TEXTTYPE_TS_UI_DASHTRIPLE Result = (0.925)-0.046+0.048-0.001-0.010+0.002 // #IF IS_DEBUG_BUILD // Result += PlacementStandingWidget_VAlueTriple // #ENDIF ELSE Result = (0.925)-0.046+0.048-0.001 // #IF IS_DEBUG_BUILD // Result += PlacementStandingWidget_VAlueDouble // #ENDIF ENDIF RETURN Result BREAK ENDSWITCH RETURN 0.0 ENDFUNC PROC INIT_SCREEN_GENERAL_DOUBLE_BIG_NUMBER_PLACE(TEXT_STYLE& NumberStyle,TEXT_STYLE& NumberTwoStyle,TEXT_STYLE& PlaceStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace, TEXT_PLACEMENT& NumberTwoPlace, TEXT_PLACEMENT& ThePlacePlace, UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle ) FLOAT LargeGap = GET_VALUE_OF_GAP(NumberStyle) //0.115 TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) NumberPlace.x = 0.795 NumberPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberStyle) NumberTwoPlace.x = 0.795 NumberTwoPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberTwoStyle) ThePlacePlace.x = GET_POSITION_SYMBOL_XPOS(NumberTwoStyle, NumberStyle) ThePlacePlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(PlaceStyle) CHANGE_Y_SHIFT_END(WhichSpace, -LargeGap) ENDPROC //TEXT_STYLE TitleStyleWidgetDoublePlace, NumberStyleWidgetDoublePlace, SecondNumberStyleWidgetDoublePlace, PlaceStyleWidgetDoublePlace //TEXT_PLACEMENT TitlePlacementWidgetDoublePlace, NumberPlacmentWidgetDoublePlace, SecondNumberPlacementWidgetDoublePlace, PlacePlacmentWidgetDoublePlace //SPRITE_PLACEMENT OverlayWidgetBigPlace //BOOL DoubleNumberPlaceWidget PROC DRAW_GENERAL_DOUBLE_BIG_NUMBER_PLACE_GUTS(INT Index, TEXT_STYLE& TitleStyle, TEXT_STYLE& NumberStyle,TEXT_STYLE& NumberTwoStyle, TEXT_STYLE& PlaceStyle, TEXT_PLACEMENT& TitlePlace, TEXT_PLACEMENT& NumberPlace,TEXT_PLACEMENT& NumberTwoPlace,TEXT_PLACEMENT& PlacePlace, INT Number, INT Number2, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber,BOOL isPlayer, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS FleckColour) MPGlobalsScoreHud.iHowManyDisplays++ IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF IF IS_BOTTOM_RIGHT_AREA_FREE() SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) // SET_SPRITE_PLACEMENT(Overlays[1], 0.0, 0.0, 0.0, 0.0, 0,0,0,255) BOOL bDisplayTimerCheckbox // IF DoubleNumberPlaceWidget = FALSE // // START_WIDGET_GROUP("DOUBLE BIG NUMBER PLACE") // // CREATE_A_TEXT_PLACEMENT_WIDGET(TitlePlacementWidgetDoublePlace, "TitlePlacementWidgetDoublePlace") // CREATE_A_TEXT_PLACEMENT_WIDGET(NumberPlacmentWidgetDoublePlace, "NumberPlacmentWidgetDoublePlace") // CREATE_A_TEXT_PLACEMENT_WIDGET(SecondNumberPlacementWidgetDoublePlace, "SecondNumberPlacementWidgetDoublePlace") // CREATE_A_TEXT_PLACEMENT_WIDGET(PlacePlacmentWidgetDoublePlace, "PlacePlacmentWidgetDoublePlace") // // CREATE_A_TEXT_STYLE_WIGET(TitleStyleWidgetDoublePlace, "TitleStyleWidgetDoublePlace") // CREATE_A_TEXT_STYLE_WIGET(NumberStyleWidgetDoublePlace, "NumberStyleWidgetDoublePlace") // CREATE_A_TEXT_STYLE_WIGET(SecondNumberStyleWidgetDoublePlace, "SecondNumberStyleWidgetDoublePlace") // CREATE_A_TEXT_STYLE_WIGET(PlaceStyleWidgetDoublePlace, "PlaceStyleWidgetDoublePlace") // // STOP_WIDGET_GROUP() // // START_WIDGET_GROUP("BIG NUMBER PLACE OVERLAY") // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetBigPlace, "OverlayWidgetBigPlace") // // STOP_WIDGET_GROUP() // DoubleNumberPlaceWidget = TRUE // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_DOUBLE_NUMBER_PLACE, Index) SET_STANDARD_UI_SINGLE_NUMBER(NumberStyle, DROPSTYLE_NONE) SET_STANDARD_UI_DASHSINGLE(NumberTwoStyle, DROPSTYLE_NONE) SET_STANDARD_UI_POSITION_SINGLE_SYMBOL(PlaceStyle, DROPSTYLE_NONE) IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) IF Number2 > 99 SET_WORD_WRAPPING_DASH_TRIPLE_PLACE(NumberStyle) ELSE SET_WORD_WRAPPING_DASH_SINGLE_PLACE(NumberStyle) ENDIF SET_WORD_WRAPPING_RIGHTEDGE(NumberTwoStyle) SET_WORD_WRAPPING_RIGHTEDGE_AND_PLACE(PlaceStyle) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_DOUBLE_BIG_NUMBER_PLACE(NumberStyle, NumberTwoStyle, PlaceStyle, TitlePlace, NumberPlace,NumberTwoPlace,PlacePlace, WhichSpace, TitleStyle) SET_WORD_HUD_COLOUR(NumberStyle, aColour) SET_WORD_HUD_COLOUR(NumberTwoStyle, aColour) SET_WORD_HUD_COLOUR(PlaceStyle, aColour) // #IF IS_DEBUG_BUILD // // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TitlePlace, TitlePlacementWidgetDoublePlace) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberPlace, NumberPlacmentWidgetDoublePlace) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberTwoPlace, SecondNumberPlacementWidgetDoublePlace) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(PlacePlace, PlacePlacmentWidgetDoublePlace) // // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, TitleStyleWidgetDoublePlace) // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle,NumberStyleWidgetDoublePlace ) // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberTwoStyle, SecondNumberStyleWidgetDoublePlace) // UPDATE_TEXT_STYLE_WIDGET_VALUE(PlaceStyle,PlaceStyleWidgetDoublePlace) // // #ENDIF IF FlashTime = 0 RESET_GENERIC_DOUBLE_NUMBER_PLACE_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_DOUBLE_NUMBER_PLACE_FLASHING_COLOUR(Index) ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericDoubleNumberPlace_Hud[Index],MPGlobalsScoreHud.iFlashing_GenericDoubleNumberPlace_MiniHud[Index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_BIGNUMPLACE Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_BIGNUMPLACE Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetBigPlace) // #ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumberPlace_Hud[Index], MPGlobalsScoreHud.iColourFlashing_GenericDoubleNumberPlace_MiniHud[Index]) // // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF // // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsHud.iColourFlashing_GenericDoubleNumberPlace_Hud[Index], MPGlobalsHud.iColourFlashing_GenericDoubleNumberPlace_MiniHud[Index]) IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericDoubleNumberPlace[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericDoubleNumberPlace[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumberPlace[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumberPlace[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumberPlace[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericDoubleNumberPlace[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericDoubleNumberPlace[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += PLAYERNAME_TITLE_OFFSET ENDIF ELIF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF SET_TEXT_STYLE(TitleStyle) IF IsPlayer = TRUE DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title,"", HUD_COLOUR_WHITE, FONT_RIGHT) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF IF bDisplayTimerCheckbox SET_TEXT_STYLE(NumberStyle) SET_TEXT_STYLE(NumberTwoStyle) SET_TEXT_STYLE(PlaceStyle) TEXT_LABEL_63 Position = GET_POSITION_STRING(Number) DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,"NUMBER", Number,FONT_RIGHT) DRAW_TEXT_WITH_NUMBER(NumberTwoPlace,NumberTwoStyle, "TIMER_DASH", Number2, FONT_RIGHT) DRAW_TEXT_WITH_ALIGNMENT(PlacePlace, PlaceStyle, Position, FALSE, TRUE) ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER_PLACE(INT Index, INT CurrentNumber, INT MaxNumber, STRING Title, HUD_COLOURS aColour, INT FlashTime, INT TitleNumber,BOOL isPlayer, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS TitleColour, HUD_COLOURS FleckColour, BOOL bCustomFont, TEXT_FONTS eCustomFont) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER_PLACE, Index) TEXT_STYLE TitleStyle, NumberStyle//, SecondNumberStyle, PlacementStyle TEXT_PLACEMENT TitlePlace, NumberPlace//, SecondNumberPlace, PlacePlace // // DRAW_GENERAL_DOUBLE_BIG_NUMBER_PLACE_GUTS(Index, TitleStyle, NumberStyle,SecondNumberStyle, PlacementStyle, // TitlePlace, NumberPlace,SecondNumberPlace,PlacePlace, CurrentNumber, MaxNumber, // UIELEMENTS_BOTTOMRIGHT, Title, aColour, FlashTime, TitleNumber, isPlayer, // ColourFlashType, ColourFlash) // DRAW_GENERAL_SINGLE_SCORE_GUTS(Index, TitleStyle, NumberStyle, TitlePlace, NumberPlace, CurrentNumber, UIELEMENTS_BOTTOMRIGHT, Title, aColour, FlashTime, TitleNumber, isPlayer, "", FALSE, 0.0, ColourFlashType, ColourFlash, TitleColour, FALSE,MaxNumber,FALSE, ACTIVITY_POWERUP_NONE, HUD_COUNTER_STYLE_DEFAULT, "", DEFAULT, FleckColour, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, bCustomFont, eCustomFont) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER_PLACE index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC FUNC BOOL IS_BAR_FREEROAM(FLOAT Xpos, FLOAT Ypos) IF Xpos = -1 AND Ypos = -1 RETURN FALSE ENDIF RETURN TRUE ENDFUNC PROC SET_BAR_SPRITES(SPRITE_PLACEMENT& Sprite[], UIELEMENTS WhichSpace, FLOAT Xpos, FLOAT Ypos) FLOAT BarYPos FLOAT BarXPos IF NOT IS_BAR_FREEROAM(Xpos, Ypos) BarYPos = GET_BAR_TO_TITLE_OFFSET()+GET_Y_SHIFT(WhichSpace) BarXPos = GET_DAMAGE_BAR_TO_TITLE_OFFSET_X() //0.919 ELSE BarYPos = Ypos BarXPos = Xpos ENDIF Sprite[0].x = BarXPos Sprite[0].y = BarYPos Sprite[0].w = 0.062 Sprite[0].h = 0.016 Sprite[0].r = 255 Sprite[0].g = 255 Sprite[0].b = 0 Sprite[0].a = 250 //Masked Sprite Sprite[1].x = BarXPos Sprite[1].y = BarYPos Sprite[1].w = 0.069 Sprite[1].h = 0.011 Sprite[1].r = 255 Sprite[1].g = 255 Sprite[1].b = 0 Sprite[1].a = 250 Sprite[2].x = BarXPos Sprite[2].y = BarYPos Sprite[2].w = 0.069 Sprite[2].h = 0.009 Sprite[2].r = 0 Sprite[2].g = 0 Sprite[2].b = 0 Sprite[2].a = 120 //Fill rect Sprite[3].x = BarXPos Sprite[3].y = BarYPos Sprite[3].w = 0.069 Sprite[3].h = 0.008 Sprite[3].r = 0 Sprite[3].g = 0 Sprite[3].b = 0 Sprite[3].a = 90 ENDPROC PROC SET_CIRCLE_SPRITES(SPRITE_PLACEMENT& Sprite[], UIELEMENTS WhichSpace, FLOAT Xpos, FLOAT Ypos) FLOAT BarYPos FLOAT BarXPos IF NOT IS_BAR_FREEROAM(Xpos, Ypos) BarYPos = GET_BAR_TO_TITLE_OFFSET()+GET_Y_SHIFT(WhichSpace) BarXPos = GET_CHECKPOINT_TO_TITLE_OFFSET_X() //0.919 ELSE BarYPos = Ypos BarXPos = Xpos ENDIF //Circle 1 Sprite[0].x = BarXPos Sprite[0].y = BarYPos Sprite[0].w = CHECKPOINT_DOT_W Sprite[0].h = CHECKPOINT_DOT_H Sprite[0].r = 0 Sprite[0].g = 0 Sprite[0].b = 0 Sprite[0].a = 250 //Circle 2 Sprite[1].x = BarXPos Sprite[1].y = BarYPos Sprite[1].w = CHECKPOINT_DOT_W Sprite[1].h = CHECKPOINT_DOT_H Sprite[1].r = 0 Sprite[1].g = 0 Sprite[1].b = 0 Sprite[1].a = 250 //Circle 3 Sprite[2].x = BarXPos Sprite[2].y = BarYPos Sprite[2].w = CHECKPOINT_DOT_W Sprite[2].h = CHECKPOINT_DOT_H Sprite[2].r = 0 Sprite[2].g = 0 Sprite[2].b = 0 Sprite[2].a = 250 //Circle 4 Sprite[3].x = BarXPos Sprite[3].y = BarYPos Sprite[3].w = CHECKPOINT_DOT_W Sprite[3].h = CHECKPOINT_DOT_H Sprite[3].r = 0 Sprite[3].g = 0 Sprite[3].b = 0 Sprite[3].a = 250 //Circle 5 Sprite[4].x = BarXPos Sprite[4].y = BarYPos Sprite[4].w = CHECKPOINT_DOT_W Sprite[4].h = CHECKPOINT_DOT_H Sprite[4].r = 0 Sprite[4].g = 0 Sprite[4].b = 0 Sprite[4].a = 250 //Circle 6 Sprite[5].x = BarXPos Sprite[5].y = BarYPos Sprite[5].w = CHECKPOINT_DOT_W Sprite[5].h = CHECKPOINT_DOT_H Sprite[5].r = 0 Sprite[5].g = 0 Sprite[5].b = 0 Sprite[5].a = 250 //Circle 7 Sprite[6].x = BarXPos Sprite[6].y = BarYPos Sprite[6].w = CHECKPOINT_DOT_W Sprite[6].h = CHECKPOINT_DOT_H Sprite[6].r = 0 Sprite[6].g = 0 Sprite[6].b = 0 Sprite[6].a = 250 //Circle 8 Sprite[7].x = BarXPos Sprite[7].y = BarYPos Sprite[7].w = CHECKPOINT_DOT_W Sprite[7].h = CHECKPOINT_DOT_H Sprite[7].r = 0 Sprite[7].g = 0 Sprite[7].b = 0 Sprite[7].a = 250 ENDPROC PROC SET_CIRCLE_CHECKPOINT_SPRITES(SPRITE_PLACEMENT& Sprite[], UIELEMENTS WhichSpace, FLOAT Xpos, FLOAT Ypos) FLOAT BarYPos FLOAT BarXPos IF NOT IS_BAR_FREEROAM(Xpos, Ypos) BarYPos = GET_BAR_TO_TITLE_OFFSET()+GET_Y_SHIFT(WhichSpace) BarXPos = GET_CHECKPOINT_TO_TITLE_OFFSET_X() //0.919 ELSE BarYPos = Ypos BarXPos = Xpos ENDIF //Circle 1 Sprite[0].x = BarXPos Sprite[0].y = BarYPos Sprite[0].w = CHECKPOINT_DOT_W Sprite[0].h = CHECKPOINT_DOT_H Sprite[0].r = 0 Sprite[0].g = 0 Sprite[0].b = 0 Sprite[0].a = 250 //Circle 2 Sprite[1].x = BarXPos Sprite[1].y = BarYPos Sprite[1].w = CHECKPOINT_DOT_W Sprite[1].h = CHECKPOINT_DOT_H Sprite[1].r = 0 Sprite[1].g = 0 Sprite[1].b = 0 Sprite[1].a = 250 //Circle 3 Sprite[2].x = BarXPos Sprite[2].y = BarYPos Sprite[2].w = CHECKPOINT_DOT_W Sprite[2].h = CHECKPOINT_DOT_H Sprite[2].r = 0 Sprite[2].g = 0 Sprite[2].b = 0 Sprite[2].a = 250 //Circle 4 Sprite[3].x = BarXPos Sprite[3].y = BarYPos Sprite[3].w = CHECKPOINT_DOT_W Sprite[3].h = CHECKPOINT_DOT_H Sprite[3].r = 0 Sprite[3].g = 0 Sprite[3].b = 0 Sprite[3].a = 250 //Circle 5 Sprite[4].x = BarXPos Sprite[4].y = BarYPos Sprite[4].w = CHECKPOINT_DOT_W Sprite[4].h = CHECKPOINT_DOT_H Sprite[4].r = 0 Sprite[4].g = 0 Sprite[4].b = 0 Sprite[4].a = 250 //Circle 6 Sprite[5].x = BarXPos Sprite[5].y = BarYPos Sprite[5].w = CHECKPOINT_DOT_W Sprite[5].h = CHECKPOINT_DOT_H Sprite[5].r = 0 Sprite[5].g = 0 Sprite[5].b = 0 Sprite[5].a = 250 //Circle 7 Sprite[6].x = BarXPos Sprite[6].y = BarYPos Sprite[6].w = CHECKPOINT_DOT_W Sprite[6].h = CHECKPOINT_DOT_H Sprite[6].r = 0 Sprite[6].g = 0 Sprite[6].b = 0 Sprite[6].a = 250 //Circle 8 Sprite[7].x = BarXPos Sprite[7].y = BarYPos Sprite[7].w = CHECKPOINT_DOT_W Sprite[7].h = CHECKPOINT_DOT_H Sprite[7].r = 0 Sprite[7].g = 0 Sprite[7].b = 0 Sprite[7].a = 250 //Circle 9 Sprite[8].x = BarXPos Sprite[8].y = BarYPos Sprite[8].w = CHECKPOINT_DOT_W Sprite[8].h = CHECKPOINT_DOT_H Sprite[8].r = 0 Sprite[8].g = 0 Sprite[8].b = 0 Sprite[8].a = 250 //Circle 10 Sprite[9].x = BarXPos Sprite[9].y = BarYPos Sprite[9].w = CHECKPOINT_DOT_W Sprite[9].h = CHECKPOINT_DOT_H Sprite[9].r = 0 Sprite[9].g = 0 Sprite[9].b = 0 Sprite[9].a = 250 ENDPROC PROC SET_LINE_DIVIDER(RECT& aRECT) //First line divider aRECT.x = 0.851 aRECT.y = 0.0750 aRECT.w = 0.001 aRECT.h = 0.009 aRECT.r = 0 aRECT.g = 0 aRECT.b = 0 aRECT.a = 250 ENDPROC PROC HIDE_ALL_TOP_RIGHT_HUD(BOOL bHideReticle = TRUE, BOOL bHideWeapon = TRUE) HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH) IF bHideWeapon HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_WEAPON_ICON) ENDIF IF bHideReticle HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_RETICLE) ENDIF ENDPROC PROC HIDE_ALL_BOTTOM_RIGHT_HUD() HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_AREA_NAME) HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_VEHICLE_NAME) HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_DISTRICT_NAME) HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_STREET_NAME) ENDPROC PROC INIT_SCREEN_GENERAL_CHECKPOINT(INT MaxNum, TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[],SPRITE_PLACEMENT& Overlays, TEXT_PLACEMENT& NumberPlace,TEXT_STYLE& NumberStyle, RECT& Rects, UIELEMENTS WhichSpace, FLOAT xPos, FLOAT yPos, TEXT_STYLE& TitleStyle, BOOL bBigCheckpoint ) FLOAT TheGap = GET_VALUE_OF_GAP(NumberStyle) IF MaxNum < CHECKPOINT_TIMER_SWITCH TheGap = GET_VALUE_OF_GAP_BAR_SPRITE(bBigCheckpoint, FALSE) ENDIF TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) NumberPlace.x = 0.795 NumberPlace.y = TitlePlace.y+GET_VALUE_TO_TITLE_OFFSET(NumberStyle) SET_CIRCLE_CHECKPOINT_SPRITES(Sprites,WhichSpace, XPos, YPos) SET_LINE_DIVIDER(Rects) IF NOT IS_BAR_FREEROAM(Xpos, Ypos) CHANGE_Y_SHIFT_END(WhichSpace, -TheGap) ENDIF SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) ENDPROC //SPRITE_PLACEMENT OverlayWidgetsCheckpoint //BOOL InitCheckpointWidgets //TEXT_STYLE CheckpointNumberStyle_Widget //TEXT_STYLE CheckpointTitleStyle_Widget //TEXT_STYLE CheckpointMultiplyerStyle_Widget // //TEXT_PLACEMENT CheckpointNumberPlacement_Widget //TEXT_PLACEMENT CheckpointMultiplyerPlacement_Widget // //FLOAT TitleOffset_Widget PROC DRAW_GENERAL_CHECKPOINT_GUTS(INT index, TEXT_STYLE& TitleStyle, TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[], RECT& aRect, TEXT_STYLE& NumberStyle, TEXT_PLACEMENT& NumberPlace, INT Number, INT MaxNumber, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT TitleNumber,BOOL isPlayer, INT FlashTime, FLOAT XPos, FLOAT YPos, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL DisplaySingleDot, INT iInBuiltMultiplyer #IF USE_TU_CHANGES , BOOL CrossedDot0,BOOL CrossedDot1,BOOL CrossedDot2,BOOL CrossedDot3,BOOL CrossedDot4,BOOL CrossedDot5,BOOL CrossedDot6,BOOL CrossedDot7 #ENDIF, HUD_COLOURS FleckColour) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF SPRITE_PLACEMENT Overlays TEXT_PLACEMENT InBuiltMultiplyer_Placement TEXT_STYLE MultiplyerStyle BOOL bDisplayTimerCheckbox // IF InitCheckpointWidgets = FALSE // START_WIDGET_GROUP("CHECKPOINT SIZE") // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetsCheckpoint, "OverlayWidgetsCheckpoint") // CREATE_A_TEXT_STYLE_WIGET(CheckpointNumberStyle_Widget, "CheckpointNumberStyle_Widget") // CREATE_A_TEXT_STYLE_WIGET(CheckpointTitleStyle_Widget, "CheckpointTitleStyle_Widget") // CREATE_A_TEXT_PLACEMENT_WIDGET(CheckpointNumberPlacement_Widget, "CheckpointNumberPlacement_Widget") // // CREATE_A_TEXT_PLACEMENT_WIDGET(CheckpointMultiplyerPlacement_Widget, "CheckpointMultiplyerPlacement_Widget") // CREATE_A_TEXT_STYLE_WIGET(CheckpointMultiplyerStyle_Widget, "CheckpointMultiplyerStyle_Widget") // ADD_WIDGET_FLOAT_SLIDER("TitleOffset_Widget", TitleOffset_Widget, -1, 1, 0.001) // STOP_WIDGET_GROUP() // // InitCheckpointWidgets = TRUE // // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_CHECKPOINT, Index) IF IS_LANGUAGE_NON_ROMANIC() // IF isPlayer // SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) // ELSE SET_STANDARD_UI_METER_BIG_TITLE(TitleStyle, DROPSTYLE_NONE) // ENDIF ELSE IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF SET_STANDARD_SMALL_HUD_TEXT(MultiplyerStyle, DROPSTYLE_NONE) MultiplyerStyle.YScale += 0.166+0.095 IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF SET_STANDARD_UI_TIMERNUMBER_THREESET(NumberStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) SET_TEXT_STYLE(NumberStyle) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle, CheckpointNumberStyle_Widget) // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, CheckpointTitleStyle_Widget) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(NumberPlace,CheckpointNumberPlacement_Widget) // // // #ENDIF BOOL bBigCheckpoint = FALSE IF iInBuiltMultiplyer > 0 bBigCheckpoint = TRUE ENDIF INIT_SCREEN_GENERAL_CHECKPOINT(MaxNumber, TitlePlace, Sprites, Overlays,NumberPlace, NumberStyle, aRect, WhichSpace, XPos, YPos, TitleStyle, bBigCheckpoint) InBuiltMultiplyer_Placement.x = TitlePlace.x InBuiltMultiplyer_Placement.y = TitlePlace.y InBuiltMultiplyer_Placement.y += -0.006-0.007 // #IF IS_DEBUG_BUILD // UPDATE_TEXT_STYLE_WIDGET_VALUE(MultiplyerStyle, CheckpointMultiplyerStyle_Widget) // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(InBuiltMultiplyer_Placement,CheckpointMultiplyerPlacement_Widget) // // #ENDIF SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) SET_WORD_WRAPPING_MULTIPLYER(MultiplyerStyle) IF FlashTime = 0 RESET_GENERIC_CHECKPOINT_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_CHECKPOINT_FLASHING_COLOUR(Index) ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericCheckpoint_Hud[index],MPGlobalsScoreHud.iFlashing_GenericCheckpoint_MiniHud[index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF IF NOT IS_BAR_FREEROAM(Xpos, Ypos) Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y IF MaxNumber < CHECKPOINT_TIMER_SWITCH AND iInBuiltMultiplyer = 0 Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SPRITES Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SPRITES Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 //reduce furhter 1291727 ELSE Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_TIME Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_TIME Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ENDIF IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetsCheckpoint) // #ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsScoreHud.iColourFlashing_GenericCheckpoint_Hud[Index], MPGlobalsScoreHud.iColourFlashing_GenericCheckpoint_MiniHud[Index]) IF (Number = MaxNumber AND Number > 0) OR ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericCheckpoint[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericCheckpoint[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericCheckpoint[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericCheckpoint[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericCheckpoint[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericCheckpoint[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericCheckpoint[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE IF IS_LANGUAGE_NON_ROMANIC() = FALSE TitlePlace.y += -0.002 ENDIF ENDIF ELIF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE ENDIF ENDIF // #IF IS_DEBUG_BUILD // TitlePlace.y += TitleOffset_Widget // #ENDIF anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF NOT IS_BAR_FREEROAM(Xpos, Ypos) SET_TEXT_STYLE(TitleStyle) IF isPlayer = TRUE DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", HUD_COLOUR_WHITE, FONT_RIGHT) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF ENDIF IF iInBuiltMultiplyer > 0 DRAW_TEXT_WITH_NUMBER(InBuiltMultiplyer_Placement, MultiplyerStyle, "HUD_MULTSMAL", iInBuiltMultiplyer, FONT_RIGHT) ENDIF IF bDisplayTimerCheckbox RUN_CHECKPOINT_GUTS(Number, MaxNumber, Sprites, NumberStyle, NumberPlace, aColour, anOrder, DisplaySingleDot #IF USE_TU_CHANGES , CrossedDot0, CrossedDot1, CrossedDot2, CrossedDot3, CrossedDot4, CrossedDot5, CrossedDot6, CrossedDot7 #ENDIF) ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_CHECKPOINT(INT index, INT CurrentNumber, INT MaxNumber, STRING Title, HUD_COLOURS aColour, INT TitleNumber, BOOL IsPlayer, INT FlashTime, FLOAT XPos, FLOAT YPos, HUDFLASHING ColourFlashType, INT ColourFlash, INT inBuiltMultiplyer #IF USE_TU_CHANGES , BOOL CrossedDot1,BOOL CrossedDot2,BOOL CrossedDot3,BOOL CrossedDot4,BOOL CrossedDot5,BOOL CrossedDot6,BOOL CrossedDot7,BOOL CrossedDot8 #ENDIF, HUD_COLOURS FleckColour) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_CHECKPOINT, Index) TEXT_STYLE TitleStyle TEXT_PLACEMENT TitlePlacement SPRITE_PLACEMENT CheckpointSprites[11] TEXT_STYLE NumberStyle TEXT_PLACEMENT NumberPlacement RECT CheckpointRect // IF MaxNumber < 11 DRAW_GENERAL_CHECKPOINT_GUTS(index, TitleStyle, TitlePlacement, CheckpointSprites, CheckpointRect, NumberStyle, NumberPlacement, CurrentNumber, MaxNumber, UIELEMENTS_BOTTOMRIGHT, Title, aColour, TitleNumber, IsPlayer, FlashTime, XPos, YPos, ColourFlashType, ColourFlash, TRUE, inBuiltMultiplyer #IF USE_TU_CHANGES , CrossedDot1,CrossedDot2,CrossedDot3,CrossedDot4,CrossedDot5,CrossedDot6,CrossedDot7, CrossedDot8 #ENDIF, FleckColour) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_CHECKPOINT index = ")NET_PRINT_INT(index) ENDIF #ENDIF // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_CHECKPOINT MaxNumber needs to be 10 or less. If you need something bigger I'd recommend DRAW_GENERIC_BIG_NUMBER. ") // ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_METER(TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[],SPRITE_PLACEMENT& Overlays,UIELEMENTS WhichSpace, FLOAT Xpos, FLOAT YPos, TEXT_STYLE& TitleStyle, BOOL bBigMeter ) FLOAT TheGap = GET_VALUE_OF_GAP_BAR_SPRITE(bBigMeter, FALSE) TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) SET_BAR_SPRITES(Sprites, WhichSpace, XPos, YPos) IF NOT IS_BAR_FREEROAM(Xpos, Ypos) CHANGE_Y_SHIFT_END(WhichSpace, -TheGap) ENDIF SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) ENDPROC FUNC BOOL IS_VALID_GFX_DRAW_ORDER(GFX_DRAW_ORDER eGFXDrawOrder) RETURN (eGFXDrawOrder >= GFX_ORDER_BEFORE_HUD_PRIORITY_LOW AND eGFXDrawOrder <= GFX_ORDER_AFTER_FADE_PRIORITY_HIGH) ENDFUNC //SPRITE_PLACEMENT OverlayWidgetsMeter //TEXT_STYLE MeterTitleStyleWidgetsMeter //TEXT_PLACEMENT MeterTitlePLACEMENTWidgetsMeter //BOOL MeterGutsWidget //FLOAT MeterTitleOffsetWidget PROC DRAW_GENERAL_METER_GUTS(INT index, TEXT_STYLE& TitleStyle, TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[], INT Number, INT MaxNumber, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT TitleNumber,BOOL isPlayer, INT FlashTime, FLOAT Xpos, FLOAT YPos, BOOL OnlyZeroIsEmpty, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL bBigMeter, INT iDrawRedDangerZonePercent = 0, BOOL isLiteralString=FALSE, PERCENTAGE_METER_LINE PercentageLine = PERCENTAGE_METER_LINE_NONE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TextColour = HUD_COLOUR_PURE_WHITE, BOOL bDrawLineUnderName = FALSE, HUD_COLOURS LineUnderNameColour = HUD_COLOUR_WHITE, BOOL MakeBarUrgent = FALSE, INT iUrgentPercentage = 0, HUD_COLOURS PulseToColour = HUD_COLOUR_WHITE, INT iPulseTime = -1, BOOL bUseScoreTitle = FALSE, FLOAT fNumber = -1.0, FLOAT fMaxNumber = -1.0, BOOL bUseSecondaryBar = FALSE, HUD_COLOURS eSecondaryBarColour = HUD_COLOUR_WHITE, FLOAT fSecondaryBarPercentage = 0.0, BOOL bTransparentSecBarIntersectingMainBar = FALSE, HUD_COLOURS eSecBarPulseToColour = HUD_COLOUR_WHITE, INT iSecBarPulseTime = -1, FLOAT fSecBarStartPercentage = 0.0, INT iGFXDrawOrder = -1, BOOL bCapMaxPercentage = TRUE) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF SPRITE_PLACEMENT Overlays BOOL bDisplayTimerCheckbox // // IF MeterGutsWidget = FALSE // // START_WIDGET_GROUP("DAMAGE METER") // // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetsMeter, "OverlayWidgetsMeter") // CREATE_A_TEXT_STYLE_WIGET(MeterTitleStyleWidgetsMeter, "MeterTitleStyleWidgetsMeter") // CREATE_A_TEXT_PLACEMENT_WIDGET(MeterTitlePLACEMENTWidgetsMeter, "MeterTitlePLACEMENTWidgetsMeter") // // ADD_WIDGET_FLOAT_SLIDER("MeterTitleOffsetWidget", MeterTitleOffsetWidget, -5, 5, 0.001) // // STOP_WIDGET_GROUP() // // MeterGutsWidget = TRUE // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_METER, Index) IF IS_LANGUAGE_NON_ROMANIC() // IF isPlayer // SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) // ELSE IF bBigMeter SET_STANDARD_UI_METER_BIG_TITLE_NON_ROMAN(TitleStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_UI_METER_BIG_TITLE(TitleStyle, DROPSTYLE_NONE) ENDIF // ENDIF ELSE IF isLiteralString SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ELSE IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE IF bBigMeter SET_STANDARD_UI_METER_BIG_TITLE_WAVE(TitleStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF ENDIF ENDIF IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_METER(TitlePlace, Sprites,Overlays, WhichSpace, Xpos, YPos, TitleStyle, bBigMeter) SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, MeterTitleStyleWidgetsMeter) // // #ENDIF IF FlashTime = 0 RESET_GENERIC_METER_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_METER_FLASHING_COLOUR(Index) ENDIF IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericMeter_Hud[index],MPGlobalsScoreHud.iFlashing_GenericMeter_MiniHud[index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF NOT IS_BAR_FREEROAM(Xpos, Ypos) Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y IF bBigMeter Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_BIGMETER Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_BIGMETER Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ELSE Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SPRITES Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SPRITES Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ENDIF IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetsMeter) // #ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsScoreHud.iColourFlashing_GenericMeter_Hud[Index], MPGlobalsScoreHud.iColourFlashing_GenericMeter_MiniHud[Index]) // // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF // IF DO_COLOUR_FLASHING(ColourFlash, MPGlobalsmeterHud.iColourFlashing_Genericmeter_Hud[Index], MPGlobalsmeterHud.iColourFlashing_Genericmeter_MiniHud[Index]) IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericMeter[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericMeter[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericMeter[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // ELSE // // SWITCH ColourFlashType // CASE HUDFLASHING_FLASHWHITE // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // CASE HUDFLASHING_FLASHRED // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // Overlays.a = 255 // DRAW_2D_SPRITE("TimerBars", "ALL_RED_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // BREAK // // DEFAULT // DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) // // BREAK // // ENDSWITCH // ENDIF ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TitlePlace, MeterTitlePLACEMENTWidgetsMeter) // #ENDIF IF IS_LANGUAGE_NON_ROMANIC() IF bBigMeter TitlePlace.y += -0.010 ELIF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE ENDIF ELSE IF bBigMeter = FALSE IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE ENDIF ELSE IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF ENDIF ELSE IF bBigMeter TitlePlace.y += -0.010+0.0022+0.001 ELIF isPlayer TitlePlace.y += -0.005+0.001 TitlePlace.y += -0.002 ENDIF ENDIF // #IF IS_DEBUG_BUILD // TitlePlace.y += MeterTitleOffsetWidget // #ENDIF anOrder = SET_GFX_TIMERS_DRAW_ORDER() IF (iGFXDrawOrder != -1) IF IS_VALID_GFX_DRAW_ORDER(INT_TO_ENUM(GFX_DRAW_ORDER, iGFXDrawOrder)) anOrder = INT_TO_ENUM(GFX_DRAW_ORDER, iGFXDrawOrder) ENDIF ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF NOT IS_BAR_FREEROAM(Xpos, Ypos) IF isLiteralString SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, aColour) SET_TEXT_STYLE(TitleStyle) DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TextColour, FONT_RIGHT) ELSE IF isPlayer = TRUE SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, aColour) SET_TEXT_STYLE(TitleStyle) DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TextColour, FONT_RIGHT) ELSE SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, TextColour) SET_TEXT_STYLE(TitleStyle) IF bUseScoreTitle DRAW_TEXT_AND_NUMBERS_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE, Number, MaxNumber) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF ENDIF ENDIF ENDIF IF bDrawLineUnderName FLOAT BarYPos FLOAT BarXPos SPRITE_PLACEMENT LineSprite IF NOT IS_BAR_FREEROAM(Xpos, Ypos) BarYPos = GET_BAR_TO_TITLE_OFFSET()+GET_Y_SHIFT(WhichSpace) BarXPos = GET_DAMAGE_BAR_TO_TITLE_OFFSET_X() ELSE BarYPos = Ypos BarXPos = Xpos ENDIF LineSprite.y = BarYPos+0.0486 LineSprite.x = BarXPos-0.0505 LineSprite.w = 0.180 LineSprite.h = 0.01 LineSprite.r = 255 LineSprite.g = 255 LineSprite.b = 255 LineSprite.a = 255 SET_SPRITE_HUD_COLOUR(LineSprite, LineUnderNameColour) DRAW_2D_SPRITE("TimerBars", "TPBar", LineSprite, FALSE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF anOrder = SET_GFX_TIMERS_DRAW_ORDER() IF (iGFXDrawOrder != -1) IF IS_VALID_GFX_DRAW_ORDER(INT_TO_ENUM(GFX_DRAW_ORDER, iGFXDrawOrder)) anOrder = INT_TO_ENUM(GFX_DRAW_ORDER, iGFXDrawOrder) ENDIF ENDIF SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF bDisplayTimerCheckbox IF bBigMeter RUN_BIG_METER_GUTS(Number, MaxNumber, Sprites, aColour, OnlyZeroIsEmpty, anOrder, PercentageLine, MPGlobalsScoreHud.iColourPulsing_GenericMeter_Hud[Index], MPGlobalsScoreHud.iColourPulsing_GenericMeter_SecBarHud[Index], fNumber, fMaxNumber, PulseToColour, iPulseTime, bUseSecondaryBar, eSecondaryBarColour, fSecondaryBarPercentage, bTransparentSecBarIntersectingMainBar, eSecBarPulseToColour, iSecBarPulseTime, bCapMaxPercentage) ELSE RUN_METER_GUTS(Number, MaxNumber, Sprites, aColour, OnlyZeroIsEmpty, anOrder, MPGlobalsScoreHud.iColourPulsing_GenericMeter_Hud[Index], MPGlobalsScoreHud.iColourPulsing_GenericMeter_SecBarHud[Index], iDrawRedDangerZonePercent, PercentageLine, MakeBarUrgent, iUrgentPercentage, fNumber, fMaxNumber, PulseToColour, iPulseTime, bUseSecondaryBar, eSecondaryBarColour, fSecondaryBarPercentage, bTransparentSecBarIntersectingMainBar, eSecBarPulseToColour, iSecBarPulseTime, fSecBarStartPercentage, bCapMaxPercentage) ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() #IF IS_DEBUG_BUILD //PRINTLN("DRAW_GENERAL_METER_GUTS: Timebars dictionary has loaded") BC: spammy and only really need to know when it fails. #ENDIF ELSE #IF IS_DEBUG_BUILD PRINTLN("DRAW_GENERAL_METER_GUTS: Timebars dictionary has NOT loaded") #ENDIF ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_METER(INT index, INT CurrentNumber, INT MaxNumber, STRING Title, HUD_COLOURS aColour, INT FlashTime, FLOAT Xpos, FLOAT YPos, BOOL isPlayer, INT TitleNumber, BOOL OnlyZeroIsEmpty, HUDFLASHING ColourFlashType, INT ColourFlash, BOOL BigMeter, INT iDrawRedDangerZonePercent , BOOL isLiteralString, PERCENTAGE_METER_LINE PercentageLine , HUD_COLOURS FleckColour, HUD_COLOURS TextColour, BOOL bDrawLineUnderName, HUD_COLOURS LineUnderNameColour, BOOL MakeBarUrgent, INT iUrgentPercentage, HUD_COLOURS PulseToColour, INT iPulseTime, BOOL bUseScoreTitle, FLOAT fCurrentNumber, FLOAT fMaxNumber, BOOL bUseSecondaryBar, HUD_COLOURS eSecondaryBarColour, FLOAT fSecondaryBarPercentage, BOOL bTransparentSecBarIntersectingMainBar, HUD_COLOURS eSecBarPulseToColour, INT iSecBarPulseTime, FLOAT fSecBarStartPercentage = 0.0, INT iGFXDrawOrder = -1, BOOL bCapMaxPercentage = TRUE) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_METER, Index) TEXT_STYLE TitleStyle TEXT_PLACEMENT TitlePlacement SPRITE_PLACEMENT MeterSprites[4] DRAW_GENERAL_METER_GUTS(index, TitleStyle, TitlePlacement, MeterSprites, CurrentNumber, MaxNumber, UIELEMENTS_BOTTOMRIGHT, Title, aColour,TitleNumber, isPlayer, FlashTime, XPos, YPos, OnlyZeroIsEmpty, ColourFlashType, ColourFlash, BigMeter, iDrawRedDangerZonePercent, isLiteralString, PercentageLine, FleckColour, TextColour, bDrawLineUnderName, LineUnderNameColour, MakeBarUrgent, iUrgentPercentage, PulseToColour, iPulseTime, bUseScoreTitle, fCurrentNumber, fMaxNumber, bUseSecondaryBar, eSecondaryBarColour, fSecondaryBarPercentage, bTransparentSecBarIntersectingMainBar, eSecBarPulseToColour, iSecBarPulseTime, fSecBarStartPercentage, iGFXDrawOrder, bCapMaxPercentage) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_METER index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_SPRITE_METER(TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[],SPRITE_PLACEMENT& Overlays,UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle) FLOAT TheGap = GET_VALUE_OF_GAP_BAR_SPRITE(FALSE, TRUE) TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) SET_BAR_SPRITES(Sprites, WhichSpace, -1, -1) CHANGE_Y_SHIFT_END(WhichSpace, -TheGap) SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) ENDPROC //SPRITE_PLACEMENT OverlayWidgetsMeter //TEXT_STYLE MeterTitleStyleWidgetsMeter //TEXT_PLACEMENT MeterTitlePLACEMENTWidgetsMeter //BOOL MeterGutsWidget //FLOAT MeterTitleOffsetWidget PROC DRAW_GENERAL_SPRITE_METER_GUTS(INT index, TEXT_STYLE& TitleStyle, TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[], INT Number, INT MaxNumber, UIELEMENTS WhichSpace, STRING Title, HUD_COLOURS aColour, INT TitleNumber,BOOL isPlayer, INT FlashTime, BOOL OnlyZeroIsEmpty, HUDFLASHING ColourFlashType, INT ColourFlash,STRING spriteName, STRING dictionaryName, BOOL isLiteralString=FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TextColour = HUD_COLOUR_WHITE) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF SPRITE_PLACEMENT Overlays BOOL bDisplayTimerCheckbox // IF MeterGutsWidget = FALSE // // START_WIDGET_GROUP("DAMAGE METER") // // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetsMeter, "OverlayWidgetsMeter") // CREATE_A_TEXT_STYLE_WIGET(MeterTitleStyleWidgetsMeter, "MeterTitleStyleWidgetsMeter") // CREATE_A_TEXT_PLACEMENT_WIDGET(MeterTitlePLACEMENTWidgetsMeter, "MeterTitlePLACEMENTWidgetsMeter") // // ADD_WIDGET_FLOAT_SLIDER("MeterTitleOffsetWidget", MeterTitleOffsetWidget, -5, 5, 0.001) // // STOP_WIDGET_GROUP() // // MeterGutsWidget = TRUE // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_SPRITE_METER, Index) IF IS_LANGUAGE_NON_ROMANIC() SET_STANDARD_UI_METER_BIG_TITLE(TitleStyle, DROPSTYLE_NONE) ELSE IF isLiteralString SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ELSE IF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF ENDIF IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_SPRITE_METER(TitlePlace, Sprites,Overlays, WhichSpace, TitleStyle) SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_STYLE_WIDGET_VALUE(TitleStyle, MeterTitleStyleWidgetsMeter) // // #ENDIF IF FlashTime = 0 RESET_GENERIC_METER_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_METER_FLASHING_COLOUR(Index) ENDIF IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericMeter_Hud[index],MPGlobalsScoreHud.iFlashing_GenericMeter_MiniHud[index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SPRITEMETER Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SPRITEMETER Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericMeter[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericMeter[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColour) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericMeter[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericMeter[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) DRAW_ORGANISATION_FLECK(Overlays, FleckColour) // #IF IS_DEBUG_BUILD // UPDATE_TEXT_PLACEMENT_WIDGET_VALUE(TitlePlace, MeterTitlePLACEMENTWidgetsMeter) // #ENDIF IF IS_LANGUAGE_NON_ROMANIC() IF isPlayer IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE ENDIF ELSE IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET ENDIF ENDIF ELSE IF isPlayer TitlePlace.y += -0.005+0.001 ENDIF ENDIF anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF isLiteralString SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, aColour) SET_TEXT_STYLE(TitleStyle) DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TextColour, FONT_RIGHT) ELSE IF isPlayer = TRUE SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, aColour) SET_TEXT_STYLE(TitleStyle) DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", TextColour, FONT_RIGHT) ELSE SET_TEXT_STYLE(TitleStyle) IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF ENDIF anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) IF bDisplayTimerCheckbox RUN_SPRITE_METER_GUTS(Number, MaxNumber, Sprites, aColour, OnlyZeroIsEmpty, anOrder) RUN_SPRITE_METER_SPRITE(spriteName, Sprites, anOrder, dictionaryName) ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_SPRITE_METER(INT index, INT CurrentNumber, INT MaxNumber, STRING Title, HUD_COLOURS aColour, INT FlashTime, BOOL isPlayer, INT TitleNumber, BOOL OnlyZeroIsEmpty, HUDFLASHING ColourFlashType, INT ColourFlash,STRING spriteName, STRING dictionaryName, BOOL isLiteralString, HUD_COLOURS FleckColour, HUD_COLOURS TextColour) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SPRITE_METER, Index) TEXT_STYLE TitleStyle TEXT_PLACEMENT TitlePlacement SPRITE_PLACEMENT MeterSprites[4] DRAW_GENERAL_SPRITE_METER_GUTS(index, TitleStyle, TitlePlacement, MeterSprites, CurrentNumber, MaxNumber, UIELEMENTS_BOTTOMRIGHT, Title, aColour,TitleNumber, isPlayer, FlashTime, OnlyZeroIsEmpty, ColourFlashType, ColourFlash,spriteName, dictionaryName, isLiteralString, FleckColour, TextColour) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_SPRITE_METER index = ")NET_PRINT_INT(index) ENDIF #ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_ELIMINATION(TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[],SPRITE_PLACEMENT& Overlays,RECT& aRect, UIELEMENTS WhichSpace, FLOAT XPOS, FLOAT YPOS, TEXT_STYLE& TitleStyle ) FLOAT TheGap = GET_VALUE_OF_GAP_BAR_SPRITE(FALSE, FALSE) TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) SET_CIRCLE_SPRITES(Sprites, WhichSpace, XPOS, YPOS) SET_LINE_DIVIDER(aRect) IF NOT IS_BAR_FREEROAM(Xpos, Ypos) CHANGE_Y_SHIFT_END(WhichSpace, -TheGap) ENDIF SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) ENDPROC //SPRITE_PLACEMENT OverlayWidgetsElim //BOOL isEliminationWidget //FLOAT EliminationTitleOffsetWidget PROC DRAW_GENERAL_ELIMINATION_GUTS(INT index, TEXT_STYLE& TitleStyle, TEXT_PLACEMENT& TitlePlace, SPRITE_PLACEMENT& Sprites[], RECT& aRect, INT MaxNumber, UIELEMENTS WhichSpace, HUD_COLOURS aColourFirst, HUD_COLOURS aColourSecond, STRING Title, INT VisibleBoxes, BOOL IsActive1, BOOL IsActive2,BOOL IsActive3,BOOL IsActive4,BOOL IsActive5, BOOL IsActive6,BOOL IsActive7,BOOL IsActive8, INT FlashTime, INT TitleNumber,BOOL isPlayer, FLOAT XPOS, FLOAT YPOS, HUD_COLOURS Box1Colour,HUD_COLOURS Box2Colour, HUD_COLOURS Box3Colour, HUD_COLOURS Box4Colour, HUD_COLOURS Box5Colour, HUD_COLOURS Box6Colour, HUD_COLOURS Box7Colour, HUD_COLOURS Box8Colour, HUD_COLOURS Box1Colour_Inactive, HUD_COLOURS Box2Colour_Inactive, HUD_COLOURS Box3Colour_Inactive, HUD_COLOURS Box4Colour_Inactive, HUD_COLOURS Box5Colour_Inactive, HUD_COLOURS Box6Colour_Inactive, HUD_COLOURS Box7Colour_Inactive, HUD_COLOURS Box8Colour_Inactive, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS TitleColour = HUD_COLOUR_PURE_WHITE #IF USE_TU_CHANGES , BOOL Crossed0 = FALSE, BOOL Crossed1 = FALSE, BOOL Crossed2 = FALSE, BOOL Crossed3 = FALSE, BOOL Crossed4 = FALSE, BOOL Crossed5 = FALSE, BOOL Crossed6 = FALSE, BOOL Crossed7 = FALSE #ENDIF, BOOL bUseNonPlayerFont = FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE #IF USE_TU_CHANGES , HUD_COLOURS CrossedDot0Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot1Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot2Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot3Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot4Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot5Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot6Colour = HUD_COLOUR_BLACK, HUD_COLOURS CrossedDot7Colour = HUD_COLOUR_BLACK #ENDIF) MPGlobalsScoreHud.iHowManyDisplays++ // TEXT_STYLE ButtonStyle // TEXT_PLACEMENT ButtonPlacement // STRING PadButtonString IF IS_BOTTOM_RIGHT_AREA_FREE() IF ColourFlashType = HUDFLASHING_FLASHRED ENDIF SPRITE_PLACEMENT Overlays BOOL bDisplayTimerCheckbox // IF isEliminationWidget = FALSE // START_WIDGET_GROUP("ELIMINATION OVERLAY") // // CREATE_A_SPRITE_PLACEMENT_WIDGET(OverlayWidgetsElim, "OverlayWidgetsElim") // ADD_WIDGET_FLOAT_SLIDER("EliminationTitleOffsetWidget", EliminationTitleOffsetWidget, -5, 5, 0.001) // STOP_WIDGET_GROUP() // isEliminationWidget = TRUE // // ENDIF SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_ELIMINATION, Index) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_ELIMINATION(TitlePlace, Sprites, Overlays, aRect, WhichSpace, XPos, YPos, TitleStyle) IF IS_LANGUAGE_NON_ROMANIC() // IF isPlayer // SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) // ELSE SET_STANDARD_UI_METER_BIG_TITLE(TitleStyle, DROPSTYLE_NONE) // ENDIF ELSE IF bUseNonPlayerFont SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ELIF isPlayer SET_STANDARD_TIMER_PLYR_NAME_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) ELSE SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) ENDIF ENDIF SET_WORD_WRAPPING_TITLE(TitleStyle) //B* Adjust the title WrapEndX coordinate on aspect ratios other than 16:9 TitleStyle.wrapEndX += 0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT()) //CPRINTLN(debug_dan,"moved wrap by ",0.03*(1-GET_TIMER_TEXT_ASPECT_RATIO_OFFSET_MULT())," to ",TitleStyle.wrapEndX ) IF FlashTime = 0 RESET_GENERIC_ELIMINATION_FLASHING(Index) ENDIF IF ColourFlash = 0 RESET_GENERIC_ELIMINATION_FLASHING_COLOUR(Index) ENDIF GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") IF DO_FLASHING(FlashTime, MPGlobalsScoreHud.iFlashing_GenericElimination_Hud[index],MPGlobalsScoreHud.iFlashing_GenericElimination_MiniHud[index]) bDisplayTimerCheckbox = TRUE ELSE bDisplayTimerCheckbox = FALSE ENDIF IF NOT IS_BAR_FREEROAM(Xpos, Ypos) Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y // Overlays[1].x = TitlePlace.x // Overlays[1].y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SPRITES Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SPRITES Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h // // #IF IS_DEBUG_BUILD // UPDATE_SPRITE_WIDGET_VALUE(Overlays, OverlayWidgetsElim) // #ENDIF IF ColourFlash > 0 SPRITE_PLACEMENT ColourOverlays = Overlays IF HAS_NET_TIMER_EXPIRED(MPGlobalsScoreHud.iGoalMetFlashing_GenericElimination[Index], 2000) = FALSE IF HAS_NET_TIMER_EXPIRED_READ_ONLY(MPGlobalsScoreHud.iGoalMetFlashing_GenericElimination[Index], 1250) MPGlobalsScoreHud.iGoalFadeFlashing_GenericElimination[Index] = MPGlobalsScoreHud.iGoalFadeFlashing_GenericElimination[Index]-17 ENDIF ColourOverlays.a = MPGlobalsScoreHud.iGoalFadeFlashing_GenericElimination[Index] SET_SPRITE_HUD_COLOUR(ColourOverlays, aColourFirst) DRAW_2D_SPRITE("TimerBars", "ALL_WHITE_bg",ColourOverlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF ELSE MPGlobalsScoreHud.iGoalFadeFlashing_GenericElimination[Index] = 255 REINIT_NET_TIMER(MPGlobalsScoreHud.iGoalMetFlashing_GenericElimination[Index]) ENDIF DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg",Overlays, TRUE, HIGHLIGHT_OPTION_NORMAL, anOrder) ENDIF DRAW_ORGANISATION_FLECK(Overlays, FleckColour) anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) SET_TEXT_COLOUR_WITH_HUD_COLOUR(TitleStyle, TitleColour) IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE ENDIF IF IS_LANGUAGE_NON_ROMANIC() IF GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_CHINESE ELSE TitlePlace.y += TITLE_NON_ROMANIC_OFFSET_LITTLE_DOTS ENDIF ENDIF IF IS_LANGUAGE_NON_ROMANIC() = FALSE IF bUseNonPlayerFont TitlePlace.y += 0.003 ELIF isPlayer TitlePlace.y += -0.002 ENDIF ELSE IF isPlayer TitlePlace.y += 0.007 ELSE TitlePlace.y += 0.003 ENDIF ENDIF // #IF Is_DEBUG_BUILD // TitlePlace.y += EliminationTitleOffsetWidget // // #ENDIF IF NOT IS_BAR_FREEROAM(Xpos, Ypos) SET_TEXT_STYLE(TitleStyle) IF bUseNonPlayerFont DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title,"", TitleColour, FONT_RIGHT) ELIF isPlayer = TRUE DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title,"", TitleColour, FONT_RIGHT) ELSE IF TitleNumber = -1 DRAW_TEXT_WITH_ALIGNMENT(TitlePlace, TitleStyle, Title, FALSE, TRUE) ELSE TitlePlace.y -= TITLE_NON_ROMANIC_OFFSET_LITTLE DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, Title, TitleNumber, FONT_RIGHT) ENDIF ENDIF ENDIF IF bDisplayTimerCheckbox RUN_ELIMINATION_GUTS(MaxNumber, Sprites, aColourFirst, aColourSecond, VisibleBoxes, IsActive1, IsActive2, IsActive3, IsActive4, IsActive5, IsActive6, IsActive7, IsActive8, Box1Colour, Box2Colour, Box3Colour, Box4Colour, Box5Colour, Box6Colour, Box7Colour, Box8Colour, Box1Colour_Inactive, Box2Colour_Inactive, Box3Colour_Inactive, Box4Colour_Inactive, Box5Colour_Inactive, Box6Colour_Inactive, Box7Colour_Inactive, Box8Colour_Inactive, anOrder #IF USE_TU_CHANGES , Crossed0, Crossed1, Crossed2, Crossed3, Crossed4, Crossed5, Crossed6, Crossed7, CrossedDot0Colour, CrossedDot1Colour, CrossedDot2Colour, CrossedDot3Colour, CrossedDot4Colour, CrossedDot5Colour, CrossedDot6Colour, CrossedDot7Colour #ENDIF) ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_ELIMINATION(INT Index, INT MaxNumber, STRING Title, HUD_COLOURS FirstColour,HUD_COLOURS SecondColour , INT iVisibleBoxes, BOOL Active1, BOOL Active2, BOOL Active3, BOOL Active4, BOOL Active5, BOOL Active6, BOOL Active7, BOOL Active8, INT FlashTime, INT TitleNumber, BOOL ISPlayer, FLOAT XPOS, FLOAT YPOS, HUD_COLOURS Box1Colour,HUD_COLOURS Box2Colour, HUD_COLOURS Box3Colour, HUD_COLOURS Box4Colour, HUD_COLOURS Box5Colour, HUD_COLOURS Box6Colour, HUD_COLOURS Box7Colour, HUD_COLOURS Box8Colour, HUD_COLOURS Box1Colour_Inactive ,HUD_COLOURS Box2Colour_Inactive, HUD_COLOURS Box3Colour_Inactive, HUD_COLOURS Box4Colour_Inactive, HUD_COLOURS Box5Colour_Inactive, HUD_COLOURS Box6Colour_Inactive, HUD_COLOURS Box7Colour_Inactive, HUD_COLOURS Box8Colour_Inactive, HUDFLASHING ColourFlashType, INT ColourFlash, HUD_COLOURS TitleColour #IF USE_TU_CHANGES , BOOL Crossed0, BOOL Crossed1, BOOL Crossed2, BOOL Crossed3, BOOL Crossed4, BOOL Crossed5, BOOL Crossed6, BOOL Crossed7 #ENDIF, BOOL bUseNonPlayerFont, HUD_COLOURS FleckColour #IF USE_TU_CHANGES , HUD_COLOURS CrossedDot0Colour, HUD_COLOURS CrossedDot1Colour, HUD_COLOURS CrossedDot2Colour, HUD_COLOURS CrossedDot3Colour, HUD_COLOURS CrossedDot4Colour, HUD_COLOURS CrossedDot5Colour, HUD_COLOURS CrossedDot6Colour, HUD_COLOURS CrossedDot7Colour #ENDIF ) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_ELIMINATION, index) TEXT_STYLE TitleStyle TEXT_PLACEMENT TitlePlacement SPRITE_PLACEMENT MeterSprites[9] RECT aRect IF MaxNumber < 9 DRAW_GENERAL_ELIMINATION_GUTS(index, TitleStyle, TitlePlacement, MeterSprites,aRect, MaxNumber, UIELEMENTS_BOTTOMRIGHT, FirstColour,SecondColour, Title, iVisibleBoxes, Active1,Active2, Active3, Active4, Active5, Active6, Active7, Active8,FlashTime,TitleNumber,ISPlayer, XPos, YPOS, Box1Colour, Box2Colour, Box3Colour, Box4Colour, Box5Colour, Box6Colour, Box7Colour, Box8Colour, Box1Colour_Inactive, Box2Colour_Inactive, Box3Colour_Inactive, Box4Colour_Inactive, Box5Colour_Inactive, Box6Colour_Inactive, Box7Colour_Inactive, Box8Colour_Inactive, ColourFlashType, ColourFlash, TitleColour #IF USE_TU_CHANGES , Crossed0, Crossed1, Crossed2, Crossed3, Crossed4, Crossed5, Crossed6, Crossed7 #ENDIF, bUseNonPlayerFont, FleckColour #IF USE_TU_CHANGES , CrossedDot0Colour, CrossedDot1Colour, CrossedDot2Colour, CrossedDot3Colour, CrossedDot4Colour, CrossedDot5Colour, CrossedDot6Colour, CrossedDot7Colour #ENDIF) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_ELIMINATION index = ")NET_PRINT_INT(index) ENDIF #ENDIF ELSE NET_NL()NET_PRINT("DRAW_GENERIC_ELIMINATION MaxNumber needs to be 8 or less. If you need something bigger I'd recommend DRAW_GENERIC_BIG_NUMBER. ") ENDIF ENDIF ENDPROC PROC INIT_SCREEN_GENERAL_WINDMETER(TEXT_PLACEMENT& TitlePlace, UIELEMENTS WhichSpace, TEXT_STYLE& TitleStyle, SPRITE_PLACEMENT & arrowSprite) FLOAT TheGap = GET_VALUE_OF_GAP_BAR_SPRITE(FALSE, FALSE) TitlePlace.x = 0.795 TitlePlace.y = GET_Y_SHIFT(WhichSpace) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) CHANGE_Y_SHIFT_END(WhichSpace, -TheGap) TitlePlace.y += GET_TITLE_OFFSET(TitleStyle) arrowSprite.x = 0.9375 arrowSprite.y = TitlePlace.y + 0.009 arrowSprite.w = 0.02 arrowSprite.h = 0.02 ENDPROC PROC DRAW_GENERAL_WINDMETER_GUTS(INT idx, TEXT_STYLE & TitleStyle, TEXT_PLACEMENT & TitlePlace, SPRITE_PLACEMENT & MeterSprites[], UIELEMENTS WhichSpace, STRING sTitle, INT iWindSpeed, FLOAT fWindDirection, INT iR, INT iG, INT iB) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() SPRITE_PLACEMENT arrowIcon SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_TITLE(TitleStyle) SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_WINDMETER, idx) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_WINDMETER(TitlePlace, WhichSpace, TitleStyle, arrowIcon) REQUEST_STREAMED_TEXTURE_DICT("TimerBars") REQUEST_STREAMED_TEXTURE_DICT("Hunting") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") AND HAS_STREAMED_TEXTURE_DICT_LOADED("Hunting") Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORE Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORE Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg", Overlays) arrowIcon.r = iR arrowIcon.g = iG arrowIcon.b = iB arrowIcon.a = 255 arrowIcon.fRotation = fWindDirection //CDEBUG3LN(DEBUG_HUNTING, "Rendering Arrow Color R: ", iR, " :: G: ", iG, " :: B: ", iB, " :: A: ", arrowIcon.a) DRAW_2D_SPRITE("Hunting", "HuntingWindArrow_32", arrowIcon) TitleStyle.r = iR TitleStyle.g = iG TitleStyle.b = iB TitleStyle.a = 255 SET_TEXT_STYLE(TitleStyle) fWindDirection = fWindDirection MeterSprites[0].x = MeterSprites[0].x DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, sTitle, iWindSpeed, FONT_RIGHT) RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_WINDMETER(INT idx, STRING sTitle, FLOAT fHeading, INT iSpeed, INT iR, INT iG, INT iB) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_WINDMETER, idx) TEXT_STYLE TitleStyle TEXT_PLACEMENT TitlePlacement SPRITE_PLACEMENT MeterSprites[2] DRAW_GENERAL_WINDMETER_GUTS(idx, TitleStyle, TitlePlacement, MeterSprites, UIELEMENTS_BOTTOMRIGHT, sTitle, iSpeed, fHeading, iR, iG, iB) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_WINDMETER index = ")NET_PRINT_INT(idx) ENDIF #ENDIF ENDIF //ACTUALLY_DRAW_GENERAL_METER ENDPROC PROC GET_BIG_RACE_POSITION_TEXT_LABEL(TEXT_LABEL_15& tlRacePositionLabel, INT iRacePosition) TEXT_LABEL_15 tlRacePosition = "RACE_POS_" tlRacePosition += iRacePosition tlRacePositionLabel = tlRacePosition ENDPROC //TEXT_STYLE OverlayWidgetsBigRace //BOOL isBigRaceWidget PROC DRAW_GENERAL_BIG_RACE_POSITION_GUTS(INT idx, TEXT_STYLE& NumberStyle, TEXT_PLACEMENT& NumberPlace, UIELEMENTS WhichSpace, INT iRacePosition, HUD_COLOURS eRacePositionHUDColour) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() // IF isBigRaceWidget = FALSE // WIDGET_GROUP_ID topLevelWidgetGroup = GET_ID_OF_TOP_LEVEL_WIDGET_GROUP() // // SET_CURRENT_WIDGET_GROUP(topLevelWidgetGroup) // START_WIDGET_GROUP("BIG RACE OVERLAY") // CREATE_A_TEXT_STYLE_WIGET(OverlayWidgetsBigRace, "Text style") // STOP_WIDGET_GROUP() // CLEAR_CURRENT_WIDGET_GROUP(topLevelWidgetGroup) // // isBigRaceWidget = TRUE // ENDIF // UPDATE_TEXT_STYLE_WIDGET_VALUE(NumberStyle, OverlayWidgetsBigRace) HIDE_ALL_BOTTOM_RIGHT_HUD() INT iR, iG, iB, iA GET_HUD_COLOUR(eRacePositionHUDColour, iR, iG, iB, iA) SET_STANDARD_LARGE_RACE_HUD_TEXT(NumberStyle, DROPSTYLE_DROPSHADOWONLY, iR, iG, iB) IF IS_LANGUAGE_NON_ROMANIC() NumberStyle.XScale = 2.0 NumberStyle.YScale = 2.7 ENDIF IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF FLOAT fBigRaceCustomOffsetY = 0.131 IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN fBigRaceCustomOffsetY = 0.0872 ELIF GET_CURRENT_LANGUAGE() = LANGUAGE_JAPANESE fBigRaceCustomOffsetY = 0.095 ENDIF NumberPlace.x = 0.795 NumberPlace.y = (GET_Y_SHIFT(WhichSpace) + GET_VALUE_TO_TITLE_OFFSET(NumberStyle)) - fBigRaceCustomOffsetY SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) SET_TEXT_STYLE(NumberStyle) SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_BIG_RACE_POSITION, idx) TEXT_LABEL_15 tlRacePositionLabel GET_BIG_RACE_POSITION_TEXT_LABEL(tlRacePositionLabel, iRacePosition) DRAW_TEXT_WITH_ALIGNMENT(NumberPlace, NumberStyle, GB_TO_STRING(tlRacePositionLabel), FALSE, TRUE) RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_BIG_RACE_POSITION(INT idx, INT iRacePosition, HUD_COLOURS eRacePositionHUDColour) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_BIG_RACE_POSITION, idx) TEXT_STYLE TitleStyle TEXT_PLACEMENT TitlePlacement DRAW_GENERAL_BIG_RACE_POSITION_GUTS(idx, TitleStyle, TitlePlacement, UIELEMENTS_BOTTOMRIGHT, iRacePosition, eRacePositionHUDColour) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_BIG_RACE_POSITION index = ")NET_PRINT_INT(idx) ENDIF #ENDIF ENDIF ENDPROC PROC GET_HUD_HIGHLIGHTED_PLAYER_DATA(SPRITE_PLACEMENT &PlayerXPIconSprite, TEXT_LABEL_23 &sPlayerTextureDictName, TEXT_LABEL_23 &sPlayerTextureSpriteName, HUD_COLOURS &PlayerTextureHudColour, PLAYER_INDEX &pPlayerToCheckAgainst, PLAYER_INDEX &pPlayerToHighlight, HUD_COLOURS TitleColour) IF pPlayerToHighlight != INVALID_PLAYER_INDEX() AND pPlayerToCheckAgainst != INVALID_PLAYER_INDEX() IF pPlayerToHighlight = pPlayerToCheckAgainst sPlayerTextureDictName = "timerbar_sr" sPlayerTextureSpriteName = "timer_box" PlayerTextureHudColour = TitleColour PlayerXPIconSprite.w = 0.016+0.008 PlayerXPIconSprite.h = 0.038 ENDIF ENDIF ENDPROC PROC DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(SPRITE_PLACEMENT &PlayerXPIconSprite, STRING sPlayerTextureDictName, STRING sPlayerTextureSpriteName, HUD_COLOURS PlayerTextureHudColour) IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerTextureDictName) REQUEST_STREAMED_TEXTURE_DICT(sPlayerTextureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(sPlayerTextureDictName) SET_SPRITE_HUD_COLOUR(PlayerXPIconSprite, PlayerTextureHudColour) DRAW_2D_SPRITE(sPlayerTextureDictName, sPlayerTextureSpriteName, PlayerXPIconSprite) ELSE PRINTLN("[DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA] ", sPlayerTextureDictName, " dict is loading... ") ENDIF ENDIF ENDPROC PROC GET_HUD_POWERUP_DATA(ACTIVITY_POWERUP &aPowerup, SPRITE_PLACEMENT &PlayerXPIconSprite, TEXT_LABEL_23 &sPlayerTextureDictName, TEXT_LABEL_23 &sPlayerTextureSpriteName, HUD_COLOURS &PlayerTextureHudColour, PLAYER_INDEX &pPlayer, PEDHEADSHOT_ID &pPlayerHeadshotID, SPRITE_PLACEMENT &PlayerSecXPIconSprite, TEXT_LABEL_23 &sPlayerSecTextureDictName, TEXT_LABEL_23 &sPlayerSecTextureSpriteName, HUD_COLOURS &PlayerSecTextureHudColour, HUD_COLOURS TitleColour, HUD_COLOURS ePowerupColour = HUD_COLOUR_PURE_WHITE) SWITCH aPowerup CASE ACTIVITY_POWERUP_XP PlayerXPIconSprite.h += -0.009 PlayerXPIconSprite.w += -0.002 IF IS_LANGUAGE_NON_ROMANIC() PlayerXPIconSprite.y += 0.0055 ELSE PlayerXPIconSprite.y += 0.0025 ENDIF sPlayerTextureDictName = "MPRPSymbol" sPlayerTextureSpriteName = "RP" BREAK CASE ACTIVITY_POWERUP_ROCKETS sPlayerTextureDictName = "TimerBars" sPlayerTextureSpriteName = "Rockets" BREAK CASE ACTIVITY_POWERUP_HOMING_ROCKETS sPlayerTextureDictName = "MpSpecialRace" sPlayerTextureSpriteName = "HOMING_ROCKET" BREAK CASE ACTIVITY_POWERUP_SPIKES sPlayerTextureDictName = "TimerBars" sPlayerTextureSpriteName = "Spikes" BREAK CASE ACTIVITY_POWERUP_BOOSTS sPlayerTextureDictName = "TimerBars" sPlayerTextureSpriteName = "Boost" BREAK CASE ACTIVITY_POWERUP_TICK sPlayerTextureDictName = "CrossTheLine" sPlayerTextureSpriteName = "Timer_LargeTick_32" BREAK CASE ACTIVITY_POWERUP_CROSS sPlayerTextureDictName = "CrossTheLine" sPlayerTextureSpriteName = "Timer_LargeCross_32" BREAK CASE ACTIVITY_POWERUP_BEAST sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Beast" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_BULLET sPlayerTextureDictName = "MPSpecialRace" sPlayerTextureSpriteName = "MACHINE_GUN" BREAK CASE ACTIVITY_POWERUP_RANDOM sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Random" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_SLOW_TIME sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Slow_Time" BREAK CASE ACTIVITY_POWERUP_SWAP sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Swap" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_TESTOSTERONE sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Testosterone" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_THERMAL sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Thermal" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_WEED sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Weed" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_HIDDEN sPlayerTextureDictName = "TimerBar_Icons" sPlayerTextureSpriteName = "Pickup_Hidden" PlayerTextureHudColour = HUD_COLOUR_FRIENDLY BREAK CASE ACTIVITY_POWERUP_PED_HEADSHOT CASE ACTIVITY_POWERUP_PED_HEADSHOT_DEAD CASE ACTIVITY_POWERUP_PED_HEADSHOT_ALIVE CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE CASE ACTIVITY_POWERUP_PED_HEADSHOT_FADED CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO_TINT CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE_TINT CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO_TINT CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE_TINT CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR_TINT CASE ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE_TINT IF pPlayer != INVALID_PLAYER_INDEX() pPlayerHeadshotID = Get_HeadshotID_For_Player(pPlayer) IF pPlayerHeadshotID != NULL sPlayerTextureDictName = GET_PEDHEADSHOT_TXD_STRING(pPlayerHeadshotID) sPlayerTextureSpriteName = GET_PEDHEADSHOT_TXD_STRING(pPlayerHeadshotID) ENDIF ENDIF // Scale Ped Headshot PlayerXPIconSprite.w = 0.016+0.004 PlayerXPIconSprite.h = 0.034 // Dead Headshot Cross Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_DEAD sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_cross" PlayerSecTextureHudColour = TitleColour ENDIF // Alive Headshot Tick Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_ALIVE sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_tick" PlayerSecTextureHudColour = TitleColour ENDIF // Zero Score Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO_TINT sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_0" PlayerSecTextureHudColour = ePowerupColour ENDIF // One Score Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE_TINT sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_1" PlayerSecTextureHudColour = ePowerupColour ENDIF // Two Score Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO_TINT sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_2" PlayerSecTextureHudColour = ePowerupColour ENDIF // Three Score Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE_TINT sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_3" PlayerSecTextureHudColour = ePowerupColour ENDIF // Four Score Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR_TINT sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_4" PlayerSecTextureHudColour = ePowerupColour ENDIF // Five Score Overlay IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE_TINT sPlayerSecTextureDictName = "timerbar_sr" sPlayerSecTextureSpriteName = "timer_5" PlayerSecTextureHudColour = ePowerupColour ENDIF // Faded Headshot IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_FADED PlayerSecTextureHudColour = TitleColour ENDIF // Dead headshot half alpha IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_FADED PlayerXPIconSprite.a = 127 ENDIF BREAK CASE ACTIVITY_POWERUP_NONE PlayerXPIconSprite.a = 0 PlayerSecXPIconSprite.a = 0 BREAK ENDSWITCH ENDPROC PROC DRAW_2D_SPRITE_FROM_POWERUP_DATA(ACTIVITY_POWERUP aPowerup, SPRITE_PLACEMENT &PlayerXPIconSprite, SPRITE_PLACEMENT &PlayerSecXPIconSprite, STRING sPlayerTextureDictName, STRING sPlayerTextureSpriteName, HUD_COLOURS PlayerTextureHudColour, STRING sPlayerSecTextureDictName, STRING sPlayerSecTextureSpriteName, HUD_COLOURS PlayerSecTextureHudColour) IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerTextureDictName) REQUEST_STREAMED_TEXTURE_DICT(sPlayerTextureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(sPlayerTextureDictName) SET_SPRITE_HUD_COLOUR(PlayerXPIconSprite, PlayerTextureHudColour) DRAW_2D_SPRITE(sPlayerTextureDictName, sPlayerTextureSpriteName, PlayerXPIconSprite) ELSE PRINTLN("[DRAW_2D_SPRITE_FROM_POWERUP_DATA] Icon - ", aPowerup, " - ", sPlayerTextureDictName, " dict is loading... ") ENDIF ENDIF // 60% Alpha black square infront of headshot IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE_TINT INT iR, iG, iB, iA GET_HUD_COLOUR(HUD_COLOUR_BLACK, iR, iG, iB, iA) DRAW_RECT(PlayerXPIconSprite.x, PlayerXPIconSprite.y, PlayerXPIconSprite.w, PlayerXPIconSprite.h, iR, iG, iB, 153) ENDIF IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_DEAD OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_ALIVE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_FADED OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE_TINT IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerSecTextureDictName) REQUEST_STREAMED_TEXTURE_DICT(sPlayerSecTextureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(sPlayerSecTextureDictName) SET_SPRITE_HUD_COLOUR(PlayerSecXPIconSprite, PlayerSecTextureHudColour) DRAW_2D_SPRITE(sPlayerSecTextureDictName, sPlayerSecTextureSpriteName, PlayerSecXPIconSprite) ELSE PRINTLN("[DRAW_2D_SPRITE_FROM_POWERUP_DATA] Icon Sec - ", aPowerup, " - ", sPlayerSecTextureDictName, " dict is loading... ") ENDIF ENDIF ENDIF ENDPROC FUNC BOOL REQUEST_AND_LOAD_TEXTURE_DICTS(STRING sPlayerTextureDictName, STRING sPlayerSecTextureDictName) BOOL bPlayerTextureDictLoaded BOOL bSecPlayerTextureDictLoaded IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerTextureDictName) REQUEST_STREAMED_TEXTURE_DICT(sPlayerTextureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(sPlayerTextureDictName) PRINTLN("[REQUEST_AND_LOAD_TEXTURE_DICTS] ", sPlayerTextureDictName, " dict has loaded ") bPlayerTextureDictLoaded = TRUE ELSE PRINTLN("[REQUEST_AND_LOAD_TEXTURE_DICTS] ", sPlayerTextureDictName, " dict is loading... ") ENDIF ELSE bPlayerTextureDictLoaded = TRUE ENDIF IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerSecTextureDictName) REQUEST_STREAMED_TEXTURE_DICT(sPlayerSecTextureDictName) IF HAS_STREAMED_TEXTURE_DICT_LOADED(sPlayerSecTextureDictName) PRINTLN("[REQUEST_AND_LOAD_TEXTURE_DICTS] ", sPlayerSecTextureDictName, " dict has loaded ") bSecPlayerTextureDictLoaded = TRUE ELSE PRINTLN("[REQUEST_AND_LOAD_TEXTURE_DICTS] (Sec) ", sPlayerSecTextureDictName, " dict is loading... ") ENDIF ELSE bSecPlayerTextureDictLoaded = TRUE ENDIF IF bPlayerTextureDictLoaded AND bSecPlayerTextureDictLoaded PRINTLN("[REQUEST_AND_LOAD_TEXTURE_DICTS] ", sPlayerTextureDictName, " dict has loaded & ", sPlayerSecTextureDictName, " dict has loaded. Returning TRUE.") RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL REQUEST_AND_LOAD_ALL_FIVE_TEXTURE_DICTIONARIES(STRING tlPlayerOneTextureDictName, STRING tlPlayerOneSecTextureDictName, STRING tlPlayerTwoTextureDictName, STRING tlPlayerTwoSecTextureDictName, STRING tlPlayerThreeTextureDictName, STRING tlPlayerThreeSecTextureDictName, STRING tlPlayerFourTextureDictName, STRING tlPlayerFourSecTextureDictName, STRING tlPlayerFiveTextureDictName, STRING tlPlayerFiveSecTextureDictName) BOOL complete = TRUE IF REQUEST_AND_LOAD_TEXTURE_DICTS(tlPlayerOneTextureDictName, tlPlayerOneSecTextureDictName) = FALSE complete = FALSE ENDIF IF REQUEST_AND_LOAD_TEXTURE_DICTS(tlPlayerTwoTextureDictName, tlPlayerTwoSecTextureDictName) = FALSE complete = FALSE ENDIF IF REQUEST_AND_LOAD_TEXTURE_DICTS(tlPlayerThreeTextureDictName, tlPlayerThreeSecTextureDictName) = FALSE complete = FALSE ENDIF IF REQUEST_AND_LOAD_TEXTURE_DICTS(tlPlayerFourTextureDictName, tlPlayerFourSecTextureDictName) = FALSE complete = FALSE ENDIF IF REQUEST_AND_LOAD_TEXTURE_DICTS(tlPlayerFiveTextureDictName, tlPlayerFiveSecTextureDictName) = FALSE complete = FALSE ENDIF RETURN complete ENDFUNC PROC DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(ACTIVITY_POWERUP aPowerup, SPRITE_PLACEMENT &PlayerXPIconSprite, SPRITE_PLACEMENT &PlayerSecXPIconSprite, STRING sPlayerTextureDictName, STRING sPlayerTextureSpriteName, HUD_COLOURS PlayerTextureHudColour, STRING sPlayerSecTextureDictName, STRING sPlayerSecTextureSpriteName, HUD_COLOURS PlayerSecTextureHudColour) IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerTextureDictName) SET_SPRITE_HUD_COLOUR(PlayerXPIconSprite, PlayerTextureHudColour) DRAW_2D_SPRITE(sPlayerTextureDictName, sPlayerTextureSpriteName, PlayerXPIconSprite) ENDIF // 60% Alpha black square infront of headshot IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE_TINT INT iR, iG, iB, iA GET_HUD_COLOUR(HUD_COLOUR_BLACK, iR, iG, iB, iA) DRAW_RECT(PlayerXPIconSprite.x, PlayerXPIconSprite.y, PlayerXPIconSprite.w, PlayerXPIconSprite.h, iR, iG, iB, 153) ENDIF IF aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_DEAD OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_ALIVE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_FADED OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ZERO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_ONE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_TWO_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_THREE_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FOUR_TINT OR aPowerup = ACTIVITY_POWERUP_PED_HEADSHOT_SCORE_FIVE_TINT IF NOT IS_STRING_NULL_OR_EMPTY(sPlayerSecTextureDictName) SET_SPRITE_HUD_COLOUR(PlayerSecXPIconSprite, PlayerSecTextureHudColour) DRAW_2D_SPRITE(sPlayerSecTextureDictName, sPlayerSecTextureSpriteName, PlayerSecXPIconSprite) ENDIF ENDIF ENDPROC PROC DRAW_GENERAL_FOUR_ICON_BAR_GUTS(INT index, TEXT_STYLE &TitleStyle, TEXT_STYLE &NumberStyle, TEXT_PLACEMENT &TitlePlace, TEXT_PLACEMENT &NumberPlace, HUD_COLOURS TitleColour, UIELEMENTS WhichSpace, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, BOOL bFlashIconOne = FALSE, BOOL bFlashIconTwo = FALSE, BOOL bFlashIconThree = FALSE, BOOL bFlashIconFour = FALSE, INT iFlashTime = -1) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_FOUR_ICON_BAR, index) SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_TITLE(TitleStyle) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF SET_STANDARD_UI_SCORE_NUMBER(NumberStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) INIT_SCREEN_GENERAL_SINGLE_SCORE(NumberStyle, TitlePlace, NumberPlace, WhichSpace, TitleStyle) SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) // Flashing Icons BOOL bDisplayFlashingIcons IF iFlashTime = 0 RESET_GENERIC_FOUR_ICON_BAR_FLASHING(index) ENDIF IF DO_FLASHING(iFlashTime, MPGlobalsScoreHud.iFlashing_GenericFourIconBar_Hud[index],MPGlobalsScoreHud.iFlashing_GenericFourIconBar_MiniHud[index]) bDisplayFlashingIcons = TRUE ELSE bDisplayFlashingIcons = FALSE ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // Background Bar Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORE Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORE Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg", Overlays) SET_TEXT_STYLE(TitleStyle) //Icon Setup SPRITE_PLACEMENT PlayerOneXPIconSprite SPRITE_PLACEMENT PlayerOneSecXPIconSprite SPRITE_PLACEMENT PlayerTwoXPIconSprite SPRITE_PLACEMENT PlayerTwoSecXPIconSprite SPRITE_PLACEMENT PlayerThreeXPIconSprite SPRITE_PLACEMENT PlayerThreeSecXPIconSprite SPRITE_PLACEMENT PlayerFourXPIconSprite SPRITE_PLACEMENT PlayerFourSecXPIconSprite // Underlay sprite PlayerOneXPIconSprite.x = NumberPlace.x+0.145+0.001 PlayerOneSecXPIconSprite.x = NumberPlace.x+0.145+0.001 PlayerTwoXPIconSprite.x = NumberPlace.x+0.123 PlayerTwoSecXPIconSprite.x = NumberPlace.x+0.123 PlayerThreeXPIconSprite.x = NumberPlace.x+0.101 PlayerThreeSecXPIconSprite.x = NumberPlace.x+0.101 PlayerFourXPIconSprite.x = NumberPlace.x+0.078 PlayerFourSecXPIconSprite.x = NumberPlace.x+0.078 IF IS_LANGUAGE_NON_ROMANIC() PlayerOneXPIconSprite.y = NumberPlace.y+0.016-0.000 PlayerOneSecXPIconSprite.y = NumberPlace.y+0.016+0.0005 PlayerTwoXPIconSprite.y = NumberPlace.y+0.016-0.000 PlayerTwoSecXPIconSprite.y = NumberPlace.y+0.016+0.0005 PlayerThreeXPIconSprite.y = NumberPlace.y+0.016-0.000 PlayerThreeSecXPIconSprite.y = NumberPlace.y+0.016+0.0005 PlayerFourXPIconSprite.y = NumberPlace.y+0.016-0.000 PlayerFourSecXPIconSprite.y = NumberPlace.y+0.016+0.0005 ELSE PlayerOneXPIconSprite.y = NumberPlace.y+0.0185 PlayerOneSecXPIconSprite.y = NumberPlace.y+0.019 PlayerTwoXPIconSprite.y = NumberPlace.y+0.0185 PlayerTwoSecXPIconSprite.y = NumberPlace.y+0.019 PlayerThreeXPIconSprite.y = NumberPlace.y+0.0185 PlayerThreeSecXPIconSprite.y = NumberPlace.y+0.019 PlayerFourXPIconSprite.y = NumberPlace.y+0.0185 PlayerFourSecXPIconSprite.y = NumberPlace.y+0.019 ENDIF // Width PlayerOneXPIconSprite.w = 0.016+0.003 PlayerOneSecXPIconSprite.w = 0.016+0.003 PlayerTwoXPIconSprite.w = 0.016+0.003 PlayerTwoSecXPIconSprite.w = 0.016+0.003 PlayerThreeXPIconSprite.w = 0.016+0.003 PlayerThreeSecXPIconSprite.w = 0.016+0.003 PlayerFourXPIconSprite.w = 0.016+0.003 PlayerFourSecXPIconSprite.w = 0.016+0.003 // Height PlayerOneXPIconSprite.h = 0.032+0.004 PlayerOneSecXPIconSprite.h = 0.032+0.004 PlayerTwoXPIconSprite.h = 0.032+0.004 PlayerTwoSecXPIconSprite.h = 0.032+0.004 PlayerThreeXPIconSprite.h = 0.032+0.004 PlayerThreeSecXPIconSprite.h = 0.032+0.004 PlayerFourXPIconSprite.h = 0.032+0.004 PlayerFourSecXPIconSprite.h = 0.032+0.004 //Alpha PlayerOneXPIconSprite.a = 255 PlayerOneSecXPIconSprite.a = 255 PlayerTwoXPIconSprite.a = 255 PlayerTwoSecXPIconSprite.a = 255 PlayerThreeXPIconSprite.a = 255 PlayerThreeSecXPIconSprite.a = 255 PlayerFourXPIconSprite.a = 255 PlayerFourSecXPIconSprite.a = 255 // HUD Colour SET_SPRITE_HUD_COLOUR(PlayerOneXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerOneSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourSecXPIconSprite, HUD_COLOUR_WHITE) // Ped Headshot Vars PEDHEADSHOT_ID pPlayerOneHeadshotID PEDHEADSHOT_ID pPlayerTwoHeadshotID PEDHEADSHOT_ID pPlayerThreeHeadshotID PEDHEADSHOT_ID pPlayerFourHeadshotID // TXD Name Vars TEXT_LABEL_23 tlPlayerOneTextureDictName = "" TEXT_LABEL_23 tlPlayerOneSecTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoSecTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFourTextureDictName = "" TEXT_LABEL_23 tlPlayerFourSecTextureDictName = "" // Sprite Name Vars TEXT_LABEL_23 tlPlayerOneTextureSpriteName TEXT_LABEL_23 tlPlayerOneSecTextureSpriteName TEXT_LABEL_23 tlPlayerTwoTextureSpriteName TEXT_LABEL_23 tlPlayerTwoSecTextureSpriteName TEXT_LABEL_23 tlPlayerThreeTextureSpriteName TEXT_LABEL_23 tlPlayerThreeSecTextureSpriteName TEXT_LABEL_23 tlPlayerFourTextureSpriteName TEXT_LABEL_23 tlPlayerFourSecTextureSpriteName // Texture HUD Colour Vars HUD_COLOURS PlayerOneTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerOneSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourSecTextureHudColour = HUD_COLOUR_WHITE GET_HUD_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, pPlayerOne, pPlayerOneHeadshotID, PlayerOneSecXPIconSprite, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, pPlayerTwo, pPlayerTwoHeadshotID, PlayerTwoSecXPIconSprite, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, pPlayerThree, pPlayerThreeHeadshotID, PlayerThreeSecXPIconSprite, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, pPlayerFour, pPlayerFourHeadshotID, PlayerFourSecXPIconSprite, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour, TitleColour) IF bFlashIconOne IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF IF bFlashIconTwo IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF IF bFlashIconThree IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF IF bFlashIconFour IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_FOUR_ICON_BAR(INT idx, HUD_COLOURS TitleColour, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, BOOL bFlashIconOne = FALSE, BOOL bFlashIconTwo = FALSE, BOOL bFlashIconThree = FALSE, BOOL bFlashIconFour = FALSE, INT iFlashTime = -1) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_FOUR_ICON_BAR, idx) TEXT_STYLE TitleStyle, NumberStyle TEXT_PLACEMENT TitlePlacement, NumberPlace DRAW_GENERAL_FOUR_ICON_BAR_GUTS(idx, TitleStyle, NumberStyle, TitlePlacement, NumberPlace, TitleColour, UIELEMENTS_BOTTOMRIGHT, pPlayerOne, pPlayerTwo, pPlayerThree, pPlayerFour, aPowerupOne, aPowerupTwo, aPowerupThree, aPowerupFour, bFlashIconOne, bFlashIconTwo, bFlashIconThree, bFlashIconFour, iFlashTime) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_FOUR_ICON_BAR index = ")NET_PRINT_INT(idx) ENDIF #ENDIF ENDIF ENDPROC PROC PRELOAD_FIVE_ICON_SCORE_BAR(PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE) // Ped Headshot Vars PEDHEADSHOT_ID pPlayerOneHeadshotID PEDHEADSHOT_ID pPlayerTwoHeadshotID PEDHEADSHOT_ID pPlayerThreeHeadshotID PEDHEADSHOT_ID pPlayerFourHeadshotID PEDHEADSHOT_ID pPlayerFiveHeadshotID // TXD Name Vars TEXT_LABEL_23 tlPlayerOneTextureDictName = "" TEXT_LABEL_23 tlPlayerOneSecTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoSecTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFourTextureDictName = "" TEXT_LABEL_23 tlPlayerFourSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveSecTextureDictName = "" // Sprite Name Vars TEXT_LABEL_23 tlPlayerOneTextureSpriteName = "" TEXT_LABEL_23 tlPlayerOneSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerTwoTextureSpriteName = "" TEXT_LABEL_23 tlPlayerTwoSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerThreeTextureSpriteName = "" TEXT_LABEL_23 tlPlayerThreeSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFourTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFourSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFiveTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFiveSecTextureSpriteName = "" // Texture HUD Colour Vars HUD_COLOURS PlayerOneTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFiveTextureHudColour = HUD_COLOUR_WHITE //Icon Setup SPRITE_PLACEMENT PlayerOneXPIconSprite SPRITE_PLACEMENT PlayerOneSecXPIconSprite SPRITE_PLACEMENT PlayerTwoXPIconSprite SPRITE_PLACEMENT PlayerTwoSecXPIconSprite SPRITE_PLACEMENT PlayerThreeXPIconSprite SPRITE_PLACEMENT PlayerThreeSecXPIconSprite SPRITE_PLACEMENT PlayerFourXPIconSprite SPRITE_PLACEMENT PlayerFourSecXPIconSprite SPRITE_PLACEMENT PlayerFiveXPIconSprite SPRITE_PLACEMENT PlayerFiveSecXPIconSprite GET_HUD_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, pPlayerOne, pPlayerOneHeadshotID, PlayerOneSecXPIconSprite, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE) GET_HUD_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, pPlayerTwo, pPlayerTwoHeadshotID, PlayerTwoSecXPIconSprite, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE) GET_HUD_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, pPlayerThree, pPlayerThreeHeadshotID, PlayerThreeSecXPIconSprite, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE) GET_HUD_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, pPlayerFour, pPlayerFourHeadshotID, PlayerFourSecXPIconSprite, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE) GET_HUD_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, pPlayerFive, pPlayerFiveHeadshotID, PlayerFiveSecXPIconSprite, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE, HUD_COLOUR_WHITE) REQUEST_AND_LOAD_ALL_FIVE_TEXTURE_DICTIONARIES(tlPlayerOneTextureDictName, tlPlayerOneSecTextureDictName, tlPlayerTwoTextureDictName, tlPlayerTwoSecTextureDictName, tlPlayerThreeTextureDictName, tlPlayerThreeSecTextureDictName, tlPlayerFourTextureDictName, tlPlayerFourSecTextureDictName, tlPlayerFiveTextureDictName, tlPlayerFiveSecTextureDictName) REQUEST_STREAMED_TEXTURE_DICT("TimerBars") ENDPROC PROC DRAW_GENERAL_FIVE_ICON_SCORE_BAR_GUTS(INT index, TEXT_STYLE &TitleStyle, TEXT_STYLE &NumberStyle, TEXT_PLACEMENT &TitlePlace, TEXT_PLACEMENT &NumberPlace, INT Number, FLOAT FloatValue, STRING NumberString, BOOL isFloat, INT MaXNumber, BOOL DrawInfinity, HUD_COLOURS TitleColour, UIELEMENTS WhichSpace, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE, PLAYER_INDEX pPlayerToHighlight = NULL, BOOL bEnablePlayerHighlight = FALSE, HUD_COLOURS ePowerupOneColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupTwoColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupThreeColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupFourColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupFiveColour = HUD_COLOUR_PURE_WHITE, INT iInstanceToHighlight = 0, BOOL bPulseHighlight = FALSE, INT iPulseTime = 9999999, PLAYER_INDEX pAvatarToFlash = NULL, BOOL bFlashAvatar = FALSE, INT iAvatarFlashTime = 9999999, INT iAvatarSlotToFlash = 0) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0,0,0,255) SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_DROPSHADOWONLY) IF Number < 1000000 IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN AND (FloatValue >= 100) AND ARE_STRINGS_EQUAL("AMCH_KMHN", NumberString) SET_STANDARD_UI_SCORE_SMALL_NUMBER_NON_ROMANIC(NumberStyle, DROPSTYLE_NONE) ELIF (GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE OR GET_CURRENT_LANGUAGE() = LANGUAGE_CHINESE_SIMPLIFIED ) AND (Number > 999 OR MaXNumber > 999 OR FloatValue > 1000) SET_STANDARD_UI_SCORE_SMALL_NUMBER_NON_ROMANIC(NumberStyle, DROPSTYLE_NONE) ELSE IF MaXNumber > 99 SET_STANDARD_UI_SCORE_SMALL_NUMBER(NumberStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_UI_SCORE_NUMBER(NumberStyle, DROPSTYLE_NONE) ENDIF ENDIF ELSE IF GET_CURRENT_LANGUAGE() = LANGUAGE_KOREAN AND ( ARE_STRINGS_EQUAL("HUD_CASH", NumberString) OR ARE_STRINGS_EQUAL("HUD_CASH_NEG", NumberString)) SET_STANDARD_UI_SCORE_SMALL_NUMBER_NON_ROMANIC(NumberStyle, DROPSTYLE_NONE) ELSE SET_STANDARD_UI_SCORE_SMALL_NUMBER(NumberStyle, DROPSTYLE_NONE) ENDIF ENDIF SET_WORD_WRAPPING_TITLE(TitleStyle) SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_FIVE_ICON_SCORE_BAR, Index) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF INIT_SCREEN_GENERAL_SINGLE_SCORE(NumberStyle, TitlePlace, NumberPlace, WhichSpace, TitleStyle) SET_WORD_HUD_COLOUR(NumberStyle, TitleColour) NumberStyle.a = 255 //Icon Setup SPRITE_PLACEMENT PlayerOneXPIconSprite SPRITE_PLACEMENT PlayerOneSecXPIconSprite SPRITE_PLACEMENT PlayerOneThirdXPIconSprite SPRITE_PLACEMENT PlayerTwoXPIconSprite SPRITE_PLACEMENT PlayerTwoSecXPIconSprite SPRITE_PLACEMENT PlayerTwoThirdXPIconSprite SPRITE_PLACEMENT PlayerThreeXPIconSprite SPRITE_PLACEMENT PlayerThreeSecXPIconSprite SPRITE_PLACEMENT PlayerThreeThirdXPIconSprite SPRITE_PLACEMENT PlayerFourXPIconSprite SPRITE_PLACEMENT PlayerFourSecXPIconSprite SPRITE_PLACEMENT PlayerFourThirdXPIconSprite SPRITE_PLACEMENT PlayerFiveXPIconSprite SPRITE_PLACEMENT PlayerFiveSecXPIconSprite SPRITE_PLACEMENT PlayerFiveThirdXPIconSprite // Underlay sprite PlayerOneXPIconSprite.x = NumberPlace.x+0.095 PlayerOneSecXPIconSprite.x = NumberPlace.x+0.095 PlayerOneThirdXPIconSprite.x = NumberPlace.x+0.095 PlayerTwoXPIconSprite.x = NumberPlace.x+0.072 PlayerTwoSecXPIconSprite.x = NumberPlace.x+0.072 PlayerTwoThirdXPIconSprite.x = NumberPlace.x+0.072 PlayerThreeXPIconSprite.x = NumberPlace.x+0.049 PlayerThreeSecXPIconSprite.x = NumberPlace.x+0.049 PlayerThreeThirdXPIconSprite.x = NumberPlace.x+0.049 PlayerFourXPIconSprite.x = NumberPlace.x+0.026 PlayerFourSecXPIconSprite.x = NumberPlace.x+0.026 PlayerFourThirdXPIconSprite.x = NumberPlace.x+0.026 PlayerFiveXPIconSprite.x = NumberPlace.x+0.003 PlayerFiveSecXPIconSprite.x = NumberPlace.x+0.003 PlayerFiveThirdXPIconSprite.x = NumberPlace.x+0.003 IF IS_LANGUAGE_NON_ROMANIC() PlayerOneXPIconSprite.y = NumberPlace.y+0.016-0.0005 PlayerOneSecXPIconSprite.y = NumberPlace.y+0.016 PlayerOneThirdXPIconSprite.y = NumberPlace.y+0.016 PlayerTwoXPIconSprite.y = NumberPlace.y+0.016-0.0005 PlayerTwoSecXPIconSprite.y = NumberPlace.y+0.016 PlayerTwoThirdXPIconSprite.y = NumberPlace.y+0.016 PlayerThreeXPIconSprite.y = NumberPlace.y+0.016-0.0005 PlayerThreeSecXPIconSprite.y = NumberPlace.y+0.016 PlayerThreeThirdXPIconSprite.y = NumberPlace.y+0.016 PlayerFourXPIconSprite.y = NumberPlace.y+0.016-0.0005 PlayerFourSecXPIconSprite.y = NumberPlace.y+0.016 PlayerFourThirdXPIconSprite.y = NumberPlace.y+0.016 PlayerFiveXPIconSprite.y = NumberPlace.y+0.016-0.0005 PlayerFiveSecXPIconSprite.y = NumberPlace.y+0.016 PlayerFiveThirdXPIconSprite.y = NumberPlace.y+0.016 ELSE PlayerOneXPIconSprite.y = NumberPlace.y+0.0185 PlayerOneSecXPIconSprite.y = NumberPlace.y+0.019 PlayerOneThirdXPIconSprite.y = NumberPlace.y+0.019 PlayerTwoXPIconSprite.y = NumberPlace.y+0.0185 PlayerTwoSecXPIconSprite.y = NumberPlace.y+0.019 PlayerTwoThirdXPIconSprite.y = NumberPlace.y+0.019 PlayerThreeXPIconSprite.y = NumberPlace.y+0.0185 PlayerThreeSecXPIconSprite.y = NumberPlace.y+0.019 PlayerThreeThirdXPIconSprite.y = NumberPlace.y+0.019 PlayerFourXPIconSprite.y = NumberPlace.y+0.0185 PlayerFourSecXPIconSprite.y = NumberPlace.y+0.019 PlayerFourThirdXPIconSprite.y = NumberPlace.y+0.019 PlayerFiveXPIconSprite.y = NumberPlace.y+0.0185 PlayerFiveSecXPIconSprite.y = NumberPlace.y+0.019 PlayerFiveThirdXPIconSprite.y = NumberPlace.y+0.019 ENDIF // Width PlayerOneXPIconSprite.w = 0.016+0.003 PlayerOneSecXPIconSprite.w = 0.016+0.003 PlayerOneThirdXPIconSprite.w = 0.016+0.003 PlayerTwoXPIconSprite.w = 0.016+0.003 PlayerTwoSecXPIconSprite.w = 0.016+0.003 PlayerTwoThirdXPIconSprite.w = 0.016+0.003 PlayerThreeXPIconSprite.w = 0.016+0.003 PlayerThreeSecXPIconSprite.w = 0.016+0.003 PlayerThreeThirdXPIconSprite.w = 0.016+0.003 PlayerFourXPIconSprite.w = 0.016+0.003 PlayerFourSecXPIconSprite.w = 0.016+0.003 PlayerFourThirdXPIconSprite.w = 0.016+0.003 PlayerFiveXPIconSprite.w = 0.016+0.003 PlayerFiveSecXPIconSprite.w = 0.016+0.003 PlayerFiveThirdXPIconSprite.w = 0.016+0.003 // Height PlayerOneXPIconSprite.h = 0.032+0.004 PlayerOneSecXPIconSprite.h = 0.032+0.004 PlayerOneThirdXPIconSprite.h = 0.032+0.004 PlayerTwoXPIconSprite.h = 0.032+0.004 PlayerTwoSecXPIconSprite.h = 0.032+0.004 PlayerTwoThirdXPIconSprite.h = 0.032+0.004 PlayerThreeXPIconSprite.h = 0.032+0.004 PlayerThreeSecXPIconSprite.h = 0.032+0.004 PlayerThreeThirdXPIconSprite.h = 0.032+0.004 PlayerFourXPIconSprite.h = 0.032+0.004 PlayerFourSecXPIconSprite.h = 0.032+0.004 PlayerFourThirdXPIconSprite.h = 0.032+0.004 PlayerFiveXPIconSprite.h = 0.032+0.004 PlayerFiveSecXPIconSprite.h = 0.032+0.004 PlayerFiveThirdXPIconSprite.h = 0.032+0.004 //Alpha PlayerOneXPIconSprite.a = 255 PlayerOneSecXPIconSprite.a = 255 PlayerOneThirdXPIconSprite.a = 255 PlayerTwoXPIconSprite.a = 255 PlayerTwoSecXPIconSprite.a = 255 PlayerTwoThirdXPIconSprite.a = 255 PlayerThreeXPIconSprite.a = 255 PlayerThreeSecXPIconSprite.a = 255 PlayerThreeThirdXPIconSprite.a = 255 PlayerFourXPIconSprite.a = 255 PlayerFourSecXPIconSprite.a = 255 PlayerFourThirdXPIconSprite.a = 255 PlayerFiveXPIconSprite.a = 255 PlayerFiveSecXPIconSprite.a = 255 PlayerFiveThirdXPIconSprite.a = 255 // HUD Colour SET_SPRITE_HUD_COLOUR(PlayerOneXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerOneSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerOneThirdXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoThirdXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeThirdXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourThirdXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFiveXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFiveSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFiveThirdXPIconSprite, HUD_COLOUR_WHITE) // Ped Headshot Vars PEDHEADSHOT_ID pPlayerOneHeadshotID PEDHEADSHOT_ID pPlayerTwoHeadshotID PEDHEADSHOT_ID pPlayerThreeHeadshotID PEDHEADSHOT_ID pPlayerFourHeadshotID PEDHEADSHOT_ID pPlayerFiveHeadshotID // TXD Name Vars TEXT_LABEL_23 tlPlayerOneTextureDictName = "" TEXT_LABEL_23 tlPlayerOneSecTextureDictName = "" TEXT_LABEL_23 tlPlayerOneThirdTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoSecTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoThirdTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeSecTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeThirdTextureDictName = "" TEXT_LABEL_23 tlPlayerFourTextureDictName = "" TEXT_LABEL_23 tlPlayerFourSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFourThirdTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveThirdTextureDictName = "" // Sprite Name Vars TEXT_LABEL_23 tlPlayerOneTextureSpriteName = "" TEXT_LABEL_23 tlPlayerOneSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerOneThirdTextureSpriteName = "" TEXT_LABEL_23 tlPlayerTwoTextureSpriteName = "" TEXT_LABEL_23 tlPlayerTwoSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerTwoThirdTextureSpriteName = "" TEXT_LABEL_23 tlPlayerThreeTextureSpriteName = "" TEXT_LABEL_23 tlPlayerThreeSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerThreeThirdTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFourTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFourSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFourThirdTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFiveTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFiveSecTextureSpriteName = "" TEXT_LABEL_23 tlPlayerFiveThirdTextureSpriteName = "" // Texture HUD Colour Vars HUD_COLOURS PlayerOneTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerOneSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerOneThirdTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoThirdTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeThirdTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourThirdTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFiveTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFiveSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFiveThirdTextureHudColour = HUD_COLOUR_WHITE GET_HUD_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, pPlayerOne, pPlayerOneHeadshotID, PlayerOneSecXPIconSprite, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour, TitleColour, ePowerupOneColour) GET_HUD_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, pPlayerTwo, pPlayerTwoHeadshotID, PlayerTwoSecXPIconSprite, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour, TitleColour, ePowerupTwoColour) GET_HUD_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, pPlayerThree, pPlayerThreeHeadshotID, PlayerThreeSecXPIconSprite, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour, TitleColour, ePowerupThreeColour) GET_HUD_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, pPlayerFour, pPlayerFourHeadshotID, PlayerFourSecXPIconSprite, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour, TitleColour, ePowerupFourColour) GET_HUD_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, pPlayerFive, pPlayerFiveHeadshotID, PlayerFiveSecXPIconSprite, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour, TitleColour, ePowerupFiveColour) REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF REQUEST_AND_LOAD_ALL_FIVE_TEXTURE_DICTIONARIES(tlPlayerOneTextureDictName, tlPlayerOneSecTextureDictName, tlPlayerTwoTextureDictName, tlPlayerTwoSecTextureDictName, tlPlayerThreeTextureDictName, tlPlayerThreeSecTextureDictName, tlPlayerFourTextureDictName, tlPlayerFourSecTextureDictName, tlPlayerFiveTextureDictName, tlPlayerFiveSecTextureDictName) AND HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y IF Number < 1000000 Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORE Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORE Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ELSE Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORESML Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORESML Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA //reduce by 20% 931421 ENDIF IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg", Overlays) SET_TEXT_STYLE(TitleStyle) IF iAvatarFlashTime = 0 RESET_GENERIC_FIVE_ICON_SCORE_BAR_AVATAR_FLASHING(Index) ENDIF BOOL bFlashAvatarThisFrame IF DO_FLASHING(iAvatarFlashTime, MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_Avatar_Hud[index],MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_Avatar_MiniHud[index]) bFlashAvatarThisFrame = TRUE ELSE bFlashAvatarThisFrame = FALSE ENDIF IF bFlashAvatar AND GET_TOGGLE_PAUSED_RENDERPHASES_STATUS() IF bFlashAvatarThisFrame IF pAvatarToFlash = pPlayerOne AND iAvatarSlotToFlash = 5 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerTwo AND iAvatarSlotToFlash = 4 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerThree AND iAvatarSlotToFlash = 3 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerFour AND iAvatarSlotToFlash = 2 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerFive AND iAvatarSlotToFlash = 1 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, PlayerFiveSecXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour) ENDIF ENDIF // Draw everyone who isn't flashing IF pAvatarToFlash = pPlayerOne AND iAvatarSlotToFlash != 5 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerTwo AND iAvatarSlotToFlash != 4 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerThree AND iAvatarSlotToFlash != 3 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerFour AND iAvatarSlotToFlash != 2 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF IF pAvatarToFlash = pPlayerFive AND iAvatarSlotToFlash != 1 DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, PlayerFiveSecXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour) ENDIF // Draw everyone who isn't flashing IF pAvatarToFlash != pPlayerOne DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF IF pAvatarToFlash != pPlayerTwo DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF IF pAvatarToFlash != pPlayerThree DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF IF pAvatarToFlash != pPlayerFour DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF IF pAvatarToFlash != pPlayerFive DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, PlayerFiveSecXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) DRAW_2D_SPRITE_FROM_ALREADY_REQUESTED_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, PlayerFiveSecXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour) ENDIF IF iPulseTime = 0 RESET_GENERIC_FIVE_ICON_SCORE_BAR_FLASHING(Index) ENDIF BOOL bPulseThisFrame IF DO_FLASHING(iPulseTime, MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_Hud[index],MPGlobalsScoreHud.iFlashing_GenericFiveIconScoreBar_MiniHud[index]) bPulseThisFrame = TRUE ELSE bPulseThisFrame = FALSE ENDIF IF bEnablePlayerHighlight SWITCH iInstanceToHighlight CASE -1 // Highlight all instances of player GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerOneThirdXPIconSprite, tlPlayerOneThirdTextureDictName, tlPlayerOneThirdTextureSpriteName, PlayerOneThirdTextureHudColour, pPlayerOne, pPlayerToHighlight, TitleColour) GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerTwoThirdXPIconSprite, tlPlayerTwoThirdTextureDictName, tlPlayerTwoThirdTextureSpriteName, PlayerTwoThirdTextureHudColour, pPlayerTwo, pPlayerToHighlight, TitleColour) GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerThreeThirdXPIconSprite, tlPlayerThreeThirdTextureDictName, tlPlayerThreeThirdTextureSpriteName, PlayerThreeThirdTextureHudColour, pPlayerThree, pPlayerToHighlight, TitleColour) GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerFourThirdXPIconSprite, tlPlayerFourThirdTextureDictName, tlPlayerFourThirdTextureSpriteName, PlayerFourThirdTextureHudColour, pPlayerFour, pPlayerToHighlight, TitleColour) GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerFiveThirdXPIconSprite, tlPlayerFiveThirdTextureDictName, tlPlayerFiveThirdTextureSpriteName, PlayerFiveThirdTextureHudColour, pPlayerFive, pPlayerToHighlight, TitleColour) IF bPulseHighlight IF bPulseThisFrame DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerOneThirdXPIconSprite, tlPlayerOneThirdTextureDictName, tlPlayerOneThirdTextureSpriteName, PlayerOneThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerTwoThirdXPIconSprite, tlPlayerTwoThirdTextureDictName, tlPlayerTwoThirdTextureSpriteName, PlayerTwoThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerThreeThirdXPIconSprite, tlPlayerThreeThirdTextureDictName, tlPlayerThreeThirdTextureSpriteName, PlayerThreeThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFourThirdXPIconSprite, tlPlayerFourThirdTextureDictName, tlPlayerFourThirdTextureSpriteName, PlayerFourThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFiveThirdXPIconSprite, tlPlayerFiveThirdTextureDictName, tlPlayerFiveThirdTextureSpriteName, PlayerFiveThirdTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerOneThirdXPIconSprite, tlPlayerOneThirdTextureDictName, tlPlayerOneThirdTextureSpriteName, PlayerOneThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerTwoThirdXPIconSprite, tlPlayerTwoThirdTextureDictName, tlPlayerTwoThirdTextureSpriteName, PlayerTwoThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerThreeThirdXPIconSprite, tlPlayerThreeThirdTextureDictName, tlPlayerThreeThirdTextureSpriteName, PlayerThreeThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFourThirdXPIconSprite, tlPlayerFourThirdTextureDictName, tlPlayerFourThirdTextureSpriteName, PlayerFourThirdTextureHudColour) DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFiveThirdXPIconSprite, tlPlayerFiveThirdTextureDictName, tlPlayerFiveThirdTextureSpriteName, PlayerFiveThirdTextureHudColour) ENDIF BREAK CASE 0 // Default - Do nothing BREAK CASE 1 // Highlight player in slot 1 GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerOneThirdXPIconSprite, tlPlayerOneThirdTextureDictName, tlPlayerOneThirdTextureSpriteName, PlayerOneThirdTextureHudColour, pPlayerOne, pPlayerToHighlight, TitleColour) IF bPulseHighlight IF bPulseThisFrame DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerOneThirdXPIconSprite, tlPlayerOneThirdTextureDictName, tlPlayerOneThirdTextureSpriteName, PlayerOneThirdTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerOneThirdXPIconSprite, tlPlayerOneThirdTextureDictName, tlPlayerOneThirdTextureSpriteName, PlayerOneThirdTextureHudColour) ENDIF BREAK CASE 2 // Highlight player in slot 2 GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerTwoThirdXPIconSprite, tlPlayerTwoThirdTextureDictName, tlPlayerTwoThirdTextureSpriteName, PlayerTwoThirdTextureHudColour, pPlayerTwo, pPlayerToHighlight, TitleColour) IF bPulseHighlight IF bPulseThisFrame DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerTwoThirdXPIconSprite, tlPlayerTwoThirdTextureDictName, tlPlayerTwoThirdTextureSpriteName, PlayerTwoThirdTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerTwoThirdXPIconSprite, tlPlayerTwoThirdTextureDictName, tlPlayerTwoThirdTextureSpriteName, PlayerTwoThirdTextureHudColour) ENDIF BREAK CASE 3 // Highlight player in slot 3 GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerThreeThirdXPIconSprite, tlPlayerThreeThirdTextureDictName, tlPlayerThreeThirdTextureSpriteName, PlayerThreeThirdTextureHudColour, pPlayerThree, pPlayerToHighlight, TitleColour) IF bPulseHighlight IF bPulseThisFrame DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerThreeThirdXPIconSprite, tlPlayerThreeThirdTextureDictName, tlPlayerThreeThirdTextureSpriteName, PlayerThreeThirdTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerThreeThirdXPIconSprite, tlPlayerThreeThirdTextureDictName, tlPlayerThreeThirdTextureSpriteName, PlayerThreeThirdTextureHudColour) ENDIF BREAK CASE 4 // Highlight player in slot 4 GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerFourThirdXPIconSprite, tlPlayerFourThirdTextureDictName, tlPlayerFourThirdTextureSpriteName, PlayerFourThirdTextureHudColour, pPlayerFour, pPlayerToHighlight, TitleColour) IF bPulseHighlight IF bPulseThisFrame DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFourThirdXPIconSprite, tlPlayerFourThirdTextureDictName, tlPlayerFourThirdTextureSpriteName, PlayerFourThirdTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFourThirdXPIconSprite, tlPlayerFourThirdTextureDictName, tlPlayerFourThirdTextureSpriteName, PlayerFourThirdTextureHudColour) ENDIF BREAK CASE 5 // Highlight player in slot 5 GET_HUD_HIGHLIGHTED_PLAYER_DATA(PlayerFiveThirdXPIconSprite, tlPlayerFiveThirdTextureDictName, tlPlayerFiveThirdTextureSpriteName, PlayerFiveThirdTextureHudColour, pPlayerFive, pPlayerToHighlight, TitleColour) IF bPulseHighlight IF bPulseThisFrame DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFiveThirdXPIconSprite, tlPlayerFiveThirdTextureDictName, tlPlayerFiveThirdTextureSpriteName, PlayerFiveThirdTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_HIGHLIGHTED_PLAYER_DATA(PlayerFiveThirdXPIconSprite, tlPlayerFiveThirdTextureDictName, tlPlayerFiveThirdTextureSpriteName, PlayerFiveThirdTextureHudColour) ENDIF BREAK ENDSWITCH ENDIF SET_TEXT_STYLE(NumberStyle) IF DrawInfinity DRAW_TEXT_WITH_PLAYER_NAME(NumberPlace, NumberStyle, "∞", "", HUD_COLOUR_WHITE, FONT_RIGHT) ELSE IF IS_STRING_EMPTY_HUD(NumberString) IF MaXNumber = 0 IF isFloat = FALSE IF Number != -999 DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,"NUMBER", Number,FONT_RIGHT) ENDIF ELSE DRAW_TEXT_WITH_FLOAT(NumberPlace, NumberStyle,"NUMBER", FloatValue,g_b_iNumberOfDecimalPlacesForScore,FONT_RIGHT) ENDIF ELSE DRAW_TEXT_WITH_2_NUMBERS(NumberPlace,NumberStyle,"TIMER_DASHES", Number, MaXNumber ,FONT_RIGHT) ENDIF ELSE IF ARE_STRINGS_EQUAL("HUD_CASH", NumberString) OR ARE_STRINGS_EQUAL("HUD_CASH_S", NumberString) NumberString = "HUD_CASH_S" NumberStyle.aFont = FONT_STYLE_FIXED_WIDTH_NUMBERS SET_TEXT_STYLE(NumberStyle) DRAW_CASH_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number, FONT_RIGHT) ELIF ARE_STRINGS_EQUAL("HUD_CASH_NEG", NumberString) OR ARE_STRINGS_EQUAL("HUD_CASH_NEG_S", NumberString) NumberStyle.aFont = FONT_STYLE_FIXED_WIDTH_NUMBERS SET_TEXT_STYLE(NumberStyle) NumberString = "HUD_CASH_NEG_S" DRAW_CASH_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number, FONT_RIGHT) ELSE IF isFloat = FALSE DRAW_TEXT_WITH_NUMBER(NumberPlace,NumberStyle,NumberString, Number, FONT_RIGHT) ELSE DRAW_TEXT_WITH_FLOAT(NumberPlace,NumberStyle,NumberString, FloatValue, g_b_iNumberOfDecimalPlacesForScore,FONT_RIGHT) ENDIF ENDIF ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_FIVE_ICON_SCORE_BAR(INT idx, INT Number, FLOAT FloatValue, STRING NumberString, BOOL isFloat, INT MaXNumber, BOOL DrawInfinity, HUD_COLOURS TitleColour, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE, PLAYER_INDEX pPlayerToHighlight = NULL, BOOL bEnablePlayerHighlight = FALSE, HUD_COLOURS ePowerupOneColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupTwoColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupThreeColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupFourColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupFiveColour = HUD_COLOUR_PURE_WHITE, INT iInstanceToHighlight = 0, BOOL bPulseHighlight = FALSE, INT iPulseTime = 9999999, PLAYER_INDEX pAvatarToFlash = NULL, BOOL bFlashAvatar = FALSE, INT iAvatarFlashTime = 9999999, INT iAvatarSlotToFlash = 0) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_FIVE_ICON_SCORE_BAR, idx) TEXT_STYLE TitleStyle, NumberStyle TEXT_PLACEMENT TitlePlacement, NumberPlace DRAW_GENERAL_FIVE_ICON_SCORE_BAR_GUTS(idx, TitleStyle, NumberStyle, TitlePlacement, NumberPlace, Number, FloatValue, NumberString, isFloat, MaXNumber, DrawInfinity, TitleColour, UIELEMENTS_BOTTOMRIGHT, pPlayerOne, pPlayerTwo, pPlayerThree, pPlayerFour, pPlayerFive, aPowerupOne, aPowerupTwo, aPowerupThree, aPowerupFour, aPowerupFive, pPlayerToHighlight, bEnablePlayerHighlight, ePowerupOneColour, ePowerupTwoColour, ePowerupThreeColour, ePowerupFourColour, ePowerupFiveColour, iInstanceToHighlight, bPulseHighlight, iPulseTime, pAvatarToFlash, bFlashAvatar, iAvatarFlashTime, iAvatarSlotToFlash) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_GENERAL_FIVE_ICON_SCORE_BAR index = ")NET_PRINT_INT(idx) ENDIF #ENDIF ENDIF ENDPROC PROC DRAW_GENERAL_SIX_ICON_BAR_GUTS(INT index, TEXT_STYLE &TitleStyle, TEXT_STYLE &NumberStyle, TEXT_PLACEMENT &TitlePlace, TEXT_PLACEMENT &NumberPlace, HUD_COLOURS TitleColour, UIELEMENTS WhichSpace, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, PLAYER_INDEX pPlayerSix = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupSix = ACTIVITY_POWERUP_NONE, BOOL bFlashIconOne = FALSE, BOOL bFlashIconTwo = FALSE, BOOL bFlashIconThree = FALSE, BOOL bFlashIconFour = FALSE, BOOL bFlashIconFive = FALSE, BOOL bFlashIconSix = FALSE, INT iFlashTime = -1) MPGlobalsScoreHud.iHowManyDisplays++ IF IS_BOTTOM_RIGHT_AREA_FREE() SET_PROGRESSHUD_INIT_DONE(PROGRESSHUD_SIX_ICON_BAR, index) SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_TITLE(TitleStyle) IF MPGlobalsScoreHud.iHowManyDisplays = 1 SET_Y_SHIFT_START(WhichSpace) ENDIF SET_STANDARD_UI_SCORE_NUMBER(NumberStyle, DROPSTYLE_NONE) SET_WORD_WRAPPING_RIGHTEDGE(NumberStyle) INIT_SCREEN_GENERAL_SINGLE_SCORE(NumberStyle, TitlePlace, NumberPlace, WhichSpace, TitleStyle) SPRITE_PLACEMENT Overlays SET_SPRITE_PLACEMENT(Overlays, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 255) // Flashing Icons BOOL bDisplayFlashingIcons IF iFlashTime = 0 RESET_GENERIC_SIX_ICON_BAR_FLASHING(index) ENDIF IF DO_FLASHING(iFlashTime, MPGlobalsScoreHud.iFlashing_GenericSixIconBar_Hud[index], MPGlobalsScoreHud.iFlashing_GenericSixIconBar_MiniHud[index]) bDisplayFlashingIcons = TRUE ELSE bDisplayFlashingIcons = FALSE ENDIF REQUEST_STREAMED_TEXTURE_DICT("TimerBars") IF HAS_STREAMED_TEXTURE_DICT_LOADED("TimerBars") GFX_DRAW_ORDER anOrder = SET_GFX_TIMERS_DRAW_ORDER() SET_SCRIPT_GFX_DRAW_ORDER(anOrder) // Background Bar Overlays.x = TitlePlace.x Overlays.y = TitlePlace.y Overlays.x += TIMER_OVERLAY_X Overlays.y += TIMER_OVERLAY_Y_SCORE Overlays.w += TIMER_OVERLAY_W Overlays.h += TIMER_OVERLAY_H_SCORE Overlays.r += 255 Overlays.g += 255 Overlays.b += 255 Overlays.a = TIMER_OVERLAY_ALPHA IF IS_LANGUAGE_NON_ROMANIC() Overlays.x += TIMER_OVERLAY_X_NON_ROMANIC_OFFSET Overlays.w += TIMER_OVERLAY_W_NON_ROMANIC_OFFSET ENDIF MPGlobalsScoreHud.TopOfTimers += Overlays.h DRAW_2D_SPRITE("TimerBars", "ALL_BLACK_bg", Overlays) SET_TEXT_STYLE(TitleStyle) //Icon Setup SPRITE_PLACEMENT PlayerOneXPIconSprite SPRITE_PLACEMENT PlayerOneSecXPIconSprite SPRITE_PLACEMENT PlayerTwoXPIconSprite SPRITE_PLACEMENT PlayerTwoSecXPIconSprite SPRITE_PLACEMENT PlayerThreeXPIconSprite SPRITE_PLACEMENT PlayerThreeSecXPIconSprite SPRITE_PLACEMENT PlayerFourXPIconSprite SPRITE_PLACEMENT PlayerFourSecXPIconSprite SPRITE_PLACEMENT PlayerFiveXPIconSprite SPRITE_PLACEMENT PlayerFiveSecXPIconSprite SPRITE_PLACEMENT PlayerSixXPIconSprite SPRITE_PLACEMENT PlayerSixSecXPIconSprite // Underlay sprite PlayerOneXPIconSprite.x = NumberPlace.x + 0.145 + 0.001 PlayerOneSecXPIconSprite.x = NumberPlace.x + 0.145 + 0.001 PlayerTwoXPIconSprite.x = NumberPlace.x + 0.123 PlayerTwoSecXPIconSprite.x = NumberPlace.x + 0.123 PlayerThreeXPIconSprite.x = NumberPlace.x + 0.101 PlayerThreeSecXPIconSprite.x = NumberPlace.x + 0.101 PlayerFourXPIconSprite.x = NumberPlace.x + 0.078 PlayerFourSecXPIconSprite.x = NumberPlace.x + 0.078 PlayerFiveXPIconSprite.x = NumberPlace.x + 0.056 PlayerFiveSecXPIconSprite.x = NumberPlace.x + 0.056 PlayerSixXPIconSprite.x = NumberPlace.x + 0.034 PlayerSixSecXPIconSprite.x = NumberPlace.x + 0.034 IF IS_LANGUAGE_NON_ROMANIC() PlayerOneXPIconSprite.y = NumberPlace.y + 0.016 - 0.000 PlayerOneSecXPIconSprite.y = NumberPlace.y + 0.016 + 0.0005 PlayerTwoXPIconSprite.y = NumberPlace.y + 0.016 - 0.000 PlayerTwoSecXPIconSprite.y = NumberPlace.y + 0.016 + 0.0005 PlayerThreeXPIconSprite.y = NumberPlace.y + 0.016 - 0.000 PlayerThreeSecXPIconSprite.y = NumberPlace.y + 0.016 + 0.0005 PlayerFourXPIconSprite.y = NumberPlace.y + 0.016 - 0.000 PlayerFourSecXPIconSprite.y = NumberPlace.y + 0.016 + 0.0005 PlayerFiveXPIconSprite.y = NumberPlace.y + 0.016 - 0.000 PlayerFiveSecXPIconSprite.y = NumberPlace.y + 0.016 + 0.0005 PlayerSixXPIconSprite.y = NumberPlace.y + 0.016 - 0.000 PlayerSixSecXPIconSprite.y = NumberPlace.y + 0.016 + 0.0005 ELSE PlayerOneXPIconSprite.y = NumberPlace.y + 0.0185 PlayerOneSecXPIconSprite.y = NumberPlace.y + 0.019 PlayerTwoXPIconSprite.y = NumberPlace.y + 0.0185 PlayerTwoSecXPIconSprite.y = NumberPlace.y + 0.019 PlayerThreeXPIconSprite.y = NumberPlace.y + 0.0185 PlayerThreeSecXPIconSprite.y = NumberPlace.y + 0.019 PlayerFourXPIconSprite.y = NumberPlace.y + 0.0185 PlayerFourSecXPIconSprite.y = NumberPlace.y + 0.019 PlayerFiveXPIconSprite.y = NumberPlace.y + 0.0185 PlayerFiveSecXPIconSprite.y = NumberPlace.y + 0.019 PlayerSixXPIconSprite.y = NumberPlace.y + 0.0185 PlayerSixSecXPIconSprite.y = NumberPlace.y + 0.019 ENDIF // Width PlayerOneXPIconSprite.w = 0.016 + 0.003 PlayerOneSecXPIconSprite.w = 0.016 + 0.003 PlayerTwoXPIconSprite.w = 0.016 + 0.003 PlayerTwoSecXPIconSprite.w = 0.016 + 0.003 PlayerThreeXPIconSprite.w = 0.016 + 0.003 PlayerThreeSecXPIconSprite.w = 0.016 + 0.003 PlayerFourXPIconSprite.w = 0.016 + 0.003 PlayerFourSecXPIconSprite.w = 0.016 + 0.003 PlayerFiveXPIconSprite.w = 0.016 + 0.003 PlayerFiveSecXPIconSprite.w = 0.016 + 0.003 PlayerSixXPIconSprite.w = 0.016 + 0.003 PlayerSixSecXPIconSprite.w = 0.016 + 0.003 // Height PlayerOneXPIconSprite.h = 0.032 + 0.004 PlayerOneSecXPIconSprite.h = 0.032 + 0.004 PlayerTwoXPIconSprite.h = 0.032 + 0.004 PlayerTwoSecXPIconSprite.h = 0.032 + 0.004 PlayerThreeXPIconSprite.h = 0.032 + 0.004 PlayerThreeSecXPIconSprite.h = 0.032 + 0.004 PlayerFourXPIconSprite.h = 0.032 + 0.004 PlayerFourSecXPIconSprite.h = 0.032 + 0.004 PlayerFiveXPIconSprite.h = 0.032 + 0.004 PlayerFiveSecXPIconSprite.h = 0.032 + 0.004 PlayerSixXPIconSprite.h = 0.032 + 0.004 PlayerSixSecXPIconSprite.h = 0.032 + 0.004 //Alpha PlayerOneXPIconSprite.a = 255 PlayerOneSecXPIconSprite.a = 255 PlayerTwoXPIconSprite.a = 255 PlayerTwoSecXPIconSprite.a = 255 PlayerThreeXPIconSprite.a = 255 PlayerThreeSecXPIconSprite.a = 255 PlayerFourXPIconSprite.a = 255 PlayerFourSecXPIconSprite.a = 255 PlayerFiveXPIconSprite.a = 255 PlayerFiveSecXPIconSprite.a = 255 PlayerSixXPIconSprite.a = 255 PlayerSixSecXPIconSprite.a = 255 // HUD Colour SET_SPRITE_HUD_COLOUR(PlayerOneXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerOneSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerTwoSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerThreeSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFourSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFiveXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerFiveSecXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerSixXPIconSprite, HUD_COLOUR_WHITE) SET_SPRITE_HUD_COLOUR(PlayerSixSecXPIconSprite, HUD_COLOUR_WHITE) // Ped Headshot Vars PEDHEADSHOT_ID pPlayerOneHeadshotID PEDHEADSHOT_ID pPlayerTwoHeadshotID PEDHEADSHOT_ID pPlayerThreeHeadshotID PEDHEADSHOT_ID pPlayerFourHeadshotID PEDHEADSHOT_ID pPlayerFiveHeadshotID PEDHEADSHOT_ID pPlayerSixHeadshotID // TXD Name Vars TEXT_LABEL_23 tlPlayerOneTextureDictName = "" TEXT_LABEL_23 tlPlayerOneSecTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoTextureDictName = "" TEXT_LABEL_23 tlPlayerTwoSecTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeTextureDictName = "" TEXT_LABEL_23 tlPlayerThreeSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFourTextureDictName = "" TEXT_LABEL_23 tlPlayerFourSecTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveTextureDictName = "" TEXT_LABEL_23 tlPlayerFiveSecTextureDictName = "" TEXT_LABEL_23 tlPlayerSixTextureDictName = "" TEXT_LABEL_23 tlPlayerSixSecTextureDictName = "" // Sprite Name Vars TEXT_LABEL_23 tlPlayerOneTextureSpriteName TEXT_LABEL_23 tlPlayerOneSecTextureSpriteName TEXT_LABEL_23 tlPlayerTwoTextureSpriteName TEXT_LABEL_23 tlPlayerTwoSecTextureSpriteName TEXT_LABEL_23 tlPlayerThreeTextureSpriteName TEXT_LABEL_23 tlPlayerThreeSecTextureSpriteName TEXT_LABEL_23 tlPlayerFourTextureSpriteName TEXT_LABEL_23 tlPlayerFourSecTextureSpriteName TEXT_LABEL_23 tlPlayerFiveTextureSpriteName TEXT_LABEL_23 tlPlayerFiveSecTextureSpriteName TEXT_LABEL_23 tlPlayerSixTextureSpriteName TEXT_LABEL_23 tlPlayerSixSecTextureSpriteName // Texture HUD Colour Vars HUD_COLOURS PlayerOneTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerOneSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerTwoSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerThreeSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFourSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFiveTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerFiveSecTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerSixTextureHudColour = HUD_COLOUR_WHITE HUD_COLOURS PlayerSixSecTextureHudColour = HUD_COLOUR_WHITE GET_HUD_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, pPlayerOne, pPlayerOneHeadshotID, PlayerOneSecXPIconSprite, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, pPlayerTwo, pPlayerTwoHeadshotID, PlayerTwoSecXPIconSprite, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, pPlayerThree, pPlayerThreeHeadshotID, PlayerThreeSecXPIconSprite, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, pPlayerFour, pPlayerFourHeadshotID, PlayerFourSecXPIconSprite, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, pPlayerFive, pPlayerFiveHeadshotID, PlayerFiveSecXPIconSprite, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour, TitleColour) GET_HUD_POWERUP_DATA(aPowerupSix, PlayerSixXPIconSprite, tlPlayerSixTextureDictName, tlPlayerSixTextureSpriteName, PlayerSixTextureHudColour, pPlayerSix, pPlayerSixHeadshotID, PlayerSixSecXPIconSprite, tlPlayerSixSecTextureDictName, tlPlayerSixSecTextureSpriteName, PlayerSixSecTextureHudColour, TitleColour) IF bFlashIconOne IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupOne, PlayerOneXPIconSprite, PlayerOneSecXPIconSprite, tlPlayerOneTextureDictName, tlPlayerOneTextureSpriteName, PlayerOneTextureHudColour, tlPlayerOneSecTextureDictName, tlPlayerOneSecTextureSpriteName, PlayerOneSecTextureHudColour) ENDIF IF bFlashIconTwo IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupTwo, PlayerTwoXPIconSprite, PlayerTwoSecXPIconSprite, tlPlayerTwoTextureDictName, tlPlayerTwoTextureSpriteName, PlayerTwoTextureHudColour, tlPlayerTwoSecTextureDictName, tlPlayerTwoSecTextureSpriteName, PlayerTwoSecTextureHudColour) ENDIF IF bFlashIconThree IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupThree, PlayerThreeXPIconSprite, PlayerThreeSecXPIconSprite, tlPlayerThreeTextureDictName, tlPlayerThreeTextureSpriteName, PlayerThreeTextureHudColour, tlPlayerThreeSecTextureDictName, tlPlayerThreeSecTextureSpriteName, PlayerThreeSecTextureHudColour) ENDIF IF bFlashIconFour IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupFour, PlayerFourXPIconSprite, PlayerFourSecXPIconSprite, tlPlayerFourTextureDictName, tlPlayerFourTextureSpriteName, PlayerFourTextureHudColour, tlPlayerFourSecTextureDictName, tlPlayerFourSecTextureSpriteName, PlayerFourSecTextureHudColour) ENDIF IF bFlashIconFive IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, PlayerFiveSecXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupFive, PlayerFiveXPIconSprite, PlayerFiveSecXPIconSprite, tlPlayerFiveTextureDictName, tlPlayerFiveTextureSpriteName, PlayerFiveTextureHudColour, tlPlayerFiveSecTextureDictName, tlPlayerFiveSecTextureSpriteName, PlayerFiveSecTextureHudColour) ENDIF IF bFlashIconSix IF bDisplayFlashingIcons DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupSix, PlayerSixXPIconSprite, PlayerSixSecXPIconSprite, tlPlayerSixTextureDictName, tlPlayerSixTextureSpriteName, PlayerSixTextureHudColour, tlPlayerSixSecTextureDictName, tlPlayerSixSecTextureSpriteName, PlayerSixSecTextureHudColour) ENDIF ELSE DRAW_2D_SPRITE_FROM_POWERUP_DATA(aPowerupSix, PlayerSixXPIconSprite, PlayerSixSecXPIconSprite, tlPlayerSixTextureDictName, tlPlayerSixTextureSpriteName, PlayerSixTextureHudColour, tlPlayerSixSecTextureDictName, tlPlayerSixSecTextureSpriteName, PlayerSixSecTextureHudColour) ENDIF ENDIF RESET_GFX_TIMERS_DRAW_ORDER() ENDIF ENDPROC PROC ACTUALLY_DRAW_GENERAL_SIX_ICON_BAR(INT idx, HUD_COLOURS TitleColour, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, PLAYER_INDEX pPlayerSix = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupSix = ACTIVITY_POWERUP_NONE, BOOL bFlashIconOne = FALSE, BOOL bFlashIconTwo = FALSE, BOOL bFlashIconThree = FALSE, BOOL bFlashIconFour = FALSE, BOOL bFlashIconFive = FALSE, BOOL bFlashIconSix = FALSE, INT iFlashTime = -1) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SIX_ICON_BAR, idx) TEXT_STYLE TitleStyle, NumberStyle TEXT_PLACEMENT TitlePlacement, NumberPlace DRAW_GENERAL_SIX_ICON_BAR_GUTS(idx, TitleStyle, NumberStyle, TitlePlacement, NumberPlace, TitleColour, UIELEMENTS_BOTTOMRIGHT, pPlayerOne, pPlayerTwo, pPlayerThree, pPlayerFour, pPlayerFive, pPlayerSix, aPowerupOne, aPowerupTwo, aPowerupThree, aPowerupFour, aPowerupFive, aPowerupSix, bFlashIconOne, bFlashIconTwo, bFlashIconThree, bFlashIconFour, bFlashIconFive, bFlashIconSix, iFlashTime) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL() NET_PRINT("ACTUALLY_DRAW_GENERAL_SIX_ICON_BAR index = ") NET_PRINT_INT(idx) ENDIF #ENDIF ENDIF ENDPROC PROC ACTUALLY_DRAW_DOUBLE_TEXT_BAR(INT idx, STRING sTitleLeft, STRING sTitleRight, BOOL bTextLeftLiteral, BOOL bTextRightLiteral, HUD_COLOURS eColour, BOOL bCustomFont, TEXT_FONTS eCustomFont) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_TEXT, idx) TEXT_STYLE TitleStyle, NumberStyle TEXT_PLACEMENT TitlePlace, NumberPlace DRAW_GENERAL_SINGLE_SCORE_GUTS(idx, TitleStyle, NumberStyle, TitlePlace, NumberPlace, 0, UIELEMENTS_BOTTOMRIGHT, sTitleLeft, eColour, 0, 0, bTextLeftLiteral, "", FALSE, 0.0, HUDFLASHING_NONE, 0, eColour, FALSE, 0, FALSE, ACTIVITY_POWERUP_NONE, HUD_COUNTER_STYLE_DEFAULT, sTitleRight, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, TRUE, bTextRightLiteral, bCustomFont, eCustomFont) #IF IS_DEBUG_BUILD IF g_DisplayTimersDisplaying NET_NL()NET_PRINT("ACTUALLY_DRAW_DOUBLE_TEXT_BAR index = ")NET_PRINT_INT(idx) ENDIF #ENDIF ENDIF ENDPROC //PROC SET_TITLE_JUSTIFICATION_SCORE(INT Number, STRING NumberString) // // IF Number > 999999999 // MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE // ELIF Number > 9999999 // IF COMPARE_STRINGS(NumberString, "HUD_CASH") = 0 // OR COMPARE_STRINGS(NumberString, "HUD_CASH_NEG") = 0 // MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE // ENDIF // ELIF Number > 99999 // MPGlobalsScoreHud.bTitleMiddleJustified = TRUE // ELIF Number > 999 // IF COMPARE_STRINGS(NumberString, "HUD_CASH") = 0 // OR COMPARE_STRINGS(NumberString, "HUD_CASH_NEG") = 0 // MPGlobalsScoreHud.bTitleMiddleJustified = TRUE // ENDIF // ENDIF // //ENDPROC /// PURPOSE: /// Displays a timer in the lower right hand corner of the screen with the label "TimeTitle" /// PARAMS: /// TimeRunner - Multiply your time in seconds by 1000. /// TimeTitle - The name for your clock, from the string tables /// ExtraTimeGiven - /// TimerStyle - /// iFlashingTime - /// MedalDisplay - /// WhichOrder - /// isPlayer - /// aColour - PROC DRAW_GENERIC_TIMER(INT TimeRunner, STRING TimeTitle, INT ExtraTimeGiven = 0, TIMER_STYLE TimerStyle = TIMER_STYLE_DONTUSEMILLISECONDS, INT iFlashingTime = -1, PODIUMPOS MedalDisplay = PODIUMPOS_NONE, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, HUD_COLOURS aColour = HUD_COLOUR_WHITE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, BOOL bDisplayAsDashes = FALSE, HUD_COLOURS TitleColour = HUD_COLOUR_PURE_WHITE, BOOL bIsLiteralTitle = FALSE ,HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, ACTIVITY_POWERUP ePowerup = ACTIVITY_POWERUP_NONE, BOOL bHideUnusedZeros = FALSE, INT iTextLabelSubInt = -1) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_TIMER, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_TIMER, FreeIndex) MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_Timer[FreeIndex] = TimeRunner MPGlobalsScoreHud.ElementHud_TIMER.sGenericTimer_TimerTitle[FreeIndex] = TimeTitle MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtraTime[FreeIndex] = ExtraTimeGiven MPGlobalsScoreHud.ElementHud_TIMER.bGenericTimer_TimerStyle[FreeIndex] = TimerStyle MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_MedalDisplay[FreeIndex] = MedalDisplay MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_Colour[FreeIndex] = aColour MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bDisplayAsDashes[FreeIndex] = bDisplayAsDashes MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_TitleColour[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bIsLiteral[FreeIndex] = bIsLiteralTitle MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_Powerup[FreeIndex] = ePowerup MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bHideUnusedZeros[FreeIndex] = bHideUnusedZeros MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_TitleNumber[FreeIndex] = iTextLabelSubInt ENDIF ENDPROC PROC DRAW_GENERIC_BIG_NUMBER(INT Number, STRING NumberTitle, INT iFlashingTime = -1, HUD_COLOURS aColour = HUD_COLOUR_WHITE, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, STRING NumberString = NULL, HUD_COLOURS TitleColour = HUD_COLOUR_WHITE, BOOL bDrawInfinity = FALSE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, BOOL bEnablePulsing = FALSE, HUD_COLOURS PulseToColour = HUD_COLOUR_PURE_WHITE, INT iPulseTime = -1) IF IS_STRING_EMPTY_HUD(NumberString) NumberString = "NUMBER" ENDIF INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SINGLE_NUMBER, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SINGLE_NUMBER, FreeIndex) MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_NumberTitle[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_Colour[FreeIndex] = aColour MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_NumberString[FreeIndex] = NumberString MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_TitleColour[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_SINGLENUMBER.bGenericNumber_DrawInfinity[FreeIndex] = bDrawInfinity MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_EnablePulsing[FreeIndex] = bEnablePulsing MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_PulseColour[FreeIndex] = PulseToColour MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_PulseTime[FreeIndex] = iPulseTime // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_BIG_NUMBER Index = -1 NOT DRAWING THE BIG NUMBER") ENDIF ENDPROC PROC DRAW_GENERIC_BIG_RACE_POSITION(INT iRacePosition, HUD_COLOURS eRacePositionHUDColour, HUDORDER WhichOrder = HUDORDER_DONTCARE) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_BIG_RACE_POSITION, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_BIG_RACE_POSITION, FreeIndex) MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_iRacePosition[FreeIndex] = iRacePosition MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_eRacePositionHUDColour[FreeIndex] = eRacePositionHUDColour MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_HUDOrder[FreeIndex] = WhichOrder ENDIF ENDPROC PROC DRAW_GENERIC_FOUR_ICON_BAR(HUD_COLOURS TitleColour, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL bFlashIconOne = FALSE, BOOL bFlashIconTwo = FALSE, BOOL bFlashIconThree = FALSE, BOOL bFlashIconFour = FALSE, INT iFlashTime = -1) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_FOUR_ICON_BAR, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_FOUR_ICON_BAR, FreeIndex) MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_TitleColour[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerOne[FreeIndex] = pPlayerOne MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerTwo[FreeIndex] = pPlayerTwo MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerThree[FreeIndex] = pPlayerThree MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerFour[FreeIndex] = pPlayerFour MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupOne[FreeIndex] = aPowerupOne MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupTwo[FreeIndex] = aPowerupTwo MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupThree[FreeIndex] = aPowerupThree MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupFour[FreeIndex] = aPowerupFour MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconOne[FreeIndex] = bFlashIconOne MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconTwo[FreeIndex] = bFlashIconTwo MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconThree[FreeIndex] = bFlashIconThree MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconFour[FreeIndex] = bFlashIconFour MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_iFlashTime[FreeIndex] = iFlashTime ENDIF ENDPROC PROC DRAW_GENERIC_FIVE_ICON_SCORE_BAR(INT Number, FLOAT FloatValue, STRING NumberString, BOOL isFloat, INT MaXNumber, BOOL DrawInfinity, HUD_COLOURS TitleColour, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE, HUDORDER WhichOrder = HUDORDER_DONTCARE, PLAYER_INDEX pPlayerToHighlight = NULL, BOOL bEnablePlayerHighlight = FALSE, HUD_COLOURS ePowerupOneColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupTwoColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupThreeColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupFourColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS ePowerupFiveColour = HUD_COLOUR_PURE_WHITE, INT iInstanceToHighlight = 0, BOOL bPulseHighlight = FALSE, INT iPulseTime = 9999999, PLAYER_INDEX pAvatarToFlash = NULL, BOOL bFlashAvatar = FALSE, INT iAvatarFlashTime = 9999999, INT iAvatarSlotToFlash = 0) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_FIVE_ICON_SCORE_BAR, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_FIVE_ICON_SCORE_BAR, FreeIndex) MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_MaXNumber[FreeIndex] = MaXNumber MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_FloatValue[FreeIndex] = FloatValue MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_NumberString[FreeIndex] = NumberString MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_isFloat[FreeIndex] = isFloat MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_DrawInfinity[FreeIndex] = DrawInfinity MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_TitleColour[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerOne[FreeIndex] = pPlayerOne MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerTwo[FreeIndex] = pPlayerTwo MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerThree[FreeIndex] = pPlayerThree MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerFour[FreeIndex] = pPlayerFour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerFive[FreeIndex] = pPlayerFive MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupOne[FreeIndex] = aPowerupOne MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupTwo[FreeIndex] = aPowerupTwo MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupThree[FreeIndex] = aPowerupThree MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupFour[FreeIndex] = aPowerupFour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupFive[FreeIndex] = aPowerupFive MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerToHighlight[FreeIndex] = pPlayerToHighlight MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bEnablePlayerHighlight[FreeIndex] = bEnablePlayerHighlight MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupOneColour[FreeIndex] = ePowerupOneColour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupTwoColour[FreeIndex] = ePowerupTwoColour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupThreeColour[FreeIndex] = ePowerupThreeColour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupFourColour[FreeIndex] = ePowerupFourColour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupFiveColour[FreeIndex] = ePowerupFiveColour MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iInstanceToHighlight[FreeIndex] = iInstanceToHighlight MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bPulseHighlight[FreeIndex] = bPulseHighlight MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iPulseTime[FreeIndex] = iPulseTime MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pAvatarToFlash[FreeIndex] = pAvatarToFlash MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bFlashAvatar[FreeIndex] = bFlashAvatar MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iAvatarFlashTime[FreeIndex] = iAvatarFlashTime MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iAvatarSlotToFlash[FreeIndex] = iAvatarSlotToFlash ENDIF ENDPROC PROC DRAW_GENERIC_SIX_ICON_BAR(HUD_COLOURS TitleColour, PLAYER_INDEX pPlayerOne = NULL, PLAYER_INDEX pPlayerTwo = NULL, PLAYER_INDEX pPlayerThree = NULL, PLAYER_INDEX pPlayerFour = NULL, PLAYER_INDEX pPlayerFive = NULL, PLAYER_INDEX pPlayerSix = NULL, ACTIVITY_POWERUP aPowerupOne = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupTwo = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupThree = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFour = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupFive = ACTIVITY_POWERUP_NONE, ACTIVITY_POWERUP aPowerupSix = ACTIVITY_POWERUP_NONE, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL bFlashIconOne = FALSE, BOOL bFlashIconTwo = FALSE, BOOL bFlashIconThree = FALSE, BOOL bFlashIconFour = FALSE, BOOL bFlashIconFive = FALSE, BOOL bFlashIconSix = FALSE, INT iFlashTime = -1) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT - 1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SIX_ICON_BAR, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SIX_ICON_BAR, FreeIndex) MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_TitleColour[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerOne[FreeIndex] = pPlayerOne MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerTwo[FreeIndex] = pPlayerTwo MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerThree[FreeIndex] = pPlayerThree MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerFour[FreeIndex] = pPlayerFour MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerFive[FreeIndex] = pPlayerFive MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerSix[FreeIndex] = pPlayerSix MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupOne[FreeIndex] = aPowerupOne MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupTwo[FreeIndex] = aPowerupTwo MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupThree[FreeIndex] = aPowerupThree MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupFour[FreeIndex] = aPowerupFour MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupFive[FreeIndex] = aPowerupFive MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupSix[FreeIndex] = aPowerupSix MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconOne[FreeIndex] = bFlashIconOne MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconTwo[FreeIndex] = bFlashIconTwo MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconThree[FreeIndex] = bFlashIconThree MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconFour[FreeIndex] = bFlashIconFour MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconFive[FreeIndex] = bFlashIconFive MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconSix[FreeIndex] = bFlashIconSix MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_iFlashTime[FreeIndex] = iFlashTime ENDIF ENDPROC PROC DRAW_GENERIC_SCORE(INT Number, STRING NumberTitle, INT iFlashingTime = -1, HUD_COLOURS aColour = HUD_COLOUR_WHITE, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, STRING NumberString = NULL, BOOL isFloat = FALSE, FLOAT FloatValue = 0.0, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, HUD_COLOURS TitleColour = HUD_COLOUR_PURE_WHITE, BOOL DisplayWarning = FALSE, INT MaxNumber = 0 , BOOL DrawInfinity = FALSE, ACTIVITY_POWERUP aPowerup = ACTIVITY_POWERUP_NONE, HUD_COUNTER_STYLE eCounterStyle = HUD_COUNTER_STYLE_DEFAULT, BOOL bIsLiteralTitle = FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, INT iAlpha = 255, BOOL bDisplayBlankScore = FALSE, PLAYER_INDEX pPlayerID = NULL, BOOL bFlashTitle = FALSE, BOOL bDrawLineUnderName = FALSE, HUD_COLOURS LineUnderNameColour = HUD_COLOUR_WHITE, INT iTextLabelSubInt = -1) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SCORE, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SCORE, FreeIndex) MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_SCORE.sGenericScore_Title[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Colour[FreeIndex] = aColour MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_SCORE.sGenericScore_NumberString[FreeIndex] = NumberString MPGlobalsScoreHud.ElementHud_SCORE.bGenericScore_isFloat[FreeIndex] = isFloat MPGlobalsScoreHud.ElementHud_SCORE.bGenericScore_FloatValue[FreeIndex] = FloatValue MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_TitleColour[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_DisplayWarning[FreeIndex] = DisplayWarning MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_MaxNumber[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_DrawInfinity[FreeIndex] = DrawInfinity MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Powerup[FreeIndex] = aPowerup MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Style[FreeIndex] = eCounterStyle MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bIsLiteralTitle[FreeIndex] = bIsLiteralTitle MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_iAlpha[FreeIndex] = iAlpha MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bDisplayBlankScore[FreeIndex] = bDisplayBlankScore MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_pPlayerID[FreeIndex] = pPlayerID MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bFlashTitle[FreeIndex] = bFlashTitle MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bDrawLineUnderName[FreeIndex] = bDrawLineUnderName MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_LineUnderNameColour[FreeIndex] = LineUnderNameColour MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_TitleNumber[FreeIndex] = iTextLabelSubInt // SET_TITLE_JUSTIFICATION_SCORE(Number) #IF USE_TU_CHANGES IF aPowerup = ACTIVITY_POWERUP_XP AND IS_LANGUAGE_NON_ROMANIC() MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE ENDIF IF IS_PC_VERSION() bool bProblematicResolution = false int resX, resY GET_ACTUAL_SCREEN_RESOLUTION(resX,resY) if resX = 1280 and resY >= 960 bProblematicResolution = true endif IF Number > 99999999 MPGlobalsScoreHud.bTitleInsanePlusLeftJustified = TRUE ELIF Number > 9999999 or bProblematicResolution MPGlobalsScoreHud.bTitleInsaneLeftJustified = TRUE ELIF Number > 999 // Changed to move text left after $999, not $99,999 due to over lap in B*2312515 MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE ENDIF IF IS_SCREEN_NARROW() MPGlobalsScoreHud.bTitleInsanePlusLeftJustified = TRUE ENDIF ENDIF #ENDIF // USE_TU_CHANGES // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_SCORE Index = -1 NOT DRAWING THE SCORE") ENDIF ENDPROC PROC DRAW_GENERIC_BIG_DOUBLE_NUMBER(INT Number, INT MaxNumber, STRING NumberTitle, INT iFlashingTime = -1, HUD_COLOURS aColour = HUD_COLOUR_WHITE, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, BOOL bDisplayWarning = FALSE, BOOL bUseNonPlayerFont = FALSE, HUD_COLOURS TitleColour = HUD_COLOUR_WHITE, BOOL bAdjustTitleWithNumIncrease = TRUE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, INT iAlpha = 255, BOOL bFlashTitle = FALSE) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_NUMBER, FreeIndex) MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_NumberTwo[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.sGenericDoubleNumber_Title[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_COLOUR[FreeIndex] = aColour MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bDisplayWarning[FreeIndex] = bDisplayWarning MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bUseNonPlayerFont[FreeIndex] = bUseNonPlayerFont MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_TitleCOLOUR[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_iAlpha[FreeIndex] = iAlpha MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bFlashTitle[FreeIndex] = bFlashTitle IF Number > 9 AND MaxNumber > 9 AND IS_PC_VERSION() AND bAdjustTitleWithNumIncrease MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE ENDIF // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_BIG_DOUBLE_NUMBER Index = -1 NOT DRAWING THE NUMBER") ENDIF ENDPROC PROC DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(INT Number, INT MaxNumber, STRING NumberTitle, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT iFlashingTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, HUD_COLOURS TitleColour = HUD_COLOUR_WHITE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, BOOL bCustomFont = FALSE, TEXT_FONTS eCustomFont = FONT_STANDARD) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_NUMBER_PLACE, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_NUMBER_PLACE, FreeIndex) MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_NumberTwo[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.sGenericDoubleNumberPlace_Title[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_COLOUR[FreeIndex] = PlacementColour MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_TitleCOLOUR[FreeIndex] = TitleColour MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_bCustomFont[FreeIndex] = bCustomFont MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_eCustomFont[FreeIndex] = eCustomFont // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE Index = -1 NOT DRAWING THE NUMBER PLACE") ENDIF ENDPROC PROC DRAW_GENERIC_DOUBLE_TEXT(STRING sTitleLeft, STRING sTitleRight, BOOL bTitleLeftLiteral, BOOL bTitleRightLiteral, HUDORDER eWhichOrder = HUDORDER_DONTCARE, HUD_COLOURS eTitleColour = HUD_COLOUR_WHITE, BOOL bCustomFont = FALSE, TEXT_FONTS eCustomFont = FONT_STANDARD) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_DOUBLE_TEXT, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_DOUBLE_TEXT, FreeIndex) MPGlobalsScoreHud.ElementHud_DOUBLETEXT.sGenericDoubleText_TitleLeft[FreeIndex] = sTitleLeft MPGlobalsScoreHud.ElementHud_DOUBLETEXT.sGenericDoubleText_TitleRight[FreeIndex] = sTitleRight MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bTitleLeftLiteral[FreeIndex] = bTitleLeftLiteral MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bTitleRightLiteral[FreeIndex] = bTitleRightLiteral MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_HUDOrder[FreeIndex] = eWhichOrder MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_TitleCOLOUR[FreeIndex] = eTitleColour MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bCustomFont[FreeIndex] = bCustomFont MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_eCustomFont[FreeIndex] = eCustomFont ENDIF ENDPROC PROC DRAW_GENERIC_CHECKPOINT(INT Number, INT MaxNumber, STRING NumberTitle, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT TitleNumber = -1, INT iFlashingTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, FLOAT XPos = -1.0, FLOAT YPos = -1.0, BOOL isPlayer = FALSE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, INT InBuiltMultiplyer = 0 #IF USE_TU_CHANGES , BOOL DrawCross0 = FALSE, BOOL DrawCross1 = FALSE, BOOL DrawCross2 = FALSE, BOOL DrawCross3 = FALSE, BOOL DrawCross4 = FALSE, BOOL DrawCross5 = FALSE, BOOL DrawCross6 = FALSE, BOOL DrawCross7 = FALSE #ENDIF, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_CHECKPOINT, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_CHECKPOINT, FreeIndex) MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_MaxNumber[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_CHECKPOINT.sGenericCheckpoint_Title[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_Colour[FreeIndex] = PlacementColour MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_iInBuiltMultiplyer[FreeIndex] = InBuiltMultiplyer MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_TitleNumber[FreeIndex] = TitleNumber MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FreeRoamPos[FreeIndex].x = XPos MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FreeRoamPos[FreeIndex].y = YPos MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_bIsPlayer[FreeIndex] = isPlayer #IF USE_TU_CHANGES GenericCheckpoint_Cross0[FreeIndex] = DrawCross0 GenericCheckpoint_Cross1[FreeIndex] = DrawCross1 GenericCheckpoint_Cross2[FreeIndex] = DrawCross2 GenericCheckpoint_Cross3[FreeIndex] = DrawCross3 GenericCheckpoint_Cross4[FreeIndex] = DrawCross4 GenericCheckpoint_Cross5[FreeIndex] = DrawCross5 GenericCheckpoint_Cross6[FreeIndex] = DrawCross6 GenericCheckpoint_Cross7[FreeIndex] = DrawCross7 #ENDIF MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_CHECKPOINT Index = -1 NOT DRAWING THE CHECKPOINT") ENDIF ENDPROC PROC DRAW_GENERIC_METER(INT Number, INT MaxNumber, STRING NumberTitle, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT iFlashingTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, FLOAT XPos = -1.0, FLOAT YPos = -1.0, BOOL isPlayer = FALSE, BOOL OnlyZeroIsEmpty = TRUE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, BOOL bUseBigMeter = FALSE, INT iDrawRedDangerZonePercent = 0, BOOL isLiteralString=FALSE, PERCENTAGE_METER_LINE PercentageLine = PERCENTAGE_METER_LINE_NONE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TextColour = HUD_COLOUR_WHITE, BOOL bDrawLineUnderName = FALSE, HUD_COLOURS LineUnderNameColour = HUD_COLOUR_WHITE, BOOL MakeBarUrgent = FALSE, INT iUrgentPercentage = 0, HUD_COLOURS PulseToColour = HUD_COLOUR_WHITE, INT iPulseTime = -1, BOOL bUseScoreTitle = FALSE, INT iTextLabelSubInt = -1, FLOAT fNumber = -1.0, FLOAT fMaxNumber = -1.0, BOOL bUseSecondaryBar = FALSE, HUD_COLOURS eSecondaryBarColour = HUD_COLOUR_WHITE, FLOAT fSecondaryBarPercentage = 0.0, BOOL bTransparentSecBarIntersectingMainBar = FALSE, HUD_COLOURS eSecBarPulseToColour = HUD_COLOUR_WHITE, INT iSecBarPulseTime = -1, FLOAT fSecBarStartPercentage = 0.0, INT iGFXDrawOrder = -1, BOOL bCapMaxPercentage = TRUE) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_METER, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_METER, FreeIndex) MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_MaxNumber[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_METER.sGenericMeter_Title[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_METER.GenericMeter_Colour[FreeIndex] = PlacementColour MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_METER.GenericMeter_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FreeRoamPos[FreeIndex].x = XPos MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FreeRoamPos[FreeIndex].y = YPos MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bOnlyZeroIsEmpty[FreeIndex] = OnlyZeroIsEmpty MPGlobalsScoreHud.ElementHud_METER.GenericMeter_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_METER.GenericMeter_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bBigMeter[FreeIndex] = bUseBigMeter MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iDrawRedDangerZonePercent[FreeIndex] = iDrawRedDangerZonePercent MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bIsLiteralString[FreeIndex] = isLiteralString MPGlobalsScoreHud.ElementHud_METER.GenericMeter_PercentageLine[FreeIndex] = PercentageLine MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_METER.GenericMeter_TextColour[FreeIndex] = TextColour MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bDrawLineUnderName[FreeIndex] = bDrawLineUnderName MPGlobalsScoreHud.ElementHud_METER.GenericMeter_LineUnderNameColour[FreeIndex] = LineUnderNameColour MPGlobalsScoreHud.ElementHud_METER.GenericMeter_MakeBarUrgent[FreeIndex] = MakeBarUrgent MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iUrgentPercentage[FreeIndex] = iUrgentPercentage MPGlobalsScoreHud.ElementHud_METER.PulseToColour[FreeIndex] = PulseToColour MPGlobalsScoreHud.ElementHud_METER.iPulseTime[FreeIndex] = iPulseTime MPGlobalsScoreHud.ElementHud_METER.bUseScoreTitle[FreeIndex] = bUseScoreTitle MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_TitleNumber[FreeIndex] = iTextLabelSubInt MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fNumber[FreeIndex] = fNumber MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fMaxNumber[FreeIndex] = fMaxNumber MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bUseSecondaryBar[FreeIndex] = bUseSecondaryBar MPGlobalsScoreHud.ElementHud_METER.GenericMeter_eSecondaryBarColour[FreeIndex] = eSecondaryBarColour MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fSecondaryBarPercentage[FreeIndex] = fSecondaryBarPercentage MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bTransparentSecBarIntersectingMainBar[FreeIndex] = bTransparentSecBarIntersectingMainBar MPGlobalsScoreHud.ElementHud_METER.GenericMeter_eSecBarPulseToColour[FreeIndex] = eSecBarPulseToColour MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iSecBarPulseTime[FreeIndex] = iSecBarPulseTime MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fSecBarStartPercentage[FreeIndex] = fSecBarStartPercentage MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iGFXDrawOrder[FreeIndex] = iGFXDrawOrder MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bCapMaxPercentage[FreeIndex] = bCapMaxPercentage ELSE #IF IS_DEBUG_BUILD NET_NL()NET_PRINT("DRAW_GENERIC_METER Index = -1 NOT DRAWING THE METER") #ENDIF ENDIF ENDPROC PROC DRAW_LOOT_BAG_UI(LOOT_BAG_UI_DATA data) IF data.iItems <= 0 SCRIPT_ASSERT("DRAW_LOOT_BAG_UI - Invalid number of items passed.") EXIT ENDIF INT i FLOAT fPercentageCount = data.fSpaceFilledPercent FOR i = (data.iItems - 1) TO 0 STEP -1 fPercentageCount -= data.element[i].fSpaceUsedPerecnt IF data.element[i].fSpaceUsedPerecnt = 100 DRAW_GENERIC_METER(0, 100, data.element[i].sLabel, HUD_COLOUR_WHITE, DEFAULT, data.element[i].eHUDOrder, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, HUD_COLOUR_GREY, DEFAULT, DEFAULT, DEFAULT, DEFAULT, HUD_COLOUR_REDDARK, DEFAULT, DEFAULT, DEFAULT, data.fSpaceFilledPercent, DEFAULT, TRUE, HUD_COLOUR_WHITE, data.element[i].fSpaceUsedPerecnt, TRUE, HUD_COLOUR_GREYDARK, DEFAULT, fPercentageCount) ELSE DRAW_GENERIC_METER(0, 100, data.element[i].sLabel, HUD_COLOUR_GREY, DEFAULT, data.element[i].eHUDOrder, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, HUD_COLOUR_GREY, DEFAULT, DEFAULT, DEFAULT, DEFAULT, HUD_COLOUR_REDDARK, DEFAULT, DEFAULT, DEFAULT, data.fSpaceFilledPercent, DEFAULT, TRUE, HUD_COLOUR_WHITE, data.element[i].fSpaceUsedPerecnt, TRUE, HUD_COLOUR_GREYDARK, DEFAULT, fPercentageCount) ENDIF ENDFOR DRAW_GENERIC_METER(0, 100, data.sBagLabel, HUD_COLOUR_WHITE, DEFAULT, data.eBagHUDOrder, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, HUD_COLOUR_REDDARK, DEFAULT, DEFAULT, DEFAULT, data.fSpaceFilledPercent, DEFAULT, TRUE, HUD_COLOUR_WHITE, 0, TRUE, HUD_COLOUR_GREYDARK, DEFAULT, 0.0) #IF IS_DEBUG_BUILD IF fPercentageCount != 0.0 SCRIPT_ASSERT("DRAW_LOOT_BAG_UI - Items space used does not match total space used in loot bag") ENDIF #ENDIF ENDPROC PROC DRAW_GENERIC_SPRITE_METER(INT Number, INT MaxNumber, STRING NumberTitle, STRING SpriteName, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT iFlashingTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, BOOL OnlyZeroIsEmpty = TRUE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, BOOL isLiteralString=FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TextColour = HUD_COLOUR_WHITE) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_SPRITE_METER, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_SPRITE_METER, FreeIndex) MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_Number[FreeIndex] = Number MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_MaxNumber[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_SPRITEMETER.sGenericMeter_Title[FreeIndex] = NumberTitle MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_Colour[FreeIndex] = PlacementColour MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_FlashTimer[FreeIndex] = iFlashingTime MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bOnlyZeroIsEmpty[FreeIndex] = OnlyZeroIsEmpty MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bIsLiteralString[FreeIndex] = isLiteralString MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_FleckColour[FreeIndex] = FleckColour MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_TextColour[FreeIndex] = TextColour MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_SpriteName[FreeIndex] = SpriteName // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_SPRITE_METER Index = -1 NOT DRAWING THE METER") ENDIF ENDPROC PROC DRAW_GENERIC_WEAPON_SPRITE_METER(INT Number, INT MaxNumber, STRING NumberTitle, WEAPON_TYPE WeaponType, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT iFlashingTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, BOOL OnlyZeroIsEmpty = TRUE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, BOOL isLiteralString=FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TextColour = HUD_COLOUR_WHITE) MPGlobalsScoreHud.ElementHud_SPRITEMETER.sGenericMeter_DictionaryName = "MPKillQuota" DRAW_GENERIC_SPRITE_METER(Number, MaxNumber, NumberTitle, GET_WEAPONTYPE_TEXTURE(WeaponType), PlacementColour, iFlashingTime, WhichOrder, isPlayer, OnlyZeroIsEmpty, ColourFlashType, ColourFlash, isLiteralString, FleckColour, TextColour) ENDPROC PROC DRAW_GENERIC_MODEL_SPRITE_METER(INT Number, INT MaxNumber, STRING NumberTitle, MODEL_NAMES modelName, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT iFlashingTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, BOOL isPlayer = FALSE, BOOL OnlyZeroIsEmpty = TRUE, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, BOOL isLiteralString=FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TextColour = HUD_COLOUR_WHITE) MPGlobalsScoreHud.ElementHud_SPRITEMETER.sGenericMeter_DictionaryName = "MPAirCraft" PRINTLN("DRAW_GENERIC_MODEL_SPRITE_METER - modelName = ", GET_MODELNAME_TEXTURE(modelName)) DRAW_GENERIC_SPRITE_METER(Number, MaxNumber, NumberTitle, GET_MODELNAME_TEXTURE(modelName), PlacementColour, iFlashingTime, WhichOrder, isPlayer, OnlyZeroIsEmpty, ColourFlashType, ColourFlash, isLiteralString, FleckColour, TextColour) ENDPROC PROC DRAW_GENERIC_ELIMINATION(INT MaxNumber, STRING Title = NULL, INT VisibleBoxes = -1, BOOL IsActive1 = FALSE, BOOL IsActive2 = FALSE,BOOL IsActive3 = FALSE,BOOL IsActive4 = FALSE, BOOL IsActive5 = FALSE, BOOL IsActive6 = FALSE,BOOL IsActive7 = FALSE,BOOL IsActive8 = FALSE, //11 HUD_COLOURS ColourValid = HUD_COLOUR_GREEN, HUD_COLOURS ColourInValid = HUD_COLOUR_RED, INT FlashTime = -1, HUDORDER WhichOrder = HUDORDER_DONTCARE, FLOAT XPos = -1.0, FLOAT YPos = -1.0, BOOL isPlayer = FALSE, HUD_COLOURS Box1Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box2Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box3Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box4Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box5Colour = HUD_COLOUR_PURE_WHITE, //23 HUD_COLOURS Box6Colour = HUD_COLOUR_PURE_WHITE,HUD_COLOURS Box7Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box8Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box1Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box2Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box3Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box4Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box5Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box6Colour_Inactive = HUD_COLOUR_PURE_WHITE,HUD_COLOURS Box7Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box8Colour_Inactive = HUD_COLOUR_PURE_WHITE, INT ExtendedTimer = -1, HUDFLASHING ColourFlashType = HUDFLASHING_NONE, INT ColourFlash = 0, HUD_COLOURS TitleColour = HUD_COLOUR_PURE_WHITE //38 #IF USE_TU_CHANGES , BOOL DrawCross0 = FALSE,BOOL DrawCross1 = FALSE,BOOL DrawCross2 = FALSE,BOOL DrawCross3 = FALSE,BOOL DrawCross4 = FALSE,BOOL DrawCross5 = FALSE,BOOL DrawCross6 = FALSE,BOOL DrawCross7 = FALSE #ENDIF , BOOL bUseNonPlayerFont = FALSE, HUD_COLOURS FleckColour = HUD_COLOUR_PURE_WHITE #IF USE_TU_CHANGES , HUD_COLOURS DrawCross0Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross1Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross2Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross3Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross4Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross5Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross6Colour = HUD_COLOUR_BLACK, HUD_COLOURS DrawCross7Colour = HUD_COLOUR_BLACK #ENDIF, BOOL bOverrideDontUseFarLeftJustified = FALSE) INT FreeIndex = -1 INT I FOR I = 0 TO MAX_NUMBER_HUD_ELEMENT-1 IF FreeIndex = -1 IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_ELIMINATION, I) = FALSE FreeIndex = I ENDIF ENDIF ENDFOR IF FreeIndex > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_ELIMINATION, FreeIndex) MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_MaxNumber[FreeIndex] = MaxNumber MPGlobalsScoreHud.ElementHud_ELIMINATION.sGenericElimination_Title[FreeIndex] = Title MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_VisibleBoxes[FreeIndex] = VisibleBoxes MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive1[FreeIndex] = IsActive1 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive2[FreeIndex] = IsActive2 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive3[FreeIndex] = IsActive3 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive4[FreeIndex] = IsActive4 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive5[FreeIndex] = IsActive5 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive6[FreeIndex] = IsActive6 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive7[FreeIndex] = IsActive7 MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive8[FreeIndex] = IsActive8 MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFirst[FreeIndex] = ColourValid MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourSecond[FreeIndex] = ColourInValid MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_FlashTimer[FreeIndex] = FlashTime MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_HUDOrder[FreeIndex] = WhichOrder MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FreeRoamPos[FreeIndex].x = XPos MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FreeRoamPos[FreeIndex].y = YPos MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_bIsPlayer[FreeIndex] = isPlayer MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box1Colour[FreeIndex] = Box1Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box2Colour[FreeIndex] = Box2Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box3Colour[FreeIndex] = Box3Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box4Colour[FreeIndex] = Box4Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box5Colour[FreeIndex] = Box5Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box6Colour[FreeIndex] = Box6Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box7Colour[FreeIndex] = Box7Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box8Colour[FreeIndex] = Box8Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box1Colour_InActive[FreeIndex] = Box1Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box2Colour_InActive[FreeIndex] = Box2Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box3Colour_InActive[FreeIndex] = Box3Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box4Colour_InActive[FreeIndex] = Box4Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box5Colour_InActive[FreeIndex] = Box5Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box6Colour_InActive[FreeIndex] = Box6Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box7Colour_InActive[FreeIndex] = Box7Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box8Colour_InActive[FreeIndex] = Box8Colour_Inactive MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_TitleColour[FreeIndex] = TitleColour #IF USE_TU_CHANGES GenericElimination_Cross0[FreeIndex] = DrawCross0 GenericElimination_Cross1[FreeIndex] = DrawCross1 GenericElimination_Cross2[FreeIndex] = DrawCross2 GenericElimination_Cross3[FreeIndex] = DrawCross3 GenericElimination_Cross4[FreeIndex] = DrawCross4 GenericElimination_Cross5[FreeIndex] = DrawCross5 GenericElimination_Cross6[FreeIndex] = DrawCross6 GenericElimination_Cross7[FreeIndex] = DrawCross7 MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross0Colour[FreeIndex] = DrawCross0Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross1Colour[FreeIndex] = DrawCross1Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross2Colour[FreeIndex] = DrawCross2Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross3Colour[FreeIndex] = DrawCross3Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross4Colour[FreeIndex] = DrawCross4Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross5Colour[FreeIndex] = DrawCross5Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross6Colour[FreeIndex] = DrawCross6Colour MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross7Colour[FreeIndex] = DrawCross7Colour #ENDIF IF bOverrideDontUseFarLeftJustified MPGlobalsScoreHud.bTitleFarLeftJustified = FALSE ELSE MPGlobalsScoreHud.bTitleFarLeftJustified = TRUE ENDIF MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_ExtendedTimer[FreeIndex] = ExtendedTimer IF ExtendedTimer > -1 SET_PROGRESSHUD_EXTENDDISPLAY(PROGRESSHUD_ELIMINATION, FreeIndex) ELSE CLEAR_PROGRESSHUD_EXTENDDISPLAY(PROGRESSHUD_ELIMINATION, FreeIndex) ENDIF MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFlashType[FreeIndex] = ColourFlashType MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFlash[FreeIndex] = ColourFlash MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_bUseNonPlayerFont[FreeIndex] = bUseNonPlayerFont MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FleckColour[FreeIndex] = FleckColour // ELSE // NET_NL()NET_PRINT("DRAW_GENERIC_ELIMINATION Index = -1 NOT DRAWING THE ELIMINATION") ENDIF ENDPROC PROC DRAW_GENERIC_WIND_METER(STRING sTitle, INT iWindSpeed, FLOAT fWindDirection, INT iR, INT iG, INT iB, HUDORDER eHUDOrder) INT iFree = -1 INT idx REPEAT MAX_NUMBER_HUD_ELEMENT idx IF (iFree = -1) IF IS_PROGRESSHUD_ACTIVATION_ON_INDEXED(PROGRESSHUD_WINDMETER, idx) = FALSE iFree = idx ENDIF ENDIF ENDREPEAT IF iFree > -1 MPGlobalsScoreHud.isSomethingDisplaying = TRUE SET_PROGRESSHUD_ACTIVATION_ON(PROGRESSHUD_WINDMETER, iFree) MPGlobalsScoreHud.ElementHud_WIND.sGenericMeter_Title[iFree] = sTitle MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_WindSpeed[iFree] = iWindSpeed MPGlobalsScoreHud.ElementHud_WIND.fGenericMeter_Heading[iFree] = fWindDirection MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_RedComponent[iFree] = iR MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_BlueComponent[iFree] = iG MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_GreenComponent[iFree] = iB MPGlobalsScoreHud.ElementHud_WIND.eGenericMeter_HUDOrder[iFree] = eHUDOrder ENDIF ENDPROC /// PURPOSE: /// Draws the hud for the Rampages /// PARAMS: /// Number - The number of kills /// NumberTitle - The Title of the big number of kills. Pass in "" to display KILLS /// TimeRunner - The time displayed on the rampage /// TimeTitle - The title of the timer on the rampage. Pass in "" to display TIME /// ExtraTimeGiven - If the player is given extra time, display how much in Milliseconds /// DisplayMilliseconds - Should the main timer have the milliseconds on show /// iFlashingTime - how long to flash the timer for in milliseconds /// cBigNumColor - the color of the big number it's default is HUD_COLOUR_RED [Brenda I added this param to fix B*848972 - Aaron G] PROC DRAW_RAMPAGE_HUD(INT Number, STRING NumberTitle, INT TimeRunner, STRING TimeTitle, INT ExtraTimeGiven = 0, BOOL DisplayMilliseconds = FALSE, INT iFlashingTime = -1, HUD_COLOURS cBigNumColor = HUD_COLOUR_RED) IF IS_STRING_EMPTY_HUD(TimeTitle) TimeTitle = "TIMER_TIME" ENDIF TIMER_STYLE aTimerStyle IF DisplayMilliseconds = TRUE aTimerStyle = TIMER_STYLE_USEMILLISECONDS ELSE aTimerStyle = TIMER_STYLE_DONTUSEMILLISECONDS ENDIF DRAW_GENERIC_TIMER(TimeRunner, TimeTitle,ExtraTimeGiven, aTimerStyle, iFlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) IF IS_STRING_EMPTY_HUD(NumberTitle) NumberTitle = "TIMER_KILL" ENDIF DRAW_GENERIC_BIG_NUMBER(Number, NumberTitle, iFlashingTime, cBigNumColor, HUDORDER_SECONDBOTTOM) ENDPROC FUNC STRING GET_COMPARISON_STRING(INT iComparison) SWITCH iComparison CASE RACE_SPLIT_COMPARISON_WORLD RETURN "TIMER_WORLDTIME" BREAK CASE RACE_SPLIT_COMPARISON_FRIEND RETURN "FRIEND_WORLDTIME" BREAK CASE RACE_SPLIT_COMPARISON_CREW RETURN "CREW_WORLDTIME" BREAK CASE RACE_SPLIT_COMPARISON_PERSONAL RETURN "PERS_WORLDTIME" BREAK ENDSWITCH RETURN "" ENDFUNC /// PURPOSE: /// Draws the Hud used in a race /// PARAMS: /// RaceTime - The timer /// TimerTitle - The title of the timer. Defaults to TIME with "" passed in /// LapNumber - Number of laps /// LapMaxNumber - Max number of laps /// LapTitle - The title of the lap meter. Defaults to LAP with "" Passed in /// PositionNum - The position Number /// PositionMaxNumber - The position maximum number /// PositionTitle - The title of the position number. Defaults to POSITION with "" Passed in /// ExtraTimeGiven - If any extra time is given to the timer, pass this in to display +xs -xs /// PlacementColour - The position numbers can change colour /// CheckpointNumber - if you have a checkpoint bar the current number /// CheckpointMaxNum - if you have a checkpoint bar, the maximum number /// CheckpointTitle - The title of the checkpoint bar, defaults to CHECKPOINT with "" passed in /// CheckpointColour - the colour the bar should be /// MeterNumber - if you want a meter displayed pass in the current value /// MeterMaxNum - If you want a meter displayed pass in the max value /// MeterTitle - the meters title. Defaults to DAMAGE with "" Passed in /// MeterColour - The meter colour /// BestTime - If you want to show a best time then pass in a millisecond value /// BestTimeTitle - Title of the best time timer. Defaults to BEST TIME with "" passed in /// MedalDisplay - If you want to show a medal postion next to the Best timer then pass in a position. Used for a target times. /// DisplayMilliseconds - True if you want the main timer to display milliseconds /// FlashingTime - How long you want the whole hud to flash for. /// FloatTitle - The title the float score will have /// FloatValue = value the float value will have /// FloatColour - the colour the float value will have PROC DRAW_RACE_HUD(INT RaceTime, STRING TimerTitle, INT LapNumber = -1, INT LapMaxNumber = -1, STRING LapTitle = NULL, INT PositionNum = -1, INT PositionMaxNumber = -1, STRING PositionTitle = NULL, INT ExtraTimeGiven = 0, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT CheckpointNumber = -1, INT CheckpointMaxNum = -1, STRING CheckpointTitle = NULL, HUD_COLOURS CheckpointColour = HUD_COLOUR_YELLOW,INT MeterNumber = -1, INT MeterMaxNum = -1, STRING MeterTitle = NULL, HUD_COLOURS MeterColour = HUD_COLOUR_RED, INT BestTime = -1, STRING BestTimeTitle = NULL, PODIUMPOS MedalDisplay = PODIUMPOS_NONE, BOOL DisplayMilliseconds = TRUE, INT FlashingTime = -1, STRING FloatTitle = NULL, FLOAT FloatValue = -1.0, HUD_COLOURS FloatColour = HUD_COLOUR_WHITE, HUD_COLOURS aBestTimeColor = HUD_COLOUR_WHITE) IF FloatValue > -1 DRAW_GENERIC_SCORE(0, "",FlashingTime, FloatColour, HUDORDER_SEVENTHBOTTOM, FALSE, FloatTitle, TRUE, FloatValue ) ENDIF IF MeterNumber > -1 STRING NewMeterTitle = MeterTitle IF IS_STRING_EMPTY_HUD(NewMeterTitle) NewMeterTitle = "TIM_DAMAGE" ENDIF DRAW_GENERIC_METER(MeterNumber, MeterMaxNum, NewMeterTitle, MeterColour, FlashingTime, HUDORDER_SIXTHBOTTOM, -1, -1, FALSE, TRUE) ENDIF IF CheckpointNumber > -1 STRING NewCheckpointTitle = CheckpointTitle IF IS_STRING_EMPTY_HUD(NewCheckpointTitle) NewCheckpointTitle = "TIM_CHECKPOIN" ENDIF CheckpointColour = CheckpointColour CheckpointMaxNum = CheckpointMaxNum /* DRAW_GENERIC_CHECKPOINT(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, -1, FlashingTime, HUDORDER_FIFTHBOTTOM) */ ENDIF IF PositionNum > -1 STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "TIM_POSIT" ENDIF DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(PositionNum, PositionMaxNumber,NewTitlePos1, PlacementColour, FlashingTime, HUDORDER_SEVENTHBOTTOM) ENDIF IF LapNumber > -1 STRING NewTitle = LapTitle IF IS_STRING_EMPTY_HUD(NewTitle) NewTitle = "TIM_LAP" ENDIF LapNumber = LapNumber LapMaxNumber = LapMaxNumber // IF g_Show_Lap_Dpad DRAW_GENERIC_BIG_DOUBLE_NUMBER(LapNumber, LapMaxNumber,NewTitle, FlashingTime,HUD_COLOUR_WHITE, HUDORDER_SIXTHBOTTOM) // ENDIF ENDIF IF BestTime > -1 STRING NewTimePos1 = BestTimeTitle IF IS_STRING_EMPTY_HUD(NewTimePos1) NewTimePos1 = "TIMER_BESLAP" ENDIF aBestTimeColor = aBestTimeColor MedalDisplay = MedalDisplay /* DRAW_GENERIC_TIMER(BestTime, NewTimePos1,0, TIMER_STYLE_USEMILLISECONDS, FlashingTime, MedalDisplay, HUDORDER_SECONDBOTTOM, FALSE, aBestTimeColor) */ ENDIF STRING NewTimePos = TimerTitle IF IS_STRING_EMPTY_HUD(NewTimePos) NewTimePos = "TIMER_TIME_RCE" ENDIF TIMER_STYLE aTimerStyle IF DisplayMilliseconds aTimerStyle = TIMER_STYLE_USEMILLISECONDS ELSE aTimerStyle = TIMER_STYLE_DONTUSEMILLISECONDS ENDIF DRAW_GENERIC_TIMER(RaceTime, NewTimePos,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDPROC PROC DRAW_GTA_RACE_WEAPON_INFO() STRING title ACTIVITY_POWERUP icon IF g_VehicleSpikeInfo.bIsCollected = TRUE OR g_VehicleRocketInfo.bIsCollected = TRUE OR g_VehicleBoostInfo.bCollected = TRUE IF g_VehicleSpikeInfo.bIsCollected = TRUE title = "HUD_SPIKES" icon = ACTIVITY_POWERUP_SPIKES ELIF g_VehicleRocketInfo.bIsCollected = TRUE SWITCH g_VehicleRocketInfo.eRocketType CASE VEHICLE_ROCKET_NORMAL icon = ACTIVITY_POWERUP_ROCKETS title = "HUD_ROCKET" BREAK CASE VEHICLE_ROCKET_HOMING_ONLY icon = ACTIVITY_POWERUP_HOMING_ROCKETS title = "HUD_ROCKET_H" BREAK CASE VEHICLE_ROCKET_NON_HOMING_ONLY icon = ACTIVITY_POWERUP_ROCKETS title = "HUD_ROCKET_NH" BREAK ENDSWITCH ELIF g_VehicleBoostInfo.bCollected = TRUE title = "HUD_BOOSTS" icon = ACTIVITY_POWERUP_BOOSTS ENDIF DRAW_GENERIC_SCORE(1, title,-1, HUD_COLOUR_WHITE, HUDORDER_THIRDBOTTOM, FALSE, "" , FALSE, 0, HUDFLASHING_NONE, 0, HUD_COLOUR_PURE_WHITE, FALSE, 0, FALSE, icon) ELIF g_VehicleGunInfo.bCollected = TRUE title = "HUD_VEH_GUN" icon = ACTIVITY_POWERUP_BULLET DRAW_GENERIC_SCORE(g_VehicleGunInfo.iBullets, title,-1, HUD_COLOUR_WHITE, HUDORDER_THIRDBOTTOM, FALSE, "" , FALSE, 0, HUDFLASHING_NONE, 0, HUD_COLOUR_PURE_WHITE, FALSE, 0, FALSE, icon) ENDIF ENDPROC //BOOL bUseBestAsWorldBest - Added for CGtoNG Stock Car Races (Country_Race.sc) as they aren't hooked up to leaderboards. url:bugstar:2056620 PROC DRAW_LOOP_RACE_HUD(INT RaceTime, INT iComparison, STRING TimerTitle, INT LapNumber = -1, INT LapMaxNumber = -1, STRING LapTitle = NULL, INT PositionNum = -1, INT PositionMaxNumber = -1, STRING PositionTitle = NULL, INT ExtraTimeGiven = 0, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT CheckpointNumber = -1, INT CheckpointMaxNum = -1, STRING CheckpointTitle = NULL, HUD_COLOURS CheckpointColour = HUD_COLOUR_YELLOW,INT MeterNumber = -1, INT MeterMaxNum = -1, STRING MeterTitle = NULL, HUD_COLOURS MeterColour = HUD_COLOUR_RED, INT BestTime = -1, STRING BestTimeTitle = NULL, INT CurrentLapTime = -1, STRING CurrentLapTimeTitle = NULL, PODIUMPOS MedalDisplay = PODIUMPOS_NONE, BOOL DisplayMilliseconds = TRUE, INT FlashingTime = -1, STRING FloatTitle = NULL, FLOAT FloatValue = -1.0, HUD_COLOURS FloatColour = HUD_COLOUR_WHITE, HUD_COLOURS aBestTimeColor = HUD_COLOUR_WHITE, FLOAT fDistanceCheck = -1.0,INT iWorldBestTime = -1, BOOL bTimeTrialMode = FALSE, INT iCheckPointTime = -1, INT iChallengeTime = -1,STRING sWorldName = NULL, BOOL bUseBestAsWorldBest = FALSE) TIMER_STYLE aTimerStyle IF DisplayMilliseconds aTimerStyle = TIMER_STYLE_USEMILLISECONDS ELSE aTimerStyle = TIMER_STYLE_DONTUSEMILLISECONDS ENDIF IF iChallengeTime <> -1 DRAW_GENERIC_TIMER(iChallengeTime, "TIMER_CHALLTIME",ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_EIGHTHBOTTOM) ENDIF DRAW_GTA_RACE_WEAPON_INFO() IF FloatValue > -1 DRAW_GENERIC_SCORE(0, "",FlashingTime, FloatColour, HUDORDER_EIGHTHBOTTOM, FALSE, FloatTitle, TRUE, FloatValue ) ENDIF IF MeterNumber > -1 STRING NewMeterTitle = MeterTitle IF IS_STRING_EMPTY_HUD(NewMeterTitle) NewMeterTitle = "TIM_DAMAGE" ENDIF DRAW_GENERIC_METER(MeterNumber, MeterMaxNum, NewMeterTitle, MeterColour, FlashingTime, HUDORDER_EIGHTHBOTTOM, -1, -1, FALSE, TRUE) ENDIF IF NOT bTimeTrialMode OR IS_LOCAL_PLAYER_RUNNING_ACTIVITY_TUTORIAL() IF PositionNum > -1 AND PositionMaxNumber > 0 STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "TIM_POSIT" ENDIF // IF IS_LOCAL_PLAYER_RUNNING_ACTIVITY_TUTORIAL() // PositionMaxNumber = PositionMaxNumber+1 //Add one for tutorial to represent Lamar // ENDIF DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(PositionNum, PositionMaxNumber,NewTitlePos1, PlacementColour, FlashingTime, HUDORDER_FIFTHBOTTOM, DEFAULT, DEFAULT, DEFAULT, PlacementColour) ENDIF ENDIF IF LapNumber > -1 STRING NewTitle = LapTitle IF IS_STRING_EMPTY_HUD(NewTitle) NewTitle = "TIM_LAP" ENDIF LapNumber = LapNumber LapMaxNumber = LapMaxNumber IF g_Show_Lap_Dpad // PRINTLN("g_Show_Lap_Dpad =", g_Show_Lap_Dpad) IF CAN_DISPLAY_DPADDOWN_PARTS() DRAW_GENERIC_BIG_DOUBLE_NUMBER(LapNumber, LapMaxNumber,NewTitle, FlashingTime,HUD_COLOUR_WHITE, HUDORDER_SIXTHBOTTOM) ENDIF ENDIF ENDIF IF CheckpointNumber > -1 AND CheckpointMaxNum > -1 STRING NewCheckpointTitle = CheckpointTitle IF IS_STRING_EMPTY_HUD(NewCheckpointTitle) NewCheckpointTitle = "TIM_CHECKPOIN" ENDIF CheckpointColour = CheckpointColour IF g_Show_Lap_Dpad DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, FlashingTime, HUDORDER_FIFTHBOTTOM) ENDIF /* IF CheckpointMaxNum < 8 DRAW_GENERIC_CHECKPOINT(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, -1, FlashingTime, HUDORDER_FIFTHBOTTOM) ELSE ENDIF */ ENDIF IF fDistanceCheck > -1.0 STRING DistanceTitle = "TIM_DISTANCE" STRING NumberString = "FMMC_LENGTHM" DRAW_GENERIC_SCORE(0, DistanceTitle, -1, HUD_COLOUR_WHITE, HUDORDER_FIFTHBOTTOM, FALSE, NumberString, TRUE, fDistanceCheck) ENDIF IF BestTime > -1 STRING NewTimePos1 = BestTimeTitle IF IS_STRING_EMPTY_HUD(NewTimePos1) NewTimePos1 = "TIMER_BESLAP" ENDIF /* DRAW_GENERIC_TIMER(BestTime, NewTimePos1,0, TIMER_STYLE_USEMILLISECONDS, FlashingTime, MedalDisplay, HUDORDER_THIRDBOTTOM, FALSE, aBestTimeColor) */ ENDIF IF g_FMMC_STRUCT.iRaceType != FMMC_RACE_TYPE_P2P AND g_FMMC_STRUCT.iRaceType != FMMC_RACE_TYPE_BOAT_P2P AND g_FMMC_STRUCT.iRaceType != FMMC_RACE_TYPE_AIR_P2P AND g_FMMC_STRUCT.iRaceType != FMMC_RACE_TYPE_STUNT_P2P AND g_FMMC_STRUCT.iRaceType != FMMC_RACE_TYPE_TARGET_P2P IF CurrentLapTime > -1 IF NOT IS_PLAYER_SPECTATING(PLAYER_ID()) STRING NewTimePos1 = CurrentLapTimeTitle IF IS_STRING_EMPTY_HUD(NewTimePos1) NewTimePos1 = "TIMER_CURLAP" ENDIF DRAW_GENERIC_TIMER(CurrentLapTime, NewTimePos1,0, TIMER_STYLE_USEMILLISECONDS, FlashingTime, MedalDisplay, HUDORDER_FOURTHBOTTOM, FALSE, aBestTimeColor) ENDIF ENDIF ENDIF STRING WorldBeatTime IF IS_STRING_EMPTY_HUD(WorldBeatTime) WorldBeatTime = GET_COMPARISON_STRING(iComparison) ENDIF //Displays words best time IF NOT bUseBestAsWorldBest IF bTimeTrialMode //This is time trial OR g_Show_Lap_Dpad OR GET_DPADDOWN_ACTIVATION_STATE() = DPADDOWN_SECOND IF bTimeTrialMode IF g_Show_Lap_Dpad AND NOT IS_STRING_NULL_OR_EMPTY(sWorldName) // PRINTLN("3663830, A iWorldBestTime = ", iWorldBestTime) DRAW_GENERIC_TIMER(iWorldBestTime, sWorldName,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM,TRUE, DEFAULT, DEFAULT, DEFAULT, (iWorldBestTime <= 0)) ELSE IF iWorldBestTime <= 0 // PRINTLN("3663830, B iWorldBestTime = ", iWorldBestTime) DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM,FALSE,HUD_COLOUR_WHITE,HUDFLASHING_NONE,0,TRUE) ELSE // PRINTLN("3663830, C iWorldBestTime = ", iWorldBestTime) DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM) ENDIF ENDIF ELSE IF GET_DPADDOWN_ACTIVATION_STATE() = DPADDOWN_SECOND AND NOT IS_STRING_NULL_OR_EMPTY(sWorldName) // PRINTLN("3663830, D iWorldBestTime = ", iWorldBestTime) DRAW_GENERIC_TIMER(iWorldBestTime, sWorldName,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM,TRUE, DEFAULT, DEFAULT, DEFAULT, (iWorldBestTime <= 0)) ELSE IF iWorldBestTime <= 0 // PRINTLN("3663830, E iWorldBestTime = ", iWorldBestTime) DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM,FALSE,HUD_COLOUR_WHITE,HUDFLASHING_NONE,0,TRUE) ELSE // PRINTLN("3663830, F iWorldBestTime = ", iWorldBestTime) DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM) ENDIF ENDIF ENDIF ENDIF ELSE //url:bugstar:2056620 IF g_Show_Lap_Dpad OR GET_DPADDOWN_ACTIVATION_STATE() = DPADDOWN_SECOND IF BestTime <= 0 DRAW_GENERIC_TIMER(BestTime, BestTimeTitle,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM,FALSE,HUD_COLOUR_WHITE,HUDFLASHING_NONE,0,TRUE) ELSE DRAW_GENERIC_TIMER(BestTime, BestTimeTitle,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM) ENDIF ENDIF ENDIF STRING NewTimePos = TimerTitle IF IS_STRING_EMPTY_HUD(NewTimePos) NewTimePos = "TIMER_TIME_RCE" ENDIF //Used for main race time IF RaceTime > -1 DRAW_GENERIC_TIMER(RaceTime, NewTimePos,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM) ENDIF STRING TimeDifference IF IS_STRING_EMPTY_HUD(TimeDifference) TimeDifference = "TIMER_CHALLTIME" ENDIF iCheckPointTime = iCheckPointTime /* Difference now displayed in top right, keep this incase it changes //Used for individual checkpoints times IF bTimeTrialMode //This is time trial //IF iCheckPointTime > -1 DRAW_GENERIC_TIMER(iCheckPointTime, TimeDifference,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) //ENDIF ENDIF */ /* IF IS_BIT_SET(g_sCurrentPlayListDetails.iPlayListBitSet, ciPLAYLIST_DOING_CHALLENGE) DRAW_GENERIC_TIMER(g_sCurrentPlayListDetails.sLoadedMissionDetails[g_sCurrentPlayListDetails.iCurrentPlayListPosition].iBestTime , TimeDifference,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDIF */ ENDPROC PROC DRAW_P2P_RACE_HUD(INT RaceTime, INT iComparison, STRING TimerTitle, INT PositionNum = -1, INT PositionMaxNumber = -1, STRING PositionTitle = NULL, INT ExtraTimeGiven = 0, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE,INT CheckpointNumber = -1, INT CheckpointMaxNum = -1, STRING CheckpointTitle = NULL, HUD_COLOURS CheckpointColour = HUD_COLOUR_YELLOW, BOOL DisplayMilliseconds = TRUE, INT FlashingTime = -1, STRING FloatTitle = NULL, FLOAT FloatValue = -1.0, HUD_COLOURS FloatColour = HUD_COLOUR_WHITE,FLOAT fDistanceCheck = -1.0, INT iWorldBestTime = -1, BOOL bTimeTrialMode = FALSE,INT iCheckPointTime = -1, INT iChallengeTime = -1, STRING sWorldName = NULL) TIMER_STYLE aTimerStyle IF DisplayMilliseconds aTimerStyle = TIMER_STYLE_USEMILLISECONDS ELSE aTimerStyle = TIMER_STYLE_DONTUSEMILLISECONDS ENDIF IF iChallengeTime <> -1 DRAW_GENERIC_TIMER(iChallengeTime, "TIMER_CHALLTIME",ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_EIGHTHBOTTOM) ENDIF DRAW_GTA_RACE_WEAPON_INFO() IF FloatValue > -1 DRAW_GENERIC_SCORE(0, "",FlashingTime, FloatColour, HUDORDER_SIXTHBOTTOM, FALSE, FloatTitle, TRUE, FloatValue ) ENDIF IF NOT bTimeTrialMode OR IS_LOCAL_PLAYER_RUNNING_ACTIVITY_TUTORIAL() IF PositionNum > -1 AND PositionMaxNumber > 0 STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "TIM_POSIT" ENDIF DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(PositionNum, PositionMaxNumber,NewTitlePos1, PlacementColour, FlashingTime, HUDORDER_FIFTHBOTTOM, DEFAULT, DEFAULT, DEFAULT, PlacementColour) ENDIF ENDIF IF CheckpointNumber > -1 AND CheckpointMaxNum > -1 STRING NewCheckpointTitle = CheckpointTitle IF IS_STRING_EMPTY_HUD(NewCheckpointTitle) NewCheckpointTitle = "TIM_CHECKPOIN" ENDIF CheckpointColour = CheckpointColour IF g_Show_Lap_Dpad DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, FlashingTime, HUDORDER_FIFTHBOTTOM) ENDIF /* IF CheckpointMaxNum < 8 DRAW_GENERIC_CHECKPOINT(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, -1, FlashingTime, HUDORDER_FOURTHBOTTOM) ELSE DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(CheckpointNumber, CheckpointMaxNum,NewCheckpointTitle, CheckpointColour, FlashingTime, HUDORDER_FOURTHBOTTOM) ENDIF */ ENDIF IF fDistanceCheck > -1.0 STRING DistanceTitle = "TIM_DISTANCE" STRING NumberString = "FMMC_LENGTHM" DRAW_GENERIC_SCORE(0, DistanceTitle, -1, HUD_COLOUR_WHITE, HUDORDER_FOURTHBOTTOM, FALSE, NumberString, TRUE, fDistanceCheck) ENDIF STRING NewTimePos = TimerTitle IF IS_STRING_EMPTY_HUD(NewTimePos) NewTimePos = "TIMER_TIME_RCE" ENDIF DRAW_GENERIC_TIMER(RaceTime, NewTimePos,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_THIRDBOTTOM) STRING WorldBeatTime IF IS_STRING_EMPTY_HUD(WorldBeatTime) WorldBeatTime = GET_COMPARISON_STRING(iComparison) ENDIF IF bTimeTrialMode //This is time trial# OR g_Show_Lap_Dpad OR GET_DPADDOWN_ACTIVATION_STATE() = DPADDOWN_SECOND IF bTimeTrialMode IF g_Show_Lap_Dpad AND NOT IS_STRING_NULL_OR_EMPTY(sWorldName) DRAW_GENERIC_TIMER(iWorldBestTime, sWorldName,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM,TRUE, DEFAULT, DEFAULT, DEFAULT, ( iWorldBestTime <= 0 )) ELSE IF iWorldBestTime <= 0 //Has not been set yet so display dashes DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM,FALSE,HUD_COLOUR_WHITE,HUDFLASHING_NONE,0,TRUE) ELSE DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM) ENDIF ENDIF ELSE IF GET_DPADDOWN_ACTIVATION_STATE() = DPADDOWN_SECOND AND NOT IS_STRING_NULL_OR_EMPTY(sWorldName) DRAW_GENERIC_TIMER(iWorldBestTime, sWorldName,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM,TRUE, DEFAULT, DEFAULT, DEFAULT, ( iWorldBestTime <= 0 )) ELSE IF iWorldBestTime <= 0 //Has not been set yet so display dashes DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM,FALSE,HUD_COLOUR_WHITE,HUDFLASHING_NONE,0,TRUE) ELSE DRAW_GENERIC_TIMER(iWorldBestTime, WorldBeatTime,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_SECONDBOTTOM) ENDIF ENDIF ENDIF ENDIF STRING TimeDifference IF IS_STRING_EMPTY_HUD(TimeDifference) TimeDifference = "TIMER_CHALLTIME" ENDIF iCheckPointTime = iCheckPointTime /* Difference now displayed in top right, keep this incase it changes //Used for individual checkpoints times IF bTimeTrialMode //This is time trial //IF iCheckPointTime > -1 DRAW_GENERIC_TIMER(iCheckPointTime, TimeDifference,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) //ENDIF ENDIF */ /* IF IS_BIT_SET(g_sCurrentPlayListDetails.iPlayListBitSet, ciPLAYLIST_DOING_CHALLENGE) DRAW_GENERIC_TIMER(g_sCurrentPlayListDetails.sLoadedMissionDetails[g_sCurrentPlayListDetails.iCurrentPlayListPosition].iBestTime , TimeDifference,ExtraTimeGiven, TIMER_STYLE_USEMILLISECONDS, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDIF */ ENDPROC PROC DRAW_P2P_BASEJUMP_RACE_HUD(INT RacePoints, STRING TimerTitle, STRING PositionTitle = NULL, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE,INT CheckpointNumber = -1, INT CheckpointMaxNum = -1, STRING CheckpointTitle = NULL, HUD_COLOURS CheckpointColour = HUD_COLOUR_YELLOW, INT FlashingTime = -1, STRING FloatTitle = NULL, FLOAT FloatValue = -1.0, HUD_COLOURS FloatColour = HUD_COLOUR_WHITE, INT opponents_score = -1, STRING bj_leaders_name = NULL, INT iChallengeScore = -1) IF iChallengeScore <> -1 DRAW_GENERIC_BIG_NUMBER(iChallengeScore, "SCORE_CHALLENGE", FlashingTime, PlacementColour) ENDIF IF FloatValue > -1 DRAW_GENERIC_SCORE(0, "",FlashingTime, FloatColour, HUDORDER_SEVENTHBOTTOM, FALSE, FloatTitle, TRUE, FloatValue ) ENDIF /* IF PositionNum > -1 STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "TIM_POSIT" //POSITION ENDIF DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(PositionNum, PositionMaxNumber,NewTitlePos1, PlacementColour, FlashingTime, HUDORDER_FIFTHBOTTOM) ENDIF */ // Draw players points BIG STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "BASEPLP" //Players Points ENDIF DRAW_GENERIC_BIG_NUMBER(RacePoints, NewTitlePos1, FlashingTime, PlacementColour, HUDORDER_FOURTHBOTTOM, FALSE ) //DRAW_GENERIC_BIG_NUMBER (RacePoints, "SCORE", FlashingTime, PlacementColour, HUDORDER_FOURTHBOTTOM, TRUE ) IF CheckpointNumber > -1 AND CheckpointMaxNum > -1 STRING NewCheckpointTitle = CheckpointTitle IF IS_STRING_EMPTY_HUD(NewCheckpointTitle) NewCheckpointTitle = "TIM_CHECKPOIN" // checkpoints ENDIF // removed as per Les's request. 977179 //IF CheckpointMaxNum < 8 // DRAW_GENERIC_CHECKPOINT(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, -1, FlashingTime, HUDORDER_FOURTHBOTTOM) // ELSE // DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(CheckpointNumber, CheckpointMaxNum,NewCheckpointTitle, CheckpointColour, FlashingTime, HUDORDER_FOURTHBOTTOM) // ENDIF IF CheckpointColour = HUD_COLOUR_YELLOW CheckpointColour = HUD_COLOUR_YELLOW ENDIF //DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(CheckpointNumber, CheckpointMaxNum,NewCheckpointTitle, CheckpointColour, FlashingTime, HUDORDER_FIFTHBOTTOM) ENDIF //opponents IF opponents_score != -1 STRING NewTimePos = bj_leaders_name IF IS_STRING_EMPTY_HUD(NewTimePos) NewTimePos = timertitle NewTimePos = "BASEOPPOINT"// bj_leaders_name //points //NewTimePos += "BASEPLP" //points // GET_PLAYER_NAME( PLAYER_INDEX PlayerIndex ) ENDIF NewTimePos = "BASEOPPOINT" DRAW_GENERIC_SCORE(opponents_score, NewTimePos, -1,PlacementColour, HUDORDER_SIXTHBOTTOM) //DRAW_TEXT_WITH_PLAYER_NAME(TitlePlace, TitleStyle, Title, "", HUD_COLOUR_WHITE, FONT_RIGHT) ENDIF //DRAW_GENERIC_TIMER(RacePoints, NewTimePos,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDPROC /// PURPOSE: /// Draws the Hud used in a race /// PARAMS: /// RaceTime - The timer /// TimerTitle - The title of the timer. Defaults to TIME with "" passed in /// LapNumber - Number of laps /// LapMaxNumber - Max number of laps /// LapTitle - The title of the lap meter. Defaults to LAP with "" Passed in /// PositionNum - The position Number /// PositionMaxNumber - The position maximum number /// PositionTitle - The title of the position number. Defaults to POSITION with "" Passed in /// ExtraTimeGiven - If any extra time is given to the timer, pass this in to display +xs -xs /// PlacementColour - The position numbers can change colour /// CheckpointNumber - if you have a checkpoint bar the current number /// CheckpointMaxNum - if you have a checkpoint bar, the maximum number /// CheckpointTitle - The title of the checkpoint bar, defaults to CHECKPOINT with "" passed in /// CheckpointColour - the colour the bar should be /// MeterNumber - if you want a meter displayed pass in the current value /// MeterMaxNum - If you want a meter displayed pass in the max value /// MeterTitle - the meters title. Defaults to DAMAGE with "" Passed in /// MeterColour - The meter colour /// BestTime - If you want to show a best time then pass in a millisecond value /// BestTimeTitle - Title of the best time timer. Defaults to BEST TIME with "" passed in /// MedalDisplay - If you want to show a medal postion next to the Best timer then pass in a position. Used for a target times. /// DisplayMilliseconds - True if you want the main timer to display milliseconds /// FlashingTime - How long you want the whole hud to flash for. /// FloatTitle - The title the float score will have /// FloatValue = value the float value will have /// FloatColour - the colour the float value will have PROC DRAW_CHECKPOINT_COUNTDOWN_RACE_HUD(INT RaceTime, STRING TimerTitle, INT LapNumber = -1, INT LapMaxNumber = -1, STRING LapTitle = NULL, INT PositionNum = -1, INT PositionMaxNumber = -1, STRING PositionTitle = NULL, INT ExtraTimeGiven = 0, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT CheckpointNumber = -1, INT CheckpointMaxNum = -1, STRING CheckpointTitle = NULL, HUD_COLOURS CheckpointColour = HUD_COLOUR_YELLOW,INT MeterNumber = -1, INT MeterMaxNum = -1, STRING MeterTitle = NULL, HUD_COLOURS MeterColour = HUD_COLOUR_RED, INT BestTime = -1, STRING BestTimeTitle = NULL, PODIUMPOS MedalDisplay = PODIUMPOS_NONE, BOOL DisplayMilliseconds = TRUE, INT FlashingTime = -1, STRING FloatTitle = NULL, FLOAT FloatValue = -1.0, HUD_COLOURS FloatColour = HUD_COLOUR_WHITE, HUD_COLOURS aBestTimeColor = HUD_COLOUR_WHITE, BOOL bDispTimeString = FALSE) IF FloatValue > -1 DRAW_GENERIC_SCORE(0, "",FlashingTime, FloatColour, HUDORDER_SEVENTHBOTTOM, FALSE, FloatTitle, TRUE, FloatValue ) ENDIF IF MeterNumber > -1 STRING NewMeterTitle = MeterTitle IF IS_STRING_EMPTY_HUD(NewMeterTitle) NewMeterTitle = "TIM_DAMAGE" ENDIF DRAW_GENERIC_METER(MeterNumber, MeterMaxNum, NewMeterTitle, MeterColour, FlashingTime, HUDORDER_SIXTHBOTTOM, -1, -1, FALSE, TRUE) ENDIF IF CheckpointNumber > -1 STRING NewCheckpointTitle = CheckpointTitle IF IS_STRING_EMPTY_HUD(NewCheckpointTitle) NewCheckpointTitle = "TIM_CHECKPOIN" ENDIF //DRAW_GENERIC_CHECKPOINT(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, -1, FlashingTime, HUDORDER_FIFTHBOTTOM) //DRAW_GENERIC_BIG_NUMBER(CheckpointMaxNum-CheckpointNumber, NewCheckpointTitle, FlashingTime, CheckpointColour, HUDORDER_FIFTHBOTTOM) //DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(CheckpointNumber, CheckpointMaxNum,NewCheckpointTitle, CheckpointColour, FlashingTime, HUDORDER_FIFTHBOTTOM) DRAW_GENERIC_BIG_DOUBLE_NUMBER(CheckpointNumber, CheckpointMaxNum,NewCheckpointTitle, FlashingTime,CheckpointColour, HUDORDER_FIFTHBOTTOM) ENDIF IF PositionNum > -1 STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "TIM_POSIT" ENDIF DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(PositionNum, PositionMaxNumber,NewTitlePos1, PlacementColour, FlashingTime, HUDORDER_FOURTHBOTTOM) ENDIF IF LapNumber > -1 STRING NewTitle = LapTitle IF IS_STRING_EMPTY_HUD(NewTitle) NewTitle = "TIM_LAP" ENDIF LapNumber = LapNumber LapMaxNumber = LapMaxNumber /* DRAW_GENERIC_BIG_DOUBLE_NUMBER(LapNumber, LapMaxNumber,NewTitle, FlashingTime,HUD_COLOUR_WHITE, HUDORDER_THIRDBOTTOM) */ ENDIF IF BestTime > -1 STRING NewTimePos1 = BestTimeTitle IF IS_STRING_EMPTY_HUD(NewTimePos1) IF NOT bDispTimeString NewTimePos1 = "TIMER_BESLAP" ELSE NewTimePos1 = "TIMER_BESTIME" ENDIF ENDIF DRAW_GENERIC_TIMER(BestTime, NewTimePos1,0, TIMER_STYLE_USEMILLISECONDS, FlashingTime, MedalDisplay, HUDORDER_SECONDBOTTOM, FALSE, aBestTimeColor) ENDIF STRING NewTimePos = TimerTitle IF IS_STRING_EMPTY_HUD(NewTimePos) NewTimePos = "TIMER_TIME_RCE" ENDIF TIMER_STYLE aTimerStyle IF DisplayMilliseconds aTimerStyle = TIMER_STYLE_USEMILLISECONDS ELSE aTimerStyle = TIMER_STYLE_DONTUSEMILLISECONDS ENDIF DRAW_GENERIC_TIMER(RaceTime, NewTimePos,ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDPROC /// PURPOSE: /// Draws the Hud used in a race /// PARAMS: /// RaceTime - The timer /// TimerTitle - The title of the timer. Defaults to TIME with "" passed in /// LapNumber - Number of laps /// LapMaxNumber - Max number of laps /// LapTitle - The title of the lap meter. Defaults to LAP with "" Passed in /// PositionNum - The position Number /// PositionMaxNumber - The position maximum number /// PositionTitle - The title of the position number. Defaults to POSITION with "" Passed in /// ExtraTimeGiven - If any extra time is given to the timer, pass this in to display +xs -xs /// PlacementColour - The position numbers can change colour /// CheckpointNumber - if you have a checkpoint bar the current number /// CheckpointMaxNum - if you have a checkpoint bar, the maximum number /// CheckpointTitle - The title of the checkpoint bar, defaults to CHECKPOINT with "" passed in /// CheckpointColour - the colour the bar should be /// MeterNumber - if you want a meter displayed pass in the current value /// MeterMaxNum - If you want a meter displayed pass in the max value /// MeterTitle - the meters title. Defaults to DAMAGE with "" Passed in /// MeterColour - The meter colour /// BestTime - If you want to show a best time then pass in a millisecond value /// BestTimeTitle - Title of the best time timer. Defaults to BEST TIME with "" passed in /// MedalDisplay - If you want to show a medal postion next to the Best timer then pass in a position. Used for a target times. /// DisplayMilliseconds - True if you want the main timer to display milliseconds /// FlashingTime - How long you want the whole hud to flash for. /// FloatTitle - The title the float score will have /// FloatValue = value the float value will have /// FloatColour - the colour the float value will have PROC DRAW_STUNT_PLANE_HUD(INT RaceTime, STRING TimerTitle, INT LapNumber = -1, INT LapMaxNumber = -1, STRING LapTitle = NULL, INT PositionNum = -1, INT PositionMaxNumber = -1, STRING PositionTitle = NULL, INT ExtraTimeGiven = 0, HUD_COLOURS PlacementColour = HUD_COLOUR_WHITE, INT CheckpointNumber = -1, INT CheckpointMaxNum = -1, STRING CheckpointTitle = NULL, HUD_COLOURS CheckpointColour = HUD_COLOUR_YELLOW,INT MeterNumber = -1, INT MeterMaxNum = -1, STRING MeterTitle = NULL, HUD_COLOURS MeterColour = HUD_COLOUR_RED, INT GoalTime = -1, STRING GoalTimeTitle = NULL, PODIUMPOS GoalMedalDisplay = PODIUMPOS_NONE, HUD_COLOURS aGoalTimeColor = HUD_COLOUR_WHITE, INT BestTime = -1, STRING BestTimeTitle = NULL, PODIUMPOS MedalDisplay = PODIUMPOS_NONE, HUD_COLOURS aBestTimeColor = HUD_COLOUR_WHITE, BOOL DisplayMilliseconds = TRUE, INT FlashingTime = -1, STRING FloatTitle = NULL, FLOAT FloatValue = -1.0, HUD_COLOURS FloatColour = HUD_COLOUR_WHITE) IF FloatValue > -1 DRAW_GENERIC_SCORE(0, "",FlashingTime, FloatColour, HUDORDER_SEVENTHBOTTOM, FALSE, FloatTitle, TRUE, FloatValue ) ENDIF IF MeterNumber > -1 STRING NewMeterTitle = MeterTitle IF IS_STRING_EMPTY_HUD(NewMeterTitle) NewMeterTitle = "TIM_DAMAGE" ENDIF DRAW_GENERIC_METER(MeterNumber, MeterMaxNum, NewMeterTitle, MeterColour, FlashingTime, HUDORDER_SIXTHBOTTOM, -1, -1, FALSE, TRUE) ENDIF IF CheckpointNumber > -1 STRING NewCheckpointTitle = CheckpointTitle IF IS_STRING_EMPTY_HUD(NewCheckpointTitle) NewCheckpointTitle = "TIM_CHECKPOIN" ENDIF // DRAW_GENERIC_CHECKPOINT(CheckpointNumber, CheckpointMaxNum, NewCheckpointTitle, CheckpointColour, -1, FlashingTime, HUDORDER_FIFTHBOTTOM) DRAW_GENERIC_BIG_NUMBER(CheckpointMaxNum-CheckpointNumber, NewCheckpointTitle, FlashingTime, CheckpointColour, HUDORDER_FIFTHBOTTOM) ENDIF IF PositionNum > -1 STRING NewTitlePos1 = PositionTitle IF IS_STRING_EMPTY_HUD(NewTitlePos1) NewTitlePos1 = "TIM_POSIT" ENDIF DRAW_GENERIC_BIG_DOUBLE_NUMBER_PLACE(PositionNum, PositionMaxNumber,NewTitlePos1, PlacementColour, FlashingTime, HUDORDER_FOURTHBOTTOM) ENDIF IF LapNumber > -1 STRING NewTitle = LapTitle IF IS_STRING_EMPTY_HUD(NewTitle) NewTitle = "TIM_LAP" ENDIF LapNumber = LapNumber LapMaxNumber = LapMaxNumber /* DRAW_GENERIC_BIG_DOUBLE_NUMBER(LapNumber, LapMaxNumber,NewTitle, FlashingTime,HUD_COLOUR_WHITE, HUDORDER_THIRDBOTTOM) */ ENDIF IF GoalTime > -1 STRING NewTimePos2 = GoalTimeTitle IF IS_STRING_EMPTY_HUD(NewTimePos2) NewTimePos2 = "TIMER_BESTIME" ENDIF DRAW_GENERIC_TIMER(GoalTime, NewTimePos2,0, TIMER_STYLE_USEMILLISECONDS, FlashingTime, GoalMedalDisplay, HUDORDER_SECONDBOTTOM, FALSE, aGoalTimeColor) ENDIF IF BestTime > -1 STRING NewTimePos1 = BestTimeTitle IF IS_STRING_EMPTY_HUD(NewTimePos1) NewTimePos1 = "TIMER_BESTIME" ENDIF DRAW_GENERIC_TIMER(BestTime, NewTimePos1,0, TIMER_STYLE_USEMILLISECONDS, FlashingTime, MedalDisplay, HUDORDER_THIRDBOTTOM, FALSE, aBestTimeColor) ENDIF TEXT_LABEL_63 NewTimePos = TimerTitle IF (ExtraTimeGiven < 0) NewTimePos = "TIMER_REWARD" ELIF (ExtraTimeGiven > 0) NewTimePos = "TIMER_PENAL" ELIF IS_STRING_EMPTY_HUD(NewTimePos) NewTimePos = "TIM_TIMER" ENDIF DisplayMilliseconds = DisplayMilliseconds TIMER_STYLE aTimerStyle = TIMER_STYLE_STUNTPLANE DRAW_GENERIC_TIMER(RaceTime, NewTimePos, ExtraTimeGiven, aTimerStyle, FlashingTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDPROC /// PURPOSE: /// Draws the hud for the shooting range. PROC DRAW_SHOOTING_RANGE_HUD(Range_HUD_Data & sHUDDrawData, BOOL bColouriseNames = FALSE) // Multiplier first. If we have multiplier data, draw it. IF (sHUDDrawData.iMultiplier > -1) AND (sHUDDrawData.iCurMultiplierBlocks > -1) AND (sHUDDrawData.iMaxMultiplierBlocks > -1) DRAW_GENERIC_CHECKPOINT(sHUDDrawData.iCurMultiplierBlocks, sHUDDrawData.iMaxMultiplierBlocks, "MULTIPLIER", sHUDDrawData.eMultiplierColor, sHUDDrawData.iMultiplier, -1, HUDORDER_SEVENTHBOTTOM, default, default, default, default, default, sHUDDrawData.iMultiplier) ENDIF // Next, target data. If we have target data, draw it. IF (sHUDDrawData.iCurTargets > -1) AND (sHUDDrawData.iMaxTargets > -1) IF IS_STRING_NULL_OR_EMPTY(sHUDDrawData.sTargetsLabel) DRAW_GENERIC_BIG_DOUBLE_NUMBER(sHUDDrawData.iCurTargets, sHUDDrawData.iMaxTargets, "TIMER_TAR", -1, HUD_COLOUR_WHITE, HUDORDER_SIXTHBOTTOM) ELSE DRAW_GENERIC_BIG_DOUBLE_NUMBER(sHUDDrawData.iCurTargets, sHUDDrawData.iMaxTargets, sHUDDrawData.sTargetsLabel, -1, HUD_COLOUR_WHITE, HUDORDER_SIXTHBOTTOM) ENDIF ENDIF // Next draw best score, if we have one. IF (sHUDDrawData.iBestScore > 0) IF IS_STRING_NULL_OR_EMPTY(sHUDDrawData.sCurScoreLabel) DRAW_GENERIC_SCORE(sHUDDrawData.iBestScore, "TIMER_BESTSCORE", -1, sHUDDrawData.eBestScoreColor, HUDORDER_FIFTHBOTTOM, sHUDDrawData.bDrawPlayerNames) ELSE DRAW_GENERIC_SCORE(sHUDDrawData.iBestScore, sHUDDrawData.sCurScoreLabel, -1, sHUDDrawData.eBestScoreColor, HUDORDER_FIFTHBOTTOM, sHUDDrawData.bDrawPlayerNames) ENDIF ENDIF // Goal score. IF (sHUDDrawData.iGoalScore > -1) IF IS_STRING_NULL_OR_EMPTY(sHUDDrawData.sGoalScoreLabel) DRAW_GENERIC_SCORE(sHUDDrawData.iGoalScore, "TIMER_GOAL", -1, sHUDDrawData.eGoalScoreColor, HUDORDER_FOURTHBOTTOM) ELSE DRAW_GENERIC_SCORE(sHUDDrawData.iGoalScore, sHUDDrawData.sGoalScoreLabel, -1, sHUDDrawData.eGoalScoreColor, HUDORDER_FOURTHBOTTOM) ENDIF ENDIF // Next, the current score. IF (sHUDDrawData.iCurScore <> -1) IF IS_STRING_NULL_OR_EMPTY(sHUDDrawData.sCurScoreLabel) DRAW_GENERIC_SCORE(sHUDDrawData.iCurScore, "TIMER_SCORE", -1, sHUDDrawData.eCurScoreColor, HUDORDER_THIRDBOTTOM, sHUDDrawData.bDrawPlayerNames) ELSE IF bColouriseNames DRAW_GENERIC_SCORE(sHUDDrawData.iCurScore, sHUDDrawData.sCurScoreLabel, -1, sHUDDrawData.eCurScoreColor, HUDORDER_THIRDBOTTOM, sHUDDrawData.bDrawPlayerNames, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, sHUDDrawData.eCurScoreColor) ELSE DRAW_GENERIC_SCORE(sHUDDrawData.iCurScore, sHUDDrawData.sCurScoreLabel, -1, sHUDDrawData.eCurScoreColor, HUDORDER_THIRDBOTTOM, sHUDDrawData.bDrawPlayerNames) ENDIF ENDIF ENDIF // Opponent score. IF (sHUDDrawData.iOpponentScore <> -1) STRING sNumberString = PICK_STRING(sHUDDrawData.eOpponentScoreColor = HUD_COLOUR_GREEN, "SHR_PLUS_BONUS", "") IF bColouriseNames DRAW_GENERIC_SCORE(sHUDDrawData.iOpponentScore, sHUDDrawData.sOpponentScoreLabel, -1, sHUDDrawData.eOpponentScoreColor, HUDORDER_SECONDBOTTOM, sHUDDrawData.bDrawPlayerNames, sNumberString, DEFAULT, DEFAULT, DEFAULT, DEFAULT, sHUDDrawData.eOpponentScoreColor) ELSE DRAW_GENERIC_SCORE(sHUDDrawData.iOpponentScore, sHUDDrawData.sOpponentScoreLabel, -1, sHUDDrawData.eOpponentScoreColor, HUDORDER_SECONDBOTTOM, sHUDDrawData.bDrawPlayerNames, sNumberString) ENDIF ENDIF // Timer. IF (sHUDDrawData.iTimerVal > -1) IF IS_STRING_NULL_OR_EMPTY(sHUDDrawData.sTimerLabel) DRAW_GENERIC_TIMER(sHUDDrawData.iTimerVal, "TIM_TIMER", 0, TIMER_STYLE_DONTUSEMILLISECONDS, -1, PODIUMPOS_NONE, HUDORDER_BOTTOM, FALSE, sHUDDrawData.eTimerColor, DEFAULT, DEFAULT, DEFAULT, sHUDDrawData.eTimerColor) ELSE DRAW_GENERIC_TIMER(sHUDDrawData.iTimerVal, sHUDDrawData.sTimerLabel, 0, TIMER_STYLE_DONTUSEMILLISECONDS, -1, PODIUMPOS_NONE, HUDORDER_BOTTOM, FALSE, sHUDDrawData.eTimerColor, DEFAULT, DEFAULT, DEFAULT, sHUDDrawData.eTimerColor) ENDIF ENDIF ENDPROC /// PURPOSE: /// Used for the shooting range, in cases where ONLY the timer needs to be drawn. PROC DRAW_SHOOTING_RANGE_HUD_TIMERONLY(INT iTimerVal, HUD_COLOURS eColor) DRAW_GENERIC_TIMER(iTimerVal, "TIM_TIMER", 0, TIMER_STYLE_DONTUSEMILLISECONDS, -1, PODIUMPOS_NONE, HUDORDER_BOTTOM, FALSE, eColor, DEFAULT, DEFAULT, DEFAULT, eColor) ENDPROC /// PURPOSE: /// Draws 2 checkpoint bars. With the bottom can change colour /// PARAMS: /// LocalCollected - The top bars collected value /// LocalLimit - The Max the top bar can collect /// LocalTitle - The title of the top bar /// OverallCollected - The bottom bar current level /// OverallLimit - The bottom bar max level /// OverallTitle - The bottom bars title /// BottomColour - The colour the bottom bar should take /// FlashingTime - The flashing timer in milliseconds PROC DRAW_COLLECTION_HUD(INT LocalCollected, INT LocalLimit, STRING LocalTitle, INT OverallCollected, INT OverallLimit, STRING OverallTitle, HUD_COLOURS BottomColour = HUD_COLOUR_BLUE, INT FlashingTime = -1) DRAW_GENERIC_CHECKPOINT(LocalCollected, LocalLimit, LocalTitle, HUD_COLOUR_YELLOW, -1, FlashingTime, HUDORDER_SECONDBOTTOM) DRAW_GENERIC_CHECKPOINT(OverallCollected, OverallLimit, OverallTitle, BottomColour, -1, FlashingTime, HUDORDER_BOTTOM) ENDPROC PROC DRAW_TWO_PACKAGES_EIGHT_HUD(INT LocalLimit,STRING LocalTitle, INT OverallLimit, STRING OverallTitle, HUD_COLOURS TopBox1Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox2Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox3Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox4Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox5Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox6Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox7Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox8Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox1Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox2Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox3Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox4Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox5Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox6Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox7Colour = HUD_COLOUR_BLACK, HUD_COLOURS BottomBox8Colour = HUD_COLOUR_BLACK, INT FlashingTime = -1, HUD_COLOURS TitleColour1 = HUD_COLOUR_PURE_WHITE, HUD_COLOURS TitleColour2 = HUD_COLOUR_PURE_WHITE #IF USE_TU_CHANGES , BOOL DoTopCross0 = FALSE, BOOL DoTopCross1 = FALSE,BOOL DoTopCross2 = FALSE,BOOL DoTopCross3 = FALSE,BOOL DoTopCross4 = FALSE,BOOL DoTopCross5 = FALSE,BOOL DoTopCross6 = FALSE,BOOL DoTopCross7 = FALSE, BOOL DoBottomCross0 = FALSE, BOOL DoBottomCross1 = FALSE,BOOL DoBottomCross2 = FALSE,BOOL DoBottomCross3 = FALSE,BOOL DoBottomCross4 = FALSE,BOOL DoBottomCross5 = FALSE,BOOL DoBottomCross6 = FALSE,BOOL DoBottomCross7 = FALSE #ENDIF) HUD_COLOURS BoxInactive[16] BOOL isActive[16] //INT I //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox1Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[0] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox1Colour = HUD_COLOUR_BLACK isActive[0] = FALSE BoxInactive[0] = HUD_COLOUR_BLACK ELSE isActive[0] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox2Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[1] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox2Colour = HUD_COLOUR_BLACK isActive[1] = FALSE BoxInactive[1] = HUD_COLOUR_BLACK ELSE isActive[1] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox3Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[2] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox3Colour = HUD_COLOUR_BLACK isActive[2] = FALSE BoxInactive[2] = HUD_COLOUR_BLACK ELSE isActive[2] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox4Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[3] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox4Colour = HUD_COLOUR_BLACK isActive[3] = FALSE BoxInactive[3] = HUD_COLOUR_BLACK ELSE isActive[3] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox5Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[4] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox5Colour = HUD_COLOUR_BLACK isActive[4] = FALSE BoxInactive[4] = HUD_COLOUR_BLACK ELSE isActive[4] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox6Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[5] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox6Colour = HUD_COLOUR_BLACK isActive[5] = FALSE BoxInactive[5] = HUD_COLOUR_BLACK ELSE isActive[5] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox7Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[6] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox7Colour = HUD_COLOUR_BLACK isActive[6] = FALSE BoxInactive[6] = HUD_COLOUR_BLACK ELSE isActive[6] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF TopBox8Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[7] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF TopBox8Colour = HUD_COLOUR_BLACK isActive[7] = FALSE BoxInactive[7] = HUD_COLOUR_BLACK ELSE isActive[7] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox1Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[8] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox1Colour = HUD_COLOUR_BLACK isActive[8] = FALSE BoxInactive[8] = HUD_COLOUR_BLACK ELSE isActive[8] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox2Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[9] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox2Colour = HUD_COLOUR_BLACK isActive[9] = FALSE BoxInactive[9] = HUD_COLOUR_BLACK ELSE isActive[9] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox3Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[10] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox3Colour = HUD_COLOUR_BLACK isActive[10] = FALSE BoxInactive[10] = HUD_COLOUR_BLACK ELSE isActive[10] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox4Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[11] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox4Colour = HUD_COLOUR_BLACK isActive[11] = FALSE BoxInactive[11] = HUD_COLOUR_BLACK ELSE isActive[11] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox5Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[12] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox5Colour = HUD_COLOUR_BLACK isActive[12] = FALSE BoxInactive[12] = HUD_COLOUR_BLACK ELSE isActive[12] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox6Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[13] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox6Colour = HUD_COLOUR_BLACK isActive[13] = FALSE BoxInactive[13] = HUD_COLOUR_BLACK ELSE isActive[13] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox7Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[14] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox7Colour = HUD_COLOUR_BLACK isActive[14] = FALSE BoxInactive[14] = HUD_COLOUR_BLACK ELSE isActive[14] = TRUE ENDIF //ENDFOR //FOR I = 0 TO MAX_NUM_TEAMS-1 IF BottomBox8Colour = GET_TEAM_HUD_COLOUR(0) BoxInactive[15] = GET_CONTRAST_TEAM_COLOUR(0) ENDIF IF BottomBox8Colour = HUD_COLOUR_BLACK isActive[15] = FALSE BoxInactive[15] = HUD_COLOUR_BLACK ELSE isActive[15] = TRUE ENDIF //ENDFOR #IF USE_TU_CHANGES IF IS_STRING_NULL_OR_EMPTY(LocalTitle) REQUEST_STREAMED_TEXTURE_DICT("Timerbars") EXIT ENDIF IF IS_STRING_NULL_OR_EMPTY(OverallTitle) REQUEST_STREAMED_TEXTURE_DICT("Timerbars") EXIT ENDIF #ENDIF DRAW_GENERIC_ELIMINATION(LocalLimit, LocalTitle, -1, isActive[0], isActive[1], isActive[2], isActive[3], isActive[4], isActive[5], isActive[6], isActive[7], HUD_COLOUR_GREEN, HUD_COLOUR_RED, FlashingTime, HUDORDER_SECONDBOTTOM, -1, -1, FALSE, TopBox1Colour, TopBox2Colour, TopBox3Colour, TopBox4Colour, TopBox5Colour, TopBox6Colour, TopBox7Colour, TopBox8Colour, BoxInactive[0], BoxInactive[1], BoxInactive[2], BoxInactive[3], BoxInactive[4], BoxInactive[5], BoxInactive[6], BoxInactive[7], -1, HUDFLASHING_NONE, 0, TitleColour1 #IF USE_TU_CHANGES , DoTopCross0 , DoTopCross1 , DoTopCross2 , DoTopCross3 , DoTopCross4 , DoTopCross5 , DoTopCross6 , DoTopCross7 #ENDIF ) DRAW_GENERIC_ELIMINATION(OverallLimit, OverallTitle, -1, isActive[8], isActive[9], isActive[10], isActive[11], isActive[12], isActive[13], isActive[14], isActive[15], HUD_COLOUR_GREEN, HUD_COLOUR_RED, FlashingTime, HUDORDER_BOTTOM, -1, -1, FALSE, BottomBox1Colour, BottomBox2Colour, BottomBox3Colour, BottomBox4Colour, BottomBox5Colour, BottomBox6Colour, BottomBox7Colour, BottomBox8Colour, BoxInactive[8], BoxInactive[9], BoxInactive[10], BoxInactive[11], BoxInactive[12], BoxInactive[13], BoxInactive[14], BoxInactive[15], -1, HUDFLASHING_NONE, 0, TitleColour2 #IF USE_TU_CHANGES , DoBottomCross0 , DoBottomCross1 ,DoBottomCross2 ,DoBottomCross3 , DoBottomCross4 , DoBottomCross5 , DoBottomCross6 , DoBottomCross7 #ENDIF ) ENDPROC PROC DRAW_ONE_PACKAGES_EIGHT_HUD(INT LocalLimit,STRING LocalTitle,BOOL bIsPlayer = FALSE, HUD_COLOURS TopBox1Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox2Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox3Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox4Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox5Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox6Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox7Colour = HUD_COLOUR_BLACK, HUD_COLOURS TopBox8Colour = HUD_COLOUR_BLACK, INT FlashingTime = -1, HUD_COLOURS TitleColour = HUD_COLOUR_PURE_WHITE #IF USE_TU_CHANGES , BOOL DoCross0 = FALSE, BOOL DoCross1 = FALSE,BOOL DoCross2 = FALSE,BOOL DoCross3 = FALSE,BOOL DoCross4 = FALSE,BOOL DoCross5 = FALSE,BOOL DoCross6 = FALSE,BOOL DoCross7 = FALSE #ENDIF,HUDORDER scoreHudOrder = HUDORDER_SECONDBOTTOM, BOOL bUseNonPlayerName = FALSE) HUD_COLOURS BoxInactive[16] BOOL isActive[16] INT I FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox1Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[0] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox1Colour = HUD_COLOUR_BLACK isActive[0] = FALSE BoxInactive[0] = HUD_COLOUR_BLACK ELSE isActive[0] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox2Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[1] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox2Colour = HUD_COLOUR_BLACK isActive[1] = FALSE BoxInactive[1] = HUD_COLOUR_BLACK ELSE isActive[1] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox3Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[2] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox3Colour = HUD_COLOUR_BLACK isActive[2] = FALSE BoxInactive[2] = HUD_COLOUR_BLACK ELSE isActive[2] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox4Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[3] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox4Colour = HUD_COLOUR_BLACK isActive[3] = FALSE BoxInactive[3] = HUD_COLOUR_BLACK ELSE isActive[3] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox5Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[4] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox5Colour = HUD_COLOUR_BLACK isActive[4] = FALSE BoxInactive[4] = HUD_COLOUR_BLACK ELSE isActive[4] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox6Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[5] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox6Colour = HUD_COLOUR_BLACK isActive[5] = FALSE BoxInactive[5] = HUD_COLOUR_BLACK ELSE isActive[5] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox7Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[6] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox7Colour = HUD_COLOUR_BLACK isActive[6] = FALSE BoxInactive[6] = HUD_COLOUR_BLACK ELSE isActive[6] = TRUE ENDIF ENDFOR FOR I = 0 TO FMMC_MAX_TEAMS-1 IF TopBox8Colour = GET_TEAM_HUD_COLOUR(I) BoxInactive[7] = GET_CONTRAST_TEAM_COLOUR(I) ENDIF IF TopBox8Colour = HUD_COLOUR_BLACK isActive[7] = FALSE BoxInactive[7] = HUD_COLOUR_BLACK ELSE isActive[7] = TRUE ENDIF ENDFOR #IF USE_TU_CHANGES IF IS_STRING_NULL_OR_EMPTY(LocalTitle) REQUEST_STREAMED_TEXTURE_DICT("Timerbars") EXIT ENDIF #ENDIF DRAW_GENERIC_ELIMINATION(LocalLimit, LocalTitle, -1, isActive[0], isActive[1], isActive[2], isActive[3], isActive[4], isActive[5], isActive[6], isActive[7], HUD_COLOUR_GREEN, HUD_COLOUR_RED, FlashingTime, scoreHudOrder, -1, -1, bIsPlayer, TopBox1Colour, TopBox2Colour, TopBox3Colour, TopBox4Colour, TopBox5Colour, TopBox6Colour, TopBox7Colour, TopBox8Colour, BoxInactive[0], BoxInactive[1], BoxInactive[2], BoxInactive[3], BoxInactive[4], BoxInactive[5], BoxInactive[6], BoxInactive[7], -1, HUDFLASHING_NONE, 0, TitleColour #IF USE_TU_CHANGES , DoCross0, DoCross1 ,DoCross2 ,DoCross3 ,DoCross4 ,DoCross5 ,DoCross6 ,DoCross7 #ENDIF , bUseNonPlayerName) ENDPROC /// PURPOSE: /// Draws a general meter /// PARAMS: /// TimerRunning - The current timer /// TimeToDisplayFor - The max timer /// Title - The title of the meter /// aColour - The colour the filling should take /// FlashTime - The flashing timer PROC DRAW_TIMER_HUD(INT TimerRunning, INT TimeToDisplayFor, STRING Title, HUD_COLOURS aColour = HUD_COLOUR_RED, INT FlashTime = 0, BOOL OnlyZeroIsEmpty = TRUE, HUDORDER thisHudOrder = HUDORDER_DONTCARE) DRAW_GENERIC_METER(TimerRunning, TimeToDisplayFor, Title, aColour, FlashTime, thisHudOrder, -1, -1, FALSE, OnlyZeroIsEmpty) ENDPROC /// PURPOSE: /// Draws a general meter at a given screen position /// PARAMS: /// TimerRunning - The Timer current value /// TimeToDisplayFor - The max value the bar should take /// XPos - The X position from 0.0 to 1.0 /// YPos - The Y Position from 0.0 to 1.0 /// aColour - The colour the bar should take /// FlashTime - The flashing timer in milliseconds PROC DRAW_TIMER_HUD_AT_POSITION(INT TimerRunning, INT TimeToDisplayFor, FLOAT XPos, FLOAT YPos, HUD_COLOURS aColour = HUD_COLOUR_YELLOW, INT FlashTime = 0, BOOL OnlyZeroIsEmpty = TRUE) DRAW_GENERIC_METER(TimerRunning, TimeToDisplayFor, "", aColour, FlashTime, HUDORDER_FREEROAM, XPos, YPos, FALSE, OnlyZeroIsEmpty) ENDPROC /// PURPOSE: /// The Checkpoint hud, little blocks within a meter bar /// PARAMS: /// NumCheckpointsPassed - The current value of the checkpoints /// MaxNumCheckpoints - The max number of checkpoints /// Title - The title of the checkpoint bar /// aColour - The colour of the checkpoint bar fill /// FlashTime - The flash timer PROC DRAW_CHECKPOINT_HUD(INT NumCheckpointsPassed, INT MaxNumCheckpoints, STRING Title, HUD_COLOURS aColour = HUD_COLOUR_YELLOW, INT FlashTime = 0) DRAW_GENERIC_CHECKPOINT(NumCheckpointsPassed, MaxNumCheckpoints, Title, aColour, -1, FlashTime, HUDORDER_DONTCARE) ENDPROC /// PURPOSE: /// The Checkpoint hud, little blocks within a meter bar, drawn at a screen position /// PARAMS: /// NumCheckpointsPassed - The current value of the checkpoints /// MaxNumCheckpoints - The max number of checkpoints /// XPos - The checkpoint bar at x pos from 0 to 1.0 /// YPos - The checkpoint bar y position from 0 to 1.0 /// aColour - The colour the checkpoint bar fill will be /// FlashTime - The flashing timer in milliseconds PROC DRAW_CHECKPOINT_HUD_AT_POSITION(INT NumCheckpointsPassed, INT MaxNumCheckpoints, FLOAT XPos, FLOAT YPos, HUD_COLOURS aColour = HUD_COLOUR_YELLOW, INT FlashTime = 0) DRAW_GENERIC_CHECKPOINT(NumCheckpointsPassed, MaxNumCheckpoints, "", aColour, -1, FlashTime, HUDORDER_FREEROAM, XPos, YPos) ENDPROC /// PURPOSE: /// Bar with sections that can either be on or off /// PARAMS: /// MaxNumCheckpoints - Number of boxes /// Title - Title of the elimination box /// IsElimiated1 - First box true or false /// IsElimiated2 - Second box true or false /// IsElimiated3 - Third box true or false /// IsElimiated4 - Fourth box true or false /// IsElimiated5 - Fifth box true or false /// IsElimiated6 - Sixth box true or false /// IsElimiated7 - Seventh box true or false /// IsElimiated8 - Eighth box true or false /// ValidColour - The colour the true boxes should take /// inValidColour - The colour the false boxes should take /// iCompletedBoxes - The number of boxes to make visible, -1 for all to be visible. /// FlashTime - flash timer in milliseconds PROC DRAW_ELIMINATION_HUD(INT MaxNumCheckpoints, STRING Title, BOOL IsElimiated1 = FALSE, BOOL IsElimiated2 = FALSE, BOOL IsElimiated3 = FALSE, BOOL IsElimiated4 = FALSE, BOOL IsElimiated5 = FALSE, BOOL IsElimiated6 = FALSE, BOOL IsElimiated7 = FALSE, BOOL IsElimiated8 = FALSE, HUD_COLOURS ValidColour= HUD_COLOUR_GREEN, HUD_COLOURS inValidColour = HUD_COLOUR_RED, INT iCompletedBoxes = -1, INT FlashTime = 0, HUD_COLOURS Box1Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box2Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box3Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box4Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box5Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box6Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box7Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box8Colour = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box1Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box2Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box3Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box4Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box5Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box6Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box7Colour_Inactive = HUD_COLOUR_PURE_WHITE, HUD_COLOURS Box8Colour_Inactive = HUD_COLOUR_PURE_WHITE, INT ExtendedTimer = -1) DRAW_GENERIC_ELIMINATION(MaxNumCheckpoints, Title, iCompletedBoxes, IsElimiated1, IsElimiated2, IsElimiated3, IsElimiated4, IsElimiated5, IsElimiated6, IsElimiated7, IsElimiated8,ValidColour,inValidColour, FlashTime, HUDORDER_DONTCARE, -1, -1, FALSE, Box1Colour, Box2Colour, Box3Colour, Box4Colour, Box5Colour, Box6Colour, Box7Colour, Box8Colour, Box1Colour_Inactive, Box2Colour_Inactive, Box3Colour_Inactive, Box4Colour_Inactive, Box5Colour_Inactive, Box6Colour_Inactive, Box7Colour_Inactive, Box8Colour_Inactive, ExtendedTimer) ENDPROC /// PURPOSE: /// Bar with sections that can either be on or off. With screen positions /// PARAMS: /// MaxNumCheckpoints - Number of boxes /// XPos - screen position on the X Position 0 to 1.0 /// YPos - screen position on the Y Position 0 to 1.0 /// IsElimiated1 - First box true or false /// IsElimiated2 - Second box true or false /// IsElimiated3 - Third box true or false /// IsElimiated4 - Fourth box true or false /// IsElimiated5 - Fifth box true or false /// IsElimiated6 - Sixth box true or false /// IsElimiated7 - Seventh box true or false /// IsElimiated8 - Eighth box true or false /// ValidColour - The colour the true boxes should take /// inValidColour - The colour the false boxes should take /// iCompletedBoxes - The number of boxes to make visible, -1 for all to be visible. /// FlashTime - flash timer in milliseconds PROC DRAW_ELIMINATION_HUD_AT_POSITION(INT MaxNumCheckpoints, FLOAT XPos, FLOAT YPos, BOOL IsElimiated1 = FALSE, BOOL IsElimiated2 = FALSE, BOOL IsElimiated3 = FALSE, BOOL IsElimiated4 = FALSE, BOOL IsElimiated5 = FALSE, BOOL IsElimiated6 = FALSE, BOOL IsElimiated7 = FALSE, BOOL IsElimiated8 = FALSE, HUD_COLOURS ValidColour= HUD_COLOUR_GREEN, HUD_COLOURS inValidColour = HUD_COLOUR_RED, INT iCompletedBoxes = -1, INT FlashTime = 0, HUD_COLOURS Box1Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box2Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box3Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box4Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box5Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box6Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box7Colour = HUD_COLOUR_WHITE, HUD_COLOURS Box8Colour = HUD_COLOUR_WHITE) DRAW_GENERIC_ELIMINATION(MaxNumCheckpoints, "", iCompletedBoxes, IsElimiated1, IsElimiated2, IsElimiated3, IsElimiated4, IsElimiated5, IsElimiated6, IsElimiated7, IsElimiated8,ValidColour,inValidColour, FlashTime, HUDORDER_FREEROAM, XPos, YPos, FALSE, Box1Colour, Box2Colour, Box3Colour, Box4Colour, Box5Colour, Box6Colour, Box7Colour, Box8Colour) ENDPROC ///// PURPOSE: ///// Draws the 2 bars needed for verses and an optional timer ///// PARAMS: ///// NumCheckpointsPassedOne - The number of boxes filled for player one ///// MaxNumCheckpointsOne - The total number of boxes for player one ///// PlayerOne - The player index of player one ///// iTeamOne - the team colour for player one ///// NumCheckpointsPassedTwo - the number of boxes filled for player two ///// MaxNumCheckpointsTwo - the total number of boxes for player two ///// PlayerTwo - the player index of player two ///// iTeamTwo - the team colour of player two ///// FlashTime - how long the bars should flash for PROC DRAW_VERSES_HUD(INT NumCheckpointsPassedOne, INT MaxNumCheckpointsOne, STRING sTitleOne, HUD_COLOURS aColourOne, INT NumCheckpointsPassedTwo, INT MaxNumCheckpointsTwo, STRING sTitleTwo, HUD_COLOURS aColourTwo, INT FlashTime = 0, INT Timer = -1, STRING sTimerName = NULL) DRAW_GENERIC_CHECKPOINT(NumCheckpointsPassedOne, MaxNumCheckpointsOne, sTitleOne, aColourOne, -1, FlashTime, HUDORDER_THIRDBOTTOM) DRAW_GENERIC_CHECKPOINT(NumCheckpointsPassedTwo, MaxNumCheckpointsTwo, sTitleTwo, aColourTwo, -1, FlashTime, HUDORDER_SECONDBOTTOM) IF Timer > -1 DRAW_GENERIC_TIMER(Timer, sTimerName,0, TIMER_STYLE_DONTUSEMILLISECONDS, FlashTime, PODIUMPOS_NONE, HUDORDER_BOTTOM) ENDIF ENDPROC /// PURPOSE: /// Deathmatch hud with 2 scores, a local target and an optional timer /// PARAMS: /// LocalScore - The local players score /// LocalTarget - The local players target /// LocalPlayerName - The local players name by string /// OpponentScore - The opponents score /// OpponentPlayerName - The opponents name by string /// LocalColour - The local number colour /// OpponentColour - The opponent number colour /// LocalPlace - The local hud display position /// OpponentPlace - The opponents hud display position /// Timer - The time in milliseconds. -1 to not display. /// sTimerName - The timers title /// FlashTime - The flash timer PROC DRAW_PLAYER_DEATHMATCH_HUD (INT LocalScore, INT LocalTarget, STRING LocalPlayerName, INT OpponentScore, STRING OpponentPlayerName, HUD_COLOURS LocalColour, HUD_COLOURS OpponentColour, HUDORDER LocalPlace, HUDORDER OpponentPlace, INT Timer = -1, STRING sTimerName = NULL, INT FlashTime = 0, BOOL isPlayer = TRUE, BOOL bIsTargetMatch = TRUE, BOOL bUseDoubleNumbers = FALSE, INT iEnemyTeamTarget = -1) IF NOT IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetTwenty, ciOptionsBS20_Hide_Scores_For_DM) IF bUseDoubleNumbers DRAW_GENERIC_BIG_DOUBLE_NUMBER(OpponentScore, iEnemyTeamTarget, OpponentPlayerName, FlashTime, OpponentColour, OpponentPlace, isPlayer, DEFAULT, DEFAULT, DEFAULT, DEFAULT, OpponentColour) DRAW_GENERIC_BIG_DOUBLE_NUMBER(LocalScore, LocalTarget, LocalPlayerName, FlashTime, LocalColour, LocalPlace, isPlayer, DEFAULT, DEFAULT, DEFAULT, DEFAULT, LocalColour) ELSE DRAW_GENERIC_SCORE(OpponentScore, OpponentPlayerName, FlashTime, OpponentColour, OpponentPlace, isPlayer, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, OpponentColour) DRAW_GENERIC_SCORE(LocalScore, LocalPlayerName, FlashTime, LocalColour, LocalPlace, isPlayer, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, LocalColour) ENDIF // Target number IF bIsTargetMatch = TRUE AND NOT bUseDoubleNumbers IF LocalScore > -1 STRING NewTarget = "HUD_TARG" DRAW_GENERIC_SCORE(LocalTarget, NewTarget, FlashTime, HUD_COLOUR_WHITE, HUDORDER_SECONDBOTTOM, FALSE, "") ENDIF ENDIF ENDIF HUD_COLOURS hudCol = HUD_COLOUR_WHITE IF Timer < 30000 hudCol = HUD_COLOUR_RED ENDIF // Timer IF Timer > -1 AND NOT IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetTwentyOne, ciOptionsBS21_RemoveTimeLimitForDM) DRAW_GENERIC_TIMER(Timer, sTimerName, 0, TIMER_STYLE_DONTUSEMILLISECONDS, FlashTime, PODIUMPOS_NONE, HUDORDER_BOTTOM, DEFAULT, hudCol) ENDIF ENDPROC //// PURPOSE: /// Draws a single number, can only handle double digits /// PARAMS: /// Score - The number /// ScoreTitle - The title of the number /// aColour - The colour the number should be /// FlashTime - the flash timer PROC DRAW_BIG_SINGLE_SCORE_HUD(INT Score, STRING ScoreTitle, HUD_COLOURS aColour = HUD_COLOUR_WHITE, INT FlashTime = -1) DRAW_GENERIC_BIG_NUMBER(Score, ScoreTitle, FlashTime, aColour) ENDPROC /// PURPOSE: /// Draws a smaller number, can take a larger number /// PARAMS: /// Score - The number /// ScoreTitle - The title next to the number /// aColour - The colour the number should be /// FlashTime - The flash timer PROC DRAW_SMALL_SINGLE_SCORE_HUD(INT Score, STRING ScoreTitle, HUD_COLOURS aColour = HUD_COLOUR_WHITE, INT FlashTime = -1) DRAW_GENERIC_SCORE(Score, ScoreTitle, FlashTime, aColour) ENDPROC /// PURPOSE: /// Draws a smaller number, can take a larger number /// PARAMS: /// Score - The number /// ScoreTitle - The title next to the number /// aColour - The colour the number should be /// FlashTime - The flash timer PROC DRAW_SMALL_DISTANCE_HUD(FLOAT Score, STRING ScoreTitle, HUD_COLOURS aColour = HUD_COLOUR_WHITE, INT FlashTime = -1) STRING NumberString IF Score < 2 NumberString = "TIMER_MILESIG" ELSE NumberString = "TIMER_MILEPLU" ENDIF NumberString = "TIMER_MILE" DRAW_GENERIC_SCORE(0, ScoreTitle, FlashTime, aColour, HUDORDER_DONTCARE, FALSE, NumberString, TRUE, Score) ENDPROC /// PURPOSE: /// Draws a Big double number with a dash ie 3/4 can only handle double digits to 99 in both fields. /// PARAMS: /// Score - The current number /// MaxScore - The denominator /// ScoreTitle - The title of the score /// aColour - The colour the first number should be /// FlashTime - The flash timer PROC DRAW_BIG_DOUBLE_SCORE_HUD(INT Score, INT MaxScore, STRING ScoreTitle, HUD_COLOURS aColour = HUD_COLOUR_WHITE, INT FlashTime = -1) DRAW_GENERIC_BIG_DOUBLE_NUMBER(Score, MaxScore, ScoreTitle, FlashTime, aColour) ENDPROC PROC RUN_SHOOTING_RANGE_MULTIPLYER(Range_HUD_Data & sHUDDrawData) //, FLOAT fBarXPos = 0.919, FLOAT fBarYPos = 0.757) // TEXT_PLACEMENT TitlePlace // // TEXT_STYLE TitleStyle // SET_STANDARD_SMALL_HUD_TEXT(TitleStyle, DROPSTYLE_NONE) // SET_WORD_WRAPPING_TITLE(TitleStyle) DRAW_GENERIC_CHECKPOINT(sHUDDrawData.iCurMultiplierBlocks, sHUDDrawData.iMaxMultiplierBlocks, "MULTIPLIER", sHUDDrawData.eMultiplierColor, sHUDDrawData.iMultiplier, -1, HUDORDER_SIXTHBOTTOM, default, default, default, default, default, sHUDDrawData.iMultiplier) // DRAW_CHECKPOINT_HUD_AT_POSITION(sHUDDrawData.iCurMultiplierBlocks, sHUDDrawData.iMaxMultiplierBlocks, fBarXPos, fBarYPos, sHUDDrawData.eMultiplierColor) // DRAW_TEXT_WITH_NUMBER(TitlePlace, TitleStyle, "HUD_MULTSMAL", sHUDDrawData.iMultiplier, FONT_RIGHT) ENDPROC /// PURPOSE: /// Gets the distance from the objective using the GPS route, instead of as the crow flies distance check /// PARAMS: /// Destination - the destination you want to calculate to /// RETURNS: /// The distance in miles to 3 decimel places FUNC FLOAT GET_GPS_DISTANCE(VECTOR Destination, BOOL UseGPS = TRUE) INT Result IF UseGPS IF GET_GPS_BLIP_ROUTE_FOUND() Result = GET_GPS_BLIP_ROUTE_LENGTH() ELSE Result = FLOOR(VDIST(GET_PLAYER_COORDS(PLAYER_ID()), Destination)) ENDIF ELSE Result = FLOOR(VDIST(GET_PLAYER_COORDS(PLAYER_ID()), Destination)) ENDIF RETURN CAST_METRES_TO_MILES(TO_FLOAT(Result)) ENDFUNC /// PURPOSE: /// Turns on the hud display of the distance to the destination /// PARAMS: /// Destination - The destination /// OverrideDistance - if you use the override, I ignore the vector and go with this directly. //PROC ENABLE_OBJECTIVE_DISTANCE_DISPLAY(VECTOR Destination, FLOAT OverrideDistance = -1.0, STRING OverrideText = NULL) // MPGlobalsHud.bObjectiveDistanceActive = TRUE // MPGlobalsHud.vObjectiveDistance = Destination // MPGlobalsHud.fObjectiveOverrideDistance = OverrideDistance // MPGlobalsHud.sObjectiveOverrideText = OverrideText //ENDPROC /// PURPOSE: /// Turns off the hud display of the distance to destination //PROC DISABLE_OBJECTIVE_DISTANCE_DISPLAY() // MPGlobalsHud.bObjectiveDistanceActive = FALSE //ENDPROC /// PURPOSE: /// Returns if the objective distance is onscreen /// RETURNS: /// true if the objective distance is onscreen //FUNC BOOL IS_OBJECTIVE_DISTANCE_DISPLAY_ACTIVE() // RETURN MPGlobalsHud.bObjectiveDistanceActive //ENDFUNC // //PROC MAINTAIN_OBJECTIVE_DISTANCE_DISPLAY(PLACEMENT_TOOLS& Placement, TEXTSTYLES& aTextStyle) // // IF MPGlobalsHud.bObjectiveDistanceActive // // SET_STANDARD_INGAME_TEXT_DETAILS(aTextStyle) // Placement.TextPlacement[0].x = 0.135 // Placement.TextPlacement[0].y = 0.930 // // FLOAT fDist // // IF MPGlobalsHud.fObjectiveOverrideDistance > -1.0 // fDist = MPGlobalsHud.fObjectiveOverrideDistance // ELSE // fDist = GET_GPS_DISTANCE(MPGlobalsHud.vObjectiveDistance) // ENDIF // // IF IS_STRING_EMPTY_HUD(MPGlobalsHud.sObjectiveOverrideText) // DRAW_TEXT_WITH_FLOAT(Placement.TextPlacement[0], aTextStyle.TS_STANDARDSMALLHUD, "AHD_DIST", fDist, 1) // ELSE // DRAW_TEXT_WITH_FLOAT(Placement.TextPlacement[0], aTextStyle.TS_STANDARDSMALLHUD, MPGlobalsHud.sObjectiveOverrideText, fDist, 1) // ENDIF // ENDIF //ENDPROC FUNC BOOL IS_MISSION_CREATOR_NEEDING_INGAMEHUD_ON() IF g_bMissionCreatorActive RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL CAN_INGAME_HUD_ELEMENTS_DISPLAY() #IF IS_DEBUG_BUILD BOOL bPrint IF HAS_NET_TIMER_EXPIRED_ONE_FRAME(TimerHudDebugTimer, 1000) bPrint = TRUE ENDIF IF G_bTurnOnAllHUDBlockers bPrint = TRUE ENDIF IF GET_COMMANDLINE_PARAM_EXISTS("sc_displaytimerhuddisable") bPrint = TRUE ENDIF #ENDIF //Added for bug 1641951 IF g_bBringUpMPHud #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: g_bBringUpMPHud = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF IF g_bBrowserVisible #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: g_bBrowserVisible = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF IF IS_MP_TEXT_CHAT_TYPING() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: IS_MP_TEXT_CHAT_TYPING = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF IF g_sSctvTickerQueue.bActive #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: g_sSctvTickerQueue.bActive = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF IF MPGlobalsScoreHud.bSwitchWheel OR MPGlobalsScoreHud.bSwitchWheelAndStats #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = TRUE: MPGlobalsScoreHud.bSwitchWheel = ")NET_PRINT_BOOL(MPGlobalsScoreHud.bSwitchWheel) NET_PRINT(" MPGlobalsScoreHud.bSwitchWheelAndStats = ")NET_PRINT_BOOL(MPGlobalsScoreHud.bSwitchWheelAndStats) ENDIF #ENDIF IF MPGlobalsScoreHud.bSniperScopeOn = FALSE IF IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) SET_SNIPER_SCOPE_UNDER_HUD_THIS_FRAME() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) 3 ") ENDIF #ENDIF ENDIF ENDIF RETURN TRUE ENDIF IF IS_DM_PLAYER_DEAD_GLOBAL_SET() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = TRUE: IS_DM_PLAYER_DEAD_GLOBAL_SET = TRUE ") ENDIF #ENDIF IF MPGlobalsScoreHud.bSniperScopeOn = FALSE IF IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) SET_SNIPER_SCOPE_UNDER_HUD_THIS_FRAME() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) 2 ") ENDIF #ENDIF ENDIF ENDIF RETURN TRUE ENDIF #IF USE_TU_CHANGES IF g_b_IsATMrenderingForTimers #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: g_b_IsATMrenderingForTimers = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF #ENDIF IF g_IsMainCreatorCameraRunning #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: g_IsMainCreatorCameraRunning = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF IF IS_MISSION_CREATOR_NEEDING_INGAMEHUD_ON() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = TRUE: IS_MISSION_CREATOR_NEEDING_INGAMEHUD_ON = TRUE ") ENDIF #ENDIF IF MPGlobalsScoreHud.bSniperScopeOn = FALSE IF IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) SET_SNIPER_SCOPE_UNDER_HUD_THIS_FRAME() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) 1 ") ENDIF #ENDIF ENDIF ENDIF RETURN TRUE ENDIF IF g_sSelectorUI.bOnScreen AND IS_THIS_PLAYER_ACTIVE_IN_CORONA(PLAYER_ID()) = FALSE #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: g_sSelectorUI.bOnScreen ") ENDIF #ENDIF RETURN FALSE ENDIF IF IS_PLAYER_SWITCH_IN_PROGRESS() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: IS_PLAYER_SWITCH_IN_PROGRESS() ") ENDIF #ENDIF RETURN FALSE ENDIF IF MPGlobalsScoreHud.bSniperScopeOn = FALSE IF IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) SET_SNIPER_SCOPE_UNDER_HUD_THIS_FRAME() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: IS_AIMING_THROUGH_SNIPER_SCOPE(PLAYER_PED_ID()) ") ENDIF #ENDIF // RETURN FALSE ENDIF ENDIF IF IS_SCRIPT_HUD_DISPLAYING(HUDPART_TRANSITIONHUD) #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: IS_SCRIPT_HUD_DISPLAYING(HUDPART_TRANSITIONHUD) ") ENDIF #ENDIF RETURN FALSE ENDIF IF IS_HUD_PREFERENCE_SWITCHED_ON() = FALSE #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: IS_HUD_PREFERENCE_SWITCHED_ON() = FALSE ") ENDIF #ENDIF RETURN FALSE ENDIF IF GET_CURRENT_GAMEMODE() = GAMEMODE_FM IF GlobalplayerBD[NATIVE_TO_INT(PLAYER_ID())].iRespawnState <> RESPAWN_STATE_PLAYING IF NETWORK_IS_IN_SPECTATOR_MODE() = FALSE AND g_b_On_Deathmatch = FALSE AND NOT IS_BIT_SET(MPGlobals.g_KillStrip.iKillStripFlags, KILL_STRIP_ALLOW_RESPAWN_BAR) AND GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].iCurrentMissionType != FMMC_TYPE_MISSION #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: GlobalplayerBD[NATIVE_TO_INT(PLAYER_ID())].iRespawnState <> RESPAWN_STATE_PLAYING ") ENDIF #ENDIF RETURN FALSE ENDIF ENDIF ENDIF IF IS_BIT_SET(MPSpecGlobals.iBitSet, GLOBAL_SPEC_BS_HIDDEN) #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_ELEMENTS_DISPLAY = FALSE: IS_SPECTATOR_HUD_HIDDEN() = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF /*IF IS_CUTSCENE_ACTIVE() RETURN FALSE ENDIF IF NETWORK_IS_IN_MP_CUTSCENE() RETURN FALSE ENDIF*/ // IF IS_PHONE_ONSCREEN(TRUE) // RETURN FALSE // ENDIF RETURN TRUE ENDFUNC #IF USE_TU_CHANGES PROC SET_HOLD_DRAWING_OF_TIMERS_THIS_FRAME() #IF IS_DEBUG_BUILD BOOL bPrint IF HAS_NET_TIMER_EXPIRED_ONE_FRAME(TimerHudPhoneDebugTimer, 1000) bPrint = TRUE ENDIF IF GET_COMMANDLINE_PARAM_EXISTS("sc_displaytimerhuddisable") bPrint = TRUE ENDIF IF bPrint DEBUG_PRINTCALLSTACK() NET_NL()NET_PRINT("[BCTIMERS] SET_HOLD_DRAWING_OF_TIMERS_THIS_FRAME is being called. ") ENDIF #ENDIF g_b_HoldOffDrawingTimersThisFrame = TRUE ENDPROC #ENDIF FUNC BOOL CAN_INGAME_HUD_DISPLAY_WITH_PHONE(HUDORDER WhichOrder) #IF IS_DEBUG_BUILD BOOL bPrint IF HAS_NET_TIMER_EXPIRED_ONE_FRAME(TimerHudPhoneDebugTimer, 1000) bPrint = TRUE ENDIF IF G_bTurnOnAllHUDBlockers bPrint = TRUE ENDIF IF GET_COMMANDLINE_PARAM_EXISTS("sc_displaytimerhuddisable") bPrint = TRUE ENDIF #ENDIF #IF USE_TU_CHANGES IF g_b_HoldOffDrawingTimersThisFrame = TRUE #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_DISPLAY_WITH_PHONE = FALSE: g_b_HoldOffDrawingTimersThisFrame = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF IF GET_CURRENT_GAMEMODE() = GAMEMODE_FM IF IS_PAUSE_MENU_ACTIVE() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_DISPLAY_WITH_PHONE = FALSE: IS_PAUSE_MENU_ACTIVE = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF ENDIF #ENDIF IF WhichOrder <> HUDORDER_FREEROAM AND MPGlobalsScoreHud.bPhoneUnderHud = FALSE AND MPGlobalsScoreHud.bPhoneUnderHudNoRise = FALSE IF IS_PHONE_ACTIVE_OR_OVERLAPPING_HUD_ITEMS() #IF IS_DEBUG_BUILD IF bPrint NET_NL()NET_PRINT("[BCTIMERS] CAN_INGAME_HUD_DISPLAY_WITH_PHONE = FALSE: IS_PHONE_ACTIVE_OR_OVERLAPPING_HUD_ITEMS = TRUE ") ENDIF #ENDIF RETURN FALSE ENDIF ENDIF RETURN TRUE ENDFUNC /// PURPOSE: Draw a Clock as HUD down in the bottom right hand corner. /// INPUT PARAMS: sClockTitle - Label name that will be used as the clocks title. /// bSetWarning - when true the clock will turn red once warning time is reached. /// iWarningHour - Hour you wish to set warning at /// iWarningMin - Miniute you wish to set warning at /// timerStyle - clock style /// hud_colour - colour of clock text before warning(default white) /// Proc DRAW_CLOCK(String sClockTitle,bool bSetWarning = true,int iWarningHour = 0,int iWarningMin = 0,TIMER_STYLE timerStyle= TIMER_STYLE_DONTUSEMILLISECONDS,HUD_COLOURS hud_colour = HUD_COLOUR_WHITE) int timehours = GET_CLOCK_HOURS() int timemins = GET_CLOCK_MINUTES() int currentTime = (timehours * 60 ) + timemins if bsetWarning if currentTime >= (iWarningHour*60) + iWarningMin hud_colour = HUD_COLOUR_RED endif endif if not IS_CUTSCENE_PLAYING() and not IS_PHONE_ONSCREEN() DRAW_GENERIC_TIMER((currentTime * 1000),sClockTitle,0,timerStyle,-1,PODIUMPOS_NONE,HUDORDER_DONTCARE,false,hud_colour) endif Endproc //BOOL bArrowWidgets // //SPRITE_PLACEMENT RightSprite_widget //SPRITE_PLACEMENT LeftSprite_widget FUNC STRING GET_ARROW_NAME() RETURN "MP_ArrowXlarge" ENDFUNC PROC REQUEST_ARROW_MOVIE(SCALEFORM_INDEX &siMovie) siMovie = REQUEST_SCALEFORM_MOVIE("COUNTDOWN") ENDPROC PROC CLEANUP_ARROW_MOVIE(SCALEFORM_INDEX &siMovie) PRINTLN("[CS_ARR] CLEANUP_ARROW_MOVIE") SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(siMovie) ENDPROC PROC DO_ARROW_SOUNDS(INT iDirection) SWITCH iDirection CASE ciRALLY_ARROW_UP IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Ahead", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK CASE ciRALLY_ARROW_DOWN IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Behind", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK CASE ciRALLY_ARROW_LEFT IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Left", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK CASE ciRALLY_ARROW_RIGHT IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Right", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK CASE ciTARGET_ARROW_SPEEDUP IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Ahead", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK CASE ciTARGET_ARROW_SLOWDOWN IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Behind", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK CASE ciTARGET_ARROW_STOP IF NOT IS_REPLAY_RECORDING() PLAY_SOUND_FRONTEND(-1, "Nav_Arrow_Behind", "DLC_HEISTS_GENERAL_FRONTEND_SOUNDS") ENDIF BREAK ENDSWITCH ENDPROC PROC DRAW_NEW_RALLY_ARROW(SCALEFORM_INDEX &siMovie, INT iDirection) IF IS_SAFE_TO_DRAW_ON_SCREEN() IF NOT IS_HUD_COMPONENT_ACTIVE(NEW_HUD_RADIO_STATIONS) IF NOT g_bBrowserVisible IF HAS_SCALEFORM_MOVIE_LOADED(siMovie) BEGIN_SCALEFORM_MOVIE_METHOD(siMovie, "SET_DIRECTION") SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iDirection) // SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iR) // optional colouring // SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iG) // SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iB) END_SCALEFORM_MOVIE_METHOD() DRAW_SCALEFORM_MOVIE_FULLSCREEN(siMovie, 255, 255, 255, 255) // ELSE // PRINTLN("[CS_ARR] DRAW_NEW_RALLY_ARROW, HAS_SCALEFORM_MOVIE_LOADED") ENDIF ENDIF ENDIF ENDIF ENDPROC PROC DRAW_RALLY_ARROW(INT iDirection, BOOL bEnableUpDown = FALSE) SPRITE_PLACEMENT aSprite STRING sArrow = GET_ARROW_NAME() REQUEST_STREAMED_TEXTURE_DICT("MPArrow") IF HAS_STREAMED_TEXTURE_DICT_LOADED("MPArrow") SWITCH iDirection CASE ciRALLY_ARROW_UP IF bEnableUpDown aSprite.x = 0.250 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 270.000 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_BLUE) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) ENDIF BREAK CASE ciRALLY_ARROW_DOWN IF bEnableUpDown aSprite.x = 0.250 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 90.000 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_BLUE) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) ENDIF BREAK CASE ciRALLY_ARROW_LEFT aSprite.x = 0.250 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 180.000 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_BLUE) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) BREAK CASE ciRALLY_ARROW_RIGHT aSprite.x = 0.750 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 0 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_BLUE) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) BREAK CASE ciTARGET_ARROW_SPEEDUP aSprite.x = 0.750 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 0 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_BLUE) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) BREAK CASE ciTARGET_ARROW_SLOWDOWN aSprite.x = 0.750 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 0 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_BLUE) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) BREAK CASE ciTARGET_ARROW_STOP aSprite.x = 0.750 aSprite.y = 0.350 aSprite.w = 0.050 aSprite.h = 0.150 aSprite.a = 255 aSprite.fRotation = 0 SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_RED) DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) BREAK ENDSWITCH ENDIF ENDPROC //PROC DRAW_SINGLE_RIGHT_ARROW(INT RightIntense) // //// #IF IS_DEBUG_BUILD //// IF bArrowRightWidgets = FALSE //// START_WIDGET_GROUP("DRAW_ARROW") //// CREATE_A_SPRITE_PLACEMENT_WIDGET(RightSprite_widget, "RightSprite_widget") //// CREATE_A_SPRITE_PLACEMENT_WIDGET(LeftSprite_widget, "LeftSprite_widget") //// //// STOP_WIDGET_GROUP() //// //// bArrowRightWidgets = TRUE //// ENDIF //// #ENDIF // // SPRITE_PLACEMENT aSprite // STRING sArrow = GET_ARROW_NAME() // // REQUEST_STREAMED_TEXTURE_DICT("MPArrow") // IF HAS_STREAMED_TEXTURE_DICT_LOADED("MPArrow") // // SWITCH RightIntense // // CASE 1 // aSprite.x = 0.750 // aSprite.y = 0.350 // aSprite.w = 0.050 // aSprite.h = 0.150 // aSprite.a = 255 // aSprite.fRotation = 0 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_YELLOWDARK) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 2 // aSprite.x = 0.750 // aSprite.y = 0.350 // aSprite.w = 0.075 // aSprite.h = 0.200 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 0 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_YELLOW) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 3 // aSprite.x = 0.750 // aSprite.y = 0.350 // aSprite.w = 0.100 // aSprite.h = 0.250 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 0 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_ORANGEDARK) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 4 // aSprite.x = 0.750 // aSprite.y = 0.350 // aSprite.w = 0.125 // aSprite.h = 0.300 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 0 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_ORANGE) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 5 // aSprite.x = 0.750 // aSprite.y = 0.350 // aSprite.w = 0.150 // aSprite.h = 0.350 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 0 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_REDDARK) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 6 // aSprite.x = 0.750 // aSprite.y = 0.350 // aSprite.w = 0.175 // aSprite.h = 0.400 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 0 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_RED) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // ENDSWITCH // // // #IF IS_DEBUG_BUILD //// aSprite.x += RightSprite_widget.x //// aSprite.y += RightSprite_widget.y //// aSprite.w += RightSprite_widget.w //// aSprite.h += RightSprite_widget.h //// aSprite.r += RightSprite_widget.r //// aSprite.g += RightSprite_widget.g //// aSprite.b += RightSprite_widget.b //// aSprite.a += RightSprite_widget.a //// aSprite.fRotation += RightSprite_widget.fRotation //// #ENDIF // ENDIF //ENDPROC // //PROC DRAW_SINGLE_LEFT_ARROW(INT LeftIntense) // // SPRITE_PLACEMENT aSprite // STRING sArrow = GET_ARROW_NAME() // // aSprite.x = 0.0 // aSprite.y = 0.0 // aSprite.w = 0.0 // aSprite.h = 0.0 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // //// #IF IS_DEBUG_BUILD //// aSprite.x += LeftSprite_widget.x //// aSprite.y += LeftSprite_widget.y //// aSprite.w += LeftSprite_widget.w //// aSprite.h += LeftSprite_widget.h //// aSprite.r += LeftSprite_widget.r //// aSprite.g += LeftSprite_widget.g //// aSprite.b += LeftSprite_widget.b //// aSprite.a += LeftSprite_widget.a //// #ENDIF // // REQUEST_STREAMED_TEXTURE_DICT("MPArrow") // IF HAS_STREAMED_TEXTURE_DICT_LOADED("MPArrow") // // SWITCH LeftIntense // // CASE 1 // aSprite.x = 0.250 // aSprite.y = 0.350 // aSprite.w = 0.050 // aSprite.h = 0.150 // aSprite.a = 255 // aSprite.fRotation = 180.000 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_YELLOWDARK) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 2 // aSprite.x = 0.250 // aSprite.y = 0.350 // aSprite.w = 0.075 // aSprite.h = 0.200 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 180.000 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_YELLOW) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 3 // aSprite.x = 0.250 // aSprite.y = 0.350 // aSprite.w = 0.100 // aSprite.h = 0.250 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 180.000 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_ORANGEDARK) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 4 // aSprite.x = 0.250 // aSprite.y = 0.350 // aSprite.w = 0.125 // aSprite.h = 0.300 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 180.000 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_ORANGE) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 5 // aSprite.x = 0.250 // aSprite.y = 0.350 // aSprite.w = 0.150 // aSprite.h = 0.350 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 180.000 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_REDDARK) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // CASE 6 // aSprite.x = 0.250 // aSprite.y = 0.350 // aSprite.w = 0.175 // aSprite.h = 0.400 // aSprite.r = 0 // aSprite.g = 0 // aSprite.b = 0 // aSprite.a = 255 // aSprite.fRotation = 180.000 // // SET_SPRITE_HUD_COLOUR(aSprite, HUD_COLOUR_RED) // DRAW_2D_SPRITE("MPArrow", sArrow, aSprite) // BREAK // // ENDSWITCH // //// #IF IS_DEBUG_BUILD //// aSprite.x += LeftSprite_widget.x //// aSprite.y += LeftSprite_widget.y //// aSprite.w += LeftSprite_widget.w //// aSprite.h += LeftSprite_widget.h //// aSprite.r += LeftSprite_widget.r //// aSprite.g += LeftSprite_widget.g //// aSprite.b += LeftSprite_widget.b //// aSprite.a += LeftSprite_widget.a //// aSprite.fRotation += LeftSprite_widget.fRotation //// #ENDIF // ENDIF //ENDPROC // // ///// PURPOSE: ///// Draws the arrows to show the driver/passenger the intensity of the directions. ///// PARAMS: ///// LeftIntense - 0 - 6 (High Intense) ///// RightIntense - 0 - 6 (High Intense) //PROC DRAW_RALLY_ARROWS(INT LeftIntense, INT RightIntense) // DRAW_SINGLE_LEFT_ARROW(LeftIntense) // DRAW_SINGLE_RIGHT_ARROW(RightIntense) //ENDPROC FUNC STRING GET_HUD_ELEMENT_STRING(PROGRESSHUD_ELEMENTS eHudElement) SWITCH eHudElement CASE PROGRESSHUD_INVALID RETURN "PROGRESSHUD_INVALID" CASE PROGRESSHUD_METER RETURN "PROGRESSHUD_METER" CASE PROGRESSHUD_CHECKPOINT RETURN "PROGRESSHUD_CHECKPOINT" CASE PROGRESSHUD_ELIMINATION RETURN "PROGRESSHUD_ELIMINATION" CASE PROGRESSHUD_SINGLE_NUMBER RETURN "PROGRESSHUD_SINGLE_NUMBER" CASE PROGRESSHUD_DOUBLE_NUMBER RETURN "PROGRESSHUD_DOUBLE_NUMBER" CASE PROGRESSHUD_DOUBLE_NUMBER_PLACE RETURN "PROGRESSHUD_DOUBLE_NUMBER_PLACE" CASE PROGRESSHUD_SCORE RETURN "PROGRESSHUD_SCORE" CASE PROGRESSHUD_TIMER RETURN "PROGRESSHUD_TIMER" CASE PROGRESSHUD_WINDMETER RETURN "PROGRESSHUD_WINDMETER" CASE PROGRESSHUD_BIG_RACE_POSITION RETURN "PROGRESSHUD_BIG_RACE_POSITION" CASE PROGRESSHUD_SPRITE_METER RETURN "PROGRESSHUD_SPRITE_METER" CASE PROGRESSHUD_FOUR_ICON_BAR RETURN "PROGRESSHUD_FOUR_ICON_BAR" CASE PROGRESSHUD_FIVE_ICON_SCORE_BAR RETURN "PROGRESSHUD_FIVE_ICON_SCORE_BAR" CASE PROGRESSHUD_SIX_ICON_BAR RETURN "PROGRESSHUD_SIX_ICON_BAR" ENDSWITCH RETURN "" ENDFUNC FUNC STRING GET_HUD_ELEMENT_ACTUALLY_DRAW_STRING(PROGRESSHUD_ELEMENTS eHudElement) SWITCH eHudElement CASE PROGRESSHUD_INVALID RETURN "INVALID" CASE PROGRESSHUD_METER RETURN "ACTUALLY_DRAW_GENERAL_METER" CASE PROGRESSHUD_CHECKPOINT RETURN "ACTUALLY_DRAW_GENERAL_CHECKPOINT" CASE PROGRESSHUD_ELIMINATION RETURN "ACTUALLY_DRAW_GENERAL_ELIMINATION" CASE PROGRESSHUD_SINGLE_NUMBER RETURN "ACTUALLY_DRAW_GENERAL_SINGLE_BIG_NUMBER" CASE PROGRESSHUD_DOUBLE_NUMBER RETURN "ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER" CASE PROGRESSHUD_DOUBLE_NUMBER_PLACE RETURN "ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER_PLACE" CASE PROGRESSHUD_SCORE RETURN "ACTUALLY_DRAW_GENERAL_SINGLE_SCORE" CASE PROGRESSHUD_TIMER RETURN "ACTUALLY_DRAW_GENERAL_TIME_TIMER" CASE PROGRESSHUD_WINDMETER RETURN "ACTUALLY_DRAW_GENERAL_WINDMETER" CASE PROGRESSHUD_BIG_RACE_POSITION RETURN "ACTUALLY_DRAW_GENERAL_BIG_RACE_POSITION" CASE PROGRESSHUD_SPRITE_METER RETURN "ACTUALLY_DRAW_GENERAL_SPRITE_METER" CASE PROGRESSHUD_FOUR_ICON_BAR RETURN "ACTUALLY_DRAW_GENERAL_FOUR_ICON_BAR" CASE PROGRESSHUD_FIVE_ICON_SCORE_BAR RETURN "ACTUALLY_DRAW_GENERAL_FIVE_ICON_SCORE_BAR" CASE PROGRESSHUD_SIX_ICON_BAR RETURN "ACTUALLY_DRAW_GENERAL_SIX_ICON_BAR" ENDSWITCH RETURN "" ENDFUNC FUNC INT GET_HUD_ELEMENT_ORDER_INDEX(PROGRESSHUD_ELEMENTS eHudElement) SWITCH eHudElement CASE PROGRESSHUD_INVALID RETURN -1 CASE PROGRESSHUD_TIMER RETURN 0 CASE PROGRESSHUD_SINGLE_NUMBER RETURN 1 CASE PROGRESSHUD_DOUBLE_NUMBER RETURN 2 CASE PROGRESSHUD_DOUBLE_NUMBER_PLACE RETURN 3 CASE PROGRESSHUD_CHECKPOINT RETURN 4 CASE PROGRESSHUD_METER RETURN 5 CASE PROGRESSHUD_SCORE RETURN 6 CASE PROGRESSHUD_ELIMINATION RETURN 7 CASE PROGRESSHUD_WINDMETER RETURN 8 CASE PROGRESSHUD_BIG_RACE_POSITION RETURN 9 CASE PROGRESSHUD_SPRITE_METER RETURN 10 CASE PROGRESSHUD_FOUR_ICON_BAR RETURN 11 CASE PROGRESSHUD_FIVE_ICON_SCORE_BAR RETURN 12 CASE PROGRESSHUD_SIX_ICON_BAR RETURN 13 CASE PROGRESSHUD_DOUBLE_TEXT RETURN 14 ENDSWITCH RETURN -1 ENDFUNC FUNC BOOL IS_HUD_PRIORITY_VALID(HUD_PRIORITY eHudPriority) RETURN (eHudPriority >= HUD_PRIORITY_FIRST AND eHudPriority < HUD_PRIORITY_MAX) ENDFUNC FUNC BOOL IS_PRIORITY_HUD_ELEMENT_VALID(HUD_PRIORITY eHudPriority) IF IS_HUD_PRIORITY_VALID(eHudPriority) RETURN (g_ePriorityHudElement[ENUM_TO_INT(eHudPriority)] != PROGRESSHUD_INVALID) ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_HUD_ELEMENT_ORDER_INDEX_VALID(INT iOrderIndex) RETURN (iOrderIndex > -1 AND iOrderIndex < NUMBER_OF_DIFFERENT_HUD_ELEMENTS) ENDFUNC /// PURPOSE: Clears the current HUD element in priority slot PROC CLEAR_PRIORITY_HUD_ELEMENT(HUD_PRIORITY eHudPriority) IF IS_HUD_PRIORITY_VALID(eHudPriority) IF g_ePriorityHudElement[ENUM_TO_INT(eHudPriority)] != PROGRESSHUD_INVALID #IF IS_DEBUG_BUILD PRINTLN("[PRIORITY_HUD] CLEAR_PRIORITY_HUD_ELEMENT - Clearing Priority Hud Element ", ENUM_TO_INT(eHudPriority), " - Called From Script: ", GET_THIS_SCRIPT_NAME()) #ENDIF g_ePriorityHudElement[ENUM_TO_INT(eHudPriority)] = PROGRESSHUD_INVALID ENDIF ENDIF ENDPROC /// PURPOSE: Clears all the current HUD element priorities PROC CLEAR_ALL_PRIORITY_HUD_ELEMENTS() INT iHudPriority INT iMaxPriority = ENUM_TO_INT(HUD_PRIORITY_MAX) REPEAT iMaxPriority iHudPriority IF g_ePriorityHudElement[iHudPriority] != PROGRESSHUD_INVALID #IF IS_DEBUG_BUILD PRINTLN("[PRIORITY_HUD] CLEAR_ALL_PRIORITY_HUD_ELEMENTS - Clearing Priority Hud Element ", iHudPriority) #ENDIF g_ePriorityHudElement[iHudPriority] = PROGRESSHUD_INVALID ENDIF ENDREPEAT #IF IS_DEBUG_BUILD PRINTLN("[PRIORITY_HUD] CLEAR_ALL_PRIORITY_HUD_ELEMENTS - Called From Script: ", GET_THIS_SCRIPT_NAME()) #ENDIF ENDPROC /// PURPOSE: Processes the passed in HUD element first. /// **Must call CLEAR_PRIORITY_HUD_ELEMENT or CLEAR_ALL_PRIORITY_HUD_ELEMENTS after. PROC SET_PRIORITY_HUD_ELEMENT(PROGRESSHUD_ELEMENTS eHudElement, HUD_PRIORITY eHudPriority) IF IS_HUD_PRIORITY_VALID(eHudPriority) IF g_ePriorityHudElement[ENUM_TO_INT(eHudPriority)] != eHudElement #IF IS_DEBUG_BUILD PRINTLN("[PRIORITY_HUD] SET_PRIORITY_HUD_ELEMENT - Setting Priority Hud ", ENUM_TO_INT(eHudPriority), " Element To: ", GET_HUD_ELEMENT_STRING(eHudElement), " - Called From Script: ", GET_THIS_SCRIPT_NAME()) #ENDIF g_ePriorityHudElement[ENUM_TO_INT(eHudPriority)] = eHudElement ENDIF ENDIF ENDPROC /// PURPOSE: Gets the current HUD element priority to be processed first FUNC PROGRESSHUD_ELEMENTS GET_PRIORITY_HUD_ELEMENT(HUD_PRIORITY eHudPriority) IF IS_HUD_PRIORITY_VALID(eHudPriority) RETURN g_ePriorityHudElement[ENUM_TO_INT(eHudPriority)] ENDIF RETURN PROGRESSHUD_INVALID ENDFUNC /// PURPOSE: Checks if a HUD element is a priority FUNC BOOL IS_HUD_ELEMENT_A_PRIORITY(PROGRESSHUD_ELEMENTS eHudElement) IF IS_HUD_ELEMENT_ORDER_INDEX_VALID(ENUM_TO_INT(eHudElement)) INT iHudPriority INT iMaxPriority = ENUM_TO_INT(HUD_PRIORITY_MAX) REPEAT iMaxPriority iHudPriority IF (g_ePriorityHudElement[iHudPriority] = eHudElement) RETURN TRUE ENDIF ENDREPEAT ENDIF RETURN FALSE ENDFUNC PROC ACTUALLY_DRAW_GENERAL_HUD_ELEMENT(PROGRESSHUD_ELEMENTS eHudElement, INT iHudElementIndex) SWITCH eHudElement CASE PROGRESSHUD_TIMER ACTUALLY_DRAW_GENERAL_TIME_TIMER(iHudElementIndex, MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_Timer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.sGenericTimer_TimerTitle[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_ExtraTime[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_MedalDisplay[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.bGenericTimer_TimerStyle[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.iGenericTimer_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bDisplayAsDashes[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_TitleColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bIsLiteral[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_Powerup[iHudElementIndex], MPGlobalsScoreHud.ElementHud_TIMER.GenericTimer_bHideUnusedZeros[iHudElementIndex]) BREAK CASE PROGRESSHUD_SINGLE_NUMBER ACTUALLY_DRAW_GENERAL_SINGLE_BIG_NUMBER(iHudElementIndex, MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_NumberTitle[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.iGenericNumber_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_NumberString[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.sGenericNumber_TitleColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.bGenericNumber_DrawInfinity[iHudElementIndex] , MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_EnablePulsing[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_PulseColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SINGLENUMBER.GenericNumber_PulseTime[iHudElementIndex]) BREAK CASE PROGRESSHUD_DOUBLE_NUMBER ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER(iHudElementIndex, MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_NumberTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.sGenericDoubleNumber_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_COLOUR[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.iGenericDoubleNumber_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bDisplayWarning[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bUseNonPlayerFont[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_TitleCOLOUR[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_iAlpha[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMBER.GenericDoubleNumber_bFlashTitle[iHudElementIndex]) BREAK CASE PROGRESSHUD_DOUBLE_NUMBER_PLACE ACTUALLY_DRAW_GENERAL_DOUBLE_BIG_NUMBER_PLACE(iHudElementIndex, MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_NumberTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.sGenericDoubleNumberPlace_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_COLOUR[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.iGenericDoubleNumberPlace_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_bIsPlayer[iHudElementIndex] , MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_TitleCOLOUR[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_bCustomFont[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLENUMPLACE.GenericDoubleNumberPlace_eCustomFont[iHudElementIndex]) BREAK CASE PROGRESSHUD_CHECKPOINT ACTUALLY_DRAW_GENERAL_CHECKPOINT(iHudElementIndex, MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_MaxNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.sGenericCheckpoint_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FreeRoamPos[iHudElementIndex].x, MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FreeRoamPos[iHudElementIndex].y, MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_CHECKPOINT.iGenericCheckpoint_iInBuiltMultiplyer[iHudElementIndex], #IF USE_TU_CHANGES GenericCheckpoint_Cross0[iHudElementIndex], GenericCheckpoint_Cross1[iHudElementIndex], GenericCheckpoint_Cross2[iHudElementIndex], GenericCheckpoint_Cross3[iHudElementIndex], GenericCheckpoint_Cross4[iHudElementIndex], GenericCheckpoint_Cross5[iHudElementIndex], GenericCheckpoint_Cross6[iHudElementIndex], GenericCheckpoint_Cross7[iHudElementIndex], #ENDIF MPGlobalsScoreHud.ElementHud_CHECKPOINT.GenericCheckpoint_FleckColour[iHudElementIndex]) BREAK CASE PROGRESSHUD_METER ACTUALLY_DRAW_GENERAL_METER(iHudElementIndex, MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_MaxNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.sGenericMeter_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FreeRoamPos[iHudElementIndex].x, MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FreeRoamPos[iHudElementIndex].y, MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.iGenericMeter_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bOnlyZeroIsEmpty[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bBigMeter[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iDrawRedDangerZonePercent[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bIsLiteralString[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_PercentageLine[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_TextColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bDrawLineUnderName[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_LineUnderNameColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_MakeBarUrgent[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iUrgentPercentage[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.PulseToColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.iPulseTime[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.bUseScoreTitle[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fMaxNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bUseSecondaryBar[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_eSecondaryBarColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fSecondaryBarPercentage[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bTransparentSecBarIntersectingMainBar[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_eSecBarPulseToColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iSecBarPulseTime[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_fSecBarStartPercentage[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_iGFXDrawOrder[iHudElementIndex], MPGlobalsScoreHud.ElementHud_METER.GenericMeter_bCapMaxPercentage[iHudElementIndex]) BREAK CASE PROGRESSHUD_SCORE ACTUALLY_DRAW_GENERAL_SINGLE_SCORE(iHudElementIndex, MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.sGenericScore_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.iGenericScore_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.sGenericScore_NumberString[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.bGenericScore_isFloat[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.bGenericScore_FloatValue[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_ColourFlash[iHudElementIndex],MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_TitleColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_DisplayWarning[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_MaxNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_DrawInfinity[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Powerup[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_Style[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bIsLiteralTitle[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_iAlpha[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bDisplayBlankScore[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_pPlayerID[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bFlashTitle[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_bDrawLineUnderName[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SCORE.GenericScore_LineUnderNameColour[iHudElementIndex]) BREAK CASE PROGRESSHUD_ELIMINATION ACTUALLY_DRAW_GENERAL_ELIMINATION(iHudElementIndex, MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_MaxNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.sGenericElimination_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFirst[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourSecond[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_VisibleBoxes[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive1[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive2[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive3[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive4[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive5[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive6[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive7[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.bGenericElimination_IsActive8[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.iGenericElimination_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FreeRoamPos[iHudElementIndex].x,MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FreeRoamPos[iHudElementIndex].y,MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box1Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box2Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box3Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box4Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box5Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box6Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box7Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box8Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box1Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box2Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box3Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box4Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box5Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box6Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box7Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Box8Colour_InActive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_TitleColour[iHudElementIndex] #IF USE_TU_CHANGES , GenericElimination_Cross0[iHudElementIndex], GenericElimination_Cross1[iHudElementIndex],GenericElimination_Cross2[iHudElementIndex],GenericElimination_Cross3[iHudElementIndex],GenericElimination_Cross4[iHudElementIndex],GenericElimination_Cross5[iHudElementIndex], GenericElimination_Cross6[iHudElementIndex],GenericElimination_Cross7[iHudElementIndex] #ENDIF, MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_bUseNonPlayerFont[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_FleckColour[iHudElementIndex] #IF USE_TU_CHANGES , MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross0Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross1Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross2Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross3Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross4Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross5Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross6Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_ELIMINATION.GenericElimination_Cross7Colour[iHudElementIndex] #ENDIF) BREAK CASE PROGRESSHUD_WINDMETER ACTUALLY_DRAW_GENERAL_WINDMETER(iHudElementIndex, MPGlobalsScoreHud.ElementHud_WIND.sGenericMeter_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_WIND.fGenericMeter_Heading[iHudElementIndex], MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_WindSpeed[iHudElementIndex], MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_RedComponent[iHudElementIndex], MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_BlueComponent[iHudElementIndex], MPGlobalsScoreHud.ElementHud_WIND.iGenericMeter_GreenComponent[iHudElementIndex]) BREAK CASE PROGRESSHUD_BIG_RACE_POSITION ACTUALLY_DRAW_GENERAL_BIG_RACE_POSITION(iHudElementIndex, MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_iRacePosition[iHudElementIndex], MPGlobalsScoreHud.ElementHud_BIGRACEPOSITION.eGenericBigRacePos_eRacePositionHUDColour[iHudElementIndex]) BREAK CASE PROGRESSHUD_SPRITE_METER ACTUALLY_DRAW_GENERAL_SPRITE_METER(iHudElementIndex, MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_MaxNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.sGenericMeter_Title[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_Colour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_FlashTimer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bIsPlayer[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.iGenericMeter_TitleNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bOnlyZeroIsEmpty[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_ColourFlashType[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_ColourFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_SpriteName[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.sGenericMeter_DictionaryName, MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_bIsLiteralString[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_FleckColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SPRITEMETER.GenericMeter_TextColour[iHudElementIndex]) BREAK CASE PROGRESSHUD_FOUR_ICON_BAR ACTUALLY_DRAW_GENERAL_FOUR_ICON_BAR(iHudElementIndex, MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_TitleColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_pPlayerFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_aPowerupFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_bFlashIconFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FOURICONBAR.eGenericFourIconBar_iFlashTime[iHudElementIndex]) BREAK CASE PROGRESSHUD_FIVE_ICON_SCORE_BAR ACTUALLY_DRAW_GENERAL_FIVE_ICON_SCORE_BAR(iHudElementIndex, MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_Number[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_FloatValue[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_NumberString[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_isFloat[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_MaXNumber[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_DrawInfinity[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_TitleColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerFive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_aPowerupFive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pPlayerToHighlight[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bEnablePlayerHighlight[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupOneColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupTwoColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupThreeColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupFourColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_ePowerupFiveColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iInstanceToHighlight[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bPulseHighlight[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iPulseTime[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_pAvatarToFlash[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_bFlashAvatar[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iAvatarFlashTime[iHudElementIndex], MPGlobalsScoreHud.ElementHud_FIVEICONSCOREBAR.eGenericFiveIconScoreBar_iAvatarSlotToFlash[iHudElementIndex]) BREAK CASE PROGRESSHUD_SIX_ICON_BAR ACTUALLY_DRAW_GENERAL_SIX_ICON_BAR(iHudElementIndex, MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_TitleColour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerFive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_pPlayerSix[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupFive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_aPowerupSix[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconOne[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconTwo[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconThree[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconFour[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconFive[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_bFlashIconSix[iHudElementIndex], MPGlobalsScoreHud.ElementHud_SIXICONBAR.eGenericSixIconBar_iFlashTime[iHudElementIndex]) BREAK CASE PROGRESSHUD_DOUBLE_TEXT ACTUALLY_DRAW_DOUBLE_TEXT_BAR(iHudElementIndex, MPGlobalsScoreHud.ElementHud_DOUBLETEXT.sGenericDoubleText_TitleLeft[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLETEXT.sGenericDoubleText_TitleRight[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bTitleLeftLiteral[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bTitleRightLiteral[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_TitleCOLOUR[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_bCustomFont[iHudElementIndex], MPGlobalsScoreHud.ElementHud_DOUBLETEXT.GenericDoubleText_eCustomFont[iHudElementIndex]) BREAK ENDSWITCH ENDPROC FUNC BOOL IS_RP_BAR_ACTIVE_IN_ARENA_BOX() RETURN g_bEnableRPBarInArenaBox ENDFUNC PROC SET_RP_BAR_ACTIVE_STATE_IN_ARENA_BOX(BOOL bState) IF bState #IF IS_DEBUG_BUILD PRINTLN("[WHEEL_SPIN] - SET_RP_BAR_ACTIVE_STATE_IN_ARENA_BOX - Setting g_bEnableRPBarInArenaBox to: TRUE") PRINTLN("[WHEEL_SPIN] - SET_RP_BAR_ACTIVE_STATE_IN_ARENA_BOX - Callstack:") DEBUG_PRINTCALLSTACK() #ENDIF g_bEnableRPBarInArenaBox = TRUE ELSE #IF IS_DEBUG_BUILD PRINTLN("[WHEEL_SPIN] - SET_RP_BAR_ACTIVE_STATE_IN_ARENA_BOX - Setting g_bEnableRPBarInArenaBox to: FALSE") PRINTLN("[WHEEL_SPIN] - SET_RP_BAR_ACTIVE_STATE_IN_ARENA_BOX - Callstack:") DEBUG_PRINTCALLSTACK() #ENDIF g_bEnableRPBarInArenaBox = FALSE ENDIF ENDPROC