Fueldump with StinVec Assault Bridge for Axis in Fueldump


(Harle) #1

Was browsing some script archive and found “StinVec Assault Bridge for Axis in Fueldump”.

Adeed it to my script and noticed during test game that the advantage for allies is to big. It would be better to have it constructable.

Extracted entities from fueldump.bsp and tried to adapt Ragnar’s Seawall Battery “Bunker Assault Ramp”. But my scripting skills ain’t good enough for it.

Can anyone help me to make this possible?

Added battery.script with Ragnar’s Ramp
Added fueldump.script with bridge, trigger hurt, constructables & test spawn near constructables (spawn number 2)
Added Fueldump entities


(acQu) #2

Did he ever release a version which is also destructible?

Adeed it to my script and noticed during test game that the advantage for allies is to big. It would be better to have it constructable.

There is one version in filefront where it is constructible, but i guess you also mean destructible.


(Harle) #3

Thanks for the hint. This version is very to close to what i need. Let’s see if i can “finish” it.


(ailmanki) #4

Good idea, trying to fix it.
Good find acCu!

Rather difficult, but I like that :smiley:


(acQu) #5

No problem. I actually made one, since i found no version which is destructible. No credits needed. Don’t look if you want to do it yourself :slight_smile:

Here a diff to the beta1 version i found: http://www.diffchecker.com/ebhe3e1k
The related beta1 version is from here: http://returntocastlewolfenstein.filefront.com/file/SSStinVecs_Fueldump_Assault_Bridge;81809

A paste of the modified script:

// ============================================================================
// Map: Fueldump
// Last update : 7/2/07 /SS/StinVec – HOUSE OF PAIN /SS/
// ============================================================================
game_manager
{
	spawn
	{
//----START----/SS/StinVec’s Allied Constructible Fueldump Assault Bridge 
        create
        {
            scriptname "fdbridge_toi"
            targetname "fdbridge_toi"

		target     "fdbridge"
            classname  "trigger_objective_info"
            infoAllied "Build Fueldump Assault Bridge"
            infoAxis   "Destroy Fueldump Assault Bridge"
            shortname  "Allied Assault Bridge"
            track      "/SS/StinVec’s Fueldump Bridge"
            spawnflags "2"
		score      "50"
		origin     "-10326 -5523 633"
            mins       "-52 -66 -34"
            maxs       "52 66 34"
        }

        create
        {
            scriptname "fdbridge_materials"
            targetname "fdbridge_materials"
            classname  "misc_gamemodel"
            angle      "90"
		origin     "-10326 -5523 633"
		skin       "models/mapobjects/cmarker/allied_crates.skin"
            model      "models/mapobjects/cmarker/cmarker_crates.md3"
        }

        create
        {
		scriptname "fdbridge_material_hurt"
		targetname "fdbridge_material_hurt"
		spawnflags 24
		classname  "trigger_hurt"
		dmg        0            
		sound      "sound/player/hurt_barbwire.wav"
		origin     "-10712 -5931 603" 
		mins       "-30 -30 -20"
		maxs       "30 30 20"
        }

        create
        {

            scriptname "fdbridge_flag"
            targetname "fdbridge_flag"
            classname  "misc_gamemodel"
            spawnflags "2"
            origin     "-10326 -5482 646" 
            angle      "90" 
            frames     "190"
            modelscale "0.4"
            model      "models/mapobjects/cmarker/cmarker_flag.md3"
            skin       "models/mapobjects/cmarker/allied_cflag.skin"
        }

        create
        {
            model      "*10"
            scriptname "fdbridge"
            targetname "fdbridge"		
			classname  "func_constructible"
            origin     "-10712 -5931 603"
            spawnflags "8"
            modelscale 1.04
        }

//----END----/SS/StinVec’s Allied Constructible Fueldump Assault Bridge 

		// Game rules
		wm_axis_respawntime	30
		wm_allied_respawntime	20
		wm_number_of_objectives 7
		wm_set_round_timelimit	30

		wm_set_main_objective 2	0
		wm_set_main_objective 1	1

		wm_objective_status 1 1 0
		wm_objective_status 1 0 0
		wm_objective_status 2 1 0
		wm_objective_status 2 0 0
		wm_objective_status 3 1 0
		wm_objective_status 3 0 0
		wm_objective_status 4 1 0
		wm_objective_status 4 0 0
		wm_objective_status 5 1 0
		wm_objective_status 5 0 0
		wm_objective_status 6 1 0
		wm_objective_status 6 0 0
		wm_objective_status 7 1 0
		wm_objective_status 7 0 0

		// 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

		// Accumulator to check win conditions
		accum 1 set 0

		// Setup the auto spawn points for the map
		wait 500
		setautospawn "Allied Entrance Spawn" 1
		setautospawn "Tunnel Store Room" 0

		// Garage Doors
		globalaccum 4 set 0		// Flexible Door 1 status. (0=stationary, 1=moving)
		globalaccum 5 set 0		// Flexible Door 2 status. (0=stationary, 1=moving)

		// CP speakers
		disablespeaker axishq_sound
		disablespeaker alliedhq_sound

		wait 2000

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_bridge_stop"

		wm_addteamvoiceannounce 1 "fueldump_allies_bridge_construct"

		wm_teamvoiceannounce 0 "fueldump_axis_bridge_stop"
		wm_teamvoiceannounce 0 "axis_hq_compost_construct"

		wm_teamvoiceannounce 1 "fueldump_allies_bridge_construct"
		// *---------------------------------------------------------------------------------*
	}


	//-----------------------------------------------------------------------
	// Constructing a Bridge over the frozen river
	//-----------------------------------------------------------------------
	trigger objective1
	{
		wm_announce "Allied team has constructed the bridge!"
	}

	//-----------------------------------------------------------------------
	// Destroying the Tunnel Doors.
	//-----------------------------------------------------------------------
	trigger objective2
	{
		wm_announce	"Allied team has breached the Tunnel Doors!"
		setstate tunneldoor_toi invisible

		setautospawn "Allied Entrance Spawn" 0
		setautospawn "Tunnel Store Room" 1
		alertentity t108	// Switch the tunnel spawns around

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_gates_stop"
		wm_addteamvoiceannounce 0 "fueldump_axis_depotdef_construct"

		wm_teamvoiceannounce 0 "fueldump_axis_tunnel_destroyed"
		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_construct"

		wm_teamvoiceannounce 1 "fueldump_allies_tank_depot"
		wm_teamvoiceannounce 1 "allies_hq_compost_construct"

		wm_removeteamvoiceannounce 0 "fueldump_axis_tunnel_stop"
		// *---------------------------------------------------------------------------------*

		wm_set_main_objective	2	0
		wm_set_main_objective	2	1
	}

	//-----------------------------------------------------------------------
	// Destroying the Axis Depot Gates.
	//-----------------------------------------------------------------------
	trigger objective3
	{
		wm_announce	"Allied team has breached the Depot Gates!"
		setstate depotgate_toi invisible

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_gates_destroyed"
		wm_addteamvoiceannounce 0 "fueldump_axis_fueldump_defend"

		wm_addteamvoiceannounce 1 "fueldump_allies_fueldump_destroy"

		wm_teamvoiceannounce 0 "fueldump_axis_gates_destroyed"
		wm_teamvoiceannounce 0 "fueldump_axis_fueldump_defend"

		wm_teamvoiceannounce 1 "fueldump_allies_tank_reardepot"
		wm_teamvoiceannounce 1 "fueldump_allies_fueldump_destroy"

		wm_removeteamvoiceannounce 0 "fueldump_axis_gates_stop"
		wm_removeteamvoiceannounce 0 "fueldump_axis_depotdef_construct"

		wm_removeteamvoiceannounce 1 "fueldump_allies_tank_depot"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Destroying the Axis Fueldump.
	//-----------------------------------------------------------------------
	trigger objective4
	{
		// Change the variable within the script so that we can check if someone wins the round
		accum 1 set 1

		// Big bang sequence of fueldump here
		alertentity fueldump_explo1
		alertentity fueldump_explo2
		alertentity fueldump_explo3
		setstate fueldump_ladder invisible
		alertentity fueldump_rubble1
		alertentity fueldump_rubble2
		alertentity fueldump_rubble3

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has destroyed the Axis Fuel Dump!"

		wm_objective_status 4 1 1
		wm_objective_status 4 0 2

		wait 3000

		// Call function to check if the round has been won
		trigger game_manager checkgame
	}

	//-----------------------------------------------------------------------
	// Escort the Tank to destroy the Side Wall to the rear of the Depot.
	//-----------------------------------------------------------------------
	trigger objective5
	{
		wm_announce	"Allied team has breached the Depot Side Wall!"
		setstate depotsidewall_toi invisible

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "fueldump_axis_fueldump_defend"

		wm_teamvoiceannounce 1 "fueldump_allies_wall_destroyed"
		wm_teamvoiceannounce 1 "fueldump_allies_fueldump_destroy"

		wm_removeteamvoiceannounce 1 "fueldump_allies_tank_reardepot"
		// *---------------------------------------------------------------------------------*
	}

	trigger checkgame
	{
		accum 1 abort_if_not_equal 1
		wm_setwinner 1
		wait 1000
		wm_endround
	}
}

// ============================================================================
// LMS stuff to remove from obj mode
// ============================================================================
thebridge_lms
{
	spawn
	{
		wait 100
		setstate thebridge_lms invisible

		setstate lms_hacabinet_cm_marker invisible
		setstate lms_hacabinet_toi invisible

		setstate lms_healthcabinet invisible
		setstate lms_ammocabinet invisible
		setstate lms_healthtrigger invisible
		setstate lms_ammotrigger invisible
		setstate lms_healthcabinet_clip invisible
		setstate lms_ammocabinet_clip invisible

		setstate lms_alliedstaircase invisible
	}
}

// ============================================================================
// AXIS HQ bits and pieces
// ============================================================================
axis_radio_destroyed
{
	spawn
	{
		wait 200
		setstate axis_radio_destroyed invisible
		setstate axis_radio_destroyed_model invisible
	}
	trigger hide
	{
		setstate axis_radio_destroyed invisible
		setstate axis_radio_destroyed_model invisible
	}
	trigger show
	{
		setstate axis_radio_destroyed default
		setstate axis_radio_destroyed_model default
		setstate axishqstuff invisible // Arial tower outside of building
	}
}

axis_radio_closed
{
	spawn
	{
		wait 200
		setstate axis_radio_closed default
		setstate axis_radio_closed_model default
	}
	trigger hide
	{
		setstate axis_radio_closed invisible
		setstate axis_radio_closed_model invisible
	}
	trigger show
	{
		setstate axis_radio_closed default
		setstate axis_radio_closed_model default
	}
}

axis_radio_built
{
	spawn
	{
		wait 400

		constructible_class 2

		trigger self setup
		setstate axishqstuff invisible

	}

	trigger setup
	{
		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
	}

	buildstart final
	{
		trigger axis_radio_built_model trans
		trigger axis_radio_destroyed hide
		trigger axis_radio_closed hide
		setstate axishqstuff underconstruction
	}

	decayed final
	{
		trigger axis_radio_built_model hide
		trigger axis_radio_closed show
		setstate axishqstuff invisible
	}

	built final
	{
		trigger axis_radio_built_model show
		trigger axis_radio_closed hide
		trigger axis_radio_destroyed hide

		trigger axis_radio_built_model enable_axis_features
		enablespeaker axishq_sound
		
		setstate axishqstuff default
	}

	death
	{
		trigger axis_radio_built_model hide
		trigger axis_radio_destroyed show

		trigger axis_radio_built_model disable_axis_features
		disablespeaker axishq_sound
	}
}

axis_radio_built_model
{
	spawn
	{
		wait 400
		setstate axis_radio_built_model invisible

		accum 0 bitreset 0	// set if radio is built
		accum 0 bitreset 1	// set if goal should be ignored
	}

	trigger show
	{
		setstate axis_radio_built_model default
	}

	trigger hide
	{
		setstate axis_radio_built_model invisible
	}

	trigger trans
	{
		setstate axis_radio_built_model underconstruction
	}

	trigger enable_axis_features
	{
		//-----------------------------------------------------------------------
		// Increase Allies charge times
		//-----------------------------------------------------------------------
		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

		// *----------------------------------- 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 6 0 1
		wm_objective_status 6 1 2
		wm_announce	"Axis Command Post constructed. Charge speed increased!"

		accum 0 bitset 0
	}

	trigger disable_axis_features
	{
		//-----------------------------------------------------------------------
		// Decrease Axis charge times
		//-----------------------------------------------------------------------
		setchargetimefactor 0 soldier 1
		setchargetimefactor 0 lieutenant 1
		setchargetimefactor 0 medic 1
		setchargetimefactor 0 engineer 1
		setchargetimefactor 0 covertops 1
		sethqstatus 0 0

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "axis_hq_compost_construct"

		wm_teamvoiceannounce 0 "axis_hq_compost_damaged"
		// *---------------------------------------------------------------------------------*

		wm_announce	"Allied team has destroyed the Axis Command Post!"

		wm_objective_status 6 0 0
		wm_objective_status 6 1 0

		accum 0 bitreset 0
	}
}

// ============================================================================
// Allied HQ bits and pieces
// ============================================================================
alliedhqradio_toi
{
	//-----------------------------------------------------------------------
	// Enable health/ammo cabinets, allied radio has been built
	//-----------------------------------------------------------------------
	trigger enable_hacabs
	{
		setstate tankbay_healthcabinet default
		setstate tankbay_ammocabinet default

		setstate tankbay_healthtrigger default
		setstate tankbay_ammotrigger default

		setstate tankbay_healthcabinet_dmg invisible
		setstate tankbay_ammocabinet_dmg invisible

		setstate tankbay_hacabinet_cm_marker default
		setstate tankbay_hacabinet_toi default
	}

	//-----------------------------------------------------------------------
	// Disable health/ammo cabinets, allied radio has been destroyed
	//-----------------------------------------------------------------------
	trigger disable_hacabs
	{
		setstate tankbay_healthcabinet invisible
		setstate tankbay_ammocabinet invisible

		setstate tankbay_healthtrigger invisible
		setstate tankbay_ammotrigger invisible

		setstate tankbay_healthcabinet_dmg default
		setstate tankbay_ammocabinet_dmg default

		setstate tankbay_hacabinet_cm_marker invisible
		setstate tankbay_hacabinet_toi invisible
	}

}

allied_radio_destroyed
{
	spawn
	{
		wait 200
		setstate allied_radio_destroyed invisible
		setstate allied_radio_destroyed_model invisible
	}
	trigger hide
	{
		setstate allied_radio_destroyed invisible
		setstate allied_radio_destroyed_model invisible
	}
	trigger show
	{
		setstate allied_radio_destroyed default
		setstate allied_radio_destroyed_model default
	}
}

allied_radio_closed
{
	spawn
	{
		wait 200
		setstate allied_radio_closed default
		setstate allied_radio_closed_model default
	}
	trigger hide
	{
		setstate allied_radio_closed invisible
		setstate allied_radio_closed_model invisible
	}
	trigger show
	{
		setstate allied_radio_closed default
		setstate allied_radio_closed_model default
	}
}

allied_radio_built
{
	spawn
	{
		wait 400
		constructible_class 2
		trigger allied_radio_built setup
	}

	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
		trigger alliedhqradio_toi disable_hacabs
	}

	buildstart final
	{
		trigger allied_radio_built_model trans
		trigger allied_radio_destroyed hide
		trigger allied_radio_closed hide
	}

	decayed final
	{
		trigger allied_radio_built_model hide
		trigger allied_radio_closed show
	}

	built final
	{
		trigger allied_radio_built_model show
		trigger allied_radio_closed hide
		trigger allied_radio_destroyed hide

		trigger allied_radio_built_model enable_allied_features
		enablespeaker alliedhq_sound
	}

	death
	{
		trigger allied_radio_built_model hide
		trigger allied_radio_destroyed show

		trigger allied_radio_built_model disable_allied_features
		disablespeaker alliedhq_sound
	}
}

allied_radio_built_model
{
	spawn
	{
		wait 400
		setstate allied_radio_built_model invisible

		accum 0 bitreset 0	// set if radio is built
		accum 0 bitreset 1	// set if goal should be ignored
	}

	trigger show
	{
		setstate allied_radio_built_model default
	}

	trigger hide
	{
		setstate allied_radio_built_model invisible
	}

	trigger trans
	{
		setstate allied_radio_built_model underconstruction
	}

	trigger enable_allied_features
	{
		trigger alliedhqradio_toi enable_hacabs
		//-----------------------------------------------------------------------
		// Increase Allies charge times
		//-----------------------------------------------------------------------
		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

		// *----------------------------------- 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 7 1 1
		wm_objective_status 7 0 2
		wm_announce	"Allied Command Post constructed. Charge speed increased!"

		accum 0 bitset 0
	}

	trigger disable_allied_features
	{
		trigger alliedhqradio_toi disable_hacabs
		//-----------------------------------------------------------------------
		// Decrease Allies charge times
		//-----------------------------------------------------------------------
		setchargetimefactor 1 soldier 1
		setchargetimefactor 1 lieutenant 1
		setchargetimefactor 1 medic 1
		setchargetimefactor 1 engineer 1
		setchargetimefactor 1 covertops 1
		sethqstatus 1 1

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "allies_hq_compost_damaged"

		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"
		// *---------------------------------------------------------------------------------*

		wm_announce	"Axis team has destroyed the Allied Command Post!"
		wm_objective_status 7 0 0
		wm_objective_status 7 1 0

		accum 0 bitreset 0
	}
}

// ============================================================================
// The Bridge
// ============================================================================
thebridge
{
	spawn
	{
		accum 7 set 0	// Bridge stage construction and tank status
		wait 200

		constructible_class 3
		setstate bridgematerials_stage1 default
		setstate bridgematerials_stage2 default

		accum 7 bitset 1	// Tank NOT over bridge yet
	}

	//-----------------------------------------------------------------------
	// Stage 1 is BUILT
	//-----------------------------------------------------------------------
	built stage1
	{
		setstate bridgematerials_stage1 invisible	// Remove stage 1 construction items
		trigger game_manager objective1

		accum 7 abort_if_not_bitset 1	// Tank over bridge?

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_bridge_destroy"

		wm_addteamvoiceannounce 1 "fueldump_allies_bridge_reinforce"

		wm_teamvoiceannounce 0 "fueldump_axis_bridge_destroy"

		wm_teamvoiceannounce 1 "fueldump_allies_bridge_reinforce"

		wm_removeteamvoiceannounce 0 "fueldump_axis_bridge_stop"

		wm_removeteamvoiceannounce 1 "fueldump_allies_bridge_construct"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Stage 1 is DESTROYED
	//-----------------------------------------------------------------------
	death
	{
		setstate bridgematerials_stage1 default		// Restore stage 1 construction items
		togglespeaker bridge_expl			// Explosion

		trigger tank clearBridge

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has destroyed the Bridge!"

		accum 7 abort_if_not_bitset 1	// Tank over bridge?

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_bridge_stop"

		wm_addteamvoiceannounce 1 "fueldump_allies_bridge_construct"

		wm_teamvoiceannounce 0 "fueldump_axis_bridge_destroyed"

		wm_teamvoiceannounce 1 "fueldump_allies_bridge_construct"

		wm_removeteamvoiceannounce 0 "fueldump_axis_bridge_destroy"

		wm_removeteamvoiceannounce 1 "fueldump_allies_bridge_reinforce"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Stage 2 is BUILT
	//-----------------------------------------------------------------------
	built final
	{
		setstate bridgematerials_stage2 invisible
		trigger tank setBridge

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has reinforced the Bridge!"

		accum 7 abort_if_not_bitset 1	// Tank over bridge?

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_bridge_destroy"

		wm_addteamvoiceannounce 1 "fueldump_allies_tank_bridge"

		wm_teamvoiceannounce 0 "fueldump_axis_bridge_reinforced"

		wm_teamvoiceannounce 1 "fueldump_allies_bridge_reinforced"
		wm_teamvoiceannounce 1 "fueldump_allies_tank_bridge"

		wm_removeteamvoiceannounce 0 "fueldump_axis_bridge_stop"

		wm_removeteamvoiceannounce 1 "fueldump_allies_bridge_reinforce"
		// *---------------------------------------------------------------------------------*

		wm_set_main_objective		1	0	// Completed an objective
	}

	//-----------------------------------------------------------------------
	// Stage 2 is DESTROYED, go back to stage 1
	//-----------------------------------------------------------------------
	destroyed final
	{
		setstate bridgematerials_stage2 default
		togglespeaker bridge_expl

		trigger tank clearBridge

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has damaged the Bridge!"

		accum 7 abort_if_not_bitset 1	// Tank over bridge?

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_bridge_destroy"
		wm_addteamvoiceannounce 1 "fueldump_allies_bridge_reinforce"

		wm_teamvoiceannounce 0 "fueldump_axis_bridge_damaged"

		wm_teamvoiceannounce 1 "fueldump_allies_bridge_damaged"

		wm_removeteamvoiceannounce 1 "fueldump_allies_tank_bridge"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Tank has made it over the bridge and on route to the cave doors
	// remove all VO reference to the bridge construct/destruct
	//-----------------------------------------------------------------------
	trigger tank_passed
	{
		accum 7 bitreset 1	// Tank over bridge, no more announcements

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_tunnel_stop"
		wm_addteamvoiceannounce 1 "fueldump_allies_tank_depot"

		wm_teamvoiceannounce 0 "fueldump_axis_tunnel_stop"

		wm_removeteamvoiceannounce 0 "fueldump_axis_bridge_destroy"
		wm_removeteamvoiceannounce 0 "fueldump_axis_bridge_stop"

		wm_removeteamvoiceannounce 1 "fueldump_allies_bridge_construct"
		wm_removeteamvoiceannounce 1 "fueldump_allies_bridge_reinforce"
		wm_removeteamvoiceannounce 1 "fueldump_allies_tank_bridge"
		// *---------------------------------------------------------------------------------*
	}

}

// ============================================================================
// The Fuel Dump
// ============================================================================
axisfueldump
{
	spawn
	{
		wait 200
		constructible_class 3

		setstate fueldump_solid default
		setstate fueldump_damaged invisible
		setstate fueldump_smoke1 invisible
		setstate fueldump_smoke2 invisible
		setstate fueldump_smoke3 invisible
	}

	death
	{
		trigger game_manager objective4

		setstate fueldump_smoke1 default
		setstate fueldump_smoke2 default
		setstate fueldump_smoke3 default

		trigger hurt_fueldumpblast boom
		setstate fueldump_solid invisible
		setstate fueldump_damaged default
	}
}

hurt_fueldumpblast
{
	spawn
	{
		wait 200
		setstate hurt_fueldumpblast invisible
	}

	trigger boom
	{
		setstate hurt_fueldumpblast default
		wait 100
		remove
	}
}

// ============================================================================
// Fuel Dump Barricades
// ============================================================================
frontdump
{
	spawn
	{
		wait 200
		constructible_class 2
		setstate frontdumpmaterials_stage1 default
		setstate frontdumpmaterials_stage2 default
		setstate frontdump1_trighurt invisible
		setstate frontdump2_trighurt invisible
	}

	//-----------------------------------------------------------------------
	// Stage 1 is BUILT
	//-----------------------------------------------------------------------
	built stage1
	{
		setstate frontdumpmaterials_stage1 invisible
		setstate frontdump1_trighurt default
	}

	//-----------------------------------------------------------------------
	// Stage 1 is DESTROYED
	//-----------------------------------------------------------------------
	death
	{
		setstate frontdumpmaterials_stage1 default
		setstate frontdump1_trighurt invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has destroyed the East Axis Base Fortification!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_destroyed"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Stage 2 is BUILT
	//-----------------------------------------------------------------------
	built final
	{
		setstate frontdumpmaterials_stage2 invisible
		setstate frontdump2_trighurt default

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has constructed the East Axis Base Fortification!"

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "fueldump_allies_depotdef_destroy"

		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_constructed"

		wm_teamvoiceannounce 1 "fueldump_allies_depotdef_destroy"

		wm_removeteamvoiceannounce 0 "fueldump_axis_depotdef_construct"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Stage 2 is DESTROYED, go back to stage 1
	//-----------------------------------------------------------------------
	destroyed final
	{
		setstate frontdumpmaterials_stage2 default
		setstate frontdump2_trighurt invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has damaged the East Axis Base Fortification!"

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_depotdef_construct"

		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_breached"

		wm_teamvoiceannounce 1 "fueldump_allies_depotdef_destroyed"

		wm_removeteamvoiceannounce 1 "fueldump_allies_depotdef_destroy"
		// *---------------------------------------------------------------------------------*
	}
}

reardump
{
	spawn
	{
		wait 200
		constructible_class 2
		setstate reardumpmaterials_stage1 default
		setstate reardumpmaterials_stage2 default
		setstate backdump1_trighurt invisible
		setstate backdump2_trighurt invisible
	}

	//-----------------------------------------------------------------------
	// Stage 1 is BUILT
	//-----------------------------------------------------------------------
	built stage1
	{
		setstate reardumpmaterials_stage1 invisible
		setstate backdump1_trighurt default
	}

	//-----------------------------------------------------------------------
	// Stage 1 is DESTROYED
	//-----------------------------------------------------------------------
	death
	{
		setstate reardumpmaterials_stage1 default
		setstate backdump1_trighurt invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has destroyed the West Axis Base Fortification!"

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_destroyed"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Stage 2 is BUILT
	//-----------------------------------------------------------------------
	built final
	{
		setstate reardumpmaterials_stage2 invisible
		setstate backdump2_trighurt default

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has constructed the West Axis Base Fortification!"

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 1 "fueldump_allies_depotdef_destroy"

		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_constructed"

		wm_teamvoiceannounce 1 "fueldump_allies_depotdef_destroy"

		wm_removeteamvoiceannounce 0 "fueldump_axis_depotdef_construct"
		// *---------------------------------------------------------------------------------*
	}

	//-----------------------------------------------------------------------
	// Stage 2 is DESTROYED, go back to stage 1
	//-----------------------------------------------------------------------
	destroyed final
	{
		setstate reardumpmaterials_stage2 default
		setstate backdump2_trighurt invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has damaged the West Axis Base Fortification!"

		// *----------------------------------- vo ------------------------------------------*
		wm_addteamvoiceannounce 0 "fueldump_axis_depotdef_construct"

		wm_teamvoiceannounce 0 "fueldump_axis_depotdef_breached"

		wm_teamvoiceannounce 1 "fueldump_allies_depotdef_destroyed"

		wm_removeteamvoiceannounce 1 "fueldump_allies_depotdef_destroy"
		// *---------------------------------------------------------------------------------*
	}
}

// ============================================================================
// Footbridge on Allied side of the map
// ============================================================================
footbridge
{
	spawn
	{
		wait 200
		constructible_class 2
		setstate footbridge invisible
		setstate footbridgematerials default
		setstate lms_footbridge invisible
	}

	buildstart final
	{
		setstate footbridge underconstruction
	}

	built final
	{
		setstate footbridge default
		setstate footbridgematerials invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has constructed the Foot Bridge!"
	}

	decayed final
	{
		setstate footbridge invisible
		setstate footbridgematerials default
	}

	death
	{
		setstate footbridge invisible
		setstate footbridgematerials default

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has destroyed the Foot Bridge!"
	}
}
//----START----/SS/StinVec’s Allied Constructible Fueldump Assault Bridge 
fdbridge
{
    spawn
    {
        wait 200        

        faceangles 0 -47 2 1
        constructible_class 3
        constructible_chargebarreq 1.5
        constructible_constructxpbonus 20

        trigger fdbridge setup
    }

    trigger show_materials
    {
        setstate fdbridge_materials      default
        setstate fdbridge_flag           default
    }

    trigger hide_materials
    {
        setstate fdbridge_materials      invisible
        setstate fdbridge_flag           invisible
    }

    trigger show_fdbridge
    {
        setstate fdbridge        default
    }

    trigger hide_fdbridge
    {
        setstate fdbridge        invisible
    }

    trigger building_fdbridge
    {
        setstate fdbridge  underconstruction
    }

    trigger setup
    {
        setstate fdbridge_material_hurt invisible
        trigger self hide_fdbridge
        trigger self show_materials
    }

    buildstart final
    {
        trigger self building_fdbridge
        trigger self show_materials
    }

    built final
    {
        trigger self show_fdbridge
        trigger self hide_materials

        wm_announce "^4***ALLIES: ^3The Allied Fueldump Assault Bridge has been constructed!^7"
        wm_announce "^1***AXIS: ^3 DESTROY IT WITH DYNAMITE!"
    }
    decayed final
    {
        trigger self hide_fdbridge
        trigger self show_materials
    }


    death
    {
        trigger self hide_fdbridge
        trigger self show_materials
        setstate fdbridge_material_hurt default
        wait 10
        setstate fdbridge_material_hurt invisible

        wm_announce "^1AXIS ^)have destroyed the Allied Fueldump Assault Bridge!^7"
     }
}
//----END----/SS/StinVec’s Allied Constructible Fueldump Assault Bridge 

// ============================================================================
// Allied MG42 Nest - on Allied side of the map
// ============================================================================
alliedbarnmg42nest
{
	spawn
	{
		wait 200

		constructible_class 2

		setstate alliedbarnmg42 invisible
		setstate alliedbarnmg42materials default
	}

	buildstart final
	{
		setstate alliedbarnmg42 underconstruction
	}

	built final
	{
		setstate alliedbarnmg42 default
		setstate alliedbarnmg42materials invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has constructed the Road MG Nest!"
	}

	decayed final
	{
		setstate alliedbarnmg42 invisible
		setstate alliedbarnmg42materials default
	}

	death
	{
		setstate alliedbarnmg42 invisible
		setstate alliedbarnmg42materials default
		repairmg42 alliedbarnmg42

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has destroyed the Road MG Nest!"
	}
}

// ============================================================================
// AXIS GUARD TOWER - on Allied side of the map
// ============================================================================
axistunneltower
{
	spawn
	{
		wait 200
		constructible_class 2
		setstate axistunneltower invisible
		setstate axistunneltowermg42 invisible
		setstate tunneltowermaterials default
	}

	buildstart final
	{
		setstate axistunneltower underconstruction
		setstate axistunneltowermg42 underconstruction
	}

	built final
	{
		setstate axistunneltower default
		setstate axistunneltowermg42 default
		setstate tunneltowermaterials invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has constructed the Tunnel MG!"
	}

	decayed final
	{
		setstate axistunneltower invisible
		setstate axistunneltowermg42 invisible
		setstate tunneltowermaterials default
	}

	death
	{
		trigger axistunneltowerblast boom

		setstate axistunneltower invisible
		setstate axistunneltowermg42 invisible
		repairmg42 axistunneltowermg42

		setstate tunneltowermaterials default

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has destroyed the Tunnel MG!"
	}
}

// Trigger hurt brush around the tower to catch all people
//  in the tower when it is destroyed.
axistunneltowerblast
{
	spawn
	{
		wait 200
		setstate axistunneltowerblast invisible
	}

	trigger boom
	{
		setstate axistunneltowerblast default
		wait 500
		setstate axistunneltowerblast invisible
	}
}

// ============================================================================
// ALLIED MG42 NEST next to the tank bay
// - on Axis side of the map
// ============================================================================
alliedsidemg42
{
	spawn
	{
		wait 200
		constructible_class 2
		setstate alliedsidemg42_sandbags invisible
		setstate alliedsidemg42_gun invisible
	}

	buildstart final
	{
		setstate alliedsidemg42_sandbags underconstruction
		setstate alliedsidemg42_gun underconstruction
	}

	built final
	{
		setstate alliedsidemg42_sandbags default
		setstate alliedsidemg42_gun default
		setstate sidetowermaterials invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has constructed the Side MG Nest!"
	}

	decayed final
	{
		setstate alliedsidemg42_sandbags invisible
		setstate alliedsidemg42_gun invisible
	}

	death
	{
		setstate alliedsidemg42_sandbags invisible
		setstate alliedsidemg42_gun invisible
		repairmg42 alliedsidemg42_gun

		setstate sidetowermaterials default

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has destroyed the Side MG Nest!"
	}
}

// ============================================================================
// AXIS GUARD TOWER next to the tank bay
// - on Axis side of the map
// ============================================================================
axissidetower
{
	spawn
	{
		wait 200
		constructible_class 2
		setstate axissidetower invisible
		setstate axissidetowermg42 invisible
		setstate sidetowermaterials default
	}

	buildstart final
	{
		setstate axissidetower underconstruction
		setstate axissidetowermg42 underconstruction
	}

	built final
	{
		setstate axissidetower default
		setstate axissidetowermg42 default
		setstate sidetowermaterials invisible

		// Some kind of UI pop-up to alert players
		wm_announce	"Axis team has constructed the Side MG Nest!"
	}

	decayed final
	{
		setstate axissidetower invisible
		setstate axissidetowermg42 invisible
	}

	death
	{
		trigger axissidetowerblast boom

		setstate axissidetower invisible
		setstate axissidetowermg42 invisible
		repairmg42 axissidetowermg42

		setstate sidetowermaterials default

		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has destroyed the Side MG Nest!"
	}
}

// Trigger hurt brush around the tower to catch all people
//  in the tower when it is destroyed.
axissidetowerblast
{
	spawn
	{
		wait 200
		setstate axissidetowerblast invisible
	}

	trigger boom
	{
		setstate axissidetowerblast default
		wait 500
		setstate axissidetowerblast invisible
	}
}

// ============================================================================
// Tank stuff starts here
// ============================================================================
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 goldrush over...
// ============================================================================
// accum 0, dynamite count
// accum 1
//  - bit 0: bridge state		( 0 = not built,	1 = built		)
//  - bit 1: blank 				(									)
//  - bit 2: spline status 		( 0 = not moving, 	1 = moving 		)
//  - bit 3: stuck check flag 	( 0 = not stuck, 	1 = stuck 		)
//  - bit 4: blank 				(									)
//  - bit 5: track state		( 0 = stopped,		1 = forward		)
//  - 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 spln0 -> spln65 tunnel1 -> tunnel12 spln66 -> spln86 spln2_0 -> spln2_39
// ===========================================================================================
// track events:
//  - tracks_forward
//  - tracks_stop
//  - tracks_turningleft
//  - tracks_turningright

tank
{
	spawn
	{
		wait 50
		faceangles 0 180 0 50
		trigger self sound_idle

		accum 1 bitset 5
		trigger self tracks_stop

		// Reset the tank+turret into correct position
		followspline 0 spln0 10000 wait length -64
		followspline 1 spln0 10000 wait length -64

		// Instant test teleporter
		// accum 3 set 90
	}

// ===========================================================================================
	trigger startfire
	{
		startanimation 67 8 10 nolerp norandom
	}

	trigger stopfire
	{
		startanimation 0 1 15 nolerp norandom
	}
// ===========================================================================================
	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 1 abort_if_bitset 5
		accum 1 bitset 5

		remapshader models/mapobjects/tanks_sd/bits_r models/mapobjects/tanks_sd/bits_forward
		remapshader models/mapobjects/tanks_sd/wheel_r models/mapobjects/tanks_sd/wheel_forward
		remapshader models/mapobjects/tanks_sd/bits_l models/mapobjects/tanks_sd/bits_forward
		remapshader models/mapobjects/tanks_sd/wheel_l models/mapobjects/tanks_sd/wheel_forward
		remapshaderflush
	}

	trigger tracks_turningleft
	{
		remapshader models/mapobjects/tanks_sd/bits_r models/mapobjects/tanks_sd/bits_forward
		remapshader models/mapobjects/tanks_sd/wheel_r models/mapobjects/tanks_sd/wheel_forward
		remapshader models/mapobjects/tanks_sd/bits_l models/mapobjects/tanks_sd/bits_backward
		remapshader models/mapobjects/tanks_sd/wheel_l models/mapobjects/tanks_sd/wheel_backward
		remapshaderflush
	}

	trigger tracks_turningright
	{
		remapshader models/mapobjects/tanks_sd/bits_r models/mapobjects/tanks_sd/bits_backward
		remapshader models/mapobjects/tanks_sd/wheel_r models/mapobjects/tanks_sd/wheel_backward
		remapshader models/mapobjects/tanks_sd/bits_l models/mapobjects/tanks_sd/bits_forward
		remapshader models/mapobjects/tanks_sd/wheel_l models/mapobjects/tanks_sd/wheel_forward
		remapshaderflush
	}

	trigger tracks_stop
	{
		accum 1 abort_if_not_bitset 5
		accum 1 bitreset 5

		remapshader models/mapobjects/tanks_sd/bits_r models/mapobjects/tanks_sd/bits_r
		remapshader models/mapobjects/tanks_sd/wheel_r models/mapobjects/tanks_sd/wheel_r
		remapshader models/mapobjects/tanks_sd/bits_l models/mapobjects/tanks_sd/bits_l
		remapshader models/mapobjects/tanks_sd/wheel_l models/mapobjects/tanks_sd/wheel_l
		remapshaderflush
	}
// ===========================================================================================
// ===========================================================================================
	trigger run_incpos
	{
		accum 3 inc 1
	}

	trigger run_continue
	{
		trigger self run_incpos
		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

		//-----------------------------------------
		// First corner by the road MG nest
		//-----------------------------------------
		// 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
		accum 3 trigger_if_equal 42 tank run_42

		//-----------------------------------------
		// Turning outside of cave front doors
		//-----------------------------------------
		// accum 3 trigger_if_equal 43 tank run_43

		accum 3 trigger_if_equal 44 tank run_44
		accum 3 trigger_if_equal 45 tank run_45
		accum 3 trigger_if_equal 46 tank run_46
		accum 3 trigger_if_equal 47 tank run_47
		accum 3 trigger_if_equal 48 tank run_48
		accum 3 trigger_if_equal 49 tank run_49
		accum 3 trigger_if_equal 50 tank run_50
		accum 3 trigger_if_equal 51 tank run_51
		accum 3 trigger_if_equal 52 tank run_52
		accum 3 trigger_if_equal 53 tank run_53
		accum 3 trigger_if_equal 54 tank run_54
		accum 3 trigger_if_equal 55 tank run_55
		accum 3 trigger_if_equal 56 tank run_56
		accum 3 trigger_if_equal 57 tank run_57
		accum 3 trigger_if_equal 58 tank run_58
		accum 3 trigger_if_equal 59 tank run_59
		accum 3 trigger_if_equal 60 tank run_60

		//-----------------------------------------
		// First corner of cave route
		// accum 3 trigger_if_equal 61 tank run_61

		accum 3 trigger_if_equal 62 tank run_62
		// accum 3 trigger_if_equal 63 tank run_63
		accum 3 trigger_if_equal 64 tank run_64

		accum 3 trigger_if_equal 65 tank run_65
		accum 3 trigger_if_equal 66 tank run_66
		accum 3 trigger_if_equal 67 tank run_67
		accum 3 trigger_if_equal 68 tank run_68
		accum 3 trigger_if_equal 69 tank run_69
		accum 3 trigger_if_equal 70 tank run_70
		accum 3 trigger_if_equal 71 tank run_71
		accum 3 trigger_if_equal 72 tank run_72

		//-----------------------------------------
		// Last corner of cave route
		// accum 3 trigger_if_equal 73 tank run_73

		accum 3 trigger_if_equal 74 tank run_74
		accum 3 trigger_if_equal 75 tank run_75
		accum 3 trigger_if_equal 76 tank run_76
		accum 3 trigger_if_equal 77 tank run_77
		accum 3 trigger_if_equal 78 tank run_78
		accum 3 trigger_if_equal 79 tank run_79
		accum 3 trigger_if_equal 80 tank run_80
		accum 3 trigger_if_equal 81 tank run_81
		accum 3 trigger_if_equal 82 tank run_82
		accum 3 trigger_if_equal 83 tank run_83
		accum 3 trigger_if_equal 84 tank run_84
		accum 3 trigger_if_equal 85 tank run_85
		accum 3 trigger_if_equal 86 tank run_86
		accum 3 trigger_if_equal 87 tank run_87
		accum 3 trigger_if_equal 88 tank run_88
		accum 3 trigger_if_equal 89 tank run_89
		accum 3 trigger_if_equal 90 tank run_90
		accum 3 trigger_if_equal 91 tank run_91
		accum 3 trigger_if_equal 92 tank run_92
		accum 3 trigger_if_equal 93 tank run_93
		accum 3 trigger_if_equal 94 tank run_94
		accum 3 trigger_if_equal 95 tank run_95
		accum 3 trigger_if_equal 96 tank run_96
		accum 3 trigger_if_equal 97 tank run_97
		accum 3 trigger_if_equal 98 tank run_98
		accum 3 trigger_if_equal 99 tank run_99
		accum 3 trigger_if_equal 100 tank run_100
		accum 3 trigger_if_equal 101 tank run_101
		accum 3 trigger_if_equal 102 tank run_102
		accum 3 trigger_if_equal 103 tank run_103
		accum 3 trigger_if_equal 104 tank run_104
		accum 3 trigger_if_equal 105 tank run_105
		accum 3 trigger_if_equal 106 tank run_106
		accum 3 trigger_if_equal 107 tank run_107
		accum 3 trigger_if_equal 108 tank run_108
		accum 3 trigger_if_equal 109 tank run_109
		accum 3 trigger_if_equal 110 tank run_110
		accum 3 trigger_if_equal 111 tank run_111
		accum 3 trigger_if_equal 112 tank run_112
		accum 3 trigger_if_equal 113 tank run_113
		accum 3 trigger_if_equal 114 tank run_114
		accum 3 trigger_if_equal 115 tank run_115
		accum 3 trigger_if_equal 116 tank run_116
		accum 3 trigger_if_equal 117 tank run_117
		accum 3 trigger_if_equal 118 tank run_118
		accum 3 trigger_if_equal 119 tank run_119
		accum 3 trigger_if_equal 120 tank run_120
		accum 3 trigger_if_equal 121 tank run_121
		accum 3 trigger_if_equal 122 tank run_122
		accum 3 trigger_if_equal 123 tank run_123
		accum 3 trigger_if_equal 124 tank run_124
		accum 3 trigger_if_equal 125 tank run_125
		accum 3 trigger_if_equal 126 tank run_126
		accum 3 trigger_if_equal 127 tank run_127
		accum 3 trigger_if_equal 128 tank run_128
		accum 3 trigger_if_equal 129 tank run_129
		accum 3 trigger_if_equal 130 tank run_130
		accum 3 trigger_if_equal 131 tank run_131
		accum 3 trigger_if_equal 132 tank run_132
		accum 3 trigger_if_equal 133 tank run_133
	}

// ===========================================================================================
// ===========================================================================================
	trigger run_0
	{
		accum 1 bitset 2
		trigger tank_turret2 run_0
		followspline 0 spln0 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_1
	{
		accum 1 bitset 2
		trigger tank_turret2 run_1
		followspline 0 spln1 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_2
	{
		accum 1 bitset 2
		trigger tank_turret2 run_2
		followspline 0 spln2 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Jig next to spawn hut
	//-----------------------------------------------------------------------
	trigger run_3
	{
		accum 1 bitset 2
		trigger tank_turret2 run_3

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln3 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_4
	{
		accum 1 bitset 2
		trigger tank_turret2 run_4
		followspline 0 spln4 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Jig next to spawn hut
	//-----------------------------------------------------------------------
	trigger run_5
	{
		accum 1 bitset 2
		trigger tank_turret2 run_5

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln5 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_6
	{
		accum 1 bitset 2
		trigger tank_turret2 run_6
		followspline 0 spln6 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_7
	{
		accum 1 bitset 2
		trigger tank_turret2 run_7
		followspline 0 spln7 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_8
	{
		accum 1 bitset 2
		trigger tank_turret2 run_8
		followspline 0 spln8 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Jig next to fence
	//-----------------------------------------------------------------------
	trigger run_9
	{
		accum 1 bitset 2
		trigger tank_turret2 run_9

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln9 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Jig next to fence
	//-----------------------------------------------------------------------
	trigger run_10
	{
		accum 1 bitset 2
		trigger tank_turret2 run_10

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln10 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_11
	{
		accum 1 bitset 2
		trigger tank_turret2 run_11
		followspline 0 spln11 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_12
	{
		accum 1 bitset 2
		trigger tank_turret2 run_12
		followspline 0 spln12 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// First corner past road MG nest
	//-----------------------------------------------------------------------
	trigger run_13
	{
		accum 1 bitset 2
		trigger tank_turret2 run_13

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln13 80 wait length -64
		followspline 0 spln14 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_incpos
		trigger self run_continue
	}

	trigger run_15
	{
		accum 1 bitset 2
		trigger tank_turret2 run_15
		followspline 0 spln15 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_16
	{
		accum 1 bitset 2
		trigger tank_turret2 run_16
		followspline 0 spln16 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_17
	{
		accum 1 bitset 2
		trigger tank_turret2 run_17
		followspline 0 spln17 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Small track skip opp MG nest
	//-----------------------------------------------------------------------
	trigger run_18
	{
		accum 1 bitset 2
		trigger tank_turret2 run_18

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln18 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_19
	{
		accum 1 bitset 2
		trigger tank_turret2 run_19
		followspline 0 spln19 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_20
	{
		accum 1 bitset 2
		trigger tank_turret2 run_20
		followspline 0 spln20 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_21
	{
		accum 1 bitset 2
		trigger tank_turret2 run_21
		followspline 0 spln21 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_22
	{
		accum 1 bitset 2
		trigger tank_turret2 run_22
		followspline 0 spln22 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_23
	{
		accum 1 bitset 2
		trigger tank_turret2 run_23
		followspline 0 spln23 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Small track skip near signpost
	//-----------------------------------------------------------------------
	trigger run_24
	{
		accum 1 bitset 2
		trigger tank_turret2 run_24

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln24 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_25
	{
		accum 1 bitset 2
		trigger tank_turret2 run_25
		followspline 0 spln25 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Small track skip near signpost
	//-----------------------------------------------------------------------
	trigger run_26
	{
		accum 1 bitset 2
		trigger tank_turret2 run_26

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln26 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_27
	{
		accum 1 bitset 2
		trigger tank_turret2 run_27
		followspline 0 spln27 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Small track skip near signpost
	//-----------------------------------------------------------------------
	trigger run_28
	{
		accum 1 bitset 2
		trigger tank_turret2 run_28

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln28 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_29
	{
		accum 1 bitset 2
		trigger tank_turret2 run_29
		followspline 0 spln29 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_30
	{
		accum 1 bitset 2
		trigger tank_turret2 run_30
		followspline 0 spln30 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Second corner before river bridge
	//-----------------------------------------------------------------------
	trigger run_31
	{
		accum 1 bitset 2
		trigger tank_turret2 run_31

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln31 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Destroy frozen river grate
	//-----------------------------------------------------------------------
	trigger run_32
	{
		accum 1 bitset 2
		trigger tank_turret2 run_32
		followspline 0 spln32 80 wait length -64
		accum 1 bitreset 2

		trigger self		script_lockout

		trigger self 		tracks_stop
		trigger tank_sound 	stop

		startanimation 45 	10 	15 nolerp norandom
		wait 666
		startanimation 0 	1 	15 nolerp norandom
		wait 900

		trigger self run_incpos

		trigger tank_turret turn4 // will break the lockout
	}

	trigger run_33
	{
		accum 1 bitset 2
		trigger tank_turret2 run_33
		followspline 0 spln33 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_34
	{
		accum 1 bitset 2
		trigger tank_turret2 run_34
		followspline 0 spln34 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// River bridge
	//-----------------------------------------------------------------------
	trigger run_35
	{
		accum 1 bitset 2
		trigger tank_turret2 run_35
		followspline 0 spln35 80 wait length -64
		followspline 0 spln36 80 wait length -64
		followspline 0 spln37 80 wait length -64
		followspline 0 spln38 80 wait length -64
		followspline 0 spln39 80 wait length -64
		followspline 0 spln40 80 wait length -64
		accum 1 bitreset 2

		// setup sounds
		trigger thebridge tank_passed	// Remove all bridge ref VO

		trigger self run_continue
	}

	trigger run_36
	{
		accum 1 bitset 2
		trigger tank_turret2 run_36
		followspline 0 spln41 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_37
	{
		accum 1 bitset 2
		trigger tank_turret2 run_37
		followspline 0 spln42 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_38
	{
		accum 1 bitset 2
		trigger tank_turret2 run_38
		followspline 0 spln43 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_39
	{
		accum 1 bitset 2
		trigger tank_turret2 run_39
		followspline 0 spln44 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_40
	{
		accum 1 bitset 2
		trigger tank_turret2 run_40
		followspline 0 spln45 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Destroy cave front door
	//-----------------------------------------------------------------------
	trigger run_41
	{
		accum 1 bitset 2
		trigger tank_turret2 run_41
		followspline 0 spln46 80 wait length -64
		accum 1 bitreset 2

		trigger self		script_lockout

		trigger self 		tracks_stop
		trigger tank_sound 	stop

		startanimation 45 	10 	15 nolerp norandom
		wait 666
		startanimation 0 	1 	15 nolerp norandom
		wait 900

		trigger self run_incpos
		trigger tank_turret turn
	}

	trigger run_42
	{
		accum 1 bitset 2
		trigger tank_turret2 run_42

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln47 80 wait length -64
		followspline 0 spln48 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_incpos
		trigger self run_continue
	}

	trigger run_44
	{
		accum 1 bitset 2
		trigger tank_turret2 run_44
		followspline 0 spln49 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_45
	{
		accum 1 bitset 2
		trigger tank_turret2 run_45
		followspline 0 spln50 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_46
	{
		accum 1 bitset 2
		trigger tank_turret2 run_46
		followspline 0 spln51 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_47
	{
		accum 1 bitset 2
		trigger tank_turret2 run_47
		followspline 0 spln52 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_48
	{
		accum 1 bitset 2
		trigger tank_turret2 run_48
		followspline 0 spln53 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_49
	{
		accum 1 bitset 2
		trigger tank_turret2 run_49
		followspline 0 spln54 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_50
	{
		accum 1 bitset 2
		trigger tank_turret2 run_50
		followspline 0 spln55 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_51
	{
		accum 1 bitset 2
		trigger tank_turret2 run_51
		followspline 0 spln56 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_52
	{
		accum 1 bitset 2
		trigger tank_turret2 run_52
		followspline 0 spln57 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_53
	{
		accum 1 bitset 2
		trigger tank_turret2 run_53
		followspline 0 spln58 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_54
	{
		accum 1 bitset 2
		trigger tank_turret2 run_54
		followspline 0 spln59 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_55
	{
		accum 1 bitset 2
		trigger tank_turret2 run_55
		followspline 0 spln60 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_56
	{
		accum 1 bitset 2
		trigger tank_turret2 run_56
		followspline 0 spln61 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_57
	{
		accum 1 bitset 2
		trigger tank_turret2 run_57
		followspline 0 spln62 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_58
	{
		accum 1 bitset 2
		trigger tank_turret2 run_58
		followspline 0 spln63 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_59
	{
		accum 1 bitset 2
		trigger tank_turret2 run_59
		followspline 0 spln64 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// First section of the mountain tunnel
	//-----------------------------------------------------------------------
	trigger run_60
	{
		accum 1 bitset 2
		trigger tank_turret2 run_60

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln65 80 wait length -64 roll 0 -1 dampout
		followspline 0 tunnel1 80 wait length -64 roll -1 5 dampin dampout

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_incpos
		trigger self run_continue
	}

	trigger run_62
	{
		accum 1 bitset 2
		trigger tank_turret2 run_62

		followspline 0 tunnel2 80 wait length -64 roll 4 1 dampout
		followspline 0 tunnel3 80 wait length -64 roll 5 -5 dampin

		accum 1 bitreset 2
		trigger self run_incpos
		trigger self run_continue
	}

	trigger run_64
	{
		accum 1 bitset 2
		trigger tank_turret2 run_64
		followspline 0 tunnel4 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}
	//-----------------------------------------------------------------------
	// Turning past cave spawn exit
	//-----------------------------------------------------------------------
	trigger run_65
	{
		accum 1 bitset 2
		trigger tank_turret2 run_65

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 tunnel5 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_66
	{
		accum 1 bitset 2
		trigger tank_turret2 run_66
		followspline 0 tunnel6 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_67
	{
		accum 1 bitset 2
		trigger tank_turret2 run_67
		followspline 0 tunnel7 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Turning past small cave exit on axis side
	//-----------------------------------------------------------------------
	trigger run_68
	{
		accum 1 bitset 2
		trigger tank_turret2 run_68

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 tunnel8 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_69
	{
		accum 1 bitset 2
		trigger tank_turret2 run_69
		followspline 0 tunnel9 80 wait length -64 roll 0 1 dampout
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_70
	{
		accum 1 bitset 2
		trigger tank_turret2 run_70
		followspline 0 tunnel10 80 wait length -64 roll 1 4 dampin
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_71
	{
		accum 1 bitset 2
		trigger tank_turret2 run_71
		followspline 0 tunnel11 80 wait length -64 roll 5 1 dampin
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Final corner in the cave system
	//-----------------------------------------------------------------------
	trigger run_72
	{
		accum 1 bitset 2
		trigger tank_turret2 run_72
		followspline 0 tunnel12 80 wait length -64 roll 6 -4 dampin

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln66 80 wait length -64 roll 2 -2 dampin dampout

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_incpos
		trigger self run_continue
	}

	trigger run_74
	{
		accum 1 bitset 2
		trigger tank_turret2 run_74
		followspline 0 spln67 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_75
	{
		accum 1 bitset 2
		trigger tank_turret2 run_75
		followspline 0 spln68 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_76
	{
		accum 1 bitset 2
		trigger tank_turret2 run_76
		followspline 0 spln69 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_77
	{
		accum 1 bitset 2
		trigger tank_turret2 run_77
		followspline 0 spln70 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_78
	{
		accum 1 bitset 2
		trigger tank_turret2 run_78
		followspline 0 spln71 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_79
	{
		accum 1 bitset 2
		trigger tank_turret2 run_79
		followspline 0 spln72 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_80
	{
		accum 1 bitset 2
		trigger tank_turret2 run_80
		followspline 0 spln73 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_81
	{
		accum 1 bitset 2
		trigger tank_turret2 run_81
		followspline 0 spln74 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_82
	{
		accum 1 bitset 2
		trigger tank_turret2 run_82
		followspline 0 spln75 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_83
	{
		accum 1 bitset 2
		trigger tank_turret2 run_83
		followspline 0 spln76 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_84
	{
		accum 1 bitset 2
		trigger tank_turret2 run_84
		followspline 0 spln77 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_85
	{
		accum 1 bitset 2
		trigger tank_turret2 run_85
		followspline 0 spln78 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_86
	{
		accum 1 bitset 2
		trigger tank_turret2 run_86
		followspline 0 spln79 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_87
	{
		accum 1 bitset 2
		trigger tank_turret2 run_87
		followspline 0 spln80 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_88
	{
		accum 1 bitset 2
		trigger tank_turret2 run_88
		followspline 0 spln81 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_89
	{
		accum 1 bitset 2
		trigger tank_turret2 run_89
		followspline 0 spln82 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_90
	{
		accum 1 bitset 2
		trigger tank_turret2 run_90
		followspline 0 spln83 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_91
	{
		accum 1 bitset 2
		trigger tank_turret2 run_91
		followspline 0 spln84 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_92
	{
		accum 1 bitset 2
		trigger tank_turret2 run_92
		followspline 0 spln85 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Front of AXIS base
	//-----------------------------------------------------------------------
	trigger run_93
	{
		accum 1 bitset 2
		trigger tank_turret2 run_93
		followspline 0 spln86 80 wait length -64
		accum 1 bitreset 2

		trigger self		script_lockout

		trigger self 		tracks_stop
		trigger tank_sound 	stop

		startanimation 45 10 15 nolerp norandom
		wait 666
		startanimation 0 1 15 nolerp norandom
		wait 900

		trigger tank_turret turn2

		trigger self run_incpos

	}

	//-----------------------------------------------------------------------
	// Turning round for the next route
	//-----------------------------------------------------------------------
	trigger run_94
	{
		accum 1 bitset 2
		trigger tank_turret2 run_94

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		faceangles 0 105 0 8000 // pitch yaw roll time(ms)

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_95
	{
		accum 1 bitset 2
		trigger tank_turret2 run_95
		followspline 0 spln2_0 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_96
	{
		accum 1 bitset 2
		trigger tank_turret2 run_96
		followspline 0 spln2_1 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_97
	{
		accum 1 bitset 2
		trigger tank_turret2 run_97
		followspline 0 spln2_2 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Turning towards tank bay path
	//-----------------------------------------------------------------------
	trigger run_98
	{
		accum 1 bitset 2
		trigger tank_turret2 run_98

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln2_3 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_99
	{
		accum 1 bitset 2
		trigger tank_turret2 run_99
		followspline 0 spln2_4 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_100
	{
		accum 1 bitset 2
		trigger tank_turret2 run_100
		followspline 0 spln2_5 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_101
	{
		accum 1 bitset 2
		trigger tank_turret2 run_101
		followspline 0 spln2_6 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_102
	{
		accum 1 bitset 2
		trigger tank_turret2 run_102
		followspline 0 spln2_7 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_103
	{
		accum 1 bitset 2
		trigger tank_turret2 run_103
		followspline 0 spln2_8 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Turning to face the tank bay
	//-----------------------------------------------------------------------
	trigger run_104
	{
		accum 1 bitset 2
		trigger tank_turret2 run_104

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln2_9 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_105
	{
		accum 1 bitset 2
		trigger tank_turret2 run_105
		followspline 0 spln2_10 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_106
	{
		accum 1 bitset 2
		trigger tank_turret2 run_106
		followspline 0 spln2_11 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_107
	{
		accum 1 bitset 2
		trigger tank_turret2 run_107
		followspline 0 spln2_12 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Turning down the side of the tank bay
	//-----------------------------------------------------------------------
	trigger run_108
	{
		accum 1 bitset 2
		trigger tank_turret2 run_108

		// Start tracks turning in opp directions
		trigger self 		tracks_turningright

		followspline 0 spln2_13 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_109
	{
		accum 1 bitset 2
		trigger tank_turret2 run_109
		followspline 0 spln2_14 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_110
	{
		accum 1 bitset 2
		trigger tank_turret2 run_110
		followspline 0 spln2_15 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_111
	{
		accum 1 bitset 2
		trigger tank_turret2 run_111
		followspline 0 spln2_16 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_112
	{
		accum 1 bitset 2
		trigger tank_turret2 run_112
		followspline 0 spln2_17 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_113
	{
		accum 1 bitset 2
		trigger tank_turret2 run_113
		followspline 0 spln2_18 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_114
	{
		accum 1 bitset 2
		trigger tank_turret2 run_114
		followspline 0 spln2_19 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_115
	{
		accum 1 bitset 2
		trigger tank_turret2 run_115
		followspline 0 spln2_20 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_116
	{
		accum 1 bitset 2
		trigger tank_turret2 run_116
		followspline 0 spln2_21 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_117
	{
		accum 1 bitset 2
		trigger tank_turret2 run_117
		followspline 0 spln2_22 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_118
	{
		accum 1 bitset 2
		trigger tank_turret2 run_118
		followspline 0 spln2_23 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_119
	{
		accum 1 bitset 2
		trigger tank_turret2 run_119
		followspline 0 spln2_24 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_120
	{
		accum 1 bitset 2
		trigger tank_turret2 run_120
		followspline 0 spln2_25 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	//-----------------------------------------------------------------------
	// Final turn towards fueldump
	//-----------------------------------------------------------------------
	trigger run_121
	{
		accum 1 bitset 2
		trigger tank_turret2 run_121

		// Start tracks turning in opp directions
		trigger self 		tracks_turningleft

		followspline 0 spln2_26 80 wait length -64

		// Reset tracks back to forward motion
		accum 1 bitreset 5
		trigger self 		tracks_forward

		accum 1 bitreset 2
		trigger self run_continue
	}

	trigger run_122
	{
		accum 1 bitset 2
		trigger tank_turret2 run_122
		followspline 0 spln2_27 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_123
	{
		accum 1 bitset 2
		trigger tank_turret2 run_123
		followspline 0 spln2_28 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_124
	{
		accum 1 bitset 2
		trigger tank_turret2 run_124
		followspline 0 spln2_29 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_125
	{
		accum 1 bitset 2
		trigger tank_turret2 run_125
		followspline 0 spln2_30 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_126
	{
		accum 1 bitset 2
		trigger tank_turret2 run_126
		followspline 0 spln2_31 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_127
	{
		accum 1 bitset 2
		trigger tank_turret2 run_127
		followspline 0 spln2_32 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_128
	{
		accum 1 bitset 2
		trigger tank_turret2 run_128
		followspline 0 spln2_33 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_129
	{
		accum 1 bitset 2
		trigger tank_turret2 run_129
		followspline 0 spln2_35 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_130
	{
		accum 1 bitset 2
		trigger tank_turret2 run_130
		followspline 0 spln2_36 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_131
	{
		accum 1 bitset 2
		trigger tank_turret2 run_131
		followspline 0 spln2_37 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_132
	{
		accum 1 bitset 2
		trigger tank_turret2 run_132
		followspline 0 spln2_38 80 wait length -64
		accum 1 bitreset 2

		trigger self run_continue
	}

	trigger run_133
	{
		accum 1 bitset 2
		trigger tank_turret2 run_133
		followspline 0 spln2_39 80 wait length -64 roll 0 -1 dampin dampout
		accum 1 bitreset 2

		trigger self		script_lockout

		trigger tank_construct final_pos
		trigger self tracks_stop
		trigger self sound_death
		trigger tank_sound 	stop

		startanimation 45 	10 	15 nolerp norandom
		wait 666
		startanimation 0 	1 	15 nolerp norandom
		wait 900

		trigger tank_turret turn3
		trigger self run_incpos
	}

// ===========================================================================================
// ===========================================================================================
// stuck 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 self stuck_check_bridge_built
		trigger self stuck_check_bridge_dyna
		trigger self stuck_check_scriptlockout
		trigger self stuck_check_finished
	}

	trigger stuck_check_finished
	{
		accum 3 abort_if_less_than 134

		accum 1 bitset 3
	}

	trigger stuck_check_scriptlockout
	{
		accum 5 abort_if_equal 0

		accum 1 bitset 3
	}

	trigger stuck_check_bridge_built
	{
		accum 3 abort_if_not_equal 35

		accum 1 abort_if_bitset 0

		accum 1 bitset 3
	}

	trigger stuck_check_bridge_dyna
	{
		accum 3 abort_if_not_equal 35

		accum 0 set_to_dynamitecount bridgetarget
		accum 0 abort_if_equal 0

		accum 1 bitset 3
	}

// ===========================================================================================
// ===========================================================================================
// 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
	}

// ===========================================================================================
// ===========================================================================================
// script lockouts

	trigger script_lockout
	{
		accum 5 inc 1
	}

	trigger script_lockout_stop
	{
		accum 5 inc -1
	}

// ===========================================================================================
// ===========================================================================================
// enable/disable

	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

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_tank_repaired_allies"

		wm_teamvoiceannounce 1 "allies_hq_tank_repaired"
		// *---------------------------------------------------------------------------------*
		wm_announce "The Tank has been repaired"

		changemodel models/mapobjects/tanks_sd/churchhill.md3

		setstate tank_smoke invisible

		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

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_tank_damaged"

		wm_teamvoiceannounce 1 "allies_hq_tank_damaged_axis"
		// *---------------------------------------------------------------------------------*

		wm_announce "The Tank has been damaged"

		changemodel models/mapobjects/tanks_sd/churchhill_broken.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 setBridge
	{
		wm_objective_status 1 1 1
		wm_objective_status 1 0 2

		accum 1 bitset 0
	}

	trigger clearBridge
	{
		wm_objective_status 1 1 0
		wm_objective_status 1 0 0

		accum 1 bitreset 0
	}
}

tank_disabler
{
	trigger run
	{
		trigger tank tank_disable
	}
}

tank_enabler
{
	trigger run
	{
		trigger tank tank_enable
	}
}

tank_trigger
{
     spawn
     {
          wait 100

          attachtotag tank tag_turret
     }
}

tank_build
{
     spawn
     {
          wait 100

          attachtotag tank tag_turret
     }
}

tank_construct
{
	spawn
	{
		wait 400

		constructible_class 2
		constructible_health 1200
	}

	built final
	{
		alertentity tank
	}

	trigger final_pos
	{
		constructible_constructxpbonus 3
		constructible_destructxpbonus 3
	}
}

//================================================================================
// Physical tank turret MODEL
//================================================================================
tank_turret
{
	spawn
	{
		wait 500
		attachtotag tank tag_turret
	}

	//-----------------------------------------------------------------------
	// CAVE FRONT DOOR
	//-----------------------------------------------------------------------
	trigger turn
	{
		wait 1000

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn
		faceangles 0 80 0 3000
		trigger tank_turret2 spin_stop

		wait 500

		trigger tank startfire
		trigger tank_turret2 avre_fire
		trigger tank_flash run
	}

	trigger blow_door
	{
		setstate tank_flash invisible

		wait 200
		trigger tank stopfire

		trigger cavedoor_solid switch
		alertentity tunnel_wobj
		setautospawn "Tunnel Store Room" 1
		setautospawn "Axis Fuel Dump" 0
		trigger game_manager objective2

		wm_objective_status 2 1 1
		wm_objective_status 2 0 2

		wait 200

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn_back
		faceangles 0 0 0 3000
		trigger tank_turret2 spin_stop

		trigger tank script_lockout_stop
	}

	//-----------------------------------------------------------------------
	// AXIS BASE FRONT GATE
	//-----------------------------------------------------------------------
	trigger turn2
	{
		wait 1000

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn2
		faceangles 0 348 0 2000 //-30
		trigger tank_turret2 spin_stop

		wait 500

		trigger tank startfire
		trigger tank_turret2 avre_fire
		trigger tank_flash run2
	}


	trigger blow_door2
	{
		setstate tank_flash invisible

		wait 200
		trigger tank stopfire

		trigger basedoor_solid switch
		trigger game_manager objective3

		wm_objective_status 3 1 1
		wm_objective_status 3 0 2

		wait 200

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn2_back
		faceangles 0 0 0 2000
		trigger tank_turret2 spin_stop

		trigger tank script_lockout_stop
	}

	//-----------------------------------------------------------------------
	// AXIS BASE SIDE WALL
	//-----------------------------------------------------------------------
	trigger turn3
	{
		wait 1000

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn3
		faceangles 0 35 0 3000
		trigger tank_turret2 spin_stop

		wait 500

		trigger tank startfire
		trigger tank_turret2 avre_fire
		trigger tank_flash run3

		trigger tank script_lockout_stop
	}

	trigger blow_door3
	{
		setstate tank_flash invisible

		wait 200
		trigger tank stopfire

		trigger basewall_solid switch
		trigger game_manager objective5

		wm_objective_status 5 1 1
		wm_objective_status 5 0 2

		wait 200

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn3_back
		faceangles 0 0 0 3000
		trigger tank_turret2 spin_stop
	}


	//-----------------------------------------------------------------------
	// FROZEN STREAM - GRATE ENTRANCE
	//-----------------------------------------------------------------------
	trigger turn4
	{
		wait 1000

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn4
		faceangles 0 45 0 4000 //+20
		trigger tank_turret2 spin_stop

		wait 500

		trigger tank startfire
		trigger tank_turret2 avre_fire
		trigger tank_flash run4
	}

	trigger blow_door4
	{
		setstate tank_flash invisible

		wait 200
		trigger tank stopfire

		trigger tunnelgrate_solid switch

		wait 200

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "fueldump_axis_grate_destroyed"

		wm_teamvoiceannounce 1 "fueldump_allies_grate_destroyed"
		// *---------------------------------------------------------------------------------*

		trigger tank_turret2 spin_start
		trigger tank_turret2 turn4_back
		faceangles 0 0 0 4000
		trigger tank_turret2 spin_stop

		trigger tank script_lockout_stop
	}
}

//================================================================================
// Test brushage for the tank turret
//================================================================================
tank_turret2solid
{
	spawn
	{
		remove
	}
}

//================================================================================
// Metal CLIP brush tank turret
//================================================================================
tank_turret2
{
	spawn
	{
		wait 50
		// Reset the tank+turret into correct position
		followspline 0 spln0 10000 wait length -64
		followspline 1 spln0 10000 wait length -64
	}

	trigger avre_fire
	{
		playsound sound/vehicles/tank/tank_fire.wav volume 300
	}

	trigger spin_start
	{
		stopsound
		playsound sound/vehicles/tank/turret_spin.wav looping volume 127
	}

	trigger spin_stop
	{
		stopsound
		playsound sound/vehicles/tank/turret_end.wav volume 96
	}

	//-----------------------------------------------------------------------
	// CAVE FRONT DOOR
	//-----------------------------------------------------------------------
	trigger turn
	{
		faceangles 0 170 0 3000
	}

	trigger turn_back
	{
		faceangles 0 90 0 3000

	}

	//-----------------------------------------------------------------------
	// AXIS BASE FRONT GATE sequence
	//-----------------------------------------------------------------------
	trigger turn2
	{
		faceangles 0 255 0 3000 //225
	}

	trigger turn2_back
	{
		faceangles 0 270 0 3000

	}

	//-----------------------------------------------------------------------
	// AXIS BASE SIDE WALL
	//-----------------------------------------------------------------------
	trigger turn3
	{
		faceangles 14 305 0 3000
	}

	trigger turn3_back
	{
		faceangles 8 270 0 3000
		followspline 0 spln2_39 10000 wait length -64
	}

	//-----------------------------------------------------------------------
	// FROZEN STREAM - GRATE ENTRANCE
	//-----------------------------------------------------------------------
	trigger turn4
	{
		faceangles 0 145 0 4000 //160
	}

	trigger turn4_back
	{
		faceangles 0 100 0 4000 //115
	}

	//-----------------------------------------------------------------------
	trigger run_0
	{
		followspline 0 spln0 80 wait length -64
	}

	trigger run_1
	{
		followspline 0 spln1 80 wait length -64
	}

	trigger run_2
	{
		followspline 0 spln2 80 wait length -64
	}

	trigger run_3
	{
		followspline 0 spln3 80 wait length -64
	}

	trigger run_4
	{
		followspline 0 spln4 80 wait length -64
	}

	trigger run_5
	{
		followspline 0 spln5 80 wait length -64
	}

	trigger run_6
	{
		followspline 0 spln6 80 wait length -64
	}

	trigger run_7
	{
		followspline 0 spln7 80 wait length -64
	}

	trigger run_8
	{
		followspline 0 spln8 80 wait length -64
	}

	trigger run_9
	{
		followspline 0 spln9 80 wait length -64
	}

	trigger run_10
	{
		followspline 0 spln10 80 wait length -64
	}

	trigger run_11
	{
		followspline 0 spln11 80 wait length -64
	}

	trigger run_12
	{
		followspline 0 spln12 80 wait length -64
	}

	trigger run_13
	{
		followspline 0 spln13 80 wait length -64
		followspline 0 spln14 80 wait length -64
	}

	trigger run_15
	{
		followspline 0 spln15 80 wait length -64
	}

	trigger run_16
	{
		followspline 0 spln16 80 wait length -64
	}

	trigger run_17
	{
		followspline 0 spln17 80 wait length -64
	}

	trigger run_18
	{
		followspline 0 spln18 80 wait length -64
	}

	trigger run_19
	{
		followspline 0 spln19 80 wait length -64
	}

	trigger run_20
	{
		followspline 0 spln20 80 wait length -64
	}

	trigger run_21
	{
		followspline 0 spln21 80 wait length -64
	}

	trigger run_22
	{
		followspline 0 spln22 80 wait length -64
	}

	trigger run_23
	{
		followspline 0 spln23 80 wait length -64
	}

	trigger run_24
	{
		followspline 0 spln24 80 wait length -64
	}

	trigger run_25
	{
		followspline 0 spln25 80 wait length -64
	}

	trigger run_26
	{
		followspline 0 spln26 80 wait length -64
	}

	trigger run_27
	{
		followspline 0 spln27 80 wait length -64
	}

	trigger run_28
	{
		followspline 0 spln28 80 wait length -64
	}

	trigger run_29
	{
		followspline 0 spln29 80 wait length -64
	}

	trigger run_30
	{
		followspline 0 spln30 80 wait length -64
	}

	trigger run_31
	{
		followspline 0 spln31 80 wait length -64
	}

	trigger run_32
	{
		followspline 0 spln32 80 wait length -64
	}

	trigger run_33
	{
		followspline 0 spln33 80 wait length -64
	}

	trigger run_34
	{
		followspline 0 spln34 80 wait length -64
	}

	//-----------------------------------------------------------------------
	// River bridge
	//-----------------------------------------------------------------------
	trigger run_35
	{
		followspline 0 spln35 80 wait length -64
		followspline 0 spln36 80 wait length -64
		followspline 0 spln37 80 wait length -64
		followspline 0 spln38 80 wait length -64
		followspline 0 spln39 80 wait length -64
		followspline 0 spln40 80 wait length -64
	}

	trigger run_36
	{
		followspline 0 spln41 80 wait length -64
	}

	trigger run_37
	{
		followspline 0 spln42 80 wait length -64
	}

	trigger run_38
	{
		followspline 0 spln43 80 wait length -64
	}

	trigger run_39
	{
		followspline 0 spln44 80 wait length -64
	}

	trigger run_40
	{
		followspline 0 spln45 80 wait length -64
	}

	trigger run_41
	{
		followspline 0 spln46 80 wait length -64
	}

	trigger run_42
	{
		followspline 0 spln47 80 wait length -64
		followspline 0 spln48 80 wait length -64
	}

	trigger run_44
	{
		followspline 0 spln49 80 wait length -64
	}

	trigger run_45
	{
		followspline 0 spln50 80 wait length -64
	}

	trigger run_46
	{
		followspline 0 spln51 80 wait length -64
	}

	trigger run_47
	{
		followspline 0 spln52 80 wait length -64
	}

	trigger run_48
	{
		followspline 0 spln53 80 wait length -64
	}

	trigger run_49
	{
		followspline 0 spln54 80 wait length -64
	}

	trigger run_50
	{
		followspline 0 spln55 80 wait length -64
	}

	trigger run_51
	{
		followspline 0 spln56 80 wait length -64
	}

	trigger run_52
	{
		followspline 0 spln57 80 wait length -64
	}

	trigger run_53
	{
		followspline 0 spln58 80 wait length -64
	}

	trigger run_54
	{
		followspline 0 spln59 80 wait length -64
	}

	trigger run_55
	{
		followspline 0 spln60 80 wait length -64
	}

	trigger run_56
	{
		followspline 0 spln61 80 wait length -64
	}

	trigger run_57
	{
		followspline 0 spln62 80 wait length -64
	}

	trigger run_58
	{
		followspline 0 spln63 80 wait length -64
	}

	trigger run_59
	{
		followspline 0 spln64 80 wait length -64
	}

	trigger run_60
	{
		followspline 0 spln65 80 wait length -64 roll 0 -1 dampout
		followspline 0 tunnel1 80 wait length -64 roll -1 5 dampin dampout
	}

	trigger run_62
	{
		followspline 0 tunnel2 80 wait length -64 roll 4 1 dampout
		followspline 0 tunnel3 80 wait length -64 roll 5 -5 dampin
	}

	trigger run_64
	{
		followspline 0 tunnel4 80 wait length -64
	}

	trigger run_65
	{
		followspline 0 tunnel5 80 wait length -64
	}

	trigger run_66
	{
		followspline 0 tunnel6 80 wait length -64
	}

	trigger run_67
	{
		followspline 0 tunnel7 80 wait length -64
	}

	trigger run_68
	{
		followspline 0 tunnel8 80 wait length -64
	}

	trigger run_69
	{
		followspline 0 tunnel9 80 wait length -64 roll 0 1 dampout
	}

	trigger run_70
	{
		followspline 0 tunnel10 80 wait length -64 roll 1 4 dampin
	}

	trigger run_71
	{
		followspline 0 tunnel11 80 wait length -64 roll 5 1 dampin
	}

	trigger run_72
	{
		followspline 0 tunnel12 80 wait length -64 roll 6 -4 dampin
		followspline 0 spln66 80 wait length -64 roll -2 2 dampin dampout
	}

	trigger run_74
	{
		followspline 0 spln67 80 wait length -64
	}

	trigger run_75
	{
		followspline 0 spln68 80 wait length -64
	}

	trigger run_76
	{
		followspline 0 spln69 80 wait length -64
	}

	trigger run_77
	{
		followspline 0 spln70 80 wait length -64
	}

	trigger run_78
	{
		followspline 0 spln71 80 wait length -64
	}

	trigger run_79
	{
		followspline 0 spln72 80 wait length -64
	}

	trigger run_80
	{
		followspline 0 spln73 80 wait length -64
	}

	trigger run_81
	{
		followspline 0 spln74 80 wait length -64
	}

	trigger run_82
	{
		followspline 0 spln75 80 wait length -64
	}

	trigger run_83
	{
		followspline 0 spln76 80 wait length -64
	}

	trigger run_84
	{
		followspline 0 spln77 80 wait length -64
	}

	trigger run_85
	{
		followspline 0 spln78 80 wait length -64
	}

	trigger run_86
	{
		followspline 0 spln79 80 wait length -64
	}

	trigger run_87
	{
		followspline 0 spln80 80 wait length -64
	}

	trigger run_88
	{
		followspline 0 spln81 80 wait length -64
	}

	trigger run_89
	{
		followspline 0 spln82 80 wait length -64
	}

	trigger run_90
	{
		followspline 0 spln83 80 wait length -64
	}

	trigger run_91
	{
		followspline 0 spln84 80 wait length -64
	}

	trigger run_92
	{
		followspline 0 spln85 80 wait length -64
	}

	//-----------------------------------------------------------------------
	// Front of AXIS base
	//-----------------------------------------------------------------------
	trigger run_93
	{
		followspline 0 spln86 80 wait length -64
	}

	//-----------------------------------------------------------------------
	// Turning round for the next route
	//-----------------------------------------------------------------------
	trigger run_94
	{
		faceangles 0 105 0 8000 // pitch yaw roll time(ms)
	}

	trigger run_95
	{
		followspline 0 spln2_0 80 wait length -64
	}

	trigger run_96
	{
		followspline 0 spln2_1 80 wait length -64
	}

	trigger run_97
	{
		followspline 0 spln2_2 80 wait length -64
	}

	trigger run_98
	{
		followspline 0 spln2_3 80 wait length -64
	}

	trigger run_99
	{
		followspline 0 spln2_4 80 wait length -64
	}

	trigger run_100
	{
		followspline 0 spln2_5 80 wait length -64
	}

	trigger run_101
	{
		followspline 0 spln2_6 80 wait length -64
	}

	trigger run_102
	{
		followspline 0 spln2_7 80 wait length -64
	}

	trigger run_103
	{
		followspline 0 spln2_8 80 wait length -64
	}

	trigger run_104
	{
		followspline 0 spln2_9 80 wait length -64
	}

	trigger run_105
	{
		followspline 0 spln2_10 80 wait length -64
	}

	trigger run_106
	{
		followspline 0 spln2_11 80 wait length -64
	}

	trigger run_107
	{
		followspline 0 spln2_12 80 wait length -64
	}

	trigger run_108
	{
		followspline 0 spln2_13 80 wait length -64
	}

	trigger run_109
	{
		followspline 0 spln2_14 80 wait length -64
	}

	trigger run_110
	{
		followspline 0 spln2_15 80 wait length -64
	}

	trigger run_111
	{
		followspline 0 spln2_16 80 wait length -64
	}

	trigger run_112
	{
		followspline 0 spln2_17 80 wait length -64
	}

	trigger run_113
	{
		followspline 0 spln2_18 80 wait length -64
	}

	trigger run_114
	{
		followspline 0 spln2_19 80 wait length -64
	}

	trigger run_115
	{
		followspline 0 spln2_20 80 wait length -64
	}

	trigger run_116
	{
		followspline 0 spln2_21 80 wait length -64
	}

	trigger run_117
	{
		followspline 0 spln2_22 80 wait length -64
	}

	trigger run_118
	{
		followspline 0 spln2_23 80 wait length -64
	}

	trigger run_119
	{
		followspline 0 spln2_24 80 wait length -64
	}

	trigger run_120
	{
		followspline 0 spln2_25 80 wait length -64
	}

	trigger run_121
	{
		followspline 0 spln2_26 80 wait length -64
	}

	trigger run_122
	{
		followspline 0 spln2_27 80 wait length -64
	}

	trigger run_123
	{
		followspline 0 spln2_28 80 wait length -64
	}

	trigger run_124
	{
		followspline 0 spln2_29 80 wait length -64
	}

	trigger run_125
	{
		followspline 0 spln2_30 80 wait length -64
	}

	trigger run_126
	{
		followspline 0 spln2_31 80 wait length -64
	}

	trigger run_127
	{
		followspline 0 spln2_32 80 wait length -64
	}

	trigger run_128
	{
		followspline 0 spln2_33 80 wait length -64
	}

	trigger run_129
	{
		followspline 0 spln2_35 80 wait length -64
	}

	trigger run_130
	{
		followspline 0 spln2_36 80 wait length -64
	}

	trigger run_131
	{
		followspline 0 spln2_37 80 wait length -64
	}

	trigger run_132
	{
		followspline 0 spln2_38 80 wait length -64
	}

	trigger run_133
	{
		followspline 0 spln2_39 80 wait length -64 roll 0 -1 dampin dampout
	}
}

tank_smoke
{
	spawn
	{
		wait 300
		attachtotag tank tag_turret
		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

		wait 50

		trigger tank_turret blow_door
	}

	trigger run2
	{
		setstate tank_flash default
 		attachtotag tank_turret tag_flash
		faceangles 0 90 0 50

		wait 50

		trigger tank_turret blow_door2
	}

	trigger run3
	{
		setstate tank_flash default
 		attachtotag tank_turret tag_flash
		faceangles 0 90 0 50

		wait 50

		trigger tank_turret blow_door3
	}

	trigger run4
	{
		setstate tank_flash default
 		attachtotag tank_turret tag_flash
		faceangles 0 90 0 50

		wait 50

		trigger tank_turret blow_door4
	}
}

// ===========================================================================================
// Axis Base team door trigger
// for Allied engineers ONLY
// ===========================================================================================
axisbasedoor_trigger
{
//	activate
//	{
//		Trigger klaxon sound for 10s
//		alertentity axisbase_alert
//	}
}

// ===========================================================================================
// Garage Doors for Tank
// ===========================================================================================
tbdoor1_trigger1
{
	spawn
	{
		accum 3 set 0			// Initial state of lever. (0=down, 1=up)
	}
	trigger main
	{
		trigger tbdoor1_trigger1 up
		trigger tbdoor1_trigger1 down
	}

	trigger up
	{
		accum 3 abort_if_not_equal 0		// Lever up already ?
		globalaccum 4 abort_if_not_equal 0	// Flexible Door moving ?
		resetscript

		globalaccum 4 set 1			// Door is opening ...
		accum 3 set 1				// Lever is in up position
		trigger tbflywheel1 start			// Set flywheel moving
		trigger tbflywheel1 clockwise		// Start turning
		trigger tbflywheel1_sound wheel1_run
		trigger tbdoor1_lever1 up		// Move lever
		trigger tbdoor1-9 open		// Start moving all the door sections
	}

	trigger down
	{
		accum 3 abort_if_not_equal 1		// Lever down already ?
		globalaccum 4 abort_if_not_equal 0	// Flexible Door moving ?
		resetscript

		globalaccum 4 set 1			// Door is opening ...
		accum 3 set 0				// Lever is in up position
		trigger tbflywheel1 start			// Set flywheel moving
		trigger tbflywheel1 anticlockwise		// Start turning
		trigger tbflywheel1_sound wheel1_run
		trigger tbdoor1_lever1 down		// Move lever
		trigger tbdoor1-9 close		// Start moving all the door sections
	}
}

tbdoor1_lever1
{
	trigger down
	{
		gotomarker tbdoor1_lever1_downpos 16
		playsound sound/movers/switches/butn2.wav
	}
	trigger up
	{
		gotomarker tbdoor1_lever1_uppos 16
		playsound sound/movers/switches/switch.wav
	}
}

tbflywheel1_sound
{
	trigger wheel1_run
	{
		trigger tbflywheel1 sound_start
		wait 400
		trigger tbflywheel1 sound_run
	}
}

tbflywheel1
{
	spawn
	{
		accum 3 set 0			// Flywheel moving (0=No, 1=Yes)
	}

	trigger sound_start
	{
		stopsound
		playsound sound/movers/motors/motor_start_01.wav volume 127
	}

	trigger sound_run
	{
		playsound sound/movers/motors/motor_loop_01.wav looping volume 512
	}

	trigger sound_stop
	{
		stopsound
		playsound sound/movers/motors/motor_end_01.wav volume 127
	}

	trigger clockwise
	{
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 90 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 180 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 270 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 0 0 0 250 wait

		trigger tbflywheel1 clockwise
	}

	trigger anticlockwise
	{
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 270 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 180 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 90 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 0 0 0 250 wait

		trigger tbflywheel1 anticlockwise
	}

	trigger start
	{
		accum 3 set 1			// Start wheel moving
	}

	trigger stop
	{
		accum 3 set 0			// Stop wheel moving

		trigger self sound_stop
	}
}

tbdoor1-9
{
	spawn
	{
		wait 200
		trigger tbdoor1_trigger1 up
	}

	trigger open
	{
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_start_01.wav volume 96
		wait 50
		playsound sound/movers/misc/garage_door_loop_01.wav looping volume 512
		followpath 1 tbdrspln1-3 50 wait length 16
		followpath 1 tbdrspln1-4 50 wait length 16
		trigger tbflywheel1 stop	// Turn off flywheel
		globalaccum 4 set 0		// Flexible door 1 has stopped moving
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_end_01.wav volume 96
	}

	trigger close
	{
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_start_01.wav volume 96
		wait 50
		playsound sound/movers/misc/garage_door_loop_01.wav looping volume 512
		followpath 0 tbdrspln1-4 50 wait length 16
		followpath 0 tbdrspln1-3 50 wait length 16
		trigger tbflywheel1 stop	// Turn off flywheel
		globalaccum 4 set 0		// Flexible door 1 has stopped moving
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_end_01.wav volume 96
	}
}

tbdoor1-8
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-9 16
	}
}

tbdoor1-7
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-8 16
	}
}

tbdoor1-6
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-7 16
	}
}

tbdoor1-5
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-6 16
	}
}

tbdoor1-4
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-5 16
	}
}

tbdoor1-3
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-4 16
	}
}

tbdoor1-2
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-3 16
	}
}

tbdoor1-1
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor1-2 16
	}
}

// ===========================================================================================
// Garage Doors for Tank
// ===========================================================================================

tbdoor2_trigger1
{
	spawn
	{
		accum 3 set 0			// Initial state of lever. (0=down, 1=up)
	}
	trigger main
	{
		trigger tbdoor2_trigger1 up
		trigger tbdoor2_trigger1 down
	}

	trigger up
	{
		accum 3 abort_if_not_equal 0		// Lever up already ?
		globalaccum 5 abort_if_not_equal 0	// Flexible Door moving ?
		resetscript

		globalaccum 5 set 1			// Door is opening ...
		accum 3 set 1				// Lever is in up position
		trigger tbflywheel2 start			// Set flywheel moving
		trigger tbflywheel2 clockwise		// Start turning
		trigger tbflywheel2_sound wheel2_run
		trigger tbdoor2_lever1 up		// Move lever
		trigger tbdoor2-9 open			// Start moving all the door sections
	}

	trigger down
	{
		accum 3 abort_if_not_equal 1		// Lever down already ?
		globalaccum 5 abort_if_not_equal 0	// Flexible Door moving ?
		resetscript

		globalaccum 5 set 1			// Door is opening ...
		accum 3 set 0				// Lever is in up position
		trigger tbflywheel2 start		// Set flywheel moving
		trigger tbflywheel2 anticlockwise	// Start turning
		trigger tbflywheel2_sound wheel2_run
		trigger tbdoor2_lever1 down		// Move lever
		trigger tbdoor2-9 close			// Start moving all the door sections
	}
}

tbdoor2_lever1
{
	trigger down
	{
		gotomarker tbdoor2_lever1_downpos 16
		playsound sound/movers/switches/butn2.wav
	}
	trigger up
	{
		gotomarker tbdoor2_lever1_uppos 16
		playsound sound/movers/switches/switch.wav
	}
}

tbflywheel2_sound
{
	trigger wheel2_run
	{
		trigger tbflywheel2 sound_start
		wait 400
		trigger tbflywheel2 sound_run
	}
}

tbflywheel2
{
	spawn
	{
		accum 3 set 0			// Flywheel moving (0=No, 1=Yes)
	}

	trigger sound_start
	{
		stopsound
		playsound sound/movers/motors/motor_start_01.wav volume 127
	}

	trigger sound_run
	{
		playsound sound/movers/motors/motor_loop_01.wav looping volume 512
	}

	trigger sound_stop
	{
		stopsound
		playsound sound/movers/motors/motor_end_01.wav volume 127
	}

	trigger clockwise
	{
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 90 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 180 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 270 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 0 0 0 250 wait

		trigger tbflywheel2 clockwise
	}

	trigger anticlockwise
	{
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 270 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 180 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 90 0 0 250 wait
		accum 3 abort_if_not_equal 1	// Flywheel moving ?
		faceangles 0 0 0 250 wait

		trigger tbflywheel2 anticlockwise
	}

	trigger start
	{
		accum 3 set 1			// Start wheel moving
	}
	trigger stop
	{
		accum 3 set 0			// Stop wheel moving

		trigger self sound_stop
	}
}

tbdoor2-9
{
	spawn
	{
		wait 200
		trigger tbdoor2_trigger1 up
	}

	trigger open
	{
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_start_01.wav volume 96
		wait 50
		playsound sound/movers/misc/garage_door_loop_01.wav looping volume 512
		followpath 1 tbdrspln2-3 50 wait length 16
		followpath 1 tbdrspln2-4 50 wait length 16
		trigger tbflywheel2 stop	// Turn off flywheel
		globalaccum 5 set 0		// Flexible door 1 has stopped moving
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_end_01.wav volume 96
	}

	trigger close
	{
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_start_01.wav volume 96
		wait 50
		playsound sound/movers/misc/garage_door_loop_01.wav looping volume 512
		followpath 0 tbdrspln2-4 50 wait length 16
		followpath 0 tbdrspln2-3 50 wait length 16
		trigger tbflywheel2 stop	// Turn off flywheel
		globalaccum 5 set 0		// Flexible door 1 has stopped moving
		stopsound			// Kill all currently playing sounds belonging to this entity only
		playsound sound/movers/misc/garage_door_end_01.wav volume 96
	}
}

tbdoor2-8
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-9 16
	}
}

tbdoor2-7
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-8 16
	}
}

tbdoor2-6
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-7 16
	}
}

tbdoor2-5
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-6 16
	}
}

tbdoor2-4
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-5 16
	}
}

tbdoor2-3
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-4 16
	}
}

tbdoor2-2
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-3 16
	}
}

tbdoor2-1
{
	spawn
	{
		wait 100
		attatchtotrain tbdoor2-2 16
	}
}

// ===========================================================================================
// Tank destruction entities
// ===========================================================================================
// ----------------------------------------------------------------------------
// Water grate entrance on Allied side of map
// ----------------------------------------------------------------------------
tunnelgrate_solid
{
	spawn
	{
		wait 200
		setstate tunnelgrate_solid default
		setstate tunnelgrate_dmg invisible
	}

	trigger switch
	{
		// Some kind of UI pop-up to alert players
		wm_announce	"Allied team has breached the Tunnel Grate!"
		alertentity tunnelgrate_explo
		trigger hurt_tunnelgrateblast boom
		setstate tunnelgrate_solid invisible
		setstate tunnelgrate_dmg default
		alertentity tunnelgrate_rubble1
	}
}

hurt_tunnelgrateblast
{
	spawn
	{
		wait 200
		setstate hurt_tunnelgrateblast invisible
	}

	trigger boom
	{
		setstate hurt_tunnelgrateblast default
		wait 100
		remove
	}
}

// ----------------------------------------------------------------------------
// Cave door on Allied side of map
// ----------------------------------------------------------------------------
cavedoor_solid
{
	spawn
	{
		wait 200
		setstate cavedoor_solid default
		setstate cavedoor_dmg invisible
	}

	trigger switch
	{
		alertentity cavedoor_explo
		trigger hurt_cavedoorblast boom
		setstate cavedoor_solid invisible
		setstate cavedoor_dmg default
		alertentity cavedoor_rubble1
	}
}

hurt_cavedoorblast
{
	spawn
	{
		wait 200
		setstate hurt_cavedoorblast invisible
	}

	trigger boom
	{
		setstate hurt_cavedoorblast default
		wait 100
		remove
	}
}

// ----------------------------------------------------------------------------
// Front gate of axis complex
// ----------------------------------------------------------------------------
basedoor_solid
{
	spawn
	{
		wait 200
		setstate basedoor_solid default
		setstate basedoor_dmg invisible
	}

	trigger switch
	{
		alertentity basedoor_explo
		trigger hurt_basedoorblast boom
		setstate basedoor_solid invisible
		setstate basedoor_dmg default
		alertentity basedoor_rubble1
	}
}

hurt_basedoorblast
{
	spawn
	{
		wait 200
		setstate hurt_basedoorblast invisible
	}

	trigger boom
	{
		setstate hurt_basedoorblast default
		wait 100
		remove
	}
}

// ----------------------------------------------------------------------------
// Side wall of axis complex
// ----------------------------------------------------------------------------
basewall_solid
{
	spawn
	{
		wait 200
		setstate basewall_solid default
		setstate basewall_trighurt default
	}

	trigger switch
	{
		alertentity basewall_explo
		trigger hurt_basewallblast boom
		setstate basewall_solid invisible
		alertentity basewall_rubble1
		setstate basewall_trighurt invisible
	}
}

hurt_basewallblast
{
	spawn
	{
		wait 200
		setstate hurt_basewallblast invisible
	}

	trigger boom
	{
		setstate hurt_basewallblast default
		wait 100
		remove
	}
}

What happened? The main problem was the spawnflags (set it to 8), so now it is constructible as well as destructible (rinse & repeat). I also optimized it a little, but not much. Just removed the decoy script_mover thingy aka “fbridge2” and used faceangles command instead.

Have fun and use at own will :slight_smile:


(ailmanki) #6

Yep add faceangles and set spawnfags to 8 for fdbridge…
I like the scaled version of the bridge… fits better, and the constructible box is almost same…


(acQu) #7

[QUOTE=ailmanki;443645]Yep add faceangles and set spawnfags to 8 for fdbridge…
I like the scaled version of the bridge… fits better, and the constructible box is almost same…[/QUOTE]

Yup, to make it perfect i guess the materials need to be further moddified (make it solid and add something to the flag). Other than that, yes main problem was the spawnflags thingy. I first wondered “WTF why isn’t it working, almost everything is here” … was fun nevertheless :slight_smile:


(Harle) #8

Thanks!

Test tomorrow as my headache is killing me.


(Harle) #9

Beside the Info “You are near /SS/StinVec’s Assault Bridge” is missplaced it’s working really good. Thank’s for fixing the script.


(StinVec) #10

I just happened to randomly search for my game alias in Google and saw this recent thread. I’m very pleased to see interest in ET is still strong, let alone also seeing interest in scripts and further modifying the game.

I had actually finished the script completely shortly afterward in early 2008, though my submitting the finished script to various sites was primarily met with it either being ‘accepted’ but not being listed under their mods no matter how many times I submitted it, or it was just flat out rejected by whoever was approving mod submissions. I ended up just sending the script to people who had requested it when I finished it, or manually inserted the finished script into existing mapscripts for those that needed the extra hand implementing it.

I love how you worked out the issues that were still present in those versions of the script as I, too, had many WTF moments while figuring it out.

I’d love to see your finished product running on your server if you’re currently using it.
Are there any questions I can answer that anyone may still have about the script or my other mods?

Take care all. Happy gaming.

-StinVec


(ailmanki) #11

Oh yeah! I remember visiting squill-squad forums where you posted your scripts StinVec, would you mind sending me all scripts/mods? Then I can upload them to wolffiles.de.
I think I have the bridge active on Bunker 2, but it has bots mostly, since not many humans join it. Anyway, if you join it, you can use the vote menu to toggle bots, and load any map.


(Dragonji) #12

I’ve got an offtopic question, are you able to download anything from FileFront/GameFront? Every single time I try to download anything I get:

Firefox can’t find the file at <very_long_link_here>.

[ul]
[li]Check the file name for capitalization or other typing errors.[/li]> [li]Check to see if the file was moved, renamed or deleted.[/li]> [/ul]


(Micha) #13

Yes downloaded the file from your link.


(Dragonji) #14

Weird, is it only me? Tried using Firefox, IE and even Opera, still couldn’t download anything.

LOL, it seems Poland is banned from GameFront…


(Mateos) #15

No, they blocked connection for the countries downloading too much or something… It is also blocked if you’re from France. There’s a list somewhere :slight_smile:


(spidysense) #16

Off topic //

Can you please add fueldump on your server with that map script once someone shares that script here?

// Ooops Sorry.


(Micha) #17

Uploaded it here but I needed to remove the picture out of the pack (size problem).


(Sampogi) #18

i played this map with that assault bridge but also noticed that allies cp spawn is missing? can anyone edit the script with that allies cp spawn? appreciate it. thanks


(acQu) #19

I think there is such a script somewhere already, which adds allies cp spawn.

P.S. is it this one? http://forums.warchest.com/showthread.php/11871-NEW-Fueldump-ETpro-map-script I don’t seem to find it quickly, the links are dead. If you have this script, then someone might merge it with StinVec’s script for you :slight_smile:


(Mateos) #20

If you want to be sure to have these spawns, take some recent NQ, the custom fueldump.script inside has them; Then copy/paste the spawn points from the top of the script to the one with the bridge thingy :slight_smile: