diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/dreamweb/dreamgen.cpp | 76 | ||||
-rw-r--r-- | engines/dreamweb/dreamgen.h | 3 | ||||
-rw-r--r-- | engines/dreamweb/object.cpp | 76 | ||||
-rw-r--r-- | engines/dreamweb/stubs.h | 1 |
4 files changed, 78 insertions, 78 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp index 5b869d44a3..d9a2f7a44f 100644 --- a/engines/dreamweb/dreamgen.cpp +++ b/engines/dreamweb/dreamgen.cpp @@ -3851,81 +3851,6 @@ findopen2a: goto findopen1a; } -void DreamGenContext::examineob() { - STACK_CHECK; - data.byte(kPointermode) = 0; - data.word(kTimecount) = 0; -examineagain: - data.byte(kInmaparea) = 0; - data.byte(kExamagain) = 0; - data.byte(kOpenedob) = 255; - data.byte(kOpenedtype) = 255; - data.byte(kInvopen) = 0; - al = data.byte(kCommandtype); - data.byte(kObjecttype) = al; - data.byte(kItemframe) = 0; - data.byte(kPointerframe) = 0; - createpanel(); - showpanel(); - showman(); - showexit(); - obicons(); - obpicture(); - describeob(); - undertextline(); - data.byte(kCommandtype) = 255; - readmouse(); - showpointer(); - worktoscreen(); - delpointer(); -waitexam: - readmouse(); - showpointer(); - vsync(); - dumppointer(); - dumptextline(); - delpointer(); - data.byte(kGetback) = 0; - bx = offset_examlist; - _cmp(data.byte(kInvopen), 0); - if (flags.z()) - goto notuseinv; - bx = offset_invlist1; - _cmp(data.byte(kInvopen), 1); - if (flags.z()) - goto notuseinv; - bx = offset_withlist1; -notuseinv: - checkcoords(); - _cmp(data.byte(kQuitrequested), 0); - if (!flags.z()) - goto stopwaiting; - _cmp(data.byte(kExamagain), 0); - if (flags.z()) - goto norex; - goto examineagain; -norex: - _cmp(data.byte(kGetback), 0); - if (flags.z()) - goto waitexam; -stopwaiting: - data.byte(kPickup) = 0; - _cmp(data.word(kWatchingtime), 0); - if (!flags.z()) - goto iswatching; - _cmp(data.byte(kNewlocation), 255); - if (!flags.z()) - goto justgetback; -iswatching: - makemainscreen(); - data.byte(kInvopen) = 0; - data.byte(kOpenedob) = 255; - return; -justgetback: - data.byte(kInvopen) = 0; - data.byte(kOpenedob) = 255; -} - void DreamGenContext::makemainscreen() { STACK_CHECK; createpanel(); @@ -16698,7 +16623,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) { case addr_monprint: monprint(); break; case addr_fillopen: fillopen(); break; case addr_findallopen: findallopen(); break; - case addr_examineob: examineob(); break; case addr_makemainscreen: makemainscreen(); break; case addr_getbackfromob: getbackfromob(); break; case addr_incryanpage: incryanpage(); break; diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h index 4ba7e40e54..e74f68c72e 100644 --- a/engines/dreamweb/dreamgen.h +++ b/engines/dreamweb/dreamgen.h @@ -479,7 +479,6 @@ public: static const uint16 addr_incryanpage = 0xc348; static const uint16 addr_getbackfromob = 0xc344; static const uint16 addr_makemainscreen = 0xc340; - static const uint16 addr_examineob = 0xc33c; static const uint16 addr_findallopen = 0xc32c; static const uint16 addr_fillopen = 0xc324; static const uint16 addr_monprint = 0xc314; @@ -1680,7 +1679,7 @@ public: void openinv(); void lookatplace(); void useaxe(); - void examineob(); + //void examineob(); void buttonnought(); void useelvdoor(); void putbackobstuff(); diff --git a/engines/dreamweb/object.cpp b/engines/dreamweb/object.cpp index e2da902465..a1d6e1da7c 100644 --- a/engines/dreamweb/object.cpp +++ b/engines/dreamweb/object.cpp @@ -110,5 +110,81 @@ void DreamGenContext::obicons() { } } +void DreamGenContext::examineob() { + STACK_CHECK; + data.byte(kPointermode) = 0; + data.word(kTimecount) = 0; +examineagain: + data.byte(kInmaparea) = 0; + data.byte(kExamagain) = 0; + data.byte(kOpenedob) = 255; + data.byte(kOpenedtype) = 255; + data.byte(kInvopen) = 0; + al = data.byte(kCommandtype); + data.byte(kObjecttype) = al; + data.byte(kItemframe) = 0; + data.byte(kPointerframe) = 0; + createpanel(); + showpanel(); + showman(); + showexit(); + obicons(); + obpicture(); + describeob(); + undertextline(); + data.byte(kCommandtype) = 255; + readmouse(); + showpointer(); + worktoscreen(); + delpointer(); +waitexam: + readmouse(); + showpointer(); + vsync(); + dumppointer(); + dumptextline(); + delpointer(); + data.byte(kGetback) = 0; + bx = offset_examlist; + _cmp(data.byte(kInvopen), 0); + if (flags.z()) + goto notuseinv; + bx = offset_invlist1; + _cmp(data.byte(kInvopen), 1); + if (flags.z()) + goto notuseinv; + bx = offset_withlist1; +notuseinv: + checkcoords(); + _cmp(data.byte(kQuitrequested), 0); + if (!flags.z()) + goto stopwaiting; + _cmp(data.byte(kExamagain), 0); + if (flags.z()) + goto norex; + goto examineagain; +norex: + _cmp(data.byte(kGetback), 0); + if (flags.z()) + goto waitexam; +stopwaiting: + data.byte(kPickup) = 0; + _cmp(data.word(kWatchingtime), 0); + if (!flags.z()) + goto iswatching; + _cmp(data.byte(kNewlocation), 255); + if (!flags.z()) + goto justgetback; +iswatching: + makemainscreen(); + data.byte(kInvopen) = 0; + data.byte(kOpenedob) = 255; + return; +justgetback: + data.byte(kInvopen) = 0; + data.byte(kOpenedob) = 255; +} + + } /*namespace dreamgen */ diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h index 27bbe31cfc..52e0e8516f 100644 --- a/engines/dreamweb/stubs.h +++ b/engines/dreamweb/stubs.h @@ -249,4 +249,5 @@ void showcity(); uint16 getpersframe(uint8 index); void convicons(); + void examineob(); |