diff options
author | James Brown | 2002-03-07 04:29:24 +0000 |
---|---|---|
committer | James Brown | 2002-03-07 04:29:24 +0000 |
commit | aea131d95b18df2556d5d5f2c8971ab5650c093e (patch) | |
tree | 9615ee9d123eaa540ea5c1851f6a0ee981fdaff8 /script_v2.cpp | |
parent | 49b7294423b56ed125a7b947cc432ddc48e8635c (diff) | |
download | scummvm-rg350-aea131d95b18df2556d5d5f2c8971ab5650c093e.tar.gz scummvm-rg350-aea131d95b18df2556d5d5f2c8971ab5650c093e.tar.bz2 scummvm-rg350-aea131d95b18df2556d5d5f2c8971ab5650c093e.zip |
Fixes to Sam and Max subgames.
Add 'insane.cpp' to VC++ project.
svn-id: r3675
Diffstat (limited to 'script_v2.cpp')
-rw-r--r-- | script_v2.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/script_v2.cpp b/script_v2.cpp index 11591fee53..710811164c 100644 --- a/script_v2.cpp +++ b/script_v2.cpp @@ -151,7 +151,7 @@ void Scumm::setupOpcodes2() { &Scumm::o6_setObjectXY, &Scumm::o6_drawBlastObject, /* 64 */ - &Scumm::o6_invalid, + &Scumm::o6_samGame, &Scumm::o6_stopObjectCode, &Scumm::o6_stopObjectCode, &Scumm::o6_endCutscene, @@ -673,7 +673,17 @@ void Scumm::setupOpcodes2() { _opcodes = opcode_list; _opcodes_lookup = opcode_lookup; } +void Scumm::o6_samGame() { + int a, b, c, d; + // Sam and Max game opcode + d = pop(); + c = pop(); + b = pop(); + a = pop(); + + // sub_274EF(a, b, c, d); +} int Scumm::popRoomAndObj(int *room) { int obj; @@ -2569,10 +2579,6 @@ void Scumm::o6_miscOps() { unkMiscOp9(); break; - case 124: /* samnmax */ - warning("o6_miscOps: _saveSound=%d", args[1]); - break; - case 104: /* samnmax */ nukeFlObjects(args[2], args[3]); break; @@ -2643,7 +2649,12 @@ void Scumm::o6_miscOps() { break; case 123: - error("stub o6_miscOps_123(%d,%d)", args[1], args[2]); + swapPalColors(args[1],args[2]); + break; + + case 124: /* samnmax */ + warning("o6_miscOps: _saveSound=%d", args[1]); + _saveSound = args[1]; break; default: @@ -2658,8 +2669,13 @@ void Scumm::o6_kernelFunction() { Actor *a; getStackList(args,sizeof(args)/sizeof(args[0])); - + switch(args[0]) { + case 113: + // Do something to [1] x [2] (x/y) + warning("o6_kernelFunction: stub113(%d,%d)", args[1], args[2]); + push(0); + break; case 115: warning("o6_kernelFunction: stub115(%d,%d)", args[1], args[2]); push(0); |