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