Commit graph

190 commits

Author SHA1 Message Date
athrxx
4248e22cbf SCUMM: (MI1/FM-TOWNS) - fix bug no. 13735
("Inaccurate verb rendering in Monkey 1 FM-TOWNS)"

Actually, this is rather an emulation of an original bug than a fix...

I have also included a fix in the charset renderer that I noticed, but I don't think that one actually matters anywhere.

I haven't added a fix for exisiting saves. It would require another version bump and it is really not important enough.
2022-08-03 17:03:25 +02:00
Donovan Watteau
6be4040b0b SCUMM: Document that the Trac#812 script bug also exists in Indy3 EGA
Checked against my EGA/DOS French copy: script 33 appears to have the
same Local[5] error as in the VGA release. It also looks like Local[1]
and Local[3] are uninitialized in the EGA version too, but this doesn't
seem to cause any issue.

Actually, if I completely disable this workaround, I can't reproduce the
original crash anymore, so maybe we handle uninitialized local values
the same way the original interpreter did, now?
2022-07-31 10:02:34 +02:00
Donovan Watteau
27f9a460b5 JANITORIAL: Fix "the the" and similar typos 2022-07-29 19:36:40 +03:00
Donovan Watteau
691d1dffdb SCUMM: Improve the antiques dealer map piece workaround (Monkey2)
The Ultimate Talkie Edition fixes this at the source, by setting
Bit[70] as intended when you buy the map piece.

But it makes more sense to fix it at a later stage for us, so that
it will also apply for previous saves (if one enables the Enhancement
option), and so that one can also disable this enhancement just before
meeting Captain Dread at this point, if they prefer to restore the
original behavior of the game.

Again, we're not modding the game here, just restoring an intended
behavior which was hidden by a script error, but people may prefer
playing the game with the original behavior they've known for years
and years.
2022-07-27 10:58:21 +03:00
Donovan Watteau
abe00b44c9 SCUMM: Restore Captain's Dread reaction when you have the four map pieces
This actually comes from the Ultimate Talkie Edition, so we're just
borrowing their fix for this.

The original scripts check if you have the whole map of Big Whoop; if
that's the case and you go to Captain Dread's ship, he should tell you
that he must go back to Scabb Island, and he'll leave you there and
never appear again. This forces the player to focus on Scabb Island
again, so that you know where to solve the map puzzle.

If you don't remember this, it's because the scripts forget to update
the status of the map piece from the antiques dealer, when you buy it.
So this is what this commit fixes, and this makes the Captain Dread
script trigger as intended.

Note: this REQUIRES the model lighthouse lens fix I've committed just
before, otherwise this would add a dead-end to the game (because of
another original script oversight; see that commit and
o5_notEqualZero() for more information).

We are restoring something which was part of the original intent of
the writers (it has even been dubbed in the Special Edition), but
it's maybe controversial since people never saw this in the original
because of a script bug.  That's why this is just an enhancement that
you can disable.

Kudos to the Ultimate Talkie Edition authors for this very nice
finding!
2022-07-27 10:58:21 +03:00
Donovan Watteau
e30f9e2c35 SCUMM: Fix a possible dead-end in Monkey Island 2 (Ultimate Edition)
When playing the Regular mode of the Ultimate Talkie Edition of Monkey
Island 2, you can get stuck if you picked up the four map pieces, but
haven't picked up the model lighthouse lens yet. Captain Dread will
force you to go back to Scabb Island and disappear (so you can't go
back to Phatt Island), but Wally won't be able to read the map without
his monocle and without the lens replacement. Nobody wants a dead-end
in a Monkey Island game :)

This commit just short-circuits the checks for the four map pieces if
the lens is still on the model lighthouse, and so you're still free
to navigate between the 3 islands until you pick it up.

This doesn't happen in any other version (yet), because the Ultimate
Edition is the only one which fixed setting the Bit[70] flag when
buying the map piece from the antiques dealer, restoring the reaction
from Captain Dread but unveiling this other, more fatal script
oversight.  But we'll need this fix for the other versions anyway,
since I'm going to add the same enhancement in a new commit.
2022-07-27 10:58:21 +03:00
athrxx
4230a882b0 SCUMM: (V4/EGA/CGA) - improve post-load fixes
Also include room palette fixes for games that were saved with a different video mode. Unfortunately the scripts make changes to the room palette based on VAR_VIDEOMODE. The original interpreter does not fix that.
2022-07-23 23:17:46 +02:00
athrxx
3d27309624 SCUMM: (LOOM/CGA) - fix minor actor palette glitch
(original interpreter bug, reported by antoniou79)

The original interpreter has an actor palette fix for the CGA mode, but it isn't properly re-applied after the script makes changes to the actor palette)
2022-07-16 14:51:06 +02:00
Donovan Watteau
d945157f7c SCUMM: Fix verbs not being hidden during the biplane cutscene (FM-TOWNS)
Room 80 only contains a cutscene, where Indy and his father escape
from the zeppelin with the biplane. But it is started with
`cutscene()` instead of `cutscene([1])` which also disables the verb
interface.

The FM-TOWNS version doesn't like this and some verb leftovers were
mixed with the graphics. Adding the missing `[1]` parameter should fix
the issue.

Confirmed to also happen with the original interpreter under UNZ.
2022-07-02 12:38:40 +02:00
Donovan Watteau
34370de089 SCUMM: Fix wrong text color when Indy and his father escape from the zeppelin (FM-TOWNS)
Most lines in this cutscene miss their color parameter, which makes
both actors speak with the same color, which is confusing since one of
them suddenly appeared, and you can barely see them.

(For some reason, the PC VGA version also misses the color parameters,
but it works there, maybe because there's some palette-shifting going
on, which has been mostly removed in the FM-TOWNS version?).

We can fix this by always giving an explicit color to Indy's and his
father's lines. But the lines are not attached to any actor, and it's
hard to determine who's who, especially if we want to support
translations too. Henry Sr. is the only one using a wait() instruction
in his sentence, and he's the only one saying "Junior", so we try to
detect that.
2022-07-02 12:38:40 +02:00
Donovan Watteau
06edf3dd0c SCUMM: Fix Kerner's text not matching his voice in New York
The Talkie version of Indy4 changed Kerner's line when he uses the phone
booth in New York (reusing some words from the research lab scene), but
the text doesn't match with the voice in most releases: he says Ubermann
but the text mentions Fritz, in the English version.

The 1994 Talkie Macintosh release fixed this line, so we can replicate
this later, official fix as an enhancement for all the English talkie
releases.
2022-06-19 20:59:26 +03:00
Donovan Watteau
59cbd9003c SCUMM: Fix missing voice when selling back the hub cap and pirate hat
The Ultimate Talkie edition of Monkey Island 2 has a small script error
when you try to sell back your hub cap or your pirate hat to the antique
dealer.  It wasn't doing a comparison with the proper object number, and
so it would play a fallback line with no voice.
2022-06-18 21:52:59 +03:00
Donovan Watteau
6f8bd666b6 SCUMM: Restore the first frame of Indy's reaction drinking from the Grail
The original game always hides this first frame behind the second one,
probably so that this cutscene never starts with some previous frame
leftovers (since this animation will repeat as long as you pick up the
wrong Grail).

This is a bit unfortunate, especially since it also makes Indy appear
older if he drinks from the real Grail.  So, restore this first frame
and just reset any previously drawn object when starting this animation.
2022-06-16 02:57:39 +03:00
Donovan Watteau
74d4cb820a SCUMM: Fix the Nazis' uniforms in the corridors of Castle Brunwald (FM-TOWNS)
In Indy 3, some palette overrides were sometimes necessary to deal
with the 16-color limitation of EGA. When porting the game to the
FM-TOWNS, the palette overrides for the Nazis guards in the corridors
of Castle Brunwald weren't removed, and so their uniforms would be
gray there, although they were properly colored in green in all the
other rooms, including the zeppelin maze.

The PC VGA version doesn't have this problem, since they did remove
this palette override there.
2022-06-14 08:55:55 +03:00
AndywinXp
d5ad765ad7 SCUMM: MONKEY2: Mark workaround introduced in PR #1343 as enhancement 2022-06-14 00:20:29 +02:00
Donovan Watteau
e5601d34fe SCUMM: Fix Captain Dread's head when Guybrush says "It's me again."
When Guybrush interacts with Dread, Dread should turn and face him if
he's not already looking at him. But the original script forgot to do
this check on Bit[129] if Guybrush already met him, tries giving him
an object and then immediately talks to him.

Since Dread's movement is always done by 32 bytes of opcodes, we can
just skip that if its first drawObject() call was done although
Bit[129] was set.
2022-06-11 19:13:32 +03:00
Torbjörn Andersson
6a040e3ea2 SCUMM: Add adjustment sliders for VGA Loom (CD) and MI1 (CD)
When ripping the audio tracks from CD, you may not get quite what the
game expects, e.g. my copy of Loom has less silence at the start of the
track than the CDDA.SOU file from the Steam version. And the MI1 intro
appears to be timed with the assumption that there is no silence at all
at the start of that track.

This makes it possible to compensate for that without having to edit the
audio file. It may also be of some help with fan soundtrack replacements
for MI1, though I have little experience with that.
2022-06-03 21:03:58 +02:00
Donovan Watteau
fea1a2d392 SCUMM: Properly stop Wendy's music in MM NES
In the NES version of Maniac Mansion, each kid has their own CD player
playing a different background music by default.

Each CD player script does something like this when you turn it off:

(2F) if (!getState04(46)) {
(D8)   printEgo("It's already off.");
(18) } else {
(67)   clearState04(46);
(1A)   Var[224] = 0;  # <==
(3C)   stopSound(71);
(**) }

but Wendy's CD player script is missing the `Var[224] = 0` line, so
although her music was stopped, the game scripts weren't properly aware
of this, and so her music could suddenly resume, such as when entering
and leaving room 3 with her character.
2022-05-28 15:32:45 +03:00
Donovan Watteau
ee26cf4d18 SCUMM: Get the workaround for bug #1025 closer to the original behavior
In most (if not all) versions of Loom before the Talkie v4 release, one
of the shepherds should trigger a "We are the masters of stealth" line
if Bobbin tries to use the stealth draft on them, but no proper value for
the actor number is ever given.  In the original interpreters, the invalid
line would be skipped.  The Talkie release changes the lines a bit and
makes the third shepherd (act. 4) say something similar, instead.

Until now, ScummVM would work around this by forcing the leftmost (act. 2)
shepherd to say this line.  But, looking at the original script, it seems
that the original intent may have been to let any of the four shepherds
say this line, since script 232 expects a parameter which could be given
by any of the associated 422--425 (act. 2--5) actor objects.

So, moving this check from actorTalk() to o5_startScript() lets us
implement a more comprehensive workaround (with a bit more safety checks,
since there are so many Loom versions), but it also exposes another bug
in some EGA versions and derivatives (e.g. the French EGA version has it,
but the English EGA 1.1 version doesn't): if Bobbin uses the stealth draft
on the second shepherd (act. 3), then some line(s) will be completely
missing, potentially because this actor has been removed from the scene
in the earliest versions, although he's still in use.

Having zero reaction from the shepherds when you try their draft upon
them can be extremely confusing, so we need to work around this, too.

Forcing this actor to "stay" doesn't fix the issue for now (and the
symptoms are a bit different between ScummVM and the original
interpreters), so at the moment we force this workaround even if
`_enableEnhancements` is not enabled, when we detect this strange
actor behavior.
2022-05-21 17:30:34 +03:00
Torbjörn Andersson
f66d898dee SCUMM: Clean up Smirk close-up workarounds
I decided I prefer an empty if clause (which I find easier to read than
inverting the whole condition) than a premature break.
2022-04-26 14:45:30 +02:00
Donovan Watteau
422b8986f0 SCUMM: Fix Lima bird glitch in Zak FM-TOWNS (bug #2762)
When switching back to Zak after using the blue crystal on the bird in
Lima, the bird disappears, comes back, and disappears again.  This is a
very strange visual behavior that only happens in the FM-TOWNS version.

(This has been confirmed, back in 2006, to be an original bug that also
occurs under the Unz emulator.)

This V3 port added an unconditional putActor(6,136,0) call at the start
of the 201 script which controls this, negating the getActorX() and
getActorY() checks which happen a few lines later.  Ignoring this
putActor() call appears to restore the original V2 behavior, i.e. the
bird flies back to the pedestal.
2022-04-20 11:03:55 +03:00
Torbjörn Andersson
8de5d3e0ca SCUMM: Work around Loom script bug to show correct sleeping Rusty close-up
Some versions of Loom will always show the close-up of sleeping Rusty
where he's wearing his own clothes. Later versions (e.g. FM Towns and
VGA) will show different close-ups depending on if you've used the
Reflection draft on him. So this adds that check to the older versions
as well.

The original fixed versions will look at a variable to determine if
you've  used the Reflection draft on Rusty. Unfortunately, it's not the
same variable across all versions - there are even different EGA
versions with different variables! - so instead we check if the Bobbin
actor has a different costume. That seems to work across all versions so
far.
2022-04-08 06:42:16 +02:00
Torbjörn Andersson
88aaf2ce4d SCUMM: Make Fate of Atlantis intro workaround optional.
I didn't create this workaround, but I think it makes sense to make it
(ensuring that the window is broken and the coat is there even if you
skip the intro) optional.
2022-04-06 10:14:41 +02:00
Torbjörn Andersson
6b28000af8 SCUMM: Make it easier to go back to the cave in VGA Loom (bug #13385)
The object that the click registers on doesn't has an empty object
script, so it won't move you back into the caves. Redirect to the
appropriate object's script instead. I've verified with the built-in
debug mode that the original seems to have the same problem.

In the EGA version, and others I've tried, the problematic object is
later in the object list, so the cave object takes precedence.
2022-04-06 07:58:09 +03:00
Donovan Watteau
9b7654c56b SCUMM: Fix text color when Mandible speaks with Goodmold
Script 203 in room 90 only contains two lines, but the second one
is missing its color parameter in the original Talkie script.
2022-04-04 22:15:18 +03:00
Torbjörn Andersson
c447a9ccbd SCUMM: Fix missing Lemonhead line in MI1 Ultimate Talkie (bug #13374)
There was no WaitForMessage() after "Oooh, that's nice." when you give
the wimpy idol to the cannibals, so we simulate one. The other missing
lines, that were mysteriously dropped from the VGA CD version, were
probably never recorded so we make no attempt to reinstate them for this
version.
2022-04-03 07:27:35 +02:00
Torbjörn Andersson
608a334c22 SCUMM: Make recent Loom workarounds optional
Unfortunately that means I had to add the enhancements checkbox to the
EGA Loom settings widget, because I can't see any way to automatically
combine the static and dynamic settings widget. Oh well.
2022-03-23 16:02:49 +01:00
Torbjörn Andersson
cb561f462e SCUMM: Read the "enable_enhancements" setting only once
I can't change during gameplay, it's shorter to type, and we won't
accidentally involve the config manater in some tight loop.
2022-03-23 15:23:10 +01:00
Torbjörn Andersson
f496f75eb9 SCUMM: Make fixing Mandible's distaff animation in VGA Loom optional 2022-03-23 15:23:10 +01:00
Torbjörn Andersson
2a796cedd7 SCUMM: Make fixing VGA Loom "Choas" typo optional 2022-03-23 15:23:10 +01:00
Torbjörn Andersson
f4b1919da9 SCUMM: Make MI1 Smirk background noises optional 2022-03-23 15:23:10 +01:00
Torbjörn Andersson
88206f2ff4 SCUMM: Make MI1 clock tower restored behavior optional 2022-03-23 15:23:10 +01:00
Torbjörn Andersson
cf02446865 SCUMM: Make MI1 Smirk cigar smoke optional 2022-03-23 15:23:10 +01:00
Torbjörn Andersson
9c7cd2c7e2 SCUMM: Fix teleporting Rusty glitch in Loom (bug #13370)
Don't let the "send Rusty's ghost to guard the rift" script start as
long as the "make Rusty's ghost appear" script is running, because once
he reaches the rift he will then instantly teleport back to his body.

This bug happens in the original as well, though at least in ScummVM it
behaves a little bit differently in the FM Towns version than in any of
the other I tried. The fix still works for all of them, though.

The VGA talkie version is not affected, because there Rusty's ghost
appears in the rift, and the dialog makes sense regardless of whether
Bobbin or Rusty speaks first.
2022-03-23 10:40:27 +01:00
Torbjörn Andersson
60515e873b SCUMM: Don't allow Bobbin to escape through a closed door (bug #13367)
This was a script bug in the EGA DOS, Amiga and Atari ST versions, where
the open door object was left clickable after the door closed. Later
versions fixed it in two different ways: Either by making sure it wasn't
clickable, or by checking that the door really was open in the object
script.

We use the first fix, even though it becomes a bit inconsistent when the
object is later made unclickable. The second fix is only used by the FM
Towns and TurboGrafx-16 versions, as far as I can tell.
2022-03-22 14:24:01 +01:00
Torbjörn Andersson
041605f44c SCUMM: Play outdoors sound in CD version of MI1 during Smirk close-up
You're both still outside, so it doesn't make sense for the background
sound to suddenly stop. I guess the makers of the Special Edition agree,
because there the sound doesn't stop either.
2022-03-17 15:24:00 +01:00
Pragyansh Chaturvedi
34bc417d12
SCUMM: Fix bug #13196 - Invalid phrase with GIVE crashes Monkey EGA Demo
* SCUMM: Fix Invalid phrase with GIVE crashes Monkey Island EGA Demo
* SCUMM: Suggested changes on Pull #3731
* SCUMM: specify game id in Pull #3731
* SCUMM: seperated AMIGA monkey VGA and VGA Demo variants. Assigned GF_DEMO flags
2022-03-07 12:28:09 +02:00
Torbjörn Andersson
2f753222fe SCUMM: Work around timing bug when Mandible uses distaff in VGA Loom
The first and second animation when Mandible uses the distaff were so
close that they looked like one, and it looked like the second one was
missing. This patch adjusts the timing of the second one.
2022-03-05 20:01:05 +02:00
Torbjörn Andersson
27bd123278 SCUMM: Rewrite PC Engine Loom dragon workaround
The more I looked at it, the less I liked my old solution. Intercepting
getVar() meant that jumpRelative() would still be called, which made it
sensitive to what getVar() returned when the workaround was active. And
I have no idea how it didn't mess up _scriptPointer somewhere along the
way. So now it's in o5_equalZero() instead, where it can completely
replace the original instruction with o5_breakHere().
2022-02-23 19:19:37 +01:00
Torbjörn Andersson
1d71a2859c SCUMM: Work around TurboGrafx-16 / PC Engine Loom glitch
When examining the dragon's pile of gold a second time, the "Wow!"
message was not visible. This appears to be a scripting bug particular
to this version (it works in the EGA version), and we work around it by
simulating a WaitForMessage() instruction after the message is printed.
2022-02-23 16:35:58 +01:00
Torbjörn Andersson
907feaf84c SCUMM: Fix regression in ScummEngine_v5::decodeParseString()
I noticed that the "I am Choas" typo in VGA Loom was no longer patched,
and I'm guessing the other workarounds may have been broken too. This
was a regression from when the missing Lemonhead lines in Monkey Island
1 were reinstated.
2022-02-23 11:45:18 +01:00
Torbjörn Andersson
132a07c0e8 SCUMM: Fix graphics glitch in TurboGrafx-16 version of Loom
Now Bobbin's palette is changed when entering/leaving the darkened tent.
It's odd that this effect looks so different from all other versions of
the game that I've tried (VGA, EGA and FM Towns), but it seems to match
the original behavior based on YouTube videos I've watched.
2022-02-04 18:51:40 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh
ed5489929c SCUMM: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Torbjörn Andersson
2dbf32353d SCUMM: Hack Indy 3 Mac credits to use correct text color
The credits script asks for white shadowed text, but the original (at
least when running in Basilisk II) uses light gray shadowed text. I have
no idea why, and the only workaround I can think of is to force the text
color this way.

It's possible for scripts to remap colors, of course, but that's not
what seems to be going on here.
2021-10-19 19:24:31 +02:00
Torbjörn Andersson
7aadf63014 SCUMM: Add Spanish version of the MI1 Lemonhead patch
I don't have this version of the game myself, so it's based on a YouTube
playthrough and walking through the process of extracting the necessary
data with timofonic. It has not been properly tested, though the
messages do look correct if I insert them into the English version.
2021-09-02 13:14:42 +02:00
Filippos Karapetis
3f7e12f3fc SCUMM: Fix comment 2021-08-30 19:21:36 +03:00
Ben Castricum
86b7ca64a2 SCUMM: Indy4 - Put coat/window in office, fixes bug #12420
WORKAROUND bug #12420 (also occurs in original) Broken window and coat missing

This happens when you skip the cutscenes in the beginning, in particular
the one where Indy enters the office for the first time. If object 23 (National
Archeology) is in possession of Indy (owner == 1) then it's safe the force the
coat (object 24) and broken window (object 25) into the room to compensate for
the skipped code.
2021-08-30 19:21:36 +03:00
Ben Castricum
9f44c5522a SCUMM: MONKEY-VGA fix bug #10571, Object stopped with active cutscene
Also occurs in original

Script 68 contains the code for handling the mugs. The issue occurs when a mug
changes state. It will call setObjectName for the new state which in its turn
restarts objects in inventory. Some objects (kidnap note) can be in a cutscene state
what causes a crash if the object gets restarted. This workaroud waits for cutscenes
to end, preventing the crash.

Script #68
[0000] (DD) setClass(Local[0],[146]);
[0007] (28) if (!Bit[421]) {
[000C] (1A)   Bit[421] = 1;
[0011] (62)   stopScript(201);
[0013] (62)   stopScript(188);
[0015] (80)   breakHere();
[0016] (D8)   printEgo([Text(sound(0x612F889, 0xA) + "This stuff is eating right through the mug!")]);
[0054] (80)   breakHere();
[0055] (0A)   startScript(201,[]);
[0058] (**) }
[0058] (2E) delay(300);
[005C] (DD) setClass(Local[0],[147]);
[0063] (D4) setObjectName(Local[0],"melting mug");
[0072] (1A) Var[233] = 500;
[0077] (48) if (VAR_ROOM == 33) {
[007E] (3A)   Var[233] -= 2;
[0083] (48) } else if (VAR_ROOM == 35) {
[008D] (3A)   Var[233] -= 3;
[0092] (48) } else if (VAR_ROOM == 34) {
[009C] (3A)   Var[233] -= 5;
[00A1] (18) } else {
[00A4] (3A)   Var[233] -= 1;
[00A9] (**) }
[00A9] (80) breakHere();
[00AA] (78) unless (Var[233] < 1) goto 0077;
[00B1] (DD) setClass(Local[0],[134]);
[00B8] (D4) setObjectName(Local[0],"mug near death");
[00CA] (2E) delay(300);
[00CE] (DD) setClass(Local[0],[12]);
[00D5] (D4) setObjectName(Local[0],"pewter wad");
[00E3] (9A) Local[1] = VAR_ROOM;
[00E8] (80) breakHere();
[00E9] (C8) if (Local[1] == VAR_ROOM) {
[00F0] (18)   goto 00E8;
[00F3] (**) }
[00F3] (A9) setOwnerOf(Local[0],0);
[00F7] (A9) setOwnerOf(Local[0],15);
[00FB] (0A) startScript(11,[]);
[00FE] (0A) startScript(12,[]);
[0101] (DD) setClass(Local[0],[19,6,140]);
[010E] (0C) Resource.unlockScript(69);
[0111] (A0) stopObjectCode();
END
2021-08-23 00:08:08 +03:00
Ben Castricum
ccc7412c57 SCUMM: MONKEY-VGA fix bug #346, Object stopped with active cutscene
Also occurs in original.

In script 204 room 25 (Cannibal Village) a crash can occur when you are
expected to give something to the cannibals, but instead look at certain
items like the compass or kidnap note. Those inventory items contain little
cutscenes and are abrubtly stopped by the cutscene in script 204 at 0x0060.

This workaround changes the result of isScriptRunning(164) to also wait for
any inventory scripts that are in a cutscene state, preventing the crash.

Script #204
[0000] (1A) Bit[354] = 1;
[0005] (1A) Var[249] = 0;
[000A] (5D) setClass(303,[32]);
[0011] (DD) setClass(VAR_EGO,[5]);
[0018] (2E) delay(1200);
[001C] (80) breakHere();
[001D] (68) VAR_RESULT = isScriptRunning(164);
[0021] (A8) if (VAR_RESULT) {
[0026] (18)   goto 001C;
[0029] (**) }
[0029] (58) endOverride();
[002B] (91) animateCostume(VAR_EGO,3);
[002F] (5D) setClass(303,[160]);
[0036] (40) cutscene([]);
[0038] (AE) WaitForMessage();
[003A] (14) print(5,[Text("Obviously you have nothing for us.")]);
[0060] (C0) endCutscene();
[0061] (2A) startScript(105,[],F);
[0064] (A0) stopObjectCode();
END
2021-08-23 00:08:08 +03:00