Prev: 9667 Up: Map Next: 9731
9683: Draw Rex and shield
Used by the routine at 9470.
9683 LD A,($A1F6) Return if Rex is not visible
9686 OR A
9687 RET Z
9688 LD A,($A1EE) Jump to handle dead animation if Rex is dead
968B OR A
968C JP NZ,$9BA7
This entry point is used by the routine at 9BA7.
968F LD A,($A24F) Set A248 the x-position of Rex
9692 LD ($A248),A
9695 LD A,($A250) Set A249 the y-position of Rex
9698 LD ($A249),A
969B LD A,$03 Set A24A the width in bytes of Rex
969D LD ($A24A),A
96A0 LD A,$10 Set A24B the height in pixels of Rex
96A2 LD ($A24B),A
96A5 XOR A Set the entity type for Rex
96A6 LD ($A1CC),A
96A9 LD HL,$AF52 Set HL the address for the offset animation for Rex
96AC LD DE,$8418 Set DE the address for graphic data of Rex falling/jumping
96AF LD A,($A213) Jump forward if Rex on elevator
96B2 OR A
96B3 JP NZ,$96C4
96B6 LD A,($A256) Jump forward if Rex is jumping
96B9 OR A
96BA JP NZ,$96CA
96BD LD A,($A255) Jump forward if Rex is falling
96C0 OR A
96C1 JP NZ,$96CA
96C4 LD HL,$AF52 Set HL the address for the offset animation for Rex
96C7 LD DE,$8358 Set DE the address for graphic data of Rex walking
Rex is falling or jumping
96CA LD A,($A254) Set A the facing direction of Rex
96CD CALL $B296 Draw Rex
96D0 LD A,($A1E2) Return if shield not active
96D3 OR A
96D4 RET Z
draw shield
96D5 LD A,($D5D2) Jump forward if channel 2 is playing
96D8 CP $FF
96DA JP NZ,$96F2
96DD CALL $A51D Set A to a pseudo random number between 0-31
96E0 AND $1F
96E2 LD E,A Configure random fine/noise pitch into shield sound data
96E3 LD D,$00
96E5 LD HL,$04B0
96E8 ADD HL,DE
96E9 LD ($D538),HL
96EC LD DE,$D534 Set DE to play shield sound
96EF CALL $D37F Configure sound channel and mixer register
96F2 LD L,$01 Decrease 1 shield point
96F4 CALL $98F1
96F7 LD A,($A24F) Set A248 the x-position for the shield
96FA SUB $04
96FC LD ($A248),A
96FF LD A,($A254) Jump forward if Rex facing right
9702 OR A
9703 JP Z,$970E
9706 LD A,($A248) Increment x-position of shield if Rex is facing left
9709 ADD A,$08
970B LD ($A248),A
970E LD A,($A250) Set A249 the y-position for the shield
9711 SUB $02
9713 LD ($A249),A
9716 LD A,$04 Set A24A the width in bytes of the shield
9718 LD ($A24A),A
971B LD A,$15 Set A24B the height in pixels of the shield
971D LD ($A24B),A
9720 XOR A Set entity type of #0
9721 LD ($A1CC),A
9724 LD HL,$AF5A Set HL the address pointer for shield offsets
9727 LD DE,$8918 Set HL the address pointer for shield graphic data
972A LD A,($A254) Set A the face direction of Rex
972D CALL $B296 Draw shield
9730 RET
Prev: 9667 Up: Map Next: 9731