Prev: B7A0 Up: Map Next: B83D
B7E1: Animation: Throwing Dart
Used by the routine at Messaging_DartNumber.
Animation_ThrowingDart B7E1 LD E,$04 E=04.
B7E3 CALL $A875 Call A875.
B7E6 AND A Call Animation_BarMaid if A is zero.
B7E7 CALL Z,Animation_BarMaid
First show the playing "lining up" the shot...
B7EA LD B,$03 Set a counter in B for the number of times to loop the animation.
Aiming_Loop B7EC PUSH BC Stash the animation loop counter on the stack.
Frame 01.
B7ED LD DE,$C644 DE=Graphics_Throwing_01.
B7F0 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
Frame 02.
B7F3 LD DE,$C68C DE=Graphics_Throwing_02.
B7F6 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
Frame 03.
B7F9 LD DE,$C6D4 DE=Graphics_Throwing_03.
B7FC CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
Frame 02.
B7FF LD DE,$C68C DE=Graphics_Throwing_02.
B802 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
B805 POP BC Restore the animation loop counter from the stack.
B806 DJNZ Aiming_Loop Decrease the animation loop counter by one and loop back to Aiming_Loop until the counter is zero.
Show the last frame (frame 01 again).
B808 LD DE,$C644 DE=Graphics_Throwing_01.
B80B CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
B80E LD B,$12 B=12.
B810 LD HL,$40F2 HL=40F2 (screen buffer location).
Animation_ThrowingDart_0 B813 PUSH BC Stash BC and HL on the stack.
B814 PUSH HL
B815 CALL $B92F Call B92F.
B818 POP HL Restore HL and BC from the stack.
B819 POP BC
B81A DEC L Decrease L by one.
B81B DJNZ Animation_ThrowingDart_0 Decrease counter by one and loop back to Animation_ThrowingDart_0 until counter is zero.
B81D INC L Increment L by one.
B81E LD B,$03 B=03.
B820 LD DE,$C71C DE=Graphics_Dart.
Animation_ThrowingDart_1 B823 LD A,(DE) A=*DE.
B824 OR (HL) Set the bits from *HL.
B825 LD (HL),A Write A to *HL.
B826 INC DE Increment DE by one.
B827 INC L Increment L by one.
B828 LD A,(DE) A=*DE.
B829 OR (HL) Set the bits from *HL.
B82A LD (HL),A Write A to *HL.
B82B INC DE Increment DE by one.
B82C INC H Increment H by one.
B82D LD A,(DE) A=*DE.
B82E OR (HL) Set the bits from *HL.
B82F LD (HL),A Write A to *HL.
B830 INC DE Increment DE by one.
B831 DEC L Decrease L by one.
B832 LD A,(DE) A=*DE.
B833 OR (HL) Set the bits from *HL.
B834 LD (HL),A Write A to *HL.
B835 INC H Increment H by one.
B836 INC DE Increment DE by one.
B837 DJNZ Animation_ThrowingDart_1 Decrease counter by one and loop back to Animation_ThrowingDart_1 until counter is zero.
B839 CALL Sounds_OpponentDart Call Sounds_OpponentDart.
B83C RET Return.
Prev: B7A0 Up: Map Next: B83D