If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

SiN

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

SiN

Also known as: Sin: Gold
Developers: Ritual Entertainment, 2015 (Wages of SiN), Hyperion Entertainment (Linux), Night Dive Studios (SiN Gold)
Publishers: Activision (Original), Night Dive Studios (SiN Gold)
Platforms: Windows, Linux, Mac OS Classic
Released in US: October 31, 1998 (Windows), February 25, 1999 (Wages of SiN)[1], December 12, 2000 (Mac)
Released in EU: November 2000 (Linux)


DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
ItemsIcon.png This game has unused items.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
Carts.png This game has revisional differences.


SiN was Ritual's first full game after Quake Mission Pack 1: Scourge of Armagon. Probably due to a rather buggy release just a few weeks before Half-Life, it wasn't as popular as it could have been. It also received an expansion pack developed by 2015 Inc. called Wages of Sin.

Sub-Page

SiN-levelord.png
Version Differences
Lots of censored textures and a giant spider robot.

Cut Levels

References to Metal Works and Power Station levels can be found in the game's files. Texture sets exist for both, some of their music was used in the expansion, and an unused dialog script exists for metal works.

Download.png Download dialog_metal_works.scr
File: SiN-dialog_metal_works.zip (3.30 KB) (info)


Voice-over Bloopers

Hidden in the game's audio files are a number of bloopers and gags from the voice cast.

Unused Music

Several track variants were left unused in the final release. The expansion pack also used some previously unreleased tracks made for the original game.

Unused action track from the Intro level. This was commented out and only the normal variant is used.

Unused mystery track from the Chemical Plant level. This is defined, but never triggered.

Unused suspense track from the Warehouse level. This is defined, but the trigger is misspelled.

Unused mystery and suspense tracks from the Biomech Factory level. These are defined, but never triggered.

Unused suspense track from the Aqueducts level. This is commented out and never triggered.

Unused tracks for the Thrall boss level. The game uses the Munt Phoenix level music instead. Later reused in the expansion.

Unused "JTK" tracks found in the DM directory. Later reused in the expansion.

"rammdm" and "sabre", also found in the DM directory. The first one's rather loud.

In addition to these, there's still many more files referenced that don't appear in any version:

aqua/aquasurp.wav
area57/57susp.wav
chem/chemsurp.wav
correef/cormyst.wav
correef/corsusp.wav
csite/csmyst.wav
dam/dammyst.wav
dam/damsusp.wav
dam/damsurp.wav
geotherm/mystery.wav
geotherm/suspense.wav
geotherm/surprise.wav
geotherm/goal.wav
gorge/mystery.wav
gorge/suspense.wav
gorge/surprise2.wav
hdocks/hdckmyst.wav
hdocks/hdcksusp.wav
hdocks/hdcksurp.wav
jungle/jungsusp.wav
mansion/mansmyst.wav
mansion/manssusp.wav
milsilo/silomyst.wav
milsilo/silosusp.wav
mtlwrks/mtlnorm.wav
mtlwrks/mtlmyst.wav
mtlwrks/mtlsurp.wav
mtlwrks/mtlsusp.wav
mtlwrks/mtlsucc.wav
mtlwrks/mtlfail.wav
oilrig/mystery.wav
sewer/mystery.wav
sewer/suspense.wav
sewer/surprise.wav
subway/subwsusp.wav
uwbase/uwsurp.wav
waworks/wawmyst.wav
waworks/wawsusp.wav
xeno/xenomyst.wav
xeno/xenosusp.wav
xeno/xenosurp.wav
psta/powsusp.wav
psta/powsurp.wav
psta/powfail.wav

Unused Items

Computer Decoder

SiN-i decoder.png

HC Computer Decoder. Serves no function by itself.

SiN-decoder.png

Oxygen Tank

SiN-i oxygen.png

Oxygen tank. Would have been used to refill the scuba gear. In the final game there is no need for it as the scuba gear has infinite oxygen. If picked up (if you have the gear) the HUD notice will be similar to using a health item, though it won't have any effects.

SiN-oxygen.png

Results Screen

An endgame results screen exists as an intermission layout, but it is never shown. The blank spaces are where non-static info would have been inserted.

SiN-results.png

Developer Messages

Many comments exist within the script files. They are mostly level credits or miscellaneous messages.

intro_start.scr:

// Most of this sequence is controlled by the threads camera/camera2 that call the
// necessary commands cronologically. Should be pretty easy to understand, since
// it's very straight forward :)
// This has changed from the demo, had to make it localization friendly :)
// Also added the Cinematic flag so that skipping a cinematic becomes easier and 
// waitforplayer.

csite_cinema.scr

// As I'm writing this, DeathRow gets SPANKED by Clan 9...and I'd
// really like to talk to some of the ppl who always told me that
// there was almost NO chance that any clan could be better than
// an American one...muahahahahaha!

chem2.scr

// Chem2 - more fun than blowing up roaches with firecrackers!

aq1.scr:

// Aqueduct System
// Ritual Entertainment - This script is so messed up and unoptimzied that it
// isn't funny anymore. But it works ;)

oilrig_cinema.scr:

// Can you handle this? Oilrig Intro

docks_cinema.scr:

// Hidden Docks pr0n

envy.scr:

// Envy
// ------------------------------------------------------
// This is my first attempt at a script so BACK OFF!! :)
// ------------------------------------------------------
// Virtue is it's own punishment.

gluttony.scr:

// Avarice -Berenger Fish
// Look at my butt. It's perfectly round.

baseai.scr:

// 26    11/14/98 12:31a Jimdose
// fixed typo on range_mid
// 
// 25    11/08/98 5:03p Jimdose
// closeattack now makes sure the guy runs toward the player when he only has a
// mellee attack (no weapon)
// 
// 24    11/07/98 8:17p Jimdose
// flee and hide behaviors work better
// 
// 23    10/20/98 2:39a Markd
//
// 22    10/17/98 10:59p Markd
// working on improving AI
//
// 21    10/16/98 6:56p Markd
//
// 20    10/16/98 1:25a Jimdose
// Fixed alot of cases of local.self goto
//
// 19    10/14/98 11:57p Markd
// Added jump behavior
//
// 18    10/14/98 2:20a Markd
// rewrote portions of ai, most scripts were affected
//
// 17    10/13/98 7:39p Markd
// tweaked swim, fly, melee ai
//
// 16    10/10/98 6:09p Markd
// Updated neutral behavior for characters
//
// 15    10/09/98 10:03p Markd
// Added closeattack and redid melee stuff
//
// 14    10/05/98 11:14p Markd
// Added blitzattack
//
// 13    10/03/98 7:36p Markd
//
// 12    9/30/98 2:22p Markd
// working on melee stuff
//
// 11    9/29/98 8:10p Markd
// got melee attack working
//
// 10    9/24/98 12:00p Markd
//
// 9     9/22/98 5:33a Jimdose
// Added standground states
//
// 8     9/22/98 2:45a Jimdose
// removed a print
//
// 7     9/22/98 2:12a Jimdose
// Finished strafing back into hiding
//
// 6     9/21/98 11:12p Jimdose
// commented out call to duckandcover_strafehide
//
// 5     9/21/98 10:52p Jimdose
// Fixed vector copy in strafe attack
//
// 4     9/21/98 8:52p Jimdose
// Removed fish comment... ;)
//
// 3     9/21/98 8:50p Jimdose
// Added header
// duckandcover no longer ignores sightenemy

bat_nice.scr:

// 2     10/27/98 3:06a Wieder
// 
// 1     10/27/98 2:05a Wieder
// 
// 4     10/25/98 4:52a Markd
// made bats animals

fish.scr:

// 7     10/26/98 9:38p Markd
// fixed fish being civilians
// 
// 6     10/14/98 11:57p Markd
// Added jump behavior
// 
// 5     10/14/98 2:20a Markd
// rewrote portions of ai, most scripts were affected
//
// 4     10/04/98 2:49p Markd
// fixed nautic and fish swimming
//
// 3     9/22/98 2:13a Jimdose
// created file

nautic.scr:

// 8     10/21/98 2:05p Markd
// Changed enemy to monster
// 
// 7     10/14/98 11:57p Markd
// Added jump behavior
// 
// 6     10/14/98 2:20a Markd
// rewrote portions of ai, most scripts were affected
// 
// 5     10/13/98 7:39p Markd
// tweaked swim, fly, melee ai
//
// 4     10/04/98 2:49p Markd
// fixed nautic and fish swimming
//
// 3     10/03/98 7:36p Markd
//
// 2     9/22/98 2:13a Jimdose
// Added swim behavior
//
// 1     9/18/98 8:08p Jimdose

seabonite.scr:

// 5     10/26/98 9:39p Markd
// made seabonites not do noland command
//
// 4     10/14/98 11:57p Markd
// Added jump behavior
//
// 3     10/14/98 2:20a Markd
// rewrote portions of ai, most scripts were affected
//
// 2     10/13/98 7:39p Markd
// tweaked swim, fly, melee ai
//
// 1     10/03/98 7:36p Markd

Unused Dialog

Intro

// FIX ME - Not used yet
thats_my_van:
  // Giant thug dialog
  dialog "Hey! That's my van!" "dialog/general/van.wav" 1 6
  waitForSound "dialog/general/van.wav" 0.3
end

Intended to be used in the intro and triggered if you try destroying ground vehicles, "Hey! That's my van!" sounds deep and distorted.

Various chatter from Blade during the helicopter scene:

blade_shutup_jc:
  // Blade says "Shut up JC!" - 
  dialog "i_blade" "Shut up JC!" "dialog/intro/blade/shtp1.wav"
  waitForSound "dialog/intro/blade/shtp1.wav" .1
end

blade_nice_flyin:
  // Blade says "Nice flyin!" - 
  dialog "i_blade" "Nice flyin!" "dialog/intro/blade/ncflyn.wav"
  waitForSound "dialog/intro/blade/ncflyn.wav" .1
end

blade_hold_still:
  // Blade says "Dammit, hold still!" - 
  dialog "i_blade" "Dammit, hold still!" "dialog/intro/blade/hldstl.wav"
  waitForSound "dialog/intro/blade/hldstl.wav" .1
end

blade_oh_no:
  // Blade says "Oh no!" - 
  dialog "i_blade" "Oh no!" "dialog/intro/blade/ohno2.wav"
  waitForSound "dialog/intro/blade/ohno2.wav" .1
end

And unused JC chatter if you treated the city as a shooting gallery:

jc_find_new_job:
  // JC says "Great, it's time to find a new job!" - 
  dialog "i_jc" "Great, it's time to find a new job!" "dialog/intro/jc/nwjb1.wav"
  waitForSound "dialog/intro/jc/nwjb1.wav" .1
end

jc_watch_property:
  // JC says "Hey, watch the property, Blade!" - 
  dialog "i_jc" "Hey, watch the property, Blade!" "dialog/intro/jc/wtchpr.wav"
  waitForSound "dialog/intro/jc/wtchpr.wav" .1
end

jc_triple_the_bonus:
  // JC says "We get triple the bonus if we preserve life AND property, and man does papa need a new pair of shoes!" - Blade says "You're such a money grubber JC, did you know that?" - 
  dialog "i_jc" "We get triple the bonus if we preserve life AND property, and man does papa need a new pair of shoes!" "dialog/intro/jc/rmmbr2a.wav"
  waitForSound "dialog/intro/jc/rmmbr2a.wav" .1
  dialog "i_blade" "You're such a money grubber JC, did you know that?" "dialog/intro/blade/mngrb1.wav"
  // waitForSound "dialog/intro/blade/mngrb1.wav" .1
end

jc_there_goes_bonus:
  // JC says "Damn, there goes the bonus boss!" - 
  dialog "i_jc" "Damn, there goes the bonus boss!" "dialog/intro/jc/dmnbn2.wav"
  waitForSound "dialog/intro/jc/dmnbn2.wav" .1
end

jc_make_you_happy:
  // JC says "Did that make you happy, Blade?" - 
  dialog "i_jc" "Did that make you happy, Blade?" "dialog/intro/jc/mkhpp1.wav"
  waitForSound "dialog/intro/jc/mkhpp1.wav" .1
end

jc_there_goes_city:
  // JC says "There goes the city!" - 
  dialog "i_jc" "There goes the city!" "dialog/intro/jc/gcty1.wav"
  waitForSound "dialog/intro/jc/gcty1.wav" .1
end

jc_unemployment_time:
  // JC says "Oh man, time for unemployment!" - 
  dialog "i_jc" "Oh man, time for unemployment!" "dialog/intro/jc/nmply1.wav"
  waitForSound "dialog/intro/jc/nmply1.wav" .1
end

jc_bank_balance:
  // JC says "Blade, have you checked the bank balance recently?" - 
  dialog "i_jc" "Blade, have you checked the bank balance recently?" "dialog/intro/jc/mnbnk1.wav"
  waitForSound "dialog/intro/jc/mnbnk1.wav" .1
end

jc_oh_great:
  // JC says "Oh great!" - 
  dialog "i_jc" "Oh great!" "dialog/intro/jc/great1.wav"
  waitForSound "dialog/intro/jc/great1.wav" .1
end

Bank

Based on SiN 1.12:

mancini_intro_dialog:
  local.mancini1 string parm.mancini1
  local.thug1 string parm.thug1
  local.thug2 string parm.thug2
  // Mancini says 'Call our reinforcements!'
  local.mancini1 playsound "dialog/bank/mancini/Rnfrc4.wav"
  waitForSound "dialog/bank/mancini/Rnfrc4.wav" 0.1
  // Thug1 says 'Yes sir!'
  local.thug1 playsound "dialog/bank/thug/yessir.wav"
  waitForSound "dialog/bank/thug/yessir.wav" 0.3
  // Mancini says 'Get to the vault!'
  local.mancini1 playsound "dialog/bank/mancini/Gttvlt3.wav"
  waitForSound "dialog/bank/mancini/Gttvlt3.wav" 0.1
  // Thug2 says 'Right away, sir!'
  local.thug2 playsound "dialog/bank/thug/right.wav"
  waitForSound "dialog/bank/thug/right.wav" 0.3
  // Mancini says 'Hurry!'
  local.mancini1 playsound "dialog/bank/mancini/hurry1.wav"
  waitForSound "dialog/bank/mancini/hurry1.wav" 0.1
end

Mancini was intended to say this when seeing Blade.

manc_hurry:
  local.mancini1 string parm.mancini1
  // Mancini says "Hurry!" - 
  dialog "i_mancini" "Hurry!" "dialog/bank/mancini/Hurry1.wav"
  waitForSound "dialog/bank/mancini/Hurry1.wav" .1
end

Mancini simply says hurry. The sound file is used, but this trigger isn't.

manc_gethim:
  local.mancini1 string parm.mancini1
  // Mancini says "Get him!" - 
  dialog "i_mancini" "Get him!" "dialog/bank/mancini/gethim1.wav"
  waitForSound "dialog/bank/mancini/gethim1.wav" .1
end

manc_gethim2:
  local.mancini1 string parm.mancini1
  // Mancini says "GET HIM!" - 
  dialog "i_mancini" "GET HIM!" "dialog/bank/mancini/gethim2.wav"
  waitForSound "dialog/bank/mancini/gethim2.wav" .1
end

manc_outta_here:
  local.mancini1 string parm.mancini1
  // Mancini says "Let's get outta here!" - 
  dialog "i_mancini" "Let's get outta here!" "dialog/bank/mancini/ltsgtt.wav"
  waitForSound "dialog/bank/mancini/lysgtt.wav" .1
end

//manc_outta_here2:
//  local.mancini1 string parm.mancini1
//  // Mancini says "Let's get outta here!" - 
//  dialog "i_mancini" "Let's get outta here!" "dialog/bank/mancini/ltsgtt2.wav"
//  waitForSound "dialog/bank/mancini/lysgtt2.wav" .1
//end

Various unused triggers, one of which was manually commented out. The "Let's get outta here!" are two recordings of the same phrase, with sentence stress changed.

thug_hurry_up:
  local.thug1 string parm.thug1
  // Thug says 'Hurry up, we're behind schedule!'
  local.thug1 playsound "dialog/bank/thug/order1.wav"
  waitForSound "dialog/bank/thug/order1.wav" 0.3
end
thug_move_move_move:
  local.thug1 string parm.thug1
  // Thug says 'Move move move!  Let's go!'
  local.thug1 playsound "dialog/bank/thug/order3.wav"
  waitForSound "dialog/bank/thug/order3.wav" 0.3
end

Dialog that is referenced in the script, but not triggered.

thug_call_backup:
  local.thug1 string parm.thug1
  // Thug says "Call for backup." - 
  local.thug1 playsound "dialog/bank/thug/panic6.wav"
  waitForSound "dialog/bank/thug/panic6.wav" .1
end

thug_near_vault:
  local.thug1 string parm.thug1
  // Thug says "We've got him pinned down near the vault!" - 
  local.thug1 playsound "dialog/bank/thug/pinv.wav"
  waitForSound "dialog/bank/thug/pinv.wav" .1
end

thug_hell_outta:
  local.thug1 string parm.thug1
  // Thug says "Let's get the hell outta here!" - 
  local.thug1 playsound "dialog/bank/thug/panic9.wav"
  waitForSound "dialog/bank/thug/panic9.wav" .1
end

thug_near_security:
  local.thug1 string parm.thug1
  // Thug says "We've got him pinned down near security!" - 
  local.thug1 playsound "dialog/bank/thug/pins.wav"
  waitForSound "dialog/bank/thug/pins.wav" .1
end

thug_ripping_through:
  local.thug1 string parm.thug1
  // Thug says "Blade's ripping through our defences, sir!" - 
  local.thug1 playsound "dialog/bank/thug/panic4.wav"
  waitForSound "dialog/bank/thug/panic4.wav" .1
end

thug_reinforcements:
  local.thug1 string parm.thug1
  // Thug says "Let's get some reinforcements down here now!" - 
  local.thug1 playsound "dialog/bank/thug/order2.wav"
  waitForSound "dialog/bank/thug/order2.wav" .1
end

thug_cant_hold_off:
  local.thug1 string parm.thug1
  // Thug says "I don't think we can hold him off any longer!" - 
  local.thug1 playsound "dialog/bank/thug/panic5.wav"
  waitForSound "dialog/bank/thug/panic5.wav" .1
end

thug_get_moving:
  local.thug1 string parm.thug1
  // Thug says "Get moving!" - 
  local.thug1 playsound "dialog/bank/thug/order5.wav"
  waitForSound "dialog/bank/thug/order5.wav" .1
end

thug_get_u_cop:
  local.thug1 string parm.thug1
  // Thug says "Oh god the pain! I'm gonna get you cop!" - 
  local.thug1 playsound "dialog/bank/thug/agony.wav"
  waitForSound "dialog/bank/thug/agony.wav" .1
end

thug_got_blade:
  local.thug1 string parm.thug1
  // Thug says "Tell Mancini that we got Blade. <Ha, Ha!>" - 
  local.thug1 playsound "dialog/bank/thug/taunt4.wav"
  waitForSound "dialog/bank/thug/taunt4.wav" .1
end

Unreferenced reactions to Blade, one of which is probably intended to be a death taunt.

References