the cutting room mirror

Commented Code

This is a sub-page of Hulk (Windows, Xbox, PlayStation 2, GameCube).

To do:
Finish the page. There's still many undocumented levels here

There's many commented and so unused lines of code. Below you can see them and their locations. Also some additional dev comments can be found here.

Init.lua#

--function gfm_GetDifficulty()
--    return DIFFICULTY_NORMAL
--end

--function gfm_SetDifficulty()
--end

-- Set up combo feedback
-- eurostile extended bold     
-- Explanation:  up to '3' is BLANK, 3-5 is COMBO_1, etc.
--      sm_AddComboGrade( 3, "BLANK" )
--      sm_AddComboGrade( 5, "TBS_COMBO_1" )    -- ANGRY!

--  write( "get_level() returning " .. whichlevel .. "\n" )

--    if difficulty == nil then
--        write( "DIFFICULTY == nil !\n" )
--    else
--       write( "Difficulty was okay.  Value of " .. difficulty .. "\n" )
--    end

--    write( "Name = " .. name .. "   Template = " .. template .. "\n" )

--debug ("[OMGc] " ..  name .. " says mm: " .. mm_chance .. " hr: " .. hr_chance)

--debug ("[OMGc] " ..  name .. " new system: Major Health")

--debug ("[OMGc] " ..  name .. " new system:  Minor Health")

--debug ("[OMGc] " ..  name .. " new system:  Major Rage")

--debug ("[OMGc] " ..  name .. " new system:  Minor Rage")

--            sh_StoreGlobal( ind, val )

--  fmvm_PlayMovie( fmvWithPath, 2000 )

----
--
--  NOT CURRENTLY BEING USED!  
--  I created this function when I thought that the occupation agent
--  invoked the path script *every* frame.  In fact, it only calls the
--  path script when it reaches a way point.  Oh well.  At least we
--  used first-class functions for a brief moment.
--                 --kmc
--  
--
--  Generic function to call for paths. 
--  Designers, you don't want to look at this.  Only use it.  :)
--
--  The second parameter (waypoint_function) is a function.  The intent is that this
--  function gets called whenever we're at a waypoint.  It takes "actor" (string) and way point number
--  as parameters, and doesn't have a return value.
--
--  Here's a sample function that you could pass, for a path with 3 way points:
--
--      function waypoint_function( actor, waypoint )
--          if waypoint == 0 then
--              write( "Actor <" .. actor .. "> has reached waypoint 0.\n" )
--              am_AdvanceWayPoint( actor )
--
--          elseif waypoint == 1 then
--              write( "Actor <" .. actor .. "> has reached waypoint 1.\n" )
--              am_AdvanceWayPoint( actor )
--
--          elseif waypoint == 2 then
--              write( "Actor <" .. actor .. "> has reached the end of the path.\n" )
--              am_Unleash( actor )
--
--          else
--              -- what the?!  There are only 2 way points in this path... ?
--              error( "C1L2R2_spwnpat_u2:  invalid path.\n" )
--          end
--      end
--

--          if npc_collectable_slider ~= 0 then
--            npc_collectable_assign_banner(name,template)
--       end


--
-- Controller button mapping initialization for the Keyboard
--
-- Default GAME buttons and axes are used by the frontend
-- Default SIM buttons and axes are used during gameplay

-- Game button maps
-- Format is: controller type,
--            controller button (i.e, function),
--            DirectInput button name,
--            input point number
--
-- A single game button (function) may have more than one input point (key mapped to
-- the function). The number of input points is not configurable via init.lua

--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_A, "Enter", 0)
--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_A, "Space", 1)
--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_B, "Esc", 0)
--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_Y, "Delete", 0)
--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_BACK, "Esc", 0)
--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_START, "Enter", 0)
--com_SetDefaultGameButtonMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_BUTTON_START, "Space", 1)

-- Game axis maps
-- Format is: controller type,
--            axis type,
--            axis index
--            input point number
--            DirectInput button name,
--
-- A single game axis has 3 input points.
-- The number of input points is not configurable via init.lua

--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_PRIMARY, CONTROLLER_AXIS_INDEX_X, 0, "Right")
--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_PRIMARY, CONTROLLER_AXIS_INDEX_X, 2, "Left")
--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_PRIMARY, CONTROLLER_AXIS_INDEX_Y, 0, "Up")
--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_PRIMARY, CONTROLLER_AXIS_INDEX_Y, 2, "Down")

--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_SECONDARY, CONTROLLER_AXIS_INDEX_X, 0, "Num 6")
--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_SECONDARY, CONTROLLER_AXIS_INDEX_X, 2, "Num 4")
--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_SECONDARY, CONTROLLER_AXIS_INDEX_Y, 0, "Num 8")
--com_SetDefaultGameAxisMap(CONTROLLER_KEYBOARD, GAME_CONTROLLER_AXIS_SECONDARY, CONTROLLER_AXIS_INDEX_Y, 2, "Num 2")

-- Sim button maps
-- Format is: controller type,
--            controller button (i.e, function),
--            DirectInput button name,
--            input point number
--
-- A single game button (function) may have more than one input point (key mapped to
-- the function). The number of input points is not configurable via init.lua

--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_PUNCH, "Num 4", 0)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_GAMMA, "Num 8", 0)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_ACTION, "Num 6", 0)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_JUMP, "Space", 0)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_JUMP, "Ctrl", 1)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_FREELOOK, "Right Shift", 0)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_FREELOOK, "Num Enter", 1)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_TARGET, "Num 0", 0)
--com_SetDefaultSimButtonMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_BUTTON_START, "Esc", 0)

-- Sim axis maps
-- Format is: controller type,
--            axis type,
--            axis index
--            input point number
--            DirectInput button name,
--
-- A single game axis has 3 input points.
-- The number of input points is not configurable via init.lua

--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_MOVEMENT, CONTROLLER_AXIS_INDEX_X, 0, "D")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_MOVEMENT, CONTROLLER_AXIS_INDEX_X, 2, "A")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_MOVEMENT, CONTROLLER_AXIS_INDEX_Y, 0, "W")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_MOVEMENT, CONTROLLER_AXIS_INDEX_Y, 2, "S")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_CHANGETARGET, CONTROLLER_AXIS_INDEX_X, 0, "Right")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_CHANGETARGET, CONTROLLER_AXIS_INDEX_X, 2, "Left")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_CHANGETARGET, CONTROLLER_AXIS_INDEX_Y, 0, "Up")
--com_SetDefaultSimAxisMap(CONTROLLER_KEYBOARD, SIM_CONTROLLER_AXIS_CHANGETARGET, CONTROLLER_AXIS_INDEX_Y, 2, "Down")

-- pass in 1 to reset once only upon first launching the game
-- DO NOT pass in 0 unless you REALLY really want this done each time
-- init.lua is read
-- This actually sets the controller mappings to be the default mappings


-- Set Level Load Times
-- SetLevelLoadTime(ps2, xbox, gamecube, other)  (Just kidding Katrina! :)
-- Tune this later

-- SetLevelLoadTime("C0L1", 12.9, 12.9, 12.9, 12.9)
-- SetLevelLoadTime("C1L1", 10.0, 10.0, 10.0, 10.0)
-- SetLevelLoadTime("C1L2", 13.1, 13.1, 13.1, 13.1)
-- SetLevelLoadTime("C1L3", 14.5, 14.5, 14.5, 14.5)
-- SetLevelLoadTime("C1L4", 14.7, 14.7, 14.7, 14.7)
-- SetLevelLoadTime("C1L5", 11.2, 11.2, 11.2, 11.2)
-- SetLevelLoadTime("C2L1", 11.3, 11.3, 11.3, 11.3)
-- SetLevelLoadTime("C2L2", 15.9, 15.9, 15.9, 15.9)
-- SetLevelLoadTime("C2L4", 14.5, 14.5, 14.5, 14.5)
-- SetLevelLoadTime("C2L5", 14.1, 14.1, 14.1, 14.1)
-- SetLevelLoadTime("C3L1", 12.6, 12.6, 12.6, 12.6)
-- SetLevelLoadTime("C3L2", 15.3, 15.3, 15.3, 15.3)
-- SetLevelLoadTime("C3L3", 13.8, 13.8, 13.8, 13.8)
-- SetLevelLoadTime("C3L4", 11.0, 11.0, 11.0, 11.0)
-- SetLevelLoadTime("C4L1", 12.0, 12.0, 12.0, 12.0)
-- SetLevelLoadTime("C4L2", 16.2, 16.2, 16.2, 16.2)
-- SetLevelLoadTime("C4L3", 12.9, 12.9, 12.9, 12.9)
-- SetLevelLoadTime("C4L4", 12.6, 12.6, 12.6, 12.6)
-- SetLevelLoadTime("C5L1", 12.3, 12.3, 12.3, 12.3)
-- SetLevelLoadTime("C5L2", 13.1, 13.1, 13.1, 13.1)
-- SetLevelLoadTime("C5L3", 13.1, 13.1, 13.1, 13.1)
-- SetLevelLoadTime("C5L4", 13.1, 13.1, 13.1, 13.1)
-- SetLevelLoadTime("C9L1", 12.8, 12.8, 12.8, 12.8)
-- SetLevelLoadTime("C9L2", 12.4, 12.4, 12.4, 12.4)
-- SetLevelLoadTime("C9L3", 12.1, 12.1, 12.1, 12.1)
-- SetLevelLoadTime("C9L4", 12.0, 12.0, 12.0, 12.0)
-- SetLevelLoadTime("C9L5", 14.2, 14.2, 14.2, 14.2)

-- spm_SetDestructionEffectName(class, materialEnum, effectName)
-- class: 0 == club, 1 == small, 2 == large, 3 == heavy
--spm_SetDestructionEffectName(0, -1, "hulk_knockdownground_fx_grp")

Art/Levels/C0L1 (INNER TORMENT)#

C0L1.lua#

--LoadP3DFile("art/levels/C0L1/C0L1.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C0L1/C0L1.rdl");

C0L1_path.lua#

--    am_SetPatrolParams(actor, 0.75, 0, 8)

-- [tinman] this was commented out, causing helicopters to have a tolerance of only 1.0
-- am_SetPatrolParams(actor, 0.75, 0, 8)

C0L1_scenario.lua#

--if team == "

-- [tinman] added this line, otherwise helicopters would have a tolerance of only 1.0
-- am_SetPatrolParams(name, 0.75, 0, 8.0);

--write ("Wave 2 Landing dialogue played\n")

--write ("Wave 4 Landing dialogue played\n")

--write ("Wave 5 Landing dialogue played\n")

--write ("Wave 6 Landing dialogue played\n")

--write ("Wave 7 Landing dialogue played\n")

--write ("Wave 8 Landing dialogue played\n")

--write ("Wave 9 Landing dialogue played\n")

--write ("Wave 10 Landing random dialogue played\n")

-- Killing SmartProps when in Avernus volume
--spm_SetYCheck( -2 )

--write ("Hulk initial Encounter music playing")

--write (" FMV helicopter created\n")
--am_SetActorOrientation("C0L1R1_u999_g1", 0)

--write ("Initial dialogue played - SolSolVeh_15\n")

--write ("Initial dialogue played - SolHulkCh1_049\n")

--- Hulk to roar in FMV
--if sh_GetNumber( "FMVDialogue" ) == 5 then
--  am_PlayFightNode( "hulk", "/globalBank/hulk/opening/rage_mode/rage_plain" )
--  sh_DoString("FMVDialogue = 6" )
--end

-- Kill FMV helicopter
--if tvm_IsActorInTriggerVolume("C0L1R1_u999_g1", "C0L1R1_tv_fmv_tr1") then
--      am_KillActorByName("C0L1R1_u999_g1")
--      tvm_DisableTriggerVolume ("C0L1R1_tv_fmv_tr1")
--end

-- Detecting first shocktroop
--if sh_GetNumber('shocktroopcheck') == 1 and sh_GetNumber('Disablevolume') == 0 then
--  DetectFirstShockTroop()
--end

--- Intro of Assaulters old (camera 1)
--cm_SetScriptCamBlending( int inType, int inBlendType, float inLength, int outType, int outBlendType, int outLength, bool ignoreDest )

--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)
--cm_SetScriptCamStatic( 6.8, 288.8, -8.5, 1.7, -17.6, 0 )

-- cm_SwitchToScriptCameraAll( doZoom, doShake, doPan, doPitch, doFova, doTarget, float timeDilation )

-- cm_SwitchToScriptCameraP( doZoom, doShake, doPan, doPitch )
--cm_SwitchToScriptCamera(nil,nil, 1)

--- Intro of Assaulters (camera 1)
--cm_SetScriptCamBlending( int inType, int inBlendType, float inLength, int outType, int outBlendType, int outLength, bool ignoreDest )

--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)
--cm_SetScriptCamStatic( 0.0, 16.8, -9.1, 1.6, -13.3, 0 )

-- cm_SwitchToScriptCameraAll( doZoom, doShake, doPan, doPitch, doFova, doTarget, float timeDilation )

-- cm_SwitchToScriptCameraP( doZoom, doShake, doPan, doPitch )
--cm_SwitchToScriptCamera(nil,nil, 1)

--- Intro of Assaulters (camera 1)
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--- Spawn from Heli Camera 1
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--cm_SetScriptCamStatic( 77, 102.6, 21.7, 5.1, 1.7, 0  )

--cm_SetScriptCamShake( .5, 3, .15, .15 )
--cm_SetScriptCamPan( 295, 420 )

--cm_SetScriptCamPanTiming( 1, 2.0 )

--- Intro of helicopters (camera 1)
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--- Show two Helicopters
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--cm_SetScriptCamShake( .5, 3, .15, .15 )
--cm_SetScriptCamPan( 295, 420 )

--cm_SetScriptCamPanTiming( 1, 2.0 )

-- Intro of Shocktrooper
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--cm_SetScriptCamStatic( -11.6, 247.3 , 29.5, 0.4, -1.8, 0  )

--cm_SetScriptCamShake( .5, 3, .15, .15 )
--cm_SetScriptCamPan( 295, 420 )

--cm_SetScriptCamPanTiming( 1, 2.0 )

-- Intro of Shocktrooper
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--cm_SetScriptCamStatic( -11.6, 247.3 , 29.5, 0.4, -1.8, 0  )

--cm_SetScriptCamShake( .5, 3, .15, .15 )
--cm_SetScriptCamPan( 295, 420 )

--cm_SetScriptCamPanTiming( 1, 2.0 )

--- Intro of Assaulter
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--cm_SwitchToScriptCamera( nil,nil, nil)

--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--cm_SetScriptCamPan( -90, 90 )

--cm_SwitchToScriptCamera( nil,nil, nil)

--- Objects to throw
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--spm_SpawnSmartPropV( "C0L1R1_sp_largecrate2_101", l_crate2_l2_crate_ex, pos)
--spm_SpawnSmartPropV( "C0L1R1_sp_largecrate2_102", l_crate2_l2_crate_ex, pos)

--- Gass Pump Dramatic Camera 
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--- Propane Tank Dramatic Camera
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

-- Helicopter g1 dies
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

-- Helicopter g2 dies
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--- Club Task Camera
--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--- Illusion of first shocktroop
--if enemycount > 8 and illusion == nil then
--  illusion = 1
--  FreeEnemySlots(1, defaultexptime)
--  generate_wave("C0L1R1","u70","shocktroop","C0L1R1", 1)
--  am_PlayFightNode( "C0L1R1_u70_g1", "/globalBank/soldier/spawn_heli_rope" )
--  sh_DoString( "playcamera = 101" )   
--end

--and sm_IsCharacterHurt()

--requiredAction = requiredAction + 1

--write ("required action = " .. requiredAction .. "\n")

--if am_IsFightNodePlaying('hulk', '/globalBank/hulk/opening/bare/hook_l/hook_l_charge/hook_l_release/hook_l_release_1') then

--changed by erich to Press BUTTON_USE to pick up and wield objects.
--debug("Press BUTTON_USE to pick up and wield objects.")

--hud_Message("TBS_C0L1_10")

--debug("You can PICK UP many objects\n in the environment.")
--hint changed by erich 13/3/2003

-- spm_SpawnSmartPropDirV( "Wave" .. waves .. "SP"..random(1,100000), propBaseName, pos, orient)
-- spm_SpawnSmartPropDirV( wm_GetUniqueName(), propBaseName, pos, orientation )

--print('spm_SpawnSmartPropV( "Task17Club", "club_pipe1_club_pipe1", t17prop, cluborient)')

--hud_Message("TBS_CHALLENGE1_Body1")
--hud_Message("TBS_CHPT_GEN_17")
--debug("Try to defeat as many enemies as possible.\n")
--changed to "Destroy." by erich 11/3/2003
--debug("Destroy.\n")   

-- if sh_GetNumber("messagedelay") == 30 then

--hud_ClearMessages()
--nism_LetterBoxOn()
--hud_ShowOverlays(nil)

--        if sh_GetNumber("messagedelay") == 31 then
  --            if spm_GetSmartPropState("C0L1_tank_1") == 8 and moretanksonce == 0 then
                
    --                    local pos = tvm_GetLocatorPosition( "C0L1R1_tankdrop_2" )
      --                  spm_SetSmartPropPosition("C0L1_tank_2",pos)
        --                GeneratePropActor( "tank" , "C0L1_tank_2", "", "C0L1_tankpath")

          --              local pos = tvm_GetLocatorPosition( "C0L1R1_tankdrop_3" )
            --            spm_SetSmartPropPosition("C0L1_tank_3",pos)
             --           GeneratePropActor( "tank" , "C0L1_tank_3", "", "C0L1_tankpath")

--                        moretanksonce = 1

  --                      sh_DoString("playcamera = 666.666")

    --          end
     --         if spm_GetSmartPropState("C0L1_tank_1") == 9 and spm_GetSmartPropState("C0L1_tank_2") == 9 and spm_GetSmartPropState("C0L1_tank_3") == 9 then
      --          sh_DoString("messagedelay = 32")  
       --       end

--       end

--if sh_GetNumber("messagedelay") == 30
--and sh_GetNumber('successwait') == 1 then

--OMIT      hud_Message("You can strike airborne enemies.  \nTry pressing BUTTON_ATTACK, hold BUTTON_ATTACK, \nthen strike the enemy as they fall.")
--OMIT      hud_Message("Pressing BUTTON_ATTACK and then using \nthe BUTTON_GAMMA will produce different moves.")
--OMIT      hud_Message("You can do multiple attacks\n from a jump.  Try BUTTON_JUMP, BUTTON_ATTACK.")
--OMIT      hud_Message("If you hold BUTTON_GAMMA you can charge \nup your Sonic Clap.  A charged sonic \nclap is more effective, but expends some RAGE.")
--OMIT      hud_Message("Use the RIGHT_STICK to re-target if required.")

--sh_DoString( "playcamera = 1" )

--if enemycount == 2 and appearance1 == 0 then
--  appearance1 = 1
--  sh_DoString( "playcamera = 2" )
--end

--if enemycount == 6 and appearance2 == 0 then
--  appearance2 = 1 
--  sh_DoString("playcamera = 102" )
--end

--if enemycount == 13 and appearance3 == 0 then
--  appearance3 = 1 
--  sh_DoString("playcamera = 103" )
--end

--if (spm_GetSmartPropState("C0L1R1_sp_propanetank_2") > 2 or spm_GetSmartPropState("C0L1R1_sp_propanetank_1") > 2)
--and tvm_IsActorInTriggerVolume( "C0L1R1_u9_g1", "C0L1R1_tv_tr2" )
--and helicopterappearance3 == 0 then
--  helicopterappearance3 = 1
--  spm_SetSmartPropState("C0L1R1_u9_g1", 2)
--end

--if spm_GetSmartPropState("C0L1R1_u9_g1") > 1 and heliappearance1 == 0 then
--  heliappearance1 = 1
--  sh_DoString( "playcamera = 902" )
--end

--if spm_GetSmartPropState("C0L1R1_u9_g2") > 1 and heliappearance2 == 0  then
--  heliappearance2 = 1
--  sh_DoString( "playcamera = 903" )
--end

--    if seconds >= 240 then
 --       gameplaying = 0 
  --      write("--4 MINUTE HARD LIMIT\n")
  --  end

--fmvm_SetRumbleEvent(4.00, 30,30,4.65)

--sm_SetMissionState( MISSION_SUCCESS )

Art/Levels/C1L1 (DESPERATE MEASURES)#

C1L1_lua#

--LoadP3DFile("art/levels/C1L1/C1L1.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C1L1/C1L1.rdl");

C1L1_path.lua#

--am_PlayFightNode( actor, "/globalBank/banner/mission_fail/surrender/surrender" )

C1L1_scenario.lua#

--        Wait_PlayMovieNoFadeIn( "SC1_3" )

--cm_SetScriptCamPan( 286.6, 194 )
--cm_SetScriptCamPanTiming( 3, 3 )
--cm_SetScriptCamPanEaseInOut( 1, 1 )
--cm_SetScriptCamPanBias( 1 )

--cm_SetScriptCamBlending( 2, 3, 1.0, nil )

--cm_SetScriptCamZoom( 0, 12 )
--cm_SetScriptCamZoomTiming( 1, 2 )

--if sm_GetCheckpoint() < 2 then
    --sm_SetCheckpoint (2)
--end

--char_SetNPCParameter("C1L1R4_u1_g1", "SightFOV", 120)

--findplayer_wave ("C1L1R4", "u1", 1)

--snd_PlayUserDialogue( "BanGame014a" )

--snd_PlayUserDialogue( "BanGame008a" ) 

--spm_SetSmartPropState("C1L1R4_Security_Camera_2_1",1)
--spm_SetSmartPropState("C1L1R4_Security_Camera_2_2",1)

--write ("x: " .. pos.x .. "y: " ..pos.y .. "z: " .. pos.z .. "\n")

--tvm_EnableTriggerVolume ("C1L1R7_tv_elevator")

C1L1_tv.lua#

--        hud_Message("TBS_PUZZLE_MATCH_FAILED")

--snd_PlayActorDialogue( "SolBanCh1_069", "C1L1R5_u1_g1")

Art/Levels/C1L2 (BETRAYAL)#

C1L2.lua#

--LoadP3DFile("art/levels/C1L2/C1L2.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C1L2/C1L2.rdl");

C1L2_scenario.lua#

--spm_SetSmartPropStaticArea("C1L2_debris_5", 2)
--spm_SetSmartPropStaticArea("C1L2_debris_6", 2)

--spm_SetSmartPropStaticArea("C1L2_debris_9", 6)

--spm_SetSmartPropStaticArea("C1L2_debris_12", 7)

--spm_SetSmartPropStaticArea("C1L2_debris_13", 8)

--spm_SetSmartPropStaticArea("C1L2_debris_16", 9)

--spm_SetSmartPropStaticArea("C1L2_debris_19", 10)

--snd_TriggerMusic( "Hulk_Enter_Level_C1L2" )

--spm_SetSmartPropState("C1L2R8_sp_H_nt_WindowPane_2",3)

--total_spawns[roomprefix] = total_spawns[roomprefix] + generate_wave_pathed ( "C1L2R4", "u2", assornotass(), roomprefix,1,1)

--hud_Message("TBS_CHPT_GEN_24")

--total_spawns[roomprefix] = total_spawns[roomprefix] + generate_wave_door(roomprefix,"u4",assornotass(),roomprefix, 2,"C1L2R17_door_1",total_spawns[roomprefix])

Art/Levels/C1L3 (BENEATH THE CITY)#

C1L3.lua#

--LoadP3DFile("art/levels/C1L3/C1L3.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C1L3/C1L3.rdl");

C1L3_scenario.lua#

--spm_SetSmartPropState ( "C1L3R8_door_1", 3 )

--spm_SetSmartPropState ( "C1L3R9_door_1", 3 )

--snd_TriggerMusic( "Hulk_Enter_Level_C1L3" )

--cm_SetScriptCamPitchEaseInOut( 1, 0 )
--cm_SetScriptCamPitchBias( 1 )

-- cm_SetScriptCamShake( 0, 2, higher number higher waves, lower number - more vibration)

--cm_SetScriptCamBlending(2,4,1,1,1,1,1)
--cm_SetScriptCamStatic( 9, 152, 19, -3, -70, 0 ) 
--cm_SetScriptCamShot( 85, 3, nil )
        
--cm_SetScriptCamZoom( 5, 1 )
--cm_SetScriptCamZoomTiming( 0, 3 )
--cm_SetScriptCamZoomEaseInOut( 1, 1 )
--cm_SetScriptCamZoomBias( .8 )

--cm_SetScriptCamFova( 90, 85 )
--cm_SetScriptCamFovaTiming( 0, 3 )
--cm_SetScriptCamFovaEaseInOut( 1, 1 )
--cm_SetScriptCamFovaBias( .8 )

--cm_SwitchToScriptCameraAll( 1, nil, nil, nil, 1, nil, .9 )

--cm_SetScriptCamPanEaseInOut( 1, 1 )
--cm_SetScriptCamPanBias( .8 )

--cm_SetScriptCamStatic( 10.0, 241.9, 51.7, 1.7, 275.2, 4 )

--                hud_Message("TBS_C1L3_02")

--          if spm_GetSmartPropState("C1L3R4_medgate_2") ~= 6 then
--              if am_FindActorIndex("C1L3R4_u2_g1") == -1 then
--                  total_spawns[roomprefix] = total_spawns[roomprefix] + generate_solo ( roomprefix, "u2", "gamma_dog", roomprefix, 1)
--              end
--              if am_FindActorIndex("C1L3R4_u2_g2") == -1 then
--                  total_spawns[roomprefix] = total_spawns[roomprefix] + generate_solo ( roomprefix, "u2", "gamma_dog", roomprefix, 2)
--              end
--          end

--            if spm_GetSmartPropState("C1L3R9_door_1") == 6 and sm_GetCheckpoint() < 2 then
 --               sm_SetCheckpoint (2)
  --              checkpointsetstates()
   --             ctm_UnloadCharacterTemplate("ravage")
    --            wsm_RemoveFromInventorySection("ravage_color.bmp", "level")
     --           wsm_RemoveFromInventorySection("ravage_head", "level")
      --          wsm_RemoveFromInventorySection("ravage_body", "level")
       --         wsm_RemoveFromInventorySection("ravage_skeleton", "level")
        --        wsm_RemoveFromInventorySection("ravage_shadow", "level")
         --       wsm_RemoveFromInventorySection("ravage", "level")

--                hud_Message("TBS_PUNCHBACK")
 --           end

--am_PlayFightNode( name, "/globalBank/soldier/gethit/force_on_ground" )

--total_spawns[roomprefix] = total_spawns[roomprefix] + generate_wave(roomprefix,"u2","assaulter",roomprefix, 2)
--wave_defend_location("C1L3R10_defend_1",roomprefix,"u2",4,6,60)

--total_spawns[roomprefix] = total_spawns[roomprefix] + generate_wave_pathed(roomprefix,"u5","shocktroop",roomprefix, 2,1)

--snd_PlayUserDialogue( "GHulkDes_08" )

C1L3_soak.lua#

--  spm_SetIndestructable( "C1L3R13_door_1", nil )
--  spm_SetSmartPropState("C1L3R13_door_1",2)
--  spm_SetSmartPropState("C1L3R14_boom",3)

Art/Levels/C1L4 (END OF THE LINE)#

C1L4.lua#

--LoadP3DFile("art/levels/C1L4/C1L4.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C1L4/C1L4.rdl");

C1L4_eg.lua#

Oh, looks like Half-Life could be spawned on this level already...

----
-- Spawn Halflife (C1L4R8)
----

--function C1L4R8_eg_HalfLife()
--   local name =      "half_life"
--    local template =  "half_life"
--    local locator =   "C1L4R8_eg_half_life"
--    local leashed =     nil
--    local team =      "global"
--    local path =      "none"

--    GenerateActor( template, locator, team, path, leashed, name )
--end

-- End Game

C1L4_path.lua#

-- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)

-- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)

-- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)

--timeelapsed = 0

--  if message <30 then
--      message = message + 1
--  end

--  if message > 29 then
--      write ( actor .. " says I am on " .. waypoint .. " of " .. total_waypoints .. " and spawnnow : " .. spawnnow .."\n")
--      write ("---heliwait: "..heliwait.."\n")
--      write ("---helimove: "..helimove.."\n")
--  message = 0
--  end

--if message <30 then
--  message = message + 1
--end

--if message > 29 then
--  write ( actor .. " says I am on " .. waypoint .. " of " .. total_waypoints .. " and spawnnow : " .. spawnnow .."\n")
--  write ("---heliwait: "..heliwait.."\n")
--  write ("---helimove: "..helimove.."\n")
--  message = 0
--end

-- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)

--timeelapsed = 0

--write ("--- rm1 heli on SPWNPAT\n")

--write ("--- rm1 heli will be on SPWN - enemies \n")

--write ("--- rm1 heli on SPWN - enemies\n")

--write ("--- rm1 heli will be on PATROLPATH\n")

--function C1L4R4_spwn_u9_g1 (actor)
    -- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)
--  am_SetPatrolParams(actor, 1.0, 0, 8.0)
--  helicopterspawn ( actor, "C1L4R4_patrolpat_u9_g1" )
--  am_SetPatrolParams(actor, 1.0, 0, 8.0)
--end

--write ("--- "..actor.." is on C1L4R8_spwnpat_u91_g1\n")

--write ("--- "..actor.." is on C1L4R8_spwn_u91_g1\n")

C1L4_tv.lua#

--write ("-- "..actor.." health in pit is "..newhealth.."\n")

C1L4_scenario.lua#

--function runawaysoldiername ()

--  local runawaysoldierlist = {}
--  local runawaysoldiernumbers = 0

--  for i = 0, (am_GetEnemyCount()-1) do
--      runawayname = am_GetEnemyName( i )
--      if not am_IsActorUsingTemplate (runawayname, "gamma_dog") then
--          runawaysoldiernumbers = runawaysoldiernumbers + 1
--          runawaysoldierlist[runawaysoldiernumbers] = runawayname
--      end
--  end

--  if runawaysoldiernumbers == 0 then
--      return "none"
--  else
--      pickone = random (1,runawaysoldiernumbers)
--      return runawaysoldierlist[pickone]
--  end

--snd_TriggerMusic( "Hulk_Enter_Level_C1L4" )

--musicstate = 1 - breathing room 
--musicstate = 2 - combat
--if am_GetEnemyCount() < 5 and am_GetEnemyCount() > 2 and musicstate ~= 1 then 
--      snd_TriggerMusic( "Hulk_Winning" )
--      musicstate = 1 

--cm_SetScriptCamStatic(pitch, heading, x-coord, y-coord, z-coord, distance)

--if playcamera == 8 then
--  playmission = 0
--end

--sh_DoString("playcamera = 1.3")

-- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)

--write ("Wharf Door coming down\n")

--write ("-- shockershielders entry "..beer.."\n")

--write ("u2 defending defend 1\n")
--total_spawns[roomprefix] = total_spawns[roomprefix] + generate_wave_pathed(roomprefix,"u5","shockshielder",roomprefix, 1,1)

--wave_defend_location ("C1L4R1_defend_1", roomprefix, "u5",1, 2, 10)
--write ("u5 defending defend 1\n")

--write ("\n R1U9 Helicopter Reinforcements coming \n")

--wave_defend_location ("C1L4R1_defend_0", roomprefix, "u6",3, 2, 3)

--write ("-- shockershielders needed "..shockshieldersneeded.."\n")
--write ("-- ec: "..am_GetEnemyCount().."\n")

--write ("-- shockershielders existing "..npctype.."\n")

--write ("-- rm2tenguys needed "..rm2tenguys.."\n")

-- wave_defend_location ( locator, prefix, unit, number, minrange, maxrange )

--write ("waves "..waves.."\n")

--if rm1waves > 2 and rm1waves < 5 then

--if sh_GetNumber ("rm4npcdoor1") == 2 then
--end

--if spm_GetSmartPropState("C1L4R1_sp_train_2") > 2 then
--end

--write ("Testing1 "..name.."\n")

--write (name.." shockshielder defending"..rm1defend.."\n")

--write ("room 2 init\n")

--write ("-- shockershielders existing "..npctype.."\n")
--write ("-- shockershielders needed "..shockshieldersneeded.."\n")
--if shockshieldersneeded > 0 then
--end

--dia_shockshielder ( shieldername ())

--write ("-- testing math: 10 - " .. shockshieldersneeded .. " - " .. am_GetEnemyCount() .. " = " .. rm2tenguys .."\n")

--FreeEnemySlots(4, defaultexptime)

--FreeEnemySlots(3, defaultexptime)

--if total_spawns[roomprefix] > 15 then
--  rm3waves = 2
--end

--if rm4waves == 3 then
--  if (am_GetEnemyCount() < 7) then
--      rm4helispawn = 2
--      if (am_FindActorIndex("C1L4R4_u9_g1") == -1) then
--          generate_solo_pathed (roomprefix, "u9", "blackhawk", "helicopter", 1,1)
--          -- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)
--          am_SetPatrolParams("C1L4R4_u9_g1", 1.0, 0, 8.0)
--      else
--          am_SetActorPath ("C1L4R4_u9_g1", "C1L4R4_spwn_u9_g1")
--      end
--  end
--end

--rm4waves = 3

--if am_GetEnemyCount() < 6 then
    --FreeEnemySlots(6, defaultexptime)
    --if total_spawns[roomprefix] >19 and total_spawns[roomprefix] < 30 then
    --  rmhelicopter = 3
    --end
--end

--rm5dia_soldier_respawn ()

--total_spawns[roomprefix] = total_spawns[roomprefix] +generate_wave_heli (roomprefix, "u3", "shocktroop", roomprefix, 1,"C1L4R5_u9_g1", 0)

--rm5random = random (1,2)
--total_spawns[roomprefix] = total_spawns[roomprefix] + generate_wave(roomprefix,"u5","assaulter",roomprefix, rm5random)

--generate_solo_pathed (roomprefix, "u9", "blackhawk", "helicopter", 1,1)
-- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)
--am_SetPatrolParams(  "C1L4R6_u9_g1", 1.0, 0, 8.0)

---write ("---- rm6npcdoor2 is 1\n")

--findplayer_wave(roomprefix, "u7", 4)

--findplayer_wave(roomprefix, "u8", 4)

--generate_solo_pathed (roomprefix, "u91", "blackhawk", "helicopter", 1,1)
--write ("--- Rm8 Blackhawk has been generated\n")

--write ("----- C1L4R7_u9_g1 set to be killed\n")

-- Create heli
--if am_FindActorIndex("C1L4R8_u91_g1") == -1 then
--  generate_solo_pathed (roomprefix, "u91", "blackhawk", "helicopter", 1,1)
--  -- am_SetPatrolParams(actor, speed, arrive (1 = stop at every waypoint), tolerance)
--  am_SetPatrolParams(  "C1L4R8_u91_g1", 1.0, 0, 8.0)
--  write ("--- Rm8 Blackhawk being respawned \n")
--end

--write ("-- shockershielders existing "..npctype.."\n")
--write ("-- shockershielders needed "..shockshieldersneeded.."\n")

--write ("-- rm8tenguys needed "..rm8tenguys.."\n")

--rm8waves = rm8waves + 1

--if am_GetEnemyCount() < 4 and rm8arrowon == nil then

--write ("Heli C1L4R8_u9_g1 killed\n")

--playmission = 0
--write ("tv Rm8_camera disabled\n")

--write ("Heli C1L4R7_u9_g1 killed\n")

--if rm8waves == 1 or rm8waves == 3 then
    --write ("-- shockershielders existing "..npctype.."\n")
    --write ("-- shockershielders needed "..shockshieldersneeded.."\n")
    --write ("\n R8U9 Helicopter Reinforcements coming \n")
--end

--write (name.." shockshielder defending defend1\n")

--write ("Rm5 Runwaytrain moving\n")

--write ( "Rm5 Runaway Train: " .. fieldpos .. "\n")

--write ("fieldpos "..fieldpos.."\n")

--if fieldpos == 45 then
--  sh_DoString( "playcamera = 5.1" )   
--end

--  if am_GetEnemyCount() > 10 then
--      am_FreeEnemySlots ( 1, -1 )
--  end

Art/Levels/C1L5 (A DIFFERENT BREED)#

C1L5.lua#

--LoadP3DFile("art/levels/C1L5/C1L5.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C1L5/C1L5.rdl");

C1L5_scenario.lua#

----
--      Funky camera stuff
----
-- cm_SetScriptCamStatic  ( float pitch, float heading, float x, float y, float z, float distance )
-- cm_SetScriptCamStaticV ( float pitch, float heading, Vector pos, float distance )

-- cm_SetScriptCamShot    ( float fova, float duration, bool userControl )
--              Note: fova doesn't do anything right now

-- cm_SetScriptCamZoom    ( float startDistance, float endDistance )
-- cm_SetScriptCamShake   ( float startTime, float duration, float amplitude, float frequency)
--cm_SetScriptCamPan      ( float startHeading, float endHeading )

-- cm_SwitchToScriptCamera   ( bool doZoom, bool doShake, bool doPan )
-- cm_SwitchToScriptCameraTD ( bool doZoom, bool doShake, bool doPan, float timeDialation )

-- cm_IsScriptCamPlaying()
-- cm_SetScriptCamPanTiming  ( float startTime, float duration )
-- cm_SetScriptCamZoomTiming ( float startTime, float duration )

-- cm_SetScriptCamBlending( int type, int blendType, float length, bool ignoreDest )
--                 cm_SetScriptCamBlending( 1, 1, 1.0, true )
--                 type:
--                      1 - CUT (default)
--                      2 - BLEND
--                      3 - FADE FROM BLACK
--                      4 - CROSSFADE
-- 
--                 If the type is set to anything other than CUT, the blendType parameter becomes valid:
--                      1 - LINEAR (default)
--                      2 - EASE IN
--                      3 - EASE OUT
--                      4 - EASE IN AND OUT

-- cm_SwitchToScriptCameraTD( 1, 1, nil, 0.7 )

 -- KMC_NB:  hard-coded position from the game.  To not need a vector.
        -- pitch, heading, x, y, z, distance 
--        cm_SetScriptCamStatic( -12.8, 22.1, 222.4, -31.6, 68.6, 0 )   

-- hud_Message ("TBS_C1BOSS_01")

--fmvm_SetRumbleEvent(11.1, 40, 40, 0.1)
--fmvm_SetRumbleEvent(11.4, 100, 100, 0.2)

-- There's no concept of "continue" in a boss fight.
--if sm_SetContinueCount then
--    sm_SetContinueCount( 0 )
--end

-- FAULKNER:  COMMENT OUT THESE LINES!
-- am_SetActorControllerIndex( "half_life", 4 )

----
--                MAIN LOOP
------------------ ------------------------------
--am_SetDefendLocation( "half_life" , "centre" , 5,64 )

--kmc    if halflife_stage == 1 and am_GetCharacterHealth( "half_life" ) <= (am_GetCharacterMaxHealth( "half_life" )/2) then

--BUG 5690  am_SetActorControllerIndex( "hulk", 4 )

Art/Levels/C2L1 (INFILTRATION)#

C2L1.lua#

--LoadP3DFile("art/levels/C2L1/C2L1.p3d", "level", 0);
-- Loaded directly by the simdb::Load() LoadRaddleFile("art/levels/C2L1/C2L1.rdl");

C2L1_path.lua#

--function C2L1_helipath_2 ( actor )
--    helispotpath ( actor, "C2L1_u1_heli1", "C2L1_helispot_2", "C2L1_helipath_3")
--end

--function C2L1_helipath_3 ( actor )
--    helispotpath ( actor, "C2L1_u1_heli1", "C2L1_helispot_3", "C2L1_helipath_4")
--end

--function C2L1_helipath_4 ( actor )
--    helispotpath ( actor, "C2L1_u1_heli1", "C2L1_helispot_4", "C2L1_helipath_1")
--end

C2L1_tv.lua#

--        hud_Message("TBS_PUZZLE_MATCH_FAILED")

-- tvm_EnableTriggerVolume ("C2L1R7_tv_fail")
-- tvm_EnableTriggerVolume ("C2L1R7_tv_fail2")

--generate_wave_pathed_banner ("C2L1R6", "u2", "alpha_guard", "room1alpha", 1,0)

--function C2L1R4_tv_searchdia_OnEnter( actor )
--    snd_PlayActorDialogue ( dialogue, actor )
--    print ("radiochatter")
--end

--Wait_PlayNIS( "c2l1_nis_01" )

C2L1_scenario.lua#

--am_UpdateKnownPlayerPos( name )

--hud_Message( "TBS_C2L1_08" )

--Wait (4)
--spm_SetSmartPropState("C2L1_fence_1", 2)
--WaitForScriptCamera()
--cm_SetScriptCamStatic( -10.1, 327.7,60.9, 0.7, 111.2, 0 )
--cm_SetScriptCamShot( 85, 3, nil )
--cm_SetScriptCamBlending(1,1,1,1,1,1,1)

--cm_SetScriptCamZoom( .9, 0 )
--cm_SetScriptCamZoomTiming( 0, 3 )
--cm_SetScriptCamZoomEaseInOut( 1, 1 )
--cm_SetScriptCamZoomBias( .8 )

--cm_SetScriptCamFova( 90, 80 )
--cm_SetScriptCamFovaTiming( 0, 3 )
--cm_SetScriptCamFovaEaseInOut( 1, 1 )
--cm_SetScriptCamFovaBias( .8 )

--cm_SwitchToScriptCameraAll( 1, nil, nil, nil, 1, nil, 1 )
--spm_SetSmartPropState("C2L1_fence_2", 2)

--WaitForScriptCamera()

--Wait (1)
--snd_PlayUserDialogue( "BanGame033a" )
--generate_wave_pathed_banner("C2L1R5", "u9", "alpha_guard", "flush", 1,0)
--am_SetActorPath ("C2L1R5_u1_g1", "C2L1R5_path_sw")
--am_SetActorPath ("C2L1R5_u1_g2", "C2L1R5_path_se")

--cm_SetScriptCamStatic( 4.7, 146.0, -19.1, 1.7, -10.0, 0 )
--cm_SetScriptCamShot( 85, .3, nil )
--cm_SetScriptCamBlending(3,1,1,2,4,3,1)

--sm_StartTimer( 120, "startagain=1" )

--spm_SetSmartPropState("C2L1R5_levergen_banner", 1)
--spm_SetSmartPropState("C2L1R5_C2L2_generator", 1)
--spm_SetSmartPropState("C2L1R4_levergen_banner", 1)
--spm_SetSmartPropState("C2L1R4_C2L2_generator", 1)

--spm_SetSmartPropState("C2L1R5_C2L1_door", 4)

--am_SetAlertStatus( "C2L1R2_u1_g4", 0 )

--snd_TriggerMusic( "Banner_Dog_Stealth1" )

--generate_wave_pathed_banner ("C2L1R3", "u1", "alpha_guard", "room2alpha", 1,0)

--snd_PlayUserDialogue( "BanGame034a" ) comment doesn't exist

--generate_wave_pathed_banner ("C2L1R3", "u1", "alpha_guard", "loner", 1,0)

--cm_SetCameraDisabled("C2L1_CAM_3RD_GEN_Shape1")
--cm_SetCameraDisabled("C2L1_CAM_3RD_GEN_Shape2")
---cm_SetCameraEnabled("C2L1_CAM_3RD_GEN_SWITCH_Shape1")
--sh_DoString("generatordownb = 1")

--Carrion ( "C2L1R5", "u1", "1" )
--Carrion ( "C2L1R5", "u1", "2" )
--Carrion ( "C2L1R5", "u1", "3" )
--Carrion ( "C2L1R5", "u1", "4" )

--sm_StartTimer( 120, "generatordowna=1" )
--am_KillTeam ("C2L1R5")

-- snd_PlayUserDialogue( "BanGame031" ) comment doesn't exist

--snd_PlayUserDialogue( "BanGame185a" )

--snd_PlayUserDialogue( "BanGame014a" )

--sm_StartTimer( 10, "puzzle2=1" )