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

Maniac Mansion: Day of the Tentacle/Unused Scripts

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Maniac Mansion: Day of the Tentacle.

Unused Scripts

There are a few unused or partially unused scripts in this game.

Technically there are a lot more of these but they're mostly very basic object handling scripts which simply trigger different lines of dialogue for interactions which are not possible (such as Hoagie or Laverne using the Crowbar). These have been documented on the Unused Dialogue Page instead.

The //comments below have been added for readability and are not present in the original game's files.

Hoagie's Chron-O-John Use Script

Hoagie has 2 unused responses that were meant to play when using objects with his Chron-O-John. A separate script overrides this and redirects it so that using any object with the Chron-O-John (rather than using the Chron-O-John itself) will use it with the Toilet instead, presumably to simplify gameplay and prevent misclicks when trying to transfer objects to other characters. This has the unintended side effect of making it so you can't use the Battery with the Chron-O-John itself, instead having to use it specifically with the Plug, and also overrides a line intended for trying to get power from unsuitable objects (anything except the Battery).

The numbers after the lines of dialogue refer to which character speaks it. 3 is Hoagie.

//Chron-O-John use script

//if you have no item selected, aka just Use the Chron-O-John itself
if localvar0 == 0) { 

//if Hoagie's Chron-O-John is powered
  if (bitvar9) {
    talkActor(:sound:"Well, I'M all ready to go.":wait:"But I guess I have to wait for Bernard and Laverne.",3) //used dialogue

//if Hoagie's Chron-O-John isn't powered
  } else {
    talkActor(:sound:"It's unplugged!",3) //used dialogue
  }

//if you have the Battery selected
} else if (localvar0 == 114) {

//if the battery is charged
  if (var215 == 6) {
    beginCutscene([2]) //take control from the player and hide the UI
    animateActor(3,10) //Hoagie leans down facing left
    breakXTimes(3) //wait for a bit
    startScriptEx(1,207,[]) //start the animation of the Charged Battery on the Plug
    setClass(66,[32]) //set the Charged Battery object to active
    animateActor(3,3) //Hoagie gets back up and faces backward
    endCutscene() //give control back to the player and unhide the UI
    startScript(9,[50]) //run the script which handles which kids have powered their units, setting Hoagie's to complete

//if the battery isn't charged
  } else {
    talkActor(:sound:"The battery's not charged.",3) //unused dialogue
  }

//if you have ANY other item selected
} else {
  talkActor(:sound:"That's no good.":wait:"It needs some real JUICE!",3) //unused dialoue
}

And here are the unused pieces of dialogue associated with the above script:

Offset Character Subtitle Dialogue
0x01259BC8 Hoagie The battery's not charged.
0x01263E8D Hoagie That's no good. It needs some real JUICE!

Chron-O-John Status Check

Dr. Fred has 3 unused responses that were meant to play in the cutscene after Bernard gets the Diamond, depending on the status of the other two kid's Chron-O-Johns. However, as soon as it decides which of the three lines to play, it immediately starts playing a different line without waiting for any of the others to finish.

It's unclear if this is a typo or some content that was shoddily removed.

The numbers after the lines of dialogue refer to which character speaks it. 1 is Bernard, 4 is Dr. Fred.

...
talkActor(:sound:"Can we bring back my friends now?",1) //used line
wait.waitForMessage() //wait until Bernard has finished talking

//if Laverne hasn't powered her Chron-O-John
if (bitvar9) {
  talkActor(:sound:"According to my instruments, your lively friend in the future hasn't yet powered her unit.",4) //unused line
}

//if Hoagie hasn't powered his Chron-O-John
else if (bitvar10) {
  talkActor(:sound:"According to my instruments, your rotund friend in the past hasn't yet powered his unit.",4) //unused line
}

//if neither Hoagie nor Laverne have powered their Chron-O-Johns
else {
  talkActor(:sound:"According to my instruments, your friends have not yet powered their units.",4) //unused line
}

talkActor(:sound:"We've repaired the primary device...":wait:"...but before we can do anything, BOTH time pods must be energized as well.":wait:"Then we can bring back what's-his-name and who's-her-face!",4) //used line
wait.waitForMessage() //wait until Dr. Fred has finished talking
...

And here are the unused pieces of dialogue associated with the above script:

Offset Character Subtitle Dialogue
0x00491E30 Dr. Fred According to my instruments, your lively friend in the future hasn't yet powered her unit.
0x004B1210 Dr. Fred According to my instruments, your rotund friend in the past hasn't yet powered his unit.
0x004D2437 Dr. Fred According to my instruments, your friends have not yet powered their units.

Debug Scripts

There are also a few unused scripts intended for use only in Debug Mode.

The //comments below have been added for readability and are not present in the original game's files.

Unlock Laverne Shortcut

There is a script attached to the Sign near the Outhouses which starts the cutscene in which George Washington cuts down the so-called Cherry Tree, immediately unlocking Laverne. It's activated by "closing" the Sign, and only works when Debug Mode is active. It's a very simple script but it's neat!

//Sign close script

if (g_debug_mode > 1) { //if debug mode is active
	startScriptEx(0,19,[]) //start the Cherry Tree cutscene
}

Non-Functional Boot Parameter

Using boot parameter 989 in Debug Mode crashes the game because it doesn't set a room for the player to be in. If it did work, it would set the current character to Bernard and give them the Textbook, Dime, Chattering Teeth, Vinegar, Gold-Plated Quill Pen, Brush and Fork items.

if (localvar0 == 989) { //boot parameter 989
  g_ego = 1 //set player to Bernard
  pickupObject(304,34) //put Textbook in inventory
  pickupObject(182,26) //put Dime in inventory
  pickupObject(98,14) //put Chattering Teeth in inventory
  pickupObject(442,44) //put Vinegar in inventory
  pickupObject(82,13) //put Gold-Plated Quill Pen in inventory
  pickupObject(106,15) //put Brush in inventory
  pickupObject(199,27) //put Fork in inventory
}