On Sat, Feb 10, 2001 at 12:16:34PM +0100, Christoph Reichenbach wrote:
> And it seems to work there for you...
But the loop isn't set to -1 the first time.
> No, I don't have a client object either, and it works fine. The calling script
> is probably checking doorSound explicitly.
Hmm. This is interesting.
I don't have this code at all getting executed here...
2B54: [B] callk IsObject[6] 02 -- acc=0001 (0xaab2; the sound handle)
2B57: [W] not -- acc=0000
2B58: [W] bnt 0001 [2b59]
2B5C: [B] lsp 01
2B5E: [W] push0
2B5F: [B] &rest 02
2B61: [B] lat 02
2B63: [W] send 04 doorSound::check[FUNCT]()
419D: [B] pToa 12 (signal)
419F: [W] bnt 0019 [41b8]
41A2: [W] push1
41A3: [B] pTos 16 (client)
41A5: [B] callk IsObject[6] 02 Kernel params: (0000)
41A8: [W] bnt 0008 [41b0]
41B3: [B] pToa 12 (signal)
41B5: [B] aTop 14 (prevSignal)
what's on the stack when you call doorSound::check[FUNCT]() ?
> I haven't seen this one in your trace, but this is the place where
> the door sound is actually "finished": When the "loop" signal reaches
> the object, the signal property is set to 0xffff, so the 'eq' after
> (1) matches, and DoSound(STOP_ALL) is invoked. I haven't checked what
This isn't happening for me, because the door sound never "finishes" --
it's looping, after all. :)
> happens then, but I'd guess that doorSound gets the "stopped" message
> from the sound server, and the game continues as soon as soon as
> it realizes that doorSound has been stopped.
Yes, this is what happens when I disable the loop.
> This is how it works on my system with my version of SQ3. Please go
> on checking where you left off- the "loop" signal (0xffff) should come
> next...
The 'loop' signal seems to be getting lost, from what I can tell:
> snk
Kernel CHECK: Animate[b](90b8, 0001)
FSCI: process_sound_events(ksound.c L105): Received absolute cue 9 for aab2
FSCI: process_sound_events(ksound.c L67): Received loop signal (-1) for aab2
pc=3a2b acc=0456 o=0456 fp=69be sp=69c2
prev=3c sbase=6994 globls=23fa &restmod=0
Step #363011
3A2B: [B] callk IsObject[6] 02
Kernel params: (0000)
> heapobj 0xaab2
Object doorSound
Species=000a, Superclass=4250
Local variables @ 0xacb0
Variable selectors:
species[0000] = 000a
superClass[0001] = 4250
-info-[0002] = 0000
name[0017] = aca2
state[0020] = 0002
number[002b] = 0005
priority[003f] = 0000
loop[0006] = ffff
handle[002c] = 0000
signal[0011] = 0009
prevSignal[0081] = 0009
client[002d] = 0000
owner[0082] = 0000
So 'loop' is getting set correctly, but 'signal' has the value of the
previous signal.
Time to find out why.
- Pizza
--
Solomon Peachy pizzaATfucktheusers.org
I ain't broke, but I'm badly bent. ICQ# 1318344
Patience comes to those who wait.
...It's not "Beanbag Love", it's a "Transanimate Relationship"...