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

3019 lines
134 KiB
XML
Executable File

USING "gunslinger_arcade_using.sch"
USING "gunslinger_arcade_levels.sch"
USING "gunslinger_arcade_leaderboard.sch"
USING "arcade_games_postfx.sch"
PROC TWS_DRAW_FRONT_FX()
ARCADE_GAMES_POSTFX_DRAW()
#IF IS_DEBUG_BUILD
IF sTLGData.bDisableFacade
EXIT
ENDIF
#ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31FacadeTextDict, "Badlands_Bezel", INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31FacadeTextDict, "BADLANDS_REVENGE2_43_Frame2", INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), 0, sTLGData.rgbaSprite)
ENDPROC
FUNC BOOL TLG_IS_CLOUD(STRING sCloud)
RETURN ARE_STRINGS_EQUAL(sCloud, "LEVEL_01_DESERT_CLOUDS_TILE")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_01")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_02")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_03")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_04")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_05")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_06")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_02_TOWN_BACKGROUND_CLOUDS_07")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_01")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_02")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_03")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_04")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_05")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_06")
OR ARE_STRINGS_EQUAL(sCloud, "LEVEL_03_FOREST_BACKGROUND_CLOUDS_07")
ENDFUNC
FUNC INT TLG_GET_FIRST_BACKGROUND_ELEMENT_OF_TYPE(STRING sType)
INT i
FOR i = 0 TO ciTLG_MAX_BACKGROUND_ELEMS - 1
IF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, sType)
RETURN i
ENDIF
ENDFOR
RETURN -1
ENDFUNC
FUNC INT TLG_GET_NUMBER_OF_BACKGROUND_ELEMENTS_OF_TYPE(STRING sType, INT iFirstElement)
INT iCount
INT i
FOR i = iFirstElement TO ciTLG_MAX_BACKGROUND_ELEMS - 1
IF NOT IS_STRING_NULL_OR_EMPTY(sType)
IF NOT IS_STRING_NULL_OR_EMPTY(sTLGData.sBackgroundData[i].sSprite)
IF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, sType)
iCount++
ENDIF
ENDIF
ENDIF
ENDFOR
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_GET_NUMBER_OF_BACKGROUND_ELEMENTS_OF_TYPE] Type: ", sType, " Count: ", iCount)
RETURN iCount
ENDFUNC
/// PURPOSE:
/// Figure out where to warp the background element specified when it disappears off the screen LHS
/// PARAMS:
/// iElement -
/// RETURNS:
///
FUNC FLOAT GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(INT iElement)
FLOAT fWidth = sTLGData.sBackgroundData[iElement].vSpriteSize.x
INT iFirst = TLG_GET_FIRST_BACKGROUND_ELEMENT_OF_TYPE(sTLGData.sBackgroundData[iElement].sSprite)
INT iTotal = TLG_GET_NUMBER_OF_BACKGROUND_ELEMENTS_OF_TYPE(sTLGData.sBackgroundData[iElement].sSprite, iFirst)
INT iPrevious = iElement -1
IF iPrevious < iFirst
iPrevious = iFirst + (iTotal - 1) //(ciTLG_MAX_BACKGROUND_TILES - 1)
ENDIF
RETURN sTLGData.sBackgroundData[iPrevious].vSpritePos.X + fWidth
ENDFUNC
PROC TLG_DRAW_BACKGROUND()
TEXT_LABEL_63 tl23BackgroundSprite
TEXT_LABEL_31 tl31textDict = sTLGData.tl31BaseTextDict
SWITCH sTLGData.eCurrentLevel
CASE TLG_LEVEL_DESERT
tl23BackgroundSprite = "LEVEL_01_DESERT_BACKGROUND_TILE" // "bg-tile1" //
tl31textDict = sTLGData.tl31Level1TextDict
BREAK
CASE TLG_LEVEL_TOWN
tl23BackgroundSprite = "LEVEL_02_TOWN_BACKGROUND_TILE" //"bg-tile2"
tl31textDict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_LEVEL_FOREST
tl23BackgroundSprite = "LEVEL_03_FOREST_BACKGROUND_TILE" //"bg-tile3"
tl31textDict = sTLGData.tl31Level3TextDict
BREAK
CASE TLG_LEVEL_MINE
tl23BackgroundSprite = "LEVEL_04_GOLDMINE_BACKGROUND_TILE" //"bg-tile4"
tl31textDict = sTLGData.tl31Level4TextDict
BREAK
CASE TLG_LEVEL_GRAVEYARD
tl23BackgroundSprite = "LEVEL_05_GRAVEYARD_BACKGROUND_TILE" //"bg-tile5"
tl31textDict = sTLGData.tl31Level5TextDict
BREAK
ENDSWITCH
INT i
INT iPrevious
//INT iFirst
FOR i = 0 TO ciTLG_MAX_BACKGROUND_TILES - 1
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31textDict, tl23BackgroundSprite, INIT_VECTOR_2D(sTLGData.sBackgroundTilesData[i].vSpritePos.x, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfTLG_BCAKGROUND_TILE_WIDTH, cfGAME_SCREEN_HEIGHT), 0, sTLGData.rgbaSprite)
IF sTLGData.sBackgroundTilesData[i].vSpritePos.x < cfTLG_BCAKGROUND_TILE_WIDTH/2
iPrevious = i - 1
IF iPrevious < 0
iPrevious = ciTLG_MAX_BACKGROUND_TILES - 1
ENDIF
//sTLGData.sBackgroundTilesData[i].vSpritePos.x = (cfTLG_BCAKGROUND_TILE_WIDTH * 7) - cfTLG_BCAKGROUND_TILE_WIDTH/2 - (4.0 * TLG_GET_PREVIOUS_TIMESTEP())
sTLGData.sBackgroundTilesData[i].vSpritePos.x = sTLGData.sBackgroundTilesData[iPrevious].vSpritePos.x + cfTLG_BCAKGROUND_TILE_WIDTH
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundTilesData[i].vSpritePos.x -= TLG_GET_BACKGROUND_TILE_UPDATE()
ENDIF
ENDFOR
FLOAT fClouds
FLOAT fCloudSpace
// Far canyons
FOR i = 0 TO ciTLG_MAX_BACKGROUND_ELEMS - 1
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31Level2TextDict, "mountains", GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_MOUNTAIN_1_SPRITE_WIDTH, cfTLG_MOUNTAIN_1_SPRITE_HEIGHT), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, "LEVEL_05_GRAVEYARD_BACKGROUND_TILE_TREES", GET_DEBUG_TEXTURE_POS(1), INIT_VECTOR_2D(cfTLG_LEVEL5_BACKGROUND_TREES_WIDTH, cfTLG_LEVEL5_BACKGROUND_TREES_HEIGHT), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, "LEVEL_05_GRAVEYARD_BACKGROUND_TILE_GATE", GET_DEBUG_TEXTURE_POS(2), INIT_VECTOR_2D(cfTLG_LEVEL5_BACKGROUND_FENCE_WIDTH, cfTLG_LEVEL5_BACKGROUND_FENCE_HEIGHT), 0, sTLGData.rgbaSprite)
IF sTLGData.sBackgroundData[i].bRendering AND sTLGData.sBackgroundData[i].iLane = 0
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31textDict, sTLGData.sBackgroundData[i].sSprite, sTLGData.sBackgroundData[i].vSpritePos, sTLGData.sBackgroundData[i].vSpriteSize, 0, sTLGData.rgbaSprite)
IF TLG_IS_CLOUD(sTLGData.sBackgroundData[i].sSprite)
IF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_DESERT
IF sTLGData.sBackgroundData[i].vSpritePos.X + (cfTLG_LEVEL1_CLOUD_WIDTH / 2.0 ) <= 0
sTLGData.sBackgroundData[i].vSpritePos.X = cfTLG_LEVEL1_CLOUD_WIDTH + cfTLG_LEVEL1_CLOUD_WIDTH + (cfTLG_LEVEL1_CLOUD_WIDTH / 2.0 )
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Warping cloud ", i, " New Pos x: ", sTLGData.sBackgroundData[i].vSpritePos.X)
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CLOUD_UPDATE()
ENDIF
ELIF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_TOWN
fCloudSpace = cfTLG_LEVEL2_CLOUD_GAP
fClouds = cfTLG_LEVEL2_CLOUD1_WIDTH + fCloudSpace + cfTLG_LEVEL2_CLOUD2_WIDTH + fCloudSpace + cfTLG_LEVEL2_CLOUD3_WIDTH + fCloudSpace + cfTLG_LEVEL2_CLOUD4_WIDTH + fCloudSpace + cfTLG_LEVEL2_CLOUD5_WIDTH + fCloudSpace + cfTLG_LEVEL2_CLOUD6_WIDTH + fCloudSpace + cfTLG_LEVEL2_CLOUD7_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 ) <= 300.0
sTLGData.sBackgroundData[i].vSpritePos.X = 300.0 + fClouds + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 )
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CLOUD_UPDATE()
ENDIF
ELIF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_FOREST
fCloudSpace = cfTLG_LEVEL3_CLOUD_GAP
fClouds = cfTLG_LEVEL3_CLOUD1_WIDTH + fCloudSpace + cfTLG_LEVEL3_CLOUD2_WIDTH + fCloudSpace + cfTLG_LEVEL3_CLOUD3_WIDTH + fCloudSpace + cfTLG_LEVEL3_CLOUD4_WIDTH + fCloudSpace + cfTLG_LEVEL3_CLOUD5_WIDTH + fCloudSpace + cfTLG_LEVEL3_CLOUD6_WIDTH + fCloudSpace + cfTLG_LEVEL3_CLOUD7_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 ) <= 300.0
sTLGData.sBackgroundData[i].vSpritePos.X = 300.0 + fClouds + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 )
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CLOUD_UPDATE()
ENDIF
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "mountains")
IF sTLGData.sBackgroundData[i].vSpritePos.X + (cfTLG_MOUNTAIN_1_SPRITE_WIDTH / 2.0 ) <= 0
sTLGData.sBackgroundData[i].vSpritePos.X = cfTLG_MOUNTAIN_1_SPRITE_WIDTH + cfTLG_MOUNTAIN_1_SPRITE_WIDTH + (cfTLG_MOUNTAIN_1_SPRITE_WIDTH / 2.0 )
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Warping mountains ", i, " New Pos x: ", sTLGData.sBackgroundData[i].vSpritePos.X)
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "LEVEL_03_FOREST_BACKGROUND_TREES")
fClouds = 7 * cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i) //fClouds
ENDIF
// CPRINTLN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] Level 3 trees : ", i)
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "LEVEL_04_GOLDMINE_CAVE_BACKGROUND_CAVE")
fClouds = 7 * cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i)
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CLOUD_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "LEVEL_04_GOLDMINE_CAVE_TILE_02")
fClouds = 7 * cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i)
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "LEVEL_05_GRAVEYARD_BACKGROUND_CLOUDS")
fClouds = 7 * cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i) //fClouds// + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 )
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CLOUD_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "LEVEL_05_GRAVEYARD_BACKGROUND_TILE_TREES")
fClouds = 7 * cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i) //fClouds// + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 )
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL(sTLGData.sBackgroundData[i].sSprite, "LEVEL_05_GRAVEYARD_BACKGROUND_TILE_GATE")
fClouds = 7 * cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i) //fClouds// + (sTLGData.sBackgroundData[i].vSpriteSize.x / 2.0 )
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_DEFAULT_NEAR_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELSE
IF sTLGData.sBackgroundData[i].vSpritePos.X < cfTLG_BCAKGROUND_TILE_WIDTH/2
sTLGData.sBackgroundData[i].vSpritePos.X = cfBASE_SCREEN_WIDTH
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ENDIF
ENDIF
ENDFOR
// Close canyons
FOR i = 0 TO ciTLG_MAX_BACKGROUND_ELEMS - 1
IF sTLGData.sBackgroundData[i].bRendering AND sTLGData.sBackgroundData[i].iLane = 1
//sTLGData.sBackgroundData[i].vSpritePos.y = sTLGData.fTexturePosY[0]
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31textDict, sTLGData.sBackgroundData[i].sSprite, sTLGData.sBackgroundData[i].vSpritePos, sTLGData.sBackgroundData[i].vSpriteSize, 0, sTLGData.rgbaSprite)
IF ARE_STRINGS_EQUAL("LEVEL_04_GOLDMINE_CAVE_TILE", sTLGData.sBackgroundData[i].sSprite)
OR ARE_STRINGS_EQUAL("LEVEL_04_GOLDMINE_ASSETS_10", sTLGData.sBackgroundData[i].sSprite)
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i)
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CUSTOM_FAST_NEAR_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELIF ARE_STRINGS_EQUAL("fence-small", sTLGData.sBackgroundData[i].sSprite)
IF sTLGData.sBackgroundData[i].vSpritePos.X <= 0.0
sTLGData.sBackgroundData[i].vSpritePos.X = GET_WARP_POSITION_FOR_BACKGROUND_ELEMENT(i)
ENDIF
IF IS_MOVING_LEVEL()
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_DEFAULT_NEAR_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ELSE
IF sTLGData.sBackgroundData[i].vSpritePos.X < cfTLG_BCAKGROUND_TILE_WIDTH/2
sTLGData.sBackgroundData[i].vSpritePos.X = cfBASE_SCREEN_WIDTH
ENDIF
IF IS_MOVING_LEVEL()
IF ARE_STRINGS_EQUAL("rocks", sTLGData.sBackgroundData[i].sSprite)
OR ARE_STRINGS_EQUAL("FOREST_FLOOR_GRASS", sTLGData.sBackgroundData[i].sSprite)
OR ARE_STRINGS_EQUAL("LEVEL_03_FOREST_ROCKS", sTLGData.sBackgroundData[i].sSprite)
OR ARE_STRINGS_EQUAL("LEVEL_04_GOLDMINE_ROCK", sTLGData.sBackgroundData[i].sSprite)
OR ARE_STRINGS_EQUAL("WOODENSTRUCTURE", sTLGData.sBackgroundData[i].sSprite)
// OR ARE_STRINGS_EQUAL("LEVEL_04_GOLDMINE_ASSETS_10", sTLGData.sBackgroundData[i].sSprite)
// OR ARE_STRINGS_EQUAL("LEVEL_04_GOLDMINE_CAVE_TILE", sTLGData.sBackgroundData[i].sSprite)
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CUSTOM_FAST_NEAR_BACKGROUND_ELEMENT_UPDATE()
ELIF ARE_STRINGS_EQUAL("mountain-small1", sTLGData.sBackgroundData[i].sSprite)
OR ARE_STRINGS_EQUAL("mountain-small2", sTLGData.sBackgroundData[i].sSprite)
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CUSTOM_SLOW_NEAR_BACKGROUND_ELEMENT_UPDATE()
ELSE
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_DEFAULT_NEAR_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ENDIF
ENDIF
ENDIF
ENDFOR
ENDPROC
PROC TLG_DRAW_HOSTAGES(INT iLane)
TEXT_LABEL_23 tl23Sprite
INT i
IF iLane = 1
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HostagesTextDict, "hostage1",GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_HOSTAGE_M_SPRITE_WIDTH, cfTLG_HOSTAGE_M_SPRITE_HEIGHT), 0, sTLGData.rgbaSprite)
ENDIF
FOR i = 0 TO ciTLG_MAX_HOSTAGES -1
IF sTLGData.sHostageData[i].iHostageLane = iLane
IF sTLGData.sHostageData[i].iHealth > 0
SWITCH sTLGData.sHostageData[i].eHostageType
CASE TLG_GIRL
tl23Sprite = "hostage1"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_GUY
tl23Sprite = "hostage2"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_EAGLE
tl23Sprite = "eagle"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_VULTURE
tl23Sprite = "vulture_0"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_BAT
tl23Sprite = "bat_0"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_SCORPION
tl23Sprite = "ANIMALBONUS_SCORPION_0"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_MOUSE
tl23Sprite = "ANIMALBONUS_RAT_0"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
CASE TLG_PRISONER_1
tl23Sprite = "prisoner"
tl23Sprite += (sTLGData.sHostageData[i].iSpriteAnimFrame + 1)
BREAK
ENDSWITCH
// IF iLane = 2
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_HOSTAGES] {DSW} Drawing Hostage ", i, " Type: ", TLG_GET_HOSTAGE_TYPE_AS_STRING(sTLGData.sHostageData[i].eHostageType), " Lane: ", sTLGData.sHostageData[i].iHostageLane, " Pos: ", sTLGData.sHostageData[i].vSpritePos.x, ", ", sTLGData.sHostageData[i].vSpritePos.y, " Size: ", sTLGData.sHostageData[i].vSize.x, ", ", sTLGData.sHostageData[i].vSize.y)
// ENDIF
IF sTLGData.sHostageData[i].bGoingBack AND (sTLGData.sHostageData[i].eHostageType != TLG_EAGLE AND sTLGData.sHostageData[i].eHostageType != TLG_VULTURE)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HostagesTextDict, tl23Sprite,sTLGData.sHostageData[i].vSpritePos, INIT_VECTOR_2D(-sTLGData.sHostageData[i].vSize.x, sTLGData.sHostageData[i].vSize.y), 0, sTLGData.rgbaSprite)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HostagesTextDict, tl23Sprite,sTLGData.sHostageData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sHostageData[i].vSize.x, sTLGData.sHostageData[i].vSize.y), 0, sTLGData.rgbaSprite)
ENDIF
ELIF sTLGData.sHostageData[i].bDying
SWITCH sTLGData.sHostageData[i].eHostageType
CASE TLG_GIRL
tl23Sprite = "ouch1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HostagesTextDict, tl23Sprite,sTLGData.sHostageData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_SPEECH_SPRITE_WIDTH, cfTLG_SPEECH_SPRITE_HEIGHT), 0, sTLGData.rgbaSprite)
BREAK
CASE TLG_GUY
tl23Sprite = "ouch1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HostagesTextDict, tl23Sprite,sTLGData.sHostageData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_SPEECH_SPRITE_WIDTH, cfTLG_SPEECH_SPRITE_HEIGHT), 0, sTLGData.rgbaSprite)
BREAK
ENDSWITCH
ENDIF
ENDIF
ENDFOR
ENDPROC
PROC TLG_DRAW_COVER(INT iDistance, BOOL bForLeaderboard = FALSE)
TEXT_LABEL_23 tl23Sprite
TEXT_LABEL_31 tl31Dict
FLOAT fScale = 1.0
INT iRemoveWhenOffScreen[10]
INT iNumRemove = 0
BOOL bRepositionWhenOffScreenForMovingLevel
BOOL bUpdatePosition
INT i
// IF iDistance =1
// fScale = TLG_GET_COVER_TYPE_SCALE_FOR_LANE(TLG_ASSET_COFFIN, iDistance)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31Level5TextDict, "GRAVEYARD_COFFIN_01", GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_GRAVEYARD_COFFIN_SPRITE_WIDTH*fScale, cfTLG_GRAVEYARD_COFFIN_SPRITE_HEIGHT*fScale), 0, sTLGData.rgbaSprite)
// ENDIF
FOR i = 0 TO ciTLG_MAX_COVER -1
IF sTLGData.sCoverData[i].iCoverLane = iDistance
AND (sTLGData.sCoverData[i].bRendering
OR sTLGData.sCoverData[i].iRenderAfterWarpCount > 0
OR sTLGData.sCoverData[i].bNeverRender)
IF sTLGData.sCoverData[i].iActiveInStage <= TLG_GET_CURRENT_LEVEL_STAGE()
fScale = TLG_GET_COVER_TYPE_SCALE_FOR_LANE(sTLGData.sCoverData[i].eType, iDistance)
SWITCH (sTLGData.sCoverData[i].eType)
CASE TLG_ASSET_OUTHOUSE
IF sTLGData.sCoverData[i].iHitCount = 0
tl23Sprite = "outhouse_01"
tl31Dict = sTLGData.tl31Level1TextDict
ELSE
tl23Sprite = "outhouse_empty"
tl31Dict = sTLGData.tl31Level1TextDict
ENDIF
BREAK
CASE TLG_ASSET_CACTUS_1
tl23Sprite = "cactus-1"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_2
tl23Sprite = "cactus-2"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_3
tl23Sprite = "cactus-3"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_4
tl23Sprite = "PROP_CACTUS_02"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CRATE_1
//-- Loot crate
IF sTLGData.sCoverData[i].iHitCount = 0
tl23Sprite = "crate_01"
tl31Dict = sTLGData.tl31GameplayCommonTextDict
ELIF sTLGData.sCoverData[i].iHitCount = 1
tl23Sprite = "crate_02"
tl31Dict = sTLGData.tl31GameplayCommonTextDict
ELIF sTLGData.sCoverData[i].iHitCount = 2
tl23Sprite = "crate_03"
tl31Dict = sTLGData.tl31GameplayCommonTextDict
ELSE
RELOOP
ENDIF
BREAK
CASE TLG_ASSET_BUILDING_1
tl23Sprite = "LEVEL_02_TOWN_PROP_03"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_2
tl23Sprite = "LEVEL_02_TOWN_PROP_04"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_3
tl23Sprite = "LEVEL_02_TOWN_PROP_05"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_4
tl23Sprite = "LEVEL_02_TOWN_PROP_06"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_5
tl23Sprite = "LEVEL_02_TOWN_PROP_07"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_6
tl23Sprite = "LEVEL_02_TOWN_PROP_08"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_7
tl23Sprite = "LEVEL_02_TOWN_PROP_09"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_BUILDING_8
tl23Sprite = "LEVEL_02_TOWN_PROP_10"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_FENCE
tl23Sprite = "fence"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_FENCE_SMALL
tl23Sprite = "fence-small"
tl31Dict = sTLGData.tl31Level2TextDict
BREAK
CASE TLG_ASSET_CACTUS_5
tl23Sprite = "PROP_CACTUS_03"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_6
tl23Sprite = "PROP_CACTUS_04"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_7
tl23Sprite = "PROP_CACTUS_05"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_8
tl23Sprite = "PROP_CACTUS_06"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_9
tl23Sprite = "PROP_CACTUS_07"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_10
tl23Sprite = "PROP_CACTUS_08"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_CACTUS_11
tl23Sprite = "PROP_CACTUS_09"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_FOREST_TREE_1
tl23Sprite = "TREE_01"
tl31Dict = sTLGData.tl31Level3TextDict
BREAK
CASE TLG_ASSET_FOREST_TREE_2
tl23Sprite = "TREE_02"
tl31Dict = sTLGData.tl31Level3TextDict
BREAK
CASE TLG_ASSET_GRASS
tl23Sprite = "FOREST_FLOOR_GRASS"
tl31Dict = sTLGData.tl31Level3TextDict
BREAK
CASE TLG_ASSET_BUSH_1
tl23Sprite = "PROP_BUSH_SMALL"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_BUSH_2
tl23Sprite = "PROP_BUSH_LARGE"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_ROCK_SMALL
tl23Sprite = "PROP_ROCK_SMALL"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_ROCK_LARGE
tl23Sprite = "PROP_ROCK_LARGE"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_STACKED_CRATES_1
tl31Dict = sTLGData.tl31Level4TextDict
tl23Sprite = "PROP_STACKED_CRATES_01"
BREAK
CASE TLG_ASSET_STACKED_CRATES_2
tl31Dict = sTLGData.tl31Level4TextDict
tl23Sprite = "PROP_STACKED_CRATES_02"
BREAK
CASE TLG_ASSET_BARRELS
tl23Sprite = "PROP_BARRELS"
tl31Dict = sTLGData.tl31CommonPropsTextDict
BREAK
CASE TLG_ASSET_BIG_TOMB
tl31Dict = sTLGData.tl31Level5TextDict
tl23Sprite = "GRAVEYARD_PROP_06"
BREAK
CASE TLG_ASSET_TOMBSTONE_1
tl31Dict = sTLGData.tl31Level5TextDict
tl23Sprite = "GRAVEYARD_PROP_01"
BREAK
CASE TLG_ASSET_TOMBSTONE_2
tl31Dict = sTLGData.tl31Level5TextDict
tl23Sprite = "GRAVEYARD_PROP_02"
BREAK
CASE TLG_ASSET_TOMBSTONE_3
tl31Dict = sTLGData.tl31Level5TextDict
tl23Sprite = "GRAVEYARD_PROP_03"
BREAK
CASE TLG_ASSET_TOMBSTONE_4
tl31Dict = sTLGData.tl31Level5TextDict
tl23Sprite = "GRAVEYARD_PROP_04"
BREAK
CASE TLG_ASSET_TOMBSTONE_5
tl31Dict = sTLGData.tl31Level5TextDict
tl23Sprite = "GRAVEYARD_PROP_05"
BREAK
CASE TLG_ASSET_COFFIN
tl23Sprite = "GRAVEYARD_COFFIN_01"
IF sTLGData.sCoverData[i].iHitCount = 0
tl23Sprite = "GRAVEYARD_COFFIN_01"
tl31Dict = sTLGData.tl31Level5TextDict
ELSE
tl23Sprite = "GRAVEYARD_COFFIN_EMPTY"
tl31Dict = sTLGData.tl31Level5TextDict
ENDIF
BREAK
CASE TLG_ASSET_WATER_TOWER
tl31Dict = sTLGData.tl31Level2TextDict
tl23Sprite = "WATER-TANK"
BREAK
CASE TLG_ASSET_SPECIAL_TNT_CRATE
tl23Sprite = "PROP_TNT_CRATE_STATE_01"
tl31Dict = sTLGData.tl31GameplayCommonTextDict
BREAK
CASE TLG_ASSET_SPECIAL_TNT_BARREL_1
tl23Sprite = "BARREL_HORIZONTAL"
tl31Dict = sTLGData.tl31Level4TextDict
BREAK
CASE TLG_ASSET_SPECIAL_TNT_BARREL_2
tl23Sprite = "BARREL_VERTICAL"
BREAK
CASE TLG_ASSET_SPECIAL_OUTHOUSE_HOST
tl31Dict = sTLGData.tl31Level1TextDict
tl23Sprite = "OUTHOUSE_EMPTY"
BREAK
ENDSWITCH
//-- Track the 'right-most' cover / element currently visible
IF sTLGData.sCoverData[i].vSpritePos.x < cfBASE_SCREEN_WIDTH AND sTLGData.sCoverData[i].vSpritePos.x > 0
IF sTLGData.sCoverData[i].bRendering
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31Dict, tl23Sprite, sTLGData.sCoverData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sCoverData[i].fCoverWidth*fScale, sTLGData.sCoverData[i].fCoverHeight*fScale), 0, sTLGData.rgbaSprite)
ENDIF
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Drawing cover ", i , " Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType), " At x pos: ",sTLGData.sCoverData[i].vSpritePos.x)
IF sTLGData.sCoverData[i].vSpritePos.x - (sTLGData.sCoverData[i].fCoverWidth / 2.0) < cfRIGHT_SCREEN_LIMIT
AND sTLGData.sCoverData[i].vSpritePos.x + (sTLGData.sCoverData[i].fCoverWidth / 2.0) > cfLEFT_SCREEN_LIMIT
IF sTLGData.iRightMostCover = -1
sTLGData.fRightMostCoverX = sTLGData.sCoverData[i].vSpritePos.x
sTLGData.iRightMostCover = i
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Init iRightMostCover: ", i, " Rightmost x: ", sTLGData.fRightMostCoverX, " Prop: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ELIF i = sTLGData.iRightMostCover
sTLGData.fRightMostCoverX = sTLGData.sCoverData[i].vSpritePos.x
// #IF IS_DEBUG_BUILD
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Update iRightMostCover: ", i, " Rightmost x: ", sTLGData.fRightMostCoverX, " Prop: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
// #ENDIF
ELSE
IF sTLGData.sCoverData[i].vSpritePos.x > sTLGData.fRightMostCoverX
IF sTLGData.sCoverData[i].iScreen != sTLGData.sCoverData[sTLGData.iRightMostCover].iScreen
IF sTLGData.sCoverData[i].iScreen > sTLGData.sCoverData[sTLGData.iRightMostCover].iScreen
sTLGData.fRightMostCoverX = sTLGData.sCoverData[i].vSpritePos.x
sTLGData.iRightMostCover = i
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} New iRightMostCover: ", i, " Screen:", sTLGData.sCoverData[sTLGData.iRightMostCover].iScreen, " Rightmost x: ", sTLGData.fRightMostCoverX, " Prop: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ELIF sTLGData.sCoverData[sTLGData.iRightMostCover].iScreen = 4 AND sTLGData.sCoverData[i].iScreen = 1
sTLGData.fRightMostCoverX = sTLGData.sCoverData[i].vSpritePos.x
sTLGData.iRightMostCover = i
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} New iRightMostCover: ", i, " Screen:", sTLGData.sCoverData[sTLGData.iRightMostCover].iScreen, " Rightmost x: ", sTLGData.fRightMostCoverX, " Prop: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
bUpdatePosition = TRUE
bRepositionWhenOffScreenForMovingLevel = FALSE
IF bForLeaderboard
//-- If it's the LB background, always update
bRepositionWhenOffScreenForMovingLevel = TRUE
ELIF IS_MOVING_LEVEL()
IF TLG_IS_MOVING_LEVEL_ABOUT_TO_STOP()
IF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_DESERT
OR sTLGData.sCoverData[i].iCoverLane = ciTLG_LANE_FOREGROUND
//-- Don't want to reprosition if we're about to stop scrolling as otherwise they'll appear again on
//-- the static screen
bRepositionWhenOffScreenForMovingLevel = FALSE
IF sTLGData.sCoverData[i].iActiveInStage < TLG_GET_CURRENT_LEVEL_STAGE()
FLOAT fLeftEdge
fLeftEdge = sTLGData.sCoverData[i].vSpritePos.x - (sTLGData.sCoverData[i].fCoverWidth /2.0)
IF fLeftEdge > cfBASE_SCREEN_WIDTH - 250
//-- If we're about to stop, don't update anything that's about to appear from the right
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Not updating cover from right - about to stop ", i, " Lane: ", sTLGData.sCoverData[i].iCoverLane ," Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType), " Left edge Pos: ", fLeftEdge)
#ENDIF
bUpdatePosition = FALSE
ENDIF
ENDIF
ELSE
//-- Level is moving, fine to update
bRepositionWhenOffScreenForMovingLevel = TRUE
ENDIF
ELSE
//-- Level is moving, fine to update
bRepositionWhenOffScreenForMovingLevel = TRUE
ENDIF
ELSE
//-- Stationary, don't move anything
bRepositionWhenOffScreenForMovingLevel = FALSE
bUpdatePosition = FALSE
ENDIF
// IF TLG_GET_CURRENT_LEVEL() != TLG_LEVEL_DESERT
// bRepositionWhenOffScreenForMovingLevel = FALSE
// ENDIF
IF iDistance = 2
IF sTLGData.sCoverData[i].vSpritePos.x >= -200
IF bUpdatePosition
sTLGData.sCoverData[i].vSpritePos.x -= TLG_GET_COVER_FOREGROUND_UPDATE()
ENDIF
ELIF sTLGData.sCoverData[i].vSpritePos.x < -200
IF bRepositionWhenOffScreenForMovingLevel
sTLGData.sCoverData[i].vSpritePos.x = cfBASE_SCREEN_WIDTH*2
ENDIF
ENDIF
ELSE
IF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_DESERT
IF sTLGData.sCoverData[i].vSpritePos.x >= -200
IF bUpdatePosition
sTLGData.sCoverData[i].vSpritePos.x -= TLG_GET_COVER_UPDATE()
ENDIF
ELIF sTLGData.sCoverData[i].vSpritePos.x < -200
IF bRepositionWhenOffScreenForMovingLevel
IF TLG_SHOULD_REMOVE_COVER_WHEN_OFF_SCREEN(i)
//-- When some cover has finished animating, don't want to reposition
IF iNumRemove < 10
iRemoveWhenOffScreen[iNumRemove] = i
iNumRemove++
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Want to remove when offscreen ", i, " Lane: ", sTLGData.sCoverData[i].iCoverLane ," Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ELSE
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Want to remove when offscreen BUT ARRAY FULL! ", i, " Lane: ", sTLGData.sCoverData[i].iCoverLane ," Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ENDIF
ELSE
sTLGData.sCoverData[i].vSpritePos.x = cfBASE_SCREEN_WIDTH + sTLGData.sCoverData[i].fCoverWidth/2
ENDIF
ENDIF
ENDIF
ELIF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_TOWN
OR TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_FOREST
OR TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_MINE
OR TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_GRAVEYARD
IF sTLGData.sCoverData[i].vSpritePos.x > 0
IF bUpdatePosition
sTLGData.sCoverData[i].vSpritePos.x -= TLG_GET_COVER_UPDATE()
ENDIF
ELIF sTLGData.sCoverData[i].vSpritePos.x <= 0
IF bRepositionWhenOffScreenForMovingLevel
IF TLG_SHOULD_REMOVE_COVER_WHEN_OFF_SCREEN(i)
//-- When some cover has finished animating, don't want to reposition
IF iNumRemove < 10
iRemoveWhenOffScreen[iNumRemove] = i
iNumRemove++
IF sTLGData.sCoverData[i].eType = TLG_ASSET_COFFIN
TLG_ADD_COVER_TO_LIST(sTLGData.sCoverData[i].vSpritePos, TLG_ASSET_COFFIN, ciTLG_LANE_BACKGROUND, ciTLG_STAGE_0, sTLGData.sCoverData[i].iScreen)
ENDIF
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Want to remove when offscreen ", i, " Lane: ", sTLGData.sCoverData[i].iCoverLane ," Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ELSE
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Want to remove when offscreen BUT ARRAY FULL! ", i, " Lane: ", sTLGData.sCoverData[i].iCoverLane ," Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ENDIF
ELSE
sTLGData.sCoverData[i].vSpritePos.x = TLG_GET_OFFSET_FOR_ELEMENT_WARP_FOR_CURRENT_LEVEL()
#IF IS_DEBUG_BUILD
IF sTLGData.sCoverData[i].eType = TLG_ASSET_SPECIAL_TNT_BARREL_1
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Found TNT Barrel Cover: ", i, " Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType), " Render after warp count: ", sTLGData.sCoverData[i].iRenderAfterWarpCount)
ENDIF
#ENDIF
sTLGData.sCoverData[i].iWarpCount++
IF sTLGData.sCoverData[i].iRenderAfterWarpCount > 0
AND (sTLGData.sCoverData[i].iRenderAfterWarpCount = sTLGData.sCoverData[i].iWarpCount)
sTLGData.sCoverData[i].bRendering = TRUE
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Setting prop ", i, "to render after warp count", sTLGData.sCoverData[i].iRenderAfterWarpCount, " Lane: ", sTLGData.sCoverData[i].iCoverLane ," Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType))
#ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_MOVING_LEVEL()
IF TLG_IS_MOVING_LEVEL_ABOUT_TO_STOP()
IF TLG_SHOULD_MOVING_LEVEL_STOP(i)
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_COVER] {DSW} Stopping because Prop ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType), " For stage ", sTLGData.sCoverData[i].iActiveInStage, " At X pos ", sTLGData.sCoverData[i].vSpritePos.x)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDFOR
//-- Delete / reset any cover we don't want to re-appear next time the screen scrolls
IF iNumRemove > 0
FOR i = 0 TO iNumRemove - 1
TLG_RESET_COVER(iRemoveWhenOffScreen[i])
ENDFOR
ENDIF
ENDPROC
PROC TLG_DRAW_THROWN_ENEMY_PROJECTILES()
INT i
TEXT_LABEL_31 tl31Sprite
VECTOR_2D vSize
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, "THROWING_DYNAMITE_SMALL_01" ,GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(ciTLG_DYNAMITE_SMALL_WIDTH, ciTLG_DYNAMITE_SMALL_HEIGHT),0, sTLGData.rgbaSprite)
REPEAT ciTLG_MAX_ENEMY_PROJECTILES i
IF sTLGData.sEnemyProjectiles[i].eState = TLG_ENEMY_PROJECTILE_STATE_INACTIVE
ELIF sTLGData.sEnemyProjectiles[i].eState = TLG_ENEMY_PROJECTILE_STATE_AIRBORNE
SWITCH sTLGData.sEnemyProjectiles[i].eType
CASE TLG_ENEMY_PROJECTILE_DYNAMITE
SWITCH sTLGData.sEnemyProjectiles[i].iSpriteAnimFrame
CASE 0 tl31Sprite = "THROWING_DYNAMITE_SMALL_01" vSize = INIT_VECTOR_2D(ciTLG_DYNAMITE_SMALL_WIDTH, ciTLG_DYNAMITE_SMALL_HEIGHT) BREAK
CASE 1 tl31Sprite = "THROWING_DYNAMITE_SMALL_02" vSize = INIT_VECTOR_2D(ciTLG_DYNAMITE_SMALL_WIDTH, ciTLG_DYNAMITE_SMALL_HEIGHT) BREAK
CASE 2 tl31Sprite = "THROWING_DYNAMITE_MEDIUM_01" vSize = INIT_VECTOR_2D(ciTLG_DYNAMITE_MEDIUM_WIDTH, ciTLG_DYNAMITE_MEDIUM_HEIGHT) BREAK
CASE 3 tl31Sprite = "THROWING_DYNAMITE_MEDIUM_02" vSize = INIT_VECTOR_2D(ciTLG_DYNAMITE_MEDIUM_WIDTH, ciTLG_DYNAMITE_MEDIUM_HEIGHT) BREAK
CASE 4 tl31Sprite = "THROWING_DYNAMITE_LARGE_01" vSize = INIT_VECTOR_2D(ciTLG_DYNAMITE_LARGE_WIDTH, ciTLG_DYNAMITE_LARGE_HEIGHT) BREAK
CASE 5 tl31Sprite = "THROWING_DYNAMITE_LARGE_02" vSize = INIT_VECTOR_2D(ciTLG_DYNAMITE_LARGE_WIDTH, ciTLG_DYNAMITE_LARGE_HEIGHT) BREAK
ENDSWITCH
BREAK
ENDSWITCH
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DRAW_THROWN_ENEMY_PROJECTILES] Sprite: ", tl31Sprite)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31CommonPropsTextDict, tl31Sprite,sTLGData.sEnemyProjectiles[i].vSpritePos, vSize, 0, sTLGData.rgbaSprite)
ELIF sTLGData.sEnemyProjectiles[i].eState = TLG_ENEMY_PROJECTILE_STATE_EXPLODE
ENDIF
ENDREPEAT
ENDPROC
PROC TLG_DRAW_ITEMS(INT iDistance)
TEXT_LABEL_23 tl23Sprite
FLOAT fScale = 1.0
SWITCH iDistance
CASE 0
fScale = 0.75
BREAK
CASE 2
//fScale = 2.5
BREAK
ENDSWITCH
IF iDistance = 2
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "ammo1", GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_PISTOL_AMMO_CLIP_WIDTH*1.0, cfTLG_SPRITE_HUD_PISTOL_AMMO_CLIP_HEIGHT*1.0), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "POWERUP_HEALTH", GET_DEBUG_TEXTURE_POS(1), INIT_VECTOR_2D(cfTLG_ITEM_HEALTH_WIDTH*1.0, cfTLG_ITEM_HEALTH_HEIGHT*1.0), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "ammo4", GET_DEBUG_TEXTURE_POS(2), INIT_VECTOR_2D(cfTLG_ITEM_HEALTH_WIDTH*1.0, cfTLG_ITEM_HEALTH_HEIGHT*1.0), 0, sTLGData.rgbaSprite)
ENDIF
INT i
FOR i = 0 TO ciTLG_MAX_ITEMS -1
IF sTLGData.sItemData[i].iLane = iDistance
AND (sTLGData.sItemData[i].bRendering OR sTLGData.sItemData[i].iRenderAfterWarpCount > 0 OR sTLGData.sItemData[i].iMinActiveStage > 0)
SWITCH (sTLGData.sItemData[i].eItemType)
CASE TLG_HEALTH
tl23Sprite = "POWERUP_HEALTH"
BREAK
CASE TLG_REVOLVER_AMMO
tl23Sprite = "ammo1"
BREAK
CASE TLG_MACHINE_GUN_AMMO
tl23Sprite = "ammo4"
BREAK
CASE TLG_SHOTGUN_AMMO
tl23Sprite = "ammo2"
BREAK
CASE TLG_RIFLE_AMMO
tl23Sprite = "ammo3"
BREAK
CASE TLG_SNAKE_OIL
tl23Sprite = "POWERUP_SNAKEOIL"
BREAK
CASE TLG_SHERIFF
tl23Sprite = "POWERUP_SHERIFFBADGE"
BREAK
ENDSWITCH
// CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_DRAW_ITEMS] Drawing item ", i, " Type:", ENUM_TO_INT(sTLGData.sItemData[i].eItemType), " At pos: ", sTLGData.sItemData[i].vSpritePos.x, ", ", sTLGData.sItemData[i].vSpritePos.y)
IF sTLGData.sItemData[i].bRendering
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, sTLGData.sItemData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sItemData[i].vSize.X*fScale, sTLGData.sItemData[i].vSize.Y*fScale), 0, sTLGData.rgbaSprite)
ENDIF
IF IS_MOVING_LEVEL()
IF iDistance = 2
sTLGData.sItemData[i].vSpritePos.x -= TLG_GET_ITEM_UPDATE()
IF sTLGData.sItemData[i].vSpritePos.x < -200
sTLGData.sItemData[i].bRendering = FALSE
ENDIF
ELSE
sTLGData.sItemData[i].vSpritePos.x -= TLG_GET_ITEM_UPDATE()
IF TLG_GET_CURRENT_LEVEL() = TLG_LEVEL_DESERT
IF sTLGData.sItemData[i].vSpritePos.x < -200
sTLGData.sItemData[i].vSpritePos.x = cfBASE_SCREEN_WIDTH + sTLGData.sItemData[i].vSize.X/2
sTLGData.sItemData[i].iWarpCount++
ENDIF
ELSE
IF sTLGData.sItemData[i].vSpritePos.x < 0
sTLGData.sItemData[i].vSpritePos.x = TLG_GET_OFFSET_FOR_ELEMENT_WARP_FOR_CURRENT_LEVEL()
sTLGData.sItemData[i].iWarpCount++
ENDIF
ENDIF
ENDIF
ENDIF
IF NOT sTLGData.sItemData[i].bRendering
IF sTLGData.sItemData[i].iRenderAfterWarpCount > 0
IF sTLGData.sItemData[i].iWarpCount = sTLGData.sItemData[i].iRenderAfterWarpCount
sTLGData.sItemData[i].bRendering = TRUE
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_DRAW_ITEMS] Setting to render item ", i, " Type: ", TLG_GET_COLLECTIBLE_TYPE_AS_STRING(sTLGData.sItemData[i].eItemType), " As warped this num times: ", sTLGData.sItemData[i].iRenderAfterWarpCount)
#ENDIF
ENDIF
ENDIF
IF sTLGData.sItemData[i].iMinActiveStage > 0 AND sTLGData.sItemData[i].iMinActiveStage = TLG_GET_CURRENT_LEVEL_STAGE()
IF NOT TLG_IS_POSITION_ON_SCREEN(sTLGData.sItemData[i].vSpritePos)
sTLGData.sItemData[i].bRendering = TRUE
#IF IS_DEBUG_BUILD
CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_DRAW_ITEMS] Setting to render item ", i, " Type: ", TLG_GET_COLLECTIBLE_TYPE_AS_STRING(sTLGData.sItemData[i].eItemType), " iMinActiveStage ", sTLGData.sItemData[i].iMinActiveStage, " = Current stage: ", TLG_GET_CURRENT_LEVEL_STAGE())
#ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDFOR
ENDPROC
PROC TLG_DRAW_ENEMIES(INT iLane = 0)
TEXT_LABEL_63 tl23Sprite
TEXT_LABEL_31 tl31TextDict = sTLGData.tl31EnemiesTextDict
INT i
FLOAT fScale
VECTOr_2D v2Scale
RGBA_COLOUR_STRUCT rgbaEnemy = sTLGData.rgbaSprite
//ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, "cart1", GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_ENEMY_CART_SPRITE_WIDTH*0.9, cfTLG_ENEMY_CART_SPRITE_HEIGHT*0.9), 0, sTLGData.rgbaSprite)/
// IF iLane = 1
// fScale = TLG_GET_ENEMY_TYPE_SCALE_FOR_LANE(TLG_THROWING_ENEMY_1, 1)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31EnemiesTextDict, "THROWING_ENEMY_01" ,GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_ENEMY_THROWING_SPRITE_WIDTH*fScale, cfTLG_ENEMY_THROWING_SPRITE_HEIGHT*fScale), 0, sTLGData.rgbaSprite)
// ENDIF
FOR i = 0 TO ciTLG_MAX_ENEMIES -1
fScale = TLG_GET_ENEMY_TYPE_SCALE_FOR_LANE(sTLGData.sEnemyData[i].iEnemyType, iLane)
tl31TextDict = sTLGData.tl31EnemiesTextDict
IF sTLGData.sEnemyData[i].eState = TLG_DYING
AND (sTLGData.sEnemyData[i].iEnemyLane = iLane
OR (iLane = ciTLG_LANE_BACKGROUND AND(sTLGData.sEnemyData[i].iEnemyLane = ciTLG_LANE_POPUP_LHS OR sTLGData.sEnemyData[i].iEnemyLane = ciTLG_LANE_POPUP_RHS)))
SWITCH sTLGData.sEnemyData[i].iEnemyType
CASE TLG_ENEMY_1
tl23Sprite = "ENEMY_01_DEAD"
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_DEAD_SPRITE_WIDTH*fScale, cfTLG_ENEMY_DEAD_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_ENEMY_2
tl23Sprite = "ENEMY_02_DEAD"
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_DEAD_SPRITE_WIDTH*fScale, cfTLG_ENEMY_DEAD_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_ENEMY_3
tl23Sprite = "ENEMY_03_DEAD"
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_DEAD_SPRITE_WIDTH*fScale, cfTLG_ENEMY_DEAD_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_ENEMY_4
tl23Sprite = "ENEMY_04_DEAD"
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_DEAD_SPRITE_WIDTH*fScale, cfTLG_ENEMY_DEAD_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_ENEMY_5
tl23Sprite = "ENEMY_05_DEAD"
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_DEAD_SPRITE_WIDTH*fScale, cfTLG_ENEMY_DEAD_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_THROWING_ENEMY_1
tl23Sprite = "THROWING_ENEMY_06"
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_DEAD_SPRITE_WIDTH*fScale, cfTLG_ENEMY_DEAD_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_CART_1
tl23Sprite = "cart"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
v2Scale = INIT_VECTOR_2D(cfTLG_ENEMY_CART_SPRITE_WIDTH*fScale, cfTLG_ENEMY_CART_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_OUTHOUSE_ENEMY
IF sTLGData.sEnemyData[i].iSpriteAnimFrame = ciTLG_MAX_OUTHOUSE_ENEMY_ANIM_FRAMES -1
tl23Sprite = "OUTHOUSE_ENEMY_06"
ELIF sTLGData.sEnemyData[i].iSpriteAnimFrame = ciTLG_MAX_OUTHOUSE_ENEMY_ANIM_FRAMES
tl23Sprite = "OUTHOUSE_EMPTY"
tl31TextDict = sTLGData.tl31Level1TextDict
ELSE
tl23Sprite = "OUTHOUSE_ENEMY_05"
ENDIF
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_ENEMIES] {DSW} TLG_OUTHOUSE_ENEMY - iSpriteAnimFrame: ", sTLGData.sEnemyData[i].iSpriteAnimFrame, " texture: ", tl23Sprite)
v2Scale = INIT_VECTOR_2D(cfTLG_OUTHOUSE_SPECIAL_SPRITE_WIDTH*fScale, cfTLG_OUTHOUSE_SPECIAL_SPRITE_HEIGHT*fScale)
BREAK
CASE TLG_COFFIN_ENEMY
IF sTLGData.sEnemyData[i].iSpriteAnimFrame = ciTLG_MAX_OUTHOUSE_ENEMY_ANIM_FRAMES -1
tl23Sprite = "LEVEL_05_GRAVEYARD_COFFIN_ENEMY_06"
tl31TextDict = sTLGData.tl31Level5TextDict
ELIF sTLGData.sEnemyData[i].iSpriteAnimFrame = ciTLG_MAX_OUTHOUSE_ENEMY_ANIM_FRAMES
tl23Sprite = "GRAVEYARD_COFFIN_EMPTY"
tl31TextDict = sTLGData.tl31Level5TextDict
ELSE
tl23Sprite = "LEVEL_05_GRAVEYARD_COFFIN_ENEMY_05"
tl31TextDict = sTLGData.tl31Level5TextDict
ENDIF
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_ENEMIES] {DSW} TLG_COFFIN_ENEMY - iSpriteAnimFrame: ", sTLGData.sEnemyData[i].iSpriteAnimFrame, " texture: ", tl23Sprite)
v2Scale = INIT_VECTOR_2D(cfTLG_COFFIN_ENEMY_SPRITE_WIDTH*fScale, cfTLG_COFFIN_ENEMY_SPRITE_HEIGHT*fScale)
BREAK
ENDSWITCH
IF sTLGData.sEnemyData[i].vSpritePos.x > 0 AND sTLGData.sEnemyData[i].vSpritePos.x < cfBASE_SCREEN_WIDTH
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite,sTLGData.sEnemyData[i].vSpritePos, v2Scale, 0, sTLGData.rgbaSprite)
ENDIF
ElIF sTLGData.sEnemyData[i].eState != TLG_INACTIVE AND sTLGData.sEnemyData[i].eState != TLG_WAITING
IF sTLGData.sEnemyData[i].iEnemyLane = iLane
OR (iLane = ciTLG_LANE_BACKGROUND AND (sTLGData.sEnemyData[i].iEnemyLane = ciTLG_LANE_POPUP_LHS OR sTLGData.sEnemyData[i].iEnemyLane = ciTLG_LANE_POPUP_RHS))
//-- Flash injured peds
IF sTLGData.sEnemyData[i].iHealth < TLG_GET_ENEMY_START_HEALTH_FOR_TYPE(sTLGData.sEnemyData[i].iEnemyType)
IF sTLGData.sEnemyData[i].iEnemyFlashTimer = 0
sTLGData.sEnemyData[i].iEnemyFlashTimer = GET_GAME_TIMER()
rgbaEnemy = sTLGData.rgbaSprite
ELIF GET_GAME_TIMER() - sTLGData.sEnemyData[i].iEnemyFlashTimer >= 1000
rgbaEnemy = sTLGData.rgbaSprite
ELSE
IF (ROUND(TO_FLOAT(GET_GAME_TIMER() - sTLGData.sEnemyData[i].iEnemyFlashTimer)/ 100.0)) % 2 = 0
rgbaEnemy = sTLGData.rgbaEnemyShot
ELSE
rgbaEnemy = sTLGData.rgbaSprite
ENDIF
ENDIF
ENDIF
// Process pop up peds at same time as background peds
SWITCH sTLGData.sEnemyData[i].iEnemyType
CASE TLG_ENEMY_1
IF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "ENEMY_01_ATTACKING"
ELSE
tl23Sprite = "ENEMY_01_RUNNING_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
BREAK
CASE TLG_ENEMY_2
IF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "ENEMY_02_ATTACKING"
ELSE
tl23Sprite = "ENEMY_02_RUNNING_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
BREAK
CASE TLG_ENEMY_3
IF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "ENEMY_03_ATTACKING"
ELSE
tl23Sprite = "ENEMY_03_RUNNING_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
BREAK
CASE TLG_ENEMY_4
IF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "ENEMY_04_ATTACKING"
ELSE
tl23Sprite = "ENEMY_04_RUNNING_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
BREAK
CASE TLG_ENEMY_5
IF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "ENEMY_05_ATTACKING"
ELSE
tl23Sprite = "ENEMY_05_RUNNING_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
BREAK
CASE TLG_CART_1
tl23Sprite = "cart1"
BREAK
CASE TLG_THROWING_ENEMY_1
IF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "THROWING_ENEMY_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 3)
ELSE
tl23Sprite = "THROWING_ENEMY_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
BREAK
CASE TLG_OUTHOUSE_ENEMY
IF sTLGData.sEnemyData[i].eState = TLG_ACTIVE
IF !sTLGData.sEnemyData[i].bShotAtLeastOnce
tl23Sprite = "OUTHOUSE_01"
tl31TextDict = sTLGData.tl31Level1TextDict
ELSE
tl23Sprite = "OUTHOUSE_ENEMY_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
ENDIF
ELIF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "OUTHOUSE_ENEMY_05"
ENDIF
BREAK
CASE TLG_COFFIN_ENEMY
IF sTLGData.sEnemyData[i].eState = TLG_ACTIVE
IF !sTLGData.sEnemyData[i].bShotAtLeastOnce
tl23Sprite = "GRAVEYARD_COFFIN_01"
tl31TextDict = sTLGData.tl31Level5TextDict
ELSE
tl23Sprite = "LEVEL_05_GRAVEYARD_COFFIN_ENEMY_0"
tl23Sprite += (sTLGData.sEnemyData[i].iSpriteAnimFrame + 1)
tl31TextDict = sTLGData.tl31Level5TextDict
ENDIF
ELIF sTLGData.sEnemyData[i].eState = TLG_SHOOTING
tl23Sprite = "LEVEL_05_GRAVEYARD_COFFIN_ENEMY_05"
tl31TextDict = sTLGData.tl31Level5TextDict
ENDIF
BREAK
ENDSWITCH
IF sTLGData.sEnemyData[i].vSpritePos.x > 0 AND sTLGData.sEnemyData[i].vSpritePos.x < cfBASE_SCREEN_WIDTH
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DRAW_ENEMIES] Drawing enemy ",i, " At position X ", sTLGData.sEnemyData[i].vSpritePos.x, " Size: ", sTLGData.sEnemyData[i].vSize.X, ", ", sTLGData.sEnemyData[i].vSize.y, " Scale: ", fScale, " Lane: ",sTLGData.sEnemyData[i].iEnemyLane)
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite,sTLGData.sEnemyData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sEnemyData[i].vSize.X*fScale, sTLGData.sEnemyData[i].vSize.y*fScale), 0, rgbaEnemy)
ELSE
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DRAW_ENEMIES] NOT Drawing enemy ", i, " As X Pos: ", sTLGData.sEnemyData[i].vSpritePos.x, " Lane: ",sTLGData.sEnemyData[i].iEnemyLane)
ENDIF
ENDIF
ElIF sTLGData.sEnemyData[i].iEnemyLane = iLane AND sTLGData.sEnemyData[i].eState = TLG_WAITING
SWITCH sTLGData.sEnemyData[i].iEnemyType
CASE TLG_OUTHOUSE_ENEMY
IF sTLGData.sEnemyData[i].vSpritePos.x > 0 AND sTLGData.sEnemyData[i].vSpritePos.x < cfBASE_SCREEN_WIDTH
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, "OUTHOUSE_01",sTLGData.sEnemyData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sEnemyData[i].vSize.X*fScale, sTLGData.sEnemyData[i].vSize.y*fScale), 0, sTLGData.rgbaSprite)
ENDIF
BREAK
CASE TLG_COFFIN_ENEMY
IF sTLGData.sEnemyData[i].vSpritePos.x > 0 AND sTLGData.sEnemyData[i].vSpritePos.x < cfBASE_SCREEN_WIDTH
tl31TextDict = sTLGData.tl31Level5TextDict
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, "GRAVEYARD_COFFIN_01",sTLGData.sEnemyData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sEnemyData[i].vSize.X*fScale, sTLGData.sEnemyData[i].vSize.y*fScale), 0, sTLGData.rgbaSprite)
ENDIF
BREAK
ENDSWITCH
ENDIF
ENDFOR
ENDPROC
PROC TLG_DRAW_FOREGROUND_ENEMIES()
TEXT_LABEL_23 tl23Sprite
TEXT_LABEL_31 tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
FLOAT fScale = 1.2
INT i
FOR i = 0 TO ciTLG_MAX_ENEMIES -1
IF sTLGData.sEnemyData[i].iEnemyLane = 2 AND sTLGData.sEnemyData[i].iHealth > 0
SWITCH sTLGData.sEnemyData[i].iEnemyType
CASE TLG_FOREGROUND_ENEMY_T1_1
tl23Sprite = "FOREGROUND_ENEMY_01_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_2
tl23Sprite = "FOREGROUND_ENEMY_02_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_3
tl23Sprite = "FOREGROUND_ENEMY_03_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_4
tl23Sprite = "FOREGROUND_ENEMY_04_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_5
tl23Sprite = "FOREGROUND_ENEMY_05_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesBTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_1
tl23Sprite = "FOREGROUND_ENEMY_06_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesBTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_2
tl23Sprite = "FOREGROUND_ENEMY_07_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesBTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_3
tl23Sprite = "FOREGROUND_ENEMY_08_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesCTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_4
tl23Sprite = "FOREGROUND_ENEMY_09_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesCTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_5
tl23Sprite = "FOREGROUND_ENEMY_10_01"
tl31TextDict = sTLGData.tl31ForegroundEnemiesCTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_BEAR
tl23Sprite = "LEVEL_03_FOREST_BEAR_01"
tl31TextDict = sTLGData.tl31HostagesTextDict
BREAK
ENDSWITCH
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite,sTLGData.sEnemyData[i].vSpritePos, INIT_VECTOR_2D(sTLGData.sEnemyData[i].vSize.X*fScale, sTLGData.sEnemyData[i].vSize.Y*fScale), 0, sTLGData.rgbaSprite)
ELIF sTLGData.sEnemyData[i].iEnemyLane = 2 AND sTLGData.sEnemyData[i].eState = TLG_DYING
SWITCH sTLGData.sEnemyData[i].iEnemyType
CASE TLG_FOREGROUND_ENEMY_T1_1
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
tl23Sprite = "FOREGROUND_ENEMY_01_02"
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_2
tl23Sprite = "FOREGROUND_ENEMY_02_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_3
tl23Sprite = "FOREGROUND_ENEMY_03_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_4
tl23Sprite = "FOREGROUND_ENEMY_04_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesATextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T1_5
tl23Sprite = "FOREGROUND_ENEMY_05_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesBTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_1
tl23Sprite = "FOREGROUND_ENEMY_06_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesBTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_2
tl23Sprite = "FOREGROUND_ENEMY_07_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesBTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_3
tl23Sprite = "FOREGROUND_ENEMY_08_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesCTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_4
tl23Sprite = "FOREGROUND_ENEMY_09_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesCTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_T2_5
tl23Sprite = "FOREGROUND_ENEMY_10_02"
tl31TextDict = sTLGData.tl31ForegroundEnemiesCTextDict
BREAK
CASE TLG_FOREGROUND_ENEMY_BEAR
tl23Sprite = "LEVEL_03_FOREST_BEAR_02"
BREAK
ENDSWITCH
IF sTLGData.sEnemyData[i].iEnemyType = TLG_FOREGROUND_ENEMY_BEAR
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HostagesTextDict, tl23Sprite,sTLGData.sEnemyData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_ENEMY_BEAR_DEAD_SPRITE_WIDTH*1.2, cfTLG_ENEMY_BEAR_DEAD_SPRITE_HEIGHT*1.2), 0, sTLGData.rgbaSprite)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite,sTLGData.sEnemyData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_ENEMY_FOREGROUND_DEAD_SPRITE_WIDTH*1.2, cfTLG_ENEMY_FOREGROUND_DEAD_SPRITE_HEIGHT*1.2), 0, sTLGData.rgbaSprite)
ENDIF
ENDIF
ENDFOR
ENDPROC
PROC TLG_FLASH_SCREEN_FOR_ACTIVE_EFFECT(RGBA_COLOUR_STRUCT colour, INT iMaxAlpha = 50)
FLOAT fTimeToMaxAlpha = 5.0
FLOAT fFrameTime = GET_FRAME_TIME()
IF NOT sTLGData.bEffectHitmaxAlpha
sTLGData.fEffectFlashAlpha += (TO_FLOAT(iMaxAlpha) / (fTimeToMaxAlpha/fFrameTime))
// stlgdata.fTotalTimeTaken += fFrameTime
IF sTLGData.fEffectFlashAlpha > TO_FLOAT(iMaxAlpha)
sTLGData.fEffectFlashAlpha = TO_FLOAT(iMaxAlpha)
sTLGData.bEffectHitmaxAlpha = TRUE
ENDIF
ELSE
// stlgdata.fTotalTimeTaken = 0
sTLGData.fEffectFlashAlpha -= (TO_FLOAT(iMaxAlpha) / (fTimeToMaxAlpha/fFrameTime))
IF sTLGData.fEffectFlashAlpha < 0
sTLGData.fEffectFlashAlpha = 0
sTLGData.bEffectHitmaxAlpha = FALSE
ENDIF
ENDIF
colour.iA = ROUND(sTLGData.fEffectFlashAlpha)
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), colour)
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_FLASH_SCREEN_FOR_ACTIVE_EFFECT] Alpha: ", sTLGData.fEffectFlashAlpha, " Frame time: ", fFrameTime, " Delta: ", ROUND(TO_FLOAT(iMaxAlpha) / (fTimeToMaxAlpha/fFrameTime)))
ENDPROC
PROC TLG_DRAW_BULLETS_AND_EFFECTS(INT iDistance)
TEXT_LABEL_63 tl23Sprite
INT p,i
// Bullets
FOR p = 0 TO ciTLG_MAX_PLAYERS - 1
FOR i = 0 TO ciTLG_MAX_PROJECTILES - 1
IF sTLGData.sPlayerData[p].sBulletData[i].bShot
IF sTLGData.sPlayerData[p].sBulletData[i].bHit
tl23Sprite = "bullet-hole"
ELIF sTLGData.sPlayerData[p].sBulletData[i].bHitObject OR sTLGData.sPlayerData[p].sBulletData[i].vSpritePos.y < 300
tl23Sprite = "smoke"
ELSE
tl23Sprite = "bullet"
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, sTLGData.sPlayerData[p].sBulletData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_SPRITE_IMPACT_WIDTH, cfTLG_SPRITE_IMPACT_HEIGHT), 0, sTLGData.rgbaSprite)
IF NOT sTLGData.sPlayerData[p].sBulletData[i].bPlayedAudio
// TLG_PLAY_SOUND_FRONT_END(TLG_AUDIO_EFFECT_BULLET_HIT_GENERIC)
sTLGData.sPlayerData[p].sBulletData[i].bPlayedAudio = TRUE
ENDIF
// FOR j = 0 TO ciTLG_MAX_MENU_OPTIONS-1
// IF sTLGData.sMenuOptionsData[j].eMenuOption = TLG_START
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [HANDLE_PLAYER_BULLET_IN_MENU] Drawing temp sprite")
// x1 = sTLGData.sMenuOptionsData[j].vSpritePos.x - (sTLGData.sMenuOptionsData[j].vSize.x/2)
// y1 = sTLGData.sMenuOptionsData[j].vSpritePos.y - (sTLGData.sMenuOptionsData[j].vSize.y/2)
//
// x2 = sTLGData.sMenuOptionsData[j].vSpritePos.x + (sTLGData.sMenuOptionsData[j].vSize.x/2)
// y2 = sTLGData.sMenuOptionsData[j].vSpritePos.y + (sTLGData.sMenuOptionsData[j].vSize.y/2)
//
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, tl23Sprite,INIT_VECTOR_2D(x1, y1), INIT_VECTOR_2D(cfTLG_SPRITE_IMPACT_WIDTH, cfTLG_SPRITE_IMPACT_HEIGHT), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, tl23Sprite,INIT_VECTOR_2D(x2, y2), INIT_VECTOR_2D(cfTLG_SPRITE_IMPACT_WIDTH, cfTLG_SPRITE_IMPACT_HEIGHT), 0, sTLGData.rgbaSprite)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, tl23Sprite,INIT_VECTOR_2D(sTLGData.sMenuOptionsData[j].vSpritePos.x, sTLGData.sMenuOptionsData[j].vSpritePos.Y), INIT_VECTOR_2D(cfTLG_SPRITE_IMPACT_WIDTH, cfTLG_SPRITE_IMPACT_HEIGHT), 0, sTLGData.rgbaSprite)
// ENDIF
// ENDFOR
ENDIF
ENDFOR
ENDFOR
// FX
VECTOR_2D vSize
FOR i = 0 TO ciTLG_MAX_FX - 1
IF sTLGData.sFXData[i].bActive AND sTLGData.sFXData[i].iLane = iDistance
SWITCH sTLGData.sFXData[i].eFXType
CASE TLG_FX_ENEMY_SHOT
tl23Sprite = "fg-enemy-gunfire"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31GameplayCommonTextDict, tl23Sprite, sTLGData.sFXData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_SPRITE_ENEMY_SHOT_WIDTH, cfTLG_SPRITE_ENEMY_SHOT_HEIGHT), 0, sTLGData.rgbaSprite)
BREAK
CASE TLG_FX_EXPLOSION
tl23Sprite = "PROP_TNT_CRATE_STATE_0"
tl23Sprite += (sTLGData.sFXData[i].iSpriteBlastAnimFrame + 2)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31GameplayCommonTextDict, tl23Sprite, sTLGData.sFXData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_SPRITE_EXPLOSION_WIDTH, cfTLG_SPRITE_EXPLOSION_HEIGHT), 0, sTLGData.rgbaSprite)
BREAK
CASE TLG_FX_ENEMY_TNT_EXP
IF sTLGData.sFXData[i].iSpriteBlastAnimFrame = 0
OR sTLGData.sFXData[i].iSpriteBlastAnimFrame = 1
tl23Sprite = "THROWN_WEAPON_EXP_01"
vSize = INIT_VECTOR_2D(cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_SMALL_WIDTH, cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_SMALL_HEIGHT)
ELSE
tl23Sprite = "THROWN_WEAPON_EXP_02"
vSize = INIT_VECTOR_2D(cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_LARGE_WIDTH, cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_LARGE_HEIGHT)
ENDIF
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_BULLETS_AND_EFFECTS] {DSW} SPrite: ", tl23Sprite, " Frame: ", sTLGData.sFXData[i].iSpriteBlastAnimFrame)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31GameplayCommonTextDict, tl23Sprite, sTLGData.sFXData[i].vSpritePos, vSize, 0, sTLGData.rgbaSprite)
BREAK
CASE TLG_FX_LOOT_CRATE
IF sTLGData.sFXData[i].iSpriteBlastAnimFrame = 0
tl23Sprite = "CRATE_04"
ELIF sTLGData.sFXData[i].iSpriteBlastAnimFrame = 1
tl23Sprite = "CRATE_05"
ELIF sTLGData.sFXData[i].iSpriteBlastAnimFrame = 2
tl23Sprite = "CRATE_06"
ENDIF
vSize = INIT_VECTOR_2D(cfTLG_SPRITE_LOOT_CRATE_EXPLOSION_WIDTH, cfTLG_SPRITE_LOOT_CRATE_EXPLOSION_HEIGHT)
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_BULLETS_AND_EFFECTS] {DSW} SPrite: ", tl23Sprite, " Frame: ", sTLGData.sFXData[i].iSpriteBlastAnimFrame)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31GameplayCommonTextDict, tl23Sprite, sTLGData.sFXData[i].vSpritePos, vSize, 0, sTLGData.rgbaSprite)
BREAK
CASE TLG_FX_FEATHERS
tl23Sprite = "ANIMALBONUS_BIRDS_KILL_FEATHERS_0"
tl23Sprite += (sTLGData.sFXData[i].iSpriteBlastAnimFrame + 1)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31GameplayCommonTextDict, tl23Sprite, sTLGData.sFXData[i].vSpritePos, INIT_VECTOR_2D(cfTLG_SPRITE_FEATHERS_WIDTH, cfTLG_SPRITE_FEATHERS_HEIGHT), 0, sTLGData.rgbaSprite)
BREAK
ENDSWITCH
ENDIF
ENDFOR
//TLG_FLASH_SCREEN_FOR_ACTIVE_EFFECT(sTLGData.rgbaWhite)
RGBA_COLOUR_STRUCT rgbaDead = sTLGData.rgbaRed
rgbaDead.iA = 255
IF TLG_IS_PLAYER_PLAYING()
IF TLG_GET_LOCAL_PLAYER_HEALTH() > 0.0
IF TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_INVULNERABILE)
TLG_FLASH_SCREEN_FOR_ACTIVE_EFFECT(sTLGData.rgbaYellow)
ELIF TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_HIDE_RETICULE)
TLG_FLASH_SCREEN_FOR_ACTIVE_EFFECT(sTLGData.rgbaGreen)
ELSE
IF sTLGData.fEffectFlashAlpha != 0
sTLGData.fEffectFlashAlpha = 0
ENDIF
ENDIF
ELSE
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), rgbaDead)
ENDIF
ELSE
IF TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_INVULNERABILE)
TLG_CLEAR_PLAYER_BIT(TLG_PLAYER_BIT_INVULNERABILE)
TLG_STOP_SOUND(TLG_AUDIO_EFFECT_POWERUP)
TLG_STOP_AUDIO_SCENE(TLG_AUDIO_SCENE_POWERUP_ACTIVE)
ENDIF
IF TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_HIDE_RETICULE)
TLG_CLEAR_PLAYER_BIT(TLG_PLAYER_BIT_HIDE_RETICULE)
TLG_STOP_SOUND(TLG_AUDIO_EFFECT_POWERDOWN)
TLG_STOP_AUDIO_SCENE(TLG_AUDIO_SCENE_POWERUP_ACTIVE)
ENDIF
ENDIF
ENDPROC
PROC TLG_DRAW_RETICULES()
IF TLG_GET_LOCAL_PLAYER_HEALTH() <= 0.0
EXIT
ENDIF
TEXT_LABEL_23 tl23Sprite
IF TLG_IS_LOCAL_PLAYER_IN_LEFT_HAND_CABINET()
tl23Sprite = "RETICLE_PLAYER1"
ELSE
tl23Sprite = "RETICLE_PLAYER2"
ENDIF
RGBA_COLOUR_STRUCT rgbaReticule = sTLGData.rgbaSprite
IF TLG_IS_PLAYER_PLAYING()
IF TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON() <= 0
tl23Sprite = "RETICLE_RELOAD"
ENDIF
ENDIF
IF NOT TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_HIDE_RETICULE)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite,sTLGData.sPlayerData[0].vSpriteMarkerPos, INIT_VECTOR_2D(cfTLG_SPRITE_MARKER_WIDTH, cfTLG_SPRITE_MARKER_HEIGHT), 0, rgbaReticule)
ENDIF
// INT p
// FOR p = 0 TO ciTLG_MAX_PLAYERS - 1
//
// IF p = 0
// tl23Sprite = "RETICLE_PLAYER1"
// ELSE
// tl23Sprite = "RETICLE_PLAYER2"
// ENDIF
//
// ENDFOR
ENDPROC
PROC TLG_DRAW_SHOT_FLASH()
TEXT_LABEL_23 tl23Sprite
INT p
FOR p = 0 TO ciTLG_MAX_PLAYERS - 1
IF sTLGData.sPlayerData[p].bHasJustShot
/*
ON PC
Pistol shot diff ~ 450ms
Gatling gun ~ 120 ms
*/
IF sTLGData.sPlayerData[p].iLastShotTime = 0
OR GET_GAME_TIMER() - sTLGData.sPlayerData[p].iLastShotTime > 200
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), sTLGData.rgbaSprite)
sTLGData.sPlayerData[p].iLastShotTime = GET_GAME_TIMER()
ENDIF
// IF sTLGData.sPlayerData[p].iLastShotTime = 0
// sTLGData.sPlayerData[p].iLastShotTime = GET_GAME_TIMER()
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SHOT_FLASH] {DSW} Grabbed last shot time")
// ELSE
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SHOT_FLASH] {DSW} Time since last shot ", GET_GAME_TIMER() - sTLGData.sPlayerData[p].iLastShotTime)
// sTLGData.sPlayerData[p].iLastShotTime = GET_GAME_TIMER()
// ENDIF
ENDIF
ENDFOR
BOOL bShowRedRect = TRUE
BOOL bAttackedBybear = TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_DAMAGED_BY_BEAR)
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("sc_BadlandsNoDeath")
bShowRedRect = FALSE
bAttackedBybear = FALSE
ENDIF
#ENDIF
IF bShowRedRect
IF sTLGData.sPlayerData[0].iHitCountdown > 0
sTLGData.sPlayerData[0].iHitCountdown --
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), sTLGData.rgbaRed)
ENDIF
ENDIF
IF TLG_GET_LOCAL_PLAYER_HEALTH() <= 0.2
OR GET_PLAYER_TOTAL_AMMO_FOR_ALL_WEAPON_TYPES() <= 0
tl23Sprite = "damage1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_1_X_POS, cfTLG_DAMAGE_1_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage2"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_2_X_POS, cfTLG_DAMAGE_2_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage3"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_3_X_POS, cfTLG_DAMAGE_3_X_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage4"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_4_X_POS, cfTLG_DAMAGE_4_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_5_X_POS, cfTLG_DAMAGE_5_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
ELIF TLG_GET_LOCAL_PLAYER_HEALTH() < 0.35
tl23Sprite = "damage1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_1_X_POS, cfTLG_DAMAGE_1_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage2"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_2_X_POS, cfTLG_DAMAGE_2_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage3"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_3_X_POS, cfTLG_DAMAGE_3_X_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage4"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_4_X_POS, cfTLG_DAMAGE_4_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
ELIF TLG_GET_LOCAL_PLAYER_HEALTH() < 0.50
tl23Sprite = "damage1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_1_X_POS, cfTLG_DAMAGE_1_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage2"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_2_X_POS, cfTLG_DAMAGE_2_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage3"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_3_X_POS, cfTLG_DAMAGE_3_X_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
ELIF TLG_GET_LOCAL_PLAYER_HEALTH() < 0.75
tl23Sprite = "damage1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_1_X_POS, cfTLG_DAMAGE_1_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "damage2"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_2_X_POS, cfTLG_DAMAGE_2_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
ELIF TLG_GET_LOCAL_PLAYER_HEALTH() < 1.0
tl23Sprite = "damage1"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_1_X_POS, cfTLG_DAMAGE_1_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_DAMAGE_WIDTH, cfTLG_SPRITE_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
ENDIF
IF bAttackedBybear
tl23Sprite = "BEARCLAWS_SCREEN_DAMAGE"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_DAMAGE_BEAR_X_POS, cfTLG_DAMAGE_BEAR_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_BEAR_DAMAGE_WIDTH, cfTLG_SPRITE_BEAR_DAMAGE_HEIGHT), 0, sTLGData.rgbaSprite)
ENDIF
ENDPROC
PROC TLG_GET_SINGLE_AMMO_HUD_POSITION_DETAILS(TLG_PLAYER_WEAPON weapon, INT iClipPos, VECTOR_2D &v2Pos, VECTOR_2D &v2Size)
SWITCH weapon
CASE TLG_PLAYER_WEAPON_PISTOL
v2Size = INIT_VECTOR_2D(cfTLG_SPRITE_HUD_PISTOL_AMMO_SINGLE_WIDTH, cfTLG_SPRITE_HUD_PISTOL_AMMO_SINGLE_HEIGHT)
SWITCH iClipPos
CASE 0 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_0_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 1 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_1_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 2 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_2_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 3 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_3_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 4 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_4_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 5 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_5_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
ENDSWITCH
BREAK
CASE TLG_PLAYER_WEAPON_RIFLE
v2Size = INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RIFLE_AMMO_SINGLE_WIDTH, cfTLG_SPRITE_HUD_RIFLE_AMMO_SINGLE_HEIGHT)
SWITCH iClipPos
CASE 0 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_0_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 1 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_1_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 2 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_2_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 3 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_3_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 4 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_4_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 5 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_5_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
ENDSWITCH
BREAK
CASE TLG_PLAYER_WEAPON_SHOTGUN
v2Size = INIT_VECTOR_2D(cfTLG_SPRITE_HUD_SHOTGUN_AMMO_SINGLE_WIDTH, cfTLG_SPRITE_HUD_SHOTGUN_AMMO_SINGLE_HEIGHT)
SWITCH iClipPos
CASE 0 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_0_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 1 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_1_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 2 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_2_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 3 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_3_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 4 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_4_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
CASE 5 v2Pos = INIT_VECTOR_2D(cfTLG_SINGLE_PISTOL_AMMO_5_X, cfTLG_SINGLE_PISTOL_AMMO_0_Y) BREAK
ENDSWITCH
BREAK
ENDSWITCH
ENDPROC
PROC TLG_DRAW_SINGLE_AMMO(STRING texture, VECTOR_2D pos, VECTOR_2D size, INT iClipPos, INT iAmmoInClip, INT iClipSize)
RGBA_COLOUR_STRUCT rgba = sTLGData.rgbaSprite
INT iBulletsFired = iClipSize - iAmmoInClip
IF iBulletsFired > iClipPos
rgba = sTLGData.rgbaSpriteUsedBullet
ENDIF
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DRAW_SINGLE_AMMO] iClipPos: ", iClipPos, " Fired: ", iBulletsFired, " iAmmoInClip: ",iAmmoInClip, " iClipSize: ", iClipSize, " Should fade? ", bShouldFade)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, texture, pos, size, 0, rgba)
ENDPROC
PROC TLG_DRAW_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
TEXT_LABEL_31 tl23Sprite
INT iAmmoInClip
INT iClipSize
INT i
VECTOR_2D v2AmmoPos
VECTOR_2D v2AmmoSize
SWITCH TLG_GET_PLAYER_CURRENT_WEAPON()
CASE TLG_PLAYER_WEAPON_PISTOL
tl23Sprite = "ammo_pistol1"
iAmmoInClip = TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
iClipSize = TLG_GET_PLAYER_CURRENT_WEAPON_CLIP_SIZE()
//-- Right to left
FOR i = 0 TO iClipSize - 1
TLG_GET_SINGLE_AMMO_HUD_POSITION_DETAILS(TLG_PLAYER_WEAPON_PISTOL, i, v2AmmoPos, v2AmmoSize)
TLG_DRAW_SINGLE_AMMO(tl23Sprite, v2AmmoPos, v2AmmoSize, i, iAmmoInClip, iClipSize)
ENDFOR
BREAK
CASE TLG_PLAYER_WEAPON_SHOTGUN
tl23Sprite = "INDIVIDUAL_AMMO_ICON_SHOTGUN"
iAmmoInClip = TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
iClipSize = TLG_GET_PLAYER_CURRENT_WEAPON_CLIP_SIZE()
//-- Right to left
FOR i = 0 TO iClipSize - 1
TLG_GET_SINGLE_AMMO_HUD_POSITION_DETAILS(TLG_PLAYER_WEAPON_PISTOL, i, v2AmmoPos, v2AmmoSize)
TLG_DRAW_SINGLE_AMMO(tl23Sprite, v2AmmoPos, v2AmmoSize, i, iAmmoInClip, iClipSize)
ENDFOR
BREAK
CASE TLG_PLAYER_WEAPON_RIFLE
tl23Sprite = "INDIVIDUAL_AMMO_ICON_RIFLE"
iAmmoInClip = TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
iClipSize = TLG_GET_PLAYER_CURRENT_WEAPON_CLIP_SIZE()
//-- Right to left
FOR i = 0 TO iClipSize - 1
TLG_GET_SINGLE_AMMO_HUD_POSITION_DETAILS(TLG_PLAYER_WEAPON_PISTOL, i, v2AmmoPos, v2AmmoSize)
TLG_DRAW_SINGLE_AMMO(tl23Sprite, v2AmmoPos, v2AmmoSize, i, iAmmoInClip, iClipSize)
ENDFOR
BREAK
ENDSWITCH
ENDPROC
PROC TLG_DRAW_HUD()
TEXT_LABEL_23 tl23Sprite
//FLOAT fScale = GET_DEBUG_TEXTURE_SCALE(0)
// Fade
IF NOT sTLGData.bFadingOut AND sTLGData.iFade > 0
RGBA_COLOUR_STRUCT rgbaFade
rgbaFade.iA = sTLGData.iFade
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), rgbaFade)
sTLGData.iFade -= 2
// Placeholder
tl23Sprite = "goodluck"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(328, 140), 0, sTLGData.rgbaSprite)
ELIF sTLGData.bFadingOut AND sTLGData.iFade < 255
RGBA_COLOUR_STRUCT rgbaFade
rgbaFade.iA = sTLGData.iFade
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), rgbaFade)
sTLGData.iFade += 2
IF TLG_GET_LOCAL_PLAYER_HEALTH() > 0.0
// Placeholder
tl23Sprite = "scenecleared"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(500, 152), 0, sTLGData.rgbaSprite)
ENDIF
ENDIF
// HP Bar
IF NOT TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_INVULNERABILE)
tl23Sprite = "HPbar"
ELSE
tl23Sprite = "HPBarYellow"
ENDIF
FLOAT fBarSize = cfTLG_SPRITE_HUD_HP_WIDTH * TLG_GET_LOCAL_PLAYER_HEALTH()
FLOAT fOffset = (cfTLG_SPRITE_HUD_HP_WIDTH - fBarSize)/2
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, ADD_VECTOR_2D(INIT_VECTOR_2D(0,0), INIT_VECTOR_2D(cfTLG_HP_X_POS - fOffset, cfTLG_HP_Y_POS)), MULTIPLY_VECTOR_2D(INIT_VECTOR_2D(fBarSize, cfTLG_SPRITE_HUD_HP_HEIGHT), 1), 0, sTLGData.rgbaSprite)
// HP Border
tl23Sprite = "HPborder"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_HP_X_POS, cfTLG_HP_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_HP_WIDTH, cfTLG_SPRITE_HUD_HP_HEIGHT), 0, sTLGData.rgbaSprite)
IF TLG_GET_PLAYER_CURRENT_WEAPON() = TLG_PLAYER_WEAPON_GATLING
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "HPborder", INIT_VECTOR_2D(cfTLG_GATLING_TEMP_BORDER_X_POS, cfTLG_GATLING_TEMP_BORDER_Y_POS), INIT_VECTOR_2D(cfTLG_GATLING_TEMP_BORDER_WIDTH, cfTLG_GATLING_TEMP_BORDER_HEIGHT), 0, sTLGData.rgbaSprite)
IF NOT TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_GATLING_OVERHEAT)
tl23Sprite = "HPbar"
ELSE
tl23Sprite = "HPBarYellow"
ENDIF
fBarSize = (cfTLG_GATLING_TEMP_BORDER_WIDTH ) * sTLGData.sPlayerData[0].fGatlingGunTemp
fOffset = ((cfTLG_GATLING_TEMP_BORDER_WIDTH ) - fBarSize)/2
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, ADD_VECTOR_2D(INIT_VECTOR_2D(0,0), INIT_VECTOR_2D(cfTLG_GATLING_TEMP_BORDER_X_POS - fOffset, cfTLG_GATLING_TEMP_BORDER_Y_POS)), MULTIPLY_VECTOR_2D(INIT_VECTOR_2D(fBarSize, cfTLG_GATLING_TEMP_BORDER_HEIGHT), 1), 0, sTLGData.rgbaSprite)
ENDIF
// Ammo
// tl23Sprite = "ammo1"
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_AMMO_X_POS, cfTLG_AMMO_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_AMMO_WIDTH, cfTLG_SPRITE_HUD_AMMO_HEIGHT), 0, sTLGData.rgbaSpriteUsedBullet)
TLG_DRAW_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
TEXT_LABEL_23 n1, n2
INT iTotalAmmo = TLG_GET_PLAYER_TOTAL_AMMO_IN_CURRENT_WEAPON(FALSE)
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW}[TLG_GET_PLAYER_TOTAL_AMMO_IN_CURRENT_WEAPON] iTotalAmmo: ", iTotalAmmo)
IF iTotalAmmo > 99
n1 = "AMMO_NUMERICAL_9"
n2 = "AMMO_NUMERICAL_9"
ELSE
n1 = "AMMO_NUMERICAL_"
n1 += iTotalAmmo / 10
n2 = "AMMO_NUMERICAL_"
n2 += iTotalAmmo % 10
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, n1, INIT_VECTOR_2D(cfTLG_AMMO_QTY_1_X_POS, cfTLG_AMMO_QTY_1_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_AMMO_QTY_WIDTH, cfTLG_SPRITE_HUD_AMMO_QTY_HEIGHT), 0, sTLGData.rgbaSprite)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, n2, INIT_VECTOR_2D(cfTLG_AMMO_QTY_2_X_POS, cfTLG_AMMO_QTY_2_Y_POS), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_AMMO_QTY_WIDTH, cfTLG_SPRITE_HUD_AMMO_QTY_HEIGHT), 0, sTLGData.rgbaSprite)
INT iCurrentLevel = TLG_GET_CURRENT_LEVEL_AS_INT()
IF TLG_GET_NUMBER_OF_PLAYERS() <= 1
// My Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_DOLLAR_Y", INIT_VECTOR_2D(cfTLG_MY_SCORE_DOLLAR_X_POS, cfTLG_MY_SCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(GET_LOCAL_PLAYER_SCORE(), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_MY_SCORE_X_POS, cfTLG_MY_SCORE_Y_POS), sTLGData.rgbaSprite,TLG_SCORE_INTEGER_TYPE_MY_SCORE)
// My Hi Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_DOLLAR_Y", INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_POS, cfTLG_MY_HISCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_LOCAL_PLAYER_HI_SCORE(), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_POS, cfTLG_MY_HISCORE_Y_POS), sTLGData.rgbaSprite, TLG_SCORE_INTEGER_TYPE_HI_SCORE ) //
ELSE
// 'Red' (1P) Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_DOLLAR_Y", INIT_VECTOR_2D(cfTLG_MY_SCORE_DOLLAR_X_POS, cfTLG_MY_SCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_RED_PLAYER_SCORE_FOR_LEVEL(TLG_GET_CURRENT_LEVEL_AS_INT()), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_MY_SCORE_X_POS, cfTLG_MY_SCORE_Y_POS), sTLGData.rgbaSprite,TLG_SCORE_INTEGER_TYPE_RED_SCORE)
// Player with Highest score on this level
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_DOLLAR_Y", INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_POS, cfTLG_MY_HISCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
INT iPart = TLG_GET_PARTICIPANT_WITH_HIGHEST_HI_SCORE_FOR_CURRENT_LEVEL()
INT iHighestScore = TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL_FROM_HOST(iPart,iCurrentLevel )
TLG_SCORE_INTEGER_TYPE eHiScoreType
IF iHighestScore > 0
IF iPart = PARTICIPANT_ID_TO_INT()
//-- I've got the highest score
IF TLG_IS_LOCAL_PLAYER_IN_LEFT_HAND_CABINET()
//-- I'm in the left hand cabinet - Hi score should be red
eHiScoreType = TLG_SCORE_INTEGER_TYPE_RED_SCORE
ELSE
//-- I'm in the right hand cabinbet - Hi score should be blue
eHiScoreType = TLG_SCORE_INTEGER_TYPE_BLUE_SCORE
ENDIF
ELSE
//--Rival has highest score
IF TLG_IS_LOCAL_PLAYER_IN_LEFT_HAND_CABINET()
//-- Rival in right hand cabinet - score should be blue
eHiScoreType = TLG_SCORE_INTEGER_TYPE_BLUE_SCORE
ELSE
//-- Rival in left hand cabinet - score should be red
eHiScoreType = TLG_SCORE_INTEGER_TYPE_RED_SCORE
ENDIF
ENDIF
ELSE
//-- Just make the hi score white if nobody has a score yet
eHiScoreType = TLG_SCORE_INTEGER_TYPE_HI_SCORE
ENDIF
TLG_DRAW_SCORE_INTEGER(iHighestScore, ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_POS, cfTLG_MY_HISCORE_Y_POS), sTLGData.rgbaSprite, eHiScoreType) //
// 'Blue' (2P) Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_DOLLAR_Y", INIT_VECTOR_2D(cfTLG_BLUE_SCORE_DOLLAR_X_POS, cfTLG_BLUE_SCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_BLUE_PLAYER_SCORE_FOR_LEVEL(iCurrentLevel), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_BLUE_SCORE_X_POS, cfTLG_BLUE_SCORE_Y_POS), sTLGData.rgbaSprite, TLG_SCORE_INTEGER_TYPE_BLUE_SCORE)
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iCurrentLevel) > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iCurrentLevel)
//-- Red 'Win'
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_WIN_GRAPHIC_RED", INIT_VECTOR_2D(cfTLG_SCORE_WIN_RED_X_POS, cfTLG_SCORE_WIN_RED_Y_POS), INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE, cfTLG_SCORE_WIN_Y_SIZE), 0, sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iCurrentLevel) < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iCurrentLevel)
//-- Blue 'Win'
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_WIN_GRAPHIC_BLUE", INIT_VECTOR_2D(cfTLG_SCORE_WIN_BLUE_X_POS, cfTLG_SCORE_WIN_BLUE_Y_POS), INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE, cfTLG_SCORE_WIN_Y_SIZE), 0, sTLGData.rgbaSprite)
ENDIF
ENDIF
IF TLG_SHOULD_SHOW_RELOAD_PROMPT()
IF TLG_GET_PLAYER_TOTAL_AMMO_IN_CURRENT_WEAPON() = 0
AND sTLGData.sPlayerData[0].weaponType = TLG_PLAYER_WEAPON_TYPE_DEFAULT
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "TYPE_PROMPT_NO_AMMO", INIT_VECTOR_2D(cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_X, cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_Y), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_WIDTH, cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_HEIGHT), 0, sTLGData.rgbaSprite)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "TYPE_PROMPT_RELOAD", INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RELOAD_PROMPT_X, cfTLG_SPRITE_HUD_RELOAD_PROMPT_Y), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RELOAD_PROMPT_WIDTH, cfTLG_SPRITE_HUD_RELOAD_PROMPT_HEIGHT), 0, sTLGData.rgbaSprite)
ENDIF
ENDIF
// IF TLG_GET_PLAYER_CURRENT_WEAPON() = TLG_PLAYER_WEAPON_GATLING
// IF sTLGData.sPlayerData[0].fGatlingGunTemp = 1.0
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "TYPE_PROMPT_RELOAD", INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RELOAD_PROMPT_X, cfTLG_SPRITE_HUD_RELOAD_PROMPT_Y), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RELOAD_PROMPT_WIDTH, cfTLG_SPRITE_HUD_RELOAD_PROMPT_HEIGHT), 0, sTLGData.rgbaSprite)
// ELIF sTLGData.sPlayerData[0].fGatlingGunTemp = 0.0
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "TYPE_PROMPT_NO_AMMO", INIT_VECTOR_2D(cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_X, cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_Y), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_WIDTH, cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_HEIGHT), 0, sTLGData.rgbaSprite)
// ENDIF
// ENDIF
// DEGENATRON_GAMES_DRAW_INTEGER(INT iValue, INT iDigits, VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba)
ENDPROC
#IF IS_DEBUG_BUILD
PROC DEBUG_TEXT_FLOAT_IN_SCREEN(STRING text, FLOAT fValue,FLOAT x, FLOAT y, INT r = 255, INT g = 255, INT b = 255)
TEXT_PLACEMENT textPlacement
textPlacement.x = x
textPlacement.y = y
TEXT_STYLE textStyle
SET_TITLE_SMALL_TEXT(textStyle)
textStyle.XScale = 0.2
textStyle.YScale = 0.2
TEXT_LABEL_63 output
output = text
output += " = "
output += FLOAT_TO_STRING(fValue)
textStyle.r = r
textStyle.g = g
textStyle.b = b
DRAW_TEXT_WITH_STRING(textPlacement, textStyle, "DBG_STRING ",TEXT_LABEL_TO_STRING(output))
ENDPROC
PROC DEBUG_TEXT_INT_IN_SCREEN(STRING text, INT iValue,FLOAT x, FLOAT y, INT r = 255, INT g = 255, INT b = 255)
TEXT_PLACEMENT textPlacement
textPlacement.x = x
textPlacement.y = y
TEXT_STYLE textStyle
SET_TITLE_SMALL_TEXT(textStyle)
textStyle.XScale = 0.2
textStyle.YScale = 0.2
TEXT_LABEL_63 output
output = text
output += " = "
output += iValue
textStyle.r = r
textStyle.g = g
textStyle.b = b
DRAW_TEXT_WITH_STRING(textPlacement, textStyle, "DBG_STRING",TEXT_LABEL_TO_STRING(output))
ENDPROC
PROC TLG_DO_ON_SCREEN_DEBUG()
// DEBUG_TEXT_FLOAT_IN_SCREEN("fTravelRate ",sDGMonkeyData.sLevelData.fTravelRate,0.16,0.05+0.01*iLine)
FLOAT fYpos = 0.2
DEBUG_TEXT_INT_IN_SCREEN("Stage: ", TLG_GET_CURRENT_LEVEL_STAGE(), 0.16, fYpos)
fYpos+=0.025
DEBUG_TEXT_INT_IN_SCREEN("Enemies: ", TLG_GET_TOTAL_NUMBER_OF_ENEMIES_LEFT_ALIVE_FOR_CURRENT_STAGE(), 0.16, fYpos)
fYpos+=0.025
DEBUG_TEXT_INT_IN_SCREEN("Rightmost: ", sTLGData.iRightMostCover, 0.16, fYpos)
fYpos+=0.025
DEBUG_TEXT_INT_IN_SCREEN("Screen: ", sTLGData.iCurrentScreen, 0.16, fYpos)
fYpos+=0.025
DEBUG_TEXT_INT_IN_SCREEN("Stop screen: ", sTLGData.iScreenToStopOn, 0.16, fYpos)
// DEBUG_TEXT_FLOAT_IN_SCREEN("RetX", sTLGData.sPlayerData[0].vSpriteMarkerPos.x, 0.16, fYpos)
// fYpos+=0.025
// DEBUG_TEXT_FLOAT_IN_SCREEN("RetY", sTLGData.sPlayerData[0].vSpriteMarkerPos.y, 0.16, fYpos)
// DEBUG_TEXT_INT_IN_SCREEN("Lane 0: ", sTLGData.iCurrentActiveEnemies[0], 0.16, fYpos)
// fYpos+=0.025
// DEBUG_TEXT_INT_IN_SCREEN("Lane 1: ", sTLGData.iCurrentActiveEnemies[1], 0.16, fYpos)
// fYpos+=0.025
// DEBUG_TEXT_INT_IN_SCREEN("Lane 2: ", sTLGData.iCurrentActiveEnemies[2], 0.16, fYpos)
ENDPROC
#ENDIF
PROC TLG_DRAW_CLIENT_STATE_PLAYING()
// Draw black and grey background
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), sTLGData.rgbaBlack)
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfGAME_SCREEN_WIDTH, cfGAME_SCREEN_HEIGHT), sTLGData.rgbaRed)
TLG_DRAW_BACKGROUND()
TLG_DRAW_HOSTAGES(ciTLG_LANE_BACKGROUND)
TLG_DRAW_ENEMIES(ciTLG_LANE_BACKGROUND)
TLG_DRAW_ITEMS(ciTLG_LANE_BACKGROUND)
TLG_DRAW_COVER(ciTLG_LANE_BACKGROUND)
// FLOAT fScale = TLG_GET_COVER_TYPE_SCALE_FOR_LANE(TLG_ASSET_BUILDING_6, 0)
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, "LEVEL_02_TOWN_PROP_08", GET_DEBUG_TEXTURE_POS(0), INIT_VECTOR_2D(cfTLG_BUILDING_2_SPRITE_WIDTH*fScale, cfTLG_BUILDING_2_SPRITE_HEIGHT*fScale), 0, sTLGData.rgbaSprite)
//
TLG_DRAW_BULLETS_AND_EFFECTS(ciTLG_LANE_BACKGROUND)
TLG_DRAW_HOSTAGES(ciTLG_LANE_MIDDLE)
TLG_DRAW_ENEMIES(ciTLG_LANE_MIDDLE)
TLG_DRAW_ITEMS(ciTLG_LANE_MIDDLE)
TLG_DRAW_COVER(ciTLG_LANE_MIDDLE)
TLG_DRAW_BULLETS_AND_EFFECTS(ciTLG_LANE_MIDDLE)
TLG_DRAW_HOSTAGES(ciTLG_LANE_FOREGROUND)
TLG_DRAW_ITEMS(ciTLG_LANE_FOREGROUND)
TLG_DRAW_FOREGROUND_ENEMIES()
TLG_DRAW_COVER(ciTLG_LANE_FOREGROUND)
TLG_DRAW_THROWN_ENEMY_PROJECTILES()
TLG_DRAW_BULLETS_AND_EFFECTS(ciTLG_LANE_FOREGROUND)
TLG_DRAW_RETICULES()
TLG_DRAW_SHOT_FLASH()
TLG_DRAW_HUD()
TWS_DRAW_FRONT_FX()
ENDPROC
PROC TLG_DRAW_MENU_BACKGROUND()
ARCADE_DRAW_PIXELSPACE_RECT(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH, cfBASE_SCREEN_HEIGHT), sTLGData.rgbaBlack)
ENDPROC
PROC TLG_DRAW_LEADERBOARD_BACKGROUND()
INT i
INT iPrevious
FOR i = 0 TO ciTLG_MAX_BACKGROUND_TILES - 1
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31Level1TextDict, "LEVEL_01_DESERT_BACKGROUND_TILE", INIT_VECTOR_2D(sTLGData.sBackgroundTilesData[i].vSpritePos.x, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(276.0, cfGAME_SCREEN_HEIGHT), 0, sTLGData.rgbaSprite)
IF sTLGData.sBackgroundTilesData[i].vSpritePos.x < cfTLG_BCAKGROUND_TILE_WIDTH/2
iPrevious = i - 1
IF iPrevious < 0
iPrevious = ciTLG_MAX_BACKGROUND_TILES - 1
ENDIF
//sTLGData.sBackgroundTilesData[i].vSpritePos.x = (cfTLG_BCAKGROUND_TILE_WIDTH * 7) - cfTLG_BCAKGROUND_TILE_WIDTH/2 - (4.0 * TLG_GET_PREVIOUS_TIMESTEP())
sTLGData.sBackgroundTilesData[i].vSpritePos.x = sTLGData.sBackgroundTilesData[iPrevious].vSpritePos.x + cfTLG_BCAKGROUND_TILE_WIDTH
ENDIF
sTLGData.sBackgroundTilesData[i].vSpritePos.x -= TLG_GET_BACKGROUND_TILE_UPDATE()
ENDFOR
// Far canyons
FOR i = 0 TO ciTLG_MAX_BACKGROUND_ELEMS - 1
IF sTLGData.sBackgroundData[i].bRendering AND sTLGData.sBackgroundData[i].iLane = 0
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31Level1TextDict, sTLGData.sBackgroundData[i].sSprite, sTLGData.sBackgroundData[i].vSpritePos, sTLGData.sBackgroundData[i].vSpriteSize, 0, sTLGData.rgbaSprite)
IF TLG_IS_CLOUD(sTLGData.sBackgroundData[i].sSprite)
IF sTLGData.sBackgroundData[i].vSpritePos.X + (cfTLG_LEVEL1_CLOUD_WIDTH / 2.0 ) <= 0
sTLGData.sBackgroundData[i].vSpritePos.X = cfTLG_LEVEL1_CLOUD_WIDTH + cfTLG_LEVEL1_CLOUD_WIDTH + (cfTLG_LEVEL1_CLOUD_WIDTH / 2.0 )
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_LEADERBOARD_BACKGROUND] {DSW} Warping cloud ", i, " New Pos x: ", sTLGData.sBackgroundData[i].vSpritePos.X)
ENDIF
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_CLOUD_UPDATE()
ELSE
IF sTLGData.sBackgroundData[i].vSpritePos.X < cfTLG_BCAKGROUND_TILE_WIDTH/2
sTLGData.sBackgroundData[i].vSpritePos.X = cfBASE_SCREEN_WIDTH
ENDIF
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ENDIF
ENDFOR
// Close canyons
FOR i = 0 TO ciTLG_MAX_BACKGROUND_ELEMS - 1
IF sTLGData.sBackgroundData[i].bRendering AND sTLGData.sBackgroundData[i].iLane = 1
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31Level1TextDict, sTLGData.sBackgroundData[i].sSprite, sTLGData.sBackgroundData[i].vSpritePos, sTLGData.sBackgroundData[i].vSpriteSize, 0, sTLGData.rgbaSprite)
IF sTLGData.sBackgroundData[i].vSpritePos.X < cfTLG_BCAKGROUND_TILE_WIDTH/2
sTLGData.sBackgroundData[i].vSpritePos.X = cfBASE_SCREEN_WIDTH
ENDIF
sTLGData.sBackgroundData[i].vSpritePos.X -= TLG_GET_DEFAULT_NEAR_BACKGROUND_ELEMENT_UPDATE()
ENDIF
ENDFOR
ENDPROC
PROC TLG_DRAW_MENU_LEVELS()
FLOAT fFactor = 0.65
TEXT_LABEL_23 tl23Sprite
TEXT_LABEL_31 tl31TextDict
INT iNumPlayers = TLG_GET_NUMBER_OF_PLAYERS()
INT iLevel
TLG_SCORE_INTEGER_TYPE eLeftHandCabScoreType = TLG_SCORE_INTEGER_TYPE_RED_SCORE
//Placeholder
tl23Sprite = "selectbounty"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31LevelSelectTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/8), INIT_VECTOR_2D(328, 52), 0, sTLGData.rgbaSprite)
//-- Level 1
tl31TextDict = sTLGData.tl31LevelSelectTextDict
tl23Sprite = "LVL01"
IF sTLGData.bLevelsCompleted[0]
tl23Sprite += "_COMPLETED"
tl31TextDict = sTLGData.tl31LevelCompTextDict
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/10*3, cfBASE_SCREEN_HEIGHT/8*3), INIT_VECTOR_2D(cfTLG_SPRITE_POSTER_MENU_WIDTH*fFactor, cfTLG_SPRITE_POSTER_MENU_HEIGHT*fFactor), 0, sTLGData.rgbaSprite)
//-- Level 2
tl31TextDict = sTLGData.tl31LevelSelectTextDict
tl23Sprite = "LVL02"
IF sTLGData.bLevelsCompleted[1]
tl23Sprite += "_COMPLETED"
tl31TextDict = sTLGData.tl31LevelCompTextDict
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/10*5, cfBASE_SCREEN_HEIGHT/8*3), INIT_VECTOR_2D(cfTLG_SPRITE_POSTER_MENU_WIDTH*fFactor, cfTLG_SPRITE_POSTER_MENU_HEIGHT*fFactor), 0, sTLGData.rgbaSprite)
//-- Level 3
tl31TextDict = sTLGData.tl31LevelSelectTextDict
IF sTLGData.bLevelsCompleted[2]
tl23Sprite = "LVL03_COMPLETED"
tl31TextDict = sTLGData.tl31LevelCompTextDict
ELIF IS_LEVEL_UNLOCKED(TLG_LEVEL_FOREST)
tl23Sprite = "LVL03"
ELSE
tl23Sprite = "LVL03_LOCKED"
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/10*7, cfBASE_SCREEN_HEIGHT/8*3), INIT_VECTOR_2D(cfTLG_SPRITE_POSTER_MENU_WIDTH*fFactor, cfTLG_SPRITE_POSTER_MENU_HEIGHT*fFactor), 0, sTLGData.rgbaSprite)
//-- Level 4
tl31TextDict = sTLGData.tl31LevelSelectTextDict
IF sTLGData.bLevelsCompleted[3]
tl23Sprite = "LVL04_COMPLETED"
tl31TextDict = sTLGData.tl31LevelCompTextDict
ELIF IS_LEVEL_UNLOCKED(TLG_LEVEL_MINE)
tl23Sprite = "LVL04"
ELSE
tl23Sprite = "LVL04_LOCKED"
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/10*4, cfBASE_SCREEN_HEIGHT/8*6), INIT_VECTOR_2D(cfTLG_SPRITE_POSTER_MENU_WIDTH*fFactor, cfTLG_SPRITE_POSTER_MENU_HEIGHT*fFactor), 0, sTLGData.rgbaSprite)
//-- Level 5
tl31TextDict = sTLGData.tl31LevelSelectTextDict
IF sTLGData.bLevelsCompleted[4]
tl23Sprite = "LVL05_COMPLETED"
tl31TextDict = sTLGData.tl31LevelCompTextDict
ELIF IS_LEVEL_UNLOCKED(TLG_LEVEL_GRAVEYARD)
tl23Sprite = "LVL05"
ELSE
tl23Sprite = "LVL05_LOCKED"
ENDIF
ARCADE_DRAW_PIXELSPACE_SPRITE(tl31TextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/10*6, cfBASE_SCREEN_HEIGHT/8*6), INIT_VECTOR_2D(cfTLG_SPRITE_POSTER_MENU_WIDTH*fFactor, cfTLG_SPRITE_POSTER_MENU_HEIGHT*fFactor), 0, sTLGData.rgbaSprite)
IF iNumPlayers = 1
//-- 1 PLAYER
BOOL bInRedCabinet = TRUE
TLG_SCORE_INTEGER_TYPE eCabScoreType = TLG_SCORE_INTEGER_TYPE_RED_SCORE
IF GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) = 1
bInRedCabinet = FALSE
ENDIF
IF NOT bInRedcabinet
eCabScoreType = TLG_SCORE_INTEGER_TYPE_BLUE_SCORE
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_DESERT)
INT iMyScore = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(ilevel)
IF iMyScore > 0
TLG_DRAW_SCORE_INTEGER_WITH_DOLLAR(iMyScore, INIT_VECTOR_2D(cfTLG_SOLO_LEVEL1_SCORE_X_POS, cfTLG_SOLO_LEVEL1_SCORE_Y_POS), sTLGData.rgbaSprite,
eCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_TOWN)
iMyScore = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(ilevel)
IF iMyScore > 0
TLG_DRAW_SCORE_INTEGER_WITH_DOLLAR(iMyScore, INIT_VECTOR_2D(cfTLG_SOLO_LEVEL2_SCORE_X_POS, cfTLG_SOLO_LEVEL1_SCORE_Y_POS), sTLGData.rgbaSprite,
eCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_FOREST)
iMyScore = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(ilevel)
IF iMyScore > 0
TLG_DRAW_SCORE_INTEGER_WITH_DOLLAR(iMyScore, INIT_VECTOR_2D(cfTLG_SOLO_LEVEL3_SCORE_X_POS, cfTLG_SOLO_LEVEL1_SCORE_Y_POS), sTLGData.rgbaSprite,
eCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_MINE)
iMyScore = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(ilevel)
IF iMyScore > 0
TLG_DRAW_SCORE_INTEGER_WITH_DOLLAR(iMyScore, INIT_VECTOR_2D(cfTLG_SOLO_LEVEL4_SCORE_X_POS, cfTLG_SOLO_LEVEL4_SCORE_Y_POS), sTLGData.rgbaSprite,
eCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_GRAVEYARD)
iMyScore = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(ilevel)
IF iMyScore > 0
TLG_DRAW_SCORE_INTEGER_WITH_DOLLAR(iMyScore, INIT_VECTOR_2D(cfTLG_SOLO_LEVEL5_SCORE_X_POS, cfTLG_SOLO_LEVEL4_SCORE_Y_POS), sTLGData.rgbaSprite,
eCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
INT iTotalScore = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_ALL_LEVELS()
IF iTotalScore > 0
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "NUMERICAL_DOLLAR", INIT_VECTOR_2D(cfTLG_LEVEL_RED_SCORE_DOLLAR_X_POS, cfTLG_LEVEL_RED_SCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_ALL_LEVELS(), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_LEVEL_RED_HI_SCORE_X_POS, cfTLG_LEVEL_RED_HI_SCORE_Y_POS), sTLGData.rgbaSprite,eCabScoreType)
ENDIF
ELIF iNumPlayers > 1
//-- 2 PLAYERS
iLevel = ENUM_TO_INT(TLG_LEVEL_DESERT)
INT iRedScore = TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(ENUM_TO_INT(iLevel))
INT iBlueScore = TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(ENUM_TO_INT(iLevel))
eLeftHandCabScoreType = TLG_SCORE_INTEGER_TYPE_RED_SCORE
//Red Hi-Score - Level 1
IF iRedScore > 0
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RED_LEVEL1_HI_DOLLAR_X_POS,cfTLG_RED_LEVEL1_HI_DOLLAR_Y_POS),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* cfTLG_LEVEL_SCORE_SCALE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * cfTLG_LEVEL_SCORE_SCALE))
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iRedScore,
INIT_VECTOR_2D(cfTLG_RED_LEVEL1_HI_SCORE_X_POS,cfTLG_RED_LEVEL1_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
eLeftHandCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
//Blue Hi-Score - Level 1
IF iBlueScore > 0
TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR(iBlueScore,
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL1_HI_SCORE_X_POS,cfTLG_BLUE_LEVEL1_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
TLG_SCORE_INTEGER_TYPE_BLUE_SCORE, "NUMERICAL_DOLLAR", cfTLG_LEVEL_SCORE_SCALE)
ENDIF
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red 'Win' - Level 1
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_RED",
INIT_VECTOR_2D(cfTLG_RED_LEVEL1_WIN_X_POS, cfTLG_RED_LEVEL1_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Blue 'Win' - Level 1
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_BLUE",
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL1_WIN_X_POS, cfTLG_BLUE_LEVEL1_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_TOWN)
iRedScore = TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(ENUM_TO_INT(iLevel))
iBlueScore = TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red hi-score - Level 2
IF iRedScore > 0
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RED_LEVEL2_HI_DOLLAR_X_POS,cfTLG_RED_LEVEL2_HI_DOLLAR_Y_POS),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* cfTLG_LEVEL_SCORE_SCALE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iRedScore,
INIT_VECTOR_2D(cfTLG_RED_LEVEL2_HI_SCORE_X_POS,cfTLG_RED_LEVEL2_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
eLeftHandCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
// Blue hi-score - Level 2
IF iBlueScore > 0
TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR(iBlueScore,
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL2_HI_SCORE_X_POS,cfTLG_BLUE_LEVEL1_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
TLG_SCORE_INTEGER_TYPE_BLUE_SCORE, "NUMERICAL_DOLLAR", cfTLG_LEVEL_SCORE_SCALE)
ENDIF
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red 'Win' - Level 2
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_RED",
INIT_VECTOR_2D(cfTLG_RED_LEVEL2_WIN_X_POS, cfTLG_RED_LEVEL1_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Blue 'Win' - Level 2
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_BLUE",
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL2_WIN_X_POS, cfTLG_BLUE_LEVEL1_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_FOREST)
iRedScore = TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(ENUM_TO_INT(iLevel))
iBlueScore = TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red Hi-score - level 3
IF iRedScore > 0
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RED_LEVEL3_HI_DOLLAR_X_POS,cfTLG_RED_LEVEL3_HI_DOLLAR_Y_POS),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* cfTLG_LEVEL_SCORE_SCALE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iRedScore,
INIT_VECTOR_2D(cfTLG_RED_LEVEL3_HI_SCORE_X_POS,cfTLG_RED_LEVEL3_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
eLeftHandCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
// Blue Hi-score - level 3
IF iBlueScore > 0
TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR(iBlueScore,
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL3_HI_SCORE_X_POS,cfTLG_BLUE_LEVEL1_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
TLG_SCORE_INTEGER_TYPE_BLUE_SCORE, "NUMERICAL_DOLLAR", cfTLG_LEVEL_SCORE_SCALE)
ENDIF
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red 'Win' - Level 3
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_RED",
INIT_VECTOR_2D(cfTLG_RED_LEVEL3_WIN_X_POS, cfTLG_RED_LEVEL1_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Blue 'Win' - Level 3
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_BLUE",
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL3_WIN_X_POS, cfTLG_BLUE_LEVEL1_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_MINE)
iRedScore = TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(ENUM_TO_INT(iLevel))
iBlueScore = TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red Hi-score - level 4
IF iRedScore > 0
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RED_LEVEL4_HI_DOLLAR_X_POS,cfTLG_RED_LEVEL4_HI_DOLLAR_Y_POS),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* cfTLG_LEVEL_SCORE_SCALE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iRedScore,
INIT_VECTOR_2D(cfTLG_RED_LEVEL4_HI_SCORE_X_POS,cfTLG_RED_LEVEL4_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
eLeftHandCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
// Blue Hi-score - level 4
IF iBlueScore > 0
TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR(iBlueScore,
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL4_HI_SCORE_X_POS,cfTLG_BLUE_LEVEL4_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
TLG_SCORE_INTEGER_TYPE_BLUE_SCORE, "NUMERICAL_DOLLAR", cfTLG_LEVEL_SCORE_SCALE)
ENDIF
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red 'Win' - Level 4
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_RED",
INIT_VECTOR_2D(cfTLG_RED_LEVEL4_WIN_X_POS, cfTLG_RED_LEVEL4_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Blue 'Win' - Level 4
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_BLUE",
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL4_WIN_X_POS, cfTLG_RED_LEVEL4_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ENDIF
iLevel = ENUM_TO_INT(TLG_LEVEL_GRAVEYARD)
iRedScore = TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(ENUM_TO_INT(iLevel))
iBlueScore = TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
//-- Red Hi-score - level 5
IF iRedScore > 0
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RED_LEVEL5_HI_DOLLAR_X_POS,cfTLG_RED_LEVEL5_HI_DOLLAR_Y_POS),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* cfTLG_LEVEL_SCORE_SCALE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iRedScore,
INIT_VECTOR_2D(cfTLG_RED_LEVEL5_HI_SCORE_X_POS,cfTLG_RED_LEVEL5_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
eLeftHandCabScoreType, cfTLG_LEVEL_SCORE_SCALE)
ENDIF
//-- Blue Hi-score - level 5
IF iBlueScore > 0
TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR(iBlueScore,
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL5_HI_SCORE_X_POS,cfTLG_BLUE_LEVEL4_HI_SCORE_Y_POS),
sTLGData.rgbaSprite,
TLG_SCORE_INTEGER_TYPE_BLUE_SCORE, "NUMERICAL_DOLLAR", cfTLG_LEVEL_SCORE_SCALE)
ENDIF
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Red 'Win' - Level 5
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_RED",
INIT_VECTOR_2D(cfTLG_RED_LEVEL5_WIN_X_POS, cfTLG_RED_LEVEL4_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel) < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(iLevel)
// Blue 'Win' - Level 5
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
"SCORE_TEXT_WIN_GRAPHIC_BLUE",
INIT_VECTOR_2D(cfTLG_BLUE_LEVEL5_WIN_X_POS, cfTLG_RED_LEVEL4_WIN_Y_POS),
INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE * cfTLG_LEVEL_SCORE_SCALE, cfTLG_SCORE_WIN_Y_SIZE* cfTLG_LEVEL_SCORE_SCALE),
0,
sTLGData.rgbaSprite)
ENDIF
// 'Red' (1P) Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "NUMERICAL_DOLLAR", INIT_VECTOR_2D(cfTLG_LEVEL_RED_SCORE_DOLLAR_X_POS, cfTLG_LEVEL_RED_SCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_RED_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST(), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_LEVEL_RED_HI_SCORE_X_POS, cfTLG_LEVEL_RED_HI_SCORE_Y_POS), sTLGData.rgbaSprite,eLeftHandCabScoreType)
// 'Blue' (2P) Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "NUMERICAL_DOLLAR", INIT_VECTOR_2D(cfTLG_LEVEL_BLUE_SCORE_DOLLAR_X_POS, cfTLG_LEVEL_BLUE_SCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST(), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_LEVEL_BLUE_HI_SCORE_X_POS, cfTLG_LEVEL_BLUE_HI_SCORE_Y_POS), sTLGData.rgbaSprite, TLG_SCORE_INTEGER_TYPE_BLUE_SCORE)
IF TLG_GET_RED_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST() > TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST()
// Red 'Win'
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_WIN_GRAPHIC_RED", INIT_VECTOR_2D(cfTLG_LEVEL_SCORE_WIN_RED_X_POS, cfTLG_LEVEL_SCORE_WIN_RED_Y_POS), INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE, cfTLG_SCORE_WIN_Y_SIZE), 0, sTLGData.rgbaSprite)
ELIF TLG_GET_RED_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST() < TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST()
// Blue 'Win'
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_WIN_GRAPHIC_BLUE", INIT_VECTOR_2D(cfTLG_LEVEL_SCORE_WIN_BLUE_X_POS, cfTLG_LEVEL_SCORE_WIN_BLUE_Y_POS), INIT_VECTOR_2D(cfTLG_SCORE_WIN_X_SIZE, cfTLG_SCORE_WIN_Y_SIZE), 0, sTLGData.rgbaSprite)
ENDIF
ENDIF
ENDPROC
PROC TLG_DRAW_CLIENT_STATE_MENU()
TLG_DRAW_MENU_BACKGROUND()
TLG_DRAW_MENU_LEVELS()
TLG_DRAW_BULLETS_AND_EFFECTS(1)
TLG_DRAW_RETICULES()
TWS_DRAW_FRONT_FX()
ENDPROC
PROC TLG_DRAW_TITLE_SCREEN_ELEMENTS()
BOOL bHighlight
FLOAT x1, x2, y1, y2
x1 = sTLGData.sMenuOptionsData[0].vSpritePos.x - (sTLGData.sMenuOptionsData[0].vSize.x/2)
y1 = sTLGData.sMenuOptionsData[0].vSpritePos.y - (sTLGData.sMenuOptionsData[0].vSize.y/2)
x2 = sTLGData.sMenuOptionsData[0].vSpritePos.x + (sTLGData.sMenuOptionsData[0].vSize.x/2)
y2 = sTLGData.sMenuOptionsData[0].vSpritePos.y + (sTLGData.sMenuOptionsData[0].vSize.y/2)
TEXT_LABEL_31 tl31Sprite
tl31Sprite = "COWBOY_CHARACTER"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, tl31Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/3 + 60), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_COWBOY_TITLE_WIDTH, cfTLG_SPRITE_HUD_COWBOY_TITLE_HEIGHT), 0, sTLGData.rgbaSprite)
tl31Sprite = "TITLE_SCREEN_LOGO"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, tl31Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/2+80), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_LOGO_WIDTH, cfTLG_SPRITE_HUD_LOGO_HEIGHT), 0, sTLGData.rgbaSprite)
x1 = sTLGData.sMenuOptionsData[TLG_START].vSpritePos.x - (sTLGData.sMenuOptionsData[TLG_START].vSize.x/2)
y1 = sTLGData.sMenuOptionsData[TLG_START].vSpritePos.y - (sTLGData.sMenuOptionsData[TLG_START].vSize.y/2)
x2 = sTLGData.sMenuOptionsData[TLG_START].vSpritePos.x + (sTLGData.sMenuOptionsData[TLG_START].vSize.x/2)
y2 = sTLGData.sMenuOptionsData[TLG_START].vSpritePos.y + (sTLGData.sMenuOptionsData[TLG_START].vSize.y/2)
IF (sTLGData.sPlayerData[0].vSpriteMarkerPos.X > x1 AND sTLGData.sPlayerData[0].vSpriteMarkerPos.x < x2)
AND(sTLGData.sPlayerData[0].vSpriteMarkerPos.y > y1 AND sTLGData.sPlayerData[0].vSpriteMarkerPos.Y < y2)
bHighlight = TRUE
ENDIF
IF NOT bHighlight
tl31Sprite = "start"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, tl31Sprite, sTLGData.sMenuOptionsData[TLG_START].vSpritePos, sTLGData.sMenuOptionsData[TLG_START].vSize, 0, sTLGData.rgbaSprite)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, "TYPE_MAIN_MENU_START_HIGHLIGHT", sTLGData.sMenuOptionsData[TLG_START].vSpritePos, sTLGData.sMenuOptionsData[TLG_START].vSize, 0, sTLGData.rgbaSprite)
ENDIF
bHighlight = FALSE
IF NOT TLG_SHOULD_SKIP_LEADERBOARD()
x1 = sTLGData.sMenuOptionsData[TLG_SCORES].vSpritePos.x - (sTLGData.sMenuOptionsData[TLG_SCORES].vSize.x/2)
y1 = sTLGData.sMenuOptionsData[TLG_SCORES].vSpritePos.y - (sTLGData.sMenuOptionsData[TLG_SCORES].vSize.y/2)
x2 = sTLGData.sMenuOptionsData[TLG_SCORES].vSpritePos.x + (sTLGData.sMenuOptionsData[TLG_SCORES].vSize.x/2)
y2 = sTLGData.sMenuOptionsData[TLG_SCORES].vSpritePos.y + (sTLGData.sMenuOptionsData[TLG_SCORES].vSize.y/2)
IF (sTLGData.sPlayerData[0].vSpriteMarkerPos.X > x1 AND sTLGData.sPlayerData[0].vSpriteMarkerPos.x < x2)
AND(sTLGData.sPlayerData[0].vSpriteMarkerPos.y > y1 AND sTLGData.sPlayerData[0].vSpriteMarkerPos.Y < y2)
bHighlight = TRUE
ENDIF
IF NOT bHighlight
tl31Sprite = "leaderboards"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, tl31Sprite, sTLGData.sMenuOptionsData[TLG_SCORES].vSpritePos, sTLGData.sMenuOptionsData[TLG_SCORES].vSize, 0, sTLGData.rgbaSprite)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, "TYPE_MAIN_MENU_LEADERBOARDS_HIGHLIGHT", sTLGData.sMenuOptionsData[TLG_SCORES].vSpritePos, sTLGData.sMenuOptionsData[TLG_SCORES].vSize, 0, sTLGData.rgbaSprite)
ENDIF
ENDIF
tl31Sprite = "PIXTRO_LOGO"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31TitleTextDict, tl31Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, cfBASE_SCREEN_HEIGHT/6*5 + 60), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_PIXTRO_LOGO_WIDTH, cfTLG_SPRITE_HUD_PIXTRO_LOGO_HEIGHT), 0, sTLGData.rgbaSprite)
ENDPROC
PROC TLG_DRAW_CLIENT_STATE_TITLE_SCREEN()
TLG_DRAW_MENU_BACKGROUND()
TLG_DRAW_TITLE_SCREEN_ELEMENTS()
TLG_DRAW_BULLETS_AND_EFFECTS(1)
TLG_DRAW_RETICULES()
TWS_DRAW_FRONT_FX()
ENDPROC
FUNC TEXT_LABEL_15 TLG_GET_END_SCREEN_SUBTITLE(BOOL bWin)
TEXT_LABEL_15 tl15Subtitle = ""
INT iLevel = ENUM_TO_INT(sTLGData.eCurrentLevel)+1
IF bWin
tl15Subtitle = "BADII_LVW"
ELSE
tl15Subtitle = "BADII_LVD"
ENDIF
tl15Subtitle += iLevel
RETURN tl15Subtitle
ENDFUNC
PROC TLG_DRAW_RESULT_SCREEN_ELEMENTS(BOOL bDoOutro)
TEXT_LABEL_23 tl23Sprite
INT iScore
INT iAccuracy
INT iAccuracyBonus
INT iHostagesSaved
INT iHostagesSavedBonus
INT iLevel = TLG_GET_CURRENT_LEVEL_AS_INT()
BOOL bInRedCabinet = TRUE
BOOL bShouldShowScore = TRUE
BOOL bShouldShowAccuracy = FALSE
BOOL bShouldShowHostages = FALSE
BOOL bPlayerDead
TEXT_LABEL_15 tl15Sub = ""
IF TLG_GET_LOCAL_PLAYER_HEALTH() <= 0.0
bPlayerDead = TRUE
ENDIF
TLG_SCORE_INTEGER_TYPE eCabScoreType = TLG_SCORE_INTEGER_TYPE_RED_SCORE
IF GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) = 1
bInRedCabinet = FALSE
ENDIF
IF NOT bInRedcabinet
eCabScoreType = TLG_SCORE_INTEGER_TYPE_BLUE_SCORE
ENDIF
IF sTLGData.iResultsScreenTimer = 0
sTLGData.iResultsScreenTimer = GET_GAME_TIMER()
ENDIF
IF NOT bPlayerDead
IF GET_GAME_TIMER() - sTLGData.iResultsScreenTimer > 1500
bShouldShowAccuracy = TRUE
// NEEDS TO TAKE INTO ACCOUNT ANIMALS SHOT
iAccuracy = ROUND(100.0 * (TO_FLOAT(TLG_GET_TOTAL_ENEMY_HITS_FOR_CURRENT_LEVEL()) / TO_FLOAT(TLG_GET_TOTAL_SHOTS_FIRED_IN_CURRENT_LEVEL())))
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_ADDED_ON_ACCURACY_BONUS)
//-- Accuracy bonus is accuracy * level score
iAccuracyBonus = ROUND(TO_FLOAT(playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]) * (TO_FLOAT(iAccuracy) / 100.0))
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel] += iAccuracyBonus
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} Accuracy Bonus: ", iAccuracyBonus)
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} New score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel])
IF playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel] < playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel] = playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} New Hi-score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel])
ENDIF
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_ADDED_ON_ACCURACY_BONUS)
ENDIF
ENDIF
IF GET_GAME_TIMER() - sTLGData.iResultsScreenTimer > 3000
bShouldShowHostages = TRUE
iHostagesSaved = TLG_GET_TOTAL_NUMBER_OF_HOSTAGES_SAVED_FOR_CURRENT_LEVEL()
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_ADDED_ON_HOSTAGE_BONUS)
iHostagesSavedBonus = iHostagesSaved * 1000
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel] += iHostagesSavedBonus
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} Hostage Bonus: ", iHostagesSavedBonus)
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} New score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel])
IF playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel] < playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel] = playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} New Hi-score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel])
ENDIF
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_ADDED_ON_HOSTAGE_BONUS)
ENDIF
ENDIF
ENDIF
//bDoOutro = TRUE
IF bDoOutro
//-- Poster
tl23Sprite = "FINAL_SCENE"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31ResultsTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_SPRITE_FINAL_SCENE_POSTER_X, cfTLG_SPRITE_FINAL_SCENE_POSTER_Y), INIT_VECTOR_2D(cfTLG_SPRITE_FINAL_SCENE_POSTER_WIDTH, cfTLG_SPRITE_FINAL_SCENE_POSTER_HEIGHT), 0, sTLGData.rgbaSprite)
//--Text
tl23Sprite = "FINAL_SCENE_TEXT"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31ResultsTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_SPRITE_FINAL_SCENE_TEXT_X, cfTLG_SPRITE_FINAL_SCENE_TEXT_Y), INIT_VECTOR_2D(cfTLG_SPRITE_FINAL_SCENE_TEXT_WIDTH, cfTLG_SPRITE_FINAL_SCENE_TEXT_HEIGHT), 0, sTLGData.rgbaSprite)
//-- Subtitles
tl15Sub = "BADII_FNL"
IF bShouldShowScore
//-- Score
tl23Sprite = "SCORE_SCREEN_TEXT_01"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_Y), 0, sTLGData.rgbaSprite)
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_DOLLAR_POS_Y),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* 1.0, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * 1.0))
iScore = TLG_GET_LOCAL_PLAYER_TOTAL_SCORE()
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iScore,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_VAL_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_VAL_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO)
ENDIF
ENDIF
IF bShouldShowAccuracy
//-- Accuracy
tl23Sprite = "SCORE_SCREEN_TEXT_02"
// INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_POS_Y)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_POS_X, cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_SIZE_Y), 0, sTLGData.rgbaSprite)
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] iAccuracy: ", iAccuracy)
// INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_VAL_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_VAL_POS_Y)
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iAccuracy,
INIT_VECTOR_2D(cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_VAL_POS_X, cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_VAL_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1, TRUE)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO)
ENDIF
ENDIF
//
//
IF bShouldShowHostages
//-- Hostages
//INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_POS_X,cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_POS_Y)
tl23Sprite = "SCORE_SCREEN_TEXT_03"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SIZE_Y), 0, sTLGData.rgbaSprite)
//-- Hostages - number saved
// INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SAVED_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SAVED_POS_Y)
TLG_DRAW_SCORE_INTEGER(iHostagesSaved, 0,INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_SAVED_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_SAVED_POS_Y), sTLGData.rgbaSprite, eCabScoreType, 1)
tl23Sprite = TLG_GET_CROSS_CHAR_TEXTURE_FOR_SCORE_TYPE(eCabScoreType)
//-- Hostages - 'x' multiplier symbol
// INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_MULTI_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_MULTI_POS_Y)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
tl23Sprite,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_MULTI_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_MULTI_POS_Y),
INIT_VECTOR_2D(32.0 * 1.0,36.0* 1.0),
0,
sTLGData.rgbaSprite)
//-- Hostages - Dollar symbol
// INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_DOLLAR_POS_Y)
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_DOLLAR_POS_Y),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* 1.0, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * 1.0))
//-- Hostages - bonus numerical award
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(1000,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_BONUS_POS_X, cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_BONUS_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO)
ENDIF
ENDIF
ELIF NOT bPlayerDead
tl15Sub = TLG_GET_END_SCREEN_SUBTITLE(TRUE)
tl23Sprite = "LVL0"
tl23Sprite += ENUM_TO_INT(sTLGData.eCurrentLevel)+1
tl23Sprite += "_COMPLETED"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31LevelCompTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/6*2, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfTLG_SPRITE_POSTER_MENU_WIDTH, cfTLG_SPRITE_POSTER_MENU_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "TYPE_LEVEL_0"
tl23Sprite += ENUM_TO_INT(sTLGData.eCurrentLevel)+1
tl23Sprite += "_OUTRO_WIN"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31ResultsTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/8*5, cfBASE_SCREEN_HEIGHT/3), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RESULT_TEXT_WIDTH, cfTLG_SPRITE_HUD_RESULT_TEXT_HEIGHT), 0, sTLGData.rgbaSprite)
IF bShouldShowScore
//-- Score
tl23Sprite = "SCORE_SCREEN_TEXT_01"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_Y), 0, sTLGData.rgbaSprite)
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_VAL_POS_Y),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* 1.0, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * 1.0))
iScore = TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(TLG_GET_CURRENT_LEVEL_AS_INT())
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iScore,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_VAL_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_VAL_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO)
ENDIF
ENDIF
IF bShouldShowAccuracy
//-- Accuracy
tl23Sprite = "SCORE_SCREEN_TEXT_02"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_SIZE_Y), 0, sTLGData.rgbaSprite)
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] iAccuracy: ", iAccuracy)
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iAccuracy,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_VAL_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_VAL_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1, TRUE)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO)
ENDIF
ENDIF
IF bShouldShowHostages
//-- Hostages
tl23Sprite = "SCORE_SCREEN_TEXT_03"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_POS_X,cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SIZE_Y), 0, sTLGData.rgbaSprite)
//-- Hostages - number saved
TLG_DRAW_SCORE_INTEGER(iHostagesSaved, 0, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SAVED_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SAVED_POS_Y), sTLGData.rgbaSprite, eCabScoreType, 1)
tl23Sprite = TLG_GET_CROSS_CHAR_TEXTURE_FOR_SCORE_TYPE(eCabScoreType)
//-- Hostages - 'x' multiplier symbol
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
tl23Sprite,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_MULTI_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_MULTI_POS_Y),
INIT_VECTOR_2D(32.0 * 1.0,36.0* 1.0),
0,
sTLGData.rgbaSprite)
//-- Hostages - Dollar symbol
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_DOLLAR_POS_Y),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* 1.0, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * 1.0))
//-- Hostages - bonus numerical award
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(1000,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_BONUS_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_BONUS_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO)
ENDIF
ENDIF
// If player is dead
ELSE
tl15Sub = TLG_GET_END_SCREEN_SUBTITLE(FALSE)
tl23Sprite = "LVL0"
tl23Sprite += ENUM_TO_INT(sTLGData.eCurrentLevel)+1
tl23Sprite += "_OUTRO_FAIL"
//
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31ResultsTextDict, tl23Sprite, INIT_VECTOR_2D(684.500, cfBASE_SCREEN_HEIGHT/3), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_RESULT_TEXT_WIDTH, cfTLG_SPRITE_HUD_RESULT_TEXT_HEIGHT), 0, sTLGData.rgbaSprite)
tl23Sprite = "DEAD_SCREEN_DESATURATED"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31DeadTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/6*4, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_COWBOY_DEAD_WIDTH, cfTLG_SPRITE_HUD_COWBOY_DEAD_HEIGHT), 0, sTLGData.rgbaSprite)
IF sTLGData.iFade > 0
RGBA_COLOUR_STRUCT rgbaDeadCowboy
INIT_RGBA_STRUCT(rgbaDeadCowboy, 255, 255, 255, sTLGData.iFade)
tl23Sprite = "DEAD_SCREEN_COLOR"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31DeadTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/6*4, cfBASE_SCREEN_HEIGHT/2), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_COWBOY_DEAD_WIDTH, cfTLG_SPRITE_HUD_COWBOY_DEAD_HEIGHT), 0, rgbaDeadCowboy)
sTLGData.iFade -= 2
ELSE
tl23Sprite = "DEAD_SCREEN_TEXT"
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31DeadTextDict, tl23Sprite, INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/6*4, cfBASE_SCREEN_HEIGHT/3), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_DEAD_SCREEN_TEXT_WIDTH, cfTLG_SPRITE_HUD_DEAD_SCREEN_TEXT_HEIGHT), 0, sTLGData.rgbaSprite)
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_DEAD_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_RESULTS_DEAD)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_DEAD_AUDIO)
ENDIF
ENDIF
IF bShouldShowScore
//-- Score
tl23Sprite = "SCORE_SCREEN_TEXT_01"
// INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_POS_Y)
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tl23Sprite, INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_DEAD_SCORE_POS_X, cfTLG_RESULTS_SCREEN_DEAD_SCORE_POS_Y), INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_Y), 0, sTLGData.rgbaSprite)
//INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_VAL_POS_Y)
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_DEAD_SCORE_DOLLAR_POS_X, cfTLG_RESULTS_SCREEN_DEAD_SCORE_DOLLAR_POS_Y),
INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* 1.0, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * 1.0))
iScore = TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(TLG_GET_CURRENT_LEVEL_AS_INT())
IF iScore > 0
TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(iScore,
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_DEAD_SCORE_VAL_POS_X, cfTLG_RESULTS_SCREEN_DEAD_SCORE_VAL_POS_Y),
sTLGData.rgbaSprite,
eCabScoreType, 1)
ELSE
TLG_DRAW_SCORE_ZERO(INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_DEAD_SCORE_VAL_POS_X, cfTLG_RESULTS_SCREEN_DEAD_SCORE_VAL_POS_Y), sTLGData.rgbaSprite, eCabScoreType)
ENDIF
IF playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel] < playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel] = playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] {DSW} New Hi-score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel])
ENDIF
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO)
ENDIF
ENDIF
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_DEATH_SCREEN_AUDIO)
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_DEATH)
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_PLAYED_DEATH_SCREEN_AUDIO)
ENDIF
ENDIF
//-- Hi Score
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, "SCORE_TEXT_DOLLAR_Y", INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_POS, cfTLG_MY_HISCORE_DOLLAR_Y_POS), INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE), 0, sTLGData.rgbaSprite)
TLG_DRAW_SCORE_INTEGER(TLG_GET_LOCAL_PLAYER_HI_SCORE(), ciTLG_MAX_SCORE_DIGITS, INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_POS, cfTLG_MY_HISCORE_Y_POS), sTLGData.rgbaSprite, TLG_SCORE_INTEGER_TYPE_HI_SCORE ) //
IF GET_CURRENT_LANGUAGE() != LANGUAGE_ENGLISH
IF NOT IS_STRING_NULL_OR_EMPTY(tl15Sub)
BEGIN_TEXT_COMMAND_PRINT(tl15Sub)
END_TEXT_COMMAND_PRINT(1, TRUE)
ELSE
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_RESULT_SCREEN_ELEMENTS] Subtitle string is empty!")
ENDIF
ENDIF
ENDPROC
PROC TLG_DRAW_CLIENT_STATE_RESULT_SCREEN(BOOL bDoOutro)
TLG_DRAW_MENU_BACKGROUND()
TLG_DRAW_RESULT_SCREEN_ELEMENTS(bDoOutro)
TWS_DRAW_FRONT_FX()
ENDPROC
PROC TLG_DRAW_CLIENT_STATE_LEADERBOARD()
// TLG_DRAW_MENU_BACKGROUND()
TLG_DRAW_LEADERBOARD_BACKGROUND()
TLG_DRAW_COVER(0, TRUE)
TLG_DRAW_COVER(1, TRUE)
TLG_DRAW_COVER(2, TRUE)
BOOL bIsPlayerTwo
IF NOT TLG_IS_LOCAL_PLAYER_IN_LEFT_HAND_CABINET()
bIsPlayerTwo = TRUE
ENDIF
ARCADE_GAMES_LEADERBOARD_DRAW(sTLGData.sLbData, playerBD[PARTICIPANT_ID_TO_INT()].iLeaderboardInitials, tlgServerBd.sLeaderboard, bIsPlayerTwo)
TWS_DRAW_FRONT_FX()
ENDPROC