// UJE_marketgarden

game_manager
{
	spawn
	{
		accum 1 set 0		
	
		wm_axis_respawntime	10
		wm_allied_respawntime	15
		wm_number_of_objectives 8
		wm_set_round_timelimit	19

		// Objective overview status indicators
		
		// 1: Escort Tank
		// 2: First Barrier
		// 3: Second Barrier
		// 4: Third Barrier
		// 5: Command Center
		// 6: Allied Command Post
		// 7: Axis Command Post
		// 8: Dyno for Barrier 2

		wm_objective_status 1 0 0
		wm_objective_status 1 1 0
		wm_objective_status 2 0 0
		wm_objective_status 2 1 0
		wm_objective_status 3 0 0
		wm_objective_status 3 1 0
		wm_objective_status 4 0 1
		wm_objective_status 4 1 0
		wm_objective_status 5 0 0
		wm_objective_status 5 1 0
		wm_objective_status 6 0 0
		wm_objective_status 6 1 0
		wm_objective_status 7 0 0
		wm_objective_status 7 1 0
		wm_objective_status 8 0 0
		wm_objective_status 8 1 0

	
		// Stopwatch mode defending team (0=Axis, 1=Allies)
		wm_set_defending_team 1

		// Winner on expiration of round timer (0=Axis, 1=Allies)
		wm_setwinner 1

		wait 100
		trigger self axis_first_spawns
		trigger self allies_first_spawns

		// Hide some things	
		setstate endscene_smoke1 	invisible
		setstate endscene_smoke2 	invisible	
		setstate Axis_Cityspawn 	invisible
		setstate Cityspawn1 		invisible
		setstate Axis_Cityspawn2 	invisible
		setstate Allies_Castlespawn invisible
		setstate Castlespawn 		invisible
		setstate Allies_Middlespawn invisible
		setstate Middlespawn 		invisible
		setstate dyno_toi 			invisible
		setstate dyno 				invisible
		setstate barier_explosion_debris invisible
		setstate barier_dyno_toi 	invisible
		setstate barier_dyno_cmm 	invisible
		setstate dynocrate_1_placed invisible
		setstate dynocrate_2_placed invisible
		setstate drop_toi 			invisible
		setstate drop_cmm 			invisible
		setstate drop_zone 			invisible
		setstate explosives_pickup_toi 		invisible
		setstate explosives_pickup_cmm 		invisible

		wait 2000

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "axis_hq_compost_construct"
		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"
        	wm_addteamvoiceannounce 0 "UJE_marketgarden_escort_the_tank"

		wm_addteamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_construct"
        	wm_addteamvoiceannounce 0 "UJE_marketgarden_axis_destroy_bariere"

		wm_teamvoiceannounce 0 "axis_hq_compost_construct"
		wm_teamvoiceannounce 1 "allies_hq_compost_construct"
		// *---------------------------------------------------------------------------------*
		
	}
	
	trigger barier_blown
	{
		accum 1 set 1
		// Trigger the rumble
		alertentity wall_blown_relay

		// Hide mg on top of it
		setstate wall_object invisible

		// Hide placed dyno
		setstate dynocrate_1_placed invisible
		setstate dynocrate_2_placed invisible

		// Current main objectives for each team
		wm_objective_status 8 0 1
		wm_objective_status 8 1 2
	}

	// Artillery by plane
	trigger bommen0_1e
	{
		// first house dies
		wait 2000
		alertentity bom0_0
		wait 100
		trigger plane_hit_1 fall	
		
		// effects
		alertentity bom0_0_effect
		alertentity bom0_0_explosion
		
		// more rumble in the jungle
		alertentity bom0_01_rumble
		
		wait 500			
		alertentity bom1_0
		wait 100
		alertentity bom1_1
		wait 100
		alertentity bom1_2
		wait 100
		alertentity bom1_3
		wait 100
		alertentity bom1_4
		wait 1100

		// r.i.p. second house
		alertentity bom0_1
		wait 100
		trigger plane_hit_2 fall
		trigger tank barier_explosion_constructed
		alertentity bom0_1_effect
		alertentity bom0_1_explosion
		alertentity bom0_2_effect
		alertentity bom0_2_explosion
		
		// more artillery
		wait 2500
		alertentity bom1_5
		wait 100
		alertentity bom1_6
	}
	
	trigger axis_move_tank
	{
		wm_announce "The Axis are moving the Tank!"
        // *----------------------------------- vo ------------------------------------------*
        wm_addteamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_construct"
                
        wm_removeteamvoiceannounce 0 "UJE_marketgarden_escort_the_tank"
                   
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_construct"
        // *---------------------------------------------------------------------------------*
                
        wm_objective_status 2 0 1
		wm_objective_status 2 1 2
    }

    trigger axis_win
	{
		resetscript
		wm_announce "^2The Axis have blown up the Allied Commandcenter!!!"
		wm_objective_status 5 0 1
		wm_objective_status 5 1 2
		wait 3000
		wm_setwinner 0
		wm_endround
	}

	trigger axis_first_spawns
	{
		setautospawn "Axis bridge spawns" 0
	}

	trigger axis_forward_spawns
	{
		// goodbye to the first spawns
		setstate Axis_Bridgespawn invisible
		setstate Bridgespawn invisible
		
		// make the forward spawns visible
		setstate Axis_Cityspawn default
		setstate Cityspawn1 default
		setautospawn "Axis spawns" 0

		wm_announce "^1The Axis have captured the city spawn!"
		
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_new_spawn"
		wm_teamvoiceannounce 1 "UJE_marketgarden_new_spawn"
		// *---------------------------------------------------------------------------------*
	}
	
	trigger axis_last_spawns
	{
		// goodbye to the second spawns
		setstate Axis_Cityspawn invisible
		setstate Cityspawn1 invisible
		
		// make the last spawns visible
		setstate Axis_Cityspawn2 default
		setautospawn "Axis spawns2" 0

		wm_announce "^1The Axis have captured the supply spawn!"
		
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_new_spawn"
		wm_teamvoiceannounce 1 "UJE_marketgarden_new_spawn"
		// *---------------------------------------------------------------------------------*
	}

	trigger allies_first_spawns
	{
		setautospawn "Allied city spawns" 1
	}

	trigger allies_back_spawns
	{
		// goodbye to the first spawns
		setstate Allies_Cityspawn invisible
		setstate Cityspawn invisible
		
		// make the forward spawns visible
		setstate Allies_Middlespawn default
		setstate Middlespawn default
		setautospawn "Allied Middle spawns" 1

		wm_announce "^4The Allies have lost the city spawn!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_new_spawn"
		wm_teamvoiceannounce 1 "UJE_marketgarden_new_spawn"
		// *---------------------------------------------------------------------------------*
	}

	trigger allies_last_spawns
	{
		// goodbye to the back spawns
		setstate Allies_Middlespawn invisible
		setstate Middlespawn invisible
		
		// make the last spawns visible
		setstate Allies_Castlespawn default
		setstate Castlespawn default
		setautospawn "Allied spawns" 1

		wm_announce "^4The Allies have lost the house spawn!"
		
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_new_spawn"
		wm_teamvoiceannounce 1 "UJE_marketgarden_new_spawn"
		// *---------------------------------------------------------------------------------*
	}
}

garden_flag
{
	spawn
	{
		wait 350
		accum 0 set 0
		trigger self allied_capture
	}
	
	trigger allied_capture     
	{
		accum 0 abort_if_equal 1      
		alertentity garden_wobj
		alertentity garden_spawns
		wm_announce	"^4The Allies have captured the garden spawn!"   
		wm_objective_status	1 1 1      
		wm_objective_status	1 0 2
		accum 0 set 1
	}
	
	trigger axis_capture     
	{
		accum 0 abort_if_equal 0    
		alertentity garden_wobj   
		alertentity garden_spawns 
		wm_announce	"^1The Axis have captured the garden spawn!"  
		wm_objective_status	1 1 2     
		wm_objective_status	1 0 1
		accum 0 set 0
	}
	
	trigger force_axis
	{
		accum 0 abort_if_equal 1      
		alertentity garden_wobj
		alertentity garden_spawns
		accum 0 set 1
		trigger self kill
	}
	
	trigger kill
	{
		remove
	}
}

Axis_Airfieldspawn
{
	spawn
	{
	}
	
	trigger kill
	{
		remove
	}
}

Axis_Cityspawn
{
	spawn
	{
	}
	
	trigger kill
	{
		remove
	}
}

allied_cp_built
{
	spawn
	{
		wait 400
		trigger allied_cp_built setup

		constructible_class 2
	}

	trigger setup
	{
		setchargetimefactor 1 soldier 1
		setchargetimefactor 1 lieutenant 1
		setchargetimefactor 1 medic 1
		setchargetimefactor 1 engineer 1
		setchargetimefactor 1 covertops 1
		sethqstatus 1 0
	}

	buildstart final
	{
		setstate allied_cp_built_model underconstruction
		setstate allied_cp_closed_clip default
		setstate allied_cp_closed_model invisible
	}

	built final
	{
		setstate allied_cp_built_model default
		setstate allied_cp_closed_clip invisible
		setstate allied_cp_closed_model invisible

		trigger allied_cp_built_model enable_allied_features
	}

	decayed final
	{
		setstate allied_cp_built_model invisible
		setstate allied_cp_closed_clip default
		setstate allied_cp_closed_model default
	}

	death
	{
		setstate allied_cp_built_model invisible
		setstate allied_cp_closed_clip default
		setstate allied_cp_closed_model default

		trigger allied_cp_built_model disable_allied_features
	}
}

allied_cp_built_model
{
	spawn
	{
		wait 400
		setstate allied_cp_built_model invisible
	}

	trigger enable_allied_features
	{
		setchargetimefactor 1 soldier 0.75
		setchargetimefactor 1 lieutenant 0.75
		setchargetimefactor 1 medic 0.75
		setchargetimefactor 1 engineer 0.75
		setchargetimefactor 1 covertops 0.75
		sethqstatus 1 1
		wm_allied_respawntime 10

		wm_announce	"^2Allied Command Post constructed. Charge speed increased!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_compost_constructed_allies"
		wm_teamvoiceannounce 1 "allies_hq_compost_constructed"
		wm_removeteamvoiceannounce 1 "allies_hq_compost_construct"
		// *---------------------------------------------------------------------------------*

		wm_objective_status 6 0 0
		wm_objective_status 6 1 1
		setstate allied_cp_closed_speaker invisible
		setstate allied_cp_built_speaker default
	}

	trigger disable_allied_features
	{
		setchargetimefactor 1 soldier 1
		setchargetimefactor 1 lieutenant 1
		setchargetimefactor 1 medic 1
		setchargetimefactor 1 engineer 1
		setchargetimefactor 1 covertops 1
		sethqstatus 1 0
		wm_allied_respawntime 15

		wm_announce	"^2Axis team has destroyed the Allied Command Post!"

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"
		wm_teamvoiceannounce 1 "allies_hq_compost_damaged"
		// *---------------------------------------------------------------------------------*

		wm_objective_status 6 0 1
		wm_objective_status 6 1 0
		setstate allied_cp_built_speaker invisible
		setstate allied_cp_closed_speaker default
	}
}

allied_cp_built_speaker
{
	spawn
	{
	setstate allied_cp_built_speaker invisible
	}
}

axis_cp_built
{
	spawn
	{
		wait 400
		trigger axis_cp_built setup

		constructible_class 2
	}

	trigger setup
	{
		setchargetimefactor 0 soldier 1
		setchargetimefactor 0 lieutenant 1
		setchargetimefactor 0 medic 1
		setchargetimefactor 0 engineer 1
		setchargetimefactor 0 covertops 1
		sethqstatus 0 0
	}

	buildstart final
	{
		setstate axis_cp_built_model underconstruction
		setstate axis_cp_closed_clip default
		setstate axis_cp_closed_model invisible
	}

	built final
	{
		setstate axis_cp_built_model default
		setstate axis_cp_closed_clip invisible
		setstate axis_cp_closed_model invisible

		trigger axis_cp_built_model enable_axis_features
	}

	decayed final
	{
		setstate axis_cp_built_model invisible
		setstate axis_cp_closed_clip default
		setstate axis_cp_closed_model default
	}

	death
	{
		setstate axis_cp_built_model invisible
		setstate axis_cp_closed_clip default
		setstate axis_cp_closed_model default

		trigger axis_cp_built_model disable_axis_features
	}
}

axis_cp_built_model
{
	spawn
	{
		wait 400
		setstate axis_cp_built_model invisible
	}

	trigger enable_axis_features
	{
		setchargetimefactor 0 soldier 0.75
		setchargetimefactor 0 lieutenant 0.75
		setchargetimefactor 0 medic 0.75
		setchargetimefactor 0 engineer 0.75
		setchargetimefactor 0 covertops 0.75
		sethqstatus 0 1
		wm_axis_respawntime	5

		wm_announce	"^2Axis Command Post constructed. Charge speed increased!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_compost_constructed"
		wm_teamvoiceannounce 1 "allies_hq_compost_constructed_axis"
		wm_removeteamvoiceannounce 0 "axis_hq_compost_construct"
		// *---------------------------------------------------------------------------------*

		wm_objective_status 7 0 1
		wm_objective_status 7 1 0
		setstate axis_cp_closed_speaker invisible
		setstate axis_cp_built_speaker default
	}

	trigger disable_axis_features
	{
		setchargetimefactor 0 soldier 1
		setchargetimefactor 0 lieutenant 1
		setchargetimefactor 0 medic 1
		setchargetimefactor 0 engineer 1
		setchargetimefactor 0 covertops 1
		sethqstatus 0 0
		wm_axis_respawntime	10

		wm_announce	"^2Allied team has destroyed the Axis Command Post!"

		// *----------------------------------- vo ------------------------------------------*
		//wm_addteamvoiceannounce 0 "axis_hq_compost_construct"
		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"
		wm_teamvoiceannounce 0 "axis_hq_compost_damaged"
		//wm_teamvoiceannounce 1 "allies_hq_compost_construct"
		// *---------------------------------------------------------------------------------*

		wm_objective_status 7 0 0
		wm_objective_status 7 1 1
		setstate axis_cp_built_speaker invisible
		setstate axis_cp_closed_speaker default
	}
}

axis_cp_built_speaker
{
	spawn
	{
	setstate axis_cp_built_speaker invisible
	}
}

scr_allied_ammohealth_constructible
{
	spawn
	{
		wait 200
		constructible_class 2

		constructible_constructxpbonus 3
		constructible_destructxpbonus 3

		setstate allied_health_rack			invisible
		setstate allied_ammo_rack			invisible
		setstate allied_ammohealth_constructible	invisible
		setstate allied_health_trigger			invisible
		setstate allied_ammo_trigger			invisible
		setstate allied_ammohealth_TOI			invisible
		setstate allied_ammohealth_CM_marker		invisible
		setstate allied_ammo_model			invisible
		setstate allied_health_model			invisible
	}

	buildstart final
	{
		setstate allied_ammo_model			underconstruction
		setstate allied_health_model			underconstruction
	}

	built final
	{
		setstate allied_health_rack			default
		setstate allied_ammo_rack			default
		setstate allied_ammohealth_constructible	default
		setstate allied_ammohealth_mover_damaged	invisible
		setstate allied_ammo_rack_damaged		invisible
		setstate allied_health_rack_damaged		invisible
		setstate allied_health_trigger			default
		setstate allied_ammo_trigger			default
		setstate allied_ammohealth_TOI			default
		setstate allied_ammohealth_CM_marker		default
		setstate allied_ammo_model			invisible
		setstate allied_health_model			invisible

		wm_announce "^2The Allied supply cabinets have been constructed!"
	}

	decayed final
	{
		setstate allied_ammo_model			invisible
		setstate allied_health_model			invisible
	}

	death
	{
		setstate allied_health_rack			invisible
		setstate allied_ammo_rack			invisible
		setstate allied_ammohealth_constructible	invisible
		setstate allied_ammohealth_mover_damaged	default
		setstate allied_ammo_rack_damaged		default
		setstate allied_health_rack_damaged		default
		setstate allied_health_trigger			invisible
		setstate allied_ammo_trigger			invisible
		setstate allied_ammohealth_TOI			invisible
		setstate allied_ammohealth_CM_marker		invisible

		wm_announce "^2The Allied supply cabinets have been destroyed!"
	}
}

scr_axis_ammohealth_constructible
{
	spawn
	{
		wait 200
		constructible_class 2

		constructible_constructxpbonus 3
		constructible_destructxpbonus 3

		setstate axis_health_rack			invisible
		setstate axis_ammo_rack				invisible
		setstate axis_ammohealth_constructible		invisible
		setstate axis_health_trigger			invisible
		setstate axis_ammo_trigger			invisible
		setstate axis_ammohealth_TOI			invisible
		setstate axis_ammohealth_CM_marker		invisible
		setstate axis_ammo_model			invisible
		setstate axis_health_model			invisible
	}

	buildstart final
	{
		setstate axis_ammo_model			underconstruction
		setstate axis_health_model			underconstruction
	}

	built final
	{
		setstate axis_health_rack			default
		setstate axis_ammo_rack				default
		setstate axis_ammohealth_constructible		default
		setstate axis_ammohealth_mover_damaged		invisible
		setstate axis_ammo_rack_damaged			invisible
		setstate axis_health_rack_damaged		invisible
		setstate axis_health_trigger			default
		setstate axis_ammo_trigger			default
		setstate axis_ammohealth_TOI			default
		setstate axis_ammohealth_CM_marker		default
		setstate axis_ammo_model			invisible
		setstate axis_health_model			invisible

		wm_announce "^2The Axis supply cabinets have been constructed!"
	}

	decayed final
	{
		setstate axis_ammo_model			invisible
		setstate axis_health_model			invisible
	}

	death
	{
		//setstate ammohealth_constructible_TOI	default
		setstate axis_health_rack			invisible
		setstate axis_ammo_rack				invisible
		setstate axis_ammohealth_constructible		invisible
		setstate axis_ammohealth_mover_damaged		default
		setstate axis_ammo_rack_damaged			default
		setstate axis_health_rack_damaged		default
		setstate axis_health_trigger			invisible
		setstate axis_ammo_trigger			invisible
		setstate axis_ammohealth_TOI			invisible
		setstate axis_ammohealth_CM_marker		invisible

		wm_announce "^2The Axis supply cabinets have been destroyed!"
	}
}


//=============================================================================
//=== Tank Mapscript
//=============================================================================
//	accum 0, script lock
//	accum 1, current movement path position
//	accum 2, track state
//	accum 3, bit 0	death status		(0=dead, 1=alive)
//		 bit 1	stuck status		(0=not stuck, 1=stuck)
//		 bit 2	players nearby		(0=no players, 1=players)
//		 bit 3	moving status		(0=not moving, 1=moving)
//		 bit 4	temp register
//		 bit 5	message-flag		(0=no message, 1=message)
//		 bit 6	visible state		(0=alive, 1=dead)
//		 bit 7	barricade #1		(0=not built, 1=built)
//		 bit 8	barricade #2		(0=not built, 1=built)
//		 bit 9	barricade #3		(0=not built, 1=built)
//		 bit 10	barricade #4		(0=not built, 1=built)
//	accum 4, stop counter

//info_notnull
tank_sound
{
	trigger start
	{
		trigger tank sound_start
		wait 3400
		trigger tank sound_move
	}
	trigger stop
	{
		trigger tank sound_stop
		wait 1400
		trigger tank sound_idle
	}
	trigger death
	{
		trigger tank sound_death
		wait 3400
		trigger tank sound_idle
	}
	trigger rebirth
	{
		trigger tank sound_rebirth
		wait 3400
		trigger tank sound_idle
	}
}

//script_mover
tank
{
	// ===========================================================================================
	spawn
	{
		wait 50

		constructible_chargebarreq 1.0
		constructible_constructxpbonus 10
		constructible_destructxpbonus 10
		

		followspline 0 path_00 10000 wait length -64

		trigger self sound_idle
		trigger self tracks_stop
		trigger self barricade1_destroyed
		trigger self barier_explosion_destroyed
		trigger self barricade3_destroyed
	}


	// ===========================================================================================
	// script lockouts
	trigger script_lock
	{
		accum 0 inc 1
	}

	trigger script_unlock
	{
		accum 0 inc -1
	}


	// ===========================================================================================
	// tracks
	trigger tracks_forward
	{
		accum 2 abort_if_equal 1
		accum 2 set 1
		remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_alt_forward
		remapshaderflush
	}

	trigger tracks_stop
	{
		accum 2 abort_if_equal 0
		accum 2 set 0
		remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_left
		remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_right
		remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_left
		remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_right
		remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_left
		remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_right
		remapshaderflush
	}

	trigger tracks_turn_left
	{
		accum 2 abort_if_equal 2
		accum 2 set 2
		remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_alt_backward
		remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_alt_backward
		remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_alt_backward
		remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_alt_forward
		remapshaderflush
	}

	trigger tracks_turn_right
	{
		accum 2 abort_if_equal 3
		accum 2 set 3
		remapshader models/mapobjects/tanks_sd/jag_tracks_left 	models/mapobjects/tanks_sd/jag_tracks_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_tracks_right models/mapobjects/tanks_sd/jag_tracks_alt_backward
		remapshader models/mapobjects/tanks_sd/jag_wheels_left 	models/mapobjects/tanks_sd/jag_wheels_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_wheels_right models/mapobjects/tanks_sd/jag_wheels_alt_backward
		remapshader models/mapobjects/tanks_sd/jag_cogs_left 	models/mapobjects/tanks_sd/jag_cogs_alt_forward
		remapshader models/mapobjects/tanks_sd/jag_cogs_right 	models/mapobjects/tanks_sd/jag_cogs_alt_backward
		remapshaderflush
	}

	// sound stuff
	trigger sound_idle
	{
		stopsound
		playsound sound/vehicles/tank/tank_idle.wav looping volume 512
	}
	
	trigger sound_start
	{
		stopsound
		playsound sound/vehicles/tank/tank_revup.wav volume 196
	}
	
	trigger sound_move
	{
		stopsound
		playsound sound/vehicles/tank/tank_move.wav looping volume 512
	}
	
	trigger sound_stop
	{
		stopsound
		playsound sound/vehicles/tank/tank_revdown.wav volume 196
	}
	
	trigger sound_death
	{
		stopsound
		playsound sound/vehicles/tank/tank_stop.wav volume 256
	}
	
	trigger sound_rebirth
	{
		stopsound
		playsound sound/vehicles/tank/tank_start.wav volume 196
	}

	// ===========================================================================================
	// enable/disable
	trigger tank_enable
	{
		trigger self stuck_check
		accum 3 abort_if_bitset 1 		// stuck check
		accum 4 set 0				// reset stop counter
		accum 3 bitreset 2			// reset player check
		accum 3 abort_if_bitset 3 		// already following spline
		accum 0 abort_if_not_equal 0		// are we not in a script lockout?
		accum 3 abort_if_bitset 0 		// death check

		trigger self script_lock
		trigger tank_sound start
		startanimation 55 10 15 nolerp norandom
		wait 666
		startanimation 5 40 15 nolerp norandom
		wait 500
		trigger self tracks_forward
		trigger self script_unlock
		trigger self move
	}

	trigger tank_disable
	{
		accum 4 inc 1				// up the stop counter
		accum 4 abort_if_less_than 2		// 2 second ride
		accum 3 bitset 2			// set player check
		trigger self deathcheck
	}

	// ===========================================================================================
	// stuck checking
	trigger stuck_check
	{
		accum 3 bitreset 1			// accum 3, bit 1	stuck status	(0=not stuck, 1=stuck)
		trigger self stuck_check_scriptlockout
		trigger self stuck_check_finished
		trigger self stuck_check_barrier1_built
		trigger self stuck_check_barier_explosion_built
		trigger self stuck_check_barrier3_built
	}

	trigger stuck_check_barrier1_built
	{
		accum 1 abort_if_not_equal 26
		accum 3 abort_if_not_bitset 7
		accum 3 bitset 1	// stuck
	}

	trigger stuck_check_barier_explosion_built
	{
		accum 1 abort_if_not_equal 61
		accum 3 abort_if_not_bitset 8
		accum 3 bitset 1	// stuck
	}

	trigger stuck_check_barrier3_built
	{
		accum 1 abort_if_not_equal 108
		accum 3 abort_if_not_bitset 9
		accum 3 bitset 1	// stuck
	}

	trigger stuck_check_finished
	{
		accum 1 abort_if_less_than 121
		accum 3 bitset 1
	}


	trigger stuck_check_scriptlockout
	{
		accum 0 abort_if_equal 0
		accum 3 bitset 1
	}

	// ===========================================================================================
	// stop check
	trigger stopcheck_setup
	{
		accum 3 bitset 4			// stop if we're stuck/no-one's pushing :)
		accum 3 abort_if_bitset 2		// no one in the trigger, abort
		trigger self stuck_check		// call the stop check function
		accum 3 abort_if_bitset 1		// we're stuck so break out
		accum 3 bitreset 4			// we're free to move
	}

	trigger stopcheck
	{
		trigger self stopcheck_setup
		accum 3 abort_if_not_bitset 4

		trigger self script_lock
		// Any just stopped moving stuff goes here
		trigger tank_sound stop
		trigger self tracks_stop
		startanimation 45 10 15 nolerp norandom
		wait 666
		startanimation 0 1 15 nolerp norandom
		wait 900
		trigger self script_unlock

		resetscript
	}

	// ===========================================================================================
	// death / rebirth
	trigger deathcheck
	{
		accum 3 abort_if_not_bitset 0		// are we dead?
		accum 3 abort_if_bitset 6		// are we not already visibly dead?
		accum 3 abort_if_bitset 3		// are we not following a spline?
		accum 0 abort_if_not_equal 0		// are we not in a script lockout?
		accum 3 bitset 6			// we're now visibly dead
		accum 3 bitset 5

		wm_announce "^2The Tank has been damaged!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tank_damaged"

		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tank_damaged"
		// *---------------------------------------------------------------------------------*

		changemodel models/mapobjects/tanks_sd/jagdpanther_africa_tracks2.md3
		setstate tank_smoke default
		kill tank_construct
		trigger self sound_death
		trigger self tracks_stop

		trigger self script_lock
		trigger self tracks_stop
		startanimation 45 10 15 nolerp norandom
		wait 666
		startanimation 0 1 15 nolerp norandom
		trigger self script_unlock

		resetscript
	}

	rebirth
	{
		accum 3 bitreset 6 			// we're visibly alive
		accum 3 bitreset 0 			// we're alive again

		trigger self script_lock
		changemodel models/mapobjects/tanks_sd/jagdpanther_africa_tracks.md3
		setstate tank_smoke invisible
		trigger tank_sound rebirth
		wait 500
		trigger self script_unlock

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tank_repaired"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tank_repaired"
		// *---------------------------------------------------------------------------------*

		wm_announce "^2The Tank has been repaired!"
	}

	death
	{
		accum 3 bitset 0
	}

	// ===========================================================================================
	// movement
	trigger run_continue
	{
		accum 1 inc 1
		trigger self deathcheck
		trigger self stopcheck
		trigger self move
	}

	trigger move
	{
		trigger self move_check
		wait 500
		trigger self move
	}

	trigger move_check
	{
		trigger self stuck_check
		accum 3 abort_if_bitset 1
		accum 1 trigger_if_equal 0 tank move_to_0
		accum 1 trigger_if_equal 1 tank move_to_1
		accum 1 trigger_if_equal 2 tank move_to_2
		accum 1 trigger_if_equal 3 tank move_to_3
		accum 1 trigger_if_equal 4 tank move_to_4
		accum 1 trigger_if_equal 5 tank move_to_5
		accum 1 trigger_if_equal 6 tank move_to_6
		accum 1 trigger_if_equal 7 tank move_to_7
		accum 1 trigger_if_equal 8 tank move_to_8
		accum 1 trigger_if_equal 9 tank move_to_9
		accum 1 trigger_if_equal 10 tank move_to_10
		accum 1 trigger_if_equal 11 tank move_to_11
		accum 1 trigger_if_equal 12 tank move_to_12
		accum 1 trigger_if_equal 13 tank move_to_13
		accum 1 trigger_if_equal 14 tank move_to_14
		accum 1 trigger_if_equal 15 tank move_to_15
		accum 1 trigger_if_equal 16 tank move_to_16
		accum 1 trigger_if_equal 17 tank move_to_17
		accum 1 trigger_if_equal 18 tank move_to_18
		accum 1 trigger_if_equal 19 tank move_to_19
		accum 1 trigger_if_equal 20 tank move_to_20
		accum 1 trigger_if_equal 21 tank move_to_21
		accum 1 trigger_if_equal 22 tank move_to_22
		accum 1 trigger_if_equal 23 tank move_to_23
		accum 1 trigger_if_equal 24 tank move_to_24
		accum 1 trigger_if_equal 25 tank move_to_25
		accum 1 trigger_if_equal 26 tank move_to_26
		accum 1 trigger_if_equal 27 tank move_to_27
		accum 1 trigger_if_equal 28 tank move_to_28
		accum 1 trigger_if_equal 29 tank move_to_29
		accum 1 trigger_if_equal 30 tank move_to_30
		accum 1 trigger_if_equal 31 tank move_to_31
		accum 1 trigger_if_equal 32 tank move_to_32
		accum 1 trigger_if_equal 33 tank move_to_33
		accum 1 trigger_if_equal 34 tank move_to_34
		accum 1 trigger_if_equal 35 tank move_to_35
		accum 1 trigger_if_equal 36 tank move_to_36
		accum 1 trigger_if_equal 37 tank move_to_37
		accum 1 trigger_if_equal 38 tank move_to_38
		accum 1 trigger_if_equal 39 tank move_to_39
		accum 1 trigger_if_equal 40 tank move_to_40
		accum 1 trigger_if_equal 41 tank move_to_41
		accum 1 trigger_if_equal 42 tank move_to_42
		accum 1 trigger_if_equal 43 tank move_to_43
		accum 1 trigger_if_equal 44 tank move_to_44
		accum 1 trigger_if_equal 45 tank move_to_45
		accum 1 trigger_if_equal 46 tank move_to_46
		accum 1 trigger_if_equal 47 tank move_to_47
		accum 1 trigger_if_equal 48 tank move_to_48
		accum 1 trigger_if_equal 49 tank move_to_49
		accum 1 trigger_if_equal 50 tank move_to_50
		accum 1 trigger_if_equal 51 tank move_to_51
		accum 1 trigger_if_equal 52 tank move_to_52
		accum 1 trigger_if_equal 53 tank move_to_53
		accum 1 trigger_if_equal 54 tank move_to_54
		accum 1 trigger_if_equal 55 tank move_to_55
		accum 1 trigger_if_equal 56 tank move_to_56
		accum 1 trigger_if_equal 57 tank move_to_57
		accum 1 trigger_if_equal 58 tank move_to_58
		accum 1 trigger_if_equal 59 tank move_to_59
		accum 1 trigger_if_equal 60 tank move_to_60
		accum 1 trigger_if_equal 61 tank move_to_61
		accum 1 trigger_if_equal 62 tank move_to_62
		accum 1 trigger_if_equal 63 tank move_to_63
		accum 1 trigger_if_equal 64 tank move_to_64
		accum 1 trigger_if_equal 65 tank move_to_65
		accum 1 trigger_if_equal 66 tank move_to_66
		accum 1 trigger_if_equal 67 tank move_to_67
		accum 1 trigger_if_equal 68 tank move_to_68
		accum 1 trigger_if_equal 69 tank move_to_69
		accum 1 trigger_if_equal 70 tank move_to_70
		accum 1 trigger_if_equal 71 tank move_to_71
		accum 1 trigger_if_equal 72 tank move_to_72
		accum 1 trigger_if_equal 73 tank move_to_73
		accum 1 trigger_if_equal 74 tank move_to_74
		accum 1 trigger_if_equal 75 tank move_to_75
		accum 1 trigger_if_equal 76 tank move_to_76
		accum 1 trigger_if_equal 77 tank move_to_77
		accum 1 trigger_if_equal 78 tank move_to_78
		accum 1 trigger_if_equal 79 tank move_to_79
		accum 1 trigger_if_equal 80 tank move_to_80
		accum 1 trigger_if_equal 81 tank move_to_81
		accum 1 trigger_if_equal 82 tank move_to_82
		accum 1 trigger_if_equal 83 tank move_to_83
		accum 1 trigger_if_equal 84 tank move_to_84
		accum 1 trigger_if_equal 85 tank move_to_85
		accum 1 trigger_if_equal 86 tank move_to_86
		accum 1 trigger_if_equal 87 tank move_to_87
		accum 1 trigger_if_equal 88 tank move_to_88
		accum 1 trigger_if_equal 89 tank move_to_89
		accum 1 trigger_if_equal 90 tank move_to_90
		accum 1 trigger_if_equal 91 tank move_to_91
		accum 1 trigger_if_equal 92 tank move_to_92
		accum 1 trigger_if_equal 93 tank move_to_93
		accum 1 trigger_if_equal 94 tank move_to_94
		accum 1 trigger_if_equal 95 tank move_to_95
		accum 1 trigger_if_equal 96 tank move_to_96
		accum 1 trigger_if_equal 97 tank move_to_97
		accum 1 trigger_if_equal 98 tank move_to_98
		accum 1 trigger_if_equal 99 tank move_to_99
		accum 1 trigger_if_equal 100 tank move_to_100
		accum 1 trigger_if_equal 101 tank move_to_101
		accum 1 trigger_if_equal 102 tank move_to_102
		accum 1 trigger_if_equal 103 tank move_to_103
		accum 1 trigger_if_equal 104 tank move_to_104
		accum 1 trigger_if_equal 105 tank move_to_105
		accum 1 trigger_if_equal 106 tank move_to_106
		accum 1 trigger_if_equal 107 tank move_to_107
		accum 1 trigger_if_equal 108 tank move_to_108
		accum 1 trigger_if_equal 109 tank move_to_109
		accum 1 trigger_if_equal 110 tank move_to_110
		accum 1 trigger_if_equal 111 tank move_to_111
		accum 1 trigger_if_equal 112 tank move_to_112
		accum 1 trigger_if_equal 113 tank move_to_113
		accum 1 trigger_if_equal 114 tank move_to_114
		accum 1 trigger_if_equal 115 tank move_to_115
		accum 1 trigger_if_equal 116 tank move_to_116
		accum 1 trigger_if_equal 117 tank move_to_117
		accum 1 trigger_if_equal 118 tank move_to_118
		accum 1 trigger_if_equal 119 tank move_to_119
		accum 1 trigger_if_equal 120 tank move_to_120
		accum 1 trigger_if_equal 121 tank move_to_121
	}

	trigger move_to_0
	{
		trigger self run_continue
	}

	trigger move_to_1
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_0 100 wait length -64
		accum 3 bitreset 3
		trigger game_manager axis_move_tank
		trigger self run_continue
	}

	trigger move_to_2
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_1 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_3
	{		
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_2 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_4
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_3 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_5
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_4 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_6
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_5 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_7
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_6 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_8
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_7 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_9
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_8 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_10
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_9 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_11
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_10 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_12
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_11 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_13
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_12 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_14
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_13 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_15
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_14 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_16
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_15 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_17
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_16 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_18
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_17 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_19
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_18 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_20
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_19 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_21
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_20 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_22
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_21 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_23
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_22 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_24
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_23 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_25
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_24 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_26
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_25 100 wait length -64
		accum 3 bitreset 3
		//****************
		trigger defense1 remove
		//****************
		trigger self run_continue
	}

	trigger move_to_27
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_26 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_28
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_27 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_29
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_28 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_30
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_29 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_31
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_30 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_32
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_31 100 wait length -64
		accum 3 bitreset 3

		trigger game_manager allies_back_spawns

		trigger self run_continue
	}

	trigger move_to_33
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_32 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_34
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_33 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_35
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_34 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_36
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_35 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_37
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_36 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_38
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_37 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_39
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_38 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_40
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_39 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_41
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_40 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_42
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_41 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_43
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_42 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_44
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_43 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_45
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_44 100 wait length -64
		accum 3 bitreset 3

		trigger game_manager axis_forward_spawns

		trigger self run_continue
	}

	trigger move_to_46
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_45 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_47
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_46 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_48
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_47 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_49
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_48 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_50
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_49 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_51
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_50 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_52
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_51 100 wait length -64
		accum 3 bitreset 3

		trigger uje_bommer0 movestart

		trigger self run_continue
	}

	trigger move_to_53
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_52 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_54
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_53 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_55
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_54 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_56
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_55 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_57
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_56 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_58
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_57 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_59
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_58 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_60
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_59 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_61
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_60 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_62
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_61 100 wait length -64
		accum 3 bitreset 3

		wm_announce "^2The Tank is past the second tank barrier!"
		
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_past"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_past"
		// *---------------------------------------------------------------------------------*

		trigger self run_continue
	}

	trigger move_to_63
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_62 100 wait length -64
		accum 3 bitreset 3

		trigger game_manager allies_last_spawns

		trigger self run_continue
	}

	trigger move_to_64
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_63 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_65
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_64 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_66
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_65 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_67
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_66 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_68
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_67 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_69
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_68 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_70
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_69 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_71
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_70 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_72
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_71 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_73
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_72 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_74
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_73 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_75
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_74 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_76
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_75 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_77
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_76 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_78
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_77 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_79
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_78 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_80
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_79 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_81
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_80 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_82
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_81 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_83
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_82 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_84
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_83 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_85
	{
		trigger self tracks_forward

		trigger defense1_toi rubble_corner1
		
		trigger game_manager axis_last_spawns

		accum 3 bitset 3
		followspline 0 path_84 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_86
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_85 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_87
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_86 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_88
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_87 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_89
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_88 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_90
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_89 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_91
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_90 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_92
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_91 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_93
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_92 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_94
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_93 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_95
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_94 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_96
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_95 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_97
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_96 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_98
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_97 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_99
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_98 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_100
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_99 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_101
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_100 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_102
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_101 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_103
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_102 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_104
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_103 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_105
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_104 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_106
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_105 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_107
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_106 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_108
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_107 100 wait length -64
		accum 3 bitreset 3
		allowtankenter no
		//****************
		trigger defense3 remove
		//****************
		trigger self run_continue
	}

	trigger move_to_109
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_108 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_110
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_109 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_111
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_110 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_112
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_111 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_113
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_112 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_114
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_113 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_115
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_114 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_116
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_115 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_117
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_116 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}
	
	trigger move_to_118
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_117 100 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}
	
	trigger move_to_119
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_118 100 wait length -64		
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger move_to_120
	{
		setstate tank_trigger invisible

		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_119 100 wait length -64
		accum 3 bitreset 3

		trigger self script_lock
		trigger self tracks_stop
		trigger tank_sound stop
		trigger self tracks_stop
		wait 2000
		trigger tank_turret leftshot

		accum 1 inc 1
	}

	// ===========================================================================================
	// Tank-koepel.
	trigger startfire
	{
		startanimation 67 8 10 nolerp norandom noloop
		trigger self sound_fire
		trigger tank_flash startfire	
	}

	trigger stopfire
	{
		startanimation 0 1 15 nolerp norandom
		trigger tank_flash stopfire
	}

	trigger move_to_121
	{
		trigger self tracks_forward
		accum 3 bitset 3
		followspline 0 path_120 900 wait length -64
		accum 3 bitreset 3
		trigger self run_continue
	}

	trigger barricade1_constructed
	{
		accum 3 bitset 7
	}
	trigger barricade1_destroyed
	{
		accum 3 bitreset 7
	}

	trigger barier_explosion_constructed
	{
		accum 3 bitset 8
	}
	trigger barier_explosion_destroyed
	{
		accum 3 bitreset 8
	}

	trigger barricade3_constructed
	{
		accum 3 bitset 9
	}
	trigger barricade3_destroyed
	{
		accum 3 bitreset 9
	}

	//-----------------------------------
	// Turret
	//-----------------------------------
	trigger startfire
	{
		startanimation 67 8 10 nolerp norandom noloop
	}

	trigger stopfire
	{
		startanimation 0 1 15 nolerp norandom
	}
}

tank_shell
{
	spawn
	{
		wait 400
		attachtotag tank tag_tank
	}
}

//target_script_trigger
tank_disabler
{
	trigger run
	{
		trigger tank tank_disable
	}
}

//target_script_trigger
tank_enabler
{
	trigger run
	{
		trigger tank tank_enable
	}
}

//trigger_multiple
tank_trigger
{
	spawn
	{
		wait 100
		attachtotag tank_shell tag_turret
	}
}

//trigger_objective_info
tank_build
{
	spawn
	{
		wait 100
		attachtotag tank_shell tag_turret
	}
}

//func_constructible
tank_construct
{
	spawn
	{
		wait 400

		kill tank

		constructible_class 2
		constructible_health 1200
		constructible_constructxpbonus 10
		constructible_destructxpbonus 10
	}

	built final
	{
		alertentity tank
	}

	trigger final_pos
	{
		constructible_constructxpbonus 2
		constructible_destructxpbonus 5
	}
}

//misc_gamemodel
tank_turret
{
	spawn
	{
		wait 500
		attachtotag tank_shell tag_turret
	}

	trigger leftshot
	{
		playsound sound/vehicles/tank/turret_spin.wav looping
		faceangles -10 30 0 2000
		wait 300
		stopsound
		playsound sound/vehicles/tank/turret_end.wav
		stopsound
		wait 700
		trigger tank startfire
		trigger tank_flash run
		playsound sound/vehicles/tank/tank_fire.wav
		wait 200
		stopsound
		trigger game_manager axis_win
		trigger tank stopfire
		setstate tank_flash invisible
		setstate blast1_debris_1 default
		setstate blast1_debris_2 default
		trigger blast1_debris_1 fall
		trigger blast1_debris_2 fall
		alertentity blast1_explosion
		alertentity blast1_effect
		setstate blast1 invisible
		setstate endscene_smoke1 default
		
		wait 5000
		trigger self rightshot		
	}	
	
	trigger rightshot
	{
		playsound sound/vehicles/tank/turret_spin.wav looping
		faceangles -10 -3 0 2000
		wait 300
		stopsound
		playsound sound/vehicles/tank/turret_end.wav
		stopsound
		wait 700
		trigger tank startfire
		trigger tank_flash run
		playsound sound/vehicles/tank/tank_fire.wav
		wait 200
		stopsound
		trigger tank stopfire
		setstate tank_flash invisible
		setstate blast2_debris_1 default
		setstate blast2_debris_2 default
		trigger blast2_debris_1 fall
		trigger blast2_debris_2 fall
		alertentity blast2_explosion
		alertentity blast2_effect
		setstate blast2 invisible
		setstate endscene_smoke2 default
		trigger debris_5 fall

		accum 1 inc 1		
	}		
}

tank_smoke
{
	spawn
	{
		wait 300
		attachtotag tank_shell tag_smoke
		setstate tank_smoke invisible
	}
}

tank_flash
{
	spawn
	{
		setstate tank_flash invisible
	}
	
	trigger run
	{
		setstate tank_flash default
 		attachtotag tank_turret tag_flash
		faceangles 0 90 0 50
		resetscript
	}
}

//=============================================================================
//=== Barricade 1 Mapscript
//=============================================================================

defense1
{
	spawn
	{
		wait 400
		setstate defense1_materials default
		setstate defense1_materials_clip default
		setstate defense1_flag default
		constructible_class 3
		constructible_chargebarreq 1.0
		constructible_constructxpbonus 10
		constructible_destructxpbonus 10
	}
	
	buildstart final
	{
		setstate defense1_materials default
		setstate defense1_materials_clip default
		setstate defense1_flag default
	}
	
	built final
	{
		setstate defense1_materials invisible
		setstate defense1_materials_clip invisible
		setstate defense1_flag invisible
		//inform the tank that this barricade has been built
		trigger tank barricade1_constructed		
		wm_announce "^2The Allies have constructed the first tank barrier!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_constructed"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_constructed"

		wm_removeteamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_constructed"
		wm_removeteamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_constructed"
		// *---------------------------------------------------------------------------------*
	}
	
	decayed final
	{
		setstate defense1_materials default
		setstate defense1_materials_clip default
		setstate defense1_flag default
	}
	
	death
	{
		setstate defense1_materials default
		setstate defense1_materials_clip default
		setstate defense1_flag default
		trigger tank barricade1_destroyed
		wm_announce "^2The Axis have destroyed the first tank barrier!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_destroyed"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_destroyed"
		// *---------------------------------------------------------------------------------*
	}
	
	trigger remove
	{
		setstate defense1_toi invisible
		setstate defense1_materials invisible
		setstate defense1_materials_clip invisible
		setstate defense1_flag invisible
		
		wm_objective_status 2 0 1
		wm_objective_status 2 1 2
		
		remove

		wm_announce "^2The Tank is past the first tank barrier!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_past"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_past"
		// *---------------------------------------------------------------------------------*
	}
}


//=============================================================================
//=== Barricade 3 Mapscript
//=============================================================================
defense3
{
	spawn
	{
		wait 400
		setstate defense3_materials default
		setstate defense3_materials_clip default
		setstate defense3_flag default
		constructible_class 3
		constructible_chargebarreq 1.0
		constructible_constructxpbonus 10
		constructible_destructxpbonus 10
	}
	
	buildstart final
	{
		setstate defense3_materials default
		setstate defense3_materials_clip default
		setstate defense3_flag default
	}
	
	built final
	{
		setstate defense3_materials invisible
		setstate defense3_materials_clip invisible
		setstate defense3_flag invisible
		//inform the tank that this barricade has been built
		trigger tank barricade3_constructed		
		wm_announce "^2The Allies have constructed the third tank barrier!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_constructed"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_constructed"

		wm_removeteamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_constructed"
		wm_removeteamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_constructed"
		// *---------------------------------------------------------------------------------*
	}
	
	decayed final
	{
		setstate defense3_materials default
		setstate defense3_materials_clip default
		setstate defense3_flag default
	}
	
	death
	{
		setstate defense3_materials default
		setstate defense3_materials_clip default
		setstate defense3_flag default
		trigger tank barricade3_destroyed		
		wm_announce "^2The Axis have destroyed the third tank barrier!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_destroyed"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_destroyed"
		// *---------------------------------------------------------------------------------*
	}
	
	trigger remove
	{
		setstate defense3_toi invisible
		setstate defense3_materials invisible
		setstate defense3_materials_clip invisible
		setstate defense3_flag invisible
		setstate extra_door invisible
		
		wm_objective_status 4 0 1
		wm_objective_status 4 1 2
		
		remove

		wm_announce "^2The Tank is past the third tank barrier!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_past"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_past"
		// *---------------------------------------------------------------------------------*
	}
}

// command center windows

blast1_debris_1
{
	spawn
	{
		wait 350
		setstate blast1_debris_1 invisible
	}
	
	trigger fall
	{
		setstate blast1_debris_1 default
		followspline 0 debris_1_pad0 380 wait roll 0 30
		followspline 0 debris_1_pad1 380 wait roll 30 90
		playsound sound/world/debris2.wav volume 255
		wait 20
		playsound sound/UJE_marketgarden/uje_rumble_sound.wav volume 300
	}
}

blast1_debris_2
{
	spawn
	{
		wait 350
		setstate blast1_debris_2 invisible
	}
	
	trigger fall
	{
		setstate blast1_debris_2 default
		followspline 0 debris_2_pad0 380 wait roll 0 40
		followspline 0 debris_2_pad1 380 wait roll 40 120
		playsound sound/world/debris2.wav volume 255
		wait 20
		playsound sound/UJE_marketgarden/uje_rumble_sound.wav volume 300
	}
}

blast2_debris_1
{
	spawn
	{
		wait 350
		setstate blast2_debris_1 invisible
	}
	
	trigger fall
	{
		setstate blast2_debris_1 default
		followspline 0 debris_4_pad0 480 wait roll 0 90
		followspline 0 debris_4_pad1 480 wait roll 90 180
		playsound sound/world/debris2.wav volume 255
		wait 20
		playsound sound/UJE_marketgarden/uje_rumble_sound.wav volume 300
	}
}

// burning man
blast2_debris_2
{
	spawn
	{
		wait 350
		setstate blast2_debris_2 invisible
	}
	
	trigger fall
	{
		setstate blast2_debris_2 default
		
		wait 100
		followspline 0 debris_3_pad0 600 wait
		followspline 0 debris_3_pad1 500 wait 	
	}
}

// balcony
debris_5
{
	spawn
	{
		wait 350
	}
	
	trigger fall
	{ 
		gotomarker debris_5_pad1 500 accel wait
		alertentity smokedust_1
		alertentity smokedust_2
		playsound sound/UJE_marketgarden/soldier.wav volume 450
		wait 50
		playsound sound/world/debris2.wav volume 300
		wait 50
		playsound sound/UJE_marketgarden/uje_rumble_sound.wav volume 300			
		wait 150
		trigger firefx_0 run
		trigger firefx_1 run
		trigger firefx_2 run
		trigger firefx_3 run
		trigger firefx_4 run	
		faceangles 0 0 0 980 accel
	}
}

// *********************************************
// *********** RUBBLE STTTUUUFFFF **************
// *********************************************

defense1_toi
{
	trigger rubble_corner1
	{
		wait 575
		alertentity rubble1
		togglespeaker rubble1_sound
	}
}

// firetrails

firefx_0
{
	spawn
	{
		wait 500
		followspline 0 firefx_0_pad00 10000
		setstate firefx_0 invisible
	}
	
	trigger run
	{
		setstate firefx_0 default
		setstate firefx_0_trail default
		followspline 0 firefx_0_pad0 600 wait
		followspline 0 firefx_0_pad1 600 wait
		setstate firefx_0_trail invisible
		setstate firefx_0 invisible
	}
}

firefx_1
{
	spawn
	{
		wait 500
		followspline 0 firefx_1_pad00 10000
		setstate firefx_1 invisible
	}
	
	trigger run
	{
		setstate firefx_1 default
		setstate firefx_1_trail default
		followspline 0 firefx_1_pad0 980 wait
		followspline 0 firefx_1_pad1 980 wait
		setstate firefx_1_trail invisible
		setstate firefx_1 invisible
	}
}

firefx_2
{
	spawn
	{
		wait 500
		followspline 0 firefx_2_pad00 10000
		setstate firefx_2 invisible
	}
	
	trigger run
	{
		setstate firefx_2 default
		setstate firefx_2_trail default
		followspline 0 firefx_2_pad0 850 wait
		followspline 0 firefx_2_pad1 850 wait
		setstate firefx_2_trail invisible
		setstate firefx_2 invisible
	}
}

firefx_3
{
	spawn
	{
		wait 500
		followspline 0 firefx_3_pad00 10000
		setstate firefx_3 invisible
	}
	
	trigger run
	{
		setstate firefx_3 default
		setstate firefx_3_trail default
		followspline 0 firefx_3_pad0 680 wait
		followspline 0 firefx_3_pad1 680 wait
		setstate firefx_3_trail invisible
		setstate firefx_3 invisible
	}
}

firefx_4
{
	spawn
	{
		wait 500
		followspline 0 firefx_4_pad00 10000
		setstate firefx_4 invisible
	}
	
	trigger run
	{
		setstate firefx_4 default
		setstate firefx_4_trail default
		followspline 0 firefx_4_pad0 980 wait
		followspline 0 firefx_4_pad1 980 wait
		followspline 0 firefx_4_pad2 980 wait
		setstate firefx_4_trail invisible
		setstate firefx_4 invisible
	}
}

// misc_firetrails

firefx_0_trail
{
	spawn
	{
		wait 500
		attachtotag firefx_0 tag_trail
		setstate firefx_0_trail invisible
	}
}

firefx_1_trail
{
	spawn
	{
		wait 500
		attachtotag firefx_1 tag_trail
		setstate firefx_1_trail invisible
	}
}

firefx_2_trail
{
	spawn
	{
		wait 500
		attachtotag firefx_2 tag_trail
		setstate firefx_2_trail invisible
	}
}

firefx_3_trail
{
	spawn
	{
		wait 500
		attachtotag firefx_3 tag_trail
		setstate firefx_3_trail invisible
	}
}

firefx_4_trail
{
	spawn
	{
		wait 500
		attachtotag firefx_4 tag_trail
		setstate firefx_4_trail invisible
	}
}

//-------------------------------------------------
// bommer 0 aka ze plane
//-------------------------------------------------
// accum 0 = pad-position

uje_bommer0
{
	spawn
	{
		wait 50
		setstate uje_bommer0 default
	}

	trigger movestart
	{
		accum 0 set 1

		setposition bommer0_pad0
		faceangles 0 270 0 1
		setstate uje_bommer0 default

		alertentity aanval
		wait 3000
		trigger self movenext
	}
	trigger movenext
	{
		accum 0 inc 1
		trigger self move
	}
	trigger move
	{
		accum 0 trigger_if_equal 0 uje_bommer0 move_0
		accum 0 trigger_if_equal 1 uje_bommer0 move_1
		accum 0 trigger_if_equal 2 uje_bommer0 move_2
		accum 0 trigger_if_equal 3 uje_bommer0 move_3
		accum 0 trigger_if_equal 4 uje_bommer0 move_4
		accum 0 trigger_if_equal 5 uje_bommer0 move_5
		accum 0 trigger_if_equal 6 uje_bommer0 move_6
		accum 0 trigger_if_equal 7 uje_bommer0 move_7
		accum 0 trigger_if_equal 8 uje_bommer0 move_8
	}
	trigger move_0
	{
		gotomarker bommer0_pad1 400 wait
		trigger self movenext
	}
	trigger move_1
	{
		gotomarker bommer0_pad2a 400 wait
		trigger self movenext
	}
	trigger move_2
	{
		followspline 0 bommer0_pad2 400 wait roll -10 -5
		trigger self movenext
	}
	trigger move_3
	{
		followspline 0 bommer0_pad3 400 wait roll -5 0

		trigger game_manager bommen0_1e

		trigger self movenext
	}
	trigger move_4
	{
		followspline 0 bommer0_pad4 400 wait roll 0 5

		trigger self movenext
	}
	trigger move_5
	{
		followspline 0 bommer0_pad5 400 wait roll 5 10
		
		trigger self movenext
	}
	trigger move_6
	{
		followspline 0 bommer0_pad6 400 wait roll 10 0
		
		trigger self movenext
	}
	trigger move_7
	{
		gotomarker bommer0_pad8 400 wait
		trigger self movenext
	}
	trigger move_8
	{
		setstate uje_bommer0 invisible
	}
}

// you dropped something
plane_hit_1
{
	spawn
	{
		wait 350
		setstate plane_hit_1 default
	}
	
	trigger fall
	{
		setstate plane_hit_1 invisible
		
		playsound sound/world/debris2.wav volume 255
		wait 20
		playsound sound/UJE_marketgarden/uje_rumble_sound.wav volume 300
	}
}

plane_hit_2
{
	spawn
	{
		wait 350
		setstate plane_hit_2 default
	}
	
	trigger fall
	{
		setstate plane_hit_2 invisible
		playsound sound/world/debris2.wav volume 255
		wait 20
		playsound sound/UJE_marketgarden/uje_rumble_sound.wav volume 300
		
		setstate barier_explosion default
		setstate dyno_toi default
		setstate barier_dyno_toi default
		setstate barier_dyno_cmm default
		setstate dynocrate_1_outline default
		setstate dynocrate_2_outline default
		setstate drop_toi default
		setstate drop_cmm default
		setstate drop_zone default
		setstate explosives_pickup_toi default
		setstate explosives_pickup_cmm default
		setstate cage_mover invisible
		
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "UJE_marketgarden_comm_steal_obj"
		wm_addteamvoiceannounce 1 "UJE_marketgarden_dont_obj"
		wm_teamvoiceannounce 0 "UJE_marketgarden_comm_steal_obj"
		wm_teamvoiceannounce 1 "UJE_marketgarden_dont_obj"
		// *---------------------------------------------------------------------------------*
	}
}

/////////////////////////////////////////////////////////////////
// Cause I'm TNT, I'm dynamite

explosives
{
	spawn
	{		
		accum 1 set 0	// Picked up
		accum 2 set 0	// Delivered
	}
		
	trigger stolen
	{
		trigger explosives stolencheck
	}

	// Axis capture the explosives
	trigger stolencheck
	{
		// Increment carried explosive counter
		accum 1 inc 1

		// Tests for specific messages according to each explosive
		trigger explosives stolen1
		trigger explosives stolen2
	}

	trigger stolen1
	{
		// Halt if not first explosives
		accum 1 abort_if_not_equal 1

		wm_announce "The Axis have taken the first crate of explosives!"
	}

	trigger stolen2
	{
		// Halt if not second explosives
		accum 1 abort_if_not_equal 2

		wm_announce "The Axis have taken the second crate of explosives!"

		// Hide objectivce marker on command map
		setstate explosives_pickup_toi invisible
		setstate explosives_pickup_cmm invisible
	}

	trigger returned
	{
		trigger explosives returnedcheck
	}

	// Allies return the explosives
	trigger returnedcheck
	{
		// Decrement carried explosive counter
		accum 1 inc -1

		// Tests for specific messages according to each explosive
		trigger explosives returned1
		trigger explosives returned2
	}

	trigger returned1
	{
		// Halt if not first explosives
		accum 1 abort_if_not_equal 0

		wm_announce "The first crate of explosives has been returned!"

		// Hide objectivce marker on command map
		setstate explosives_pickup_toi default
		setstate explosives_pickup_cmm default
	}

	trigger returned2
	{
		// Halt if not second explosives
		accum 1 abort_if_not_equal 1

		wm_announce "The second crate of explosives has been returned!"
	}

	// Axis escape with the explosives
	trigger captured
	{
		trigger explosives capturedcheck
	}

	// Axis escape with the explosives
	trigger capturedcheck
	{
		accum 2 inc 1

		// Tests for specific messages according to each explosive
		trigger explosives captured1
		trigger explosives captured2
	}

	// Axis planted first set of explosives
	trigger captured1
	{
		// Halt if not first explosives
		accum 2 abort_if_not_equal 1

		// Show as placed
		setstate dynocrate_1_placed default
		setstate dynocrate_1_outline invisible

		wm_announce "The Axis have planted the first crate of explosives at the barrier!"
	}

	// Axis planted first second set of explosives
	trigger captured2
	{
		// Halt if not second explosives
		accum 2 abort_if_not_equal 2

		// Show as placed
		setstate dynocrate_2_placed default
		setstate dynocrate_2_outline invisible

		wm_announce "The Axis have planted the second crate of explosives at the barrier!"

		// Reveal dyno point
		setstate dyno_toi default
		setstate dyno default
		setstate barier_dyno_toi default
		setstate barier_dyno_cmm default

		// Hide drop point
		setstate drop_toi invisible
		setstate drop_cmm invisible
		setstate drop_zone invisible

		// Current main objectives for each team
		wm_objective_status 8 0 0
		wm_objective_status 8 1 0
	}
}

// Drop zone for the TNT
drop_zone
{
	spawn
	{
	}

	death
	{
	}
}

/////////////////////////////////////////////////////////////////
// Barrier No 2

dyno
{
	spawn
	{
		wait 100
		
		setstate barier_explosion invisible
		setstate dyno_toi invisible
		setstate dyno invisible
		setstate barier_dyno_toi invisible
		setstate barier_dyno_cmm invisible
		setstate dynocrate_1_outline invisible
		setstate dynocrate_2_outline invisible

		constructible_class 3
		constructible_destructxpbonus 20
	}

	death
	{
		wm_announce "^2The Axis have breached the second barrier!"

		trigger tank barier_explosion_destroyed
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "UJE_marketgarden_axis_tankbar_destroyed"
		wm_teamvoiceannounce 1 "UJE_marketgarden_allies_tankbar_destroyed"
		wm_removeteamvoiceannounce 0 "UJE_marketgarden_comm_steal_obj"
		wm_removeteamvoiceannounce 1 "UJE_marketgarden_dont_obj"
		// *---------------------------------------------------------------------------------*

		// Hide relevant destruction bits
		setstate barier_explosion invisible
		setstate dyno_toi invisible
		setstate dyno invisible
		setstate barier_dyno_toi invisible
		setstate barier_dyno_cmm invisible
		setstate garden_wobj invisible

		// Trigger effects
		alertentity wall_blown_effects

		// Show replacement
		setstate barier_explosion_debris default

		// Tell game_manager it's blown and remove that ugly flag
		trigger game_manager barier_blown
		trigger garden_flag force_axis
		trigger garden_flag kill

		wm_objective_status 3 0 1
		wm_objective_status 3 1 2
	}
} 

dyno_toi
{
	spawn
	{
	}
}

wall_rock_relay
{
	spawn
	{
	}

	trigger fly
	{
		trigger wall_rock_1 fly
		trigger wall_rock_2 fly
	}
}

wall_rock_1
{
	spawn
	{
		wait 200
		followspline 0 wall_rock_1_0 50000 length 32 wait
		setstate wall_rock_1 invisible
	}

	trigger fly
	{
		setstate wall_rock_1 default
		alertentity wall_rock_1_bounce_1
		followspline 0 wall_rock_1_1 1000 wait length 32 roll 0 90
	
		// First arc
		alertentity wall_rock_1_bounce_2
		followspline 0 wall_rock_1_2 700 wait length 32 roll 90 -90

		// Second arc
		followspline 0 wall_rock_1_3 200 wait length 32
	}
}

wall_rock_2
{
	spawn
	{
		wait 200
		followspline 0 wall_rock_2_0 50000 wait length 32 roll 0 180
		setstate wall_rock_2 invisible
	}

	trigger fly
	{
		setstate wall_rock_2 default
		alertentity wall_rock_2_bounce
		followspline 0 wall_rock_2_1 800 wait length 32 roll 180 -90

		// First arc
		followspline 0 wall_rock_2_2 600 wait length 32 roll 90 0
	}
}