5344 lines
194 KiB
XML
Executable File
5344 lines
194 KiB
XML
Executable File
USING "arcade_cabinet_minigame_common.sch"
|
||
USING "arcade_games_help_text.sch"
|
||
USING "arcade_games_help_text_flow.sch"
|
||
USING "net_arcade_cabinet.sch"
|
||
|
||
CONST_FLOAT cfGAME_SCREEN_WIDTH 1264.0
|
||
CONST_FLOAT cfGAME_SCREEN_HEIGHT 930.0
|
||
|
||
CONST_FLOAT cfLEFT_SCREEN_LIMIT 250.0
|
||
CONST_FLOAT cfRIGHT_SCREEN_LIMIT 1605.0
|
||
|
||
CONST_FLOAT cfTLG_DEFAULT_ANIM_FRAME_TIME 33.0 //30 FPS
|
||
CONST_FLOAT cfTLG_SLOW_ANIM_FRAME_TIME 165.0 //15 FPS
|
||
|
||
CONST_FLOAT cfTLG_FIB_SCREEN_WIDTH 1260.0
|
||
CONST_FLOAT cfTLG_FIB_SCREEN_HEIGHT 920.0
|
||
|
||
CONST_FLOAT cfTLG_ENEMY_SPRITE_WIDTH 116.0
|
||
CONST_FLOAT cfTLG_ENEMY_SPRITE_HEIGHT 196.0
|
||
CONST_FLOAT cfTLG_ENEMY_THROWING_SPRITE_WIDTH 124.0
|
||
CONST_FLOAT cfTLG_ENEMY_THROWING_SPRITE_HEIGHT 208.0
|
||
CONST_FLOAT cfTLG_ENEMY_DEAD_SPRITE_WIDTH 160.0
|
||
CONST_FLOAT cfTLG_ENEMY_DEAD_SPRITE_HEIGHT 200.0
|
||
CONST_FLOAT cfTLG_ENEMY_FOREGROUND_SPRITE_WIDTH 376.0
|
||
CONST_FLOAT cfTLG_ENEMY_FOREGROUND_SPRITE_HEIGHT 536.0
|
||
CONST_FLOAT cfTLG_ENEMY_FOREGROUND_DEAD_SPRITE_WIDTH 452.0
|
||
CONST_FLOAT cfTLG_ENEMY_FOREGROUND_DEAD_SPRITE_HEIGHT 540.0
|
||
CONST_FLOAT cfTLG_ENEMY_BEAR_SPRITE_WIDTH 660.0
|
||
CONST_FLOAT cfTLG_ENEMY_BEAR_SPRITE_HEIGHT 500.0
|
||
CONST_FLOAT cfTLG_ENEMY_BEAR_DEAD_SPRITE_WIDTH 768.0
|
||
CONST_FLOAT cfTLG_ENEMY_BEAR_DEAD_SPRITE_HEIGHT 504.0
|
||
CONST_FLOAT cfTLG_ENEMY_CART_SPRITE_WIDTH 536.0
|
||
CONST_FLOAT cfTLG_ENEMY_CART_SPRITE_HEIGHT 404.0
|
||
|
||
CONST_FLOAT cfTLG_HOSTAGE_M_SPRITE_WIDTH 160.0
|
||
CONST_FLOAT cfTLG_HOSTAGE_M_SPRITE_HEIGHT 200.0
|
||
CONST_FLOAT cfTLG_EAGLE_SPRITE_WIDTH 192.0
|
||
CONST_FLOAT cfTLG_EAGLE_SPRITE_HEIGHT 140.0
|
||
CONST_FLOAT cfTLG_VULTURE_SPRITE_WIDTH 192.0
|
||
CONST_FLOAT cfTLG_VULTURE_SPRITE_HEIGHT 140.0
|
||
CONST_FLOAT cfTLG_BAT_SPRITE_WIDTH 68.0
|
||
CONST_FLOAT cfTLG_BAT_SPRITE_HEIGHT 64.0
|
||
CONST_FLOAT cfTLG_MOUSE_SPRITE_WIDTH 140.0
|
||
CONST_FLOAT cfTLG_MOUSE_SPRITE_HEIGHT 64.0
|
||
CONST_FLOAT cfTLG_SCORPION_SPRITE_WIDTH 100.0
|
||
CONST_FLOAT cfTLG_SCORPION_SPRITE_HEIGHT 84.0
|
||
|
||
CONST_FLOAT cfTLG_CANYON_1_SPRITE_WIDTH 256.0
|
||
CONST_FLOAT cfTLG_CANYON_1_SPRITE_HEIGHT 144.0
|
||
CONST_FLOAT cfTLG_CANYON_2_SPRITE_WIDTH 420.0
|
||
CONST_FLOAT cfTLG_CANYON_2_SPRITE_HEIGHT 144.0
|
||
CONST_FLOAT cfTLG_CANYON_4_SPRITE_WIDTH 188.0
|
||
CONST_FLOAT cfTLG_CANYON_4_SPRITE_HEIGHT 52.0
|
||
CONST_FLOAT cfTLG_MOUNTAIN_1_SPRITE_WIDTH 1300.0
|
||
CONST_FLOAT cfTLG_MOUNTAIN_1_SPRITE_HEIGHT 112.0
|
||
|
||
CONST_FLOAT cfTLG_MOUNTAIN_1_SPRITE_X 788.125
|
||
CONST_FLOAT cfTLG_MOUNTAIN_1_SPRITE_Y 315.0
|
||
|
||
CONST_FLOAT cfTLG_MOUNTAIN_2_SPRITE_WIDTH 272.0
|
||
CONST_FLOAT cfTLG_MOUNTAIN_2_SPRITE_HEIGHT 112.0
|
||
CONST_FLOAT cfTLG_ROCK_TOP_SPRITE_WIDTH 284.0
|
||
CONST_FLOAT cfTLG_ROCK_TOP_SPRITE_HEIGHT 100.0
|
||
CONST_FLOAT cfTLG_WOODENSTRUCTURE_SPRITE_WIDTH 312.0
|
||
CONST_FLOAT cfTLG_WOODENSTRUCTURE_SPRITE_HEIGHT 304.0
|
||
CONST_FLOAT cfTLG_RAILWAY_SPRITE_WIDTH 284.0
|
||
CONST_FLOAT cfTLG_RAILWAY_SPRITE_HEIGHT 36.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TREE_1_SPRITE_WIDTH 288.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TREE_1_SPRITE_HEIGHT 264.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TREE_2_SPRITE_WIDTH 212.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TREE_2_SPRITE_HEIGHT 276.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TREE_3_SPRITE_WIDTH 264.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TREE_3_SPRITE_HEIGHT 244.0
|
||
CONST_FLOAT cfTLG_BACKGROUND_TOMBS_SPRITE_WIDTH 540.0
|
||
CONST_FLOAT cfTLG_BACKGROUND_TOMBS_SPRITE_HEIGHT 84.0
|
||
|
||
CONST_FLOAT cfTLG_CACTUS_1_SPRITE_WIDTH 168.0
|
||
CONST_FLOAT cfTLG_CACTUS_1_SPRITE_HEIGHT 288.0
|
||
CONST_FLOAT cfTLG_CACTUS_2_SPRITE_WIDTH 168.0
|
||
CONST_FLOAT cfTLG_CACTUS_2_SPRITE_HEIGHT 408.0
|
||
CONST_FLOAT cfTLG_CACTUS_3_SPRITE_WIDTH 120.0
|
||
CONST_FLOAT cfTLG_CACTUS_3_SPRITE_HEIGHT 540.0
|
||
CONST_FLOAT cfTLG_CACTUS_4_SPRITE_WIDTH 280.0
|
||
CONST_FLOAT cfTLG_CACTUS_4_SPRITE_HEIGHT 204.0
|
||
|
||
CONST_FLOAT cfTLG_CACTUS_5_SPRITE_WIDTH 148.0
|
||
CONST_FLOAT cfTLG_CACTUS_5_SPRITE_HEIGHT 128.0
|
||
CONST_FLOAT cfTLG_CACTUS_6_SPRITE_WIDTH 176.0
|
||
CONST_FLOAT cfTLG_CACTUS_6_SPRITE_HEIGHT 236.0
|
||
CONST_FLOAT cfTLG_CACTUS_7_SPRITE_WIDTH 212.0
|
||
CONST_FLOAT cfTLG_CACTUS_7_SPRITE_HEIGHT 236.0
|
||
CONST_FLOAT cfTLG_CACTUS_8_SPRITE_WIDTH 148.0
|
||
CONST_FLOAT cfTLG_CACTUS_8_SPRITE_HEIGHT 236.0
|
||
CONST_FLOAT cfTLG_CACTUS_9_SPRITE_WIDTH 112.0
|
||
CONST_FLOAT cfTLG_CACTUS_9_SPRITE_HEIGHT 236.0
|
||
CONST_FLOAT cfTLG_CACTUS_10_SPRITE_WIDTH 184.0
|
||
CONST_FLOAT cfTLG_CACTUS_10_SPRITE_HEIGHT 236.0
|
||
CONST_FLOAT cfTLG_CACTUS_11_SPRITE_WIDTH 176.0
|
||
CONST_FLOAT cfTLG_CACTUS_11_SPRITE_HEIGHT 212.0
|
||
|
||
CONST_FLOAT cfTLG_OUTHOUSE_1_SPRITE_WIDTH 216.0
|
||
CONST_FLOAT cfTLG_OUTHOUSE_1_SPRITE_HEIGHT 332.0
|
||
CONST_FLOAT cfTLG_CRATE_1_SPRITE_WIDTH 312.0
|
||
CONST_FLOAT cfTLG_CRATE_1_SPRITE_HEIGHT 184.0
|
||
CONST_FLOAT cfTLG_BUILDING_1_SPRITE_WIDTH 564.0
|
||
CONST_FLOAT cfTLG_BUILDING_1_SPRITE_HEIGHT 452.0
|
||
CONST_FLOAT cfTLG_BUILDING_2_SPRITE_WIDTH 412.0
|
||
CONST_FLOAT cfTLG_BUILDING_2_SPRITE_HEIGHT 400.0
|
||
CONST_FLOAT cfTLG_FENCE_SPRITE_WIDTH 376.0
|
||
CONST_FLOAT cfTLG_FENCE_SPRITE_HEIGHT 196.0
|
||
CONST_FLOAT cfTLG_FENCE_SMALL_SPRITE_WIDTH 92.0
|
||
CONST_FLOAT cfTLG_FENCE_SMALL_SPRITE_HEIGHT 24.0
|
||
CONST_FLOAT cfTLG_ROCKS_SPRITE_WIDTH 36.0
|
||
CONST_FLOAT cfTLG_ROCKS_SPRITE_HEIGHT 36.0
|
||
CONST_FLOAT cfTLG_FOREST_ROCKS_SPRITE_WIDTH 40.0
|
||
CONST_FLOAT cfTLG_FOREST_ROCKS_SPRITE_HEIGHT 40.0
|
||
|
||
CONST_FLOAT cfTLG_FOREST_TREE_1_SPRITE_WIDTH 472.0
|
||
CONST_FLOAT cfTLG_FOREST_TREE_1_SPRITE_HEIGHT 784.0
|
||
CONST_FLOAT cfTLG_FOREST_TREE_2_SPRITE_WIDTH 400.0
|
||
CONST_FLOAT cfTLG_FOREST_TREE_2_SPRITE_HEIGHT 656.0
|
||
CONST_FLOAT cfTLG_FOREST_GRASS_SPRITE_WIDTH 288.0
|
||
CONST_FLOAT cfTLG_FOREST_GRASS_SPRITE_HEIGHT 204.0
|
||
CONST_FLOAT cfTLG_FOREST_BUSH_SM_SPRITE_WIDTH 120.0
|
||
CONST_FLOAT cfTLG_FOREST_BUSH_SM_SPRITE_HEIGHT 80.0
|
||
CONST_FLOAT cfTLG_FOREST_BUSH_LG_SPRITE_WIDTH 212.0
|
||
CONST_FLOAT cfTLG_FOREST_BUSH_LG_SPRITE_HEIGHT 140.0
|
||
CONST_FLOAT cfTLG_ROCK_SMALL_SPRITE_WIDTH 164.0
|
||
CONST_FLOAT cfTLG_ROCK_SMALL_SPRITE_HEIGHT 92.0
|
||
CONST_FLOAT cfTLG_ROCK_LARGE_SPRITE_WIDTH 288.0
|
||
CONST_FLOAT cfTLG_ROCK_LARGE_SPRITE_HEIGHT 160.0
|
||
CONST_FLOAT cfTLG_STACKED_CRATES_1_SPRITE_WIDTH 300.0
|
||
CONST_FLOAT cfTLG_STACKED_CRATES_1_SPRITE_HEIGHT 312.0
|
||
CONST_FLOAT cfTLG_STACKED_CRATES_2_SPRITE_WIDTH 300.0
|
||
CONST_FLOAT cfTLG_STACKED_CRATES_2_SPRITE_HEIGHT 432.0
|
||
CONST_FLOAT cfTLG_BARRELS_SPRITE_WIDTH 236.0
|
||
CONST_FLOAT cfTLG_BARRELS_SPRITE_HEIGHT 184.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_1_SPRITE_WIDTH 208.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_1_SPRITE_HEIGHT 440.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_2_SPRITE_WIDTH 212.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_2_SPRITE_HEIGHT 344.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_3_SPRITE_WIDTH 128.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_3_SPRITE_HEIGHT 172.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_4_SPRITE_WIDTH 126.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_4_SPRITE_HEIGHT 172.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_5_SPRITE_WIDTH 132.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_5_SPRITE_HEIGHT 172.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_6_SPRITE_WIDTH 140.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_STONE_6_SPRITE_HEIGHT 140.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TOMB_SPRITE_WIDTH 630.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_TOMB_SPRITE_HEIGHT 720.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_COFFIN_SPRITE_WIDTH 200.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_COFFIN_SPRITE_HEIGHT 248.0
|
||
CONST_FLOAT cfTLG_WATER_TOWER_SPRITE_WIDTH 360.0
|
||
CONST_FLOAT cfTLG_WATER_TOWER_SPRITE_HEIGHT 376.0
|
||
CONST_FLOAT cfTLG_TNT_CRATE_SPRITE_WIDTH 192.0
|
||
CONST_FLOAT cfTLG_TNT_CRATE_SPRITE_HEIGHT 124.0
|
||
CONST_FLOAT cfTLG_TNT_BARREL_1_SPRITE_WIDTH 140.0
|
||
CONST_FLOAT cfTLG_TNT_BARREL_1_SPRITE_HEIGHT 176.0
|
||
CONST_FLOAT cfTLG_TNT_BARREL_2_SPRITE_WIDTH 176.0
|
||
CONST_FLOAT cfTLG_TNT_BARREL_2_SPRITE_HEIGHT 140.0
|
||
CONST_FLOAT cfTLG_OUTHOUSE_SPECIAL_SPRITE_WIDTH 216.0
|
||
CONST_FLOAT cfTLG_OUTHOUSE_SPECIAL_SPRITE_HEIGHT 332.0
|
||
CONST_FLOAT cfTLG_COFFIN_ENEMY_SPRITE_WIDTH 200.0
|
||
CONST_FLOAT cfTLG_COFFIN_ENEMY_SPRITE_HEIGHT 248.0
|
||
|
||
CONST_FLOAT cfTLG_SPRITE_BULLET_1_WIDTH 30.0
|
||
CONST_FLOAT cfTLG_SPRITE_BULLET_1_HEIGHT 8.0
|
||
CONST_FLOAT cfTLG_SPRITE_IMPACT_WIDTH 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_IMPACT_HEIGHT 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_EXPLOSION_WIDTH 408.0
|
||
CONST_FLOAT cfTLG_SPRITE_EXPLOSION_HEIGHT 268.0
|
||
CONST_FLOAT cfTLG_SPRITE_ENEMY_SHOT_WIDTH 128.0
|
||
CONST_FLOAT cfTLG_SPRITE_ENEMY_SHOT_HEIGHT 128.0
|
||
CONST_FLOAT cfTLG_SPRITE_DAMAGE_WIDTH 504.0
|
||
CONST_FLOAT cfTLG_SPRITE_DAMAGE_HEIGHT 460.0
|
||
CONST_FLOAT cfTLG_SPRITE_BEAR_DAMAGE_WIDTH 392.0
|
||
CONST_FLOAT cfTLG_SPRITE_BEAR_DAMAGE_HEIGHT 612.0
|
||
CONST_FLOAT cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_SMALL_WIDTH 412.0
|
||
CONST_FLOAT cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_SMALL_HEIGHT 344.0
|
||
CONST_FLOAT cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_LARGE_WIDTH 572.0
|
||
CONST_FLOAT cfTLG_SPRITE_ENEMY_THROWN_EXPLOSION_LARGE_HEIGHT 504.0
|
||
CONST_FLOAT cfTLG_SPRITE_LOOT_CRATE_EXPLOSION_WIDTH 356.0
|
||
CONST_FLOAT cfTLG_SPRITE_LOOT_CRATE_EXPLOSION_HEIGHT 228.0
|
||
CONST_FLOAT cfTLG_SPRITE_FEATHERS_WIDTH 204.0
|
||
CONST_FLOAT cfTLG_SPRITE_FEATHERS_HEIGHT 116.0
|
||
|
||
CONST_INT ciTLG_DYNAMITE_SMALL_WIDTH 76
|
||
CONST_INT ciTLG_DYNAMITE_SMALL_HEIGHT 76
|
||
CONST_INT ciTLG_DYNAMITE_MEDIUM_WIDTH 128
|
||
CONST_INT ciTLG_DYNAMITE_MEDIUM_HEIGHT 128
|
||
CONST_INT ciTLG_DYNAMITE_LARGE_WIDTH 284
|
||
CONST_INT ciTLG_DYNAMITE_LARGE_HEIGHT 276
|
||
|
||
|
||
CONST_FLOAT cfTLG_SPRITE_MARKER_WIDTH 104.0
|
||
CONST_FLOAT cfTLG_SPRITE_MARKER_HEIGHT 104.0
|
||
|
||
CONST_FLOAT cfTLG_SPEECH_SPRITE_WIDTH 116.0
|
||
CONST_FLOAT cfTLG_SPEECH_SPRITE_HEIGHT 96.0
|
||
|
||
CONST_FLOAT cfTLG_ITEM_HEALTH_WIDTH 44.0
|
||
CONST_FLOAT cfTLG_ITEM_HEALTH_HEIGHT 92.0
|
||
|
||
CONST_FLOAT cfTLG_ITEM_SNAKE_OIL_WIDTH 44.0
|
||
CONST_FLOAT cfTLG_ITEM_SNAKE_OIL_HEIGHT 92.0
|
||
|
||
CONST_FLOAT cfTLG_ITEM_SHERIFF_WIDTH 84.0
|
||
CONST_FLOAT cfTLG_ITEM_SHERIFF_HEIGHT 96.0
|
||
|
||
CONST_FLOAT cfTLG_PICKUP_OUTHOUSE_OFFSET_X 16.75
|
||
CONST_FLOAT cfTLG_PICKUP_OUTHOUSE_OFFSET_Y 102.5
|
||
|
||
CONST_FLOAT cfTLG_PICKUP_COFFIN_OFFSET_X 21.375
|
||
CONST_FLOAT cfTLG_PICKUP_COFFIN_OFFSET_Y 77.0
|
||
|
||
CONST_FLOAT cfTLG_BCAKGROUND_TILE_WIDTH 276.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL1_CLOUD_X 754.000
|
||
CONST_FLOAT cfTLG_LEVEL1_CLOUD_Y 152.500
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD_X 723.750
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD_Y 193.750
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD_GAP 100.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD_X 723.750
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD_Y 193.750
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD_GAP 100.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL1_CLOUD_WIDTH 1232.0
|
||
CONST_FLOAT cfTLG_LEVEL1_CLOUD_HEIGHT 136.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD1_WIDTH 188.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD1_HEIGHT 56.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD2_WIDTH 96.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD2_HEIGHT 32.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD3_WIDTH 112.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD3_HEIGHT 60.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD4_WIDTH 304.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD4_HEIGHT 60.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD5_WIDTH 252.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD5_HEIGHT 20.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD6_WIDTH 140.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD6_HEIGHT 44.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD7_WIDTH 128.0
|
||
CONST_FLOAT cfTLG_LEVEL2_CLOUD7_HEIGHT 44.0
|
||
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD1_WIDTH 188.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD1_HEIGHT 56.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD2_WIDTH 96.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD2_HEIGHT 32.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD3_WIDTH 112.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD3_HEIGHT 60.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD4_WIDTH 304.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD4_HEIGHT 60.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD5_WIDTH 252.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD5_HEIGHT 20.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD6_WIDTH 140.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD6_HEIGHT 44.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD7_WIDTH 128.0
|
||
CONST_FLOAT cfTLG_LEVEL3_CLOUD7_HEIGHT 44.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_BACKGROUND_TREES_WIDTH 276.0
|
||
CONST_FLOAT cfTLG_LEVEL3_BACKGROUND_TREES_HEIGHT 156.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL3_BACKGROUND_TREES_X 276.0
|
||
CONST_FLOAT cfTLG_LEVEL3_BACKGROUND_TREES_Y 290.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_SURFACE_WIDTH 276.0
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_SURFACE_HEIGHT 100.0
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_SURFACE_X 276.0
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_SURFACE_Y 263.125
|
||
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_ROCKS_WIDTH 276.0
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_ROCKS_HEIGHT 120.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_ROCKS_X 276.000
|
||
CONST_FLOAT cfTLG_LEVEL4_BACKGROUND_ROCKS_Y 306.375
|
||
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_CLOUDS_WIDTH 276.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_CLOUDS_HEIGHT 68.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_CLOUDS_X 276.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_CLOUDS_Y 163.875
|
||
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_FENCE_WIDTH 276.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_FENCE_HEIGHT 172.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_FENCE_X 276.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_FENCE_y 336.500
|
||
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_TREES_WIDTH 276.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_TREES_HEIGHT 220.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_TREES_X 276.0
|
||
CONST_FLOAT cfTLG_LEVEL5_BACKGROUND_TREES_Y 261.625
|
||
|
||
CONST_FLOAT cfTLG_BG_ENEMY_1_X_OFFSET -20.0
|
||
CONST_FLOAT cfTLG_BG_ENEMY_1_Y_OFFSET -30.0
|
||
CONST_FLOAT cfTLG_FG_ENEMY_1_X_OFFSET 30.0
|
||
CONST_FLOAT cfTLG_FG_ENEMY_1_Y_OFFSET 45.0
|
||
|
||
CONST_FLOAT cfTLG_SPRITE_POSTER_MENU_WIDTH 420.0
|
||
CONST_FLOAT cfTLG_SPRITE_POSTER_MENU_HEIGHT 520.0
|
||
CONST_FLOAT cfTLG_SPRITE_POSTER_SELECTION_WIDTH 500.0
|
||
CONST_FLOAT cfTLG_SPRITE_POSTER_SELECTION_HEIGHT 600.0
|
||
CONST_FLOAT cfTLG_SPRITE_STAR_ICON_WIDTH 44.0
|
||
CONST_FLOAT cfTLG_SPRITE_STAR_ICON_HEIGHT 48.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_HP_WIDTH 216.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_HP_HEIGHT 40.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_AMMO_WIDTH 64.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_AMMO_HEIGHT 64.0
|
||
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_PISTOL_AMMO_SINGLE_WIDTH 24.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_PISTOL_AMMO_SINGLE_HEIGHT 86.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RIFLE_AMMO_SINGLE_WIDTH 28.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RIFLE_AMMO_SINGLE_HEIGHT 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_SHOTGUN_AMMO_SINGLE_WIDTH 28.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_SHOTGUN_AMMO_SINGLE_HEIGHT 80.0
|
||
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_PISTOL_AMMO_CLIP_WIDTH 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_PISTOL_AMMO_CLIP_HEIGHT 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_SHOTGUN_AMMO_CLIP_WIDTH 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_SHOTGUN_AMMO_CLIP_HEIGHT 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RIFLE_AMMO_CLIP_WIDTH 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RIFLE_AMMO_CLIP_HEIGHT 96.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_AMMO_QTY_WIDTH 44.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_AMMO_QTY_HEIGHT 48.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_DOLLAR_WIDTH 32.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_DOLLAR_HEIGHT 36.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_MONEY_QTY_WIDTH 32.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_MONEY_QTY_HEIGHT 36.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_COWBOY_TITLE_WIDTH 412.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_COWBOY_TITLE_HEIGHT 640.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_COWBOY_DEAD_WIDTH 516.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_COWBOY_DEAD_HEIGHT 880.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_DEAD_SCREEN_TEXT_WIDTH 280.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_DEAD_SCREEN_TEXT_HEIGHT 228.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RESULT_TEXT_WIDTH 660.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RESULT_TEXT_HEIGHT 264.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_LOGO_WIDTH 536.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_LOGO_HEIGHT 276.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_START_WIDTH 116.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_START_HEIGHT 52.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_LEADERBOARDS_WIDTH 280.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_LEADERBOARDS_HEIGHT 52.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_PIXTRO_LOGO_WIDTH 196.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_PIXTRO_LOGO_HEIGHT 44.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RELOAD_PROMPT_X 948.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RELOAD_PROMPT_Y 540.375
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RELOAD_PROMPT_WIDTH 576.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_RELOAD_PROMPT_HEIGHT 204.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_X 960.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_Y 540.375
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_WIDTH 308.0
|
||
CONST_FLOAT cfTLG_SPRITE_HUD_NO_AMMO_PROMPT_HEIGHT 296.0
|
||
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_POSTER_X 1280.000
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_POSTER_Y 540.0
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_POSTER_WIDTH 556.0
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_POSTER_HEIGHT 836.0
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_TEXT_X 670.000
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_TEXT_Y 360.0
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_TEXT_WIDTH 660.0
|
||
CONST_FLOAT cfTLG_SPRITE_FINAL_SCENE_TEXT_HEIGHT 360.000
|
||
|
||
CONST_FLOAT cfTLG_HP_X_POS 500.0
|
||
CONST_FLOAT cfTLG_HP_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_GATLING_TEMP_BORDER_X_POS 447.375
|
||
CONST_FLOAT cfTLG_GATLING_TEMP_BORDER_Y_POS 174.750
|
||
CONST_FLOAT cfTLG_GATLING_TEMP_BORDER_WIDTH 108.0
|
||
CONST_FLOAT cfTLG_GATLING_TEMP_BORDER_HEIGHT 40.0
|
||
CONST_FLOAT cfTLG_AMMO_X_POS 420.0
|
||
CONST_FLOAT cfTLG_AMMO_Y_POS 180.0
|
||
CONST_FLOAT cfTLG_AMMO_QTY_1_X_POS 544.625// 475.0
|
||
CONST_FLOAT cfTLG_AMMO_QTY_1_Y_POS 174.875//180.0
|
||
CONST_FLOAT cfTLG_AMMO_QTY_2_X_POS 584.625 //515.0
|
||
CONST_FLOAT cfTLG_AMMO_QTY_2_Y_POS 174.875 // 180.0
|
||
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_0_X 510.125
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_0_Y 194.25
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_1_X 488.625
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_2_X 467.125
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_3_X 445.625
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_4_X 424.125
|
||
CONST_FLOAT cfTLG_SINGLE_PISTOL_AMMO_5_X 402.625
|
||
|
||
CONST_FLOAT cfTLG_GATLING_OVERHEAT_TIME_SECONDS 5.0
|
||
CONST_FLOAT cfTLG_GATLING_COOLDOWN_TIME_SECONDS 2.0
|
||
|
||
CONST_INT ciTLG_WAIT_FOR_DEAD_TIME 2000
|
||
//-- In-Game scores
|
||
CONST_FLOAT cfTLG_SCORE_GAP_DOLLAR_FIRST_DIGIT_X 105.5
|
||
CONST_FLOAT cfTLG_SCORE_GAP_DOLLAR_TO_DOLLAR_X 282.5
|
||
|
||
|
||
CONST_FLOAT cfTLG_MY_HISCORE_DOLLAR_X_SIZE 28.0
|
||
CONST_FLOAT cfTLG_MY_HISCORE_DOLLAR_Y_SIZE 40.0
|
||
|
||
CONST_FLOAT cfTLG_MY_HISCORE_X_DIGIT_SIZE 32.0
|
||
CONST_FLOAT cfTLG_MY_HISCORE_Y_DIGIT_SIZE 36.0
|
||
|
||
CONST_FLOAT cfTLG_FONT_X_DIGIT_SIZE 32.0
|
||
CONST_FLOAT cfTLG_FONT_DIGIT_SIZE 36.0
|
||
|
||
CONST_FLOAT cfTLG_SCORE_WIN_X_SIZE 52.0
|
||
CONST_FLOAT cfTLG_SCORE_WIN_Y_SIZE 32.0
|
||
|
||
CONST_FLOAT cfTLG_SCORE_WIN_RED_X_POS 864.0
|
||
CONST_FLOAT cfTLG_SCORE_WIN_RED_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_SCORE_WIN_BLUE_X_POS 1430.0
|
||
CONST_FLOAT cfTLG_SCORE_WIN_BLUE_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_MY_SCORE_DOLLAR_X_POS 634.5
|
||
CONST_FLOAT cfTLG_MY_SCORE_DOLLAR_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_MY_SCORE_X_POS 740.0
|
||
CONST_FLOAT cfTLG_MY_SCORE_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_RED_SCORE_DOLLAR_X_POS 634.5
|
||
CONST_FLOAT cfTLG_RED_SCORE_DOLLAR_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_RED_SCORE_X_POS 740.0
|
||
CONST_FLOAT cfTLG_RED_SCORE_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_MY_HISCORE_DOLLAR_X_POS 917.0
|
||
CONST_FLOAT cfTLG_MY_HISCORE_DOLLAR_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_MY_HISCORE_X_POS 1022.5
|
||
CONST_FLOAT cfTLG_MY_HISCORE_Y_POS 130.0
|
||
|
||
|
||
CONST_FLOAT cfTLG_BLUE_SCORE_DOLLAR_X_POS 1199.5
|
||
CONST_FLOAT cfTLG_BLUE_SCORE_DOLLAR_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_BLUE_SCORE_X_POS 1305.0
|
||
CONST_FLOAT cfTLG_BLUE_SCORE_Y_POS 130.0
|
||
|
||
//-- Level select scores
|
||
CONST_FLOAT cfTLG_LEVEL_SCORE_SCALE 0.5
|
||
|
||
//-- Solo play hi-scores on wanted poster positions
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL1_SCORE_X_POS 579.5
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL1_SCORE_Y_POS 551.25
|
||
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL2_SCORE_X_POS 965.75
|
||
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL3_SCORE_X_POS 1348.125
|
||
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL4_SCORE_X_POS 771.25
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL4_SCORE_Y_POS 957.25
|
||
|
||
CONST_FLOAT cfTLG_SOLO_LEVEL5_SCORE_X_POS 1159.5
|
||
|
||
CONST_FLOAT cfTLG_RED_LEVEL1_HI_DOLLAR_X_POS 462.875
|
||
CONST_FLOAT cfTLG_RED_LEVEL1_HI_DOLLAR_Y_POS 551.250
|
||
CONST_FLOAT cfTLG_RED_LEVEL1_HI_SCORE_X_POS 475.875
|
||
CONST_FLOAT cfTLG_RED_LEVEL1_HI_SCORE_Y_POS 551.25
|
||
CONST_FLOAT cfTLG_RED_LEVEL1_WIN_X_POS 469.750
|
||
CONST_FLOAT cfTLG_RED_LEVEL1_WIN_Y_POS 533.250
|
||
|
||
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL1_HI_DOLLAR_X_POS 462.875
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL1_HI_DOLLAR_Y_POS 551.250
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL1_HI_SCORE_X_POS 675.75
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL1_HI_SCORE_Y_POS 551.25
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL1_WIN_X_POS 671.0
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL1_WIN_Y_POS 533.250
|
||
|
||
CONST_FLOAT cfTLG_RED_LEVEL2_HI_DOLLAR_X_POS 846.625
|
||
CONST_FLOAT cfTLG_RED_LEVEL2_HI_DOLLAR_Y_POS 551.250
|
||
CONST_FLOAT cfTLG_RED_LEVEL2_HI_SCORE_X_POS 860.375
|
||
CONST_FLOAT cfTLG_RED_LEVEL2_HI_SCORE_Y_POS 551.25
|
||
CONST_FLOAT cfTLG_RED_LEVEL2_WIN_X_POS 854.125
|
||
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL2_HI_SCORE_X_POS 1062.375
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL2_WIN_X_POS 1057.75
|
||
|
||
CONST_FLOAT cfTLG_RED_LEVEL3_HI_DOLLAR_X_POS 1231.87
|
||
CONST_FLOAT cfTLG_RED_LEVEL3_HI_DOLLAR_Y_POS 551.250
|
||
CONST_FLOAT cfTLG_RED_LEVEL3_HI_SCORE_X_POS 1245.62
|
||
CONST_FLOAT cfTLG_RED_LEVEL3_HI_SCORE_Y_POS 551.25
|
||
CONST_FLOAT cfTLG_RED_LEVEL3_WIN_X_POS 1238.625
|
||
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL3_HI_SCORE_X_POS 1446.875
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL3_HI_SCORE_Y_POS 551.25
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL3_WIN_X_POS 1442.0
|
||
|
||
CONST_FLOAT cfTLG_RED_LEVEL4_HI_DOLLAR_X_POS 655.25
|
||
CONST_FLOAT cfTLG_RED_LEVEL4_HI_DOLLAR_Y_POS 957.0
|
||
CONST_FLOAT cfTLG_RED_LEVEL4_HI_SCORE_X_POS 669.0
|
||
CONST_FLOAT cfTLG_RED_LEVEL4_HI_SCORE_Y_POS 957.0
|
||
CONST_FLOAT cfTLG_RED_LEVEL4_WIN_X_POS 663.625
|
||
CONST_FLOAT cfTLG_RED_LEVEL4_WIN_Y_POS 938.625
|
||
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL4_HI_SCORE_X_POS 868.5
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL4_HI_SCORE_Y_POS 957.0
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL4_WIN_X_POS 863.625
|
||
|
||
CONST_FLOAT cfTLG_RED_LEVEL5_HI_DOLLAR_X_POS 1039.625
|
||
CONST_FLOAT cfTLG_RED_LEVEL5_HI_DOLLAR_Y_POS 957.0
|
||
CONST_FLOAT cfTLG_RED_LEVEL5_HI_SCORE_X_POS 1053.375
|
||
CONST_FLOAT cfTLG_RED_LEVEL5_HI_SCORE_Y_POS 957.0
|
||
CONST_FLOAT cfTLG_RED_LEVEL5_WIN_X_POS 1046.5
|
||
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL5_HI_SCORE_X_POS 1252.625
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL5_HI_SCORE_Y_POS 957.0
|
||
CONST_FLOAT cfTLG_BLUE_LEVEL5_WIN_X_POS 1248.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL_RED_SCORE_DOLLAR_X_POS 486.375
|
||
CONST_FLOAT cfTLG_LEVEL_RED_SCORE_DOLLAR_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_LEVEL_RED_HI_SCORE_X_POS 592.125
|
||
CONST_FLOAT cfTLG_LEVEL_RED_HI_SCORE_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL_BLUE_SCORE_DOLLAR_X_POS 1247.625
|
||
CONST_FLOAT cfTLG_LEVEL_BLUE_SCORE_DOLLAR_Y_POS 130.0
|
||
CONST_FLOAT cfTLG_LEVEL_BLUE_HI_SCORE_X_POS 1353.625
|
||
CONST_FLOAT cfTLG_LEVEL_BLUE_HI_SCORE_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL_SCORE_WIN_RED_X_POS 717.375
|
||
CONST_FLOAT cfTLG_LEVEL_SCORE_WIN_RED_Y_POS 130.0
|
||
|
||
CONST_FLOAT cfTLG_LEVEL_SCORE_WIN_BLUE_X_POS 1481.375
|
||
CONST_FLOAT cfTLG_LEVEL_SCORE_WIN_BLUE_Y_POS 130.0
|
||
|
||
//-- Results Screen - Level Complete
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_POS_X 998.75
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_POS_Y 577.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_X 116.0
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_SIZE_Y 56.0
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_DOLLAR_POS_X 1208.5
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_VAL_POS_X 1238.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_SCORE_VAL_POS_Y 574.25
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_POS_X 1031.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_POS_Y 637.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_VAL_POS_X 1209.875
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_VAL_POS_Y 636.625
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_SIZE_X 184.0
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_SIZE_Y 56.0
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_PERCENT_SIZE_X 28.0
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_PERCENT_SIZE_Y 36.0
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_POS_X 1027.875
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_POS_Y 697.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SIZE_X 176.0
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SIZE_Y 56.0
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SAVED_POS_X 1210.875
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_SAVED_POS_Y 695.25
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_DOLLAR_POS_X 1277.25
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_DOLLAR_POS_Y 695.75
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_BONUS_POS_X 1302.875
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_BONUS_POS_Y 695.25
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_MULTI_POS_X 1245.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_COMPLETE_HOSTAGES_MULTI_POS_Y 695.625
|
||
|
||
|
||
//-- Results Screen - Player Killed
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_DEAD_SCORE_POS_X 559.875
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_DEAD_SCORE_POS_Y 599.375
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_DEAD_SCORE_DOLLAR_POS_X 717.125
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_DEAD_SCORE_DOLLAR_POS_Y 599.125
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_DEAD_SCORE_VAL_POS_X 744.750
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_DEAD_SCORE_VAL_POS_Y 598.875
|
||
|
||
//-- Results Screen - Game Complete
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_POS_X 530.625
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_POS_Y 625.5
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_DOLLAR_POS_X 719.625
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_DOLLAR_POS_Y 624.75
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_VAL_POS_X 749.25
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_SCORE_VAL_POS_Y 625.375
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_POS_X 562.625
|
||
CONST_FLOAT cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_POS_Y 684.125
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_VAL_POS_X 721.250
|
||
CONST_FLOAT cfTLG_RESULTS_GAME_SCREEN_COMPLETE_ACCURACY_VAL_POS_Y 684.000
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_POS_X 558.000
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_POS_Y 742.750
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_SAVED_POS_X 721.250
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_SAVED_POS_Y 742.250
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_MULTI_POS_X 755.500
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_MULTI_POS_Y 742.850
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_DOLLAR_POS_X 787.625
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_DOLLAR_POS_Y 742.975
|
||
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_BONUS_POS_X 813.25
|
||
CONST_FLOAT cfTLG_RESULTS_SCREEN_GAME_COMPLETE_HOSTAGES_BONUS_POS_Y 742.475
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE0_MIN_Y 0.0
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE0_MAX_Y 63.0
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE1_MIN_Y 0.0
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE1_MAX_Y 43.0
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE2_MIN_Y 0.0
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE2_MAX_Y 148.0
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE2_MIN_X 0.0
|
||
CONST_FLOAT cfTLG_HEADSHOT_LANE2_MAX_X 0.0
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_COFFIN_MIN_X 58.25
|
||
CONST_FLOAT cfTLG_HEADSHOT_COFFIN_MAX_X 163.25
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_COFFIN_MIN_Y 0.0
|
||
CONST_FLOAT cfTLG_HEADSHOT_COFFIN_MAX_Y 90.0
|
||
|
||
CONST_FLOAT cfTLG_HEADSHOT_OUTHOUSE_MIN_Y 126.5
|
||
CONST_FLOAT cfTLG_HEADSHOT_OUTHOUSE_MAX_Y 159.25
|
||
|
||
CONST_FLOAT cfTLG_DAMAGE_1_X_POS 1200.0
|
||
CONST_FLOAT cfTLG_DAMAGE_1_Y_POS 900.0
|
||
CONST_FLOAT cfTLG_DAMAGE_2_X_POS 500.0
|
||
CONST_FLOAT cfTLG_DAMAGE_2_Y_POS 400.0
|
||
CONST_FLOAT cfTLG_DAMAGE_3_X_POS 900.0
|
||
CONST_FLOAT cfTLG_DAMAGE_3_Y_POS 600.0
|
||
CONST_FLOAT cfTLG_DAMAGE_4_X_POS 1400.0
|
||
CONST_FLOAT cfTLG_DAMAGE_4_Y_POS 500.0
|
||
CONST_FLOAT cfTLG_DAMAGE_5_X_POS 900.0
|
||
CONST_FLOAT cfTLG_DAMAGE_5_Y_POS 300.0
|
||
CONST_FLOAT cfTLG_DAMAGE_BEAR_X_POS 913.75
|
||
CONST_FLOAT cfTLG_DAMAGE_BEAR_Y_POS 658.25
|
||
|
||
CONST_FLOAT cfTLG_TOWN_LEVEL_RIGHTMOST_ENTITY_X 1343.0
|
||
CONST_FLOAT cfTLG_FOREST_LEVEL_RIGHTMOST_ENTITY_X 1415.75
|
||
CONST_FLOAT cfTLG_MINE_LEVEL_RIGHTMOST_ENTITY_X 1420.0
|
||
CONST_FLOAT cfTLG_GRAVEYARD_LEVEL_RIGHTMOST_ENTITY_X 1535.250
|
||
|
||
CONST_FLOAT cfIAP_CONTROLLER_AXIS_THRESHOLD_MOD 1.0
|
||
|
||
CONST_INT ciTLG_ENEMY_TIME_TO_SHOOT 2000
|
||
CONST_INT ciTLG_PLAYER_CRITICAL_DAMAGE_NO_AMMO_TIME 1000
|
||
|
||
CONST_INT ciTLG_INVULNERABILTY_TIME 12000
|
||
CONST_INT ciTLG_HIDE_RETICULE_TIME 10000
|
||
|
||
CONST_INT ciTLG_MAX_ANIM_FRAMES 2
|
||
CONST_INT ciTLG_MAX_THROWING_FRAMES 4
|
||
CONST_INT ciTLG_MAX_CART_ANIM_FRAMES 4
|
||
CONST_INT ciTLG_EXPLOSION_MAX_ANIM_FRAMES 3
|
||
CONST_INT ciTLG_ENEMY_SHOT_MAX_ANIM_FRAMES 1
|
||
CONST_INT ciTLG_PLAYER_SHOT_MAX_ANIM_FRAMES 2
|
||
CONST_INT ciTLG_MAX_OUTHOUSE_ENEMY_ANIM_FRAMES 6
|
||
CONST_INT ciTLG_MAX_ENEMY_THROWN_DYNAMITE_ANIM_FRAMES 6
|
||
CONST_INT ciTLG_MAX_ENEMY_THROWN_EXPLOSION_ANIM_FRAMES 3
|
||
CONST_INT ciTLG_MAX_LOOT_CRATE_FX_ANIM_FRAMES 3
|
||
CONST_INT ciTLG_FEATHERS_MAX_ANIM_FRAMES 8
|
||
|
||
|
||
CONST_INT ciTLG_MAX_PROJECTILES 4
|
||
CONST_INT ciTLG_MAX_ENEMY_PROJECTILES 1
|
||
CONST_INT ciTLG_MAX_ENEMY_SHOT_AT_ONCE 4
|
||
CONST_INT ciTLG_MAX_COVER 50
|
||
CONST_INT ciTLG_MAX_SUITABLE_HIDE_BEHIND_COVER 8
|
||
CONST_INT ciTLG_MAX_FX 6
|
||
CONST_INT ciTLG_MAX_MENU_OPTIONS 7
|
||
CONST_INT ciTLG_MAX_PLAYERS 1
|
||
CONST_INT ciTLG_MAX_BACKGROUND_TILES 7
|
||
CONST_INT ciTLG_MAX_BACKGROUND_ELEMS 50
|
||
CONST_INT ciTLG_MAX_ENEMIES 40
|
||
CONST_INT ciTLG_MAX_HOSTAGES 9
|
||
CONST_INT ciTLG_MAX_ITEMS 12
|
||
CONST_INT ciTLG_MAX_SCREENS 5
|
||
|
||
CONST_INT MAX_PLAYER_HELD_WEAPONS 2
|
||
|
||
CONST_INT ciTLG_PLAYER_START_AMMO 99
|
||
CONST_INT ciTLG_PLAYER_WEAPON_PISTOL 0
|
||
|
||
CONST_INT ciTLG_MAX_SCORE_DIGITS 6
|
||
|
||
|
||
CONST_INT ciTLG_LANE_BACKGROUND 0
|
||
CONST_INT ciTLG_LANE_MIDDLE 1
|
||
CONST_INT ciTLG_LANE_FOREGROUND 2
|
||
CONST_INT ciTLG_LANE_POPUP_RHS 3
|
||
CONST_INT ciTLG_LANE_POPUP_LHS 4
|
||
CONST_INT ciTLG_MAX_LANES 5
|
||
|
||
CONST_INT ciTLG_STAGE_0 0
|
||
CONST_INT ciTLG_STAGE_1 1
|
||
CONST_INT ciTLG_STAGE_2 2
|
||
|
||
CONST_INT ciTLG_SCREEN_1 1
|
||
CONST_INT ciTLG_SCREEN_2 2
|
||
CONST_INT ciTLG_SCREEN_3 3
|
||
CONST_INT ciTLG_SCREEN_4 4
|
||
|
||
CONST_FLOAT cfTLG_DEFAULT_PIXEL_UPDATE 4.0
|
||
TWEAK_INT ciBASE_FPS 30
|
||
// Game States
|
||
CONST_INT TLG_GAME_STATE_INIT 0
|
||
CONST_INT TLG_GAME_STATE_RUNNING 1
|
||
CONST_INT TLG_GAME_STATE_LEAVE 2
|
||
CONST_INT TLG_GAME_STATE_END 3
|
||
|
||
ENUM TLG_LEVELS
|
||
|
||
TLG_LEVEL_DESERT = 0,
|
||
TLG_LEVEL_TOWN,
|
||
TLG_LEVEL_FOREST,
|
||
TLG_LEVEL_MINE,
|
||
TLG_LEVEL_GRAVEYARD,
|
||
TLG_MAX_LEVELS
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_ARCADE_CLIENT_STATE
|
||
|
||
TLG_ARCADE_CLIENT_STATE_INIT = 0,
|
||
TLG_ARCADE_CLIENT_STATE_REQUESTING_ASSETS,
|
||
TLG_ARCADE_CLIENT_STATE_FIB,
|
||
TLG_ARCADE_CLIENT_STATE_INTRO,
|
||
TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN,
|
||
TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU,
|
||
TLG_ARCADE_CLIENT_STATE_INIT_LEVEL,
|
||
TLG_ARCADE_CLIENT_STATE_PLAYING,
|
||
TLG_ARCADE_CLIENT_STATE_RESULT_SCREEN,
|
||
TLG_ARCADE_CLIENT_STATE_OUTRO_MOVIE,
|
||
TLG_ARCADE_CLIENT_STATE_VIEW_LEADERBOARD,
|
||
TLG_ARCADE_CLIENT_STATE_EDIT_LEADERBOARD,
|
||
TLG_ARCADE_CLIENT_STATE_CLEANUP
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_PLAYER_PED_ANIM_STATE
|
||
TLG_PLAYER_PED_ANIM_IDLE,
|
||
TLG_PLAYER_PED_ANIM_IDLE_TO_AIM,
|
||
TLG_PLAYER_PED_ANIM_AIM_IDLE,
|
||
TLG_PLAYER_PED_ANIM_PLAY_IDLE,
|
||
TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_LOSE_LIFE,
|
||
TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_COMPLETE_STAGE,
|
||
TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_COMPLETE_GAME
|
||
|
||
ENDENUM
|
||
|
||
|
||
|
||
ENUM TLG_LEVELS_BITSET
|
||
TLG_LEVELS_BIT_SHOULD_STOP = 0,
|
||
TLG_LEVELS_BIT_STOPPED,
|
||
TLG_LEVELS_BIT_TOWN_LARGE_BUILDING_PASSED_BY1,
|
||
TLG_LEVELS_BIT_REPLAYING_LEVEL,
|
||
TLG_LEVELS_BIT_USED_SPECIAL_WEAPON,
|
||
TLG_LEVELS_BIT_DONE_RESULTS_SCREEN_AUDIO,
|
||
TLG_LEVELS_BIT_DAMAGED_BY_BEAR,
|
||
TLG_LEVELS_BIT_ADDED_ON_ACCURACY_BONUS,
|
||
TLG_LEVELS_BIT_PLAYED_DEATH_SCREEN_AUDIO,
|
||
TLG_LEVELS_BIT_ADDED_ON_HOSTAGE_BONUS,
|
||
TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO,
|
||
TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO,
|
||
TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO,
|
||
TLG_LEVELS_BIT_PLAYED_RESULTS_DEAD_AUDIO
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_PLAYER_BITSET
|
||
TLG_PLAYER_BIT_INVULNERABILE,
|
||
TLG_PLAYER_BIT_HIDE_RETICULE,
|
||
TLG_PLAYER_BIT_INIT_NEW_CHAIN,
|
||
TLG_PLAYER_BIT_GATLING_OVERHEAT,
|
||
TLG_PLAYER_BIT_GATLING_STOPPED_SHOOTING,
|
||
TLG_PLAYER_BIT_RELOADED_FIRST_BULLET
|
||
ENDENUM
|
||
|
||
ENUM TLG_COLLECTIBLE_TYPES
|
||
|
||
TLG_HEALTH,
|
||
TLG_SNAKE_OIL,
|
||
TLG_SHERIFF,
|
||
TLG_ALCOHOL,
|
||
TLG_GOLD_BARS,
|
||
TLG_REVOLVER_AMMO,
|
||
TLG_MACHINE_GUN_AMMO,
|
||
TLG_RIFLE_AMMO,
|
||
TLG_SHOTGUN_AMMO
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_CIVILIAN_TYPES
|
||
|
||
TLG_GIRL = 0,
|
||
TLG_GUY,
|
||
TLG_PRISONER_1,
|
||
TLG_PRISONER_2,
|
||
TLG_PRISONER_3,
|
||
TLG_VULTURE,
|
||
TLG_EAGLE,
|
||
TLG_BAT,
|
||
TLG_MOUSE,
|
||
TLG_SCORPION
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_ENEMY_TYPES
|
||
|
||
TLG_ENEMY_1 = 0,
|
||
TLG_ENEMY_2,
|
||
TLG_ENEMY_3,
|
||
TLG_ENEMY_4,
|
||
TLG_ENEMY_5,
|
||
TLG_FOREGROUND_ENEMY_T1_1,
|
||
TLG_FOREGROUND_ENEMY_T1_2,
|
||
TLG_FOREGROUND_ENEMY_T1_3,
|
||
TLG_FOREGROUND_ENEMY_T1_4,
|
||
TLG_FOREGROUND_ENEMY_T1_5,
|
||
TLG_FOREGROUND_ENEMY_T2_1,
|
||
TLG_FOREGROUND_ENEMY_T2_2,
|
||
TLG_FOREGROUND_ENEMY_T2_3,
|
||
TLG_FOREGROUND_ENEMY_T2_4,
|
||
TLG_FOREGROUND_ENEMY_T2_5,
|
||
TLG_FOREGROUND_ENEMY_BEAR,
|
||
TLG_CART_1,
|
||
TLG_THROWING_ENEMY_1,
|
||
TLG_OUTHOUSE_ENEMY,
|
||
TLG_COFFIN_ENEMY
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_ENEMY_PROJECTILE_TYPES
|
||
TLG_ENEMY_PROJECTILE_DYNAMITE
|
||
ENDENUM
|
||
|
||
ENUM TLG_ENEMY_PROJECTILE_STATE
|
||
TLG_ENEMY_PROJECTILE_STATE_INACTIVE,
|
||
TLG_ENEMY_PROJECTILE_STATE_AIRBORNE,
|
||
TLG_ENEMY_PROJECTILE_STATE_EXPLODE
|
||
ENDENUM
|
||
|
||
ENUM TLG_MENU_OPTIONS
|
||
|
||
TLG_START = 0,
|
||
TLG_SCORES,
|
||
TLG_WANTED_1,
|
||
TLG_WANTED_2,
|
||
TLG_WANTED_3,
|
||
TLG_WANTED_4,
|
||
TLG_WANTED_5
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_LEVEL_STAGE
|
||
|
||
TLG_FADING_IN = 0,
|
||
TLG_PLAY,
|
||
TLG_WAIT_FOR_DEAD,
|
||
TLG_FADING_OUT
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_ENEMY_STATE
|
||
|
||
TLG_WAITING = 0,
|
||
TLG_ACTIVE,
|
||
TLG_SHOOTING,
|
||
TLG_DYING,
|
||
TLG_INACTIVE
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_FX_TYPE
|
||
|
||
TLG_FX_EXPLOSION,
|
||
TLG_FX_ENEMY_SHOT,
|
||
TLG_FX_IMPACT,
|
||
TLG_FX_ENEMY_TNT_EXP,
|
||
TLG_FX_LOOT_CRATE,
|
||
TLG_FX_FEATHERS
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_ASSET_TYPES
|
||
TLG_ASSET_INVALID = -1,
|
||
TLG_ASSET_OUTHOUSE = 0,
|
||
TLG_ASSET_CACTUS_1,
|
||
TLG_ASSET_CACTUS_2,
|
||
TLG_ASSET_CACTUS_3,
|
||
TLG_ASSET_CACTUS_4,
|
||
TLG_ASSET_CRATE_1,
|
||
TLG_ASSET_BUILDING_1,
|
||
TLG_ASSET_BUILDING_2,
|
||
TLG_ASSET_BUILDING_3,
|
||
TLG_ASSET_BUILDING_4,
|
||
TLG_ASSET_BUILDING_5,
|
||
TLG_ASSET_BUILDING_6,
|
||
TLG_ASSET_BUILDING_7,
|
||
TLG_ASSET_BUILDING_8,
|
||
TLG_ASSET_FENCE,
|
||
TLG_ASSET_FENCE_SMALL,
|
||
TLG_ASSET_CACTUS_5,
|
||
TLG_ASSET_CACTUS_6,
|
||
TLG_ASSET_CACTUS_7,
|
||
TLG_ASSET_CACTUS_8,
|
||
TLG_ASSET_CACTUS_9,
|
||
TLG_ASSET_CACTUS_10,
|
||
TLG_ASSET_CACTUS_11,
|
||
TLG_ASSET_FOREST_TREE_1,
|
||
TLG_ASSET_FOREST_TREE_2,
|
||
TLG_ASSET_GRASS,
|
||
TLG_ASSET_BUSH_1,
|
||
TLG_ASSET_BUSH_2,
|
||
TLG_ASSET_ROCK_SMALL,
|
||
TLG_ASSET_ROCK_LARGE,
|
||
TLG_ASSET_STACKED_CRATES_1,
|
||
TLG_ASSET_STACKED_CRATES_2,
|
||
TLG_ASSET_BARRELS,
|
||
TLG_ASSET_BIG_TOMB,
|
||
TLG_ASSET_TOMBSTONE_1,
|
||
TLG_ASSET_TOMBSTONE_2,
|
||
TLG_ASSET_TOMBSTONE_3,
|
||
TLG_ASSET_TOMBSTONE_4,
|
||
TLG_ASSET_TOMBSTONE_5,
|
||
TLG_ASSET_COFFIN,
|
||
TLG_ASSET_WATER_TOWER,
|
||
TLG_ASSET_SPECIAL_TNT_CRATE,
|
||
TLG_ASSET_SPECIAL_TNT_BARREL_1,
|
||
TLG_ASSET_SPECIAL_TNT_BARREL_2,
|
||
TLG_ASSET_SPECIAL_OUTHOUSE_HOST
|
||
|
||
|
||
ENDENUM
|
||
|
||
ENUM TLG_SCORE_TYPE
|
||
TLG_SCORE_TYPE_ENEMY,
|
||
TLG_SCORE_TYPE_ENEMY_HEADSHOT,
|
||
TLG_SCORE_TYPE_SCENERY,
|
||
TLG_SCORE_TYPE_ENEMY_EXPLOSION,
|
||
TLG_SCORE_TYPE_ANIMAL
|
||
ENDENUM
|
||
|
||
ENUM TLG_SCORE_INTEGER_TYPE
|
||
TLG_SCORE_INTEGER_TYPE_HI_SCORE,
|
||
TLG_SCORE_INTEGER_TYPE_MY_SCORE,
|
||
TLG_SCORE_INTEGER_TYPE_RED_SCORE,
|
||
TLG_SCORE_INTEGER_TYPE_BLUE_SCORE
|
||
ENDENUM
|
||
|
||
ENUM TLG_PLAYER_WEAPON
|
||
TLG_PLAYER_WEAPON_NONE = -1,
|
||
TLG_PLAYER_WEAPON_PISTOL = 0,
|
||
TLG_PLAYER_WEAPON_RIFLE,
|
||
TLG_PLAYER_WEAPON_SHOTGUN,
|
||
TLG_PLAYER_WEAPON_GATLING,
|
||
TLG_PLAYER_WEAPON_MAX
|
||
ENDENUM
|
||
|
||
ENUM TLG_PLAYER_WEAPON_TYPE
|
||
TLG_PLAYER_WEAPON_TYPE_DEFAULT = 0,
|
||
TLG_PLAYER_WEAPON_TYPE_SPECIAL,
|
||
TLG_PLAYER_WEAPON_TYPE_MAX
|
||
ENDENUM
|
||
|
||
ENUM TLG_AUDIO_SCENE
|
||
TLG_AUDIO_SCENE_MENUS,
|
||
TLG_AUDIO_SCENE_GAMEPLAY,
|
||
TLG_AUDIO_SCENE_POWERUP_ACTIVE
|
||
ENDENUM
|
||
|
||
ENUM TLG_MUSIC_BITS
|
||
TLG_MUSIC_BIT_STARTED_INTRO,
|
||
TLG_MUSIC_BIT_STARTED_TITLE,
|
||
TLG_MUSIC_BIT_STARTED_LEVEL,
|
||
TLG_MUSIC_BIT_STOPPED,
|
||
TLG_MUSIC_BIT_DEATH
|
||
|
||
ENDENUM
|
||
ENUM TLG_MUSIC_EVENTS
|
||
TLG_MUSIC_EVENT_INVALID = -1,
|
||
TLG_MUSIC_EVENT_INTRO,
|
||
TLG_MUSIC_EVENT_TITLE,
|
||
TLG_MUSIC_EVENT_GOSPEL,
|
||
TLG_MUSIC_EVENT_BUCKLE,
|
||
TLG_MUSIC_EVENT_HILLBILLY,
|
||
TLG_MUSIC_EVENT_RUCKUS,
|
||
TLG_MUSIC_EVENT_BARREL,
|
||
TLG_MUSIC_EVENT_DEATH,
|
||
TLG_MUSIC_EVENT_STOP
|
||
ENDENUM
|
||
|
||
ENUM TLG_AUDIO_EFFECT
|
||
TLG_AUDIO_EFFECT_GET_READY,
|
||
TLG_AUDIO_EFFECT_DRAW,
|
||
TLG_AUDIO_EFFECT_SELECT_STAGE,
|
||
TLG_AUDIO_EFFECT_STAGE_LOCKED,
|
||
TLG_AUDIO_EFFECT_MENU_BACK,
|
||
|
||
TLG_AUDIO_EFFECT_SWAP_WEAPON,
|
||
TLG_AUDIO_EFFECT_RELOAD,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_BODY,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_BARREL,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_LATRINE,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_COFFIN,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_BUSH,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_CACTUS,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_ROCK,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_MISS,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_OPTION,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_START,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_GENERIC,
|
||
TLG_AUDIO_EFFECT_BULLET_HIT_FART,
|
||
TLG_AUDIO_EFFECT_REVOLVER_COCKED,
|
||
TLG_AUDIO_EFFECT_REVOLVER_FIRE,
|
||
TLG_AUDIO_EFFECT_REVOLVER_EMPTY,
|
||
// TLG_AUDIO_EFFECT_REVOLVER_RELOAD,
|
||
TLG_AUDIO_EFFECT_RIFLE_FIRE,
|
||
TLG_AUDIO_EFFECT_RIFLE_COCKED,
|
||
TLG_AUDIO_EFFECT_RIFLE_EMPTY,
|
||
// TLG_AUDIO_EFFECT_RIFLE_RELOAD,
|
||
TLG_AUDIO_EFFECT_SHOTGUN_FIRE,
|
||
TLG_AUDIO_EFFECT_SHOTGUN_COCKED,
|
||
TLG_AUDIO_EFFECT_SHOTGUN_EMPTY,
|
||
/// TLG_AUDIO_EFFECT_SHOTGUN_RELOAD,
|
||
TLG_AUDIO_EFFECT_GATLING_FIRE,
|
||
|
||
TLG_AUDIO_EFFECT_REVOLVER_RELOAD_FIRST,
|
||
TLG_AUDIO_EFFECT_REVOLVER_RELOAD_SINGLE,
|
||
TLG_AUDIO_EFFECT_REVOLVER_RELOAD_LAST,
|
||
|
||
TLG_AUDIO_EFFECT_RIFLE_RELOAD_FIRST,
|
||
TLG_AUDIO_EFFECT_RIFLE_RELOAD_SINGLE,
|
||
TLG_AUDIO_EFFECT_RIFLE_RELOAD_LAST,
|
||
|
||
TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_FIRST,
|
||
TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_SINGLE,
|
||
TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_LAST,
|
||
|
||
TLG_AUDIO_EFFECT_GATLING_OVERHEAT,
|
||
TLG_AUDIO_EFFECT_SHOOT_GATLING_OVERHEAT,
|
||
|
||
TLG_AUDIO_EFFECT_PLAYER_HEALTH_DEAD,
|
||
TLG_AUDIO_EFFECT_PLAYER_HEALTH_VERY_LOW,
|
||
TLG_AUDIO_EFFECT_PLAYER_HEALTH_LOW,
|
||
TLG_AUDIO_EFFECT_PLAYER_HEALTH_MEDIUM,
|
||
TLG_AUDIO_EFFECT_PLAYER_HEALTH_HIGH,
|
||
TLG_AUDIO_EFFECT_PLAYER_NEW_GUN,
|
||
|
||
TLG_AUDIO_EFFECT_ENEMY_DEAD,
|
||
TLG_AUDIO_EFFECT_ENEMY_INJURED,
|
||
TLG_AUDIO_EFFECT_ENEMY_RIFLE_AIM,
|
||
TLG_AUDIO_EFFECT_ENEMY_RIFLE_FIRE,
|
||
TLG_AUDIO_EFFECT_ENEMY_CRIT_WARNING,
|
||
TLG_AUDIO_EFFECT_ENEMY_THROW_DYNAMITE,
|
||
|
||
TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE,
|
||
|
||
TLG_AUDIO_EFFECT_EXP_CART,
|
||
TLG_AUDIO_EFFECT_EXP_GENERIC,
|
||
TLG_AUDIO_EFFECT_EXP_DYNAMITE,
|
||
|
||
TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_HELP,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_DEATH,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_PAIN,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_ESCAPE,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_MALE_HELP,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_MALE_DEATH,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_MALE_PAIN,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_MALE_ESCAPE,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_HELP,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_DEATH,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_PAIN,
|
||
TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_ESCAPE,
|
||
|
||
|
||
TLG_AUDIO_EFFECT_BAT_APPEAR,
|
||
TLG_AUDIO_EFFECT_BAT_DEATH,
|
||
TLG_AUDIO_EFFECT_BEAR_APPEAR,
|
||
TLG_AUDIO_EFFECT_BEAR_DEATH,
|
||
TLG_AUDIO_EFFECT_BEAR_ATTACK,
|
||
TLG_AUDIO_EFFECT_EAGLE_APPEAR,
|
||
TLG_AUDIO_EFFECT_EAGLE_DEATH,
|
||
TLG_AUDIO_EFFECT_RAT_APPEAR,
|
||
TLG_AUDIO_EFFECT_RAT_DEATH,
|
||
TLG_AUDIO_EFFECT_SCORPION_APPEAR,
|
||
TLG_AUDIO_EFFECT_SCORPION_DEATH,
|
||
TLG_AUDIO_EFFECT_VULTURE_APPEAR,
|
||
TLG_AUDIO_EFFECT_VULTURE_DEATH,
|
||
|
||
TLG_AUDIO_EFFECT_PICKUP_HEALTH,
|
||
TLG_AUDIO_EFFECT_PICKUP_SHERIFF,
|
||
TLG_AUDIO_EFFECT_PICKUP_SNAKE_OIL,
|
||
TLG_AUDIO_EFFECT_PICKUP_RUN_OUT,
|
||
|
||
TLG_AUDIO_EFFECT_PLAYER_START,
|
||
TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL1_GOSPEL_GANGSTERS,
|
||
TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL2_BUCKLE_BUNNIES,
|
||
TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL3_HILLBILLY_HOODLUMS,
|
||
TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL4_RUCKUS_RANGERS,
|
||
TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL5_BARREL_FEVER_BOYS,
|
||
TLG_AUDIO_EFFECT_PLAYER_RELOAD,
|
||
TLG_AUDIO_EFFECT_PLAYER_SHOOT_OUTHOUSE,
|
||
TLG_AUDIO_EFFECT_PLAYER_SHOOT_COFFIN,
|
||
TLG_AUDIO_EFFECT_PLAYER_SHOOT_HEADSHOT,
|
||
TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL,
|
||
TLG_AUDIO_EFFECT_PLAYER_AWARD_PISTOLS,
|
||
TLG_AUDIO_EFFECT_PLAYER_AWARD_SHARPHSOOTER,
|
||
TLG_AUDIO_EFFECT_PLAYER_AWARD_DEADEYE,
|
||
TLG_AUDIO_EFFECT_PLAYER_SCORE_BAD,
|
||
TLG_AUDIO_EFFECT_PLAYER_SCORE_AVERAGE,
|
||
TLG_AUDIO_EFFECT_PLAYER_SCORE_GOOD,
|
||
TLG_AUDIO_EFFECT_PLAYER_SCORE_AMAZING,
|
||
TLG_AUDIO_EFFECT_PLAYER_GATLING_GUN,
|
||
TLG_AUDIO_EFFECT_PLAYER_SHOTGUN,
|
||
TLG_AUDIO_EFFECT_PLAYER_RIFLE,
|
||
TLG_AUDIO_EFFECT_PLAYER_COMPLETE_LEVEL,
|
||
TLG_AUDIO_EFFECT_PLAYER_DEATH,
|
||
TLG_AUDIO_EFFECT_PLAYER_RESULTS_DEAD,
|
||
TLG_AUDIO_EFFECT_PLAYER_FINISH_GAME,
|
||
|
||
TLG_AUDIO_EFFECT_POWERUP,
|
||
TLG_AUDIO_EFFECT_POWERDOWN,
|
||
|
||
TLG_AUDIO_EFFECT_MAX
|
||
ENDENUM
|
||
|
||
ENUM TLG_HELP_TEXT_BITS
|
||
TLG_HELP_TEXT_BIT_SHOOT_AIM = 0,
|
||
TLG_HELP_TEXT_BIT_RELOAD,
|
||
TLG_HELP_TEXT_BIT_HEADSHOT,
|
||
TLG_HELP_TEXT_BIT_CHAIN,
|
||
TLG_HELP_TEXT_BIT_CHEST,
|
||
TLG_HELP_TEXT_BIT_AT_LEAST_ONE_HEADSHOT,
|
||
TLG_HELP_TEXT_BIT_DEADEYE,
|
||
TLG_HELP_TEXT_BIT_SHARPSHOOTER_BRONZE,
|
||
TLG_HELP_TEXT_BIT_SHARPSHOOTER_SILVER,
|
||
TLG_HELP_TEXT_BIT_SHARPSHOOTER_GOLD,
|
||
TLG_HELP_TEXT_BIT_SHARPSHOOTER_PLATINUM,
|
||
TLG_HELP_TEXT_BIT_PISTOLS_AT_DAWN
|
||
ENDENUM
|
||
|
||
ENUM TLG_HOSTAGE_BITSET
|
||
TLG_HOSTAGE_BIT_APPEARED_ONSCREEN = 0,
|
||
TLG_HOSTAGE_BIT_SAVED
|
||
ENDENUM
|
||
|
||
ENUM TLG_DAMAGE_PLAYER_TYPES
|
||
TLG_DAMAGE_PLAYER_TYPE_BULLET,
|
||
TLG_DAMAGE_PLAYER_TYPE_DYNAMITE,
|
||
TLG_DAMAGE_PLAYER_TYPE_BEAR,
|
||
TLG_DAMAGE_PLAYER_TYPE_SNAKE_OIL
|
||
ENDENUM
|
||
|
||
ENUM TLG_CHALLENGES
|
||
TLG_CHALLENGE_SHARPSHOOTER_PLATINUM = 0,
|
||
TLG_CHALLENGE_DEADEYE,
|
||
TLG_CHALLENGE_PISTOLS_AT_DAWN,
|
||
TLG_CHALLENGE_SHARPSHOOTER_BRONZE,
|
||
TLG_CHALLENGE_SHARPSHOOTER_SILVER,
|
||
TLG_CHALLENGE_SHARPSHOOTER_GOLD
|
||
ENDENUM
|
||
#IF IS_DEBUG_BUILD
|
||
|
||
FUNC STRING TLG_DEBUG_GET_TLG_ARCADE_CLIENT_STATE_AS_STRING(TLG_ARCADE_CLIENT_STATE eValue)
|
||
|
||
SWITCH eValue
|
||
CASE TLG_ARCADE_CLIENT_STATE_INIT RETURN "TLG_ARCADE_CLIENT_STATE_INIT"
|
||
CASE TLG_ARCADE_CLIENT_STATE_REQUESTING_ASSETS RETURN "TLG_ARCADE_CLIENT_STATE_REQUESTING_ASSETS"
|
||
CASE TLG_ARCADE_CLIENT_STATE_FIB RETURN "TLG_ARCADE_CLIENT_STATE_FIB"
|
||
CASE TLG_ARCADE_CLIENT_STATE_INTRO RETURN "TLG_ARCADE_CLIENT_STATE_INTRO"
|
||
CASE TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN RETURN "TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN"
|
||
CASE TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU RETURN "TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU"
|
||
CASE TLG_ARCADE_CLIENT_STATE_INIT_LEVEL RETURN "TLG_ARCADE_CLIENT_STATE_INIT_LEVEL"
|
||
CASE TLG_ARCADE_CLIENT_STATE_PLAYING RETURN "TLG_ARCADE_CLIENT_STATE_PLAYING"
|
||
CASE TLG_ARCADE_CLIENT_STATE_RESULT_SCREEN RETURN "TLG_ARCADE_CLIENT_STATE_RESULT_SCREEN"
|
||
CASE TLG_ARCADE_CLIENT_STATE_OUTRO_MOVIE RETURN "TLG_ARCADE_CLIENT_STATE_OUTRO_MOVIE"
|
||
CASE TLG_ARCADE_CLIENT_STATE_VIEW_LEADERBOARD RETURN "TLG_ARCADE_CLIENT_STATE_VIEW_LEADERBOARD"
|
||
CASE TLG_ARCADE_CLIENT_STATE_EDIT_LEADERBOARD RETURN "TLG_ARCADE_CLIENT_STATE_EDIT_LEADERBOARD"
|
||
CASE TLG_ARCADE_CLIENT_STATE_CLEANUP RETURN "TLG_ARCADE_CLIENT_STATE_CLEANUP"
|
||
ENDSWITCH
|
||
|
||
RETURN "INVALID TLG_ARCADE_CLIENT_STATE"
|
||
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_ENEMY_STATE_AS_STRING(TLG_ENEMY_STATE eState)
|
||
/*
|
||
TLG_WAITING
|
||
TLG_ACTIVE
|
||
TLG_SHOOTING
|
||
TLG_DYING
|
||
TLG_INACTIVE
|
||
*/
|
||
|
||
SWITCH eState
|
||
CASE TLG_WAITING RETURN "TLG_WAITING"
|
||
CASE TLG_ACTIVE RETURN "TLG_ACTIVE"
|
||
CASE TLG_SHOOTING RETURN "TLG_SHOOTING"
|
||
CASE TLG_DYING RETURN "TLG_DYING"
|
||
CASE TLG_INACTIVE RETURN "TLG_INACTIVE"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_ENEMY_TYPE_AS_STRING(TLG_ENEMY_TYPES eType)
|
||
|
||
SWITCH eType
|
||
CASE TLG_ENEMY_1 RETURN "TLG_ENEMY_1"
|
||
CASE TLG_ENEMY_2 RETURN "TLG_ENEMY_2"
|
||
CASE TLG_ENEMY_3 RETURN "TLG_ENEMY_3"
|
||
CASE TLG_ENEMY_4 RETURN "TLG_ENEMY_4"
|
||
CASE TLG_ENEMY_5 RETURN "TLG_ENEMY_5"
|
||
CASE TLG_FOREGROUND_ENEMY_T1_1 RETURN "TLG_FOREGROUND_ENEMY_T1_1"
|
||
CASE TLG_FOREGROUND_ENEMY_T1_2 RETURN "TLG_FOREGROUND_ENEMY_T1_2"
|
||
CASE TLG_FOREGROUND_ENEMY_T1_3 RETURN "TLG_FOREGROUND_ENEMY_T1_3"
|
||
CASE TLG_FOREGROUND_ENEMY_T1_4 RETURN "TLG_FOREGROUND_ENEMY_T1_4"
|
||
CASE TLG_FOREGROUND_ENEMY_T1_5 RETURN "TLG_FOREGROUND_ENEMY_T1_5"
|
||
CASE TLG_FOREGROUND_ENEMY_T2_1 RETURN "TLG_FOREGROUND_ENEMY_T2_1"
|
||
CASE TLG_FOREGROUND_ENEMY_T2_2 RETURN "TLG_FOREGROUND_ENEMY_T2_2"
|
||
CASE TLG_FOREGROUND_ENEMY_T2_3 RETURN "TLG_FOREGROUND_ENEMY_T2_3"
|
||
CASE TLG_FOREGROUND_ENEMY_T2_4 RETURN "TLG_FOREGROUND_ENEMY_T2_4"
|
||
CASE TLG_FOREGROUND_ENEMY_T2_5 RETURN "TLG_FOREGROUND_ENEMY_T2_5"
|
||
CASE TLG_FOREGROUND_ENEMY_BEAR RETURN "TLG_FOREGROUND_ENEMY_BEAR"
|
||
CASE TLG_CART_1 RETURN "TLG_CART_1"
|
||
CASE TLG_THROWING_ENEMY_1 RETURN "TLG_THROWING_ENEMY_1"
|
||
CASE TLG_OUTHOUSE_ENEMY RETURN "TLG_OUTHOUSE_ENEMY"
|
||
CASE TLG_COFFIN_ENEMY RETURN "TLG_COFFIN_ENEMY"
|
||
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_ASSET_TYPE_AS_STRING(TLG_ASSET_TYPES eType)
|
||
SWITCH eType
|
||
CASE TLG_ASSET_INVALID RETURN "TLG_ASSET_INVALID"
|
||
CASE TLG_ASSET_OUTHOUSE RETURN "TLG_ASSET_OUTHOUSE"
|
||
CASE TLG_ASSET_CACTUS_1 RETURN "TLG_ASSET_CACTUS_1"
|
||
CASE TLG_ASSET_CACTUS_2 RETURN "TLG_ASSET_CACTUS_2"
|
||
CASE TLG_ASSET_CACTUS_3 RETURN "TLG_ASSET_CACTUS_3"
|
||
CASE TLG_ASSET_CACTUS_4 RETURN "TLG_ASSET_CACTUS_4"
|
||
CASE TLG_ASSET_CRATE_1 RETURN "TLG_ASSET_CRATE_1"
|
||
CASE TLG_ASSET_BUILDING_1 RETURN "TLG_ASSET_BUILDING_1"
|
||
CASE TLG_ASSET_BUILDING_2 RETURN "TLG_ASSET_BUILDING_2"
|
||
CASE TLG_ASSET_BUILDING_3 RETURN "TLG_ASSET_BUILDING_3"
|
||
CASE TLG_ASSET_BUILDING_4 RETURN "TLG_ASSET_BUILDING_4"
|
||
CASE TLG_ASSET_BUILDING_5 RETURN "TLG_ASSET_BUILDING_5"
|
||
CASE TLG_ASSET_BUILDING_6 RETURN "TLG_ASSET_BUILDING_6"
|
||
CASE TLG_ASSET_BUILDING_7 RETURN "TLG_ASSET_BUILDING_7"
|
||
CASE TLG_ASSET_BUILDING_8 RETURN "TLG_ASSET_BUILDING_8"
|
||
CASE TLG_ASSET_FENCE RETURN "TLG_ASSET_FENCE"
|
||
CASE TLG_ASSET_FENCE_SMALL RETURN "TLG_ASSET_FENCE_SMALl"
|
||
CASE TLG_ASSET_CACTUS_5 RETURN "TLG_ASSET_CACTUS_5"
|
||
CASE TLG_ASSET_CACTUS_6 RETURN "TLG_ASSET_CACTUS_6"
|
||
CASE TLG_ASSET_CACTUS_7 RETURN "TLG_ASSET_CACTUS_7"
|
||
CASE TLG_ASSET_CACTUS_8 RETURN "TLG_ASSET_CACTUS_8"
|
||
CASE TLG_ASSET_CACTUS_9 RETURN "TLG_ASSET_CACTUS_9"
|
||
CASE TLG_ASSET_CACTUS_10 RETURN "TLG_ASSET_CACTUS_10"
|
||
CASE TLG_ASSET_CACTUS_11 RETURN "TLG_ASSET_CACTUS_11"
|
||
CASE TLG_ASSET_FOREST_TREE_1 RETURN "TLG_ASSET_FOREST_TREE_1"
|
||
CASE TLG_ASSET_FOREST_TREE_2 RETURN "TLG_ASSET_FOREST_TREE_2"
|
||
CASE TLG_ASSET_GRASS RETURN "TLG_ASSET_GRASS"
|
||
CASE TLG_ASSET_BUSH_1 RETURN "TLG_ASSET_BUSH_1"
|
||
CASE TLG_ASSET_BUSH_2 RETURN "TLG_ASSET_BUSH_2"
|
||
CASE TLG_ASSET_ROCK_SMALL RETURN "TLG_ASSET_ROCK_SMALL"
|
||
CASE TLG_ASSET_ROCK_LARGE RETURN "TLG_ASSET_ROCK_LARGE"
|
||
CASE TLG_ASSET_STACKED_CRATES_1 RETURN "TLG_ASSET_STACKED_CRATES_1"
|
||
CASE TLG_ASSET_STACKED_CRATES_2 RETURN "TLG_ASSET_STACKED_CRATES_2"
|
||
CASE TLG_ASSET_BARRELS RETURN "TLG_ASSET_BARRELS"
|
||
CASE TLG_ASSET_BIG_TOMB RETURN "TLG_ASSET_BIG_TOMB"
|
||
CASE TLG_ASSET_TOMBSTONE_1 RETURN "TLG_ASSET_TOMBSTONE_1"
|
||
CASE TLG_ASSET_TOMBSTONE_2 RETURN "TLG_ASSET_TOMBSTONE_2"
|
||
CASE TLG_ASSET_TOMBSTONE_3 RETURN "TLG_ASSET_TOMBSTONE_3"
|
||
CASE TLG_ASSET_TOMBSTONE_4 RETURN "TLG_ASSET_TOMBSTONE_4"
|
||
CASE TLG_ASSET_TOMBSTONE_5 RETURN "TLG_ASSET_TOMBSTONE_5"
|
||
CASE TLG_ASSET_COFFIN RETURN "TLG_ASSET_COFFIN"
|
||
CASE TLG_ASSET_WATER_TOWER RETURN "TLG_ASSET_WATER_TOWER"
|
||
CASE TLG_ASSET_SPECIAL_TNT_CRATE RETURN "TLG_ASSET_SPECIAL_TNT_CRATE"
|
||
CASE TLG_ASSET_SPECIAL_TNT_BARREL_1 RETURN "TLG_ASSET_SPECIAL_TNT_BARREL_1"
|
||
CASE TLG_ASSET_SPECIAL_TNT_BARREL_2 RETURN "TLG_ASSET_SPECIAL_TNT_BARREL_2"
|
||
CASE TLG_ASSET_SPECIAL_OUTHOUSE_HOST RETURN "TLG_ASSET_SPECIAL_OUTHOUSE_HOST"
|
||
|
||
|
||
|
||
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_COLLECTIBLE_TYPE_AS_STRING(TLG_COLLECTIBLE_TYPES eType)
|
||
|
||
SWITCH eType
|
||
CASE TLG_HEALTH RETURN "TLG_HEALTH"
|
||
CASE TLG_SNAKE_OIL RETURN "TLG_SNAKE_OIL"
|
||
CASE TLG_SHERIFF RETURN "TLG_SHERIFF"
|
||
CASE TLG_GOLD_BARS RETURN "TLG_GOLD_BARS"
|
||
CASE TLG_REVOLVER_AMMO RETURN "TLG_REVOLVER_AMMO"
|
||
CASE TLG_MACHINE_GUN_AMMO RETURN "TLG_MACHINE_GUN_AMMO"
|
||
CASE TLG_SHOTGUN_AMMO RETURN "TLG_SHOTGUN_AMMO"
|
||
CASE TLG_RIFLE_AMMO RETURN "TLG_RIFLE_AMMO"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
FUNC STRING TLG_DEBUG_GET_TLG_PLAYER_PED_ANIM_STATE_AS_STRING(TLG_PLAYER_PED_ANIM_STATE eState)
|
||
SWITCH eState
|
||
CASE TLG_PLAYER_PED_ANIM_IDLE RETURN "TLG_PLAYER_PED_ANIM_IDLE"
|
||
CASE TLG_PLAYER_PED_ANIM_IDLE_TO_AIM RETURN "TLG_PLAYER_PED_ANIM_IDLE_TO_AIM"
|
||
CASE TLG_PLAYER_PED_ANIM_AIM_IDLE RETURN "TLG_PLAYER_PED_ANIM_AIM_IDLE"
|
||
CASE TLG_PLAYER_PED_ANIM_PLAY_IDLE RETURN "TLG_PLAYER_PED_ANIM_PLAY_IDLE"
|
||
CASE TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_LOSE_LIFE RETURN "TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_LOSE_LIFE"
|
||
CASE TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_COMPLETE_STAGE RETURN "TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_COMPLETE_STAGE"
|
||
CASE TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_COMPLETE_GAME RETURN "TLG_PLAYER_PED_ANIM_AIM_IDLE_TO_COMPLETE_GAME"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_SERVER_STATE_AS_STRING(INT iState)
|
||
SWITCH iState
|
||
CASE TLG_GAME_STATE_INIT RETURN "GAME_STATE_INIT"
|
||
CASE TLG_GAME_STATE_RUNNING RETURN "GAME_STATE_RUNNING"
|
||
CASE TLG_GAME_STATE_LEAVE RETURN "GAME_STATE_LEAVE"
|
||
CASE TLG_GAME_STATE_END RETURN "GAME_STATE_END"
|
||
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_SCORE_TYPE_AS_STRING(TLG_SCORE_TYPE score)
|
||
SWITCH score
|
||
CASE TLG_SCORE_TYPE_ENEMY RETURN "TLG_SCORE_TYPE_ENEMY"
|
||
CASE TLG_SCORE_TYPE_ENEMY_HEADSHOT RETURN "TLG_SCORE_TYPE_ENEMY_HEADSHOT"
|
||
CASE TLG_SCORE_TYPE_SCENERY RETURN "TLG_SCORE_TYPE_SCENERY"
|
||
CASE TLG_SCORE_TYPE_ENEMY_EXPLOSION RETURN "TLG_SCORE_TYPE_ENEMY_EXPLOSION"
|
||
CASE TLG_SCORE_TYPE_ANIMAL RETURN "TLG_SCORE_TYPE_ANIMAL"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_LEVEL_NAME_AS_STRING(TLG_LEVELS level)
|
||
|
||
SWITCH level
|
||
CASE TLG_LEVEL_DESERT RETURN "TLG_LEVEL_DESERT"
|
||
CASE TLG_LEVEL_TOWN RETURN "TLG_LEVEL_TOWN"
|
||
CASE TLG_LEVEL_FOREST RETURN "TLG_LEVEL_FOREST"
|
||
CASE TLG_LEVEL_MINE RETURN "TLG_LEVEL_MINE"
|
||
CASE TLG_LEVEL_GRAVEYARD RETURN "TLG_LEVEL_GRAVEYARD"
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_PLAYER_WEAPON_AS_STRING(TLG_PLAYER_WEAPON weapon)
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_NONE RETURN "TLG_PLAYER_WEAPON_NONE"
|
||
CASE TLG_PLAYER_WEAPON_PISTOL RETURN "TLG_PLAYER_WEAPON_PISTOL"
|
||
CASE TLG_PLAYER_WEAPON_GATLING RETURN "TLG_PLAYER_WEAPON_GATLING"
|
||
CASE TLG_PLAYER_WEAPON_SHOTGUN RETURN "TLG_PLAYER_WEAPON_SHOTGUN"
|
||
CASE TLG_PLAYER_WEAPON_RIFLE RETURN "TLG_PLAYER_WEAPON_RIFLE"
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_PLAYER_WEAPON_TYPE_AS_STRING(TLG_PLAYER_WEAPON_TYPE type)
|
||
SWITCH type
|
||
CASE TLG_PLAYER_WEAPON_TYPE_DEFAULT RETURN "TLG_PLAYER_WEAPON_TYPE_DEFAULT"
|
||
CASE TLG_PLAYER_WEAPON_TYPE_SPECIAL RETURN "TLG_PLAYER_WEAPON_TYPE_SPECIAL"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_HELP_TEXT_BIT_AS_STRING(TLG_HELP_TEXT_BITS eHelp)
|
||
SWITCH eHelp
|
||
CASE TLG_HELP_TEXT_BIT_SHOOT_AIM RETURN "TLG_HELP_TEXT_BIT_SHOOT_AIM"
|
||
CASE TLG_HELP_TEXT_BIT_RELOAD RETURN "TLG_HELP_TEXT_BIT_RELOAD"
|
||
CASE TLG_HELP_TEXT_BIT_HEADSHOT RETURN "TLG_HELP_TEXT_BIT_HEADSHOT"
|
||
CASE TLG_HELP_TEXT_BIT_CHAIN RETURN "TLG_HELP_TEXT_BIT_CHAIN"
|
||
CASE TLG_HELP_TEXT_BIT_CHEST RETURN "TLG_HELP_TEXT_BIT_CHEST"
|
||
CASE TLG_HELP_TEXT_BIT_AT_LEAST_ONE_HEADSHOT RETURN "TLG_HELP_TEXT_BIT_AT_LEAST_ONE_HEADSHOT"
|
||
CASE TLG_HELP_TEXT_BIT_SHARPSHOOTER_BRONZE RETURN "TLG_HELP_TEXT_BIT_SHARPSHOOTER_BRONZE"
|
||
CASE TLG_HELP_TEXT_BIT_SHARPSHOOTER_SILVER RETURN "TLG_HELP_TEXT_BIT_SHARPSHOOTER_SILVER"
|
||
CASE TLG_HELP_TEXT_BIT_SHARPSHOOTER_GOLD RETURN "TLG_HELP_TEXT_BIT_SHARPSHOOTER_GOLD"
|
||
CASE TLG_HELP_TEXT_BIT_SHARPSHOOTER_PLATINUM RETURN "TLG_HELP_TEXT_BIT_SHARPSHOOTER_PLATINUM"
|
||
CASE TLG_HELP_TEXT_BIT_PISTOLS_AT_DAWN RETURN "TLG_HELP_TEXT_BIT_PISTOLS_AT_DAWN"
|
||
CASE TLG_HELP_TEXT_BIT_DEADEYE RETURN "TLG_HELP_TEXT_BIT_DEADEYE"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_LEVELS_BIT_AS_STRING(TLG_LEVELS_BITSET eBit)
|
||
SWITCH eBit
|
||
CASE TLG_LEVELS_BIT_SHOULD_STOP RETURN "TLG_LEVELS_BIT_SHOULD_STOP"
|
||
CASE TLG_LEVELS_BIT_STOPPED RETURN "TLG_LEVELS_BIT_STOPPED"
|
||
CASE TLG_LEVELS_BIT_REPLAYING_LEVEL RETURN "TLG_LEVELS_BIT_REPLAYING_LEVEL"
|
||
CASE TLG_LEVELS_BIT_USED_SPECIAL_WEAPON RETURN "TLG_LEVELS_BIT_USED_SPECIAL_WEAPON"
|
||
CASE TLG_LEVELS_BIT_DONE_RESULTS_SCREEN_AUDIO RETURN "TLG_LEVELS_BIT_DONE_RESULTS_SCREEN_AUDIO"
|
||
CASE TLG_LEVELS_BIT_TOWN_LARGE_BUILDING_PASSED_BY1 RETURN "TLG_LEVELS_BIT_TOWN_LARGE_BUILDING_PASSED_BY1"
|
||
CASE TLG_LEVELS_BIT_DAMAGED_BY_BEAR RETURN "TLG_LEVELS_BIT_DAMAGED_BY_BEAR"
|
||
CASE TLG_LEVELS_BIT_ADDED_ON_ACCURACY_BONUS RETURN "TLG_LEVELS_BIT_ADDED_ON_ACCURACY_BONUS"
|
||
CASE TLG_LEVELS_BIT_ADDED_ON_HOSTAGE_BONUS RETURN "TLG_LEVELS_BIT_ADDED_ON_HOSTAGE_BONUS"
|
||
CASE TLG_LEVELS_BIT_PLAYED_DEATH_SCREEN_AUDIO RETURN "TLG_LEVELS_BIT_PLAYED_DEATH_SCREEN_AUDIO"
|
||
CASE TLG_LEVELS_BIT_PLAYED_RESULTS_DEAD_AUDIO RETURN "TLG_LEVELS_BIT_PLAYED_RESULTS_DEAD_AUDIO"
|
||
CASE TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO RETURN "TLG_LEVELS_BIT_PLAYED_HOSTAGE_SCORE_AUDIO"
|
||
CASE TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO RETURN "TLG_LEVELS_BIT_PLAYED_ACCURACY_SCORE_AUDIO"
|
||
CASE TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO RETURN "TLG_LEVELS_BIT_PLAYED_RESULTS_SCORE_AUDIO"
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_PLAYER_BIT_AS_STRING(TLG_PLAYER_BITSET eBit)
|
||
SWITCH eBit
|
||
CASE TLG_PLAYER_BIT_INVULNERABILE RETURN "TLG_PLAYER_BIT_INVULNERABILE"
|
||
CASE TLG_PLAYER_BIT_HIDE_RETICULE RETURN "TLG_PLAYER_BIT_HIDE_RETICULE"
|
||
CASE TLG_PLAYER_BIT_INIT_NEW_CHAIN RETURN "TLG_PLAYER_BIT_INIT_NEW_CHAIN"
|
||
CASE TLG_PLAYER_BIT_GATLING_OVERHEAT RETURN "TLG_PLAYER_BIT_GATLING_OVERHEAT"
|
||
CASE TLG_PLAYER_BIT_GATLING_STOPPED_SHOOTING RETURN "TLG_PLAYER_BIT_GATLING_STOPPED_SHOOTING"
|
||
CASE TLG_PLAYER_BIT_RELOADED_FIRST_BULLET RETURN "TLG_PLAYER_BIT_RELOADED_FIRST_BULLET"
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_HOSTAGE_BIT_AS_STRING(TLG_HOSTAGE_BITSET eBit)
|
||
SWITCH eBit
|
||
CASE TLG_HOSTAGE_BIT_APPEARED_ONSCREEN RETURN "TLG_HOSTAGE_BIT_APPEARED_ONSCREEN"
|
||
CASE TLG_HOSTAGE_BIT_SAVED RETURN "TLG_HOSTAGE_BIT_SAVED"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_ENEMY_THROWN_PROJECTILE_TYPE_AS_STRING(TLG_ENEMY_PROJECTILE_TYPES eType)
|
||
SWITCH eType
|
||
CASE TLG_ENEMY_PROJECTILE_DYNAMITE RETURN "TLG_ENEMY_PROJECTILE_DYNAMITE"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWKN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_ENEMY_THROWN_PROJECTILE_STATE_AS_STRING(TLG_ENEMY_PROJECTILE_STATE eState)
|
||
SWITCH eState
|
||
CASE TLG_ENEMY_PROJECTILE_STATE_INACTIVE RETURN "TLG_ENEMY_PROJECTILE_STATE_INACTIVE"
|
||
CASE TLG_ENEMY_PROJECTILE_STATE_AIRBORNE RETURN "TLG_ENEMY_PROJECTILE_STATE_AIRBORNE"
|
||
CASE TLG_ENEMY_PROJECTILE_STATE_EXPLODE RETURN "TLG_ENEMY_PROJECTILE_STATE_EXPLODE"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_DAMAGE_PLAYER_TYPE_AS_STRING(TLG_DAMAGE_PLAYER_TYPES eType)
|
||
SWITCH eType
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_BULLET RETURN "TLG_DAMAGE_PLAYER_TYPE_BULLET"
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_DYNAMITE RETURN "TLG_DAMAGE_PLAYER_TYPE_DYNAMITE"
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_BEAR RETURN "TLG_DAMAGE_PLAYER_TYPE_BEAR"
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_SNAKE_OIL RETURN "TLG_DAMAGE_PLAYER_TYPE_SNAKE_OIL"
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
|
||
FUNC STRING TLG_GET_HOSTAGE_TYPE_AS_STRING(TLG_CIVILIAN_TYPES eHostage)
|
||
SWITCH eHostage
|
||
CASE TLG_GIRL RETURN "TLG_GIRL"
|
||
CASE TLG_GUY RETURN "TLG_GU,"
|
||
CASE TLG_PRISONER_1 RETURN "TLG_PRISONER_1"
|
||
CASE TLG_PRISONER_2 RETURN "TLG_PRISONER_2"
|
||
CASE TLG_PRISONER_3 RETURN "TLG_PRISONER_3"
|
||
CASE TLG_VULTURE RETURN "TLG_VULTURE,"
|
||
CASE TLG_EAGLE RETURN "TLG_EAGLE"
|
||
CASE TLG_BAT RETURN "TLG_BAT"
|
||
CASE TLG_MOUSE RETURN "TLG_MOUSE"
|
||
CASE TLG_SCORPION RETURN "TLG_SCORPION"
|
||
ENDSWITCH
|
||
|
||
RETURN "Unknown"
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_FX_TYPE_AS_STRING(TLG_FX_TYPE eType)
|
||
SWITCH eType
|
||
CASE TLG_FX_EXPLOSION RETURN "TLG_FX_EXPLOSION"
|
||
CASE TLG_FX_ENEMY_SHOT RETURN "TLG_FX_ENEMY_SHOT"
|
||
CASE TLG_FX_IMPACT RETURN "TLG_FX_IMPACT"
|
||
CASE TLG_FX_ENEMY_TNT_EXP RETURN "TLG_FX_ENEMY_TNT_EXP"
|
||
CASE TLG_FX_LOOT_CRATE RETURN "TLG_FX_LOOT_CRATE"
|
||
CASE TLG_FX_FEATHERS RETURN "TLG_FX_FEATHERS"
|
||
|
||
ENDSWITCH
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
#ENDIF
|
||
|
||
STRUCT TLG_COVER_DATA
|
||
|
||
BOOL bRendering = FALSE
|
||
BOOL bSpawnedPickup = FALSE
|
||
BOOL bIsSpecialCover = FALSE
|
||
BOOL bIsAnimated = FALSE
|
||
// BOOL bRenderAfterWarp = FALSE
|
||
INT iRenderAfterWarpCount
|
||
INT iWarpCount
|
||
BOOL bNeverRender = FALSE
|
||
INT iCoverLane
|
||
INT iHitCount
|
||
|
||
INT iDefaultFrameTimeCounter
|
||
INT iDefaultUpdateFrames
|
||
|
||
INT iSlowFrameTimeCounter
|
||
INT iSlowUpdateFrames
|
||
|
||
INT iSpriteAnimFrame
|
||
|
||
TLG_ASSET_TYPES eType
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSpriteInitialPos
|
||
FLOAT fCoverWidth
|
||
FLOAT fCoverHeight
|
||
|
||
INT iActiveInStage
|
||
INT iScreen
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT ENEMY_PROJECTILE_DATA
|
||
INT iSlowFrameTimeCounter
|
||
INT iSlowUpdateFrames
|
||
INT iSpriteAnimFrame
|
||
|
||
INT iLane
|
||
|
||
TLG_ENEMY_PROJECTILE_STATE eState
|
||
TLG_ENEMY_PROJECTILE_TYPES eType
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSpriteSize
|
||
ENDSTRUCT
|
||
|
||
STRUCT BULLET_DATA
|
||
|
||
BOOL bShot
|
||
BOOL bHit
|
||
BOOL bHitObject
|
||
BOOL bPlayedAudio
|
||
INT iSpriteBlastAnimFrame
|
||
INT iSlowFrameTimeCounter
|
||
INT iSlowUpdateFrames
|
||
INT iTimeOfHit
|
||
|
||
VECTOR_2D vSpritePos
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_FX_DATA
|
||
|
||
BOOL bActive = FALSE
|
||
|
||
INT iSpriteBlastAnimFrame
|
||
INT iSlowFrameTimeCounter
|
||
INT iSlowUpdateFrames
|
||
INT iLane = 0
|
||
|
||
TLG_FX_TYPE eFXType
|
||
|
||
VECTOR_2D vSpritePos
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_EQUIPPED_WEAPON_DATA
|
||
INT iAmmoInClip
|
||
INT iTotalAmmo
|
||
INT iLastShotTime
|
||
INT iReloadSingleBulletTime
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_PLAYER_DATA
|
||
|
||
BOOL bHasJustShot
|
||
BOOL bCovering
|
||
BOOL bHoveringEnemy
|
||
BOOL bShouldShowReloadPrompt
|
||
INT iProjectileIndex
|
||
INT iLastShotTime
|
||
INT iLastProjectileTime = 0
|
||
INT iGatlingOverheatTime = 0
|
||
INT iDeadTime = 0
|
||
INT iReloadPromptShowTime = 0
|
||
BOOL bDoneReloadEffect
|
||
TLG_PLAYER_WEAPON_TYPE weaponType = TLG_PLAYER_WEAPON_TYPE_DEFAULT
|
||
TLG_PLAYER_WEAPON specialWeapon = TLG_PLAYER_WEAPON_NONE
|
||
TLG_EQUIPPED_WEAPON_DATA weaponData[TLG_PLAYER_WEAPON_TYPE_MAX]
|
||
BOOL bIsReloading[TLG_PLAYER_WEAPON_TYPE_MAX]
|
||
// INT iAmmo = ciTLG_PLAYER_START_AMMO
|
||
// INT iWeapon = 0
|
||
INT iHitCountdown
|
||
INT iSuccessiveHits
|
||
INT iChainedScore
|
||
INT iScoreNoChain
|
||
INT iPreviousTargetScore
|
||
INT iPlayerBitset
|
||
INT iInvulnerableTimer
|
||
INT iHideReticuleTimer
|
||
INT iNoAmmoTimer
|
||
FLOAT fRotation
|
||
FLOAT fHealth = 1.0
|
||
FLOAT fGatlingGunTemp = 0.0
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSpriteMarkerPos
|
||
|
||
BULLET_DATA sBulletData[ciTLG_MAX_PROJECTILES]
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_ENEMY_DATA
|
||
|
||
BOOL bReverse
|
||
BOOL bIsPopup
|
||
BOOL bPlayedAimAudio
|
||
BOOL bPlayedCriticalWarningAudio
|
||
BOOL bWaitUntilLevelStationary
|
||
BOOL bShotAtLeastOnce
|
||
BOOL bThrownProjectile
|
||
BOOL bOuthouseAudio
|
||
BOOL bAppearedOnscreen
|
||
TLG_ENEMY_TYPES iEnemyType = 0
|
||
TLG_ENEMY_STATE eState = TLG_INACTIVE
|
||
|
||
INT iJumpDistance
|
||
|
||
INT iDefaultFrameTimeCounter
|
||
INT iDefaultUpdateFrames
|
||
|
||
INT iSlowFrameTimeCounter
|
||
INT iSlowUpdateFrames
|
||
|
||
INT iSpriteAnimFrame
|
||
|
||
INT iHealth = 10
|
||
INT iEnemyFlashTimer
|
||
INT iTimeOfLastShot
|
||
INT iPopUpTime
|
||
INT iEnemyLane
|
||
INT iLevelStage
|
||
INT iWarpedForMovingLevelCount
|
||
INT iRenderAfterWarpedCount = 0
|
||
INT iOnScreenTime
|
||
FLOAT fStoppingX = 500.0
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vStartPos
|
||
VECTOR_2D vSize
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_HOSTAGE_DATA
|
||
|
||
BOOL bSpawned = FALSE
|
||
BOOL bRendering = FALSE
|
||
BOOL bDying = FALSE
|
||
BOOL bGoingBack = FALSE
|
||
|
||
INT iJumpDistance
|
||
|
||
INT iDefaultFrameTimeCounter
|
||
INT iDefaultUpdateFrames
|
||
|
||
INT iSlowFrameTimeCounter
|
||
INT iSlowUpdateFrames
|
||
|
||
INT iSpriteAnimFrame
|
||
|
||
INT iHealth = 10
|
||
TLG_CIVILIAN_TYPES eHostageType = TLG_GIRL
|
||
|
||
INT iHostageLane = 0
|
||
INT iBitset
|
||
FLOAT fStoppingX = 500.0
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSize
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_COLLECTIBLE_DATA
|
||
|
||
BOOL bSpawned = FALSE
|
||
BOOL bRendering = FALSE
|
||
BOOL bShot = FALSE
|
||
|
||
TLG_COLLECTIBLE_TYPES eItemType = TLG_HEALTH
|
||
|
||
INT iLane = 0
|
||
INT iRenderAfterWarpCount
|
||
INT iWarpCount
|
||
INT iMinActiveStage
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSize
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_MENU_OPTION_DATA
|
||
|
||
TLG_ARCADE_CLIENT_STATE eClientState = TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN
|
||
|
||
TLG_MENU_OPTIONS eMenuOption
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSize
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_BACKGROUND_SPRITE
|
||
|
||
BOOL bRendering = FALSE
|
||
|
||
VECTOR_2D vSpritePos
|
||
VECTOR_2D vSpriteSize
|
||
|
||
STRING sSprite
|
||
|
||
INT iLane
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_PLAYER_WEAPON_DATA
|
||
INT iClipSize
|
||
INT iMaxAmmo
|
||
INT iMaxEnemyImpacts
|
||
INT iMinTimeBetweenShots
|
||
INT iMinTimeReloadSingleBullet
|
||
INT iMinDamagePerShot
|
||
FLOAT fSpreadModifier
|
||
ENDSTRUCT
|
||
|
||
STRUCT ARCADE_GAMES_LEADERBOARD_STRUCT
|
||
|
||
INT iInitials = 0
|
||
INT iScore = -1
|
||
INT iPlayer = -1
|
||
|
||
ENDSTRUCT
|
||
|
||
STRUCT ARCADE_GAMES_LEADERBOARD_DATA
|
||
ARCADE_GAMES_LEADERBOARD_STRUCT sLeaderboard[ciCASINO_ARCADE_LEADERBOARD_POSITIONS]
|
||
CASINO_ARCADE_GAME eGame
|
||
|
||
BOOL bLeaderboardReceived
|
||
BOOL bEditing = FALSE
|
||
BOOL bCheated = FALSE
|
||
|
||
INT iLastLeaderboardRequest = -HIGHEST_INT
|
||
INT iLocalLbdPos = -1
|
||
INT iCurrentInitial = 0
|
||
INT iInitials = 0
|
||
INT iLbdInitialProfanityToken = 0
|
||
INT iTickTimer = 0
|
||
INT iMylastLbScore
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
BOOL bForceDefaultLeaderboard
|
||
BOOL bDebugTestServerSort
|
||
#ENDIF
|
||
ENDSTRUCT
|
||
|
||
STRUCT TLG_ARCADE_DATA
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
WIDGET_GROUP_ID widgetGroupExample
|
||
BOOL bDebugCreatedWidgets
|
||
INT iMyScores[TLG_MAX_LEVELS]
|
||
|
||
FLOAT fTexturePosX[3]
|
||
FLOAT fTexturePosY[3]
|
||
FLOAT fTextureScale[3]
|
||
FLOAT fDebugEntityCornerX[2]
|
||
FLOAT fDebugEntityCornerY[2]
|
||
// FLOAT fDebugEntityWorldSpaceX
|
||
// FLOAT fDebugEntityWorldSpaceY
|
||
FLOAT fDebugReticuleEntityTLDiffX
|
||
FLOAT fDebugReticuleEntityTLDiffY
|
||
FLOAT fDebugEntityWorldX
|
||
FLOAT fDebugEntityWorldY
|
||
FLOAT fDebugEntityScale
|
||
// FLOAT fDebugStickX
|
||
// FLOAT fDebugStickY
|
||
// FLOAT fDebugMouseX
|
||
// FLOAT fDebugMouseY
|
||
FLOAT fReticuleSpriteDist
|
||
FLOAT fEntityStoppingX
|
||
FLOAT fDebugFloatValue
|
||
INT iDebugTotalStages
|
||
INT iDebugAnimFrame
|
||
INT iDebugIntegerValue
|
||
INT iStaggeredDebugCount
|
||
INT iDebugEntityId
|
||
INT iDebugEntityState
|
||
INT iDebugLane
|
||
INT iDebugType
|
||
INT iDebugCoverScreen
|
||
INT iDebugEnemiesRemaining
|
||
INT iEntityEdit
|
||
INT iDebugPickupScreen
|
||
INT iDebugTimer
|
||
INT iDebugCover
|
||
INT iDebugForegroundEnemy
|
||
INT iDebugMiddleEnemy
|
||
INT iDebugBackgroundEnemy
|
||
INT iDebugFrameCount
|
||
INT iDebugSharpShooter
|
||
FLOAT fDebugTotalFrameTime
|
||
BOOL bDebugEnablePickup
|
||
BOOL bDebugOutputAliveEnemies
|
||
BOOL bStopMovingLevel
|
||
BOOL bDisableFacade
|
||
BOOL bEnableCoverHover
|
||
BOOL bEnableEnemyHover
|
||
BOOL bDebugShiftPropsLeft
|
||
BOOL bDebugShiftPropsRight
|
||
BOOL bDebugHideForegroundProps
|
||
BOOL bDebugEnableEdit
|
||
BOOL bDebugInitEdit
|
||
BOOL bDebugAwardDeadeye
|
||
BOOL bDebugAwardSharpshooter
|
||
BOOL bDebugAwardSetSharpshooter
|
||
BOOL bDebugAwardPistols
|
||
BOOL bDebugAwardComplete
|
||
BOOL bDebugAwardTrophy
|
||
BOOL bClearAwardStats
|
||
BOOL bDebugLaunchDynamite
|
||
BOOL bDebugClearDynamite
|
||
TEXT_WIDGET_ID twDebugId
|
||
#ENDIF
|
||
|
||
BOOL bFadingOut = FALSE
|
||
BOOL bLevelsCompleted[TLG_MAX_LEVELS]
|
||
|
||
INT iLastMenuInput = 0
|
||
INT iExplosionIndex = 0
|
||
INT iCurrentActiveEnemies[ciTLG_MAX_LANES]
|
||
INT iTimeSinceEnemyActive[ciTLG_MAX_LANES]
|
||
INT iFade = 0
|
||
|
||
INT iNumberOfBackgroundElements = 0
|
||
INT iNumberOfEnemies = 0
|
||
INT iNumberOfThrownEnemyProjectiles = 0
|
||
INT iNumberOfHostages = 0
|
||
INT iNumberOfProps = 0
|
||
INT iNumberOfItems = 0
|
||
INT iNumberOfMenuOptions = 0
|
||
|
||
INT iLocalLevelRunningTime
|
||
INT iResultsScreenTimer
|
||
INT iTotalTimePlayed
|
||
INT iTimer
|
||
INT iRivalPart
|
||
|
||
INT iStaggeredOnScreenViableCoverCount
|
||
|
||
INT iHelpTextBitset = 0
|
||
INT iLevelBitset[TLG_MAX_LEVELS]
|
||
INT iLevelCurrentStage[TLG_MAX_LEVELS]
|
||
INT iTotalLevelShots[TLG_MAX_LEVELS]
|
||
INT iTotalLevelEnemyHits[TLG_MAX_LEVELS]
|
||
INT iTotalLevelEnemyHeadShots[TLG_MAX_LEVELS]
|
||
INT iTotalLevelBirdsShot[TLG_MAX_LEVELS]
|
||
INT iTotalLevelHostagesSaved[TLG_MAX_LEVELS]
|
||
INT iTotalPowerupsCollected[TLG_MAX_LEVELS]
|
||
INT iChallengesBitsetForTelemetry
|
||
|
||
INT iScreenToStopOn
|
||
INT iLastScreenToStopOn
|
||
INT iRightMostCover
|
||
FLOAT fRightMostCoverX
|
||
INT iCurrentScreen
|
||
INT iPropToStopOn[ciTLG_MAX_SCREENS]
|
||
|
||
|
||
INT iNumberOfViableOnScreenCoverPoints
|
||
INT iViableOnScreenEnemyCoverPoints[ciTLG_MAX_SUITABLE_HIDE_BEHIND_COVER]
|
||
TLG_ARCADE_CLIENT_STATE eClientState
|
||
|
||
RGBA_COLOUR_STRUCT rgbaBlack
|
||
RGBA_COLOUR_STRUCT rgbaSprite
|
||
RGBA_COLOUR_STRUCT rgbaWhite
|
||
RGBA_COLOUR_STRUCT rgbaRed
|
||
RGBA_COLOUR_STRUCT rgbaEnemyShot
|
||
RGBA_COLOUR_STRUCT rgbaGreen
|
||
RGBA_COLOUR_STRUCT rgbaSpriteUsedBullet
|
||
RGBA_COLOUR_STRUCT rgbaYellow
|
||
|
||
TLG_LEVELS eCurrentLevel = TLG_LEVEL_TOWN
|
||
TLG_LEVEL_STAGE eLevelStage = TLG_FADING_IN
|
||
// TLG_MENU_OPTIONS eCurrentTitleOption = TLG_START
|
||
|
||
TLG_PLAYER_DATA sPlayerData[ciTLG_MAX_PLAYERS]
|
||
TLG_COVER_DATA sCoverData[ciTLG_MAX_COVER]
|
||
TLG_FX_DATA sFXData[ciTLG_MAX_FX]
|
||
TLG_BACKGROUND_SPRITE sBackgroundTilesData[ciTLG_MAX_BACKGROUND_TILES]
|
||
TLG_BACKGROUND_SPRITE sBackgroundData[ciTLG_MAX_BACKGROUND_ELEMS]
|
||
TLG_ENEMY_DATA sEnemyData[CITLG_MAX_ENEMIES]
|
||
TLG_HOSTAGE_DATA sHostageData[ciTLG_MAX_HOSTAGES]
|
||
TLG_COLLECTIBLE_DATA sItemData[ciTLG_MAX_ITEMS]
|
||
ENEMY_PROJECTILE_DATA sEnemyProjectiles[ciTLG_MAX_ENEMY_PROJECTILES]
|
||
TLG_MENU_OPTION_DATA sMenuOptionsData[ciTLG_MAX_MENU_OPTIONS]
|
||
|
||
SCRIPT_CONTROL_HOLD_TIMER sControlTimer
|
||
SCRIPT_CONTROL_HOLD_TIMER sPcQuitTimer
|
||
|
||
ARCADE_CABINET_ANIM_EVENT_STRUCT sArcadeAnimData
|
||
BOOL bDoneReactionAnim
|
||
TLG_PLAYER_PED_ANIM_STATE ePlayerPedAnimState = TLG_PLAYER_PED_ANIM_IDLE
|
||
|
||
INT iBearAttackTime
|
||
INT iIdleAnimCount
|
||
BOOL bPlayedWinningAnim
|
||
BOOL bWonTrophyThisSession
|
||
|
||
BOOL bPlayedOutroAudio
|
||
BOOL bPlayedOutro
|
||
BINK_MOVIE_ID bmIdTlgIntro
|
||
BINK_MOVIE_ID bmIdTlgOutro
|
||
|
||
INT iResultsScreenTimeout
|
||
INT iReturnToMenuTimeout
|
||
INT iMusicBitset
|
||
INT iSoundId[TLG_AUDIO_EFFECT_MAX]
|
||
|
||
//INT iEffectFlashDurationTimer
|
||
//FLOAT fTotalTimeTaken
|
||
INT iEffectFlashAlpha
|
||
FLOAT fEffectFlashAlpha
|
||
BOOL bEffectHitmaxAlpha
|
||
|
||
FLOAT fCurrentTimeStep
|
||
ARCADE_GAMES_LEADERBOARD_DATA sLbData
|
||
|
||
TEXT_LABEL_31 tl31BaseTextDict
|
||
TEXT_LABEL_31 tl31TitleTextDict
|
||
TEXT_LABEL_31 tl31HudTextDict
|
||
TEXT_LABEL_31 tl31FacadeTextDict
|
||
TEXT_LABEL_31 tl31LevelSelectTextDict
|
||
TEXT_LABEL_31 tl31LevelCompTextDict
|
||
TEXT_LABEL_31 tl31Level1TextDict
|
||
TEXT_LABEL_31 tl31Level2TextDict
|
||
TEXT_LABEL_31 tl31Level3TextDict
|
||
TEXT_LABEL_31 tl31Level4TextDict
|
||
TEXT_LABEL_31 tl31Level5TextDict
|
||
TEXT_LABEL_31 tl31EnemiesTextDict
|
||
|
||
TEXT_LABEL_31 tl31ForegroundEnemiesATextDict
|
||
TEXT_LABEL_31 tl31ForegroundEnemiesBTextDict
|
||
TEXT_LABEL_31 tl31ForegroundEnemiesCTextDict
|
||
TEXT_LABEL_31 tl31GameplayCommonTextDict
|
||
TEXT_LABEL_31 tl31HostagesTextDict
|
||
|
||
TEXT_LABEL_31 tl31ResultsTextDict
|
||
TEXT_LABEL_31 tl31LeaderboardTextDict
|
||
TEXT_LABEL_31 tl31CommonPropsTextDict
|
||
TEXT_LABEL_31 tl31DeadTextDict
|
||
ENDSTRUCT
|
||
|
||
TLG_ARCADE_DATA sTLGData
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
FUNC VECTOR_2D GET_DEBUG_TEXTURE_POS(INT iDebugTexture)
|
||
RETURN INIT_VECTOR_2D(sTLGData.fTexturePosX[iDebugTexture], sTLGData.fTexturePosY[iDebugTexture])
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT GET_DEBUG_TEXTURE_SCALE(INT iDebugTexture)
|
||
RETURN sTLGData.fTextureScale[iDebugTexture]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_DEBUG_INTEGER()
|
||
RETURN sTLGData.iDebugIntegerValue
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_DEBUG_FLOAT()
|
||
RETURN sTLGData.fDebugFloatValue
|
||
ENDFUNC
|
||
#ENDIF
|
||
|
||
STRUCT TLG_PART_DATA
|
||
INT iHiScoreForLevel[TLG_MAX_LEVELS]
|
||
INT iCurrentScoreForLevel[TLG_MAX_LEVELS]
|
||
ENDSTRUCT
|
||
|
||
// Everyone can read this data, only the server can update it.
|
||
STRUCT TLG_SERVER_BROADCAST_DATA
|
||
INT iServerGameState
|
||
INT iNumPlayers
|
||
INT iServerBitset
|
||
INT iMatchId
|
||
INT iSortLbForPart
|
||
TLG_PART_DATA sPlayerScores[2]
|
||
ARCADE_GAMES_LEADERBOARD_STRUCT sLeaderboard[ciCASINO_ARCADE_LEADERBOARD_POSITIONS]
|
||
BOOL bLeaderboardRecieved = FALSE
|
||
ENDSTRUCT
|
||
|
||
TLG_SERVER_BROADCAST_DATA tlgServerBd
|
||
|
||
CONST_INT ciTLG_MAX_MP_PLAYERS 2
|
||
|
||
|
||
ENUM TLG_PLAYER_BD_BITS
|
||
TLG_PLAYER_BD_BIT_EDITING_LEADERBOARD = 0
|
||
ENDENUM
|
||
|
||
STRUCT TLG_PLAYER_BROADCAST_DATA
|
||
INT iGameState
|
||
INT iPlayerBitset
|
||
INT iPlayerScore[TLG_MAX_LEVELS]
|
||
INT iPlayerHiScore[TLG_MAX_LEVELS]
|
||
INT iLeaderboardInitials
|
||
INT iLeaderboardScore = 0
|
||
ENDSTRUCT
|
||
|
||
TLG_PLAYER_BROADCAST_DATA playerBd[2]
|
||
|
||
|
||
ENUM TLG_SERVER_BITS
|
||
TLG_SERVER_BIT_TWO_PLAYERS_JOINED = 0,
|
||
TLG_SERVER_BIT_SOMEONE_EDITING_LEADERBOARD,
|
||
TLG_SERVER_BIT_SORTED_LEADERBOARD
|
||
ENDENUM
|
||
|
||
PROC TLG_INIT_TEXTURE_DICTIONARIES()
|
||
sTLGData.tl31BaseTextDict = "MPLastGunslingers"
|
||
sTLGData.tl31TitleTextDict = "MPLastGunslingersTitle"
|
||
sTLGData.tl31HudTextDict = "MPLastGunslingersHud"
|
||
sTLGData.tl31FacadeTextDict = "MPLastGunslingersFacade"
|
||
sTLGData.tl31LevelSelectTextDict = "MPLastGunslingersLevels"
|
||
sTLGData.tl31LevelCompTextDict = "MPLastGunslingersLevelsComp"
|
||
sTLGData.tl31Level1TextDict = "MPLastGunslingersLevel1"
|
||
sTLGData.tl31Level2TextDict = "MPLastGunslingersLevel2"
|
||
sTLGData.tl31Level3TextDict = "MPLastGunslingersLevel3"
|
||
sTLGData.tl31Level4TextDict = "MPLastGunslingersLevel4"
|
||
sTLGData.tl31Level5TextDict = "MPLastGunslingersLevel5"
|
||
sTLGData.tl31EnemiesTextDict = "MPLastGunslingersEnemy"
|
||
sTLGData.tl31ForegroundEnemiesATextDict = "MPLastGunslingersEnemyFGA"
|
||
sTLGData.tl31ForegroundEnemiesBTextDict = "MPLastGunslingersEnemyFGB"
|
||
sTLGData.tl31ForegroundEnemiesCTextDict = "MPLastGunslingersEnemyFGC"
|
||
sTLGData.tl31GameplayCommonTextDict = "MPLastGunslingersCommon"
|
||
sTLGData.tl31HostagesTextDict = "MPLastGunslingersHost"
|
||
sTLGData.tl31CommonPropsTextDict = "MPLastGunslingersProps"
|
||
sTLGData.tl31ResultsTextDict = "MPLastGunslingersResult"
|
||
sTLGData.tl31DeadTextDict = "MPLastGunslingersDead"
|
||
ENDPROC
|
||
|
||
FUNC TEXT_LABEL_31 TLG_GET_BASE_TEXTURE_DIC()
|
||
RETURN sTLGData.tl31BaseTextDict
|
||
ENDFUNC
|
||
|
||
FUNC TLG_MUSIC_EVENTS TLG_GET_MUSIC_EVENT_FOR_LEVEL(TLG_LEVELS eLevel)
|
||
SWITCH eLevel
|
||
CASE TLG_LEVEL_DESERT RETURN TLG_MUSIC_EVENT_GOSPEL
|
||
CASE TLG_LEVEL_TOWN RETURN TLG_MUSIC_EVENT_BUCKLE
|
||
CASE TLG_LEVEL_FOREST RETURN TLG_MUSIC_EVENT_HILLBILLY
|
||
CASE TLG_LEVEL_MINE RETURN TLG_MUSIC_EVENT_RUCKUS
|
||
CASE TLG_LEVEL_GRAVEYARD RETURN TLG_MUSIC_EVENT_BARREL
|
||
ENDSWITCH
|
||
|
||
RETURN TLG_MUSIC_EVENT_INVALID
|
||
ENDFUNC
|
||
|
||
FUNC STRING TLG_GET_MUSIC_EVENT_FROM_ENUM(TLG_MUSIC_EVENTS eEvent)
|
||
SWITCH eEvent
|
||
CASE TLG_MUSIC_EVENT_INTRO RETURN "ARCADE_BR_INTRO_OS"
|
||
CASE TLG_MUSIC_EVENT_TITLE RETURN "ARCADE_BR_TITLE_CARD"
|
||
CASE TLG_MUSIC_EVENT_GOSPEL RETURN "ARCADE_BR_TRACK_1"
|
||
CASE TLG_MUSIC_EVENT_BUCKLE RETURN "ARCADE_BR_TRACK_2"
|
||
CASE TLG_MUSIC_EVENT_HILLBILLY RETURN "ARCADE_BR_TRACK_4"
|
||
CASE TLG_MUSIC_EVENT_RUCKUS RETURN "ARCADE_BR_TRACK_6"
|
||
CASE TLG_MUSIC_EVENT_BARREL RETURN "ARCADE_BR_TRACK_9"
|
||
CASE TLG_MUSIC_EVENT_STOP RETURN "ARCADE_BADLANDS_REVENGE_STOP"
|
||
CASE TLG_MUSIC_EVENT_DEATH RETURN "ARCADE_BR_DEATH"
|
||
ENDSWITCH
|
||
|
||
RETURN "UNKNOWN"
|
||
ENDFUNC
|
||
|
||
PROC TLG_TRIGGER_MUSIC_EVENT(TLG_MUSIC_EVENTS eEvent)
|
||
|
||
TEXT_LABEL_31 tl31MusicEvent = TLG_GET_MUSIC_EVENT_FROM_ENUM(eEvent)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_TRIGGER_MUSIC_EVENT] {DSW} Event: ", tl31MusicEvent)
|
||
TRIGGER_MUSIC_EVENT(tl31MusicEvent)
|
||
ENDPROC
|
||
|
||
PROC TLG_PREPARE_MUSIC_EVENT(TLG_MUSIC_EVENTS eEvent)
|
||
|
||
TEXT_LABEL_31 tl31MusicEvent = TLG_GET_MUSIC_EVENT_FROM_ENUM(eEvent)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_PREPARE_MUSIC_EVENT] {DSW} Event: ", tl31MusicEvent)
|
||
PREPARE_MUSIC_EVENT(tl31MusicEvent)
|
||
ENDPROC
|
||
|
||
PROC TLG_CANCEL_MUSIC_EVENT(TLG_MUSIC_EVENTS eEvent)
|
||
|
||
TEXT_LABEL_31 tl31MusicEvent = TLG_GET_MUSIC_EVENT_FROM_ENUM(eEvent)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_CANCEL_MUSIC_EVENT] {DSW} Event: ", tl31MusicEvent)
|
||
CANCEL_MUSIC_EVENT(tl31MusicEvent)
|
||
ENDPROC
|
||
//PROC TLG_CANCEL_MUSIC_EVENT(TLG_MUSIC_EVENTS eEvent)
|
||
// TEXT_LABEL_31 tl31MusicEvent = TLG_GET_MUSIC_EVENT_FROM_ENUM(eEvent)
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_PREPARE_MUSIC_EVENT] {DSW} Event: ", tl31MusicEvent)
|
||
// PREPARE_MUSIC_EVENT(tl31MusicEvent)
|
||
//ENDPROC
|
||
|
||
PROC TLG_GET_AUDIO_STRINGS_FROM_ENUM(TLG_AUDIO_EFFECT eSound, TEXT_LABEL_31 &tl31SoundName, TEXT_LABEL_63 &tl63BankName)
|
||
|
||
SWITCH eSound
|
||
CASE TLG_AUDIO_EFFECT_GET_READY tl31SoundName = "VO_Get_Ready" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_DRAW tl31SoundName = "VO_Draw" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SELECT_STAGE tl31SoundName = "Select_stage" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RELOAD tl31SoundName = "VO_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_STAGE_LOCKED tl31SoundName = "Select_Stage_Failed" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_MENU_BACK tl31SoundName = "Menu_Back" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_MISS tl31SoundName = "Shoot_Miss" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_OPTION tl31SoundName = "Shoot_Option" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_START tl31SoundName = "Press_Start" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RESULTS_SCORE_UPDATE tl31SoundName = "Calculate_Score_Total" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_GENERIC tl31SoundName = "Hit_Generic" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_BODY tl31SoundName = "Hit_Body" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_BARREL tl31SoundName = "Hit_Barrel" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_LATRINE tl31SoundName = "Hit_Latrine" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_COFFIN tl31SoundName = "Hit_Coffin" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_BUSH tl31SoundName = "Hit_Bush" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_CACTUS tl31SoundName = "Hit_Cactus" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_ROCK tl31SoundName = "Hit_Rock" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BULLET_HIT_FART tl31SoundName = "Hit_Latrine_Fart" tl63BankName = "DLC_H3_ArcMac_BR2_Bullet_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_SWAP_WEAPON tl31SoundName = "Weapon_Change" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_REVOLVER_FIRE tl31SoundName = "Revolver_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_REVOLVER_COCKED tl31SoundName = "Revolver_Cock" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_REVOLVER_EMPTY tl31SoundName = "Revolver_Dry_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
// CASE TLG_AUDIO_EFFECT_REVOLVER_RELOAD tl31SoundName = "Revolver_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_REVOLVER_RELOAD_FIRST tl31SoundName = "Revolver_Reload_First" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_REVOLVER_RELOAD_SINGLE tl31SoundName = "Revolver_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_REVOLVER_RELOAD_LAST tl31SoundName = "Revolver_Reload_Last" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_RIFLE_FIRE tl31SoundName = "Rifle_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RIFLE_COCKED tl31SoundName = "Rifle_Cock" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RIFLE_EMPTY tl31SoundName = "Rifle_Dry_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
// CASE TLG_AUDIO_EFFECT_RIFLE_RELOAD tl31SoundName = "Rifle_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RIFLE_RELOAD_FIRST tl31SoundName = "Rifle_Reload_First" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RIFLE_RELOAD_SINGLE tl31SoundName = "Rifle_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RIFLE_RELOAD_LAST tl31SoundName = "Rifle_Reload_Last" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_SHOTGUN_FIRE tl31SoundName = "Shotgun_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SHOTGUN_COCKED tl31SoundName = "Shotgun_Cock" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SHOTGUN_EMPTY tl31SoundName = "Shotgun_Dry_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
// CASE TLG_AUDIO_EFFECT_SHOTGUN_RELOAD tl31SoundName = "Shotgun_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_FIRST tl31SoundName = "Shotgun_Reload_First" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_SINGLE tl31SoundName = "Shotgun_Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_LAST tl31SoundName = "Shotgun_Reload_Last" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_GATLING_OVERHEAT tl31SoundName = "Gatling_Overheat" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SHOOT_GATLING_OVERHEAT tl31SoundName = "Gatling_Dry_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_GATLING_FIRE tl31SoundName = "Gatling" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_HEALTH_DEAD tl31SoundName = "Death" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_HEALTH_VERY_LOW tl31SoundName = "Pain_Near_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_HEALTH_LOW tl31SoundName = "Pain_High" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_HEALTH_MEDIUM tl31SoundName = "Pain_Med" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_HEALTH_HIGH tl31SoundName = "Pain_Low" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_ENEMY_DEAD tl31SoundName = "Death" tl63BankName = "DLC_H3_ArcMac_BR2_Enemy_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_ENEMY_INJURED tl31SoundName = "Pain" tl63BankName = "DLC_H3_ArcMac_BR2_Enemy_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_ENEMY_RIFLE_AIM tl31SoundName = "Rifle_Aim" tl63BankName = "DLC_H3_ArcMac_BR2_Enemy_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_ENEMY_RIFLE_FIRE tl31SoundName = "Rifle_Fire" tl63BankName = "DLC_H3_ArcMac_BR2_Enemy_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_ENEMY_CRIT_WARNING tl31SoundName = "Critical_Hit_Warn" tl63BankName = "DLC_H3_ArcMac_BR2_Enemy_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_ENEMY_THROW_DYNAMITE tl31SoundName = "Dynamite_Throw" tl63BankName = "DLC_H3_ArcMac_BR2_Enemy_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_EXP_CART tl31SoundName = "Cart" tl63BankName = "DLC_H3_ArcMac_BR2_Explosion_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_EXP_GENERIC tl31SoundName = "Generic" tl63BankName = "DLC_H3_ArcMac_BR2_Explosion_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_EXP_DYNAMITE tl31SoundName = "Dynamite" tl63BankName = "DLC_H3_ArcMac_BR2_Explosion_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_HELP tl31SoundName = "Female_Help" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_DEATH tl31SoundName = "Female_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_ESCAPE tl31SoundName = "Female_Escape" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_PAIN tl31SoundName = "Female_Pain" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_MALE_HELP tl31SoundName = "Male_Help" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_MALE_DEATH tl31SoundName = "Male_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_MALE_ESCAPE tl31SoundName = "Male_Escape" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_MALE_PAIN tl31SoundName = "Male_Pain" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_HELP tl31SoundName = "Male_Help" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_DEATH tl31SoundName = "Male_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_ESCAPE tl31SoundName = "Male_Escape" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_HOSTAGE_CHAINGANG_PAIN tl31SoundName = "Male_Pain" tl63BankName = "DLC_H3_ArcMac_BR2_Hostage_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_BAT_APPEAR tl31SoundName = "Bat_Appear" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BAT_DEATH tl31SoundName = "Bat_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BEAR_APPEAR tl31SoundName = "Bear_Appear" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BEAR_DEATH tl31SoundName = "Bear_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_BEAR_ATTACK tl31SoundName = "Bear_Attack" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_EAGLE_APPEAR tl31SoundName = "Eagle_Appear" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_EAGLE_DEATH tl31SoundName = "Eagle_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RAT_APPEAR tl31SoundName = "Rat_Appear" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_RAT_DEATH tl31SoundName = "Rat_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SCORPION_APPEAR tl31SoundName = "Scorpion_Appear" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_SCORPION_DEATH tl31SoundName = "Scorpion_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_VULTURE_APPEAR tl31SoundName = "Vulture_Appear" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_VULTURE_DEATH tl31SoundName = "Vulture_Death" tl63BankName = "DLC_H3_ArcMac_BR2_Animal_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_PICKUP_HEALTH tl31SoundName = "Medicine" tl63BankName = "DLC_H3_ArcMac_BR2_Pickup_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PICKUP_SNAKE_OIL tl31SoundName = "Snake_Oil" tl63BankName = "DLC_H3_ArcMac_BR2_Pickup_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PICKUP_SHERIFF tl31SoundName = "Sheriff_Badge" tl63BankName = "DLC_H3_ArcMac_BR2_Pickup_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PICKUP_RUN_OUT tl31SoundName = "Run_Out" tl63BankName = "DLC_H3_ArcMac_BR2_Pickup_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_START tl31SoundName = "Start_Game" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL1_GOSPEL_GANGSTERS tl31SoundName = "Level_Select_Gospel_Gangsters" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL2_BUCKLE_BUNNIES tl31SoundName = "Level_Select_Buckle_Bunnies" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL3_HILLBILLY_HOODLUMS tl31SoundName = "Level_Select_Hillbilly_Hoodlums" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL4_RUCKUS_RANGERS tl31SoundName = "Level_Select_Ruckus_Rangers" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_CHOOSE_LVL5_BARREL_FEVER_BOYS tl31SoundName = "Level_Select_Barrel_Fever_Boys" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_RELOAD tl31SoundName = "Reload" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SHOOT_OUTHOUSE tl31SoundName = "Shoot_Outhouse" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SHOOT_COFFIN tl31SoundName = "Shoot_Coffin" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SHOOT_HEADSHOT tl31SoundName = "Headshot" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL tl31SoundName = "Shoot_Critter" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_AWARD_PISTOLS tl31SoundName = "Award_Pistols_At_Dawn" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_AWARD_SHARPHSOOTER tl31SoundName = "Award_Sharpshooter" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_AWARD_DEADEYE tl31SoundName = "Award_Deadeye" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SCORE_BAD tl31SoundName = "Level_Complete_Bad" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SCORE_AVERAGE tl31SoundName = "Level_Complete_Average" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SCORE_GOOD tl31SoundName = "Level_Complete_Good" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SCORE_AMAZING tl31SoundName = "Level_Complete_Amazing" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_GATLING_GUN tl31SoundName = "Weapon_Select_Gatlinggun" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_SHOTGUN tl31SoundName = "Weapon_Select_Shotgun" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_RIFLE tl31SoundName = "Weapon_Select_Rifle" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_NEW_GUN tl31SoundName = "Get_New_Gun" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_COMPLETE_LEVEL tl31SoundName = "Beat_Level" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_DEATH tl31SoundName = "Death" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_RESULTS_DEAD tl31SoundName = "Dead_Text" tl63BankName = "DLC_H3_ArcMac_BR2_Frontend_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_PLAYER_FINISH_GAME tl31SoundName = "Finish_Game" tl63BankName = "DLC_H3_ArcMac_BR2_Player_Speech_Sounds" BREAK
|
||
|
||
CASE TLG_AUDIO_EFFECT_POWERUP tl31SoundName = "Powerup_Loop" tl63BankName = "DLC_H3_ArcMac_BR2_Pickup_Sounds" BREAK
|
||
CASE TLG_AUDIO_EFFECT_POWERDOWN tl31SoundName = "Powerdown_Loop" tl63BankName = "DLC_H3_ArcMac_BR2_Pickup_Sounds" BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
|
||
ENDPROC
|
||
|
||
FUNC BOOL TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT effect)
|
||
IF sTLGDATA.iSoundId[effect] = -1
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
RETURN HAS_SOUND_FINISHED(sTLGDATA.iSoundId[effect])
|
||
ENDFUNC
|
||
|
||
//PROC TLG_PLAY_SOUND_FRONT_END(TLG_AUDIO_EFFECT effect)
|
||
// TEXT_LABEL_23 tl23Sound
|
||
// TEXT_LABEL_63 tl63Bank
|
||
// TLG_GET_AUDIO_STRINGS_FROM_ENUM(effect,tl23Sound, tl63Bank)
|
||
//
|
||
// #IF IS_DEBUG_BUILD
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PLAY_SOUND_FRONT_END] Sound: ", tl23Sound, " Bank: ",tl63Bank)
|
||
// DEBUG_PRINTCALLSTACK()
|
||
// #ENDIF
|
||
//
|
||
// IF sTLGDATA.iSoundId[effect] = -1
|
||
// sTLGDATA.iSoundId[effect] = GET_SOUND_ID()
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PLAY_SOUND_FRONT_END] Got sound ID")
|
||
// ENDIF
|
||
//
|
||
// PLAY_SOUND_FRONTEND(sTLGDATA.iSoundId[effect], tl23Sound, tl63Bank, FALSE)
|
||
// SET_VARIABLE_ON_SOUND(sTLGDATA.iSoundId[effect],"Screen_Position",0.5)
|
||
//ENDPROC
|
||
|
||
PROC TLG_PLAY_SOUND(TLG_AUDIO_EFFECT effect, VECTOR_2D v2Pos)
|
||
TEXT_LABEL_31 tl31Sound
|
||
TEXT_LABEL_63 tl63Bank
|
||
TLG_GET_AUDIO_STRINGS_FROM_ENUM(effect,tl31Sound, tl63Bank)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PLAY_SOUND_AND_RELEASE] Sound: ", tl31Sound, " Bank: ",tl63Bank)
|
||
DEBUG_PRINTCALLSTACK()
|
||
#ENDIF
|
||
|
||
IF sTLGDATA.iSoundId[effect] = -1
|
||
sTLGDATA.iSoundId[effect] = GET_SOUND_ID()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PLAY_SOUND_AND_RELEASE] Got sound ID")
|
||
ENDIF
|
||
|
||
PLAY_SOUND_FRONTEND(sTLGDATA.iSoundId[effect], tl31Sound, tl63Bank, FALSE)
|
||
|
||
|
||
IF v2Pos.x != 0.0
|
||
VECTOR_2D v2Screen = ARCADE_CABINET_CONVERT_TO_VECTOR_2D_TO_SCREENSPACE(v2Pos)
|
||
SET_VARIABLE_ON_SOUND(sTLGDATA.iSoundId[effect],"Screen_Position",v2Screen.x)
|
||
ELSE
|
||
SET_VARIABLE_ON_SOUND(sTLGDATA.iSoundId[effect],"Screen_Position",0.5)
|
||
ENDIF
|
||
|
||
ENDPROC
|
||
|
||
PROC TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT effect, VECTOR_2D v2Pos)
|
||
TEXT_LABEL_31 tl31Sound
|
||
TEXT_LABEL_63 tl63Bank
|
||
TLG_GET_AUDIO_STRINGS_FROM_ENUM(effect,tl31Sound, tl63Bank)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PLAY_SOUND_AND_RELEASE] Sound: ", tl31Sound, " Bank: ",tl63Bank)
|
||
DEBUG_PRINTCALLSTACK()
|
||
#ENDIF
|
||
|
||
IF sTLGDATA.iSoundId[effect] = -1
|
||
sTLGDATA.iSoundId[effect] = GET_SOUND_ID()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PLAY_SOUND_AND_RELEASE] Got sound ID")
|
||
ENDIF
|
||
|
||
PLAY_SOUND_FRONTEND(sTLGDATA.iSoundId[effect], tl31Sound, tl63Bank, FALSE)
|
||
|
||
|
||
IF v2Pos.x != 0.0
|
||
VECTOR_2D v2Screen = ARCADE_CABINET_CONVERT_TO_VECTOR_2D_TO_SCREENSPACE(v2Pos)
|
||
SET_VARIABLE_ON_SOUND(sTLGDATA.iSoundId[effect],"Screen_Position",v2Screen.x)
|
||
ELSE
|
||
SET_VARIABLE_ON_SOUND(sTLGDATA.iSoundId[effect],"Screen_Position",0.5)
|
||
ENDIF
|
||
RELEASE_SOUND_ID(sTLGDATA.iSoundId[effect])
|
||
sTLGDATA.iSoundId[effect] = -1
|
||
ENDPROC
|
||
|
||
PROC TLG_PLAY_SOUND_NO_POSITION(TLG_AUDIO_EFFECT effect)
|
||
TLG_PLAY_SOUND(effect, INIT_VECTOR_2D(0.0, 0.0))
|
||
ENDPROC
|
||
|
||
PROC TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT effect)
|
||
TLG_PLAY_SOUND_AND_RELEASE(effect, INIT_VECTOR_2D(0.0, 0.0))
|
||
ENDPROC
|
||
|
||
PROC TLG_STOP_SOUND(TLG_AUDIO_EFFECT effect)
|
||
STOP_SOUND(sTLGDATA.iSoundId[effect])
|
||
RELEASE_SOUND_ID(sTLGDATA.iSoundId[effect])
|
||
sTLGDATA.iSoundId[effect] = -1
|
||
ENDPROC
|
||
|
||
PROC TLG_PLAY_HOSTAGE_DEAD_AUDIO(TLG_CIVILIAN_TYPES eHostage, VECTOR_2D v2Pos)
|
||
SWITCH eHostage
|
||
CASE TLG_GIRL
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_DEATH, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_GUY
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_HOSTAGE_MALE_DEATH, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_EAGLE
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_EAGLE_DEATH, v2Pos)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL)
|
||
BREAK
|
||
|
||
CASE TLG_BAT
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_BAT_DEATH, v2Pos)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL)
|
||
BREAK
|
||
|
||
CASE TLG_MOUSE
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_RAT_DEATH, v2Pos)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL)
|
||
BREAK
|
||
|
||
CASE TLG_SCORPION
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_SCORPION_DEATH, v2Pos)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL)
|
||
BREAK
|
||
|
||
CASE TLG_VULTURE
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_VULTURE_DEATH, v2Pos)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_SHOOT_ANIMAL)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
PROC TLG_PLAY_HOSTAGE_HELP_AUDIO(TLG_CIVILIAN_TYPES eHostage, VECTOR_2D v2Pos)
|
||
SWITCH eHostage
|
||
CASE TLG_GIRL
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_HELP, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_GUY
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_HOSTAGE_MALE_HELP, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_EAGLE
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_EAGLE_APPEAR, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_BAT
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_BAT_APPEAR, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_MOUSE
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_RAT_APPEAR, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_SCORPION
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_SCORPION_APPEAR, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_VULTURE
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_VULTURE_APPEAR, v2Pos)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
PROC TLG_PLAY_HOSTAGE_ESCAPE_AUDIO(TLG_CIVILIAN_TYPES eHostage, VECTOR_2D v2Pos)
|
||
SWITCH eHostage
|
||
CASE TLG_GIRL
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_HOSTAGE_FEMALE_ESCAPE, v2Pos)
|
||
BREAK
|
||
|
||
CASE TLG_GUY
|
||
TLG_PLAY_SOUND_AND_RELEASE(TLG_AUDIO_EFFECT_HOSTAGE_MALE_ESCAPE, v2Pos)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
|
||
PROC TLG_HANDLE_LEVEL_INTRO_AUDIO()
|
||
//-- Replaced with level select dialogue
|
||
|
||
// IF sTLGData.iSoundId[TLG_AUDIO_EFFECT_DRAW] = -1
|
||
// IF TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_GET_READY)
|
||
// IF sTLGData.iDrawAudioTimer = 0
|
||
// sTLGData.iDrawAudioTimer = GET_GAME_TIMER()
|
||
// ELIF GET_GAME_TIMER() - sTLGData.iDrawAudioTimer > 250
|
||
// TLG_PLAY_SOUND_NO_POSITION(TLG_AUDIO_EFFECT_DRAW)
|
||
// ENDIF
|
||
// ENDIF
|
||
// ENDIF
|
||
ENDPROC
|
||
|
||
FUNC BOOL TLG_HAVE_ALL_PLAYER_DAMAGE_AUDIO_EFFECTS_FINISHED()
|
||
RETURN (TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_PLAYER_HEALTH_VERY_LOW)
|
||
AND TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_PLAYER_HEALTH_LOW)
|
||
AND TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_PLAYER_HEALTH_MEDIUM)
|
||
AND TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_PLAYER_HEALTH_HIGH))
|
||
ENDFUNC
|
||
|
||
PROC TLG_PLAY_PLAYER_TAKE_DAMAGE_AUDIO(FLOAT fNewHealth)
|
||
IF fNewHealth <= 0.0
|
||
EXIT
|
||
ENDIF
|
||
|
||
IF TLG_HAVE_ALL_PLAYER_DAMAGE_AUDIO_EFFECTS_FINISHED()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_PLAY_PLAYER_TAKE_DAMAGE_AUDIO] {DSW} fNewHealth: ", fNewHealth)
|
||
|
||
IF fNewHealth >= 0.8
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_HEALTH_HIGH)
|
||
ELIF fNewHealth >= 0.5
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_HEALTH_MEDIUM)
|
||
ELIF fNewHealth >= 0.2
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_HEALTH_LOW)
|
||
ELIF fNewHealth > 0.0
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_HEALTH_VERY_LOW)
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_PLAY_PLAYER_TAKE_DAMAGE_AUDIO] {DSW} Not playing as previous not finished. fNewHealth: ", fNewHealth)
|
||
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_SET_CURRENT_TIMESTEP()
|
||
sTLGData.fCurrentTimeStep = (TO_FLOAT(ciBASE_FPS) / (1.0 / GET_FRAME_TIME()))
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_SET_CURRENT_TIMESTEP] fCurrentTimeStep: ", sTLGData.fCurrentTimeStep)
|
||
ENDPROC
|
||
|
||
FUNC FLOAT TLG_GET_DEFAULT_TIMESTEP()
|
||
RETURN sTLGData.fCurrentTimeStep
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_DET_DEFAULT_UPDATE()
|
||
RETURN cfTLG_DEFAULT_PIXEL_UPDATE * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_OUTHOUSE_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_SHOOTING_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_DYING_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_WAITING_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_HOSTAGE_DYING_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_FX_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_PROJECTILE_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_BACKGROUND_TILE_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ITEM_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_CUSTOM_FAST_NEAR_BACKGROUND_ELEMENT_UPDATE()
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_COVER_UPDATE()
|
||
// FLOAT fDist = 4.0 * (30.0 / (1.0 / GET_FRAME_TIME()))
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_GET_COVER_UPDATE] Update: ", fDist)
|
||
RETURN TLG_DET_DEFAULT_UPDATE()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_HOSTAGE_UPDATE()
|
||
RETURN 6.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_CLOUD_UPDATE()
|
||
RETURN 1.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_BACKGROUND_ELEMENT_UPDATE()
|
||
RETURN 2.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_CUSTOM_SLOW_NEAR_BACKGROUND_ELEMENT_UPDATE()
|
||
RETURN 2.5 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_DEFAULT_NEAR_BACKGROUND_ELEMENT_UPDATE()
|
||
RETURN 3.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_COVER_FOREGROUND_UPDATE()
|
||
RETURN 12.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_FOREGROUND_UPDATE(BOOL bReverse)
|
||
IF bReverse
|
||
RETURN 6.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDIF
|
||
|
||
RETURN 10.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_MIDDLE_UPDATE(BOOL bReverse)
|
||
IF bReverse
|
||
RETURN 11.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDIF
|
||
|
||
RETURN 15.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_BACKGROUND_UPDATE(BOOL bReverse)
|
||
IF bReverse
|
||
RETURN 16.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDIF
|
||
|
||
RETURN 20.0 * TLG_GET_DEFAULT_TIMESTEP()
|
||
ENDFUNC
|
||
|
||
|
||
|
||
FUNC TLG_PLAYER_WEAPON GET_PLAYER_DEFAULT_WEAPON()
|
||
RETURN TLG_PLAYER_WEAPON_PISTOL
|
||
ENDFUNC
|
||
|
||
FUNC TLG_PLAYER_WEAPON TLG_GET_PLAYER_SPECIAL_WEAPON()
|
||
RETURN sTLGData.sPlayerData[0].specialWeapon
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_DOES_PLAYER_HAVE_SPECIAL_WEAPON()
|
||
RETURN TLG_GET_PLAYER_SPECIAL_WEAPON() != TLG_PLAYER_WEAPON_NONE
|
||
ENDFUNC
|
||
|
||
FUNC TLG_PLAYER_WEAPON TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
IF TLG_DOES_PLAYER_HAVE_SPECIAL_WEAPON()
|
||
RETURN TLG_GET_PLAYER_SPECIAL_WEAPON()
|
||
ENDIF
|
||
|
||
RETURN GET_PLAYER_DEFAULT_WEAPON()
|
||
ENDFUNC
|
||
|
||
PROC TLG_HANDLE_PLAYER_SHOOTING_AUDIO()
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_PISTOL
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_REVOLVER_FIRE)
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_RIFLE
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RIFLE_FIRE)
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_SHOTGUN
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SHOTGUN_FIRE)
|
||
BREAK
|
||
|
||
|
||
CASE TLG_PLAYER_WEAPON_GATLING
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_GATLING_FIRE)
|
||
BREAK
|
||
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
PROC TLG_HANDLE_PLAYER_WEAPON_COCKED_AUDIO()
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_PISTOL
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_REVOLVER_COCKED)
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_RIFLE
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RIFLE_COCKED)
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_SHOTGUN
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SHOTGUN_COCKED)
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
PROC TLG_HANDLE_PLAYER_FIRING_EMPTY_WEAPON_AUDIO()
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_PISTOL
|
||
IF TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_REVOLVER_EMPTY)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_REVOLVER_EMPTY)
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_RIFLE
|
||
IF TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_RIFLE_EMPTY)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RIFLE_EMPTY)
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_SHOTGUN
|
||
IF TLG_HAS_SOUND_FINISHED(TLG_AUDIO_EFFECT_SHOTGUN_EMPTY)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SHOTGUN_EMPTY)
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
PROC TLG_HANDLE_PLAYER_RELOADING_WEAPON_AUDIO(BOOL bIsFirst, BOOL bIsSingle, BOOL bIsLast)
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_HANDLE_PLAYER_RELOADING_WEAPON_AUDIO] Weapon: ", TLG_GET_PLAYER_WEAPON_AS_STRING(weapon), " bIsFirst: ", bIsFirst, " bIsSingle: ", bIsSingle, " bIsLast: ", bIsLast)
|
||
#ENDIF
|
||
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_PISTOL
|
||
IF bIsFirst
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_REVOLVER_RELOAD_FIRST)
|
||
ELIF bIsSingle
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_REVOLVER_RELOAD_SINGLE)
|
||
ELIF bIsLast
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_REVOLVER_RELOAD_LAST)
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_RIFLE
|
||
IF bIsFirst
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RIFLE_RELOAD_FIRST)
|
||
ELIF bIsSingle
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RIFLE_RELOAD_SINGLE)
|
||
ELIF bIsLast
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RIFLE_RELOAD_LAST)
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_SHOTGUN
|
||
IF bIsFirst
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_FIRST)
|
||
ELIF bIsSingle
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_SINGLE)
|
||
ELIF bIsLast
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SHOTGUN_RELOAD_LAST)
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
PROC TLG_INIT_COLOUR_STRUCTS()
|
||
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaBlack, 0, 0, 0, 255)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaRed, 255, 50, 0, 155)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaEnemyShot, 255, 0, 0, 255)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaSprite, 255, 255, 255, 255)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaWhite, 255, 255, 255, 255)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaGreen, 0, 255,0, 255)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaYellow, 255, 255,0, 255)
|
||
INIT_RGBA_STRUCT(sTLGData.rgbaSpriteUsedBullet, 255, 255, 255, 50)
|
||
|
||
ENDPROC
|
||
|
||
|
||
|
||
// Items
|
||
PROC TLG_ADD_MENU_OPTION_TO_LIST(VECTOR_2D vPos, VECTOR_2D vSize, TLG_MENU_OPTIONS eOption, TLG_ARCADE_CLIENT_STATE eScreen)
|
||
|
||
sTLGData.sMenuOptionsData[sTLGData.iNumberOfMenuOptions].vSpritePos = vPos
|
||
sTLGData.sMenuOptionsData[sTLGData.iNumberOfMenuOptions].vSize = vSize
|
||
sTLGData.sMenuOptionsData[sTLGData.iNumberOfMenuOptions].eMenuOption = eOption
|
||
sTLGData.sMenuOptionsData[sTLGData.iNumberOfMenuOptions].eClientState = eScreen
|
||
|
||
sTLGData.iNumberOfMenuOptions ++
|
||
|
||
ENDPROC
|
||
|
||
PROC TLG_INIT_MENU_OPTIONS()
|
||
|
||
TLG_ADD_MENU_OPTION_TO_LIST(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, (cfBASE_SCREEN_HEIGHT/6*4) + 80), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_START_WIDTH, cfTLG_SPRITE_HUD_START_HEIGHT), TLG_START, TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN)
|
||
TLG_ADD_MENU_OPTION_TO_LIST(INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2, (cfBASE_SCREEN_HEIGHT/6*4) + 150), INIT_VECTOR_2D(cfTLG_SPRITE_HUD_LEADERBOARDS_WIDTH, cfTLG_SPRITE_HUD_LEADERBOARDS_HEIGHT), TLG_SCORES, TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN)
|
||
|
||
FLOAT fFactor = 0.65
|
||
TLG_ADD_MENU_OPTION_TO_LIST(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), TLG_WANTED_1, TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU)
|
||
TLG_ADD_MENU_OPTION_TO_LIST(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), TLG_WANTED_2, TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU)
|
||
TLG_ADD_MENU_OPTION_TO_LIST(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), TLG_WANTED_3, TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU)
|
||
TLG_ADD_MENU_OPTION_TO_LIST(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), TLG_WANTED_4, TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU)
|
||
TLG_ADD_MENU_OPTION_TO_LIST(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), TLG_WANTED_5, TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU)
|
||
|
||
|
||
ENDPROC
|
||
|
||
PROC TLG_INIT_MENU()
|
||
|
||
TLG_INIT_MENU_OPTIONS()
|
||
sTLGData.eCurrentLevel = TLG_LEVEL_DESERT
|
||
sTLGData.sPlayerData[0].vSpriteMarkerPos = INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/3, cfBASE_SCREEN_HEIGHT/3)
|
||
|
||
sTLGData.sControlTimer.control = FRONTEND_CONTROL
|
||
sTLGData.sControlTimer.action = INPUT_FRONTEND_CANCEL //INPUT_SCRIPT_RRIGHT
|
||
|
||
sTLGData.sPcQuitTimer.control = FRONTEND_CONTROL
|
||
sTLGData.sPcQuitTimer.action = INPUT_FRONTEND_DELETE
|
||
|
||
ENDPROC
|
||
|
||
|
||
|
||
PROC TLG_SET_PLAYER_NO_CHAIN_SCORE(INT iValue)
|
||
sTLGData.sPlayerData[0].iScoreNoChain = iValue
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SET_PLAYER_NO_CHAIN_SCORE] Value: ", iValue)
|
||
ENDPROC
|
||
|
||
|
||
PROC TLG_RESET_PLAYER_CHAINED_SCORE()
|
||
sTLGData.sPlayerData[0].iChainedScore = 0
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_RESET_PLAYER_CHAINED_SCORE] Called")
|
||
|
||
ENDPROC
|
||
|
||
|
||
|
||
FUNC INT TLG_GET_PLAYER_NO_CHAIN_SCORE()
|
||
RETURN sTLGData.sPlayerData[0].iScoreNoChain
|
||
ENDFUNC
|
||
|
||
PROC TLG_SET_PREVIOUS_TARGET_SCORE(INT iValue)
|
||
sTLGData.sPlayerData[0].iPreviousTargetScore = iValue
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SET_PREVIOUS_TARGET_SCORE] Value: ", iValue)
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_PREVIOUS_TARGET_SCORE()
|
||
RETURN sTLGData.sPlayerData[0].iPreviousTargetScore
|
||
ENDFUNC
|
||
|
||
|
||
FUNC TLG_LEVELS TLG_GET_CURRENT_LEVEL()
|
||
RETURN sTLGData.eCurrentLevel
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_CURRENT_LEVEL_AS_INT()
|
||
RETURN ENUM_TO_INT(TLG_GET_CURRENT_LEVEL())
|
||
ENDFUNC
|
||
|
||
PROC TLG_RESET_PLAYER_SUCCESSIVE_HITS()
|
||
sTLGData.sPlayerData[0].iSuccessiveHits = 0
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_RESET_PLAYER_SUCCESSIVE_HITS] Called")
|
||
TLG_RESET_PLAYER_CHAINED_SCORE()
|
||
TLG_SET_PLAYER_NO_CHAIN_SCORE(playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[TLG_GET_CURRENT_LEVEL_AS_INT()])
|
||
ENDPROC
|
||
|
||
PROC TLG_INIT_PLAYERS()
|
||
|
||
sTLGData.sPlayerData[0].vSpritePos = INIT_VECTOR_2D(200, 860)
|
||
sTLGData.sPlayerData[0].vSpriteMarkerPos = INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2.0, cfBASE_SCREEN_HEIGHT/2.0) // INIT_VECTOR_2D(300, 500)
|
||
sTLGData.sPlayerData[0].iPlayerBitset = 0
|
||
sTLGData.sPlayerData[0].iInvulnerableTimer = 0
|
||
sTLGData.sPlayerData[0].iHideReticuleTimer = 0
|
||
sTLGData.sPlayerData[0].iGatlingOverheatTime = 0
|
||
sTLGData.sPlayerData[0].iDeadTime = 0
|
||
sTLGData.sPlayerData[0].iNoAmmoTimer = 0
|
||
TLG_RESET_PLAYER_SUCCESSIVE_HITS()
|
||
|
||
|
||
ENDPROC
|
||
|
||
|
||
|
||
/// PURPOSE:
|
||
/// Different scores (Hi-score, current score, rival's score) are different colours. Need to construct the texture name
|
||
/// PARAMS:
|
||
/// iInsertValue - The integer value represented by the texture
|
||
/// RETURNS:
|
||
///
|
||
FUNC TEXT_LABEL_63 TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(TLG_SCORE_INTEGER_TYPE type, INT iInsertValue)
|
||
TEXT_LABEL_63 tlTextureName
|
||
tlTextureName = "SCORE_TEXT_"
|
||
tlTextureName += iInsertValue
|
||
|
||
SWITCH type
|
||
CASE TLG_SCORE_INTEGER_TYPE_HI_SCORE tlTextureName += "_WHITE" BREAK
|
||
CASE TLG_SCORE_INTEGER_TYPE_BLUE_SCORE tlTextureName += "_BLUE" BREAK
|
||
CASE TLG_SCORE_INTEGER_TYPE_MY_SCORE tlTextureName += "_YELLOW" BREAK
|
||
CASE TLG_SCORE_INTEGER_TYPE_RED_SCORE tlTextureName += "_RED" BREAK
|
||
ENDSWITCH
|
||
|
||
|
||
RETURN tlTextureName
|
||
ENDFUNC
|
||
|
||
FUNC TEXT_LABEL_63 TLG_GET_PERCENTAGE_SIGN_TEXTURE_FOR_SCORE_TYPE(TLG_SCORE_INTEGER_TYPE type)
|
||
TEXT_LABEL_63 tlTextureName
|
||
|
||
|
||
SWITCH type
|
||
|
||
CASE TLG_SCORE_INTEGER_TYPE_BLUE_SCORE tlTextureName = "SCORE_TEXT_PERCENTAGE_BLUE" BREAK
|
||
CASE TLG_SCORE_INTEGER_TYPE_RED_SCORE tlTextureName = "SCORE_TEXT_PERCENTAGE_RED" BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
|
||
RETURN tlTextureName
|
||
ENDFUNC
|
||
FUNC TEXT_LABEL_63 TLG_GET_CROSS_CHAR_TEXTURE_FOR_SCORE_TYPE(TLG_SCORE_INTEGER_TYPE type)
|
||
TEXT_LABEL_63 tlTextureName
|
||
|
||
|
||
SWITCH type
|
||
|
||
CASE TLG_SCORE_INTEGER_TYPE_BLUE_SCORE tlTextureName = "SCORE_TEXT_X_BLUE" BREAK
|
||
CASE TLG_SCORE_INTEGER_TYPE_RED_SCORE tlTextureName = "SCORE_TEXT_X_RED" BREAK
|
||
|
||
ENDSWITCH
|
||
|
||
|
||
RETURN tlTextureName
|
||
ENDFUNC
|
||
|
||
PROC TLG_DRAW_DOLLAR_SYMBOL(STRING txTexture, VECTOR_2D vPos, VECTOR_2D vScale)
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, txTexture, vPos, vScale, 0, sTLGData.rgbaSprite)
|
||
ENDPROC
|
||
|
||
// See Alex's DEGENATRON_GAMES_DRAW_INTEGER
|
||
PROC TLG_DRAW_SCORE_INTEGER(INT iValue, INT iDigits, VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba, TLG_SCORE_INTEGER_TYPE scoreType, FLOAT fScale = 1.0)
|
||
VECTOR_2D vCharCenter = vCenter
|
||
VECTOR_2D vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
BOOL bZero = (iValue = 0)
|
||
INT iChar
|
||
IF iDigits = 0
|
||
INT currentValue
|
||
currentValue = iValue
|
||
IF iValue > 0
|
||
iDigits = FLOOR(LOG10(TO_FLOAT(iValue)))+1
|
||
ELIF iValue = 0
|
||
iDigits = 1
|
||
ENDIF
|
||
|
||
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER] {DSW} ")
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER] {DSW} iValue: ", iValue, " iDigits: ", iDigits, " Orig vCenter.x: ", vCenter.x, " vCharSize.x: ", vCharSize.x)
|
||
WHILE currentValue > 0 OR bZero
|
||
bZero = FALSE
|
||
vCharCenter.x = vCenter.x + (vCharSize.x * (iDigits-1)/2.0) - (vCharSize.x * iChar)
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER] {DSW} currentValue: ", currentValue, " vCharCenter.x: ", vCharCenter.x, " iChar: ", iChar, " Drawing value: ",currentValue % 10)
|
||
TEXT_LABEL_63 tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, currentValue % 10)
|
||
currentValue /= 10
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tlTextureName,vCharCenter,vCharSize,0.0, rgba)
|
||
iChar++
|
||
ENDWHILE
|
||
|
||
ELSE
|
||
REPEAT iDigits iChar
|
||
vCharCenter.x = vCenter.x + vCharSize.x * (iDigits-1)/2.0 - vCharSize.x * iChar
|
||
TEXT_LABEL_63 tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, (iValue / ROUND(POW(10.0,to_float(iChar)))) % 10)
|
||
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tlTextureName,vCharCenter,vCharSize,0.0, rgba)
|
||
ENDREPEAT
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_DRAW_SCORE_INTEGER_WITH_DOLLAR(INT iValue, VECTOR_2D vCenter,RGBA_COLOUR_STRUCT rgba, TLG_SCORE_INTEGER_TYPE scoreType, FLOAT fScale = 1.0)
|
||
VECTOR_2D vCharCenter = vCenter
|
||
VECTOR_2D vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
BOOL bZero = (iValue = 0)
|
||
INT iChar
|
||
INT iDigits = 0
|
||
IF iDigits = 0
|
||
INT currentValue
|
||
currentValue = iValue
|
||
IF iValue > 0
|
||
iDigits = FLOOR(LOG10(TO_FLOAT(iValue)))+1
|
||
ELIF iValue = 0
|
||
iDigits = 1
|
||
ENDIF
|
||
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER] {DSW} ")
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER] {DSW} iValue: ", iValue, " iDigits: ", iDigits, " Orig vCenter.x: ", vCenter.x, " vCharSize.x: ", vCharSize.x)
|
||
WHILE currentValue > 0 OR bZero
|
||
bZero = FALSE
|
||
vCharCenter.x = vCenter.x + (vCharSize.x * (iDigits-1)/2.0) - (vCharSize.x * iChar)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER] {DSW} currentValue: ", currentValue, " vCharCenter.x: ", vCharCenter.x, " iChar: ", iChar, " Drawing value: ",currentValue % 10)
|
||
TEXT_LABEL_63 tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, currentValue % 10)
|
||
currentValue /= 10
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tlTextureName,vCharCenter,vCharSize,0.0, rgba)
|
||
iChar++
|
||
ENDWHILE
|
||
vCharCenter.x = vCenter.x + (vCharSize.x * (iDigits-1)/2.0) - (vCharSize.x * iChar)
|
||
TLG_DRAW_DOLLAR_SYMBOL("NUMERICAL_DOLLAR",vCharCenter,INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE* cfTLG_LEVEL_SCORE_SCALE, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * cfTLG_LEVEL_SCORE_SCALE))
|
||
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC GET_SCORE_DIGITS_AS_ARRAY(INT iScore, INT iDigits, INT &ScoreArray[])
|
||
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[GET_SCORE_DIGITS_AS_ARRAY] {DSW} ")
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[GET_SCORE_DIGITS_AS_ARRAY] {DSW} iScore: ", iScore, " iDigits:", iDigits )
|
||
INT iChar = 0
|
||
INT i = 0
|
||
FOR iChar = (iDigits-1) to 0 STEP - 1
|
||
ScoreArray[i] = (iScore / ROUND(POW(10.0,to_float(iChar)))) % 10
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[GET_SCORE_DIGITS_AS_ARRAY] {DSW} ScoreArray[", i, "] = ",ScoreArray[i] )
|
||
i++
|
||
ENDFOR
|
||
|
||
ENDPROC
|
||
|
||
/// PURPOSE:
|
||
/// Draw the value specified where the 'center' value is the position of the 'left-most' (i.e. first) digit
|
||
/// PARAMS:
|
||
/// iValue -
|
||
/// vLeftMostCenter -
|
||
/// rgba -
|
||
/// scoreType -
|
||
/// fScale -
|
||
PROC TLG_DRAW_SCORE_INTEGER_CENTER_LEFT_MOST(INT iValue, VECTOR_2D vLeftMostCenter,RGBA_COLOUR_STRUCT rgba, TLG_SCORE_INTEGER_TYPE scoreType, FLOAT fScale = 1.0, BOOL bWithPercentage = FALSE)
|
||
|
||
VECTOR_2D vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
|
||
vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
|
||
|
||
INT iScoreDigits[10]
|
||
INT i
|
||
INT iNumDigits = FLOOR(LOG10(TO_FLOAT(iValue))) + 1
|
||
GET_SCORE_DIGITS_AS_ARRAY(iValue, iNumDigits, iScoreDigits)
|
||
TEXT_LABEL_63 tlTextureName
|
||
VECTOR_2D vCenter
|
||
REPEAT iNumDigits i
|
||
tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, iScoreDigits[i])
|
||
vCenter.y = vLeftMostCenter.y
|
||
vCenter.x = vLeftMostCenter.x + (i * vCharSize.x)
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tlTextureName,vCenter,vCharSize,0.0, rgba)
|
||
ENDREPEAT
|
||
|
||
TEXT_LABEL_63 tlTexturePercent
|
||
IF bWithPercentage
|
||
tlTexturePercent= TLG_GET_PERCENTAGE_SIGN_TEXTURE_FOR_SCORE_TYPE(scoreType)
|
||
|
||
vCenter.x = vLeftMostCenter.x + (i * vCharSize.x)
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict,
|
||
tlTexturePercent,
|
||
vCenter,
|
||
INIT_VECTOR_2D(cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_PERCENT_SIZE_X * fScale,
|
||
cfTLG_RESULTS_SCREEN_COMPLETE_ACCURACY_PERCENT_SIZE_Y* fScale),
|
||
0,
|
||
rgba)
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_DRAW_SCORE_ZERO( VECTOR_2D vLeftMostCenter,RGBA_COLOUR_STRUCT rgba, TLG_SCORE_INTEGER_TYPE scoreType, FLOAT fScale = 1.0)
|
||
VECTOR_2D vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
|
||
TEXT_LABEL_63 tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, 0)
|
||
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tlTextureName,vLeftMostCenter,vCharSize,0.0, rgba)
|
||
ENDPROC
|
||
|
||
//PROC TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST(INT iValue, VECTOR_2D vLeftMostCenter,RGBA_COLOUR_STRUCT rgba, TLG_SCORE_INTEGER_TYPE scoreType, FLOAT fScale = 1.0)
|
||
//
|
||
// VECTOR_2D vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
// INT iScoreDigits[6]
|
||
// INT i
|
||
// INT iNumDigits = FLOOR(LOG10(TO_FLOAT(iValue))) + 1
|
||
// GET_SCORE_DIGITS_AS_ARRAY(iValue, iNumDigits, iScoreDigits)
|
||
// TEXT_LABEL_63 tlTextureName
|
||
// VECTOR_2D vCenter
|
||
// FOR i = (iNumDigits-1) TO 0 STEP -1
|
||
// tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, iScoreDigits[i])
|
||
// vCenter.y = vLeftMostCenter.y
|
||
// vCenter.x = vLeftMostCenter.x - (i * vCharSize.x)
|
||
// ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31BaseTextDict, tlTextureName,vCenter,vCharSize,0.0, rgba)
|
||
// ENDFOR
|
||
//
|
||
//ENDPROC
|
||
|
||
PROC TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR(INT iValue, VECTOR_2D vRightMostCenter,RGBA_COLOUR_STRUCT rgba, TLG_SCORE_INTEGER_TYPE scoreType, STRING txDollar, FLOAT fScale = 1.0)
|
||
|
||
VECTOR_2D vCharSize = INIT_VECTOR_2D(cfTLG_MY_HISCORE_X_DIGIT_SIZE * fScale, cfTLG_MY_HISCORE_Y_DIGIT_SIZE * fScale)
|
||
INT iScoreDigits[6]
|
||
INT i, j
|
||
INT iNumDigits = FLOOR(LOG10(TO_FLOAT(iValue))) + 1
|
||
GET_SCORE_DIGITS_AS_ARRAY(iValue, iNumDigits, iScoreDigits)
|
||
TEXT_LABEL_63 tlTextureName
|
||
VECTOR_2D vCenter
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR] {DSW} ")
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR] {DSW} iValue: ", iValue, " vRightMostCenter.x: ", vRightMostCenter.x)
|
||
FOR i = (iNumDigits-1) TO 0 STEP -1
|
||
tlTextureName = TLG_GET_SCORE_INTEGER_TEXTURE_NAME_FROM_TYPE(scoreType, iScoreDigits[i])
|
||
vCenter.y = vRightMostCenter.y
|
||
vCenter.x = vRightMostCenter.x - (j * vCharSize.x)
|
||
j++
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_DRAW_SCORE_INTEGER_CENTER_RIGHT_MOST_WITH_DOLLAR] {DSW} Drawing digit ", iScoreDigits[i], " at x pos: ",vCenter.x)
|
||
ARCADE_DRAW_PIXELSPACE_SPRITE(sTLGData.tl31HudTextDict, tlTextureName,vCenter,vCharSize,0.0, rgba)
|
||
ENDFOR
|
||
|
||
VECTOR_2D vDollarPos
|
||
vDollarPos.y = vRightMostCenter.y
|
||
vDollarPos.x = vCenter.x - (fScale * cfTLG_MY_HISCORE_DOLLAR_X_SIZE)
|
||
|
||
VECTOR_2D vDollarScale = INIT_VECTOR_2D(cfTLG_MY_HISCORE_DOLLAR_X_SIZE * fScale, cfTLG_MY_HISCORE_DOLLAR_Y_SIZE * fScale)
|
||
TLG_DRAW_DOLLAR_SYMBOL(txDollar, vDollarPos, vDollarScale)
|
||
ENDPROC
|
||
|
||
FUNC VECTOR_2D TLG_GET_PLAYER_RETICULE_POSITON()
|
||
RETURN INIT_VECTOR_2D(sTLGData.sPlayerData[0].vSpriteMarkerPos.x, sTLGData.sPlayerData[0].vSpriteMarkerPos.y)
|
||
ENDFUNC
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Player Bits
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
FUNC BOOL TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BITSET eBit)
|
||
RETURN IS_BIT_SET(sTLGData.sPlayerData[0].iPlayerBitset, ENUM_TO_INT(eBit))
|
||
ENDFUNC
|
||
|
||
PROC TLG_SET_PLAYER_BIT(TLG_PLAYER_BITSET eBit)
|
||
IF NOT TLG_IS_PLAYER_BIT_SET(eBit)
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_SET_PLAYER_BIT] {DSW} Set bit ", TLG_GET_PLAYER_BIT_AS_STRING(eBit))
|
||
#ENDIF
|
||
SET_BIT(sTLGData.sPlayerData[0].iPlayerBitset, ENUM_TO_INT(eBit))
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_CLEAR_PLAYER_BIT(TLG_PLAYER_BITSET eBit)
|
||
IF TLG_IS_PLAYER_BIT_SET(eBit)
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_CLEAR_PLAYER_BIT] {DSW} Set bit ", TLG_GET_PLAYER_BIT_AS_STRING(eBit))
|
||
#ENDIF
|
||
CLEAR_BIT(sTLGData.sPlayerData[0].iPlayerBitset, ENUM_TO_INT(eBit))
|
||
ENDIF
|
||
ENDPROC
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Player weapons
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
FUNC TLG_PLAYER_WEAPON_DATA TLG_GET_PLAYER_WEAPON_DATA(TLG_PLAYER_WEAPON weapon)
|
||
TLG_PLAYER_WEAPON_DATA data
|
||
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_NONE
|
||
data.iClipSize = 0 // Amount of ammo in clip
|
||
data.iMaxAmmo = 0 // Max amount of ammo
|
||
data.iMaxEnemyImpacts = 0 // Maximum number of enemies that can be hit with one shot
|
||
data.fSpreadModifier = 0.0 // A way to indicate the 'spread' of the weapon. E.g. Shotgun has large spread
|
||
data.iMinTimeBetweenShots = 0
|
||
data.iMinTimeReloadSingleBullet = 0
|
||
data.iMinDamagePerShot = 0
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_PISTOL
|
||
data.iClipSize = 6
|
||
data.iMaxAmmo = ciTLG_PLAYER_START_AMMO
|
||
data.iMaxEnemyImpacts = 1
|
||
data.fSpreadModifier = 1.0
|
||
data.iMinTimeBetweenShots = 0
|
||
data.iMinDamagePerShot = 7
|
||
data.iMinTimeReloadSingleBullet = 100
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_SHOTGUN
|
||
data.iClipSize = 4
|
||
data.iMaxAmmo = 20
|
||
data.iMaxEnemyImpacts = 5
|
||
data.fSpreadModifier = 350.0
|
||
data.iMinTimeBetweenShots = 1000
|
||
data.iMinDamagePerShot = 20
|
||
data.iMinTimeReloadSingleBullet = 300
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_GATLING
|
||
data.iClipSize = 6
|
||
data.iMaxAmmo = 100 // Anything over 99 is 'infinite'
|
||
data.iMaxEnemyImpacts = 1
|
||
data.fSpreadModifier = 1.0
|
||
data.iMinTimeBetweenShots = 0
|
||
data.iMinDamagePerShot = 10
|
||
BREAK
|
||
|
||
CASE TLG_PLAYER_WEAPON_RIFLE
|
||
data.iClipSize = 5
|
||
data.iMaxAmmo = 25 // Anything over 99 is 'infinite'
|
||
data.iMaxEnemyImpacts = 1
|
||
data.fSpreadModifier = 1.0
|
||
data.iMinTimeBetweenShots = 0
|
||
data.iMinDamagePerShot = 15
|
||
data.iMinTimeReloadSingleBullet = 200
|
||
BREAK
|
||
|
||
DEFAULT
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_GET_PLAYER_WEAPON_DATA] ************* NO WEAPON DATA weapon: ", TLG_GET_PLAYER_WEAPON_AS_STRING(weapon), " Int: ", ENUM_TO_INT(weapon))
|
||
#ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN data
|
||
ENDFUNC
|
||
|
||
|
||
|
||
|
||
FUNC INT TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_WEAPON_TYPE(TLG_PLAYER_WEAPON_TYPE type)
|
||
INT iAmmo = sTLGData.sPlayerData[0].weaponData[type].iAmmoInClip
|
||
|
||
RETURN iAmmo
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_PLAYER_TOTAL_AMMO_FOR_WEAPON_TYPE(TLG_PLAYER_WEAPON_TYPE type, BOOL bIncludeClip = FALSE)
|
||
INT iTotal = sTLGData.sPlayerData[0].weaponData[type].iTotalAmmo
|
||
|
||
IF bIncludeClip
|
||
iTotal += TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_WEAPON_TYPE(type)
|
||
ENDIF
|
||
|
||
RETURN iTotal
|
||
ENDFUNC
|
||
|
||
|
||
FUNC INT TLG_GET_PLAYER_CURRENT_WEAPON_CLIP_SIZE()
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
TLG_PLAYER_WEAPON_DATA data = TLG_GET_PLAYER_WEAPON_DATA(weapon)
|
||
|
||
RETURN data.iClipSize
|
||
ENDFUNC
|
||
FUNC INT TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
|
||
RETURN TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_WEAPON_TYPE(sTLGData.sPlayerData[0].weaponType)
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_PLAYER_TOTAL_AMMO_IN_CURRENT_WEAPON(BOOL bIncludeInClip = FALSE)
|
||
RETURN TLG_GET_PLAYER_TOTAL_AMMO_FOR_WEAPON_TYPE(sTLGData.sPlayerData[0].weaponType, bIncludeInClip)
|
||
ENDFUNC
|
||
|
||
FUNC INT GET_PLAYER_TOTAL_AMMO_FOR_ALL_WEAPON_TYPES()
|
||
INT i, iTotal
|
||
|
||
REPEAT TLG_PLAYER_WEAPON_TYPE_MAX i
|
||
iTotal += TLG_GET_PLAYER_TOTAL_AMMO_FOR_WEAPON_TYPE(INT_TO_ENUM(TLG_PLAYER_WEAPON_TYPE, i))
|
||
ENDREPEAT
|
||
|
||
RETURN iTotal
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_DOES_PLAYER_WEAPON_HAVE_INFINITE_AMMO(TLG_PLAYER_WEAPON weapon)
|
||
IF weapon = TLG_PLAYER_WEAPON_GATLING
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_DOES_PLAYER_CURRENT_WEAPON_HAVE_INFINITE_AMMO()
|
||
RETURN TLG_DOES_PLAYER_WEAPON_HAVE_INFINITE_AMMO(TLG_GET_PLAYER_CURRENT_WEAPON())
|
||
ENDFUNC
|
||
|
||
PROC TLG_REDUCE_PLAYER_AMMO_IN_CLIP(INT iAmount = 1)
|
||
IF TLG_DOES_PLAYER_CURRENT_WEAPON_HAVE_INFINITE_AMMO()
|
||
EXIT
|
||
ENDIF
|
||
|
||
TLG_PLAYER_WEAPON_TYPE type = sTLGData.sPlayerData[0].weaponType
|
||
sTLGData.sPlayerData[0].weaponData[type].iAmmoInClip -= iAmount
|
||
|
||
IF sTLGData.sPlayerData[0].weaponData[type].iAmmoInClip < 0
|
||
sTLGData.sPlayerData[0].weaponData[type].iAmmoInClip = 0
|
||
ENDIF
|
||
sTLGData.sPlayerData[0].weaponData[type].iTotalAmmo -= iAmount
|
||
|
||
IF sTLGData.sPlayerData[0].weaponData[type].iTotalAmmo < 0
|
||
sTLGData.sPlayerData[0].weaponData[type].iTotalAmmo = 0
|
||
ENDIF
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_REDUCE_PLAYER_AMMO_IN_CLIP] {DSW} Weapon type: ", ENUM_TO_INT(type), " Ammo in clip now: ", sTLGData.sPlayerData[0].weaponData[type].iAmmoInClip, " Ammo remaining: ",sTLGData.sPlayerData[0].weaponData[type].iTotalAmmo)
|
||
ENDPROC
|
||
|
||
|
||
PROC TLG_SET_CURRENT_PLAYER_WEAPON_AMMO(INT iClip, INT iWeapon)
|
||
TLG_PLAYER_WEAPON_TYPE weaponType = sTLGData.sPlayerData[0].weaponType
|
||
sTLGData.sPlayerData[0].weaponData[weaponType].iAmmoInClip = iClip
|
||
sTLGData.sPlayerData[0].weaponData[weaponType].iTotalAmmo = iWeapon
|
||
CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_SET_CURRENT_PLAYER_WEAPON_AMMO] Set ammo in clip: ", iClip, " In weapon: ", iWeapon)
|
||
ENDPROC
|
||
|
||
//PROC TLG_SET_SHOULD_SHOW_RELOAD_PROMPT()
|
||
// sTLGData.sPlayerData[0].bShouldShowReloadPrompt = TRUE
|
||
//ENDPROC
|
||
|
||
FUNC BOOL TLG_IS_PLAYER_SHOOTING()
|
||
RETURN (IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_SCRIPT_RT)
|
||
OR IS_DISABLED_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT))
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_SHOULD_SHOW_RELOAD_PROMPT()
|
||
|
||
IF TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON() > 0
|
||
IF sTLGData.sPlayerData[0].bShouldShowReloadPrompt
|
||
sTLGData.sPlayerData[0].bShouldShowReloadPrompt = FALSE
|
||
sTLGData.sPlayerData[0].bDoneReloadEffect = FALSE
|
||
sTLGData.sPlayerData[0].iReloadPromptShowTime = 0
|
||
ENDIF
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
IF TLG_IS_PLAYER_SHOOTING()
|
||
IF sTLGData.sPlayerData[0].iReloadPromptShowTime = 0
|
||
sTLGData.sPlayerData[0].iReloadPromptShowTime = GET_GAME_TIMER()
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF GET_GAME_TIMER() - sTLGData.sPlayerData[0].iReloadPromptShowTime > 100
|
||
sTLGData.sPlayerData[0].bShouldShowReloadPrompt = TRUE
|
||
|
||
IF NOT sTLGData.sPlayerData[0].bDoneReloadEffect
|
||
// TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_RELOAD)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_RELOAD)
|
||
sTLGData.sPlayerData[0].bDoneReloadEffect = TRUE
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
|
||
RETURN sTLGData.sPlayerData[0].bShouldShowReloadPrompt
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// Some weapons have infinite ammo
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL TLG_CAN_PLAYER_CURRNT_WEAPON_BE_RELOADED()
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
|
||
SWITCH weapon
|
||
CASE TLG_PLAYER_WEAPON_NONE
|
||
CASE TLG_PLAYER_WEAPON_GATLING
|
||
RETURN FALSE
|
||
ENDSWITCH
|
||
|
||
TLG_PLAYER_WEAPON_DATA data = TLG_GET_PLAYER_WEAPON_DATA(weapon)
|
||
INT iAmmoInClip = TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
|
||
|
||
IF iAmmoInClip = data.iClipSize
|
||
//-- Clip full
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_DOES_PLAYER_NEED_TO_RELOAD()
|
||
RETURN TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON() = 0
|
||
ENDFUNC
|
||
|
||
|
||
|
||
PROC TLG_RELOAD_PLAYER_WEAPON()
|
||
TLG_PLAYER_WEAPON_TYPE weaponType = sTLGData.sPlayerData[0].weaponType
|
||
//
|
||
// IF NOT TLG_CAN_PLAYER_CURRNT_WEAPON_BE_RELOADED()
|
||
// IF sTLGData.sPlayerData[0].bIsReloading[weaponType]
|
||
// sTLGData.sPlayerData[0].bIsReloading[weaponType] = FALSE
|
||
// ENDIF
|
||
// EXIT
|
||
// ENDIF
|
||
|
||
TLG_PLAYER_WEAPON weapon = TLG_GET_PLAYER_CURRENT_WEAPON()
|
||
TLG_PLAYER_WEAPON_DATA data = TLG_GET_PLAYER_WEAPON_DATA(weapon)
|
||
BOOL bPlayFirst
|
||
IF sTLGData.sPlayerData[0].weaponData[weaponType].iReloadSingleBulletTime = 0
|
||
OR GET_GAME_TIMER() - sTLGData.sPlayerData[0].weaponData[weaponType].iReloadSingleBulletTime >= data.iMinTimeReloadSingleBullet
|
||
|
||
INT iAmmoInClip = TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON()
|
||
INT iTotalAmmo = TLG_GET_PLAYER_TOTAL_AMMO_IN_CURRENT_WEAPON(FALSE)
|
||
INT iBulletsToAdd = 1 // data.iClipSize - iAmmoInClip
|
||
|
||
IF iAmmoInClip < iTotalAmmo
|
||
IF iBulletsToAdd > iTotalAmmo
|
||
iBulletsToAdd = iTotalAmmo
|
||
ENDIF
|
||
|
||
// TLG_HANDLE_PLAYER_RELOADING_WEAPON_AUDIO()
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_RELOAD_PLAYER_WEAPON] Weapon: ", TLG_GET_PLAYER_WEAPON_AS_STRING(weapon), "In clip: ", iAmmoInClip, " Weapon size: ", data.iClipSize)
|
||
#ENDIF
|
||
|
||
|
||
bPlayFirst = (iAmmoInClip < data.iClipSize - 2) AND NOT TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_RELOADED_FIRST_BULLET)
|
||
TLG_SET_CURRENT_PLAYER_WEAPON_AMMO(iAmmoInClip+iBulletsToAdd, iTotalAmmo)
|
||
|
||
|
||
IF bPlayFirst
|
||
//- -First bullet in clip (but not also last)
|
||
TLG_SET_PLAYER_BIT(TLG_PLAYER_BIT_RELOADED_FIRST_BULLET)
|
||
TLG_HANDLE_PLAYER_RELOADING_WEAPON_AUDIO(TRUE, FALSE, FALSE)
|
||
ELIF TLG_GET_PLAYER_AMMO_IN_CLIP_FOR_CURRENT_WEAPON() = data.iClipSize
|
||
//-- Last bullet in clip
|
||
TLG_HANDLE_PLAYER_RELOADING_WEAPON_AUDIO(FALSE, FALSE, TRUE)
|
||
ELSE
|
||
TLG_HANDLE_PLAYER_RELOADING_WEAPON_AUDIO(FALSE, TRUE, FALSE)
|
||
ENDIF
|
||
sTLGData.sPlayerData[0].weaponData[weaponType].iReloadSingleBulletTime = GET_GAME_TIMER()
|
||
ENDIF
|
||
ENDIF
|
||
|
||
ENDPROC
|
||
|
||
PROC TLG_SET_PLAYER_WEAPON_TYPE(TLG_PLAYER_WEAPON_TYPE type)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sOld = TLG_GET_PLAYER_WEAPON_TYPE_AS_STRING(sTLGData.sPlayerData[0].weaponType)
|
||
STRING sNew = TLG_GET_PLAYER_WEAPON_TYPE_AS_STRING(type)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_SET_PLAYER_WEAPON_TYPE] Setting weapon type ", sOld, " -> ", sNew)
|
||
#ENDIF
|
||
sTLGData.sPlayerData[0].weaponType = type
|
||
ENDPROC
|
||
|
||
PROC TLG_INIT_PLAYER_SPECIAL_WEAPON()
|
||
TLG_PLAYER_WEAPON weapon = sTLGData.sPlayerData[0].specialWeapon
|
||
TLG_PLAYER_WEAPON_DATA data = TLG_GET_PLAYER_WEAPON_DATA(weapon)
|
||
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_SPECIAL].iAmmoInClip = data.iClipSize
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_SPECIAL].iTotalAmmo = data.iMaxAmmo
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_SPECIAL].iLastShotTime = 0
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_SPECIAL].iReloadSingleBulletTime = 0
|
||
sTLGData.sPlayerData[0].bIsReloading[TLG_PLAYER_WEAPON_TYPE_SPECIAL] = FALSE
|
||
ENDPROC
|
||
|
||
|
||
FUNC BOOL TLG_IS_LEVEL_BIT_SET_FOR_LEVEL(TLG_LEVELS eLevel, TLG_LEVELS_BITSET eBit)
|
||
RETURN IS_BIT_SET(sTLGData.iLevelBitset[ENUM_TO_INT(eLevel)], ENUM_TO_INT(eBit))
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BITSET eBit)
|
||
RETURN TLG_IS_LEVEL_BIT_SET_FOR_LEVEL(sTLGData.eCurrentLevel, eBit)
|
||
ENDFUNC
|
||
|
||
|
||
|
||
PROC TLG_SET_LEVEL_BIT_FOR_LEVEL(TLG_LEVELS eLevel, TLG_LEVELS_BITSET eBit)
|
||
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_LEVEL(eLevel, eBit)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sBit = TLG_GET_LEVELS_BIT_AS_STRING(eBit)
|
||
STRING sLevel = TLG_GET_LEVEL_NAME_AS_STRING(eLevel)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_SET_LEVEL_BIT_FOR_LEVEL] {DSW} Set bit ", sBit, " For Level ", sLevel)
|
||
#ENDIF
|
||
|
||
SET_BIT(sTLGData.iLevelBitset[ENUM_TO_INT(eLevel)], ENUM_TO_INT(eBit))
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BITSET eBit)
|
||
TLG_SET_LEVEL_BIT_FOR_LEVEL(sTLGData.eCurrentLevel, eBit)
|
||
ENDPROC
|
||
|
||
|
||
|
||
|
||
|
||
PROC TLG_SET_PLAYER_SPECIAL_WEAPON(TLG_PLAYER_WEAPON weapon, BOOL bSwapToSpecial = TRUE)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sOld = TLG_GET_PLAYER_WEAPON_AS_STRING(sTLGData.sPlayerData[0].specialWeapon)
|
||
STRING sNew = TLG_GET_PLAYER_WEAPON_AS_STRING(weapon)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "{DSW} [TLG_SET_PLAYER_SPECIAL_WEAPON] Setting special weapon ", sOld, " -> ", sNew, " Swap? ", bSwapToSpecial)
|
||
#ENDIF
|
||
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_DEFAULT].iLastShotTime = 0
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_DEFAULT].iReloadSingleBulletTime = 0
|
||
sTLGData.sPlayerData[0].specialWeapon = weapon
|
||
|
||
IF bSwapToSpecial
|
||
TLG_SET_PLAYER_WEAPON_TYPE(TLG_PLAYER_WEAPON_TYPE_SPECIAL)
|
||
TLG_INIT_PLAYER_SPECIAL_WEAPON()
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_SWAP_WEAPON)
|
||
TLG_SET_LEVEL_BIT_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_USED_SPECIAL_WEAPON)
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_INIT_PLAYER_WEAPON()
|
||
sTLGData.sPlayerData[0].weaponType = TLG_PLAYER_WEAPON_TYPE_DEFAULT
|
||
|
||
sTLGData.sPlayerData[0].specialWeapon = TLG_PLAYER_WEAPON_NONE
|
||
|
||
TLG_PLAYER_WEAPON_DATA data = TLG_GET_PLAYER_WEAPON_DATA(TLG_PLAYER_WEAPON_PISTOL)
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_DEFAULT].iAmmoInClip = data.iClipSize
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_DEFAULT].iReloadSingleBulletTime = 0
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_DEFAULT].iTotalAmmo = ciTLG_PLAYER_START_AMMO
|
||
sTLGData.sPlayerData[0].weaponData[TLG_PLAYER_WEAPON_TYPE_DEFAULT].iLastShotTime = 0
|
||
sTLGData.sPlayerData[0].bIsReloading[TLG_PLAYER_WEAPON_TYPE_DEFAULT] = FALSE
|
||
TLG_SET_PLAYER_SPECIAL_WEAPON(TLG_PLAYER_WEAPON_NONE, FALSE)
|
||
TLG_INIT_PLAYER_SPECIAL_WEAPON()
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_RIVAL_PLAYER_PART_ID()
|
||
RETURN sTLGData.iRivalPart
|
||
ENDFUNC
|
||
|
||
PROC TLG_INIT_PLAY_VARIABLES()
|
||
|
||
sTLGData.eLevelStage = TLG_PLAY
|
||
|
||
ENDPROC
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Level / Hi scores
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
FUNC INT TLG_GET_TOTAL_SHOTS_FIRED_IN_LEVEL(TLG_LEVELS eLevel)
|
||
RETURN sTLGData.iTotalLevelShots[eLevel]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_SHOTS_FIRED_IN_ALL_LEVELS()
|
||
INT iTotal
|
||
INT i
|
||
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iTotal += TLG_GET_TOTAL_SHOTS_FIRED_IN_LEVEL(INT_TO_ENUM(TLG_LEVELS, i))
|
||
ENDREPEAT
|
||
|
||
RETURN iTotal
|
||
ENDFUNC
|
||
|
||
|
||
FUNC INT TLG_GET_CURRENT_LEVEL_STAGE()
|
||
RETURN sTLGData.iLevelCurrentStage[ENUM_TO_INT(sTLGData.eCurrentLevel)]
|
||
ENDFUNC
|
||
|
||
PROC TLG_INCREASE_SHOT_FIRED_FOR_CURRENT_LEVEL()
|
||
sTLGData.iTotalLevelShots[TLG_GET_CURRENT_LEVEL()]++
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_TOTAL_SHOTS_FIRED_IN_CURRENT_LEVEL()
|
||
RETURN sTLGData.iTotalLevelShots[TLG_GET_CURRENT_LEVEL()]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_ENEMY_HITS_FOR_LEVEL(TLG_LEVELS eLevel)
|
||
RETURN sTLGData.iTotalLevelEnemyHits[eLevel]
|
||
ENDFUNC
|
||
|
||
PROC TLG_INCREASE_ENEMY_HIT_COUNT_FOR_CURRENT_LEVEL()
|
||
sTLGData.iTotalLevelEnemyHits[TLG_GET_CURRENT_LEVEL()]++
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_TOTAL_ENEMY_HITS_FOR_CURRENT_LEVEL()
|
||
RETURN TLG_GET_TOTAL_ENEMY_HITS_FOR_LEVEL(TLG_GET_CURRENT_LEVEL())
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_ENEMY_HITS_FOR_ALL_LEVELS()
|
||
INT iTotal
|
||
INT i
|
||
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iTotal += TLG_GET_TOTAL_ENEMY_HITS_FOR_LEVEL(INT_TO_ENUM(TLG_LEVELS, i))
|
||
ENDREPEAT
|
||
|
||
RETURN iTotal
|
||
ENDFUNC
|
||
|
||
|
||
PROC TLG_INCREASE_ENEMY_HEADSHOT_COUNT_FOR_CURRENT_LEVEL()
|
||
sTLGData.iTotalLevelEnemyHeadShots[TLG_GET_CURRENT_LEVEL()]++
|
||
ENDPROC
|
||
|
||
PROC TLG_INCREASE_BIRDS_SHOT_COUNT_FOR_CURRENT_LEVEL()
|
||
sTLGData.iTotalLevelBirdsShot[TLG_GET_CURRENT_LEVEL()]++
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_LEVEL(TLG_LEVELS eLevel)
|
||
RETURN sTLGData.iTotalLevelBirdsShot[eLevel]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_ALL_LEVELS()
|
||
INT iTotal
|
||
INT i
|
||
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iTotal += TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_LEVEL(INT_TO_ENUM(TLG_LEVELS, i))
|
||
ENDREPEAT
|
||
|
||
RETURN iTotal
|
||
|
||
ENDFUNC
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_CURRENT_LEVEL()
|
||
RETURN TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_LEVEL(TLG_GET_CURRENT_LEVEL())
|
||
ENDFUNC
|
||
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_POWERUPS_COLLECTED_FOR_LEVEL(TLG_LEVELS eLevel)
|
||
RETURN sTLGData.iTotalPowerupsCollected[eLevel]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_POWERUPS_COLLECTED_FOR_CURRENT_LEVEL()
|
||
RETURN TLG_GET_TOTAL_NUMBER_OF_POWERUPS_COLLECTED_FOR_LEVEL(TLG_GET_CURRENT_LEVEL())
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_POWERUPS_COLLECTED_FOR_ALL_LEVELS()
|
||
INT iTotal
|
||
INT i
|
||
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iTotal += TLG_GET_TOTAL_NUMBER_OF_POWERUPS_COLLECTED_FOR_LEVEL(INT_TO_ENUM(TLG_LEVELS, i))
|
||
ENDREPEAT
|
||
|
||
RETURN iTotal
|
||
|
||
ENDFUNC
|
||
|
||
PROC TLG_INCREASE_POWERUPS_COLLECTED_FOR_CURRENT_LEVEL()
|
||
|
||
sTLGData.iTotalPowerupsCollected[TLG_GET_CURRENT_LEVEL()]++
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_INCREASE_POWERUPS_COLLECTED_FOR_CURRENT_LEVEL] Powerups collected now: ",sTLGData.iTotalPowerupsCollected[TLG_GET_CURRENT_LEVEL()], " level: ", TLG_GET_LEVEL_NAME_AS_STRING(sTLGData.eCurrentLevel))
|
||
#ENDIF
|
||
|
||
ENDPROC
|
||
|
||
|
||
PROC TLG_INCREASE_HOSTAGES_SAVED_COUNT_FOR_CURRENT_LEVEL()
|
||
sTLGData.iTotalLevelHostagesSaved[TLG_GET_CURRENT_LEVEL()]++
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_INCREASE_HOSTAGES_SAVED_COUNT_FOR_CURRENT_LEVEL] Hostages saved now: ",sTLGData.iTotalLevelHostagesSaved[TLG_GET_CURRENT_LEVEL()], " level: ", TLG_GET_LEVEL_NAME_AS_STRING(sTLGData.eCurrentLevel))
|
||
#ENDIF
|
||
ENDPROC
|
||
|
||
FUNC FLOAT TLG_GET_PLAYER_ACCURACY_FOR_CURRENT_LEVEL()
|
||
FLOAT fNumberOfShots = TO_FLOAT(TLG_GET_TOTAL_SHOTS_FIRED_IN_CURRENT_LEVEL())
|
||
FLOAT fEnemiesShot = TO_FLOAT(TLG_GET_TOTAL_ENEMY_HITS_FOR_CURRENT_LEVEL())
|
||
FLOAT fAnimalsShot = TO_FLOAT(TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_CURRENT_LEVEL())
|
||
FLOAT fTotalHits = fEnemiesShot + fAnimalsShot
|
||
|
||
RETURN 100.0 * (fTotalHits / fNumberOfSHots)
|
||
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_PLAYER_ACCURACY_FOR_ALL_LEVELS()
|
||
FLOAT fTotalShots = TO_FLOAT(TLG_GET_TOTAL_SHOTS_FIRED_IN_ALL_LEVELS())
|
||
FLOAT fTotalEnemyHits = TO_FLOAT(TLG_GET_TOTAL_ENEMY_HITS_FOR_ALL_LEVELS())
|
||
FLOAT fTotalAnimals = TO_FLOAT(TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_CURRENT_LEVEL())
|
||
|
||
FLOAT fAccuracy = 100.0 * (fTotalEnemyHits + fTotalAnimals) / fTotalShots
|
||
|
||
RETURN fAccuracy
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_HOSTAGES_SAVED_FOR_CURRENT_LEVEL()
|
||
RETURN sTLGData.iTotalLevelHostagesSaved[TLG_GET_CURRENT_LEVEL()]
|
||
ENDFUNC
|
||
|
||
|
||
FUNC INT TLG_GET_PLAYER_SUCESSIVE_HITS()
|
||
RETURN sTLGData.sPlayerData[0].iSuccessiveHits
|
||
ENDFUNC
|
||
|
||
PROC TLG_INCREASE_PLAYER_SUCCESSIVE_HITS()
|
||
sTLGData.sPlayerData[0].iSuccessiveHits += 1
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_INCREASE_PLAYER_SUCCESSIVE_HITS] Score mulitplier now: ", sTLGData.sPlayerData[0].iSuccessiveHits)
|
||
ENDPROC
|
||
|
||
|
||
PROC TLG_INCREASE_PLAYER_CHAINED_SCORE(INT iScore)
|
||
sTLGData.sPlayerData[0].iChainedScore += iScore
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_INCREASE_PLAYER_CHAINED_SCORE] Chained score now: ", sTLGData.sPlayerData[0].iChainedScore, " Chained Shots: ",TLG_GET_PLAYER_SUCESSIVE_HITS() - 1 )
|
||
DEBUG_PRINTCALLSTACK()
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_PLAYER_CHAINED_SCORE()
|
||
RETURN sTLGData.sPlayerData[0].iChainedScore
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL_FROM_HOST(INT iPart, INT iLevel)
|
||
RETURN tlgServerBd.sPlayerScores[iPart].iHiScoreForLevel[iLevel]
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_RIVAL_HI_SCORE_FOR_LEVEL(INT iLevel)
|
||
RETURN tlgServerBd.sPlayerScores[sTLGData.iRivalPart].iHiScoreForLevel[iLevel]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_RIVAL_SCORE_FOR_LEVEL(INT iLevel)
|
||
RETURN tlgServerBd.sPlayerScores[sTLGData.iRivalPart].iCurrentScoreForLevel[iLevel]
|
||
ENDFUNC
|
||
|
||
|
||
FUNC INT TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(INT iLevel)
|
||
RETURN playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(INT iLevel)
|
||
RETURN playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iLevel]
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_ALL_LEVELS()
|
||
INT i, iScore
|
||
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iScore += TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(i)
|
||
ENDREPEAT
|
||
|
||
RETURN iScore
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_LOCAL_PLAYER_HI_SCORE()
|
||
RETURN TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(TLG_GET_CURRENT_LEVEL_AS_INT())
|
||
ENDFUNC
|
||
|
||
FUNC INT GET_LOCAL_PLAYER_SCORE()
|
||
INT iCurrentLevel = TLG_GET_CURRENT_LEVEL_AS_INT()
|
||
RETURN TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(iCurrentLevel)
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_PARTICIPANT_WITH_HIGHEST_HI_SCORE_FOR_CURRENT_LEVEL()
|
||
INT iCurrentLevel = TLG_GET_CURRENT_LEVEL_AS_INT()
|
||
INT iRivalHiScore = TLG_GET_RIVAL_HI_SCORE_FOR_LEVEL(iCurrentLevel)
|
||
INT iMyHiScore = tlgServerBd.sPlayerScores[PARTICIPANT_ID_TO_INT()].iHiScoreForLevel[iCurrentLevel]
|
||
|
||
IF iRivalHiScore > iMyHiScore
|
||
RETURN TLG_GET_RIVAL_PLAYER_PART_ID()
|
||
ENDIF
|
||
|
||
RETURN PARTICIPANT_ID_TO_INT()
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_LOCAL_PLAYER_TOTAL_SCORE()
|
||
INT i, iScore
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iScore += TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(i)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_GET_LOCAL_PLAYER_TOTAL_SCORE] Hi Score for level ", i, ": ", TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(i), " Total so far: ", iScore)
|
||
ENDREPEAT
|
||
|
||
RETURN iScore
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_SCORE_FOR_TYPE(TLG_SCORE_TYPE score)
|
||
SWITCH score
|
||
CASE TLG_SCORE_TYPE_ENEMY RETURN 100
|
||
CASE TLG_SCORE_TYPE_ENEMY_HEADSHOT RETURN 150
|
||
CASE TLG_SCORE_TYPE_ANIMAL RETURN 250
|
||
CASE TLG_SCORE_TYPE_SCENERY RETURN 10
|
||
CASE TLG_SCORE_TYPE_ENEMY_EXPLOSION RETURN 100
|
||
ENDSWITCH
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[GET_SCORE_FOR_TYPE] {DSW} Unknown score type")
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL(INT iPart, INT iLevel)
|
||
IF NETWORK_IS_PARTICIPANT_ACTIVE(INT_TO_PARTICIPANTINDEX(iPart))
|
||
RETURN playerBd[iPart].iPlayerHiScore[iLevel]
|
||
ENDIF
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_PARTICIPANT_SCORE_FOR_LEVEL(INT iPart, INT iLevel)
|
||
IF NETWORK_IS_PARTICIPANT_ACTIVE(INT_TO_PARTICIPANTINDEX(iPart))
|
||
RETURN playerBd[iPart].iPlayerScore[iLevel]
|
||
ENDIF
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
PROC TLG_RESET_LOCAL_PLAYER_SCORE_FOR_LEVEL(INT iLevel)
|
||
IF playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel] != 0
|
||
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iLevel] = 0
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_RESET_LOCAL_PLAYER_SCORE_FOR_LEVEL] {DSW} Called for level ", iLevel)
|
||
DEBUG_PRINTCALLSTACK()
|
||
#ENDIF
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_RESET_LOCAL_PLAYER_SCORE_FOR_CURRENT_LEVEL()
|
||
TLG_RESET_LOCAL_PLAYER_SCORE_FOR_LEVEL(TLG_GET_CURRENT_LEVEL_AS_INT())
|
||
ENDPROC
|
||
|
||
|
||
|
||
PROC TLG_ADD_TO_LOCAL_PLAYER_SCORE(TLG_SCORE_TYPE score)
|
||
INT iScoreToAdd = TLG_GET_SCORE_FOR_TYPE(score)
|
||
INT iCurrentLevel = TLG_GET_CURRENT_LEVEL_AS_INT()
|
||
//INT iChainBonus = 0
|
||
|
||
TLG_INCREASE_PLAYER_SUCCESSIVE_HITS()
|
||
|
||
INT iHits = TLG_GET_PLAYER_SUCESSIVE_HITS()
|
||
FLOAT fScoreMultiplier = 0.0
|
||
IF iHits > 1
|
||
fScoreMultiplier = TO_FLOAT(iHits) / 10.0
|
||
ENDIF
|
||
|
||
TLG_INCREASE_PLAYER_CHAINED_SCORE(iScoreToAdd)
|
||
INT iChainedScore = TLG_GET_PLAYER_CHAINED_SCORE()
|
||
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
INT iCurrentScore = TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(iCurrentLevel)
|
||
STRING sScore = TLG_GET_SCORE_TYPE_AS_STRING(score)
|
||
STRING sLevel = TLG_GET_LEVEL_NAME_AS_STRING(TLG_GET_CURRENT_LEVEL())
|
||
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} Local player scored points on level ", sLevel, " ( Old Score: ", iCurrentScore, ")" )
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} Score to add (type): ", sScore)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} Score to add (value): ", iScoreToAdd)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} Successive Hits: ", iHits)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} Multiplier: ", fScoreMultiplier)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} Chained score: ", iChainedScore)
|
||
#ENDIF
|
||
|
||
IF iHits = 1
|
||
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel] += iScoreToAdd
|
||
TLG_SET_PREVIOUS_TARGET_SCORE(iScoreToAdd)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} No Chain. New score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel])
|
||
|
||
TLG_CLEAR_PLAYER_BIT(TLG_PLAYER_BIT_INIT_NEW_CHAIN)
|
||
ELSE
|
||
IF NOT TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_INIT_NEW_CHAIN)
|
||
TLG_SET_PLAYER_BIT(TLG_PLAYER_BIT_INIT_NEW_CHAIN)
|
||
TLG_SET_PLAYER_NO_CHAIN_SCORE(playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel] - TLG_GET_PREVIOUS_TARGET_SCORE())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] New Chain started, storing score: ", TLG_GET_PLAYER_NO_CHAIN_SCORE())
|
||
ENDIF
|
||
|
||
iScoreToAdd = iChainedScore + ROUND(TO_FLOAT(iChainedScore) * fScoreMultiplier)
|
||
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel] = TLG_GET_PLAYER_NO_CHAIN_SCORE() + iScoreToAdd
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ADD_TO_LOCAL_PLAYER_SCORE] {dsw} New amount to add: ", iScoreToAdd, " Chained score: ", iChainedScore, " After multi applied: ", (iChainedScore * fScoreMultiplier), " New score: ", playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel])
|
||
ENDIF
|
||
|
||
IF TLG_GET_LOCAL_PLAYER_HI_SCORE() < playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel]
|
||
playerBd[PARTICIPANT_ID_TO_INT()].iPlayerHiScore[iCurrentLevel] = playerBd[PARTICIPANT_ID_TO_INT()].iPlayerScore[iCurrentLevel]
|
||
endif
|
||
ENDPROC
|
||
|
||
|
||
FUNC BOOL TLG_IS_LOCAL_PLAYER_IN_LEFT_HAND_CABINET()
|
||
RETURN GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) <= 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_RED_PLAYER_SCORE_FOR_LEVEL(INT iLevel)
|
||
IF GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) <= 0
|
||
RETURN TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(iLevel)
|
||
ELSE
|
||
RETURN TLG_GET_RIVAL_SCORE_FOR_LEVEL(iLevel)
|
||
ENDIF
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(INT iLevel)
|
||
IF GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) <= 0
|
||
RETURN TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL_FROM_HOST(PARTICIPANT_ID_TO_INT(), iLevel)
|
||
ELSE
|
||
RETURN TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL_FROM_HOST(sTLGData.iRivalPart, iLevel)
|
||
ENDIF
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_BLUE_PLAYER_SCORE_FOR_LEVEL(INT iLevel)
|
||
IF GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) = 1
|
||
RETURN TLG_GET_LOCAL_PLAYER_SCORE_FOR_LEVEL(iLevel)
|
||
ELSE
|
||
RETURN TLG_GET_RIVAL_SCORE_FOR_LEVEL(iLevel)
|
||
ENDIF
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(INT iLevel)
|
||
IF GET_ARCADE_CABINET_LOCATE_PLAYER_SLOT_PLAYER_IS_IN(PLAYER_ID()) = 1
|
||
RETURN TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL_FROM_HOST(PARTICIPANT_ID_TO_INT(), iLevel)
|
||
ELSE
|
||
RETURN TLG_GET_PARTICIPANT_HI_SCORE_FOR_LEVEL_FROM_HOST(sTLGData.iRivalPart, iLevel)
|
||
ENDIF
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_RED_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST()
|
||
INT i, iScore
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iScore += TLG_GET_RED_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(i)
|
||
ENDREPEAT
|
||
|
||
RETURN iScore
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_ALL_LEVELS_FROM_HOST()
|
||
INT i, iScore
|
||
REPEAT TLG_MAX_LEVELS i
|
||
iScore += TLG_GET_BLUE_PLAYER_HI_SCORE_FOR_LEVEL_FROM_HOST(i)
|
||
ENDREPEAT
|
||
|
||
RETURN iScore
|
||
ENDFUNC
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Levels Util
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
PROC TLG_CLEAR_LEVEL_BIT_FOR_LEVEL(TLG_LEVELS eLevel, TLG_LEVELS_BITSET eBit)
|
||
IF TLG_IS_LEVEL_BIT_SET_FOR_LEVEL(eLevel, eBit)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sBit = TLG_GET_LEVELS_BIT_AS_STRING(eBit)
|
||
STRING sLevel = TLG_GET_LEVEL_NAME_AS_STRING(eLevel)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_CLEAR_LEVEL_BIT_FOR_LEVEL] {DSW} Set bit ", sBit, " For Level ", sLevel)
|
||
#ENDIF
|
||
|
||
CLEAR_BIT(sTLGData.iLevelBitset[ENUM_TO_INT(eLevel)], ENUM_TO_INT(eBit))
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
FUNC BOOL IS_MOVING_LEVEL()
|
||
#IF IS_DEBUG_BUILD
|
||
IF sTLGData.bStopMovingLevel
|
||
RETURN FALSE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
|
||
BOOL bMovingBackground = FALSE
|
||
|
||
SWITCH sTLGData.eCurrentLevel
|
||
CASE TLG_LEVEL_DESERT
|
||
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
bMovingBackground = TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_TOWN
|
||
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
bMovingBackground = TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_FOREST
|
||
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
bMovingBackground = TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_MINE
|
||
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
bMovingBackground = TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
IF NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
bMovingBackground = TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN bMovingBackground
|
||
|
||
ENDFUNC
|
||
|
||
|
||
FUNC BOOL TLG_IS_COVER_TYPE_LARGE_BUILDING(TLG_ASSET_TYPES eCover)
|
||
SWITCH eCover
|
||
CASE TLG_ASSET_BUILDING_1
|
||
CASE TLG_ASSET_BUILDING_2
|
||
CASE TLG_ASSET_BUILDING_3
|
||
CASE TLG_ASSET_BUILDING_4
|
||
|
||
RETURN TRUE
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_COVER_TYPE_SMALL_BUILDING(TLG_ASSET_TYPES eCover)
|
||
SWITCH eCover
|
||
CASE TLG_ASSET_BUILDING_5
|
||
CASE TLG_ASSET_BUILDING_6
|
||
CASE TLG_ASSET_BUILDING_7
|
||
CASE TLG_ASSET_BUILDING_8
|
||
|
||
RETURN TRUE
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_MOVING_LEVEL_ABOUT_TO_STOP()
|
||
RETURN TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_SHOULD_STOP)
|
||
AND NOT TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_LEVEL_STOPPED()
|
||
RETURN TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_SHOULD_STOP)
|
||
AND TLG_IS_LEVEL_BIT_SET_FOR_CURRENT_LEVEL(TLG_LEVELS_BIT_STOPPED)
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_NUMBER_OF_SCREENS_FOR_LEVEL(TLG_LEVELS eLevel)
|
||
SWITCH eLevel
|
||
CASE TLG_LEVEL_TOWN
|
||
CASE TLG_LEVEL_FOREST
|
||
CASE TLG_LEVEL_MINE
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
RETURN 4
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN 0
|
||
ENDFUNC
|
||
|
||
PROC TLG_SET_SCREEN_TO_STOP_ON(INT iScreen)
|
||
INT iMaxScreens = TLG_GET_NUMBER_OF_SCREENS_FOR_LEVEL(sTLGData.eCurrentLevel)
|
||
IF iScreen > iMaxScreens
|
||
iScreen = 1
|
||
ENDIF
|
||
|
||
sTLGData.iScreenToStopOn = iScreen
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "{dsw} [TLG_SET_SCREEN_TO_STOP_ON] (callstack) sTLGData.iScreenToStopOn: ", sTLGData.iScreenToStopOn)
|
||
DEBUG_PRINTCALLSTACK()
|
||
#ENDIF
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_SCREEN_TO_STOP_ON()
|
||
RETURN sTLGData.iScreenToStopOn
|
||
ENDFUNC
|
||
|
||
PROC TLG_RESET_SCREEN_TO_STOP_ON()
|
||
sTLGData.iLastScreenToStopOn = sTLGData.iScreenToStopOn
|
||
sTLGData.iScreenToStopOn = -1
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "{dsw} [TLG_RESET_SCREEN_TO_STOP_ON] CAlled. last screen to stop on: ", sTLGData.iLastScreenToStopOn, " Callstack...")
|
||
DEBUG_PRINTCALLSTACK()
|
||
#ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_INCREASE_CURRENT_LEVEL_STAGE()
|
||
sTLGData.iLevelCurrentStage[ENUM_TO_INT(sTLGData.eCurrentLevel)]++
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_INCREASE_CURRENT_LEVEL_STAGE] {DSW} Stage for Level ", TLG_GET_LEVEL_NAME_AS_STRING(sTLGData.eCurrentLevel), " now ", sTLGData.iLevelCurrentStage[ENUM_TO_INT(sTLGData.eCurrentLevel)])
|
||
#ENDIF
|
||
ENDPROC
|
||
|
||
|
||
FUNC BOOL TLG_IS_LEVEL_COMPLETED(TLG_LEVELS level)
|
||
RETURN sTLGData.bLevelsCompleted[ENUM_TO_INT(level)]
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_ARE_ALL_LEVELS_COMPLETE()
|
||
INT i
|
||
REPEAT TLG_MAX_LEVELS i
|
||
IF NOT TLG_IS_LEVEL_COMPLETED(INT_TO_ENUM(TLG_LEVELS, i))
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
RETURN TRUE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_WAS_ANY_LEVEL_REPLAYED()
|
||
INT i
|
||
REPEAT TLG_MAX_LEVELS i
|
||
IF TLG_IS_LEVEL_BIT_SET_FOR_LEVEL(TLG_GET_CURRENT_LEVEL(), TLG_LEVELS_BIT_REPLAYING_LEVEL)
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_INCREASE_CURRENT_LEVEL_STAGE] {DSW} This level was replayed: ", TLG_GET_LEVEL_NAME_AS_STRING(sTLGData.eCurrentLevel))
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_WAS_A_SPECIAL_WEAPON_USED_ON_ANY_LEVEL()
|
||
INT i
|
||
REPEAT TLG_MAX_LEVELS i
|
||
IF TLG_IS_LEVEL_BIT_SET_FOR_LEVEL(INT_TO_ENUM(TLG_LEVELS, i), TLG_LEVELS_BIT_USED_SPECIAL_WEAPON)
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_WAS_A_SPECIAL_WEAPON_USED_ON_ANY_LEVEL] {DSW} Special weapon was used on level: ", TLG_GET_LEVEL_NAME_AS_STRING(sTLGData.eCurrentLevel))
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL IS_LEVEL_UNLOCKED(TLG_LEVELS level)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
IF GET_COMMANDLINE_PARAM_EXISTS("sc_BadlandsUnlockLvls")
|
||
RETURN TRUE
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
|
||
SWITCH level
|
||
CASE TLG_LEVEL_DESERT
|
||
CASE TLG_LEVEL_TOWN
|
||
RETURN TRUE
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_FOREST
|
||
RETURN TRUE
|
||
// IF sTLGData.bLevelsCompleted[0]
|
||
// OR sTLGData.bLevelsCompleted[1]
|
||
// RETURN TRUE
|
||
// ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_MINE
|
||
IF sTLGData.bLevelsCompleted[1]
|
||
OR sTLGData.bLevelsCompleted[2]
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
IF sTLGData.bLevelsCompleted[2]
|
||
OR sTLGData.bLevelsCompleted[3]
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_LEVEL_NUMBER_OF_STAGES(TLG_LEVELS eLevel)
|
||
SWITCH eLevel
|
||
CASE TLG_LEVEL_DESERT
|
||
RETURN 2
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_TOWN
|
||
RETURN 4
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_FOREST
|
||
RETURN 2
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_MINE
|
||
RETURN 2
|
||
BREAK
|
||
|
||
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
RETURN 2
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN 1
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_CURRENT_LEVEL_NUMBER_OF_STAGES()
|
||
RETURN TLG_GET_LEVEL_NUMBER_OF_STAGES(sTLGData.eCurrentLevel)
|
||
ENDFUNC
|
||
|
||
|
||
|
||
|
||
FUNC BOOL TLG_IS_LEVEL_STAGE_STATIONARY(TLG_LEVELS eLevel, INT iStage)
|
||
SWITCH eLevel
|
||
CASE TLG_LEVEL_DESERT
|
||
SWITCH iStage
|
||
CASE 1 RETURN TRUE
|
||
ENDSWITCH
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_TOWN
|
||
SWITCH iStage
|
||
CASE 1 RETURN TRUE
|
||
ENDSWITCH
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_FOREST
|
||
SWITCH iStage
|
||
CASE 1 RETURN TRUE
|
||
ENDSWITCH
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_MINE
|
||
SWITCH iStage
|
||
CASE 1 RETURN TRUE
|
||
ENDSWITCH
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
SWITCH iStage
|
||
CASE 1 RETURN TRUE
|
||
ENDSWITCH
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_CURRENT_LEVEL_STAGE_STATIONARY()
|
||
TLG_LEVELS level = sTLGData.eCurrentLevel
|
||
INT iStage = TLG_GET_CURRENT_LEVEL_STAGE()
|
||
RETURN TLG_IS_LEVEL_STAGE_STATIONARY(level, iStage)
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_FINAL_STAGE_IN_LEVEL(TLG_LEVELS eLevel)
|
||
SWITCH eLevel
|
||
CASE TLG_LEVEL_DESERT
|
||
RETURN 1
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_TOWN
|
||
RETURN 1
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_FOREST
|
||
RETURN 1
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_MINE
|
||
RETURN 1
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
RETURN 1
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN 0
|
||
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_FINAL_STAGE_IN_CURRENT_LEVEL()
|
||
RETURN TLG_GET_FINAL_STAGE_IN_LEVEL(sTLGData.eCurrentLevel)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_MENU_OPTION_UNLOCKED(TLG_MENU_OPTIONS option)
|
||
|
||
SWITCH option
|
||
|
||
CASE TLG_WANTED_3
|
||
RETURN IS_LEVEL_UNLOCKED(TLG_LEVEL_FOREST)
|
||
|
||
|
||
CASE TLG_WANTED_4
|
||
RETURN IS_LEVEL_UNLOCKED(TLG_LEVEL_MINE)
|
||
|
||
|
||
CASE TLG_WANTED_5
|
||
RETURN IS_LEVEL_UNLOCKED(TLG_LEVEL_GRAVEYARD)
|
||
|
||
ENDSWITCH
|
||
|
||
RETURN TRUE
|
||
|
||
ENDFUNC
|
||
|
||
|
||
FUNC FLOAT TLG_GET_LOCAL_PLAYER_HEALTH()
|
||
#IF IS_DEBUG_BUILD
|
||
IF GET_COMMANDLINE_PARAM_EXISTS("sc_BadlandsNoDeath")
|
||
RETURN 1.0
|
||
ENDIF
|
||
#ENDIF
|
||
|
||
RETURN sTLGData.sPlayerData[0].fHealth
|
||
ENDFUNC
|
||
|
||
PROC TLG_SET_PLAYER_PED_ANIM_STATE(TLG_PLAYER_PED_ANIM_STATE eNewState)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sCurrentState = TLG_DEBUG_GET_TLG_PLAYER_PED_ANIM_STATE_AS_STRING(sTLGData.ePlayerPedAnimState)
|
||
STRING sNewState = TLG_DEBUG_GET_TLG_PLAYER_PED_ANIM_STATE_AS_STRING(eNewState)
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_PROCESS_PLAYER_PED_ANIMS] TLG_SET_PLAYER_PED_ANIM_STATE: ", sCurrentState, " -> ", sNewState )
|
||
#ENDIF
|
||
sTLGData.ePlayerPedAnimState = eNewState
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_NUMBER_OF_PLAYERS()
|
||
RETURN tlgServerBd.iNumPlayers
|
||
ENDFUNC
|
||
|
||
PROC TLG_STORE_RIVAL_PLAYER_PART_ID()
|
||
IF PARTICIPANT_ID_TO_INT() = 0
|
||
sTLGData.iRivalPart = 1
|
||
ELSE
|
||
sTLGData.iRivalPart = 0
|
||
ENDIF
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_STORE_RIVAL_PLAYER_PART_ID] :", sTLGData.iRivalPart)
|
||
ENDPROC
|
||
|
||
|
||
|
||
PROC TLG_INIT_SOUND()
|
||
INT i
|
||
REPEAT TLG_AUDIO_EFFECT_MAX i
|
||
sTLGDATA.iSoundId[i] = -1
|
||
ENDREPEAT
|
||
ENDPROC
|
||
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Audio scenes
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
PROC TLG_START_AUDIO_SCENE(TLG_AUDIO_SCENE scene)
|
||
SWITCH scene
|
||
CASE TLG_AUDIO_SCENE_MENUS
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_AUDIO_SCENE] [TLG_START_AUDIO_SCENE] Starting scene TLG_AUDIO_SCENE_MENUS / dlc_ch_am_br_in_menus_scene")
|
||
START_AUDIO_SCENE("dlc_ch_am_br_in_menus_scene")
|
||
BREAK
|
||
|
||
CASE TLG_AUDIO_SCENE_GAMEPLAY
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_AUDIO_SCENE] [TLG_START_AUDIO_SCENE] Starting scene TLG_AUDIO_SCENE_GAMEPLAY / dlc_ch_am_br_in_gameplay_scene")
|
||
START_AUDIO_SCENE("dlc_ch_am_br_in_gameplay_scene")
|
||
BREAK
|
||
|
||
CASE TLG_AUDIO_SCENE_POWERUP_ACTIVE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_AUDIO_SCENE] [TLG_START_AUDIO_SCENE] Starting scene TLG_AUDIO_SCENE_POWERUP_ACTIVE / dlc_ch_badlands_revenge_powerup_active_scene")
|
||
START_AUDIO_SCENE("dlc_ch_badlands_revenge_powerup_active_scene")
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
|
||
PROC TLG_STOP_AUDIO_SCENE(TLG_AUDIO_SCENE scene)
|
||
SWITCH scene
|
||
CASE TLG_AUDIO_SCENE_MENUS
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_AUDIO_SCENE] [TLG_STOP_AUDIO_SCENE] Stopping scene TLG_AUDIO_SCENE_MENUS / dlc_ch_am_br_in_menus_scene")
|
||
STOP_AUDIO_SCENE("dlc_ch_am_br_in_menus_scene")
|
||
BREAK
|
||
|
||
CASE TLG_AUDIO_SCENE_GAMEPLAY
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_AUDIO_SCENE] [TLG_STOP_AUDIO_SCENE] Stopping scene TLG_AUDIO_SCENE_GAMEPLAY / dlc_ch_am_br_in_gameplay_scene")
|
||
STOP_AUDIO_SCENE("dlc_ch_am_br_in_gameplay_scene")
|
||
BREAK
|
||
|
||
CASE TLG_AUDIO_SCENE_POWERUP_ACTIVE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_AUDIO_SCENE] [TLG_STOP_AUDIO_SCENE] Stopping scene TLG_AUDIO_SCENE_GAMEPLAY / dlc_ch_am_br_in_gameplay_scene")
|
||
STOP_AUDIO_SCENE("dlc_ch_badlands_revenge_powerup_active_scene")
|
||
BREAK
|
||
ENDSWITCH
|
||
ENDPROC
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Help Text
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
FUNC BOOL TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BITS eHelp)
|
||
RETURN IS_BIT_SET(sTLGData.iHelpTextBitset, ENUM_TO_INT(eHelp))
|
||
ENDFUNC
|
||
|
||
PROC TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BITS eHelp)
|
||
IF NOT TLG_IS_HELP_TEXT_BIT_SET(eHelp)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sHelp = TLG_GET_HELP_TEXT_BIT_AS_STRING(eHelp)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SET_HELP_TEXT_BIT] Setting bit ", sHelp)
|
||
#ENDIF
|
||
SET_BIT(sTLGData.iHelpTextBitset, ENUM_TO_INT(eHelp))
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_CLEAR_HELP_TEXT_BIT(TLG_HELP_TEXT_BITS eHelp)
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(eHelp)
|
||
#IF IS_DEBUG_BUILD
|
||
STRING sHelp = TLG_GET_HELP_TEXT_BIT_AS_STRING(eHelp)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_CLEAR_HELP_TEXT_BIT] Clearing bit ", sHelp)
|
||
#ENDIF
|
||
CLEAR_BIT(sTLGData.iHelpTextBitset, ENUM_TO_INT(eHelp))
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
FUNC INT TLG_GET_SHARPSHOOTER_AWARD_BRONZE_TARGET_SCORE()
|
||
RETURN g_sMptunables.iARCADE_SHARPSHOOTER_BRONZE_SCORE
|
||
// RETURN 5
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_SHARPSHOOTER_AWARD_SILVER_TARGET_SCORE()
|
||
RETURN g_sMptunables.iARCADE_SHARPSHOOTER_SILVER_SCORE
|
||
// RETURN 10
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_SHARPSHOOTER_AWARD_GOLD_TARGET_SCORE()
|
||
RETURN g_sMptunables.iARCADE_SHARPSHOOTER_GOLD_SCORE
|
||
// RETURN 20
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE()
|
||
RETURN g_sMptunables.iARCADE_SHARPSHOOTER_PLATINUM_SCORE
|
||
// RETURN TLG_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_DEADEYE_AWARD_TARGET_ACCURACY()
|
||
RETURN TO_FLOAT(g_sMptunables.iARCADE_DEADEYE_SCORE)
|
||
ENDFUNC
|
||
|
||
PROC TLG_MAINTAIN_HELP_TEXT()
|
||
IF sTLGData.eClientState = TLG_ARCADE_CLIENT_STATE_TITLE_SCREEN
|
||
OR sTLGData.eClientState = TLG_ARCADE_CLIENT_STATE_LEVEL_SELECTION_MENU
|
||
ARCADE_GAMES_HELP_TEXT_PRINT_FOREVER(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_TITLE)
|
||
ELIF sTLGData.eClientState = TLG_ARCADE_CLIENT_STATE_PLAYING
|
||
IF NOT TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_SHOOT_AIM)
|
||
//-- Aim / shoot
|
||
ARCADE_GAMES_HELP_TEXT_PRINT(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_AIM_SHOOT)
|
||
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_SHOOT_AIM)
|
||
ELSE
|
||
//-- Reload
|
||
IF sTLGData.sPlayerData[0].bShouldShowReloadPrompt
|
||
ARCADE_GAMES_HELP_TEXT_PRINT(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_RELOAD)
|
||
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF NOT TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_AT_LEAST_ONE_HEADSHOT)
|
||
//-- Headshot help text
|
||
IF GET_GAME_TIMER() - sTLGData.iLocalLevelRunningTime > 20000
|
||
ARCADE_GAMES_HELP_TEXT_PRINT(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_HEADSHOT)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
//-- Chain together attacks
|
||
IF GET_GAME_TIMER() - sTLGData.iLocalLevelRunningTime > 10000
|
||
ARCADE_GAMES_HELP_TEXT_PRINT(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_CHAIN)
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_SHARPSHOOTER_BRONZE)
|
||
ARCADE_GAMES_HELP_TEXT_PRINT_WITH_NUMBER(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_SHARPSHOOTER, TLG_GET_SHARPSHOOTER_AWARD_BRONZE_TARGET_SCORE())
|
||
ENDIF
|
||
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_SHARPSHOOTER_SILVER)
|
||
ARCADE_GAMES_HELP_TEXT_PRINT_WITH_NUMBER(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_SHARPSHOOTER, TLG_GET_SHARPSHOOTER_AWARD_SILVER_TARGET_SCORE())
|
||
ENDIF
|
||
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_SHARPSHOOTER_GOLD)
|
||
ARCADE_GAMES_HELP_TEXT_PRINT_WITH_NUMBER(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_SHARPSHOOTER, TLG_GET_SHARPSHOOTER_AWARD_GOLD_TARGET_SCORE())
|
||
ENDIF
|
||
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_SHARPSHOOTER_PLATINUM)
|
||
ARCADE_GAMES_HELP_TEXT_PRINT_WITH_NUMBER(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_SHARPSHOOTER, TLG_GET_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE())
|
||
ENDIF
|
||
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_PISTOLS_AT_DAWN)
|
||
ARCADE_GAMES_HELP_TEXT_PRINT(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_PISTOLS_AT_DAWN)
|
||
ENDIF
|
||
|
||
IF TLG_IS_HELP_TEXT_BIT_SET(TLG_HELP_TEXT_BIT_DEADEYE)
|
||
ARCADE_GAMES_HELP_TEXT_PRINT_WITH_NUMBER(ARCADE_GAMES_HELP_TEXT_ENUM_TLGS_DEADEYE, ROUND(TLG_GET_DEADEYE_AWARD_TARGET_ACCURACY()))
|
||
ENDIF
|
||
|
||
|
||
ENDPROC
|
||
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Awards
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
|
||
|
||
PROC TLG_AWARD_SHARPSHOOTER(INT iValue, BOOL bWonPlatinum)
|
||
|
||
SET_MP_INT_CHARACTER_AWARD(MP_AWARD_SHARPSHOOTER,iValue)
|
||
IF bWonPlatinum
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_SHARPSHOOTER_PLATINUM)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_AWARD_SHARPHSOOTER)
|
||
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TSHIRT_HELP(ARCADE_GAME_TSHIRTS_BADLANDS_SHARPSHOOTER)
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
PROC TLG_AWARD_DEADEYE()
|
||
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_DEADEYE, TRUE)
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_DEADEYE))
|
||
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TSHIRT_HELP(ARCADE_GAME_TSHIRTS_BADLANDS_DEADEYE)
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_AWARD_DEADEYE)
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_DEADEYE)
|
||
// ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TROPHY_HELP(ARCADE_GAME_TROPHY_BADLANDS, TRUE)
|
||
ENDPROC
|
||
|
||
PROC TLG_AWARD_PISTOLS_AT_DAWN()
|
||
SET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_PISTOLSATDAWN, TRUE)
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_PISTOLS_AT_DAWN))
|
||
TLG_PLAY_SOUND_AND_RELEASE_NO_POSITION(TLG_AUDIO_EFFECT_PLAYER_AWARD_PISTOLS)
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_PISTOLS_AT_DAWN)
|
||
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TSHIRT_HELP(ARCADE_GAME_TSHIRTS_BADLANDS_PISTOLS)
|
||
ENDPROC
|
||
|
||
PROC TLG_MAINTAIN_PLAYER_AWARDS()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Called...")
|
||
|
||
//-- Kev says the rp is handled at his side
|
||
|
||
BOOL bSharpshooterAwarded = FALSE
|
||
BOOL bDeadeyeAwarded = FALSE
|
||
BOOL bPistolsAtDawnAwarded = FALSE
|
||
|
||
//-- SET_MP_INT_CHARACTER_AWARD(MP_AWARD_SHARPSHOOTER) // // Kill X Eagles across all levels of ‘Light Gun Game’.
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Check MP_AWARD_SHARPSHOOTER:")
|
||
INT iSharpshooter = GET_MP_INT_CHARACTER_AWARD(MP_AWARD_SHARPSHOOTER)
|
||
INT iBirdsShot = TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_ALL_LEVELS()
|
||
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Bronze target: ", TLG_GET_SHARPSHOOTER_AWARD_BRONZE_TARGET_SCORE())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Silver target: ", TLG_GET_SHARPSHOOTER_AWARD_SILVER_TARGET_SCORE())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Gold target: ", TLG_GET_SHARPSHOOTER_AWARD_GOLD_TARGET_SCORE())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Platinum target: ", TLG_GET_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Birds killed: ", iBirdsShot)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Stat value: ", iSharpshooter)
|
||
|
||
|
||
|
||
BOOL bCanAwardGold, bAwardGold
|
||
BOOL bCanAwardSilver, bAwardSilver
|
||
BOOL bCanAwardBronze, bAwardBronze
|
||
|
||
INT iNewValue
|
||
|
||
|
||
iNewValue = iSharpshooter + iBirdsShot
|
||
IF iSharpshooter < TLG_GET_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE()
|
||
IF iBirdsShot > 0
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharpshooter new total: ", iNewValue, " Old: ",iSharpshooter, " Shot this session: ", iBirdsShot)
|
||
IF iNewValue >= TLG_GET_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE()
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_PLATINUM))
|
||
TLG_AWARD_SHARPSHOOTER(iNewValue, TRUE)
|
||
ELSE
|
||
//-- Can only give an award if the old toltal was below the threshhold score for that award
|
||
|
||
IF iSharpshooter < TLG_GET_SHARPSHOOTER_AWARD_GOLD_TARGET_SCORE()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharshooter: bCanAwardGold set")
|
||
bCanAwardGold = TRUE
|
||
ENDIF
|
||
|
||
IF iSharpshooter < TLG_GET_SHARPSHOOTER_AWARD_SILVER_TARGET_SCORE()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharshooter: bCanAwardSilver set")
|
||
bCanAwardSilver = TRUE
|
||
ENDIF
|
||
|
||
IF iSharpshooter < TLG_GET_SHARPSHOOTER_AWARD_BRONZE_TARGET_SCORE()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharshooter: bCanAwardBronze Set")
|
||
bCanAwardBronze = TRUE
|
||
ENDIF
|
||
|
||
IF bCanAwardGold
|
||
IF iNewValue >= TLG_GET_SHARPSHOOTER_AWARD_GOLD_TARGET_SCORE()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharshooter: bAwardGold set")
|
||
bAwardGold = TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF bCanAwardSilver
|
||
IF iNewValue >= TLG_GET_SHARPSHOOTER_AWARD_SILVER_TARGET_SCORE()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharshooter: bAwardSilver set")
|
||
bAwardSilver = TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF bCanAwardBronze
|
||
IF iNewValue >= TLG_GET_SHARPSHOOTER_AWARD_BRONZE_TARGET_SCORE()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharshooter: bAwardBronze set")
|
||
bAwardBronze = TRUE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
IF bAwardGold
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_SHARPSHOOTER_GOLD)
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_GOLD))
|
||
ELIF bAwardSilver
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_SHARPSHOOTER_SILVER)
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_SILVER))
|
||
ELIF bAwardBronze
|
||
TLG_SET_HELP_TEXT_BIT(TLG_HELP_TEXT_BIT_SHARPSHOOTER_BRONZE)
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_BRONZE))
|
||
ENDIF
|
||
|
||
TLG_AWARD_SHARPSHOOTER(iNewValue, FALSE)
|
||
|
||
|
||
|
||
ENDIF
|
||
|
||
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] not awarding sharpshooter as didn't shoot any birds")
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] not awarding sharpshooter as already achieved platinum")
|
||
ENDIF
|
||
|
||
//-- For Sharpshooter Telemetry
|
||
IF iBirdsShot >= TLG_GET_SHARPSHOOTER_AWARD_PLATINUM_TARGET_SCORE()
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_PLATINUM))
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_GOLD))
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_SILVER))
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_BRONZE))
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharpshooter telemetry - set Platinum - set all")
|
||
ELIF iBirdsShot >= TLG_GET_SHARPSHOOTER_AWARD_GOLD_TARGET_SCORE()
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_GOLD))
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_SILVER))
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_BRONZE))
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharpshooter telemetry - set Gold")
|
||
ELIF iBirdsShot >= TLG_GET_SHARPSHOOTER_AWARD_SILVER_TARGET_SCORE()
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_SILVER))
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_BRONZE))
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharpshooter telemetry - set Silver")
|
||
ELIF iBirdsShot >= TLG_GET_SHARPSHOOTER_AWARD_BRONZE_TARGET_SCORE()
|
||
SET_BIT(sTLGData.iChallengesBitsetForTelemetry, ENUM_TO_INT(TLG_CHALLENGE_SHARPSHOOTER_BRONZE))
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Sharpshooter telemetry - set BRONZE")
|
||
ENDIF
|
||
//-- Get over 90% accuracy for an entire playthrough of ‘Light Gun Game’
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS]")
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Check DEADEYE:")
|
||
FLOAT fAccuracy = TLG_GET_PLAYER_ACCURACY_FOR_ALL_LEVELS()
|
||
FLOAT fTargetAccuracy = TLG_GET_DEADEYE_AWARD_TARGET_ACCURACY()
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Target accuracy: ", fTargetAccuracy)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] My accuracy: ", fAccuracy)
|
||
IF NOT GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_DEADEYE)
|
||
IF TLG_ARE_ALL_LEVELS_COMPLETE()
|
||
IF NOT TLG_WAS_ANY_LEVEL_REPLAYED()
|
||
IF fAccuracy > fTargetAccuracy
|
||
TLG_AWARD_DEADEYE()
|
||
bDeadeyeAwarded = TRUE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_INCREASE_CURRENT_LEVEL_STAGE] {DSW} Awarding MP_AWARD_DEADEYE fAccuracy: ", fAccuracy)
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Not awarding MP_AWARD_DEADEYE as accuracy:", fAccuracy)
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Not awarding MP_AWARD_DEADEYE as a level was replayed")
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Not awarding MP_AWARD_DEADEYE as not TLG_ARE_ALL_LEVELS_COMPLETE")
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Already awarded MP_AWARD_DEADEYE")
|
||
bDeadeyeAwarded = TRUE
|
||
ENDIF
|
||
|
||
//-- Complete ‘Light Gun Game’ using only pistols.
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS]")
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Check MP_AWARD_PISTOLSATDAWN:")
|
||
IF NOT GET_MP_BOOL_CHARACTER_AWARD(MP_AWARD_PISTOLSATDAWN)
|
||
IF TLG_ARE_ALL_LEVELS_COMPLETE()
|
||
IF NOT TLG_WAS_ANY_LEVEL_REPLAYED()
|
||
IF NOT TLG_WAS_A_SPECIAL_WEAPON_USED_ON_ANY_LEVEL()
|
||
TLG_AWARD_PISTOLS_AT_DAWN()
|
||
bPistolsAtDawnAwarded = TRUE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] {DSW} Awarding MP_AWARD_PISTOLSATDAWN. ")
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Not awarding MP_AWARD_PISTOLSATDAWN as TLG_WAS_A_SPECIAL_WEAPON_USED_ON_ANY_LEVEL")
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Not awarding MP_AWARD_PISTOLSATDAWN as TLG_WAS_ANY_LEVEL_REPLAYED")
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Not awarding MP_AWARD_PISTOLSATDAWN as not TLG_ARE_ALL_LEVELS_COMPLETE")
|
||
ENDIF
|
||
ELSE
|
||
bPistolsAtDawnAwarded = TRUE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Already awarded MP_AWARD_PISTOLSATDAWN")
|
||
ENDIF
|
||
|
||
//-- T-shirt / trophy for completing everything
|
||
BOOL bOwnsPenthouse
|
||
|
||
IF bSharpshooterAwarded
|
||
AND bPistolsAtDawnAwarded
|
||
AND bDeadeyeAwarded
|
||
bOwnsPenthouse = DOES_PLAYER_OWN_A_CASINO_APARTMENT(PLAYER_ID())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_MAINTAIN_PLAYER_AWARDS] Everything achieved, unlocking final t-shirt / trophy. Penthouse? ", bOwnsPenthouse)
|
||
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TSHIRT_HELP(ARCADE_GAME_TSHIRTS_BADLANDS_COMPLETE)
|
||
ARCADE_CABINET_FLOW_NOTIFICATIONS_SET_SHOW_TROPHY_HELP(ARCADE_GAME_TROPHY_BADLANDS, bOwnsPenthouse)
|
||
sTLGData.bWonTrophyThisSession = TRUE
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
|
||
|
||
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
/// Util
|
||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
||
FUNC BOOL TLG_SHOULD_REMOVE_COVER_WHEN_OFF_SCREEN(INT iCover)
|
||
TLG_ASSET_TYPES eType = sTLGData.sCoverData[iCover].eType
|
||
|
||
SWITCH eType
|
||
CASE TLG_ASSET_OUTHOUSE
|
||
CASE TLG_ASSET_COFFIN
|
||
IF sTLGData.sCoverData[iCover].iHitCount > 0
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
|
||
|
||
|
||
FUNC BOOL TLG_IS_COVER_ASSET_TYPE_BUILDING(TLG_ASSET_TYPES eCover)
|
||
RETURN (TLG_IS_COVER_TYPE_LARGE_BUILDING(eCover) OR TLG_IS_COVER_TYPE_SMALL_BUILDING(eCover))
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_SHOULD_CHECK_FOR_PED_BEHIND_COVER_TYPE(TLG_ASSET_TYPES eCover)
|
||
SWITCH eCover
|
||
CASE TLG_ASSET_CRATE_1
|
||
CASE TLG_ASSET_COFFIN
|
||
CASE TLG_ASSET_OUTHOUSE
|
||
CASE TLG_ASSET_WATER_TOWER
|
||
CASE TLG_ASSET_BUILDING_1
|
||
CASE TLG_ASSET_BUILDING_2
|
||
CASE TLG_ASSET_BUILDING_3
|
||
CASE TLG_ASSET_BUILDING_4
|
||
CASE TLG_ASSET_FOREST_TREE_1
|
||
CASE TLG_ASSET_FOREST_TREE_2
|
||
CASE TLG_ASSET_STACKED_CRATES_2
|
||
CASE TLG_ASSET_BIG_TOMB
|
||
CASE TLG_ASSET_TOMBSTONE_2
|
||
CASE TLG_ASSET_TOMBSTONE_1
|
||
// CASE TLG_ASSET_BUILDING_5
|
||
// CASE TLG_ASSET_BUILDING_6
|
||
// CASE TLG_ASSET_BUILDING_7
|
||
// CASE TLG_ASSET_BUILDING_8
|
||
|
||
RETURN TRUE
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_COVER_TYPE_SCALE_FOR_LANE(TLG_ASSET_TYPES eType, INT iLane)
|
||
FLOAT fScale = 1.0
|
||
|
||
SWITCH iLane
|
||
CASE ciTLG_LANE_BACKGROUND
|
||
IF eType = TLG_ASSET_COFFIN
|
||
fScale = 1.1
|
||
ELSE
|
||
fScale = 0.75
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE ciTLG_LANE_MIDDLE
|
||
IF eType = TLG_ASSET_OUTHOUSE
|
||
OR eType = TLG_ASSET_COFFIN
|
||
fScale = 1.1
|
||
ENDIF
|
||
BREAK
|
||
|
||
CASE ciTLG_LANE_FOREGROUND
|
||
fScale = 2.5
|
||
BREAK
|
||
|
||
CASE ciTLG_LANE_POPUP_RHS
|
||
CASE ciTLG_LANE_POPUP_LHS
|
||
fScale = 0.75
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN fScale
|
||
ENDFUNC
|
||
|
||
PROC SET_ENEMY_NEW_STOPPING_POINT_AFTER_BLOCKED_COVER(INT iEnemy, INT iBlockingCover)
|
||
FLOAT fCoverWidth = sTLGData.sCoverData[iBlockingCover].fCoverWidth
|
||
FLOAT fNewXOffset
|
||
//FLOAT fScale
|
||
// FLOAT fTemp1
|
||
//FLOAT fTemp2
|
||
// FLOAT fEnemyX = sTLGData.sEnemyData[iEnemy].vSpritePos.x
|
||
// FLOAT fEnemyWidth = sTLGData.sEnemyData[iEnemy].vSize.x
|
||
|
||
INT iLane = sTLGData.sEnemyData[iEnemy].iEnemyLane
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_HANDLE_ENEMIES] [TLG_ACTIVE] [SET_ENEMY_NEW_STOPPING_POINT_AFTER_BLOCKED_COVER] {dsw} ")
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_HANDLE_ENEMIES] [TLG_ACTIVE] [SET_ENEMY_NEW_STOPPING_POINT_AFTER_BLOCKED_COVER] {dsw} Enemy: ",iEnemy, " Old Stopping pos: ", sTLGData.sEnemyData[iEnemy].fStoppingX, " Lane: ",sTLGData.sEnemyData[iEnemy].iEnemyLane, " Type:", TLG_GET_ENEMY_TYPE_AS_STRING(sTLGData.sEnemyData[iEnemy].iEnemyType)," Blocked by cover. ", iBlockingCover, " Cover Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[iBlockingCover].eType), " Width / 2: ", (fCoverWidth/2.0))
|
||
#ENDIF
|
||
|
||
SWITCH TLG_GET_CURRENT_LEVEL()
|
||
CASE TLG_LEVEL_FOREST
|
||
fNewXOffset = cfBASE_SCREEN_WIDTH
|
||
|
||
IF NOT sTLGData.sEnemyData[iEnemy].bReverse
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX -= fNewXOffset
|
||
ELSE
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX += fNewXOffset
|
||
ENDIF
|
||
|
||
BREAK
|
||
|
||
CASE TLG_LEVEL_GRAVEYARD
|
||
|
||
IF iLane = 0
|
||
IF sTLGData.sEnemyData[iEnemy].bReverse
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX += 16.0 //(fEnemyX - fTemp2) - fEnemyWidth
|
||
ELSE
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX -= 20.0 //(fTemp1 - fEnemyX) + fEnemyWidth
|
||
ENDIF
|
||
ELIF iLane = 1
|
||
IF sTLGData.sEnemyData[iEnemy].bReverse
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX += 11.0 //(fEnemyX - fTemp2) - fEnemyWidth
|
||
ELSE
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX -= 15.0 //(fTemp1 - fEnemyX) + fEnemyWidth
|
||
ENDIF
|
||
ENDIF
|
||
|
||
BREAK
|
||
DEFAULT
|
||
fNewXOffset = fCoverWidth * 0.75
|
||
|
||
IF NOT sTLGData.sEnemyData[iEnemy].bReverse
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX -= fNewXOffset
|
||
ELSE
|
||
sTLGData.sEnemyData[iEnemy].fStoppingX += fNewXOffset
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
|
||
|
||
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_HANDLE_ENEMIES] [TLG_ACTIVE] [SET_ENEMY_NEW_STOPPING_POINT_AFTER_BLOCKED_COVER] {dsw} Reverse: ", sTLGData.sEnemyData[iEnemy].bReverse, " New stopping pos: ", sTLGData.sEnemyData[iEnemy].fStoppingX, " Current Pos: ", sTLGData.sEnemyData[iEnemy].vSpritePos.x)
|
||
#ENDIF
|
||
|
||
ENDPROC
|
||
|
||
FUNC BOOL TLG_IS_COORD_BLOCKED_BY_COVER(INT iLane, FLOAT fXCoord, INT &iBlockingCover)
|
||
INT i
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
FLOAT fTemp1, fTemp2
|
||
#ENDIF
|
||
FLOAT fScale
|
||
REPEAT ciTLG_MAX_COVER i
|
||
IF sTLGData.sCoverData[i].iCoverLane = iLane
|
||
IF TLG_SHOULD_CHECK_FOR_PED_BEHIND_COVER_TYPE(sTLGData.sCoverData[i].eType)
|
||
fScale = TLG_GET_COVER_TYPE_SCALE_FOR_LANE(sTLGData.sCoverData[i].eType, iLane)
|
||
#IF IS_DEBUG_BUILD
|
||
IF sTLGData.sCoverData[i].eType = TLG_ASSET_COFFIN
|
||
fTemp1 = sTLGData.sCoverData[i].vSpritePos.x + ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0)
|
||
fTemp2 = sTLGData.sCoverData[i].vSpritePos.x - ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_COORD_BLOCKED_BY_COVER] Checking COFFIN ", i, " Lane: ", iLane, " Pos: ", sTLGData.sCoverData[i].vSpritePos.x, " +Width/2: ", fTemp1, " -Width/2: ", fTemp2, " Compare with ", fXCoord, " Never render? ", sTLGData.sCoverData[i].bNeverRender)
|
||
ELIF sTLGData.sCoverData[i].eType = TLG_ASSET_FOREST_TREE_2
|
||
fTemp1 = sTLGData.sCoverData[i].vSpritePos.x + ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0)
|
||
fTemp2 = sTLGData.sCoverData[i].vSpritePos.x - ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_COORD_BLOCKED_BY_COVER] Checking TREE2 ", i, " Lane: ", iLane, " Pos: ", sTLGData.sCoverData[i].vSpritePos.x, " +Width/2: ", fTemp1, " -Width/2: ", fTemp2, " Compare with ", fXCoord)
|
||
ENDIF
|
||
#ENDIF
|
||
FLOAT fMaxCover = sTLGData.sCoverData[i].vSpritePos.x + ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0)
|
||
FLOAT fMinCover = sTLGData.sCoverData[i].vSpritePos.x - ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0)
|
||
IF fXCoord >= fMinCover AND fXCoord <= fMaxCover
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_COORD_BLOCKED_BY_COVER] {DSW} X Coord ", fXCoord, " Lane: ", iLane, " Blocked by cover ", i, " Type: ", TLG_GET_ASSET_TYPE_AS_STRING(sTLGData.sCoverData[i].eType), " Cover X pos:", sTLGData.sCoverData[i].vSpritePos.x, " Width / 2: ", ((sTLGData.sCoverData[i].fCoverWidth * fScale) / 2.0))
|
||
#ENDIF
|
||
iBlockingCover = i
|
||
RETURN TRUE
|
||
ENDIF
|
||
ENDIF
|
||
#IF IS_DEBUG_BUILD
|
||
ELSE
|
||
IF sTLGData.sCoverData[i].eType = TLG_ASSET_COFFIN
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_COORD_BLOCKED_BY_COVER] Not Checking TLG_ASSET_COFFIN", i, " as cover lane ", sTLGData.sCoverData[i].iCoverLane, " <> ", iLane)
|
||
ELIF sTLGData.sCoverData[i].eType = TLG_ASSET_FOREST_TREE_2
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_COORD_BLOCKED_BY_COVER] Not Checking TREE2", i, " as cover lane ", sTLGData.sCoverData[i].iCoverLane, " <> ", iLane)
|
||
ENDIF
|
||
#ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_COVER_ASSET_TYPE_SUITABLE_FOR_COVER(TLG_ASSET_TYPES eType)
|
||
SWITCH eType
|
||
CASE TLG_ASSET_BARRELS
|
||
CASE TLG_ASSET_FENCE
|
||
CASE TLG_ASSET_ROCK_SMALL
|
||
CASE TLG_ASSET_ROCK_LARGE
|
||
CASE TLG_ASSET_BUSH_2
|
||
CASE TLG_ASSET_SPECIAL_TNT_BARREL_1
|
||
CASE TLG_ASSET_STACKED_CRATES_1
|
||
RETURN TRUE
|
||
BREAK
|
||
|
||
CASE TLG_ASSET_BUSH_1
|
||
IF TLG_GET_CURRENT_LEVEL() != TLG_LEVEL_GRAVEYARD
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
FUNC BOOL TLG_IS_POSITION_ON_SCREEN(VECTOR_2D vPos, FLOAT fTolerance = 0.0)
|
||
FLOAT fMinOnScreen = cfLEFT_SCREEN_LIMIT + fTolerance
|
||
FLOAT fMaxOnScreen = cfRIGHT_SCREEN_LIMIT - fTolerance
|
||
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_POSITION_ON_SCREEN] ")
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_POSITION_ON_SCREEN] fMinOnScreen: ",fMinOnScreen, " fMaxOnScreen: ", fMaxOnScreen)
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_IS_POSITION_ON_SCREEN] vPos.x : ", vPos.x )
|
||
RETURN (vPos.x > fMinOnScreen AND vPos.x < fMaxOnScreen)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_COVER_ON_SCREEN(INT iCover, FLOAT fTolerance = 0.0)
|
||
RETURN TLG_IS_POSITION_ON_SCREEN(sTLGData.sCoverData[iCover].vSpritePos, fTolerance)
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_COVER_SET_TO_RENDER(INT iCover)
|
||
RETURN sTLGData.sCoverData[iCover].bRendering
|
||
ENDFUNC
|
||
FUNC BOOL TOG_IS_ENEMY_ON_SCREEN(INT iEnemy, FLOAT fTolerance = 0.0)
|
||
RETURN TLG_IS_POSITION_ON_SCREEN(sTLGData.sEnemyData[iEnemy].vSpritePos, fTolerance)
|
||
ENDFUNC
|
||
|
||
/// PURPOSE:
|
||
/// As the enemy ped passes scenery, check if the scenery can be used as 'cover'
|
||
/// PARAMS:
|
||
/// iCover -
|
||
/// iEnemy -
|
||
/// RETURNS:
|
||
///
|
||
FUNC BOOL TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE(INT iCover, INT iEnemy)
|
||
IF sTLGData.sEnemyData[iEnemy].iEnemyLane = 2
|
||
RETURN FALSE
|
||
ENDIF
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " Cover: ", iCover)
|
||
|
||
TLG_ASSET_TYPES eCover = sTLGData.sCoverData[iCover].eType
|
||
|
||
//-- Can't use cover that's in a different lane
|
||
IF sTLGData.sEnemyData[iEnemy].iEnemyLane != sTLGData.sCoverData[iCOver].iCoverLane
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " Lane doesn't match. Enemy Lane: ", sTLGData.sEnemyData[iEnemy].iEnemyLane, " Cover Lane :", sTLGData.sCoverData[iCOver].iCoverLane)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
|
||
//-- Some cover types not suitable for cover
|
||
IF NOT TLG_IS_COVER_ASSET_TYPE_SUITABLE_FOR_COVER(eCover)
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " Type not suitable for cover ")
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
IF NOT TLG_IS_COVER_SET_TO_RENDER(iCover)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
VECTOR_2D vEnemy = sTLGData.sEnemyData[iEnemy].vSpritePos
|
||
VECTOR_2D vCover = sTLGData.sCoverData[iCover].vSpritePos
|
||
FLOAT fCoverWidth = sTLGData.sCoverData[iCover].fCoverWidth
|
||
FLOAT fMaxCover
|
||
FLOAT fMinCover
|
||
FLOAT fScale = TLG_GET_COVER_TYPE_SCALE_FOR_LANE(eCover, sTLGData.sCoverData[iCOver].iCoverLane)
|
||
fCoverWidth *= fScale
|
||
FLOAT fYDiff = ABSF(vEnemy.y - vCover.y)
|
||
IF NOT TLG_IS_COVER_ON_SCREEN(iCover)
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " Cover not on screen")
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
BOOL bFromLeft = sTLGData.sEnemyData[iEnemy].bReverse
|
||
|
||
|
||
//-- Don't stop too close to cover that's just appeared / about to leave the screen
|
||
IF bFromLeft
|
||
IF vCover.x < cfBASE_SCREEN_WIDTH / 3.0
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " as enemy coming from left and cover < cfBASE_SCREEN_WIDTH / 3")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ELSE
|
||
IF vCover.x > cfRIGHT_SCREEN_LIMIT - 100
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " as enemy coming from right and cover nearly at RHS")
|
||
RETURN FALSE
|
||
ENDIF
|
||
ENDIF
|
||
|
||
//-- Cover in the same lane should have a similar Y position to enemies in the same lane. Occasionally doesn't, mainly for draw-order reasons,
|
||
//-- so don't use any cover where there is a large difference in the y position
|
||
IF fYDiff > 175.0
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " Y Diff too great: ", fYDiff)
|
||
RETURN FALSE
|
||
ENDIF
|
||
|
||
//-- Check if we're actually passing any cover
|
||
fMaxCover = (vCover.x + ( fCoverWidth / 2.0) )// + 10.0
|
||
fMinCover = (vCover.x - ( fCoverWidth / 2.0 ))// - 10.0
|
||
IF vEnemy.x > fMinCover
|
||
AND vEnemy.x < fMaxCover
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] [TLG_HANDLE_ENEMIES] Enemy ", iEnemy, " Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " Enemy pos: ", sTLGData.sEnemyData[iEnemy].vSpritePos.x)
|
||
#ENDIF
|
||
|
||
RETURN TRUE
|
||
ELSE
|
||
//CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_IS_COVER_SUITABLE_FOR_ENEMY_TO_USE] Enemy ", iEnemy, " NOT Stopping to use cover ", iCover, " Cover type: ", TLG_GET_ASSET_TYPE_AS_STRING(eCover), " Xpos not sufficient. Enemy x: ", vEnemy.x, " Cover Min: ", fMinCover, " Cover Max: ", fMaxCover)
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_SHOULD_COUNT_ENEMY_AS_ALIVE(INT iEnemy)
|
||
SWITCH sTLGData.sEnemyData[iEnemy].iEnemyType
|
||
CASE TLG_OUTHOUSE_ENEMY
|
||
CASE TLG_COFFIN_ENEMY
|
||
IF sTLGData.sEnemyData[iEnemy].eState != TLG_DYING
|
||
AND sTLGData.sEnemyData[iEnemy].eState != TLG_INACTIVE
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
|
||
DEFAULT
|
||
IF sTLGData.sEnemyData[iEnemy].eState != TLG_INACTIVE
|
||
RETURN TRUE
|
||
ENDIF
|
||
BREAK
|
||
ENDSWITCH
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_ENEMIES_LEFT_ALIVE_FOR_CURRENT_STAGE()
|
||
INT iStage = TLG_GET_CURRENT_LEVEL_STAGE()
|
||
INT i = 0
|
||
INT iCount = 0
|
||
|
||
FOR i = 0 TO ciTLG_MAX_ENEMIES - 1
|
||
IF sTLGData.sEnemyData[i].iLevelStage = iStage
|
||
IF TLG_SHOULD_COUNT_ENEMY_AS_ALIVE(i)
|
||
iCount++
|
||
ENDIF
|
||
ENDIF
|
||
ENDFOR
|
||
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [GD] Number of enemies active in stage ", iStage, ": ",iCount)
|
||
RETURN iCount
|
||
ENDFUNC
|
||
|
||
FUNC INT TLG_GET_TOTAL_NUMBER_OF_ENEMIES_ALIVE()
|
||
|
||
INT i, iCount
|
||
INT iNumStages = TLG_GET_CURRENT_LEVEL_NUMBER_OF_STAGES()
|
||
|
||
IF iNumStages <= 1
|
||
|
||
FOR i = 0 TO ciTLG_MAX_ENEMIES - 1
|
||
IF sTLGData.sEnemyData[i].eState != TLG_INACTIVE
|
||
iCount ++
|
||
ENDIF
|
||
ENDFOR
|
||
ELSE
|
||
IF TLG_GET_CURRENT_LEVEL_STAGE() < (iNumStages - 1)
|
||
RETURN 99
|
||
ELSE
|
||
FOR i = 0 TO ciTLG_MAX_ENEMIES - 1
|
||
IF TLG_SHOULD_COUNT_ENEMY_AS_ALIVE(i)
|
||
iCount ++
|
||
ENDIF
|
||
|
||
ENDFOR
|
||
ENDIF
|
||
ENDIF
|
||
|
||
// CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [GD] Number of enemies active: ",iCount)
|
||
|
||
RETURN iCount
|
||
|
||
ENDFUNC
|
||
|
||
|
||
FUNC FLOAT TLG_GET_ENEMY_TYPE_SCALE_FOR_LANE(TLG_ENEMY_TYPES eType, INT iLane)
|
||
FLOAT fScale = 1.0
|
||
|
||
IF iLane = 0
|
||
IF eType = TLG_OUTHOUSE_ENEMY
|
||
fScale = 1.0
|
||
ELSE
|
||
fScale = 0.9
|
||
ENDIF
|
||
ELIF iLane = 1
|
||
IF eType = TLG_OUTHOUSE_ENEMY
|
||
OR eType = TLG_COFFIN_ENEMY
|
||
fScale = 1.1 //TLG_GET_DEBUG_FLOAT()
|
||
ELSE
|
||
fScale = 1.2
|
||
ENDIF
|
||
ELIF iLane = 2
|
||
fScale = 1.2
|
||
ELIF iLane = ciTLG_LANE_POPUP_RHS
|
||
OR iLane = ciTLG_LANE_POPUP_LHS
|
||
fScale = 0.9
|
||
ENDIF
|
||
|
||
RETURN fScale
|
||
ENDFUNC
|
||
|
||
PROC TLG_KILL_ALL_ENEMIES_IN_RANGE(VECTOR_2D vPos, FLOAT fMaxDist = 250.0)
|
||
INT i
|
||
VECTOR_2D vEnemyPos
|
||
|
||
FLOAT fXDist
|
||
FLOAT fYDist
|
||
FLOAT fDist2
|
||
|
||
REPEAT ciTLG_MAX_ENEMIES i
|
||
IF sTLGData.sEnemyData[i].eState = TLG_ACTIVE
|
||
OR sTLGData.sEnemyData[i].eState = TLG_SHOOTING
|
||
IF sTLGData.sEnemyData[i].iEnemyType != TLG_OUTHOUSE_ENEMY
|
||
|
||
vEnemyPos = sTLGData.sEnemyData[i].vSpritePos
|
||
fXDist = vEnemyPos.x - vPos.x
|
||
fYDist = vEnemyPos.y - vPos.y
|
||
fDist2 = (fXDist * fXDist) + (fYDist * fYDist)
|
||
CPRINTLN(DEBUG_MINIGAME, "[TLG_KILL_ALL_ENEMIES_IN_RANGE] {DSW} Checking Enemy ", i, " Dist: ", SQRT(fDist2))
|
||
IF (fDist2 <= (fMaxDist * fMaxDist))
|
||
// IF vEnemyPos.x >= x1 AND vEnemyPos.y >= y1
|
||
// IF vEnemyPos.x <= x2 AND vEnemyPos.y <= y2
|
||
sTLGData.sEnemyData[i].iHealth = 0
|
||
sTLGData.sEnemyData[i].eState = TLG_DYING
|
||
TLG_ADD_TO_LOCAL_PLAYER_SCORE(TLG_SCORE_TYPE_ENEMY_EXPLOSION)
|
||
#IF IS_DEBUG_BUILD
|
||
CPRINTLN(DEBUG_MINIGAME, "[TLG_KILL_ALL_ENEMIES_IN_RANGE] {dsw} Enemy ", i, " set as Dying as killed by explosion. Type: ", TLG_GET_ENEMY_TYPE_AS_STRING(sTLGData.sEnemyData[i].iEnemyType))
|
||
#ENDIF
|
||
// ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
ENDPROC
|
||
|
||
//PROC TLG_KILL_ALL_ENEMIES_IN_AREA(VECTOR_2D vPos, VECTOR_2D vSize, FLOAT fScale = 1.0)
|
||
// INT i
|
||
// VECTOR_2D vEnemyPos
|
||
// FLOAT x1, y1, x2, y2
|
||
//
|
||
// vSize.x *= fScale
|
||
// vSize.y *= fScale
|
||
//
|
||
// x1 = vPos.x - vSize.x / 2.0
|
||
// y1 = vPos.y - vSize.y / 2.0
|
||
// x2 = vPos.x + vSize.x / 2.0
|
||
// y2 = vPos.y - vSize.y / 2.0
|
||
//
|
||
// REPEAT ciTLG_MAX_ENEMIES i
|
||
// IF sTLGData.sEnemyData[i].eState = TLG_ACTIVE
|
||
// OR sTLGData.sEnemyData[i].eState = TLG_SHOOTING
|
||
// IF sTLGData.sEnemyData[i].iEnemyType != TLG_OUTHOUSE_ENEMY
|
||
// vEnemyPos = sTLGData.sEnemyData[i].vSpritePos
|
||
// IF vEnemyPos.x >= x1 AND vEnemyPos.y >= y1
|
||
// IF vEnemyPos.x <= x2 AND vEnemyPos.y <= y2
|
||
// sTLGData.sEnemyData[i].iHealth = 0
|
||
// sTLGData.sEnemyData[i].eState = TLG_DYING
|
||
// TLG_ADD_TO_LOCAL_PLAYER_SCORE(TLG_SCORE_TYPE_ENEMY_EXPLOSION)
|
||
// #IF IS_DEBUG_BUILD
|
||
// CPRINTLN(DEBUG_MINIGAME, "[TLG_KILL_ALL_ENEMIES_IN_AREA] {dsw} Enemy ", i, " set as Dying as iHealth <= 0. Type: ", TLG_GET_ENEMY_TYPE_AS_STRING(sTLGData.sEnemyData[i].iEnemyType))
|
||
// #ENDIF
|
||
// ENDIF
|
||
// ENDIF
|
||
// ENDIF
|
||
// ENDIF
|
||
// ENDREPEAT
|
||
//
|
||
//ENDPROC
|
||
|
||
FUNC INT TLG_GET_CLOSEST_PROP_TO_COORD(VECTOR_2D vCoord)
|
||
FLOAT distanceX, distanceY, fDistance
|
||
FLOAT fDistanceToCheck = 120.0
|
||
FLOAT fClosest = 99999999.0
|
||
INT iClosest = -1
|
||
INT i
|
||
|
||
REPEAT ciTLG_MAX_COVER i
|
||
distanceX = vCoord.x - sTLGData.sCoverData[i].vSpritePos.x
|
||
distanceY = vCoord.y - sTLGData.sCoverData[i].vSpritePos.y
|
||
fDistance = SQRT(distanceX * distanceX + distanceY * distanceY)
|
||
|
||
IF fDistance <= fDistanceToCheck
|
||
IF fDistance <= fClosest
|
||
fClosest = fDistance
|
||
iClosest = i
|
||
ENDIF
|
||
ENDIF
|
||
ENDREPEAT
|
||
|
||
|
||
|
||
RETURN iClosest
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_PLAYER_PLAYING()
|
||
RETURN sTLGData.eClientState = TLG_ARCADE_CLIENT_STATE_PLAYING
|
||
ENDFUNC
|
||
|
||
FUNC FLOAT TLG_GET_PLAYER_DAMAGE_FOR_TYPE(TLG_DAMAGE_PLAYER_TYPES eType)
|
||
SWITCH eType
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_BULLET RETURN 0.1
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_DYNAMITE RETURN 0.3
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_BEAR RETURN 0.2
|
||
CASE TLG_DAMAGE_PLAYER_TYPE_SNAKE_OIL RETURN 0.2
|
||
ENDSWITCH
|
||
|
||
RETURN 0.0
|
||
ENDFUNC
|
||
|
||
PROC TLG_DAMAGE_PLAYER(TLG_DAMAGE_PLAYER_TYPES eType, FLOAT fModifier = 1.0)
|
||
IF TLG_IS_PLAYER_BIT_SET(TLG_PLAYER_BIT_INVULNERABILE)
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DAMAGE_PLAYER] Not Damaging as TLG_PLAYER_BIT_INVULNERABILE is set")
|
||
#ENDIF
|
||
|
||
EXIT
|
||
ENDIF
|
||
|
||
IF eType = TLG_DAMAGE_PLAYER_TYPE_SNAKE_OIL
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DAMAGE_PLAYER] Not Damaging as TLG_DAMAGE_PLAYER_TYPE_SNAKE_OIL and health too low")
|
||
#ENDIF
|
||
|
||
|
||
IF TLG_GET_LOCAL_PLAYER_HEALTH() <= 0.3
|
||
EXIT
|
||
ENDIF
|
||
ENDIF
|
||
|
||
FLOAT fDamage = TLG_GET_PLAYER_DAMAGE_FOR_TYPE(eType)
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DAMAGE_PLAYER] Called. Type: ", TLG_GET_DAMAGE_PLAYER_TYPE_AS_STRING(eType), " Damage: ", fDamage, " Modifier: ", fModifier)
|
||
#ENDIF
|
||
|
||
fDamage *= fModifier
|
||
sTLGData.sPlayerData[0].fHealth = CLAMP(sTLGData.sPlayerData[0].fHealth - fDamage, 0.0, 1.0)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_DAMAGE_PLAYER] New health: ", sTLGData.sPlayerData[0].fHealth)
|
||
|
||
//-- Play audio for player taking damage
|
||
IF sTLGData.sPlayerData[0].fHealth > 0.0
|
||
TLG_PLAY_PLAYER_TAKE_DAMAGE_AUDIO(sTLGData.sPlayerData[0].fHealth)
|
||
ENDIF
|
||
|
||
IF sTLGData.sPlayerData[0].fHealth = 0
|
||
sTLGData.sPlayerData[0].iHitCountdown = 128
|
||
ELSE
|
||
sTLGData.sPlayerData[0].iHitCountdown = 3
|
||
ENDIF
|
||
ENDPROC
|
||
|
||
FUNC BOOL TLG_IS_BEAR(INT i)
|
||
RETURN sTLGData.sEnemyData[i].iEnemyType = TLG_FOREGROUND_ENEMY_BEAR
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_IS_GUN_CART(INT i)
|
||
RETURN sTLGData.sEnemyData[i].iEnemyType = TLG_CART_1
|
||
ENDFUNC
|
||
|
||
FUNC BOOL TLG_SHOULD_SKIP_LEADERBOARD()
|
||
// url:bugstar:6153380 - [R4062] Arcade Games - Badlands Revenge II - A UGC restricted sub account can view the high score initials posted by another player (and vice versa)
|
||
IF NOT IS_ACCOUNT_OVER_17_FOR_UGC()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SHOULD_SKIP_LEADERBOARD] True - IS_ACCOUNT_OVER_17_FOR_UGC")
|
||
RETURN TRUE
|
||
ENDIF
|
||
|
||
RETURN FALSE
|
||
ENDFUNC
|
||
|
||
PROC TLG_SEND_TELEMETRY()
|
||
// url:bugstar:6118446 - Telemetry - Script - Please add a new metric that triggers at the end of the new arcade game[Badlands Revenge II] added for Casino Heist
|
||
STRUCT_ARCADE_CABINET sTelemetry
|
||
INT i
|
||
sTelemetry.gameType = HASH("ARCADE_CABINET_CH_LAST_GUNSLINGERS")
|
||
sTelemetry.matchId = tlgServerBd.iMatchId
|
||
|
||
IF IS_BIT_SET(tlgServerBd.iServerBitset, ENUM_TO_INT(TLG_SERVER_BIT_TWO_PLAYERS_JOINED))
|
||
sTelemetry.numPlayers = 2
|
||
ELSE
|
||
sTelemetry.numPlayers = 1
|
||
ENDIF
|
||
|
||
IF TLG_ARE_ALL_LEVELS_COMPLETE()
|
||
sTelemetry.level = 5
|
||
ELSE
|
||
REPEAT TLG_MAX_LEVELS i
|
||
IF TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_LEVEL(i) = 0
|
||
sTelemetry.level = i - 1
|
||
IF sTelemetry.level < 1
|
||
sTelemetry.level = 1
|
||
ENDIF
|
||
BREAKLOOP
|
||
ENDIF
|
||
ENDREPEAT
|
||
ENDIF
|
||
sTelemetry.kills = TLG_GET_TOTAL_ENEMY_HITS_FOR_ALL_LEVELS() + TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_ALL_LEVELS()
|
||
sTelemetry.timePlayed = GET_GAME_TIMER() - sTLGData.iTotalTimePlayed
|
||
sTelemetry.score = TLG_GET_LOCAL_PLAYER_HI_SCORE_FOR_ALL_LEVELS()
|
||
|
||
// TLG_CHALLENGE_SHARPSHOOTER = 0
|
||
// TLG_CHALLENGE_DEADEYE,
|
||
// TLG_CHALLENGE_PISTOLS_AT_DAWN
|
||
|
||
sTelemetry.challenges = sTLGData.iChallengesBitsetForTelemetry
|
||
sTelemetry.powerUps = TLG_GET_TOTAL_NUMBER_OF_POWERUPS_COLLECTED_FOR_ALL_LEVELS()
|
||
|
||
IF sTLGData.bWonTrophyThisSession
|
||
sTelemetry.reward = ARCADE_GAME_GET_TROPHY_ID_FOR_TELEMETRY(ARCADE_GAME_TROPHY_BADLANDS)
|
||
ELSE
|
||
sTelemetry.reward = 0
|
||
ENDIf
|
||
|
||
IF PLAYER_ID() != INVALID_PLAYER_INDEX()
|
||
IF IS_PLAYER_IN_AUTO_SHOP(PLAYER_ID())
|
||
sTelemetry.location = HASH("SIMPLE_INTERIOR_TYPE_AUTO_SHOP")
|
||
ELIF IS_PLAYER_IN_ARCADE_PROPERTY(PLAYER_ID())
|
||
sTelemetry.location = HASH("SIMPLE_INTERIOR_TYPE_ARCADE")
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_SEND_TELEMETRY] not in auto shop or arcade, setting sRoadArcadeTelemetry.location = 0")
|
||
sTelemetry.location = 0
|
||
ENDIF
|
||
ELSE
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] [TLG_SEND_TELEMETRY] Invalid Player ID, setting sTelemetry.location = 0")
|
||
sTelemetry.location = 0
|
||
ENDIF
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY]")
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.gameType: ", sTelemetry.gameType)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.matchId: ", sTelemetry.matchId)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.numPlayers: ", sTelemetry.numPlayers)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.level: ", sTelemetry.level)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.kills: ", sTelemetry.kills)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.timePlayed: ", sTelemetry.timePlayed)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.score: ", sTelemetry.score)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.challenges: ", sTelemetry.score)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.powerUps: ", sTelemetry.powerUps)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.reward: ", sTelemetry.reward)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_SEND_TELEMETRY] sTelemetry.reward: ", sTelemetry.location)
|
||
PLAYSTATS_ARCADE_CABINET(sTelemetry)
|
||
ENDPROC
|
||
|
||
|
||
#IF IS_DEBUG_BUILD
|
||
PROC TLG_OUTPUT_LEVEL_COMPLETE_DATA()
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Level complete..... ", TLG_GET_LEVEL_NAME_AS_STRING(sTLGData.eCurrentLevel))
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Shots Fired: ", TLG_GET_TOTAL_SHOTS_FIRED_IN_CURRENT_LEVEL())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Enemies Hit: ", TLG_GET_TOTAL_ENEMY_HITS_FOR_CURRENT_LEVEL())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Hostages Saved: ", TLG_GET_TOTAL_NUMBER_OF_HOSTAGES_SAVED_FOR_CURRENT_LEVEL())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Birds Killed: ", TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_CURRENT_LEVEL())
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Accuracy: ", TLG_GET_PLAYER_ACCURACY_FOR_CURRENT_LEVEL())
|
||
ENDPROC
|
||
PROC TLG_OUTPUT_ALL_LEVELS_COMPLETE_DATA()
|
||
// INT i
|
||
// TLG_LEVELS eLevel
|
||
INT iTotalEnemyHits
|
||
INT iTotalShots
|
||
INT iTotalAnimals
|
||
FLOAT fAccuracy
|
||
|
||
iTotalShots = TLG_GET_TOTAL_SHOTS_FIRED_IN_ALL_LEVELS()
|
||
iTotalEnemyHits = TLG_GET_TOTAL_ENEMY_HITS_FOR_ALL_LEVELS()
|
||
iTotalAnimals = TLG_GET_TOTAL_NUMBER_OF_BIRDS_KILLED_FOR_ALL_LEVELS()
|
||
fAccuracy = TLG_GET_PLAYER_ACCURACY_FOR_ALL_LEVELS()
|
||
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] All levels complete..... ")
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Total Shots: ",iTotalShots)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Total Hits: ",iTotalEnemyHits)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Total Animals: ",iTotalAnimals)
|
||
CDEBUG1LN(DEBUG_MINIGAME, "[TLG_ARCADE] {DSW} [TLG_OUTPUT_LEVEL_COMPLETE_DATA] Accuracy: ",fAccuracy)
|
||
ENDPROC
|
||
#ENDIF
|