//map himmelsdorf
game_manager
{
	spawn
	{
		remapshader "models/mapobjects/tanks_sd/mg42turret" "models/mapobjects/tanks_sd/mg42turret_2"
		
		remapshaderflush
						
		// Game rules
		wm_axis_respawntime	8
		wm_allied_respawntime	8
		wm_number_of_objectives 7
		wm_set_round_timelimit	30
		
		// Objectives
		// 1: Steal Fuel 
		// 2: Escort Tank
		// 3: Steal Gold / Blow Doors
		// 4: Escape with gold
		// 5: allies cp
		// 6: axis cp 
 


		// Current main objectives for each team (0=Axis, 1=Allies)
		wm_set_main_objective		1	0
		wm_set_main_objective		1	1
		
		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 0
		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_set_main_objective		1	0
		wm_set_main_objective		1	1

		// Stopwatch mode defending team (0=Axis, 1=Allies)
		wm_set_defending_team	0
		
		// Winner on expiration of round timer (0=Axis, 1=Allies)
		wm_setwinner	0
		
		wait 500
		
		setautospawn	"Old City Spawn"	0
		setautospawn	"Allied Spawn"	1

		setstate last_allied_spawn_wobj invisible
		

		// start triggered loops on/off as required (eg: command post radio sounds)
		disablespeaker allies_compost_sound
		disablespeaker axis_compost_sound
		disablespeaker allies_compost_sound_lms
		disablespeaker axis_compost_sound_lms

		wait 2000
		
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "goldrush_axis_tank_steal"
		wm_addteamvoiceannounce 0 "axis_protect_fuel"
		wm_addteamvoiceannounce 0 "fueldump_axis_tunnel_stop"

		wm_addteamvoiceannounce 1 "goldrush_allies_tank_steal"
		wm_addteamvoiceannounce 1 "allies_steal_fuel"

		wm_teamvoiceannounce 0 "goldrush_axis_tank_steal"
		wm_teamvoiceannounce 0 "axis_protect_fuel"
		wm_teamvoiceannounce 0 "fueldump_axis_tunnel_stop"

		wm_teamvoiceannounce 1 "goldrush_allies_tank_steal"
		wm_teamvoiceannounce 1 "allies_steal_fuel"
		
		wm_removeteamvoiceannounce 0 "goldrush_axis_tank_steal"
		wm_removeteamvoiceannounce 0 "axis_protect_fuel"
		wm_removeteamvoiceannounce 0 "fueldump_axis_tunnel_stop"
		
		wm_removeteamvoiceannounce 1 "goldrush_allies_tank_steal"
		wm_removeteamvoiceannounce 1 "allies_steal_fuel"
		// *---------------------------------------------------------------------------------*
	}

	trigger allies_win
	{
		wm_setwinner	1
		wm_announce "Allied team escaped with the Gold Crates!"

		wm_objective_status 4 0 2
		wm_objective_status 4 1 1

		wait 1500
		wm_endround
	}

	trigger allies_blow_celldoor
	{
		wm_announce "Allied team have blown the Tunnel door"

		trigger game_manager allies_blow_celldoor_allied_msg
		trigger game_manager allies_blow_celldoor_axis_msg

	}
	
	trigger allies_blow_celldoor_allied_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "fueldump_allies_hq_gratedest"
		wm_addteamvoiceannounce 1 "allies_steal_fuel"

		wm_teamvoiceannounce 1 "fueldump_allies_hq_gratedest"
		wm_teamvoiceannounce 1 "allies_steal_fuel"
		
		wm_removeteamvoiceannounce 1 "fueldump_allies_hq_gratedest"
		// *---------------------------------------------------------------------------------*
	}

	trigger allies_blow_celldoor_axis_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_tunnel_destroyed"
		wm_addteamvoiceannounce 0 "axis_protect_fuel"
		
		wm_teamvoiceannounce 0 "axis_protect_fuel"

		wm_teamvoiceannounce 0 "fueldump_axis_tunnel_destroyed"
		
		// *---------------------------------------------------------------------------------*
	}	
	
	trigger allies_stolen_fuel
	{
		wm_setwinner	1
		wm_announce "Allied team have stolen the fuel"
		
		wm_objective_status 2 0 2
		wm_objective_status 2 1 1
		
		trigger game_manager allies_stolen_fuel_allied_msg
		trigger game_manager allies_stolen_fuel_axis_msg
	}
	
	trigger allies_stolen_fuel_allied_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "allies_stolen_fuel"

		wm_teamvoiceannounce 1 "allies_stolen_fuel"
		
		wm_removeteamvoiceannounce 1 "allies_steal_fuel"
		wm_removeteamvoiceannounce 1 "fueldump_allies_hq_gratedest"
		// *---------------------------------------------------------------------------------*
	}

	trigger allies_stolen_fuel_axis_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "axis_stolen_fuel"

		wm_teamvoiceannounce 0 "axis_stolen_fuel"
		
		wm_removeteamvoiceannounce 0 "axis_protect_fuel"
		wm_removeteamvoiceannounce 0 "fueldump_allies_hq_gratedest"
		// *---------------------------------------------------------------------------------*
	}
	
	trigger allies_steal_tank
	{
		
		wm_announce "Allied team has stolen the Tank!"
		
		wm_objective_status		2 0 2
		wm_objective_status		2 1 1

		trigger game_manager allies_steal_tank_allied_msg
		trigger game_manager allies_steal_tank_axis_msg
		trigger game_manager obj_lost_msg
	
	}

	trigger allies_steal_tank_allied_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "allies_secured_fuel_allies"
		wm_addteamvoiceannounce 1 "goldrush_allies_tank_stolen"

		wm_teamvoiceannounce 1 "allies_secured_fuel_allies"
		
		wm_teamvoiceannounce 1 "goldrush_allies_tank_stolen"
		
		wm_removeteamvoiceannounce 1 "allies_stolen_fuel"
		wm_removeteamvoiceannounce 1 "allies_steal_fuel"
		wm_removeteamvoiceannounce 1 "fueldump_allies_hq_gratedest"	
		// *---------------------------------------------------------------------------------*
	}
	
	trigger allies_steal_tank_axis_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "goldrush_axis_tank_stolen"
		wm_addteamvoiceannounce 0 "stop_tank"
		
		wm_teamvoiceannounce 0 "goldrush_axis_tank_stolen"
		wm_teamvoiceannounce 0 "stop_tank"
				
		wm_removeteamvoiceannounce 0 "axis_stolen_fuel"
		wm_removeteamvoiceannounce 0 "axis_protect_fuel"
		wm_removeteamvoiceannounce 0 "obj_lost"
		wm_removeteamvoiceannounce 0 "fueldump_axis_tunnel_destroyed"
		// *---------------------------------------------------------------------------------*
	}

	trigger tank_fuel_cap_allied_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "tank_fuel_sec"
		
		wm_teamvoiceannounce 1 "tank_fuel_sec"
		
		
		wm_removeteamvoiceannounce 1 "allies_stolen_fuel"
		wm_removeteamvoiceannounce 1 "allies_steal_fuel"
		wm_removeteamvoiceannounce 1 "tank_fuel_sec"
		wm_removeteamvoiceannounce 1 "fueldump_axis_tunnel_destroyed"
		// *---------------------------------------------------------------------------------*
	}
	
	trigger tank_fuel_cap_axis_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "obj_lost"
		wm_addteamvoiceannounce 0 "axis_hq_tank_stop"

		wm_teamvoiceannounce 0 "obj_lost"
		wm_teamvoiceannounce 0 "axis_hq_tank_stop"
		
		wm_removeteamvoiceannounce 0 "allies_stolen_fuel"
		wm_removeteamvoiceannounce 0 "allies_steal_fuel"
		wm_removeteamvoiceannounce 0 "allies_secured_fuel"
		wm_removeteamvoiceannounce 0 "fueldump_allies_hq_gratedest"
		wm_removeteamvoiceannounce 0 "goldrush_axis_tank_stolen"
		// *---------------------------------------------------------------------------------*
	}

	trigger obj_sec_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "obj_sec"
		
		wm_teamvoiceannounce 0 "obj_sec"
		
		wm_removeteamvoiceannounce 0 "obj_lost"
		// *---------------------------------------------------------------------------------*
	}
	
	trigger obj_lost_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "obj_lost"
		
		wm_teamvoiceannounce 0 "obj_lost"
		
		wm_removeteamvoiceannounce 0 "obj_sec"
		// *---------------------------------------------------------------------------------*
	}
}

tag_trigger
{
	activate
	{
		trigger etc_tag activate
	}
	
	trigger remove
	{
		remove
	}
}

etc_tag
{
    spawn
    {
		setstate etc_tag invisible
    }
    
    trigger activate
    {
		setstate etc_tag default
    }
}


tank_fuel
{
	spawn
	{
	}
	trigger returned
	{
		setstate tank_fuel_toi default
		wm_announce "Tank Fuel has been returned!"

		trigger game_manager obj_sec_msg
	}
	trigger stolen
	{
		setstate tank_fuel_toi invisible
		wm_announce "Tank Fuel has been stolen!"
		
		trigger game_manager allies_stolen_fuel_allied_msg
		trigger game_manager axis_stolen_fuel_axis_msg
	}
}

tank_fuel_trigger
{
	death
	{		
		wait 200
		setstate tank_fuel_trigger invisible
		setstate tank_build default
		wm_announce "Allies have secured Tank Fuel!"
		
		wm_objective_status 1 0 2
		wm_objective_status 1 1 1
		
		trigger game_manager allies_steal_tank_allies_msg
		trigger game_manager allies_steal_tank_axis_msg
		trigger game_manager tank_fuel_cap_allied_msg
	}
}

//Celldoor2
celldoor2
{
    spawn
    {
        wait 200
        setstate celldoor2_destroyed invisible
    }

    death
    {
        setstate celldoor2_destroyed default
        setstate celldoor2 invisible
        setstate celldoor2_toi invisible
		
		trigger game_manager allies_blow_celldoor
    }
}

//Door near Gold :D
rear_golddoor
{
    spawn
    {
		constructible_class 3
        wait 200
        setstate rear_golddoor_destroyed invisible
    }

    death
    {
		wm_announce "^1Depot Side Entrance destroyed!"
        setstate rear_golddoor_destroyed default
        setstate rear_golddoor invisible
        setstate rear_golddoor_toi invisible
    }
}

// *************************************************
// ***************** TANK STUFF ********************
// *************************************************
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 rebirth
	{
		trigger tank sound_rebirth
		wait 1400
		trigger tank sound_idle
	}
}

// digibob: converting truck script from himmelsdorf over...
// ============================================================================
// accum 0, track state
// accum 1
//  - bit 0: barrier1 state		( 0 = not built,	1 = built		)
//  - bit 1: barrier2 state		( 0 = not built,	1 = built		)
//  - bit 2: spline status 		( 0 = not moving, 	1 = moving 		)
//  - bit 3: stuck check flag 	( 0 = not stuck, 	1 = stuck 		)
//  - bit 4: flag for message	( 0 = dont display, 1= display		)
//  - bit 5: blank				(									)
//  - bit 6: temp register 		(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
//  - bit 7: death status 		( 0 = alive, 		1 = dead		)
//  - bit 8: player check 		( 0 = players, 		1 = no players	)
//  - bit 9: visible state		( 0 = alive, 		1 = dead		)
// accum 2, blank
// accum 3, current movement loop position
// accum 4, stop counter
// accum 5, lockout ref counter
// accum 6, blank
// accum 7, blank
// ===========================================================================================
// spline points are spln2 -> spln78
// ===========================================================================================
// track events:
//  - tracks_forward
//  - tracks_stop
//  - tracks_turn_left
//  - tracks_turn_right


tank
{
	spawn
	{
		wait 400
		followspline 0 spln1 50000 length 32 wait
		
		
		trigger tank sound_idle
		trigger tank tracks_stop
		
		
	}

	// ========================================
	// 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
	}

	// ========================================
	// ========================================


	// ===========================================================================================
	// ===========================================================================================
	trigger tracks_forward
	{
		accum 0 abort_if_equal 1
		accum 0 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 0 abort_if_equal 0
		accum 0 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 0 abort_if_equal 2
		accum 0 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 0 abort_if_equal 3
		accum 0 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
	}

	// ===========================================================================================
	// ===========================================================================================

	trigger run_continue
	{
		accum 3 inc 1
		trigger self deathcheck
		trigger self stopcheck
		trigger self move
	}


	// ===========================================================================================
	// movement

	trigger move_check
	{
		trigger self stuck_check
		accum 1 abort_if_bitset 3

		trigger self dispatch
	}

	trigger move
	{
		trigger self move_check

		wait 500

		trigger self move
	}

	trigger dispatch
	{
		accum 3 trigger_if_equal 0 tank run_0
		accum 3 trigger_if_equal 1 tank run_1
		accum 3 trigger_if_equal 2 tank run_2
		accum 3 trigger_if_equal 3 tank run_3
		accum 3 trigger_if_equal 4 tank run_4
		accum 3 trigger_if_equal 5 tank run_5
		accum 3 trigger_if_equal 6 tank run_6
		accum 3 trigger_if_equal 7 tank run_7
		accum 3 trigger_if_equal 8 tank run_8
		accum 3 trigger_if_equal 9 tank run_9
		accum 3 trigger_if_equal 10 tank run_10
		accum 3 trigger_if_equal 11 tank run_11
		accum 3 trigger_if_equal 12 tank run_12
		accum 3 trigger_if_equal 13 tank run_13
		accum 3 trigger_if_equal 14 tank run_14
		accum 3 trigger_if_equal 15 tank run_15
		accum 3 trigger_if_equal 16 tank run_16
		accum 3 trigger_if_equal 17 tank run_17
		accum 3 trigger_if_equal 18 tank run_18
		accum 3 trigger_if_equal 19 tank run_19
		accum 3 trigger_if_equal 20 tank run_20
		accum 3 trigger_if_equal 21 tank run_21
		accum 3 trigger_if_equal 22 tank run_22
		accum 3 trigger_if_equal 23 tank run_23
		accum 3 trigger_if_equal 24 tank run_24
		accum 3 trigger_if_equal 25 tank run_25
		accum 3 trigger_if_equal 26 tank run_26
		accum 3 trigger_if_equal 27 tank run_27
		accum 3 trigger_if_equal 28 tank run_28
		accum 3 trigger_if_equal 29 tank run_29
		accum 3 trigger_if_equal 30 tank run_30
		accum 3 trigger_if_equal 31 tank run_31
		accum 3 trigger_if_equal 32 tank run_32
		accum 3 trigger_if_equal 33 tank run_33
		accum 3 trigger_if_equal 34 tank run_34
		accum 3 trigger_if_equal 35 tank run_35
		accum 3 trigger_if_equal 36 tank run_36
		accum 3 trigger_if_equal 37 tank run_37
		accum 3 trigger_if_equal 38 tank run_38
		accum 3 trigger_if_equal 39 tank run_39
		accum 3 trigger_if_equal 40 tank run_40
		accum 3 trigger_if_equal 41 tank run_41
	}

	trigger run_0
	{
		trigger self tracks_forward
		accum 1 bitset 2
		followspline 0 spln2 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_1
	{
		trigger self tracks_forward
		accum 1 bitset 2
		followspline 0 spln3 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_2
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln4 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_3
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln5 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_4
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln6 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_5
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln7 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_6
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln8 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_7
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln9 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_8
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln10 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_9
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln11 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_10
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln12 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_11
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln13 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_12
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln14 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_13
	{
		trigger self tracks_turn_right

		accum 1 bitset 2
		followspline 0 spln15 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_14
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln16 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_15
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln17 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_16
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln18 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_17
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln19 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_18
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln20 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_19
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln21 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_20
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln22 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_21
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln23 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_22
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln24 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_23
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln25 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_24
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln26 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_25
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln27 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_26
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln28 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_27
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln29 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_28
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln30 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_29
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln31 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_30
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln32 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_31
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln33 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_32
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln34 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_33
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln35 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_34
	{
		trigger self tracks_turn_left

		accum 1 bitset 2
		followspline 0 spln36 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_35
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln37 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_36
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln38 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_37
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln39 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_38
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln40 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_39
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln41 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_40
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln42 50 wait length 32
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_41
	{
		trigger self tracks_forward

		accum 1 bitset 2
		followspline 0 spln43 50 wait length 32
		accum 1 bitreset 2
		
		trigger self script_lockout
		
		trigger tank_sound stop
		trigger self tracks_stop

		wm_objective_status 2 0 2
		wm_objective_status 2 1 1

		startanimation 45 10 15 nolerp norandom
		wait 666
		startanimation 0 1 15 nolerp norandom
		
		wait 900

		trigger tank_turret turn
		accum 3 inc 1
	}
	
// ===========================================================================================
// stop check

	trigger stopcheck_setup
	{
		accum 1 bitset 6			// stop if we're stuck/no-one's pushing :)

		accum 1 abort_if_bitset 8		// no one in the trigger, abort

		trigger self stuck_check		// call the stop check function
		accum 1 abort_if_bitset 3		// we're stuck so break out

		accum 1 bitreset 6			// we're free to move
	}

	trigger stopcheck
	{
		trigger self stopcheck_setup
		accum 1 abort_if_not_bitset 6

		trigger self script_lockout

		// 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_lockout_stop
		resetscript
	}

	trigger script_lockout
	{
		accum 5 inc 1
	}

	trigger script_lockout_stop
	{
		accum 5 inc -1
	}

	trigger tank_enable
	{
		trigger self stuck_check
		accum 1 abort_if_bitset 3 	// stuck check

		accum 4 set 0				// reset stop counter
		accum 1 bitreset 8			// reset stop check

		accum 1 abort_if_bitset 2 	// already following spline
		accum 5 abort_if_not_equal 0	// are we not in a script lockout?

		accum 1 abort_if_bitset 7 	// death check

		// Any just started moving stuff goes here

		trigger self script_lockout

		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_lockout_stop

		trigger self move
	}

	trigger tank_disable
	{
		accum 4 inc 1				// up the stop counter
		accum 4 abort_if_less_than 4

		accum 1 bitset 8			// set stop check

		trigger self deathcheck
	}

// ===========================================================================================
// ===========================================================================================
// death / rebirth

	rebirth
	{
		accum 1 bitreset 9 // we're visibly alive
		accum 1 bitreset 7 // we're alive again

		trigger self script_lockout

		changemodel models/mapobjects/tanks_sd/jagdpanther_africa_tracks.md3

		setstate tank_smoke invisible

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_tank_repaired_allies"
		
		
		wm_addteamvoiceannounce 0 "axis_hq_tank_stop"
		wm_addteamvoiceannounce 1 "allies_hq_tank_repaired"
		wm_teamvoiceannounce 1 "allies_hq_tank_repaired"
		
		wm_removeteamvoiceannounce 0 "axis_hq_tank_stop"
		wm_removeteamvoiceannounce 0 "allies_hq_tank_damaged_axis"
		wm_removeteamvoiceannounce 1 "allies_hq_tank_repaired"
		// *---------------------------------------------------------------------------------*

		trigger tank_sound rebirth
		wait 500

		trigger self script_lockout_stop
	}

	death
	{
		accum 1 bitset 7
	}

	trigger deathcheck
	{
		accum 1 abort_if_not_bitset 7	// are we dead?
		accum 1 abort_if_bitset 9		// are we not already visibly dead?
		accum 1 abort_if_bitset 2		// are we not following a spline?
		accum 5 abort_if_not_equal 0	// are we not in a script lockout?

		accum 1 bitset 9				// we're now visibly dead

		trigger self deathcheck_message
		accum 1 bitset 4

		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_lockout

		trigger self tracks_stop
		startanimation 45 10 15 nolerp norandom
		wait 666
		startanimation 0 1 15 nolerp norandom

		trigger self script_lockout_stop

		resetscript
	}
	

	trigger deathcheck_message
	{
		accum 1 abort_if_not_bitset 4

		wm_announce "The Tank has been damaged!"

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "allies_hq_tank_damaged_axis"

		wm_teamvoiceannounce 0 "axis_hq_tank_damaged"

		wm_teamvoiceannounce 1 "allies_hq_tank_damaged_axis"

		wm_removeteamvoiceannounce 0 "axis_hq_tank_stop"
		wm_removeteamvoiceannounce 0 "allies_hq_tank_repaired_axis"
		// *---------------------------------------------------------------------------------*
	}

	trigger startfire
	{
		startanimation 67 8 10 nolerp norandom noloop
	}

	trigger stopfire
	{
		startanimation 0 1 15 nolerp norandom
	}
}

tank_trigger
{
	spawn
	{
		wait 500

		attachtotag tank_shell tag_turret
		trigger tank_trigger bot_goal_loop
	}

	trigger bot_goal_loop
	{
		wait 4000	// check every 4 seconds
		trigger tank bot_active_check
		trigger tank_trigger bot_goal_loop
	}
}

tank_build
{
	spawn
	{
		wait 500
		setstate tank_build invisible
		attachtotag tank_shell tag_turret

	}
}

tank_construct
{
	spawn
	{
		wait 1000

		kill tank

		constructible_class 2
		constructible_health 1200
		constructible_constructxpbonus 10
		constructible_destructxpbonus 10
	}

	built final
	{
		alertentity tank

		wm_announce "The Tank has been repaired!"
	}
}

tank_shell
{
	spawn
	{
		wait 400
		attachtotag tank tag_tank
	}
}

tank_turret
{
	spawn
	{
		wait 500
		
		attachtotag tank_shell tag_turret
	}

	trigger turn
	{
		wait 1000

		playsound sound/vehicles/tank/turret_spin.wav looping
		faceangles 0 0 20 1000
		stopsound
		playsound sound/vehicles/tank/turret_end.wav

		wait 500
		

		trigger tank startfire
		playsound sound/vehicles/tank/tank_fire.wav
		trigger tank_flash run
		wait 300
		trigger self blow_doors
	}

	trigger blow_doors
	{
		wm_announce "Allied team has destroyed the Main Gate!"
		setstate tank_flash invisible
		
		alertentity tankdoor1
		trigger sidedoor open
		alertentity axis_spawn_wobj
		alertentity oldcity_allied_spawns
				
		setstate tankdoors_toi invisible
		
		setautospawn	"Axis Spawn"	0
		setautospawn	"Old City Spawn"	1
		
		wait 100
		togglespeaker halfwaypoint // tits OR BUTT ?
		
		trigger tank sound_death
		trigger oldcityspawn kill
		setstate oldcityspawns invisible
		setstate pushtrigger1 invisible
		setstate pushtrigger2 invisible
		setstate pushtrigger3 invisible
		
		wait 200
		trigger tank stopfire
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce	0	"radar_axis_entrance1_destroyed"
		wm_teamvoiceannounce	0	"goldrush_axis_gold_defend"
		wm_teamvoiceannounce	0	"goldrush_axis_truckbars_construct"
		
		
		wm_addteamvoiceannounce	0	"radar_axis_entrance1_destroyed"
		wm_addteamvoiceannounce	0	"goldrush_axis_gold_defend"
		wm_addteamvoiceannounce 0	"goldrush_axis_truckbars_construct"
		
		wm_addteamvoiceannounce 1	"radar_allies_entrance1_destroyed"
		
		wm_teamvoiceannounce	1	"radar_allies_entrance1_destroyed"
		
		wm_removeteamvoiceannounce	0	"radar_axis_entrance1_destroyed"
		wm_removeteamvoiceannounce	1	"radar_allies_entrance1_destroyed"
		wm_removeteamvoiceannounce	0	"stop_tank"
		wm_removeteamvoiceannounce	0	"goldrush_axis_tank_stolen"
		// *---------------------------------------------------------------------------------*
	}
}

tank_flash
{
	spawn
	{
		setstate tank_flash invisible
	}

	trigger run
	{
		setstate tank_flash default
 		attachtotag tank_turret tag_flash
		faceangles 0 90 0 50

		wait 100

		setstate tank_flash invisible
	}
}

tank_disabler
{
	trigger run
	{
		trigger tank tank_disable
	}
}

tank_enabler
{
	trigger run
	{
		trigger tank tank_enable
	}
}

tank_smoke
{
	spawn
	{
		wait 300
		attachtotag tank_shell tag_smoke
		setstate tank_smoke invisible
	}
}

sidedoor
{
    
    spawn
    {
    }
	
	trigger open
    {
		wait 1200
		playsound sound/movers/misc/big_gate2.wav looping  volume 255
        gotomarker sidedoor_dest 56 wait
        stopsound
        playsound sound/movers/misc/big_gate3.wav  volume 355
        wait 50    // wait for wav to play
		wm_announce "The Factory Side door has opened"
    }
}

//Gold_depot
gold_depot
{
    spawn
    {
		constructible_class 3
        setstate gold_depot_trigger default
        wait 200
    }

    death
    {
        setstate gold_depot_trigger invisible 
        wm_announce "The depot doors have been destroyed."
		
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce	0	"goldrush_axis_gold_defend"
		wm_teamvoiceannounce	1	"himmelsdorf_allies_depotdoors_destroyed"
		wm_teamvoiceannounce	1	"goldrush_allies_gold_get"
		
		wm_addteamvoiceannounce	0	"goldrush_axis_gold_defend"
		wm_addteamvoiceannounce 1	"goldrush_allies_gold_get"
		
		wm_removeteamvoiceannounce	0	"goldrush_axis_gold_defend"
		wm_removeteamvoiceannounce	1	"goldrush_allies_gold_get"
		// *---------------------------------------------------------------------------------*
	}
}
// **********************************************
// ****************** TRUCK STUFF ***************
// **********************************************
truck_smoke
{
	spawn
	{
		wait 300
		attachtotag truck tag_wfront
		setstate truck_smoke invisible
	}
}

// sound "thread"
truck_engine
{
	spawn
	{
		wait 200
		attachtotag truck tag_wfront

		trigger truck_engine sound_idle
	}

	trigger start
	{
		trigger truck_engine sound_start
		wait 950
		trigger truck_engine sound_move
	}

	trigger stop
	{
		trigger truck_engine sound_stop
		wait 950
		trigger truck_engine sound_idle
	}

	// ========================================
	// sound events
	trigger sound_idle
	{
		playsound sound/vehicles/truck/truck_idle.wav looping
	}

	trigger sound_start
	{
		stopsound
		playsound sound/vehicles/truck/truck_revup.wav volume 96
	}

	trigger sound_move
	{
		playsound sound/vehicles/truck/truck_move.wav looping volume 96
	}

	trigger sound_stop
	{
		stopsound
		playsound sound/vehicles/truck/truck_revdown.wav volume 96
	}

	trigger sound_death
	{
		stopsound
		playsound sound/vehicles/truck/truck_stop.wav volume 96
	}

	// ========================================
	// ========================================
}

truck_build
{
	spawn
	{
		wait 500

		attachtotag truck tag_wback
	}
}

truck_construct
{
	spawn
	{
		constructible_class 2
		constructible_health 1050
		constructible_constructxpbonus 10
		constructible_destructxpbonus 10
	}

	built final
	{
		alertentity truck

		wm_announce "The Truck has been repaired!"
	}
}

// digibob: ok, for once i'm gonna PLAN this one, so NOTHING WILL BREAK EVAR
// ============================================================================
// accum 0, gold bars collected
// accum 1
//  - bit 0: barrier 1 status 	( 0 = destroyed, 	1 = built 		)
//  - bit 1: barrier 2 status 	( 0 = destroyed, 	1 = built 		)
//  - bit 2: spline status 		( 0 = not moving, 	1 = moving 		)
//  - bit 3: stuck check flag 	( 0 = not stuck, 	1 = stuck 		)
//  - bit 4: script lockout 	( 0 = no lockout, 	1 = lockout		)
//  - bit 5: blank 				( 									)
//  - bit 6: temp register 		(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
//  - bit 7: death status 		( 0 = alive, 		1 = dead		)
//  - bit 8: player check 		( 0 = players, 		1 = no players	)
//  - bit 9: visible state		( 0 = alive, 		1 = dead		)
// accum 2, blank
// accum 3, current movement loop position
// accum 4, stop counter
// accum 5, blank
// accum 6, blank
// accum 7, blank
// ============================================================================
// spline points are path_X with X = 1 to 55
// ============================================================================
// wheel events:
//  - wheels_forward
//  - wheels_backward
//  - wheels_stop

truck
{
	spawn
	{
		faceangles 0 90 0 50
	}

	// ========================================
	// wheeeeeeeeeeeeeeels. eeels. ls.
	trigger wheels_forward
	{
		trigger truck_bwheel2 forward
		trigger truck_fwheel forward
	}

	trigger wheels_backward
	{
		trigger truck_bwheel2 backward
		trigger truck_fwheel backward
	}

	trigger wheels_stop
	{
		trigger truck_bwheel2 stop
		trigger truck_fwheel stop
	}

	// ========================================
	// ========================================

	trigger add_goldbar
	{
		accum 0 inc 1

		trigger gold_full_0 show
		trigger gold_trans_0 hide
		trigger gold_crate secured

		accum 0 abort_if_less_than 2

		trigger gold_full_1 show
		trigger gold_trans_1 hide

		trigger self truck_escape_msg

		wm_announce "Allied team is escaping with the Gold Crates!"

		wm_objective_status 3 0 2
		wm_objective_status 3 1 1

		wm_set_main_objective		4	0
		wm_set_main_objective		4	1
		wm_set_main_objective		4	1

		setstate goldbars_toi invisible
		setstate goldbars_cm_marker invisible
	}

	trigger truck_escape_msg
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "axis_hq_truck_stop"

		wm_addteamvoiceannounce 1 "allies_hq_truck_escort"

		wm_teamvoiceannounce 0 "goldrush_axis_truck_stolen"

		wm_teamvoiceannounce 1 "goldrush_allies_truck_stolen"

		wm_removeteamvoiceannounce 0 "goldrush_axis_gold_defend"

		wm_removeteamvoiceannounce 1 "goldrush_allies_gold_get"
		// *---------------------------------------------------------------------------------*
	}

	// ========================================
	// movement

	trigger move_check
	{
		trigger truck stuck_check
		accum 1 abort_if_bitset 3

		trigger truck dispatch
	}

	trigger move
	{
		trigger truck move_check

		wait 500

		trigger truck move
	}

	// ========================================
	// ========================================


	trigger run_continue
	{
		trigger truck deathcheck
		trigger truck stopcheck
		trigger truck move
	}

	trigger run_1
	{
		accum 1 bitset 2
		followspline 0 path_1 125 wait length 336 wait roll 0 2 dampin
		accum 1 bitreset 2

		accum 3 set 1

		trigger truck run_continue
	}

	trigger run_2
	{
		accum 1 bitset 2
		followspline 0 path_2 125 wait length 304 wait roll 2 -1 dampout
		accum 1 bitreset 2

		accum 3 set 2
		
		trigger truck run_continue
	}

	trigger run_3
	{
		accum 1 bitset 2
		followspline 0 path_3 125 wait length 256 wait roll 1 -1 dampout
		accum 1 bitreset 2

		accum 3 set 3
		
		trigger truck run_continue
	}

	trigger run_4
	{
		accum 1 bitset 2
		followspline 0 path_4 125 wait length 256
		accum 1 bitreset 2

		accum 3 set 4
		
		trigger truck run_continue
	}

	trigger run_5
	{
		accum 1 bitset 2
		followspline 0 path_5 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 5
		
		trigger truck run_continue
	}

	trigger run_6
	{
		accum 1 bitset 2
		followspline 0 path_6 125 wait length 336
		accum 1 bitreset 2

		accum 3 set 6
		
		trigger truck run_continue
	}
	
	trigger run_7
	{
		accum 1 bitset 2
		followspline 0 path_7 125 wait length 240
		accum 1 bitreset 2

		accum 3 set 7
		
		trigger truck run_continue
	}

	trigger run_8
	{
		accum 1 bitset 2
		followspline 0 path_8 125 wait length 256
		accum 1 bitreset 2

		accum 3 set 8
		
		trigger truck run_continue
	}

	trigger run_9
	{
		accum 1 bitset 2
		followspline 0 path_9 125 wait length 208
		accum 1 bitreset 2

		accum 3 set 9
		
		trigger truck run_continue
	}

	trigger run_10
	{
		accum 1 bitset 2
		followspline 0 path_10 250 wait length 128
		accum 1 bitreset 2

		accum 3 set 10
		
		trigger truck run_continue
	}

	trigger run_11
	{
		accum 1 bitset 2
		followspline 0 path_11 125 wait length 192
		accum 1 bitreset 2

		accum 3 set 11
		
		trigger truck run_continue
	}

	trigger run_12
	{
		accum 1 bitset 2
		followspline 0 path_12 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 12
		
		trigger truck run_continue
	}

	trigger run_13
	{	
		accum 1 bitset 2
		followspline 0 path_13 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 13
				
		trigger truck run_continue
	}

	trigger run_14
	{
		accum 1 bitset 2
		followspline 0 path_14 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 14
		trigger truck run_continue
	}

	trigger run_15
	{
		accum 1 bitset 2
		followspline 0 path_15 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 15
		
		trigger truck stuck_check_defense1_built_msg
		
		trigger truck run_continue
	}

	trigger run_16
	{
		accum 1 bitset 2
		followspline 0 path_16 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 16

		trigger truck run_continue
	}

	trigger run_17
	{
		// **************************
		trigger defense1 remove
		// **************************
		accum 1 bitset 2
		followspline 0 path_17 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 17

		trigger truck run_continue
	}

	trigger run_18
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_truck_barrier1"
		wm_announce "^1The spawns have moved"
		wm_teamvoiceannounce 1 "goldrush_allies_truck_barrier1"
		// *---------------------------------------------------------------------------------*
		//spawnchange//
		setautospawn "Last Axis Spawn" 0		// Setautospawn for Axis team
		setautospawn "Last Allied Spawn" 1		// Setautospawn for Allied team
		
		setstate axis_spawn_wobj invisible		// Disable Axis mid spawn command map flag
		setstate oldcityspawn invisible			// Disable Old City command map flag
		
		setstate last_allied_spawn_wobj default	// Enable last Allied spawn
		alertentity last_allied_spawns 			// Set spawns Active
		setstate last_axis_spawn_wobj default	// Enable last Axis spawn
		
		trigger axis_mid_spawns remove			// Disable Axis mid spawn
		trigger olcityspawns remove				// Disable Old City spawn
		//-----------//	

		accum 1 bitset 2
		followspline 0 path_18 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 18
		trigger truck run_continue
	}

	trigger run_19
	{
		accum 1 bitset 2
		followspline 0 path_19 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 19
		trigger truck run_continue
	}

	trigger run_20
	{
		accum 1 bitset 2
		followspline 0 path_20 125 wait length 304 wait roll 0 -2 dampin
		accum 1 bitreset 2

		accum 3 set 20
		trigger truck run_continue
	}

	trigger run_21
	{
		accum 1 bitset 2
		followspline 0 path_21 125 wait length 304 wait roll -2 0
		accum 1 bitreset 2

		accum 3 set 21
		trigger truck run_continue
	}

	trigger run_22
	{
		accum 1 bitset 2
		followspline 0 path_22 125 wait length 304 wait roll -2 -1 dampin
		accum 1 bitreset 2

		accum 3 set 22
		trigger truck run_continue
	}

	trigger run_23
	{
		accum 1 bitset 2
		followspline 0 path_23 125 wait length 304 wait roll -3 0 dampout
		accum 1 bitreset 2

		accum 3 set 23
		trigger truck run_continue
	}

	trigger run_24
	{
		accum 1 bitset 2
		followspline 0 path_24 125 wait length 304 wait roll -3 +3 dampout
		accum 1 bitreset 2

		accum 3 set 24
		trigger truck run_continue
	}

	trigger run_25
	{
		accum 1 bitset 2
		followspline 0 path_25 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 25
		trigger truck run_continue
	}

	trigger run_26
	{
		accum 1 bitset 2
		followspline 0 path_26 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 26
		trigger truck run_continue
	}

	trigger run_27
	{
		accum 1 bitset 2
		followspline 0 path_27 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 27

		trigger truck run_continue
	}

	trigger run_28
	{
		accum 1 bitset 2
		followspline 0 path_28 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 28
		trigger truck run_continue
	}

	trigger run_29
	{
		accum 1 bitset 2
		followspline 0 path_29 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 29
		trigger truck run_continue
	}

	trigger run_30
	{
		accum 1 bitset 2
		followspline 0 path_30 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 30
		trigger truck run_continue
	}

	trigger run_31
	{
		accum 1 bitset 2
		followspline 0 path_31 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 31
		trigger truck run_continue
	}

	trigger run_32
	{
		accum 1 bitset 2
		followspline 0 path_32 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 32
		trigger truck run_continue
	}

	trigger run_33
	{
		accum 1 bitset 2
		followspline 0 path_33 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 33
		trigger truck run_continue
	}

	trigger run_34
	{
		accum 1 bitset 2
		followspline 0 path_34 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 34
		trigger truck run_continue
	}

	trigger run_35
	{
		accum 1 bitset 2
		followspline 0 path_35 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 35
		trigger truck run_continue
	}
	
	trigger run_36
	{	
		accum 1 bitset 2
		followspline 0 path_36 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 36
		trigger truck run_continue
	}

	trigger run_37
	{
		accum 1 bitset 2
		followspline 0 path_37 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 37
		trigger truck run_continue
	}

	trigger run_38
	{
		accum 1 bitset 2
		followspline 0 path_38 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 38
		trigger truck run_continue
	}

	trigger run_39
	{
		accum 1 bitset 2
		followspline 0 path_39 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 39
				
		trigger truck run_continue
	}

	trigger run_40
	{
		accum 1 bitset 2
		followspline 0 path_40 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 40
		
		trigger truck stuck_check_defense2_built_msg
		
		trigger truck run_continue
	}

	trigger run_41
	{
		accum 1 bitset 2
		followspline 0 path_41 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 41
		
		trigger truck run_continue
	}

	trigger run_42
	{	
		// **************************
		trigger defense2 remove
		// **************************
		accum 1 bitset 2
		followspline 0 path_42 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 42
		trigger truck run_continue
	}

	trigger run_43
	{		
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_truck_barrier2"

		wm_teamvoiceannounce 1 "goldrush_allies_truck_barrier2"
		// *---------------------------------------------------------------------------------*

		accum 1 bitset 2
		followspline 0 path_43 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 43
		trigger truck run_continue
	}

	trigger run_44
	{
		accum 1 bitset 2
		followspline 0 path_44 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 44
		trigger truck run_continue
	}
	
	trigger run_45
	{
		accum 1 bitset 2
		followspline 0 path_45 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 45
		trigger truck run_continue
	}
	
	trigger run_46
	{
		accum 1 bitset 2
		followspline 0 path_46 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 46
		trigger truck run_continue
	}
	
	trigger run_47
	{
		accum 1 bitset 2
		followspline 0 path_47 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 47
		trigger truck run_continue
	}

	trigger run_48
	{
		accum 1 bitset 2
		followspline 0 path_48 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 48
		trigger truck run_continue
	}

	trigger run_49
	{
		accum 1 bitset 2
		followspline 0 path_49 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 49
		trigger truck run_continue
	}

	trigger run_50
	{
		accum 1 bitset 2
		followspline 0 path_50 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 50
		trigger truck run_continue
	}
	
	trigger run_51
	{
		accum 1 bitset 2
		followspline 0 path_51 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 51
		trigger truck run_continue
	}

	trigger run_52
	{
		accum 1 bitset 2
		followspline 0 path_52 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 52
		trigger truck run_continue
	}

	trigger run_53
	{
		accum 1 bitset 2
		followspline 0 path_53 125 wait length 304
		accum 1 bitreset 2

		accum 3 set 53

		trigger truck wheels_stop

		wm_objective_status 4 0 2
		wm_objective_status 4 1 1

		trigger game_manager allies_win
	}

	trigger dispatch
	{
		accum 3 trigger_if_equal 0 truck run_1
		accum 3 trigger_if_equal 1 truck run_2
		accum 3 trigger_if_equal 2 truck run_3
		accum 3 trigger_if_equal 3 truck run_4
		accum 3 trigger_if_equal 4 truck run_5
		accum 3 trigger_if_equal 5 truck run_6
		accum 3 trigger_if_equal 6 truck run_7
		accum 3 trigger_if_equal 7 truck run_8
		accum 3 trigger_if_equal 8 truck run_9
		accum 3 trigger_if_equal 9 truck run_10
		accum 3 trigger_if_equal 10	truck run_11
		accum 3 trigger_if_equal 11	truck run_12
		accum 3 trigger_if_equal 12	truck run_13
		accum 3 trigger_if_equal 13	truck run_14
		accum 3 trigger_if_equal 14	truck run_15
		accum 3 trigger_if_equal 15	truck run_16
		accum 3 trigger_if_equal 16	truck run_17
		accum 3 trigger_if_equal 17	truck run_18
		accum 3 trigger_if_equal 18	truck run_19
		accum 3 trigger_if_equal 19	truck run_20
		accum 3 trigger_if_equal 20	truck run_21
		accum 3 trigger_if_equal 21	truck run_22
		accum 3 trigger_if_equal 22	truck run_23
		accum 3 trigger_if_equal 23	truck run_24
		accum 3 trigger_if_equal 24 truck run_25
		accum 3 trigger_if_equal 25 truck run_26
		accum 3 trigger_if_equal 26 truck run_27
		accum 3 trigger_if_equal 27 truck run_28
		accum 3 trigger_if_equal 28 truck run_29
		accum 3 trigger_if_equal 29 truck run_30
		accum 3 trigger_if_equal 30 truck run_31
		accum 3 trigger_if_equal 31 truck run_32
		accum 3 trigger_if_equal 32 truck run_33
		accum 3 trigger_if_equal 33 truck run_34
		accum 3 trigger_if_equal 34 truck run_35
		accum 3 trigger_if_equal 35 truck run_36
		accum 3 trigger_if_equal 36 truck run_37
		accum 3 trigger_if_equal 37 truck run_38
		accum 3 trigger_if_equal 38 truck run_39
		accum 3 trigger_if_equal 39 truck run_40
		accum 3 trigger_if_equal 40 truck run_41
		accum 3 trigger_if_equal 41 truck run_42
		accum 3 trigger_if_equal 42 truck run_43
		accum 3 trigger_if_equal 43 truck run_44
		accum 3 trigger_if_equal 44 truck run_45
		accum 3 trigger_if_equal 45 truck run_46
		accum 3 trigger_if_equal 46 truck run_47
		accum 3 trigger_if_equal 47 truck run_48
		accum 3 trigger_if_equal 48 truck run_49
		accum 3 trigger_if_equal 49 truck run_50
		accum 3 trigger_if_equal 50 truck run_51
		accum 3 trigger_if_equal 51 truck run_52
		accum 3 trigger_if_equal 52 truck run_53
	}

	// ========================================
	// barrier checking
	// digibob: since we cant return variables, just use bit 3 of accum 1 as a register... mmmm assembly......

	trigger stuck_check
	{
		accum 1 bitreset 3

		trigger truck stuck_check_gold
		trigger truck stuck_check_defense1
		trigger truck stuck_check_defense2
		trigger truck stuck_check_scriptlockout
		trigger truck stuck_check_finished
	}

	trigger stuck_check_finished
	{
		accum 3 abort_if_not_equal 53

		accum 1 bitset 3
	}

	trigger stuck_check_scriptlockout
	{
		accum 1 abort_if_not_bitset 4

		accum 1 bitset 3
	}

	trigger stuck_check_gold
	{
		accum 3 abort_if_not_equal 0

		accum 0 abort_if_greater_than 1

		accum 1 bitset 3
	}

	trigger stuck_check_defense1
	{
		accum 3 abort_if_not_equal 15

		accum 1 abort_if_not_bitset 0

		accum 1 bitset 3
	}

	trigger stuck_check_defense1_built_msg
	{
		accum 1 abort_if_not_bitset 0

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "goldrush_allies_truckbar_destroy"
		wm_addteamvoiceannounce 1 "goldrush_allies_truckbar_destroy"
		// *---------------------------------------------------------------------------------*
	}

	trigger stuck_check_defense2
	{
		accum 3 abort_if_not_equal 40

		accum 1 abort_if_not_bitset 1

		accum 1 bitset 3
	}

	trigger stuck_check_defense2_built_msg
	{
		accum 1 abort_if_not_bitset 1

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "goldrush_allies_truckbar_destroy"
		wm_addteamvoiceannounce 1 "goldrush_allies_truckbar_destroy"
		// *---------------------------------------------------------------------------------*
	}

	// ========================================
	// ========================================




	// ========================================
	// stop check

	trigger stopcheck_setup
	{
		accum 1 bitset 6				// stop if we're stuck/no-one's pushing :)

		accum 1 abort_if_bitset 8		// no one in the trigger, abort

		trigger truck stuck_check		// call the stop check function
		accum 1 abort_if_bitset 3		// we're stuck so break out

		accum 1 bitreset 6				// we're free to keep going
	}

	trigger stopcheck
	{
		trigger truck stopcheck_setup
		accum 1 abort_if_not_bitset 6

		trigger truck script_lockout

		// Any just stopped moving stuff goes here
		trigger truck_engine stop
		trigger truck 		wheels_stop
		// <<<<< stop animation goes here

		trigger truck script_lockout_stop
		resetscript
	}

	// ========================================
	// ========================================




	// ========================================
	// script lockouts

	trigger script_lockout
	{
		accum 1 bitset 4
	}

	trigger script_lockout_stop
	{
		accum 1 bitreset 4
	}

	// ========================================
	// ========================================


	// ========================================
	// enable/disable

	trigger truck_enable
	{
		trigger truck stuck_check
		accum 1 abort_if_bitset 3 	// stuck check

		accum 4 set 0				// reset stop counter
		accum 1 bitreset 8			// reset stop check

		accum 1 abort_if_bitset 2 	// already following spline
		accum 1 abort_if_bitset 4 	// script lockout

		accum 1 abort_if_bitset 7 	// death check

		// Any just started moving stuff goes here
		trigger truck_engine start
		trigger truck wheels_forward
		// <<<<< start animation goes here
		trigger truck move
	}

	trigger truck_disable
	{
		accum 4 inc 1				// up the stop counter
		accum 4 abort_if_less_than 2

		accum 1 bitset 8			// set stop check

		trigger truck deathcheck
	}

	// ========================================
	// ========================================

	// ========================================
	// death / rebirth

	rebirth
	{
		accum 1 bitreset 7 // we're alive again
		accum 1 bitreset 9 // we're visibly alive

		changemodel models/mapobjects/blitz_sd/blitzbody.md3

		setstate truck_smoke invisible

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_truck_repaired_allies"

		wm_teamvoiceannounce 1 "allies_hq_truck_repaired"
		// *---------------------------------------------------------------------------------*

		trigger truck move
	}

	death
	{
		accum 1 bitset 7
	}

	trigger deathcheck
	{
		accum 1 abort_if_not_bitset 7	// are we dead?
		accum 1 abort_if_bitset 9		// are we not already visibly dead?
		accum 1 abort_if_bitset 2		// are we not following a spline?
		accum 1 abort_if_bitset 4		// are we not in a script lockout?

		accum 1 bitset 9				// we're now visibly dead

		wm_announce "The Truck has been damaged!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_truck_damaged"

		wm_teamvoiceannounce 1 "allies_hq_truck_damaged_axis"
		// *---------------------------------------------------------------------------------*

		setstate truck_smoke default
		kill truck_construct

		trigger truck_engine sound_death
		//trigger truck tracks_stop		// truck with tracks? i don't think so
		trigger truck wheels_stop
		// <<<< stop anim goes here

		changemodel models/mapobjects/blitz_sd/blitzbody_damaged.md3

		resetscript
	}

	// ========================================
	// ========================================




	// ========================================
	// barriers

	trigger enable_stage1
	{
		accum 1 bitreset 0
	}

	trigger disable_stage1
	{
		accum 1 bitset 0
	}

	trigger enable_stage2
	{
		accum 1 bitreset 1
	}

	trigger disable_stage2
	{
		accum 1 bitset 1
	}

	// ========================================
	// ========================================
}

truck_bwheel2
{
	spawn
	{
		wait 500

		attachtotag truck tag_wback
	}

	trigger forward
	{
		setrotation 130 0 0
	}

	trigger backward
	{
		setrotation -130 0 0
	}

	trigger stop
	{
		stoprotation
	}
}

truck_fwheel
{
	spawn
	{
		wait 500

		attachtotag truck tag_wfront
	}

	trigger forward
	{
		setrotation 130 0 0
	}

	trigger backward
	{
		setrotation -130 0 0
	}

	trigger stop
	{
		stoprotation
	}
}

truck_trigger
{
	spawn
	{
		wait 500
		attachtotag truck tag_wback
	}
}

truck_disabler
{
	trigger run
	{
		trigger truck truck_disable
	}
}

truck_enabler
{
	trigger run
	{
		trigger truck truck_enable
	}
}

// *********************************************
// **************** CONSTRUCTIBLES *************
// *********************************************

defense1
{
	spawn
	{
		wait 400
		trigger defense1 setup

		constructible_class 3
	}

	trigger setup
	{
		setstate defense1_materials1 default
		setstate defense1_materials_clip1 default
		setstate defense1_flag1 default


		setstate defense1 invisible
	}

	buildstart final
	{
		setstate defense1_materials1 default
		setstate defense1_materials_clip1 default
		setstate defense1_flag1 default


		setstate defense1 underconstruction
	}

	built final
	{
		setstate defense1_materials1 invisible
		setstate defense1_materials_clip1 invisible
		setstate defense1_flag1 invisible


		setstate defense1 default
		
		trigger truck disable_stage1

		wm_announce "Truck Barrier #1 has been constructed."

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_truckbar_constructed"

		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbars_construct"
		// *---------------------------------------------------------------------------------*
	}

	decayed final
	{
		setstate defense1_materials1 default
		setstate defense1_materials_clip1 default
		setstate defense1_flag1 default


		setstate defense1 invisible
	}

	death
	{
		setstate defense1_materials1 default
		setstate defense1_materials_clip1 default
		setstate defense1_flag1 default


		setstate defense1 invisible

		trigger truck enable_stage1

		wm_announce "Truck Barrier #1 has been destroyed."

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"

		wm_teamvoiceannounce 0 "goldrush_axis_truckbar_destroyed"

		wm_teamvoiceannounce 1 "goldrush_allies_truckbar_destroyed"
		// *---------------------------------------------------------------------------------*
	}

	trigger remove
	{
		setstate defense1_toi1 invisible
		setstate defense1_materials1 invisible
		setstate defense1_materials_clip1 invisible
		setstate defense1_flag1 invisible
		setstate defense1 invisible

		remove
	}
}

defense2
{
	spawn
	{
		wait 400
		trigger defense2 setup

		constructible_class 3
	}

	trigger setup
	{
		setstate defense2_materials1 default
		setstate defense2_materials_clip1 default
		setstate defense2_flag1 default


		setstate defense2 invisible
	}

	buildstart final
	{
		setstate defense2_materials1 default
		setstate defense2_materials_clip1 default
		setstate defense2_flag1 default


		setstate defense2 underconstruction
	}

	built final
	{
		setstate defense2_materials1 invisible
		setstate defense2_materials_clip1 invisible
		setstate defense2_flag1 invisible


		setstate defense2 default

		trigger truck disable_stage2

		wm_announce "Truck Barrier #2 has been constructed."

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_truckbar_constructed"

		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"
		
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbars_construct"
		// *---------------------------------------------------------------------------------*
	}

	decayed final
	{
		setstate defense2_materials1 default
		setstate defense2_materials_clip1 default
		setstate defense2_flag1 default


		setstate defense2 invisible
	}

	death
	{
		setstate defense2_materials1 default
		setstate defense2_materials_clip1 default
		setstate defense2_flag1 default


		setstate defense2 invisible

		trigger truck enable_stage2

		wm_announce "Truck Barrier #2 has been destroyed."

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"

		wm_teamvoiceannounce 0 "goldrush_axis_truckbar_destroyed"

		wm_teamvoiceannounce 1 "goldrush_allies_truckbar_destroyed"
		// *---------------------------------------------------------------------------------*
	}

	trigger remove
	{
		setstate defense2_toi1 invisible
		setstate defense2_materials1 invisible
		setstate defense2_materials_clip1 invisible
		setstate defense2_flag1 invisible
		setstate defense2 invisible

	
		// *----------------------------------- vo ------------------------------------------*
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbars_construct"

		wm_removeteamvoiceannounce 1 "goldrush_allies_truckbar_destroy"
		wm_removeteamvoiceannounce 1 "goldrush_allies_truckbars_destroy"
		// *---------------------------------------------------------------------------------*
	}
}

truck
{
	spawn
	{
		wait 400
		trigger truck setup

		constructible_class 3
	}

	trigger setup
	{
		setstate truck_materials default
		setstate truck_materials_clip default
		setstate truck_flag default


		setstate truck_teeth invisible
	}

	buildstart final
	{
		setstate truck_materials default
		setstate truck_materials_clip default
		setstate truck_flag default


		setstate truck_teeth underconstruction
	}

	built final
	{
		setstate truck_materials invisible
		setstate truck_materials_clip invisible
		setstate truck_flag invisible


		setstate truck_teeth default

		trigger truck disable_stage4

		wm_announce "Truck Barrier #2 has been constructed."

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_truckbar_constructed"

		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbars_construct"
		// *---------------------------------------------------------------------------------*
	}

	decayed final
	{
		setstate truck_materials default
		setstate truck_materials_clip default
		setstate truck_flag default


		setstate truck_teeth invisible
	}

	death
	{
		setstate truck_materials default
		setstate truck_materials_clip default
		setstate truck_flag default


		setstate truck_teeth invisible

		trigger truck enable_stage2

		wm_announce "Truck Barrier #2 has been destroyed."

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"

		wm_teamvoiceannounce 0 "goldrush_axis_truckbar_destroyed"

		wm_teamvoiceannounce 1 "goldrush_allies_truckbar_destroyed"
		// *---------------------------------------------------------------------------------*
	}

	trigger remove
	{
		setstate truck_toi invisible
		setstate truck_materials invisible
		setstate truck_materials_clip invisible
		setstate truck_flag invisible
		setstate truck_teeth invisible

		// *----------------------------------- vo ------------------------------------------*
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbar_constructed"
		wm_removeteamvoiceannounce 0 "goldrush_axis_truckbars_construct"

		wm_removeteamvoiceannounce 1 "goldrush_allies_truckbar_destroy"
		wm_removeteamvoiceannounce 1 "goldrush_allies_truckbars_destroy"
		// *---------------------------------------------------------------------------------*

		remove
	}
}

// *********************************************
// ****************** FLAG STUFF ***************
// *********************************************

goldbar_holder
{
	death
	{
		trigger truck add_goldbar
	}
}

// *********************************************
// ****************** GOLD STUFF ***************
// *********************************************

gold_crate
{
	spawn
	{
		accum 0 set 0 // gold counter
	}

	trigger stolen
	{
		accum 0 inc 1
		accum 0 trigger_if_equal 1 gold_crate stolen1
		accum 0 trigger_if_equal 2 gold_crate stolen2
	}

	trigger secured
	{
		accum 0 trigger_if_equal 1 gold_crate secured1
		accum 0 trigger_if_equal 2 gold_crate secured2
	}

	trigger returned
	{
		accum 0 inc -1
		accum 0 trigger_if_equal 0 gold_crate returned1
		accum 0 trigger_if_equal 1 gold_crate returned2
	}

	trigger stolen1
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_gold1_taken"

		wm_teamvoiceannounce 1 "goldrush_allies_gold1_taken"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger stolen2
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_gold2_taken"

		wm_teamvoiceannounce 1 "goldrush_allies_gold2_taken"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger secured1
	{
		wm_announce "Allied team has secured the first Gold Crate!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_gold1_secured"

		wm_teamvoiceannounce 1 "goldrush_allies_gold1_secured"
		// *---------------------------------------------------------------------------------*
	}

	trigger secured2
	{
		wm_announce "Allied team has secured the second Gold Crate!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_gold2_secured"

		wm_teamvoiceannounce 1 "goldrush_allies_gold2_secured"

		wm_removeteamvoiceannounce 0 "goldrush_axis_gold_defend"

		wm_removeteamvoiceannounce 1 "goldrush_allies_gold_defend"
		// *---------------------------------------------------------------------------------*
	}

	trigger returned1
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_gold1_returned"

		wm_teamvoiceannounce 1 "goldrush_allies_gold1_returned"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger returned2
	{
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "goldrush_axis_gold2_returned"

		wm_teamvoiceannounce 1 "goldrush_allies_gold2_returned"
		// *----------------------------------- vo ------------------------------------------*
	}
}

gold_full_0
{
	spawn
	{
		wait 500
		attachtotag truck tag_obj1
		faceangles 0 90 0 50

		setstate gold_full_0 invisible
	}

	trigger show
	{
		setstate gold_full_0 default
	}
}

gold_full_1
{
	spawn
	{
		wait 500
		attachtotag truck tag_obj2
		faceangles 0 90 0 50

		setstate gold_full_1 invisible
	}

	trigger show
	{
		setstate gold_full_1 default
	}
}

gold_trans_0
{
	spawn
	{
		wait 500
		attachtotag truck tag_obj1
		faceangles 0 90 0 50
	}

	trigger hide
	{
		setstate gold_trans_0 invisible
	}
}

gold_trans_1
{
	spawn
	{
		wait 500
		attachtotag truck tag_obj2
		faceangles 0 90 0 50
	}

	trigger hide
	{
		setstate gold_trans_1 invisible
	}
}
///////////////////////////////////////////////////
/////////////////////brickwall/////////////////////
///////////////////////////////////////////////////
brickwall
{
    spawn
    {
		constructible_class 2
        wait 200
    }
	
	trigger remove
	{
		remove

	}
}
	

///////////////////////////////////////////////////
//////////////SD////////cproom/////////////////////
///////////////////////////////////////////////////
torch_trigger
{
	activate
	{
		trigger torch activate
	}
	
	trigger remove
	{
		remove
	}
}

torch
{
    spawn
    {
        wait 360
        faceangles 0 0 0 20
    }
    
    trigger activate
    {
		playsound sound/movers/doors/door6_loopc.wav looping 
		faceangles 90 0 0 2900
		stopsound
		playsound sound/movers/doors/door6_locked.wav
		trigger secretdoor open
		setstate torch_trigger invisible
		
    }
}
secretdoor
{
    
    spawn
    {
    }
	
	trigger open
    {
		wait 900
		playsound sound/movers/misc/big_gate2.wav looping  volume 255
        gotomarker secretdoor_dest 100 wait
        stopsound
        playsound sound/movers/misc/big_gate3.wav  volume 355
        wait 1968    // wait for wav to play
		wm_announce "The Allies have found the HQ"
    }
}

// ================================================
// =========== SPAWN POINT CONTROLS ===============
// ================================================
axis_mid_spawns
{
	trigger remove
	{
		remove
	}
}

oldcityspawns
{
	trigger remove
	{
		remove
	}
}

oldcityspawn
{
	spawn
	{
	}
	trigger oldcityspawn	// Should trigger if the gate is destroyed
	{
		setautospawn "Old City Spawn"	" 1 "
		setautospawn "Axis Spawn"		" 0 "

		alertentity oldcityspawn
	}

	trigger kill
	{
		trigger oldcityspawn force_allied
		setstate alliedspawn invisible
		remove
	}

	trigger force_allied
	{
		setautospawn "Old City Spawn"	" 1 "
		setautospawn "Axis Spawn"		" 0 "

		alertentity oldcityspawn
		alertentity axis_spawn_wobj
	}
}

// ================================================
axis_cp_open
{
	spawn
	{
		wait 100
		accum 0 set 0			// 0=CP Closed, 1=CP Damaged
		constructible_class 2			// Dyno+Satchel

		trigger self disable_cp_features		// Default charge bar times
		setstate axis_cp_damaged invisible	// Hide damaged CP clipbrush+model
		setstate axis_cp_damaged_model invisible

		wait 1000
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_compost_construct"
		wm_addteamvoiceannounce 0 "axis_hq_compost_construct"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger disable_cp_features
	{
		setstate axis_cp_open_model invisible	// Hide Open CP model

		setchargetimefactor 0 soldier 1
		setchargetimefactor 0 lieutenant 1
		setchargetimefactor 0 medic 1
		setchargetimefactor 0 engineer 1
		setchargetimefactor 0 covertops 1

		sethqstatus 0 0			// Landmines team warning message
		disablespeaker speaker_axis_cp		// Disable morse code sound
	}

	trigger enable_cp_features
	{
		setstate axis_cp_open_model default	// Show open CP model

		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			// Landmines team warning message
		enablespeaker speaker_axis_cp		// Enable morse code sound
	}

	buildstart final
	{
		setstate axis_cp_closed invisible		// Hide closed CP clipbrush+model
		setstate axis_cp_closed_model invisible
		setstate axis_cp_damaged invisible	// Hide damaged CP clipbrush+model
		setstate axis_cp_damaged_model invisible
	}

	built final
	{
		accum 0 set 1			// Only show the damaged CP model
		trigger self enable_cp_features		// Increase charge bar times

		wm_announce "Axis Command Post constructed. Charge speed increased!"
		// *----------------------------------- vo ------------------------------------------*
		wm_removeteamvoiceannounce 0 "axis_hq_compost_construct"
		wm_teamvoiceannounce 0 "axis_hq_compost_constructed"

		wm_teamvoiceannounce 1 "allies_hq_compost_constructed_axis"
		wm_addteamvoiceannounce 1 "allies_hq_compost_constructed_axis"
		// *----------------------------------- vo ------------------------------------------*
	}

	decayed final
	{
		setstate axis_cp_open_model invisible	// Hide Open CP model
		trigger self show_damaged_cabinet	// Show previous cabinet state
		trigger self show_closed_cabinet
	}

	death
	{
		trigger self show_damaged_cabinet	// Show damaged CP model
		trigger self disable_cp_features		// Default charge bar times

		wm_announce "Allied team has destroyed the Axis Command Post!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_compost_damaged"
		wm_addteamvoiceannounce 0 "axis_hq_compost_construct"

		wm_removeteamvoiceannounce 1 "allies_hq_compost_constructed_axis"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger show_closed_cabinet
	{
		accum 0 abort_if_equal 1		// Closed cabinet active yet?
		setstate axis_cp_closed default
		setstate axis_cp_closed_model default
	}

	trigger show_damaged_cabinet
	{
		accum 0 abort_if_equal 0		// Damaged cabinet active yet?
		setstate axis_cp_damaged default
		setstate axis_cp_damaged_model default
	}
}

// ================================================
allied_cp_open
{
	spawn
	{
		wait 100
		accum 0 set 0			// 0=CP Closed, 1=CP Damaged
		constructible_class 2			// Dyno+Satchel

		trigger self disable_cp_features		// Default charge bar times
		setstate allied_cp_damaged invisible	// Hide damaged CP clipbrush+model
		setstate allied_cp_damaged_model invisible

		wait 1000

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "allies_hq_compost_construct"
		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger disable_cp_features
	{
		setstate allied_cp_open_model invisible	// Hide Open CP model

		setchargetimefactor 1 soldier 1
		setchargetimefactor 1 lieutenant 1
		setchargetimefactor 1 medic 1
		setchargetimefactor 1 engineer 1
		setchargetimefactor 1 covertops 1

		sethqstatus 1 0			// Landmines team warning message
		disablespeaker speaker_allied_cp		// Disable morse code sound
	}

	trigger enable_cp_features
	{
		setstate allied_cp_open_model default	// Show open CP model

		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			// Landmines team warning message
		enablespeaker speaker_allied_cp		// Enable morse code sound
	}

	buildstart final
	{
		setstate allied_cp_closed invisible		// Hide closed CP clipbrush+model
		setstate allied_cp_closed_model invisible
		setstate allied_cp_damaged invisible	// Hide damaged CP clipbrush+model
		setstate allied_cp_damaged_model invisible
	}

	built final
	{
		accum 0 set 1			// Only show the damaged CP model
		trigger self enable_cp_features		// Increase charge bar times

		wm_announce "Allied Command Post constructed. Charge speed increased!"
		// *----------------------------------- vo ------------------------------------------*
		wm_removeteamvoiceannounce 1 "allies_hq_compost_construct"
		wm_teamvoiceannounce 1 "allies_hq_compost_constructed"

		wm_teamvoiceannounce 0 "axis_hq_compost_constructed_allies"
		wm_addteamvoiceannounce 0 "axis_hq_compost_constructed_allies"
		// *----------------------------------- vo ------------------------------------------*
	}

	decayed final
	{
		setstate allied_cp_open_model invisible	// Hide Open CP model
		trigger self show_damaged_cabinet	// Show previous cabinet state
		trigger self show_closed_cabinet
	}

	death
	{
		trigger self show_damaged_cabinet	// Show damaged CP model
		trigger self disable_cp_features		// Default charge bar times

		wm_announce "Axis team has destroyed the Allied Command Post!"
		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "allies_hq_compost_damaged"
		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"

		wm_removeteamvoiceannounce 0 "axis_hq_compost_constructed_allies"
		// *----------------------------------- vo ------------------------------------------*
	}

	trigger show_closed_cabinet
	{
		accum 0 abort_if_equal 1		// Closed cabinet active yet?
		setstate allied_cp_closed default
		setstate allied_cp_closed_model default
	}

	trigger show_damaged_cabinet
	{
		accum 0 abort_if_equal 0		// Damaged cabinet active yet?
		setstate allied_cp_damaged default
		setstate allied_cp_damaged_model default
	}
}
