322 lines
18 KiB
Scheme
Executable File
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
|