Files
gtav-src/script/dev_ng/shared/include/public/arcade_games_leaderboard.sch
T
2025-09-29 00:52:08 +02:00

1454 lines
48 KiB
XML
Executable File

USING "arcade_cabinet_minigame_common.sch"
USING "arcade_games_sound.sch"
USING "arcade_games_help_text.sch"
// ------------------------------ LEADERBOARD ------------------------------
CONST_INT ciARCADE_GAMES_LBD_DEFAULT_RANK 99
CONST_INT ciARCADE_GAMES_RESEND_LEADERBOARD_REQUEST_TIME 300000
STRUCT ARCADE_GAMES_LEADERBOARD_STRUCT
INT iInitials = 0
INT iScore = -1
BOOL bPlayer = FALSE
ENDSTRUCT
STRUCT ARCADE_GAMES_LEADERBOARD_DATA
ARCADE_GAMES_LEADERBOARD_STRUCT sLeaderboard[ciCASINO_ARCADE_LEADERBOARD_POSITIONS]
CASINO_ARCADE_GAME eGame
BOOL bLeaderboardReceived
BOOL bEditing = FALSE
BOOL bCheated = FALSE
INT iLastLeaderboardRequest = -HIGHEST_INT
INT iLocalLbdPos = -1
INT iCurrentInitial = 0
INT iInitials = 0
INT iLbdInitialProfanityToken = 0
INT iTickTimer = 0
#IF IS_DEBUG_BUILD
BOOL bForceDefaultLeaderboard
#ENDIF
ENDSTRUCT
ARCADE_GAMES_LEADERBOARD_DATA sAGLeaderboardData
FUNC CASINO_ARCADE_GAME ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
RETURN sAGLeaderboardData.eGame
ENDFUNC
FUNC STRING ARCADE_GAMES_GAME_NAME_TO_STRING(CASINO_ARCADE_GAME eEnum)
SWITCH eEnum
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER RETURN "Degenatron: Defender of the Faith"
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY RETURN "Degenatron: Monkey's Paradise"
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR RETURN "Degenatron: Penetrator"
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3 RETURN "Space Monkey 3: Bananas Gone Bad"
CASE CASINO_ARCADE_GAME_TLG RETURN "Badlands Revenge II"
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL RETURN "Race & Chase: Street Legal"
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS RETURN "Race & Chase: Crotch Rockets"
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN RETURN "Race & Chase: Get Truckin'"
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN RETURN "The Wizard's Ruin"
CASE CASINO_ARCADE_GAME_CAMHEDZ RETURN "Camhedz: Found Footage"
CASE CASINO_ARCADE_GAME_QUB3D RETURN "Qub3D"
ENDSWITCH
RETURN "***INVALID***"
ENDFUNC
FUNC STRING ARCADE_GAMES_LEADERBOARD_GET_TITLE_TEXTURE_NAME()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN "HUD_TEXT_HIGH_SCORES"
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN "LEADERBOARD"
CASE CASINO_ARCADE_GAME_TLG
RETURN "LEADERBOARDS"
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN "LEADERBOARDS"
// We use out own title
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN "HUD_MENU_ENTRY" // Sock puppet texture.
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN "LEADERBOARD"
CASE CASINO_ARCADE_GAME_QUB3D
RETURN "QUB3D_Logo"
ENDSWITCH
RETURN ""
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_TITLE_TEXTURE_POSITION()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(960.0,200.0)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(960.0,200.0)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(960.0,200.0)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(960.0,200.0)
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(960.0,-200.0)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(960.0,200.0)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(960.0,172.0)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_TITLE_TEXTURE_SIZE()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(476.0,52)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(1024.0, 128.0)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(276, 48)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(276, 48)
// We use out own title
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(1, 1)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(824, 112)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(348, 112)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SIZE()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(48.0,52.0)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(28.0,44.0)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(24, 48)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(24, 48)
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(32, 64)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(32, 56)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(28, 32)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SEPARATION()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(48.0,52.0*1.1)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(28.0, 44.0 * 1.1)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(24, 48*1.1)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(24, 48*1.1)
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(32, 64*1.1)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(32, 56*1.1)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(32, 64*1.1)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_RANK_COLUMN_POSITION()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(450.0,350.0)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(600.0,350.0)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(600.0,350.0)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(600.0,350.0)
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(600.0,250.0)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(600.0,350.0)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(600.0,300.0)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_INITIALS_COLUMN_POSITION()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(650.0,350.0)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(750.0,350.0)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(750.0,350.0)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(750.0,350.0)
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(738.0,250.0)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(750.0,350.0)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(738.0,300.0)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_LEADERBOARD_GET_SCORE_COLUMN_POSITION()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN INIT_VECTOR_2D(1220.0,350.0)
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN INIT_VECTOR_2D(1220.0,350.0)
CASE CASINO_ARCADE_GAME_TLG
RETURN INIT_VECTOR_2D(1220.0,350.0)
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN INIT_VECTOR_2D(1220.0,350.0)
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN INIT_VECTOR_2D(1220.0,250.0)
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN INIT_VECTOR_2D(1220.0,350.0)
CASE CASINO_ARCADE_GAME_QUB3D
RETURN INIT_VECTOR_2D(1220.0,300.0)
ENDSWITCH
RETURN INIT_VECTOR_2D(0.0,0.0)
ENDFUNC
FUNC RGBA_COLOUR_STRUCT ARCADE_GAMES_LEADERBOARD_GET_DEFAULT_COLOR()
RGBA_COLOUR_STRUCT rgba
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
INIT_RGBA_STRUCT(rgba,255,255,255,255)
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
INIT_RGBA_STRUCT(rgba,255,255,255,255)
BREAK
CASE CASINO_ARCADE_GAME_TLG
INIT_RGBA_STRUCT(rgba,255,255,255,255)
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
INIT_RGBA_STRUCT(rgba,255,255,255,255)
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
INIT_RGBA_STRUCT(rgba, 141, 239, 255)
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
INIT_RGBA_STRUCT(rgba,255,255,255,255)
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
INIT_RGBA_STRUCT(rgba,255,255,255,255)
BREAK
ENDSWITCH
RETURN rgba
ENDFUNC
FUNC RGBA_COLOUR_STRUCT ARCADE_GAMES_LEADERBOARD_GET_ENTRY_COLOR(BOOL bIsPlayerTwo)
RGBA_COLOUR_STRUCT rgba
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
INIT_RGBA_STRUCT(rgba,255,0,0,255)
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
INIT_RGBA_STRUCT(rgba,255,255,0,255)
BREAK
CASE CASINO_ARCADE_GAME_TLG
IF bIsPlayerTwo
INIT_RGBA_STRUCT(rgba,0,0,255,255)
ELSE
INIT_RGBA_STRUCT(rgba,255,0,0,255)
ENDIF
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
IF bIsPlayerTwo
INIT_RGBA_STRUCT(rgba,0,0,255,255)
ELSE
INIT_RGBA_STRUCT(rgba,255,0,0,255)
ENDIF
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
INIT_RGBA_STRUCT(rgba,242,153,216,255)
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
INIT_RGBA_STRUCT(rgba,210,43,20,255)
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
INIT_RGBA_STRUCT(rgba,255,0,255,255)
BREAK
ENDSWITCH
RETURN rgba
ENDFUNC
FUNC STRING ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY_FOR_GAME(CASINO_ARCADE_GAME eGame)
SWITCH eGame
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN "MPArcadeDegenatronCharacters"
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN "MPGoGoSpaceResident"
CASE CASINO_ARCADE_GAME_TLG
RETURN "MPLastGunslingersHud"
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN "MPCamhedzVHSFont"
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN "MPRoadArcade_HUD_Gen"
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN "MPWizardsSleeveCharacters"
CASE CASINO_ARCADE_GAME_QUB3D
RETURN "MPQub3d_HUD"
ENDSWITCH
RETURN ""
ENDFUNC
FUNC STRING ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY()
RETURN ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY_FOR_GAME(ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME())
ENDFUNC
FUNC STRING ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_NUMBER()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN "HUD_NUMBER_"
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN "HUD_TIMER_NUMBER_"
CASE CASINO_ARCADE_GAME_TLG
RETURN "FONT_"
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN "FONT_"
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN "HUD_NUMBER_"
CASE CASINO_ARCADE_GAME_QUB3D
RETURN "NO_BIG_"
ENDSWITCH
RETURN ""
ENDFUNC
FUNC STRING ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN "HUD_LETTER_"
CASE CASINO_ARCADE_GAME_TLG
RETURN "FONT_"
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN "FONT_"
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN "HUD_LETTER_"
CASE CASINO_ARCADE_GAME_QUB3D
RETURN "LET_"
ENDSWITCH
RETURN ""
ENDFUNC
FUNC INT ARCADE_GAMES_LEADERBOARD_GET_SCORE_MAX_CHARS()
RETURN 0
ENDFUNC
/// PURPOSE:
/// Returns the default initials for a leaderboard position
FUNC INT ARCADE_GAMES_GET_DEFAULT_INITIALS_FOR_POSITION(INT iPosition)
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
SWITCH iPosition
CASE 0 RETURN 46034 //SPL
CASE 1 RETURN 53635 //DGN
CASE 2 RETURN 74692 //EPS
CASE 3 RETURN 61715 //TEP
CASE 4 RETURN 33859 //CRI
CASE 5 RETURN 79058 //STT
CASE 6 RETURN 73989 //FES
CASE 7 RETURN 73932 //MDS
CASE 8 RETURN 16401 //RAE
CASE 9 RETURN 21002 //KIF
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
SWITCH iPosition
CASE 0 RETURN 46034 //SPL
CASE 1 RETURN 263 //HEA
CASE 2 RETURN 53635 //DGN
CASE 3 RETURN 54156 //MON
CASE 4 RETURN 98570 //KEY
CASE 5 RETURN 17344 //APE
CASE 6 RETURN 69647 //PAR
CASE 7 RETURN 58434 //CRO
CASE 8 RETURN 73932 //MDS
CASE 9 RETURN 45319 //HEL
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
SWITCH iPosition
CASE 0 RETURN 46034 //SPL
CASE 1 RETURN 53519 //PEN
CASE 2 RETURN 53635 //DGN
CASE 3 RETURN 70547 //TOR
CASE 4 RETURN 57490 //SCO
CASE 5 RETURN 17924 //EYE
CASE 6 RETURN 49681 //RIM
CASE 7 RETURN 5001 //JOB
CASE 8 RETURN 73932 //MDS
CASE 9 RETURN 13522 //STD
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
SWITCH iPosition
CASE 0 RETURN 46034 //SPL
CASE 1 RETURN 53519 //PEN
CASE 2 RETURN 53635 //DGN
CASE 3 RETURN 70547 //TOR
CASE 4 RETURN 57490 //SCO
CASE 5 RETURN 17924 //EYE
CASE 6 RETURN 49681 //RIM
CASE 7 RETURN 5001 //JOB
CASE 8 RETURN 73932 //MDS
CASE 9 RETURN 13522 //STD
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_TLG
SWITCH iPosition
CASE 0 RETURN 46034 //SPL
CASE 1 RETURN 53519 //PEN
CASE 2 RETURN 53635 //DGN
CASE 3 RETURN 70547 //TOR
CASE 4 RETURN 57490 //SCO
CASE 5 RETURN 17924 //EYE
CASE 6 RETURN 49681 //RIM
CASE 7 RETURN 5001 //JOB
CASE 8 RETURN 73932 //MDS
CASE 9 RETURN 13522 //STD
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
SWITCH iPosition
CASE 0 RETURN 102401 //BAZ
CASE 1 RETURN 53519 //PEN
CASE 2 RETURN 53635 //DGN
CASE 3 RETURN 70547 //TOR
CASE 4 RETURN 57490 //SCO
CASE 5 RETURN 17924 //EYE
CASE 6 RETURN 83154 //STU
CASE 7 RETURN 5001 //JOB
CASE 8 RETURN 73932 //ADW
CASE 9 RETURN 54417 //RSN
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CDEBUG1LN(DEBUG_MINIGAME, "ARCADE_GAMES_GET_DEFAULT_INITIALS_FOR_POSITION - CASINO_ARCADE_GAME_RNC_STREET_LEGAL: Position Number ", iPosition)
SWITCH iPosition
CASE 0 RETURN 102401 //BAZ
CASE 1 RETURN 4114 //SAB
CASE 2 RETURN 53635 //ELL
CASE 3 RETURN 13060 //EMD
CASE 4 RETURN 57490 //JST
CASE 5 RETURN 8896 //ALC
CASE 6 RETURN 8978 //SMC
CASE 7 RETURN 1216 //ATA
CASE 8 RETURN 73932 //ADW
CASE 9 RETURN 54417 //RSN
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
SWITCH iPosition
CASE 0 RETURN 102401 //BAZ
CASE 1 RETURN 4114 //SAB
CASE 2 RETURN 53635 //ELL
CASE 3 RETURN 13060 //EMD
CASE 4 RETURN 57490 //JST
CASE 5 RETURN 8896 //ALC
CASE 6 RETURN 8978 //SMC
CASE 7 RETURN 1216 //ATA
CASE 8 RETURN 73932 //ADW
CASE 9 RETURN 54417 //RSN
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
SWITCH iPosition
CASE 0 RETURN 102401 //BAZ
CASE 1 RETURN 4114 //SAB
CASE 2 RETURN 53635 //ELL
CASE 3 RETURN 13060 //EMD
CASE 4 RETURN 57490 //JST
CASE 5 RETURN 8896 //ALC
CASE 6 RETURN 8978 //SMC
CASE 7 RETURN 1216 //ATA
CASE 8 RETURN 73932 //ADW
CASE 9 RETURN 54417 //RSN
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
SWITCH iPosition
CASE 0 RETURN 49160 //IAM
CASE 1 RETURN 25100 //MIG
CASE 2 RETURN 99527 //HTY
CASE 3 RETURN 20739 //DEF
CASE 4 RETURN 77828 //EAT
CASE 5 RETURN 16851 //THE
CASE 6 RETURN 102934 //WIZ
CASE 7 RETURN 13376 //ARD
CASE 8 RETURN 515 //DIA
CASE 9 RETURN 54417 //RSN
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
SWITCH iPosition
CASE 0 RETURN 102401 //BAZ
CASE 1 RETURN 25670 //GRG
CASE 2 RETURN 1216 //ATA
CASE 3 RETURN 83154 //STU
CASE 4 RETURN 73932 //ADW
CASE 5 RETURN 91015 //HOW
CASE 6 RETURN 78797 //NPT
CASE 7 RETURN 12545 //BED
CASE 8 RETURN 21777 //RUF
CASE 9 RETURN 54417 //RSN
ENDSWITCH
BREAK
ENDSWITCH
RETURN 0
ENDFUNC
/// PURPOSE:
/// Returns the default score for a leaderboard position
FUNC INT ARCADE_GAMES_GET_DEFAULT_SCORE_FOR_POSITION(INT iPosition)
SWITCH ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
SWITCH iPosition
CASE 0 RETURN 10000
CASE 1 RETURN 5000
CASE 2 RETURN 4000
CASE 3 RETURN 3000
CASE 4 RETURN 2000
CASE 5 RETURN 1000
CASE 6 RETURN 500
CASE 7 RETURN 250
CASE 8 RETURN 250
CASE 9 RETURN 157
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
SWITCH iPosition
CASE 0 RETURN 500
CASE 1 RETURN 450
CASE 2 RETURN 400
CASE 3 RETURN 350
CASE 4 RETURN 300
CASE 5 RETURN 250
CASE 6 RETURN 200
CASE 7 RETURN 150
CASE 8 RETURN 120
CASE 9 RETURN 100
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
SWITCH iPosition
CASE 0 RETURN 10000
CASE 1 RETURN 9000
CASE 2 RETURN 8000
CASE 3 RETURN 7000
CASE 4 RETURN 6000
CASE 5 RETURN 5000
CASE 6 RETURN 4000
CASE 7 RETURN 3000
CASE 8 RETURN 2000
CASE 9 RETURN 1000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
SWITCH iPosition
CASE 0 RETURN 57300
CASE 1 RETURN 50000
CASE 2 RETURN 45000
CASE 3 RETURN 35000
CASE 4 RETURN 30000
CASE 5 RETURN 25000
CASE 6 RETURN 20000
CASE 7 RETURN 15000
CASE 8 RETURN 10000
CASE 9 RETURN 5000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_TLG
SWITCH iPosition
CASE 0 RETURN 1000
CASE 1 RETURN 900
CASE 2 RETURN 800
CASE 3 RETURN 700
CASE 4 RETURN 600
CASE 5 RETURN 500
CASE 6 RETURN 400
CASE 7 RETURN 300
CASE 8 RETURN 200
CASE 9 RETURN 100
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
SWITCH iPosition
CASE 0 RETURN 100000
CASE 1 RETURN 90000
CASE 2 RETURN 80000
CASE 3 RETURN 70000
CASE 4 RETURN 60000
CASE 5 RETURN 50000
CASE 6 RETURN 40000
CASE 7 RETURN 30000
CASE 8 RETURN 20000
CASE 9 RETURN 10000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
SWITCH iPosition
CASE 0 RETURN 325000
CASE 1 RETURN 300000
CASE 2 RETURN 275000
CASE 3 RETURN 250000
CASE 4 RETURN 225000
CASE 5 RETURN 200000
CASE 6 RETURN 175000
CASE 7 RETURN 150000
CASE 8 RETURN 125000
CASE 9 RETURN 100000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
SWITCH iPosition
CASE 0 RETURN 350000
CASE 1 RETURN 325000
CASE 2 RETURN 300000
CASE 3 RETURN 275000
CASE 4 RETURN 250000
CASE 5 RETURN 225000
CASE 6 RETURN 200000
CASE 7 RETURN 175000
CASE 8 RETURN 150000
CASE 9 RETURN 125000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
SWITCH iPosition
CASE 0 RETURN 250000
CASE 1 RETURN 225000
CASE 2 RETURN 200000
CASE 3 RETURN 175000
CASE 4 RETURN 150000
CASE 5 RETURN 125000
CASE 6 RETURN 100000
CASE 7 RETURN 80000
CASE 8 RETURN 65000
CASE 9 RETURN 50000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
SWITCH iPosition
CASE 0 RETURN 800000
CASE 1 RETURN 750000
CASE 2 RETURN 700000
CASE 3 RETURN 650000
CASE 4 RETURN 600000
CASE 5 RETURN 550000
CASE 6 RETURN 500000
CASE 7 RETURN 400000
CASE 8 RETURN 300000
CASE 9 RETURN 200000
ENDSWITCH
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
SWITCH iPosition
CASE 0 RETURN 10950
CASE 1 RETURN 10500
CASE 2 RETURN 9800
CASE 3 RETURN 7240
CASE 4 RETURN 7070
CASE 5 RETURN 5650
CASE 6 RETURN 5090
CASE 7 RETURN 3420
CASE 8 RETURN 3150
CASE 9 RETURN 3100
ENDSWITCH
BREAK
ENDSWITCH
RETURN 0
ENDFUNC
FUNC ARCADE_GAMES_SOUND ARCADE_GAMES_LEADERBAORD_GET_SOUND_LETTER_CHANGE()
SWITCH sAGLeaderboardData.eGame
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN ARCADE_GAMES_SOUND_DEGENATRON_HIGH_SCORE_LETTER_CHANGE
BREAK
CASE CASINO_ARCADE_GAME_TLG
RETURN ARCADE_GAMES_SOUND_TLG_HIGH_SCORE_LETTER_CHANGE
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN ARCADE_GAMES_SOUND_TLG_HIGH_SCORE_LETTER_CHANGE
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN ARCADE_GAMES_SOUND_GGSM_SCORE_LETTER_CHANGE_L
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN ARCADE_GAMES_SOUND_TWR_MENU_LETTER_CHANGE
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
#IF IS_DEBUG_BUILD
IF MPGlobalsAmbience.iRoadArcade_SeatOverride = 0
RETURN ROAD_ARCADE_AUDIO_EFFECT_SCOREBOARD_SCROLL_RIGHT
ENDIF
IF MPGlobalsAmbience.iRoadArcade_SeatOverride = 1
RETURN ROAD_ARCADE_AUDIO_EFFECT_SCOREBOARD_SCROLL_LEFT
ENDIF
#ENDIF
// Filter sound effect by player seat.
IF globalPlayerBD[NATIVE_TO_INT((PLAYER_ID()))].sArcadeManagerGlobalPlayerBD.iArcadePlayerSlot = 0
RETURN ROAD_ARCADE_AUDIO_EFFECT_SCOREBOARD_SCROLL_RIGHT
ENDIF
IF globalPlayerBD[NATIVE_TO_INT((PLAYER_ID()))].sArcadeManagerGlobalPlayerBD.iArcadePlayerSlot = 1
RETURN ROAD_ARCADE_AUDIO_EFFECT_SCOREBOARD_SCROLL_LEFT
ENDIF
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
RETURN QUB3D_AUDIO_EFFECT_SCOREBOARD_CHANGE_LETTER
BREAK
ENDSWITCH
ASSERTLN("[ARCADE_GAMES_SOUND] No case added for game to get sound for Letter Change")
RETURN ARCADE_GAMES_SOUND_DEGENATRON_BUZZER
ENDFUNC
FUNC ARCADE_GAMES_SOUND ARCADE_GAMES_LEADERBAORD_GET_SOUND_LETTER_SET()
SWITCH sAGLeaderboardData.eGame
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN ARCADE_GAMES_SOUND_DEGENATRON_HIGH_SCORE_LETTER_SET
BREAK
CASE CASINO_ARCADE_GAME_TLG
RETURN ARCADE_GAMES_SOUND_TLG_HIGH_SCORE_LETTER_SET
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN ARCADE_GAMES_SOUND_TLG_HIGH_SCORE_LETTER_SET
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN ARCADE_GAMES_SOUND_GGSM_SCORE_LETTER_CHANGE_SELECT
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN ROAD_ARCADE_AUDIO_EFFECT_SCOREBOARD_CONFIRM
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN ARCADE_GAMES_SOUND_TWR_MENU_LETTER_LOCK
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
RETURN QUB3D_AUDIO_EFFECT_SCOREBOARD_ENTER
BREAK
ENDSWITCH
ASSERTLN("[ARCADE_GAMES_SOUND] No case added for game to get sound for Letter Set")
RETURN ARCADE_GAMES_SOUND_DEGENATRON_BUZZER
ENDFUNC
FUNC ARCADE_GAMES_SOUND ARCADE_GAMES_LEADERBAORD_GET_SOUND_STORE()
SWITCH sAGLeaderboardData.eGame
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
RETURN ARCADE_GAMES_SOUND_DEGENATRON_HIGH_SCORE_STORE
BREAK
CASE CASINO_ARCADE_GAME_TLG
RETURN ARCADE_GAMES_SOUND_TLG_HIGH_SCORE_STORE
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
RETURN ARCADE_GAMES_SOUND_TLG_HIGH_SCORE_STORE
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
RETURN ARCADE_GAMES_SOUND_GGSM_SCORE_ENTERED
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
RETURN ROAD_ARCADE_AUDIO_EFFECT_SCOREBOARD_ENTER
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
RETURN ARCADE_GAMES_SOUND_TWR_MENU_LETTER_DONE
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
RETURN QUB3D_AUDIO_EFFECT_SCOREBOARD_CONFIRM
BREAK
ENDSWITCH
ASSERTLN("[ARCADE_GAMES_SOUND] No case added for game to get sound for Score Store")
RETURN ARCADE_GAMES_SOUND_DEGENATRON_BUZZER
ENDFUNC
FUNC INT ARCADE_GAMES_GET_PLAYER_LEADERBOARD_POSITION()
IF sAGLeaderboardData.iLocalLbdPos != -1
RETURN sAGLeaderboardData.iLocalLbdPos
ENDIF
INT i
FOR i = 0 TO ciCASINO_ARCADE_LEADERBOARD_POSITIONS - 1
IF sAGLeaderboardData.sLeaderboard[i].bPlayer
sAGLeaderboardData.iLocalLbdPos = i
RETURN i
ENDIF
ENDFOR
RETURN ciARCADE_GAMES_LBD_DEFAULT_RANK
ENDFUNC
/// PURPOSE:
/// Initialise the leaderboard data
PROC ARCADE_GAMES_LEADERBOARD_INITIALISE(INT &iInitials[ciCASINO_ARCADE_LEADERBOARD_POSITIONS], INT &iScores[ciCASINO_ARCADE_LEADERBOARD_POSITIONS])
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_INITIALISE ")
INT i
FOR i = 0 TO ciCASINO_ARCADE_LEADERBOARD_POSITIONS - 1
IF iScores[i] <= 0
#IF IS_DEBUG_BUILD
OR sAGLeaderboardData.bForceDefaultLeaderboard
#ENDIF
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_INITIALISE - iScores[",i,"] <= 0")
//First time - Initialise
sAGLeaderboardData.sLeaderboard[i].iScore = ARCADE_GAMES_GET_DEFAULT_SCORE_FOR_POSITION(i)
sAGLeaderboardData.sLeaderboard[i].iInitials = ARCADE_GAMES_GET_DEFAULT_INITIALS_FOR_POSITION(i)
BROADCAST_CASINO_ARCADE_UPDATE_LEADERBOARD_EVENT(GET_OWNER_OF_SIMPLE_INTERIOR_PLAYER_IS_IN(PLAYER_ID()), ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME(), i, sAGLeaderboardData.sLeaderboard[i].iInitials, sAGLeaderboardData.sLeaderboard[i].iScore)
ELSE
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_INITIALISE - iScores[",i,"] = ",iScores[i])
sAGLeaderboardData.sLeaderboard[i].iScore = iScores[i]
sAGLeaderboardData.sLeaderboard[i].iInitials = iInitials[i]
ENDIF
ENDFOR
ENDPROC
PROC ARCADE_GAMES_SORT_LEADERBOARD_SWAP(ARCADE_GAMES_LEADERBOARD_STRUCT &sArray[], INT iA, INT iB)
ARCADE_GAMES_LEADERBOARD_STRUCT q
q.iInitials = sArray[iA].iInitials
q.bPlayer = sArray[iA].bPlayer
q.iScore = sArray[iA].iScore
sArray[iA].iInitials = sArray[iB].iInitials
sArray[iA].bPlayer = sArray[iB].bPlayer
sArray[iA].iScore = sArray[iB].iScore
sArray[iB].iInitials = q.iInitials
sArray[iB].bPlayer = q.bPlayer
sArray[iB].iScore = q.iScore
ENDPROC
PROC ARCADE_GAMES_QUICK_SORT_LEADERBOARD(ARCADE_GAMES_LEADERBOARD_STRUCT &sArray[], INT iArraySize)
INT iCurrent
REPEAT iArraySize-1 iCurrent
IF sArray[iCurrent].iScore < sArray[iArraySize-1].iScore
ARCADE_GAMES_SORT_LEADERBOARD_SWAP(sArray,iCurrent,iArraySize-1)
IF sAGLeaderboardData.iLocalLbdPos = -1
sAGLeaderboardData.iLocalLbdPos = iCurrent
ENDIF
ENDIF
ENDREPEAT
ENDPROC
/// PURPOSE:
/// Sorts the leaderboard once players' final scores are set
PROC ARCADE_GAMES_SORT_LEADERBOARD(INT &iScore)
ARCADE_GAMES_LEADERBOARD_STRUCT sTempArray[ciCASINO_ARCADE_LEADERBOARD_POSITIONS + 1]
INT i
FOR i = 0 TO ciCASINO_ARCADE_LEADERBOARD_POSITIONS - 1
sTempArray[i].iInitials = sAGLeaderboardData.sLeaderboard[i].iInitials
sTempArray[i].bPlayer = FALSE
sTempArray[i].iScore = sAGLeaderboardData.sLeaderboard[i].iScore
ENDFOR
IF !sAGLeaderboardData.bCheated
sTempArray[ciCASINO_ARCADE_LEADERBOARD_POSITIONS].bPlayer = TRUE
sTempArray[ciCASINO_ARCADE_LEADERBOARD_POSITIONS].iScore = iScore
sTempArray[ciCASINO_ARCADE_LEADERBOARD_POSITIONS].iInitials = 0
ENDIF
sAGLeaderboardData.iLocalLbdPos = -1
ARCADE_GAMES_QUICK_SORT_LEADERBOARD(sTempArray, ciCASINO_ARCADE_LEADERBOARD_POSITIONS+1)
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_SORT_LEADERBOARD - Sorting")
FOR i = 0 TO ciCASINO_ARCADE_LEADERBOARD_POSITIONS - 1
sAGLeaderboardData.sLeaderboard[i].iInitials = sTempArray[i].iInitials
sAGLeaderboardData.sLeaderboard[i].bPlayer = sTempArray[i].bPlayer
sAGLeaderboardData.sLeaderboard[i].iScore = sTempArray[i].iScore
BROADCAST_CASINO_ARCADE_UPDATE_LEADERBOARD_EVENT(GET_OWNER_OF_SIMPLE_INTERIOR_PLAYER_IS_IN(PLAYER_ID()), ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME(), i, sAGLeaderboardData.sLeaderboard[i].iInitials, sAGLeaderboardData.sLeaderboard[i].iScore)
ENDFOR
ENDPROC
PROC ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY(INT &iScore)
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY - iScore:",iScore)
IF NOT sAGLeaderboardData.bEditing
IF sAGLeaderboardData.sLeaderboard[ciCASINO_ARCADE_LEADERBOARD_POSITIONS-1].iScore < iScore
sAGLeaderboardData.bEditing = TRUE
ARCADE_GAMES_SORT_LEADERBOARD(iScore)
ELSE
EXIT
ENDIF
ENDIF
// IF ARCADE_GAMES_GET_PLAYER_LEADERBOARD_POSITION() >= ciCASINO_ARCADE_LEADERBOARD_POSITIONS
// EXIT
// ENDIF
//
INT iUnpackedInitials[ciARCADE_CABINET_LEADERBOARD_INITIALS]
IF SC_PROFANITY_GET_CHECK_IS_VALID(sAGLeaderboardData.iLbdInitialProfanityToken)
IF SC_PROFANITY_GET_CHECK_IS_PENDING(sAGLeaderboardData.iLbdInitialProfanityToken)
EXIT
ENDIF
IF SC_PROFANITY_GET_STRING_PASSED(sAGLeaderboardData.iLbdInitialProfanityToken)
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY - Profanity: Initials OK")
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY - iInitials: ",sAGLeaderboardData.iInitials)
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY - iScore: ",iScore)
sAGLeaderboardData.sLeaderboard[ARCADE_GAMES_GET_PLAYER_LEADERBOARD_POSITION()].iInitials = sAGLeaderboardData.iInitials
BROADCAST_CASINO_ARCADE_UPDATE_LEADERBOARD_EVENT(GET_OWNER_OF_SIMPLE_INTERIOR_PLAYER_IS_IN(PLAYER_ID()), ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME(), ARCADE_GAMES_GET_PLAYER_LEADERBOARD_POSITION(), sAGLeaderboardData.sLeaderboard[ARCADE_GAMES_GET_PLAYER_LEADERBOARD_POSITION()].iInitials, sAGLeaderboardData.sLeaderboard[ARCADE_GAMES_GET_PLAYER_LEADERBOARD_POSITION()].iScore,TRUE)
sAGLeaderboardData.bEditing = FALSE
sAGLeaderboardData.iCurrentInitial = 0
sAGLeaderboardData.iInitials = 0
sAGLeaderboardData.iLbdInitialProfanityToken = 0
iScore = 0
ELSE
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY - Profanity: Initials BAD")
// ARCADE_GAMES_PLAY_FIRE_AND_FORGET_FRONTEND_SOUND("Frontend_Change_Letter")
sAGLeaderboardData.iCurrentInitial = 0
sAGLeaderboardData.iInitials = 0
sAGLeaderboardData.iLbdInitialProfanityToken = 0
ENDIF
EXIT
ENDIF
//
// IF sDegenatronGamesData.sAGLeaderboardData.iCurrentInitial >= ciARCADE_CABINET_LEADERBOARD_INITIALS - 1
// EXIT
// ENDIF
//
CONTROL_ACTION CA_InitialUp = INPUT_SCRIPT_RB
CONTROL_ACTION CA_InitialDown = INPUT_SCRIPT_LB
CONTROL_ACTION CA_InitialAccept = INPUT_FRONTEND_ACCEPT
CONTROL_ACTION CA_InitialBack = INPUT_FRONTEND_CANCEL
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
CA_InitialAccept = INPUT_CURSOR_ACCEPT
CA_InitialBack = INPUT_CURSOR_CANCEL
CA_InitialUp = INPUT_FRONTEND_UP
CA_InitialDown = INPUT_FRONTEND_DOWN
ENDIF
IF IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, CA_InitialAccept)
sAGLeaderboardData.iCurrentInitial ++
IF sAGLeaderboardData.iCurrentInitial >= ciARCADE_CABINET_LEADERBOARD_INITIALS - 1
ARCADE_GAMES_SOUND_PLAY(ARCADE_GAMES_LEADERBAORD_GET_SOUND_STORE())
sAGLeaderboardData.iCurrentInitial = ciARCADE_CABINET_LEADERBOARD_INITIALS - 1
ARCADE_UNPACK_LEADERBOARD_INITIALS(sAGLeaderboardData.iInitials, iUnpackedInitials)
TEXT_LABEL_3 tl3Initials = ARCADE_GET_CHAR_FROM_INT(iUnpackedInitials[0])
tl3Initials += ARCADE_GET_CHAR_FROM_INT(iUnpackedInitials[1])
tl3Initials += ARCADE_GET_CHAR_FROM_INT(iUnpackedInitials[2])
IF SC_PROFANITY_CHECK_STRING(tl3Initials, sAGLeaderboardData.iLbdInitialProfanityToken)
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY - Profanity: Starting check")
ENDIF
ELSE
ARCADE_GAMES_SOUND_PLAY(ARCADE_GAMES_LEADERBAORD_GET_SOUND_LETTER_SET())
ENDIF
EXIT
ENDIF
IF IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, CA_InitialBack)
IF sAGLeaderboardData.iCurrentInitial > 0
ARCADE_GAMES_SOUND_PLAY(ARCADE_GAMES_LEADERBAORD_GET_SOUND_LETTER_SET())
sAGLeaderboardData.iCurrentInitial --
ENDIF
EXIT
ENDIF
INT iDelta = 0
IF IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, CA_InitialUp)
ARCADE_GAMES_SOUND_PLAY(ARCADE_GAMES_LEADERBAORD_GET_SOUND_LETTER_CHANGE())
iDelta = 1
ELIF IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, CA_InitialDown)
ARCADE_GAMES_SOUND_PLAY(ARCADE_GAMES_LEADERBAORD_GET_SOUND_LETTER_CHANGE())
iDelta = -1
ENDIF
IF iDelta = 0
EXIT
ENDIF
// ARCADE_GAMES_PLAY_FIRE_AND_FORGET_FRONTEND_SOUND("Frontend_Change_Letter")
ARCADE_UNPACK_LEADERBOARD_INITIALS(sAGLeaderboardData.iInitials, iUnpackedInitials)
iUnpackedInitials[sAGLeaderboardData.iCurrentInitial] += iDelta
IF iUnpackedInitials[sAGLeaderboardData.iCurrentInitial] >= ciARCADE_CABINET_LEADERBOARD_INITIALS_MAX
iUnpackedInitials[sAGLeaderboardData.iCurrentInitial] = 0
ELIF iUnpackedInitials[sAGLeaderboardData.iCurrentInitial] < 0
iUnpackedInitials[sAGLeaderboardData.iCurrentInitial] = ciARCADE_CABINET_LEADERBOARD_INITIALS_MAX - 1
ENDIF
sAGLeaderboardData.iInitials = ARCADE_PACK_LEADERBOARD_INITIALS(iUnpackedInitials)
ENDPROC
PROC ARCADE_GAMES_DRAW_INTEGER(INT iValue, INT iDigits, VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba)
VECTOR_2D vCharCenter = vCenter
VECTOR_2D vCharSize = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SIZE()
VECTOR_2D vCharSeparation = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SEPARATION()
BOOL bZero = (iValue = 0)
INT iChar
IF iDigits = 0
INT currentValue
currentValue = iValue
WHILE currentValue > 0 OR bZero
bZero = FALSE
vCharCenter.x = vCenter.x + vCharSeparation.x * (iDigits-1)/2.0 - vCharSeparation.x * iChar
TEXT_LABEL_63 tlTextureName
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_NUMBER()
tlTextureName += currentValue % 10
currentValue /= 10
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, rgba)
iChar++
ENDWHILE
ELSE
REPEAT iDigits iChar
vCharCenter.x = vCenter.x + vCharSeparation.x * (iDigits-1)/2.0 - vCharSeparation.x * iChar
TEXT_LABEL_63 tlTextureName
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_NUMBER()
tlTextureName += (iValue / ROUND(POW(10.0,to_float(iChar)))) % 10
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, rgba)
ENDREPEAT
ENDIF
ENDPROC
PROC ARCADE_GAMES_LEADERBOARD_DRAW_UNPACKED_INITIALS(INT &iUnpackedInitials[ciARCADE_CABINET_LEADERBOARD_INITIALS], VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba,RGBA_COLOUR_STRUCT rgbaHighlight, BOOL editing)
VECTOR_2D vCharCenter = vCenter
VECTOR_2D vCharSize = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SIZE()
VECTOR_2D vCharSeparation = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SEPARATION()
RGBA_COLOUR_STRUCT color
INT iChar
REPEAT 3 iChar
vCharCenter.x = vCenter.x + vCharSeparation.x * (3-1)/2.0 + vCharSeparation.x * iChar
TEXT_LABEL_63 tlTextureName
IF iUnpackedInitials[iChar] < 26
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
ELSE
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_NUMBER()
ENDIF
tlTextureName += ARCADE_GET_CHAR_FROM_INT(iUnpackedInitials[iChar])
IF editing
IF sAGLeaderboardData.iCurrentInitial = iChar
IF sAGLeaderboardData.iTickTimer = 0
color = rgba
ELSE
color = rgbaHighlight
ENDIF
ELSE
color = rgbaHighlight
ENDIF
ELSE
color = rgba
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
ENDREPEAT
ENDPROC
PROC ARCADE_GAMES_LEADERBOARD_DRAW_RANK(INT iPosition, VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba,RGBA_COLOUR_STRUCT rgbaHighlight, BOOL editing)
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_DRAW_RANK ")
VECTOR_2D vCharCenter = vCenter
VECTOR_2D vCharSize = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SIZE()
VECTOR_2D vCharSeparation = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SEPARATION()
RGBA_COLOUR_STRUCT color
IF editing
color = rgbaHighlight
ELSE
color = rgba
ENDIF
TEXT_LABEL_63 tlTextureName
IF iPosition = 10
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_NUMBER()
tlTextureName += 1
vCharCenter.x = vCharCenter.x - vCharSeparation.x
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
vCharCenter = vCenter
iPosition = 0
ENDIF
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_NUMBER()
tlTextureName += iPosition
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
vCharCenter.x = vCenter.x + vCharSeparation.x * 1
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
IF iPosition = 1
tlTextureName += "S"
ELIF iPosition = 2
tlTextureName += "N"
ELIF iPosition = 3
tlTextureName += "R"
ELSE
tlTextureName += "T"
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
vCharCenter.x = vCenter.x + vCharSeparation.x * 2
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
IF iPosition = 1
tlTextureName += "T"
ELIF iPosition = 2
tlTextureName += "D"
ELIF iPosition = 3
tlTextureName += "D"
ELSE
tlTextureName += "H"
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
ENDPROC
PROC ARCADE_GAMES_LEADERBOARD_DRAW_SCORE(INT iScore, VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba,RGBA_COLOUR_STRUCT rgbaHighlight, BOOL editing)
VECTOR_2D vCharCenter = vCenter
VECTOR_2D vCharSize = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SIZE()
VECTOR_2D vCharSeparation = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SEPARATION()
RGBA_COLOUR_STRUCT color
IF editing
color = rgbaHighlight
ELSE
color = rgba
ENDIF
ARCADE_GAMES_DRAW_INTEGER(iScore,ARCADE_GAMES_LEADERBOARD_GET_SCORE_MAX_CHARS(),vCenter,color)
//PTS
TEXT_LABEL_63 tlTextureName
vCharCenter.x = vCenter.x + vCharSeparation.x * (ARCADE_GAMES_LEADERBOARD_GET_SCORE_MAX_CHARS()/2 + 1)
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
tlTextureName += "P"
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
vCharCenter.x = vCenter.x + vCharSeparation.x * (ARCADE_GAMES_LEADERBOARD_GET_SCORE_MAX_CHARS()/2 + 2)
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
tlTextureName += "T"
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
vCharCenter.x = vCenter.x + vCharSeparation.x * (ARCADE_GAMES_LEADERBOARD_GET_SCORE_MAX_CHARS()/2 + 3)
tlTextureName = ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_LETTER()
tlTextureName += "S"
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(), tlTextureName,vCharCenter,vCharSize,0.0, color)
ENDPROC
/// PURPOSE:
/// Draws the leaderboard
PROC ARCADE_GAMES_LEADERBOARD_DRAW(BOOL bIsPlayerTwo = FALSE, BOOL bDoHelpText = TRUE)
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_DRAW ")
IF bDoHelpText
IF sAGLeaderboardData.bEditing
ARCADE_GAMES_HELP_TEXT_PRINT_FOREVER(ARCADE_GAMES_HELP_TEXT_ENUM_LEADERBOARD_ENTRY)
ELSE
ARCADE_GAMES_HELP_TEXT_PRINT_FOREVER(ARCADE_GAMES_HELP_TEXT_ENUM_LEADERBOARD)
ENDIF
ENDIF
VECTOR_2D vCharSeparation = ARCADE_GAMES_LEADERBOARD_GET_CHAR_TEXTURE_SEPARATION()
sAGLeaderboardData.iTickTimer = ((sAGLeaderboardData.iTickTimer + ROUND(GET_FRAME_TIME() * 1000))% 1000) / 500
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_LEADERBOARD_GET_TEXTURE_DICTIONARY(),ARCADE_GAMES_LEADERBOARD_GET_TITLE_TEXTURE_NAME(),ARCADE_GAMES_LEADERBOARD_GET_TITLE_TEXTURE_POSITION(),ARCADE_GAMES_LEADERBOARD_GET_TITLE_TEXTURE_SIZE(),0.0,ARCADE_GAMES_LEADERBOARD_GET_DEFAULT_COLOR())
INT iUnpackedInitials[ciARCADE_CABINET_LEADERBOARD_INITIALS]
INT iPositionLoop = 0
FOR iPositionLoop = 0 TO ciCASINO_ARCADE_LEADERBOARD_POSITIONS - 1
BOOL bEditing
bEditing = sAGLeaderboardData.sLeaderboard[iPositionLoop].bPlayer AND sAGLeaderboardData.bEditing
IF sAGLeaderboardData.sLeaderboard[iPositionLoop].bPlayer
AND (sAGLeaderboardData.iCurrentInitial < ciARCADE_CABINET_LEADERBOARD_INITIALS - 1 OR SC_PROFANITY_GET_CHECK_IS_VALID(sAGLeaderboardData.iLbdInitialProfanityToken))
AND sAGLeaderboardData.bEditing
ARCADE_UNPACK_LEADERBOARD_INITIALS(sAGLeaderboardData.iInitials, iUnpackedInitials)
ELSE
ARCADE_UNPACK_LEADERBOARD_INITIALS(sAGLeaderboardData.sLeaderboard[iPositionLoop].iInitials, iUnpackedInitials)
ENDIF
//Rank
ARCADE_GAMES_LEADERBOARD_DRAW_RANK(iPositionLoop+1,ADD_VECTOR_2D(ARCADE_GAMES_LEADERBOARD_GET_RANK_COLUMN_POSITION(),INIT_VECTOR_2D(0.0,vCharSeparation.y*iPositionLoop)),ARCADE_GAMES_LEADERBOARD_GET_DEFAULT_COLOR(),ARCADE_GAMES_LEADERBOARD_GET_ENTRY_COLOR(bIsPlayerTwo),bEditing)
//Initials
ARCADE_GAMES_LEADERBOARD_DRAW_UNPACKED_INITIALS(iUnpackedInitials,ADD_VECTOR_2D(ARCADE_GAMES_LEADERBOARD_GET_INITIALS_COLUMN_POSITION(),INIT_VECTOR_2D(0.0,vCharSeparation.y*iPositionLoop)),ARCADE_GAMES_LEADERBOARD_GET_DEFAULT_COLOR(),ARCADE_GAMES_LEADERBOARD_GET_ENTRY_COLOR(bIsPlayerTwo),bEditing)
//Score
ARCADE_GAMES_LEADERBOARD_DRAW_SCORE(sAGLeaderboardData.sLeaderboard[iPositionLoop].iScore,ADD_VECTOR_2D(ARCADE_GAMES_LEADERBOARD_GET_SCORE_COLUMN_POSITION(),INIT_VECTOR_2D(0.0,vCharSeparation.y*iPositionLoop)),ARCADE_GAMES_LEADERBOARD_GET_DEFAULT_COLOR(),ARCADE_GAMES_LEADERBOARD_GET_ENTRY_COLOR(bIsPlayerTwo),bEditing)
ENDFOR
ENDPROC
PROC ARCADE_GAMES_LEADERBOARD_LOAD(CASINO_ARCADE_GAME eGame)
IF sAGLeaderboardData.eGame != eGame
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_LEADERBOARD_INITIALISE_STAGE - sAGLeaderboardData.eGame = ",eGame)
sAGLeaderboardData.eGame = eGame
sAGLeaderboardData.bLeaderboardReceived = FALSE
sAGLeaderboardData.iLastLeaderboardRequest = -HIGHEST_INT
ENDIF
IF NOT sAGLeaderboardData.bLeaderboardReceived
AND (sAGLeaderboardData.iLastLeaderboardRequest = -HIGHEST_INT
OR NATIVE_TO_INT(GET_NETWORK_TIME()) - sAGLeaderboardData.iLastLeaderboardRequest > ciARCADE_GAMES_RESEND_LEADERBOARD_REQUEST_TIME)
BROADCAST_CASINO_ARCADE_REQUEST_LEADERBOARD_EVENT(GET_OWNER_OF_SIMPLE_INTERIOR_PLAYER_IS_IN(PLAYER_ID()), ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME())
sAGLeaderboardData.iLastLeaderboardRequest = NATIVE_TO_INT(GET_NETWORK_TIME())
ENDIF
ENDPROC
// ------------------------------ EVENT PROCESSING ------------------------------
/// PURPOSE:
/// Processes all incoming events
PROC ARCADE_GAMES_LEADERBOARD_PROCESS_EVENTS()
//REMOVE IF ANY OTHER EVENTS ADDED
IF sAGLeaderboardData.bLeaderboardReceived
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_PROCESS_EVENTS - Did not receive leaderboard. EXITING")
EXIT
ENDIF
INT iCount
SCRIPT_EVENT_DATA_CASINO_ARCADE_SEND_LEADERBOARD_EVENT EventDataLeaderboardSend
REPEAT GET_NUMBER_OF_EVENTS(SCRIPT_EVENT_QUEUE_NETWORK) iCount
IF GET_EVENT_AT_INDEX(SCRIPT_EVENT_QUEUE_NETWORK, iCount) != EVENT_NETWORK_SCRIPT_EVENT
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_PROCESS_EVENTS - RELOOPING EVENT QUEUE")
RELOOP
ENDIF
IF GET_EVENT_DATA(SCRIPT_EVENT_QUEUE_NETWORK, iCount, EventDataLeaderboardSend, SIZE_OF(EventDataLeaderboardSend))
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_PROCESS_EVENTS - SCRIPT_EVENT_DATA_CASINO_ARCADE_SEND_LEADERBOARD_EVENT received")
IF EventDataLeaderboardSend.Details.Type = SCRIPT_EVENT_CASINO_ARCADE_SEND_LEADERBOARD_EVENT
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_PROCESS_EVENTS - EventDataLeaderboardSend.eGameType ",enum_to_int(EventDataLeaderboardSend.eGameType))
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_PROCESS_EVENTS - ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME ",enum_to_int(ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()))
IF EventDataLeaderboardSend.eGameType != ARCADE_GAMES_LEADERBOARD_GET_CASINO_ARCADE_GAME()
RELOOP
ENDIF
ARCADE_GAMES_LEADERBOARD_INITIALISE(EventDataLeaderboardSend.iInitials, EventDataLeaderboardSend.iScores)
RELOOP
ENDIF
ELSE
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES][LEADERBOARD] - ARCADE_GAMES_PROCESS_EVENTS - FAILED TO RETRIEVE DATA")
ENDIF
ENDREPEAT
ENDPROC
#IF IS_DEBUG_BUILD
PROC ARCADE_GAMES_LEADERBOARD_WIDGET_CREATE
START_WIDGET_GROUP("Leaderboard")
ADD_WIDGET_BOOL("Force Default Leaderboard", sAGLeaderboardData.bForceDefaultLeaderboard)
STOP_WIDGET_GROUP()
ENDPROC
PROC ARCADE_GAMES_LEADERBOARD_WIDGET_UPDATE
IF sAGLeaderboardData.bForceDefaultLeaderboard
INT iInitials[ciCASINO_ARCADE_LEADERBOARD_POSITIONS]
INT iScores[ciCASINO_ARCADE_LEADERBOARD_POSITIONS]
ARCADE_GAMES_LEADERBOARD_INITIALISE(iInitials,iScores)
sAGLeaderboardData.bForceDefaultLeaderboard = FALSE
ENDIF
ENDPROC
#ENDIF