But there's no separation really because while gCurrentRegionFlags is technically a local, it's declared in Main.sc and thus treated like a global anyway - in the console running
l 0 150 is equal to running
vv g 150 - in either case the output is
002f:0508 (object 'goldFlags').
About question 3, you would think if bpe can't be used, at least
Flags::set should work, but it doesn't. This is even though according
to this in KQ6
bpx KQ6Print::say works, whereas KQ6Print is a class just like Flags and say is a method just like set (
see code). According
to this, it should also be similar to Laura Bow 2's
bpx bugsWithMeat::cue (
see code).
But I've found an interim solution -
bpa 000e:00a7 - I don't like it because there's no pasting in ScummVM's console and who wants to type down this address, but it works nonetheless.
Here's how I deduced that Flags' set can be called directly with address 000e:00a7:
- value_type Flags indeed outputs Object.
- scro 985 outputs:
=== SCRIPT 985 inside Segment 000e (14d) ===
001:0154: Flags
- vo 000e:0154 outputs:
[000e:0154] Flags : 11 vars, 6 methods
-- member variables:
(0000) [1000] -objID- = 0000:1234 (4660)
(0001) [1001] -size- = 0000:000b (11)
(0002) [1002] -propDict- = 000e:0008
(0003) [1003] -methDict- = 0000:001e (30)
(0004) [1004] -classScript- = 0000:03d9 (985)
(0005) [1005] -script- = 0000:007d (125)
(0006) [1006] -super- = 0004:092f (Obj)
(0007) [1007] -info- = 0000:8000 (32768)
(0008) [014] name = 000e:016c
(0009) [056] size = 0000:0000 (0)
(000a) [1d5] array = 0000:0000 (0)
-- methods:
[06e] init = 000e:0038
[06f] dispose = 000e:0091
[0ba] setSize = 000e:004a
[0a0] set = 000e:00a7
[26c] clear = 000e:00e7
[26d] test = 000e:0128
[06d] Obj::new = 0004:02cb
[039] Obj::doit = 0004:02d2
[070] Obj::showStr = 0004:02da
[071] Obj::showSelf = 0004:02e3
[060] Obj::perform = 0004:02f7
[072] Obj::isKindOf = 0004:0334
[073] Obj::isMemberOf = 0004:030a
[074] Obj::respondsTo = 0004:0302
[075] Obj::yourself = 0004:036b