Skip to content

Instantly share code, notes, and snippets.

@Jither
Created July 1, 2023 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Jither/c9b416aea9c5ac8ee9684500d5005289 to your computer and use it in GitHub Desktop.
Save Jither/c9b416aea9c5ac8ee9684500d5005289 to your computer and use it in GitHub Desktop.
Symbols
include "./shared.symbols"
include "./mm-shared.symbols"
game
{
; The max actor number of the game goes here. Can be determined by looking at where referenced object numbers start, or referenced actor numbers end.
; This is used for determining if an object symbol is actually referencing an actor
max-actor = 25
}
variables
{
selected-actor :Actor = 0 ; Actually, in SCUMM 0-2, this was named selected-kid
complex-operand = 1
camera-x :Coordinate = 2
message-going :Boolean = 3
selected-room :Room = 4
override-hit :Boolean = 5
music-playing = 6 ; or machine-speed? (change between Zak and MM)
chars-printed = 7
current-verb :Verb = 8 ; current verb being executed
current-noun1 :Object = 9 ; current noun1 being executed
current-noun2 :Object = 10 ; current noun2 being executed
number-actors = 11
current-lights = 12
current-side = 13 ; not used in MM PC
indirect1 = 14 ; used for indirect addressing of variables
indirect2 = 15 ; not used in MM PC
indirect3 = 16 ; not used in MM PC
music-flag = 17 ; not used in MM PC
legal-verb :Boolean = 18
actor-range-min = 19
actor-range-max = 20
userface-flag = 21
dest-object :Object = 22
camera-min :Coordinate = 23
camera-max :Coordinate = 24
min-jiffies :Number = 25
selected-verb :Verb = 26 ; current verb selected (before it's executed)
selected-noun1 :Object = 27 ; current noun1 selected (before it's executed)
selected-noun2 :Object = 28 ; current noun2 selected (before it's executed)
selected-prep = 29 ; current preposition in sentence
cursor-x :Coordinate = 30
cursor-y :Coordinate = 31
touched-zone = 32
touched-verb :Verb = 33
exec-sentence-flag :Boolean = 34
touched-object :Object = 35
real-selected-room :Room = 36 ; not used in MM PC
last-sound :Sound = 37 ; not used in MM PC
revert-verb :Verb = 38 ; verb to revert to after an action
key-hit = 39
override-key = 40 ; I think...
; var 44-46 not used
kid-forced-on-you :Actor = 47 ; That would be Dave
chosen-kid-1 :Actor = 48
chosen-kid-2 :Actor = 49
flashlight-batteries :BatteryStatus = 50
ednas-number-digit-1 = 51
ednas-number-digit-2 = 52
ednas-number-digit-3 = 53
ednas-number-digit-4 = 54
safe-combination-digit-1 = 55
safe-combination-digit-2 = 56
safe-combination-digit-3 = 57
safe-combination-digit-4 = 58
lab-code-digit-1 = 59
lab-code-digit-2 = 60
lab-code-digit-3 = 61
lab-code-digit-4 = 62
correct-digit-1 = 63
correct-digit-2 = 64
correct-digit-3 = 65
correct-digit-4 = 66
failed-keycode :Boolean = 67
entered-digit = 68
entering-keycode = 69
actor1 :Actor = 70
x = 71
y = 72
kid-spotted-by-edna :Actor = 73
called-edna-before :Boolean = 74
called-meteor-police-times = 75
meteor-police-number = 76
meteor-police-number-digit-1 = 77
meteor-police-number-digit-2 = 78
meteor-police-number-digit-3 = 79
meteor-police-number-digit-4 = 80
envelope-unsealed = 81
content-in-envelope = 82
envelope-stamped :Boolean = 83
envelope-opened :Boolean = 84
microwave-content = 85
who-recorded-demo = 86
doorbell-rang-before :Boolean = 87
weird-ed-x = 88
weird-ed-y = 89
weird-ed-dest-x = 90 ; For Ed walking through house
weird-ed-dest-y = 91
var-* = 92 ; TODO: 0 = ed hasn't got package, 1 = ed got it, 2 = package waiting at mailbox?
showed-plans-to-weird-ed :Boolean = 93
record-on-victrola :Sound = 94
cause-of-death :CauseOfDeath = 95
who-dies :Actor = 96
number-of-dead-kids = 97
food-items-given-to-green = 98
done-feeding-green :Boolean = 99
got-stamps :Boolean = 100
contract-status :ContractStatus = 101
heard-about-greens-depression :Boolean = 102
package-is-being-delivered :Boolean = 103
envelope-is-addressed :Boolean = 104
var-* :Boolean = 105 ; Something to do with green being on second floor
var-* :Boolean = 106
; var 107 not in use
var-* = 108
foo = 109 ; Likely to be the actual name - this variable is reused a LOT (and for different types)
bar = 110 ; Also likely to be the actual name
selected = 111 ; Reused variable - for number of selected kids on start menu, selecting keycodes randomly etc. - so "selected" is its likely original name
kid-spotted-by-purple :Actor = 112
actor2 :Actor = 113
actor-meeting-green :Actor = 114
dave-is-dead :Boolean = 115
actor3 :Actor = 116
seen-skeleton-before :Boolean = 117
var-* :Boolean = 118
var-* = 119
var-* :Boolean = 120
var-* = 121
var-* = 122
current-object :Object = 123 ; Used as "argument" from a couple of verb scripts to global scripts to indicate the object being interacted with
saveload-status = 124
var-* :Boolean = 125
var-* :Boolean = 126
room-to-check :Room = 127 ; "Argument" to is-room-vacant (script-138)
var-* :Boolean = 128
var-* :Boolean = 129
safe-opened-before :Boolean = 130
var-* :Boolean = 131
fred-wants-hamster-scheduled :Boolean = 132
library-right-lamp-on :Boolean = 133
library-left-lamp-on :Boolean = 134
var-* :Boolean = 135
var-* :Boolean = 136
var-* :Room = 137
entered-house :Boolean = 138
actor-holding-door :Actor = 139
actor-holding-door-x = 140
actor-holding-door-y = 141
flashlight-battery-life = 142
weird-ed-downstairs-reason :DownstairsReason = 143
first-time-opened-refrigerator:Boolean = 144
; 145-149 not in use
var-* :Boolean = 150
var-* :Boolean = 151
garage-is-ruined :Boolean = 152
green-got-recording-contract :Boolean = 153
var-* :Boolean = 154
develop-film-step = 155
flashlight-on :Boolean = 156
tape-content :Sound = 157
; 158-159 not in use
memoir-quality :MemoirQuality = 160
edna-on-phone :Boolean = 161
meteor-status :MeteorStatus = 162
; 163 not in use
telescope-position = 164
pulling-shower-curtain :Boolean = 165
glass-jar-content = 166
victrola-playing :Boolean = 167
sponge-content = 168
seen-martian :Boolean = 169
telescope-turns-left = 170
developer-tray-content = 171
ham-radio-on :Boolean = 172
living-room-radio-on :Boolean = 173
plant-status = 174
meteor-controls-computer :Boolean = 175 ; Indicates that the player is not allowed to switch kids or save (also used in other places than the end game).
; 176-189 unused
copycrap-row = 190
copycrap-column = 191
copycrap-attempts = 192
gave-plant-pepsi = 193
; 194 unused
copycrap-letter = 195
; 196 unused
copycrap-section = 197
}
bit-variables
{
room-is-dark = 2816
antagonized-weird-ed = 2936
used-hunk-o-matic = 2944
kid-is-busy = 2952 ; Kid is caught and being led to the dungeon - or dead.
room-always-lit = 2872 ; Rooms that are outside or in the basement where light isn't affected by power being shut down
friends-with-green = 2960
has-seen-marketeer-commercial = 2968
}
objects
{
record-from-victrola = 30
envelope-in-microwave = 31
mating-calls-record = 32
demo-tape = 33
hamster-in-cage = 34
piggy-bank = 35
dime-1 = 36
dime-2 = 37
dime-3 = 38
door-weird-eds-room-exit = 39
mansion-lights-1 = 40
mansion-lights-2 = 41
mansion-lights-3 = 42
mansion-lights-4 = 43
mansion-lights-5 = 44
meteor-object = 45
mushroom-cloud-1 = 46
mushroom-cloud-2 = 47
mushroom-cloud-3 = 48
mushroom-cloud-4 = 49
; [openable] (and [switchable] and eventually [reversed]) are intended to let the decompiler
; know what state names to use for specific objects.
; This "mailbox" object shows exactly why the keyword isn't something like [door], but rather [openable]. ;-)
mailbox = 50 [openable]
mailbox-flag = 51
bushes-left = 52
grating = 53
door-mat = 54
key = 55
film = 56
package = 57
envelope = 58
cement-slab = 59
contract = 60
front-door-ext = 61 [openable]
tombstone-1 = 62
tombstone-2 = 63
tombstone-3 = 64
puddle-of-developer = 65
water-walve = 66
front-door-int-left = 67 [openable]
door-hall-to-kitchen = 68 [openable]
door-hall-to-cellar = 69 [openable]
door-hall-to-living-room = 70 [openable]
door-living-room-to-hall = 71 [openable]
old-fashion-radio = 72
radio-tube = 73
glass-chandelier = 74
broken-chandelier = 75
old-rusty-key = 76
cabinet-door = 77 [openable]
window-living-room-left = 78
window-living-room-right = 79
cassette-tape = 80
door-kitchen-to-hall = 81 [openable]
door-kitchen-to-dining-room = 82 [openable]
jar-of-water = 83
flashlight = 84
microwave-oven = 85 [openable]
hamster-in-microwave = 86
exploded-hamster = 87
faucet = 88
refrigerator = 89 [openable]
cheese = 90
lettuce = 91
broken-bottles-of-ketchup = 92
can-of-pepsi = 93
chainsaw = 94
door-dining-room-to-kitchen = 95 [openable]
old-rotting-turkey = 96
week-old-roast = 97
door-dining-room-to-storage = 98 [openable]
door-plant-room-exit = 99
man-eating-plant = 100
paint-blotch = 101
door-with-ladder = 102 [openable]
door-ednas-room-exit = 103 [openable]
card-key = 104
ednas-phone = 105
crater = 106
small-key = 107
gate = 108 [openable]
door-teds-room-exit = 109 [openable]
sarcophagus = 110
hunk-o-matic = 111
door-to-bathroom = 112
door-bathroom-exit = 113 [openable]
toilet-lid = 114
shower-curtain-1 = 115
shower-curtain-2 = 116
shower-curtain-3 = 117
water-faucet = 118
ednas-number-1 = 119
ednas-number-2 = 120
ednas-number-3 = 121
ednas-number-4 = 122
sponge = 123
door-storage-to-dining-room = 124 [openable]
door-to-pool = 125 [openable]
door-to-library = 126 [openable]
bottle-of-developer = 127
tentacle-chow = 128
canned-goods = 129
fruit-drinks = 130
storage-floor-grate = 131
glass-jar = 132
old-batteries = 133
rocket-engine-glow-left = 134
door-library-exit = 135 [openable]
library-phone = 136
door-pool-to-storage = 137 [openable]
gate-pool-to-garage = 138 [openable]
swimming-pool = 139
radio = 140
glowing-key = 141
radio-at-pool-bottom = 142
gate-garage-to-pool = 143 [openable]
garage-door-1 = 144
garage-door-2 = 145
garage-door-3 = 146
garage-door-4 = 147
garage-door-5 = 148
garage-door-6 = 149
garage-door-7 = 150
trunk = 151 [openable]
tools = 152
water-faucet-handle = 153
stairs-cellar-exit = 154
door-to-dungeon = 155 [openable]
fuse-box = 156
circuit-breakers = 157
silver-key = 158
door-dungeon-exit = 159 [openable]
outer-lab-door = 160 [openable]
top-padlock = 161
bottom-padlock = 162
inner-lab-door = 163 [openable]
mondo-stereo = 164
stamps = 165
lab-door-left = 166 [openable]
batteries = 167
lab-door-right = 168 [openable]
door-zom-b-matic-exit = 169 [openable]
locker = 170
pool-ladder-bottom = 171
pool-ladder = 172
safe-combination-1 = 173
safe-combination-2 = 174
safe-combination-3 = 175
meteor-room-switch = 176
door-meteor-room-right = 177 [openable]
cold-can-of-pepsi = 178
stairs-to-hall = 179
door-to-painting-room = 180 [openable]
door-to-music-room = 181 [openable]
steel-security-door = 182 [openable]
painting-of-fred = 183
painting-of-edna = 184
door-music-room-exit = 185 [openable]
rocket-engine-glow-right = 186
vase-on-piano = 187
old-record = 188 ; On crate in music room
cassette-tape-in-library = 189
tv-in-music-room = 190 [switchable]
cassette-recorder = 191
cassette-tape-in-music-room = 192
door-statue-room-to-hall = 193 [openable]
stairs-to-second-floor = 194
door-to-medical-lab = 195 [openable]
door-to-arcade = 196 [openable]
door-painting-room-exit = 197 [openable]
bowl-of-wax-fruit = 198
paint-brush = 199
paint-remover = 200
door-arcade-exit = 201 [openable]
video-fever-screen = 202 [switchable] ; These objects encompass the screen of each game (and graphics for it)
disco-crazy-screen = 203 [switchable]
alien-slime-screen = 204 [switchable]
die-enemy-die-screen = 205 [switchable]
meteor-mess-screen = 206 [switchable]
kill-thrill-screen = 207 [switchable]
door-medical-lab-exit = 208 [openable]
desk-drawer = 209
manuscript = 210
dime-in-freds-room = 211
radio-tube-in-freds-room = 212
hatch-greens-room = 213
badge = 214
yellow-key = 215
cassette-tape-in-greens-room = 216
hatch-safe-room = 217
painting-covering-safe = 218
wall-safe = 219 [openable]
safe-combination-4 = 220
quarter-in-safe = 221
sealed-envelope-in-safe = 222
hatch-in-boarded-up-room = 223
meteor-police-vessel = 224
cut-wires = 225
martian-left-arm = 226 ; My left
martian-right-arm = 227
cassette-player = 228
door-to-second-floor = 229 [openable]
stairs-hall = 230
ednas-ladder = 231
hatch-to-observatory = 232
water = 233
crawl-space-grate = 234
freds-ladder = 235
coin-box-1 = 236 ; a coin box in each arcade game
coin-box-2 = 237
coin-box-3 = 238
coin-box-4 = 239
coin-box-5 = 240
coin-box-6 = 241
quarter-1 = 242 ; a quarter in each coin box
quarter-2 = 243
quarter-3 = 244
quarter-4 = 245
quarter-5 = 246
quarter-6 = 247
freds-hiscore-1 = 248
freds-hiscore-2 = 249
freds-hiscore-3 = 250
freds-hiscore-4 = 251
hole-in-floor = 252
bathroom-sink = 253
loose-panel = 254
door-to-meteor-room = 255 [openable]
ednas-number-0 = 256
exit-mansion-ext-right = 257
exit-mansion-gate-left = 258
marketeer-office-window = 259
select-syd = 260 ; buttons in start menu
select-razor = 261
select-michael = 262
select-bernard = 263
select-wendy = 264
select-jeff = 265
marketeer-address-blink = 266
door-meteor-room-left = 267 [openable]
meteor-in-trunk = 268
radiation-suit = 269
pennant = 270
fighter-jet-model = 271
x-wing-model = 272
strategic-commando-chart = 273
weird-eds-bed = 274
weird-eds-window = 275
mailbox-open = 276
bushes-right = 277
mansion-gate-sign = 278
shower-curtain-4 = 279
floor-grating = 280
license-plate = 281
grandfather-clock = 282
vase-hall-right = 283
vase-hall-left = 284
empty-pool-ladder = 285
couch = 286
left-of-room = 287 ; in Mark E. Teer's office
red-button = 288
kitchen-window = 289
very-dull-knives = 290
stove = 291
blood = 292
dining-chair-left = 293
dining-chair-right = 294
candle-left = 295
candle-middle = 296
candle-right = 297
dining-room-lamp = 298
key-asterisk = 299
key-0 = 300
key-hash = 301
fireplace = 302
family-portrait = 303
pot-for-plant = 304
light-in-safe-room = 305
ednas-desk = 306
ednas-cracked-mirror = 307
ceiling-mirror = 308
ceiling-lamp = 309
ednas-bed = 310
picture-of-dr-fred = 311
corridor-plant-left = 312
night-stand = 313
ednas-plant = 314
corridor-plant-middle = 315
teds-tv = 316
teds-pillow = 317
playboy-calendar = 318
mummy-poster = 319
surplus-body-parts = 320
cracked-mirror-bathroom = 321
corridor-plant-right = 322
toilet = 323
pull-chain = 324
bathroom-window = 325
shelves = 326
lamp-right = 327
lamp-left = 328
staircase = 329
chuck-the-plant = 330
chair-in-library = 331
front-door-int-right = 332
pool-chair = 333
old-tree = 334
light-switch = 335
pool-chair-bottom = 336
drain = 337
exposed-cooling-rods = 338
pool-slime = 339
weird-edsel = 340
rocket-engine-left = 341
rocket-engine-right = 342
rear-window-sign = 343
bumper-sticker = 344
shelf = 345
cellar-slime = 346
furnace = 347
nuclear-reactor = 348
skeleton = 349
barred-window-left = 350
gargoyle-right = 351
barred-window-right = 352
gargoyle-left = 353
candle-holder = 354
reactor-control-panel = 355
periscope = 356
pepsi-machine = 357
zom-b-matic = 358
zom-b-matic-left-spot = 359
zom-b-matic-right-spot = 360
purple-slime = 361
wall-lamp = 362
; 363 not in use
piano-bench = 364
piano = 365
victrola = 366
speaker = 367
statue = 368
plaque-on-statue = 369
easel = 370
unfinished-painting = 371
crate = 372
dried-purple-slime = 373
sketch = 374
air-hockey-table = 375
star-wars-poster = 376
mail-a-med-diploma = 377
docs-r-us-diploma = 378
desk-lamp = 379
medical-lab-desk = 380
black-board = 381
examination-table = 382
real-skeleton = 383
medical-diagram = 384
medical-cabinet = 385
lovely-plant = 386
window-second-floor-right = 387
window-second-floor-middle = 388
window-second-floor-left = 389
enlarger = 390
developer-tray = 391
dark-room-desk = 392
file-drawers = 393
doorbell = 394
select-dave = 395 ; button in start-menu
picture-of-edna = 396
wanted-poster = 397
tube-socket = 398
ham-radio = 399
freds-bed = 400
left-speaker = 401
right-speaker = 402
start-game = 403 ; button in start menu
ron-poster = 404
disco-sucks-poster = 405
greens-bed = 406
boarded-up-window = 407
light-in-boarded-up-room = 408
astronomy-chart = 409
telescope-control-panel = 410
left-telescope-button = 411
right-telescope-button = 412
telescope = 413
coin-slot = 414
card-slot = 415
typewriter = 416
typewriter-desk = 417
less-man-eating-plant = 418
medical-chart = 419
red-light = 420
scrawled-number = 421
wires = 422
map-of-house = 423
zom-b-matic-control-panel = 424
zom-button-1 = 425
zom-button-2 = 426
zom-button-3 = 427
zom-button-4 = 428
key-1 = 429
key-2 = 430
key-3 = 431
key-4 = 432
key-5 = 433
key-6 = 434
key-7 = 435
key-8 = 436
key-9 = 437
video-fever-game = 438 ; These graphic-less objects encompass the entire arcade machine
disco-crazy-game = 439
alien-slime-game = 440
die-enemy-die-game = 441
meteor-mess-game = 442
kill-thrill-game = 443
perfume = 444
heart-shaped-pillow = 445
picture-from-greens-mom = 446
out-of-order-sign = 447
gravy-stain = 448
save-game-button = 449
load-game-button = 450
continue-button = 451
key-in-chandelier = 452
loose-brick = 453
grandfather-clock-tick = 454
grandfather-clock-tock = 455
stairs-second-to-first-floor = 456
stairs-second-to-third-floor = 457
door-to-dark-room = 458 [openable]
door-to-second-floor = 459 [openable]
door-to-freds-room = 460 [openable]
door-to-ednas-room = 461 [openable]
door-to-weird-eds-room = 462 [openable]
door-to-teds-room = 463 [openable]
door-to-plant-room = 464 [openable]
door-freds-room-exit = 465 [openable]
; 466-499 not in use
keypad = 500
warning-sign = 501
; 502-519 not in use
symbol-key-0 = 520
symbol-key-1 = 521
symbol-key-2 = 522
symbol-key-3 = 523
symbol-key-4 = 524
symbol-key-5 = 525
symbol-key-6 = 526
symbol-key-7 = 527
symbol-key-8 = 528
symbol-key-9 = 529
symbol-key-10 = 530
symbol-key-11 = 531
; 532-539 not in use
keypad-in-statue-room = 540
}
scripts
{
boot-script = 1
sentence = 2
default-responses = 3
build-sentence = 4
empty-script-5 = 5
; script 6-8 not in use
demo = 9
open-door = 10
close-door = 11
open-garage-door = 14
read-memoir = 15
revise-memoir = 16
microwave-hamster = 17
reveal-ted = 18
let-ted-have-his-privacy = 19
play-mating-call-in-music-room = 20
play-mating-call-in-living-room = 21
look-through-telescope = 23
grandfather-clock-tick-tock = 24
turn-on-arcade-game = 25
turn-off-arcade-game = 26
play-meteor-mess = 27
play-arcade-game = 28
use-hunk-o-matic = 29
dial-phone-number = 30
phone-ringing = 31
sorry-wrong-number = 32
hang-up-phone = 33
hang-up-when-leaving-phone = 34
edna-answers-phone = 35
caught-by-edna = 37
call-meteor-police = 41
call-meteor-police-success = 42
meteor-police-arrives = 43
enter-keycode = 44
open-wall-safe = 45
enter-lab-door-keycode = 46
fred-reacts-to-power-shut-down = 47
purple-patrol = 48
purple-chases-kid = 49
; script 50 unused
green-roaming-second-floor = 51
plant-burp = 52
read-wanted-poster = 53
grow-plant = 54
update-room-light = 55
close-dungeon-exit = 56
play-cricket-sound = 57 ; empty loop in this version, but that's what it's for
start-microwave = 58
use-item-in-microwave = 59
wait-a-minute = 60
kill-a-kid = 61
game-over = 62
win-game = 63
turned-off-response = 64
machine-locked-response = 65
require-special-key-response = 66
firmly-attached-response = 67
door-closed-response = 68
door-locked-response = 69
too-heavy-response = 70
cant-unlock-response = 71
; script 72 unused
its-empty-response = 73
turn-on-microwave = 74
drain-or-fill-pool = 75
open-film = 76
develop-prints = 77
use-water-faucet = 78
update-jar-name = 79
update-sponge-name = 80
update-jar-and-env-name = 81
update-flashlight-name = 82
update-developer-tray-name = 83
update-envelope-name = 84
open-envelope = 85
use-envelope = 86
send-weird-ed-downstairs = 87
weird-ed-chases-kid = 88
weird-ed-in-dungeon = 89
thank-kid-for-delivery = 90
give-package-to-weird-ed = 92
give-film-to-weird-ed = 93
give-hamster = 94
weird-ed-picks-up-package = 95 ; ... if it's still there...
hatching-plan-with-weird-ed = 96
impatient-doorbell-ringing = 97 ; If the player rings the doorbell again while Ed is going downstairs for his package
send-weird-ed-to-his-room = 98
weird-ed-helps-with-purple = 99
play-piano = 100
schedule-fred-playing-meteor-mess = 101
generate-lab-code = 102
give-food = 103 ; Yes, this includes exploded rodents
give-drink = 104
deliver-envelope = 105
marketeer-reacts-to-envelope-contents = 106
give-tape-to-green = 107
green-is-so-depressed = 108
play-tape = 109
give-contract = 110
schedule-package-delivery = 111
marketeer-commercial = 112
use-typewriter = 113
select-kid = 114
green-helps-with-purple = 115
touch-stuff-in-weird-eds-room = 116
purple-guards-lab = 117
give-contract-to-meteor = 118
show-contract-to-purple = 119
opening = 120
script-* = 121 ; Another open door script...
script-* = 122 ; Another close door script...
countdown = 123
talkshow-ending = 124
fred-arms-self-destruct = 125
disable-mind-control = 126
fred-paces = 127
meteor-shoots-radiation-waves = 128
sandy-wiggling = 129 ; I think. This keeps a chore running every second if the player isn't moving. It's likely the same "wiggling" chore as seen on C64?
send-car-to-space = 130
arrival-at-mansion = 131
read-contract = 132
update-saveload-message = 133
script-* = 134 ; Some chore on loop while carrying meteor
opening-meteor-fall = 135
dispatch-meteor-police = 136
open-dungeon-exit = 137
is-room-vacant = 138 ; Sets result (var-128) to 0 if no kids (main actors) are in the room
schedule-ed-is-worried = 139
ed-is-worried = 140 ; The One Where Weird Ed has been noticing things...
schedule-fred-talks-to-edna = 141
fred-talks-to-edna = 142 ; The One Where Fred notifies Edna about upcoming power shut down
power-shut-down = 143
schedule-fred-wants-hamster = 144
fred-wants-hamster = 145 ; The One Where Fred... erm, the meteor, wants to borrow Weird Ed's hamster
get-kid-position-in-dungeon = 146
enter-zom-b-matic-room = 147
meanwhile-in-lab-1 = 148 ; The One Where Fred talks to Sandy
hold-cellar-door-open = 149
check-flashlight = 150
weird-ed-in-kitchen = 151
script-* = 152
spotted-by-edna-in-kitchen = 153
empty-script = 154
meanwhile-in-lab-2 = 155 ; The One Where the machine is ready
schedule-meanwhile-in-lab-2 = 156
give-badge-to-purple = 157
script-* = 158
green-follows-kid = 159
script-* = 162
setup-verbs = 164
setup-verbs-new-kid = 165
bernard-tampers-with-copycrap = 166
calculate-copycrap = 167
keep-security-door-closed = 168
demo-dr-fred-paces = 169
demo-lab-scene = 170
demo-sandy-examines-books = 171
demo-purple-follows-sandy = 172
demo-review-quotes = 173
demo-opening = 175
}
; ********************************************************************************************
; shared.symbols - an included file with all the annotations shared between (mostly) all games
; ********************************************************************************************
; The owner-of commands have some reserved values: 0, 14 and 15 for SCUMM 0-6; 0, 254 and 255 for SCUMM 7-8
; These defines are used when the argument to owner-of - or the result of the owner-of function - is
; one of these values. Otherwise, actor defines are used.
owners
{
nuked = 0
nobody = 14
in-the-room = 15
}
verbs
{
default-verb = 255
}
states
{
OFF = 0
ON = 1
; The additional state names would eventually have some annotation like
; CLOSED = 0 when openable
; - with [openable] being defined per object as seen further up.
}
classes
{
UNSET = 0
UNPICKUPABLE = 1
PICKUPABLE = 0x81
TOUCHABLE = 2 ; touchable is the default - hence "off"
UNTOUCHABLE = 0x82
UNLOCKED = 3
LOCKED = 0x83
}
booleans
{
false = 0
true = 1
}
chores
{
face-left = 244
face-right = 245
face-front = 246
face-back = 247
turn-left = 248
turn-right = 249
turn-front = 250
turn-back = 251
stop-walking = 252
}
colors
{
black = 0
blue = 1
green = 2
cyan = 3
red = 4
magenta = 5 ; this was also often defined as purple
brown = 6
light-grey = 7
dark-grey = 8
light-blue = 9
light-green = 10
light-cyan = 11
light-red = 12 ; this was also often defined as peach and/or orange
light-magenta = 13 ; this was also often defined as light-purple
yellow = 14
white = 15
}
; ***************************************************************************************
; mm-shared.symbols - an included file with all the annotations shared between C64 and PC
; ***************************************************************************************
; These "type" annotations are used to define names for numeric values that likely had a
; defined name in the original scripts. The type name is used above to let the decompiler
; know what names to use when comparing to or assigning specific variables.
type DownstairsReason
{
doorbell = 1
hungry = 2
}
type MemoirQuality
{
unrevised = 0
bad-revision = 1 ; revised by anyone not Wendy
good-revision = 2 ; revised by Wendy
}
type BatteryStatus
{
dead-batteries = 0
old-batteries = 1
new-batteries = 2
}
type ContractStatus
{
unsigned = 0
signed-meteor = 1
signed-kid = 2
signed-green = 3
shown-to-meteor = 4
}
type MeteorStatus
{
in-lab = 0
with-kid = 1
in-trunk = 2
arrested = 3
}
type CauseOfDeath
{
radioactive-steam = 1
drowning-in-pool = 2
ed-seeing-hamster = 3
death-by-tentacle = 4
flesh-eating-plant = 6
}
rooms
{
mansion-exterior = 1
bottom-of-pool = 2
living-room = 3
dungeon = 4
library = 5
pool = 6
kitchen = 7
cellar = 8
safe-room = 9
hall = 10
first-floor = 11 ; upstairs from the hall
second-floor = 12 ; where you first meet Green
statue-room = 13
painting-room = 14 ; where Fred tried to paint the meteor
boarded-up-room = 15 ; with the cut wire to the arcade
garage = 16
music-room = 17
arcade = 18
ednas-room = 19
greens-room = 20
freds-room = 21
medical-lab = 22
dark-room = 23
bathroom = 24
teds-room = 25
weird-eds-room = 26
plant-room = 27
observatory = 28
crawl-space = 29
zom-b-matic-room = 30
lab = 31
the-moon = 32
mansion-panorama = 33
periscope-view = 34
telescope-view = 35
storage-room = 36
dining-room = 37
third-floor = 38 ; corridor of family bedrooms
hiscore = 39
tv-screen = 40
marketeer-office = 41
talkshow = 42
keypad-room = 43
mansion-gate = 44
boot = 45
mansion-roof = 46
mansion-from-afar = 47
car-in-space = 48
maniac-mansion-logo = 49
save-load = 50
meteor-room = 51
garage-ruin = 52
}
actors
{
syd = 1
razor = 2
dave = 3
michael = 4
bernard = 5
wendy = 6
jeff = 7
; Here's an example of how "aliases" are defined - this is used by the decompiler
; to determine if it should use kid-in-radiation-suit or end-kids based on the context.
kid-in-radiation-suit = 8
end-kids = 8 when operator is comparison
dr-fred = 9
nurse-edna = 10
weird-ed = 11
dead-cousin-ted = 12
purple-tentacle = 13
green-tentacle = 14
meteor-police-officer = 15
meteor = 16
marketeer = 17
talkshow-host = 18
plant = 19
radiation-wave = 20
car = 21
falling-meteor = 22
sandy = 23
}
costumes
{
syd-costume = 1
razor-costume = 2
dave-costume = 3
michael-costume = 4
bernard-costume = 5
wendy-costume = 6
jeff-costume = 7
dr-fred-costume = 9
nurse-edna-costume = 10
weird-ed-costume = 11
dead-cousin-ted-costume = 12
purple-tentacle-costume = 13
green-tentacle-costume = 14
meteor-police-costume = 15
meteor-costume = 16
marketeer-costume = 17
talkshow-host-costume = 18
plant-costume = 19
car-costume = 21
falling-meteor-costume = 22
sandy-costume = 23
}
sounds
{
unused-sound-* = 1 ; Unused sound (including on C64) loaded in mansion exterior rooms
unused-sound-* = 2 ; Unused sound (including on C64) loaded in music room
unused-sound-* = 3 ; Unused sound (including on C64) loaded in bathroom
unused-sound-* = 4 ; Unused sound (including on C64) loaded in storage room
unused-sound-* = 5 ; Unused sound (including on C64) loaded in mansion exterior
footstep-sound = 6
flush-sound = 7
open-door-sound = 8
close-door-sound = 9
shatter-sound = 10
coin-spent-sound = 11 ; Probably - started when playing an arcade game
switch-sound = 12
security-door-open-sound = 13
microwave-bing-sound = 14
whirr-sound = 15 ; Used for both microwave and telescope rotating
splat-sound = 16
faucet-sound = 17
shower-sound = 18
button-beep-sound = 19
radio-sound-1 = 20
phone-dial-tone = 21
wrong-number-tone = 22
ednas-phone-ringing-tone = 23
library-phone-ringing-tone = 24
tentacle-mating-call = 25
break-glass-sound = 26
alert-sound = 27
tick-tock-sound = 28
radio-sound-2 = 29
hunk-o-matic-up-sound = 30
hunk-o-matic-down-sound = 31
radiation-sound = 32 ; Played when at bottom of pool with circuit-breakers engaged
alarm-sound = 33 ; Used for meltdown alarm and copy protection failure
shower-curtain-sound = 34
meteor-mess-sound = 35
tentacle-collision-sound = 36
meteor-police-incoming-sound = 37
cricket-sound = 38
doorbell-sound = 39
garage-door-sound = 40
develop-film-sound = 41
dungeon-door-close-sound = 42
pool-walve-turn-sound = 43
old-record-sound = 44
typewriter-sound = 45
unused-sound-* = 46 ; Unused sound (including on C64) loaded in boot
mating-call-on-tape-sound = 47
old-record-on-tape-sound = 48
kid-recording-on-tape-sound = 49
kid-recording-sound = 50
greens-song-on-tape = 51 ; Unused on PC (end-theme used instead)
greens-song = 52 ; Unused on PC (end-theme used instead)
window-shatter-sound = 53
button-press-sound = 54
end-theme = 55
meteor-falling-sound = 56 ; Unused on PC
boom-sound = 57
maniac-mansion-theme = 58
mind-control-sound = 59
countdown-alert-sound = 60
mind-control-off-sound = 61
radiation-wave-sound = 62
tentacle-hop-sound = 63
rocket-engine-sound = 64
lift-off-sound = 65
meteor-shout-sound = 66 ; Maybe? Plays over the talk sound when giving him his contract, plays alone when it's not his contract
meteor-talk-sound = 67
drop-meteor-in-trunk-sound = 68
meltdown-explosion-sound = 69
}
verbs
{
open = 1
close = 2
give = 3
turn-on = 4
turn-off = 5
fix = 6
new-kid = 7
unlock = 8
push = 9
pull = 10
use = 11
read = 12
walk-to = 13
pick-up = 14
what-is = 15
lock = 16
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment