Prev: 752d Up: Map Next: 75d1
753c: Jetman walking.
Input
IX Jetman object.
753c call $72ef Update Actor position direction
753f call $7309 Read Left/Right input
7542 bit 3,a Walk RIGHT
7544 jr z,$75ad
7546 bit 4,a Walk LEFT
7548 jp z,$75bf
754b ld (ix+$05),$00 else set Jetman X speed to zero
754f call $735e Read THRUST button
7552 bit 1,a Walk off platform if thrusting
7554 jr z,$757f
7556 call $75e8 Platform collision check (returns E)
7559 bit 2,e Leave platform if bit-2 is reset
755b jr z,$757f
755d bit 3,e Redraw Jetman if bit-3 is reset
755f jp z,$7492
7562 ld a,(ix+$05) Jetman X speed
7565 and a
7566 jp nz,$7492 Redraw Jetman if X speed > 0
7569 bit 6,(ix+$00) Jetman leaves a platform, either left or right based on the value of bit-6. The X position is dec/inc appropriately, and the Redraw Jetman routine is called. Note also that the X speed is set to max walking speed, but this instruction might be irrelevant as hacking the speed value has no noticeable effect.
756d jr z,$7575
756f dec (ix+$01)
7572 jp $7492
7575 inc (ix+$01)
7578 ld (ix+$05),$20
757c jp $7492
Jetman leaves a platform by thrusters or by walking.
757f ld a,(ix+$00) Jetman direction
7582 and $c0 Reset FLY and WALK bits
7584 or $01 Now set movement to FLY
7586 ld (ix+$00),a Update Jetman direction to be flying
7589 ld hl,($5d01) HL=Jetman Y,X position
758c push ix
758e ld ix,$5d48 IX=Jetman thruster animation object
7592 ld a,(ix+$00) Jump if thrusters are already being animated
7595 and a
7596 jr nz,$75a2
7598 ld (ix+$00),$03 else set thrusters to be animating?
759c ld ($5d49),hl
759f call $685d Update actor movement states
75a2 pop ix Restore IX to Jetman object
75a4 dec (ix+$02) Jetman Y position -= 2
75a7 dec (ix+$02)
75aa jp $7492 Redraw Jetman
Jetman walks right.
75ad inc (ix+$01) Jetman X position += 1
75b0 res 6,(ix+$00) Jetman direction is right
75b4 res 6,(ix+$04) Jetman moving direction to right
75b8 ld (ix+$05),$20 Set Jetman X speed to maximum
75bc jp $754f Loop back, checking again for THRUST input
Jetman walks left.
75bf dec (ix+$01) Jetman X position -= 1
75c2 set 6,(ix+$00) Jetman direction is left
75c6 set 6,(ix+$04) Jetman moving direction to left
75ca ld (ix+$05),$20 Set Jetman X speed to maximum
75ce jp $754f Loop back, checking again for THRUST input
Prev: 752d Up: Map Next: 75d1