Bucket Mouse
Active member
Currently trying (again) to make all sprites on screen freeze in place (instead of disappear) every time a text box appears. If I can't do this, I can't make sprite cutscenes. It stands to reason you need to see your actors!
I've found the point where it happens: at the beginning of doDrawBox.asm. The script checks for the box flag trigger and if it's found, it triggers the sprite shut-off switch:
doHandleObjects starts out looking for that flag and it terminates the entire script with an RTS if it's found:
The next step would be to replace it with something that freezes the sprites, but I have no idea what that is. There is a "StopMoving" macro, so I tried that:
Nope, nothing happens. What am I missing? What other ways are there to stop all the sprites onscreen?
I've found the point where it happens: at the beginning of doDrawBox.asm. The script checks for the box flag trigger and if it's found, it triggers the sprite shut-off switch:
Code:
checkQueueFlags:
LDA queueFlags
AND #%10000000
BEQ skipSettingUpBox
LDA gameStatusByte
ORA #%00000001 ;;; this will skip object handling.
STA gameStatusByte
doHandleObjects starts out looking for that flag and it terminates the entire script with an RTS if it's found:
Code:
doHandleObjects:
LDA gameStatusByte
AND #%00000001 ;;; this will skip object handling.
BEQ dontSkipObjectHandling
RTS
dontSkipObjectHandling:
The next step would be to replace it with something that freezes the sprites, but I have no idea what that is. There is a "StopMoving" macro, so I tried that:
Code:
LDX player1_object
STX temp ;; assumes the object that we want is in x.
StopMoving temp, #$FF
LDX Monster1ID
STX temp ;; assumes the object that we want is in x.
StopMoving temp, #$FF
LDX Monster2ID
STX temp ;; assumes the object that we want is in x.
StopMoving temp, #$FF
LDX Monster3ID
STX temp ;; assumes the object that we want is in x.
StopMoving temp, #$FF
LDX Monster4ID
STX temp ;; assumes the object that we want is in x.
StopMoving temp, #$FF
Nope, nothing happens. What am I missing? What other ways are there to stop all the sprites onscreen?