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

322 lines
18 KiB
Scheme
Executable File

USING "degenatron_games_using.sch"
USING "arcade_games_leaderboard.sch"
PROC DEGENATRON_GAMES_RESET_CHALLENGES()
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES] DEGENATRON_GAMES_RESET_CHALLENGES")
sDegenatronGamesData.eChallengeFlags = DEGENATRON_GAMES_CHALLENGE_BIT_NONE
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_KEEPFAITH, FALSE)
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_AQUAAPE, FALSE)
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL, 0)
ARCADE_CABINET_FLOW_CLEAR_TSHIRT(ARCADE_GAME_TSHIRTS_DEGENATRON_RIGHT_KIND_OF_FAITH)
ARCADE_CABINET_FLOW_CLEAR_TSHIRT(ARCADE_GAME_TSHIRTS_DEGENATRON_AQUATIC_APE)
ARCADE_CABINET_FLOW_CLEAR_TSHIRT(ARCADE_GAME_TSHIRTS_DEGENATRON_RIMMING_MASTER)
ARCADE_CABINET_FLOW_CLEAR_TROPHY(ARCADE_GAME_TROPHY_DEGENATRON)
ENDPROC
PROC DEGENATRON_GAMES_RESET_CHALLENGE(DEGENATRON_GAMES_CHALLENGE_BIT eBit)
IF IS_BITMASK_ENUM_AS_ENUM_SET(sDegenatronGamesData.eChallengeFlags, eBit)
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES] DEGENATRON_GAMES_RESET_CHALLENGE:", DEGENATRON_GAMES_CHALLENGE_BIT_TO_STRING(eBit))
CLEAR_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
SWITCH (eBit)
CASE DEGENATRON_GAMES_CHALLENGE_BIT_KEEP_THE_FAITH
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_KEEPFAITH, FALSE)
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_AQUAAPE
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_AQUAAPE, FALSE)
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_BRONZE
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_SILVER
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_GOLD
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_PLATINUM
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL,0)
BREAK
ENDSWITCH
sDegenatronGamesData.sTelemetry.reward = 0
ENDIF
ENDPROC
PROC DEGENATRON_GAMES_SET_CHALLENGE_COMPLETED(DEGENATRON_GAMES_CHALLENGE_BIT eBit)
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES] DEGENATRON_GAMES_SET_CHALLENGE_COMPLETED:", DEGENATRON_GAMES_CHALLENGE_BIT_TO_STRING(eBit))
BOOL bCheckRetroMaster
SWITCH (eBit)
CASE DEGENATRON_GAMES_CHALLENGE_BIT_KEEP_THE_FAITH
IF NOT GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_KEEPFAITH)
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_KEEPFAITH, TRUE)
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
bCheckRetroMaster = TRUE
ENDIF
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_AQUAAPE
IF NOT GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_AQUAAPE)
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_AQUAAPE, TRUE)
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
bCheckRetroMaster = TRUE
ENDIF
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_BRONZE
IF GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL) < g_sMPTunables.iARCADE_MASTERFUL_BRONZE_SCORE
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL,g_sMPTunables.iARCADE_MASTERFUL_BRONZE_SCORE)
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
bCheckRetroMaster = TRUE
ENDIF
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_SILVER
IF GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL) < g_sMPTunables.iARCADE_MASTERFUL_SILVER_SCORE
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL,g_sMPTunables.iARCADE_MASTERFUL_SILVER_SCORE)
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
bCheckRetroMaster = TRUE
ENDIF
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_GOLD
IF GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL) < g_sMPTunables.iARCADE_MASTERFUL_GOLD_SCORE
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL,g_sMPTunables.iARCADE_MASTERFUL_GOLD_SCORE)
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
bCheckRetroMaster = TRUE
ENDIF
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_PLATINUM
IF GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL) < g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL,g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE)
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, eBit)
bCheckRetroMaster = TRUE
ENDIF
BREAK
ENDSWITCH
IF bCheckRetroMaster
AND GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_KEEPFAITH)
AND GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_AQUAAPE)
AND GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL) >= g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE
sDegenatronGamesData.sTelemetry.reward = ARCADE_GAME_GET_TROPHY_ID_FOR_TELEMETRY(ARCADE_GAME_TROPHY_DEGENATRON)
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TROPHY_HELP(ARCADE_GAME_TROPHY_DEGENATRON,DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID()))
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TSHIRT_HELP(ARCADE_GAME_TSHIRTS_DEGENATRON_RETRO_MASTER)
ENDIF
ENDPROC
PROC DEGENATRON_GAMES_SET_CHALLENGE_VALUE(DEGENATRON_GAMES_CHALLENGE_BIT eBit, INT value)
CDEBUG1LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES] DEGENATRON_GAMES_SET_CHALLENGE_VALUE:", DEGENATRON_GAMES_CHALLENGE_BIT_TO_STRING(eBit)," value ",value)
BOOL bCheckRetroMaster
SWITCH (eBit)
CASE DEGENATRON_GAMES_CHALLENGE_BIT_KEEP_THE_FAITH
DEGENATRON_GAMES_SET_CHALLENGE_COMPLETED(DEGENATRON_GAMES_CHALLENGE_BIT_KEEP_THE_FAITH)
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_AQUAAPE
DEGENATRON_GAMES_SET_CHALLENGE_COMPLETED(DEGENATRON_GAMES_CHALLENGE_BIT_AQUAAPE)
BREAK
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_BRONZE
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_SILVER
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_GOLD
CASE DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_PLATINUM
INT iCurrent
iCurrent = GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL)
IF iCurrent < 40000
IF iCurrent < value
IF iCurrent < g_sMPTunables.iARCADE_MASTERFUL_BRONZE_SCORE AND value >= g_sMPTunables.iARCADE_MASTERFUL_BRONZE_SCORE AND value < g_sMPTunables.iARCADE_MASTERFUL_SILVER_SCORE
bCheckRetroMaster = TRUE
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_BRONZE)
ELIF iCurrent < g_sMPTunables.iARCADE_MASTERFUL_SILVER_SCORE AND value >= g_sMPTunables.iARCADE_MASTERFUL_SILVER_SCORE AND value < g_sMPTunables.iARCADE_MASTERFUL_GOLD_SCORE
bCheckRetroMaster = TRUE
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_SILVER)
ELIF iCurrent < g_sMPTunables.iARCADE_MASTERFUL_GOLD_SCORE AND value >= g_sMPTunables.iARCADE_MASTERFUL_GOLD_SCORE AND value < g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE
bCheckRetroMaster = TRUE
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_GOLD)
ELIF iCurrent < g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE AND value >= g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE
bCheckRetroMaster = TRUE
SET_BITMASK_ENUM_AS_ENUM(sDegenatronGamesData.eChallengeFlags, DEGENATRON_GAMES_CHALLENGE_BIT_MASTERFUL_PLATINUM)
ENDIF
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL,value)
ENDIF
ENDIF
BREAK
ENDSWITCH
IF bCheckRetroMaster
AND GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_KEEPFAITH)
AND GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_AQUAAPE)
AND GET_MP_INT_CHARACTER_AWARD(MP_AWARD_MASTERFUL) >= g_sMPTunables.iARCADE_MASTERFUL_PLATINUM_SCORE
sDegenatronGamesData.sTelemetry.reward = ARCADE_GAME_GET_TROPHY_ID_FOR_TELEMETRY(ARCADE_GAME_TROPHY_DEGENATRON)
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TROPHY_HELP(ARCADE_GAME_TROPHY_DEGENATRON,DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID()))
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TSHIRT_HELP(ARCADE_GAME_TSHIRTS_DEGENATRON_RETRO_MASTER)
ENDIF
ENDPROC
/// PURPOSE:
/// Draws the facade at the edges of the screen
PROC DEGENATRON_GAMES_DRAW_FACADE()
#IF IS_DEBUG_BUILD
IF NOT sDegenatronGamesData.bDebugDrawFacade
EXIT
ENDIF
#ENDIF
SWITCH sDegenatronGamesData.eGame
CASE DEGENATRON_GAMES_DEFENDER
ARCADE_CABINET_DRAW_SPRITE("MPArcadeDegenatronFacadeDoF", "DefenderOfThe Faith_43_Arcade_Frame", cfSCREEN_CENTER, cfSCREEN_CENTER, 1.0, 1.0, 0.0, sDegenatronGamesData.rgbaWhite)
BREAK
CASE DEGENATRON_GAMES_MONKEY
ARCADE_CABINET_DRAW_SPRITE("MPArcadeDegenatronFacadeMonkey", "CABINET_ART_MONKEYS_PARADISE_DEGENATRON_ARCADE_FRAME", cfSCREEN_CENTER, cfSCREEN_CENTER, 1.0, 1.0, 0.0, sDegenatronGamesData.rgbaWhite)
BREAK
CASE DEGENATRON_GAMES_PENETRATOR
ARCADE_CABINET_DRAW_SPRITE("MPArcadeDegenatronFacadePenetrator", "GTAO_Penetrator_43_Arcade_Frame", cfSCREEN_CENTER, cfSCREEN_CENTER, 1.0, 1.0, 0.0, sDegenatronGamesData.rgbaWhite)
BREAK
ENDSWITCH
ENDPROC
PROC DEGENATRON_GAMES_DRAW_BACKMASK()
#IF IS_DEBUG_BUILD
IF NOT sDegenatronGamesData.bDebugDrawBackmask
EXIT
ENDIF
#ENDIF
ARCADE_DRAW_PIXELSPACE_RECT(DEGENATRON_GAMES_GET_SCREEN_CENTER(), DEGENATRON_GAMES_GET_SCREEN_SIZE(), sDegenatronGamesData.rgbaBlack)
ENDPROC
PROC DEGENATRON_GAMES_MENU()
IF sDegenatronGamesData.sControlsInput.iLeftAxisYTick > 0
sDegenatronGamesData.iMenuSelected--
IF sDegenatronGamesData.iMenuSelected < 0
sDegenatronGamesData.iMenuSelected = 1
ENDIF
ELIF sDegenatronGamesData.sControlsInput.iLeftAxisYTick < 0
sDegenatronGamesData.iMenuSelected++
IF sDegenatronGamesData.iMenuSelected > 1
sDegenatronGamesData.iMenuSelected = 0
ENDIF
ENDIF
ENDPROC
PROC DEGENATRON_GAMES_INTRO()
ENDPROC
PROC DEGENATRON_GAMES_SCORE()
ENDPROC
PROC DEGENATRON_GAMES_LEADERBOARD()
ARCADE_GAMES_LEADERBOARD_PROCESS_ENTRY(sDegenatronGamesData.sGameData.iScore)
ENDPROC
PROC DEGENATRON_GAMES_DRAW_MENU()
SWITCH sDegenatronGamesData.eGame
CASE DEGENATRON_GAMES_DEFENDER
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_DEFENDER_OF_THE_FAITH,
DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_40),
DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_DEFENDER_OF_THE_FAITH),
0.0, sDegenatronGamesData.rgbaRed)
BREAK
CASE DEGENATRON_GAMES_MONKEY
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_MONKEYS_PARADISE,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_40),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_MONKEYS_PARADISE),0.0, sDegenatronGamesData.rgbaRed)
BREAK
CASE DEGENATRON_GAMES_PENETRATOR
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_PENETRATOR,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_40),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_PENETRATOR),0.0, sDegenatronGamesData.rgbaRed)
BREAK
ENDSWITCH
IF sDegenatronGamesData.iMenuSelected = 0
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_PLAY,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_42),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_PLAY), 0.0, sDegenatronGamesData.rgbaGreen)
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_HIGH_SCORES,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_43),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_HIGH_SCORES), 0.0, sDegenatronGamesData.rgbaWhite)
ELSE
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_PLAY,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_42),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_PLAY), 0.0, sDegenatronGamesData.rgbaWhite)
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_HIGH_SCORES,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_43),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_HIGH_SCORES), 0.0, sDegenatronGamesData.rgbaGreen)
ENDIF
ENDPROC
PROC DEGENATRON_GAMES_DRAW_INTRO()
DEGENATRON_GAMES_TEXT_ITEM eItem
SWITCH sDegenatronGamesData.eGame
CASE DEGENATRON_GAMES_DEFENDER
eItem = DEGENATRON_GAMES_TEXT_ITEM_INTRO_DEFENDER_LINE_01
BREAK
CASE DEGENATRON_GAMES_MONKEY
eItem = DEGENATRON_GAMES_TEXT_ITEM_INTRO_MONKEY_LINE_01
BREAK
CASE DEGENATRON_GAMES_PENETRATOR
eItem = DEGENATRON_GAMES_TEXT_ITEM_INTRO_PENETRATOR_LINE_01
BREAK
ENDSWITCH
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(eItem,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_40),DEGENATRON_GAMES_GET_TEXT_SIZE(eItem), 0.0, sDegenatronGamesData.rgbaGreen)
eItem = INT_TO_ENUM(DEGENATRON_GAMES_TEXT_ITEM, ENUM_TO_INT(eItem)+1)
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(eItem,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_41),DEGENATRON_GAMES_GET_TEXT_SIZE(eItem), 0.0, sDegenatronGamesData.rgbaGreen)
eItem = INT_TO_ENUM(DEGENATRON_GAMES_TEXT_ITEM, ENUM_TO_INT(eItem)+1)
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(eItem,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_42),DEGENATRON_GAMES_GET_TEXT_SIZE(eItem), 0.0, sDegenatronGamesData.rgbaGreen)
eItem = INT_TO_ENUM(DEGENATRON_GAMES_TEXT_ITEM, ENUM_TO_INT(eItem)+1)
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(eItem,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_43),DEGENATRON_GAMES_GET_TEXT_SIZE(eItem), 0.0, sDegenatronGamesData.rgbaRed)
ENDPROC
PROC DEGENATRON_GAMES_DRAW_SCORE()
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_SCORE,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_50),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_SCORE),0.0, sDegenatronGamesData.rgbaWhite)
DEGENATRON_GAMES_DRAW_INTEGER(sDegenatronGamesData.sGameData.iScore, 0, DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_51), sDegenatronGamesData.rgbaWhite)
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_HIGH_SCORE,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_53),DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_HIGH_SCORE),0.0, sDegenatronGamesData.rgbaWhite)
DEGENATRON_GAMES_DRAW_INTEGER(sAGLeaderboardData.sLeaderboard[0].iScore, 0, DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_54), sDegenatronGamesData.rgbaWhite)
ENDPROC
PROC DEGENATRON_GAMES_DRAW_FAIL_SUCCESS_TEXT()
DEGENATRON_GAMES_TEXT_ITEM_POS eLinePos = DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_40
RGBA_COLOUR_STRUCT color = sDegenatronGamesData.rgbaRed
IF sDegenatronGamesData.eGame = DEGENATRON_GAMES_PENETRATOR
eLinePos = DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_43
color = sDegenatronGamesData.rgbaYellow
ENDIF
IF sDegenatronGamesData.sGameData.iFlashTime > ciDEGENATRON_GAMES_PLAYER_FLASH_TIME AND sDegenatronGamesData.sGameData.iWaitTime > 0
IF sDegenatronGamesData.sGameData.bPlayerIsDead
IF sDegenatronGamesData.sGameData.iLifes > 0
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_LEVEL_FAILED,DEGENATRON_GAMES_GET_TEXT_POSITION(eLinePos), DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_LEVEL_FAILED),0.0,color)
ELSE
IF sDegenatronGamesData.sGameData.iWaitTime < 1000
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_LEVEL_FAILED,DEGENATRON_GAMES_GET_TEXT_POSITION(eLinePos), DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_LEVEL_FAILED),0.0,color)
ELSE
SWITCH (sDegenatronGamesData.sGameData.iWaitTime / 250) % 5
CASE 0
color = sDegenatronGamesData.rgbaRed
BREAK
CASE 1
color = sDegenatronGamesData.rgbaPurple
BREAK
CASE 2
color = sDegenatronGamesData.rgbaMagenta
BREAK
CASE 3
color = sDegenatronGamesData.rgbaBlue
BREAK
CASE 4
color = sDegenatronGamesData.rgbaYellow
BREAK
ENDSWITCH
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_GAME_OVER,DEGENATRON_GAMES_GET_TEXT_POSITION(eLinePos), DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_GAME_OVER),0.0,color)
ENDIF
ENDIF
ELSE
DEGENATRON_GAMES_DRAW_PIXELSPACE_SPRITE(DEGENATRON_GAMES_TEXT_ITEM_LEVEL_PASSED,DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_LINE_POS_40), DEGENATRON_GAMES_GET_TEXT_SIZE(DEGENATRON_GAMES_TEXT_ITEM_LEVEL_PASSED),0.0,sDegenatronGamesData.rgbaPurple)
ENDIF
ENDIF
ENDPROC
PROC DEGENATRON_GAMES_DRAW_SCORE_BAR(BOOL bDrawLevel, BOOL bDrawObjectives)
DEGENATRON_GAMES_DRAW_INTEGER(sDegenatronGamesData.sGameData.iScore, 0, DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_SCORE_BAR_SCORE),sDegenatronGamesData.rgbaWhite,DEFAULT,TRUE)
DEGENATRON_GAMES_DRAW_INTEGER(sDegenatronGamesData.sGameData.iLifes, 0, DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_SCORE_BAR_LIFES),sDegenatronGamesData.rgbaRed)
DEGENATRON_GAMES_DRAW_PIXELSPACE_RECT( DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_SCORE_BAR_LIFES_SQUARE),INIT_VECTOR_2D(cfDEGENATRON_GAMES_SCORE_BAR_SQUARE_WIDTH,cfDEGENATRON_GAMES_SCORE_BAR_SQUARE_HEIGHT),sDegenatronGamesData.rgbaRed)
IF bDrawLevel
DEGENATRON_GAMES_DRAW_INTEGER(sDegenatronGamesData.sGameData.iLevel, 0, DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_SCORE_BAR_LEVEL),sDegenatronGamesData.rgbaPurple)
ENDIF
IF bDrawObjectives
DEGENATRON_GAMES_DRAW_INTEGER(sDegenatronGamesData.sGameData.iObjectives, 0, DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_SCORE_BAR_OBJECTIVES),sDegenatronGamesData.rgbaGreen)
DEGENATRON_GAMES_DRAW_PIXELSPACE_RECT( DEGENATRON_GAMES_GET_TEXT_POSITION(DEGENATRON_GAMES_TEXT_ITEM_SCORE_BAR_OBJECTIVES_SQUARE),INIT_VECTOR_2D(cfDEGENATRON_GAMES_SCORE_BAR_SQUARE_WIDTH,cfDEGENATRON_GAMES_SCORE_BAR_SQUARE_HEIGHT),sDegenatronGamesData.rgbaGreen)
ENDIF
ENDPROC
#IF IS_DEBUG_BUILD
PROC __DEGENATRON_GAMES_PRINT_DEBUG_GAME_INFO
INT iLine = 0
DEBUG_TEXT_INT_IN_SCREEN("iLevel ",sDegenatronGamesData.sGameData.iLevel,0.01,0.05+0.01*iLine)
iLine++
DEBUG_TEXT_INT_IN_SCREEN("iLifes ",sDegenatronGamesData.sGameData.iLifes,0.01,0.05+0.01*iLine)
iLine++
DEBUG_TEXT_INT_IN_SCREEN("iScore ",sDegenatronGamesData.sGameData.iScore,0.01,0.05+0.01*iLine)
iLine++
DEBUG_TEXT_STRING_IN_SCREEN("eGameState ",DEGENATRON_GAMES_STATE_GAME_TO_STRING(sDegenatronGamesData.sGameData.eGameState),0.01,0.05+0.01*iLine)
iLine++
DEBUG_TEXT_INT_IN_SCREEN("bPlayerIsDead ",BOOL_TO_INT(sDegenatronGamesData.sGameData.bPlayerIsDead),0.01,0.05+0.01*iLine)
iLine++
ENDPROC
#ENDIF