Prev: 47008 Up: Map Next: 47165
47073: Animation: Throwing Dart
Used by the routine at Animation_OpponentThrowing.
Animation_ThrowingDart 47073 LD E,4 E=4.
47075 CALL 43125 Call 43125.
47078 AND A Call Animation_BarMaid if A is zero.
47079 CALL Z,Animation_BarMaid
First show the playing "lining up" the shot...
47082 LD B,3 Set a counter in B for the number of times to loop the animation.
Aiming_Loop 47084 PUSH BC Stash the animation loop counter on the stack.
Frame 1.
47085 LD DE,50756 DE=Graphics_Throwing_01.
47088 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
Frame 2.
47091 LD DE,50828 DE=Graphics_Throwing_02.
47094 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
Frame 3.
47097 LD DE,50900 DE=Graphics_Throwing_03.
47100 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
Frame 2.
47103 LD DE,50828 DE=Graphics_Throwing_02.
47106 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
47109 POP BC Restore the animation loop counter from the stack.
47110 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 1 again).
47112 LD DE,50756 DE=Graphics_Throwing_01.
47115 CALL Print_ThrowingDart_Frame Call Print_ThrowingDart_Frame.
47118 LD B,18 B=18.
47120 LD HL,16626 HL=16626 (screen buffer location).
Animation_ThrowingDart_0 47123 PUSH BC Stash BC and HL on the stack.
47124 PUSH HL
47125 CALL Animation_Dart Call Animation_Dart.
47128 POP HL Restore HL and BC from the stack.
47129 POP BC
47130 DEC L Decrease L by one.
47131 DJNZ Animation_ThrowingDart_0 Decrease counter by one and loop back to Animation_ThrowingDart_0 until counter is zero.
47133 INC L Increment L by one.
47134 LD B,3 B=3.
47136 LD DE,50972 DE=Graphics_Dart.
Animation_ThrowingDart_1 47139 LD A,(DE) A=*DE.
47140 OR (HL) Set the bits from *HL.
47141 LD (HL),A Write A to *HL.
47142 INC DE Increment DE by one.
47143 INC L Increment L by one.
47144 LD A,(DE) A=*DE.
47145 OR (HL) Set the bits from *HL.
47146 LD (HL),A Write A to *HL.
47147 INC DE Increment DE by one.
47148 INC H Increment H by one.
47149 LD A,(DE) A=*DE.
47150 OR (HL) Set the bits from *HL.
47151 LD (HL),A Write A to *HL.
47152 INC DE Increment DE by one.
47153 DEC L Decrease L by one.
47154 LD A,(DE) A=*DE.
47155 OR (HL) Set the bits from *HL.
47156 LD (HL),A Write A to *HL.
47157 INC H Increment H by one.
47158 INC DE Increment DE by one.
47159 DJNZ Animation_ThrowingDart_1 Decrease counter by one and loop back to Animation_ThrowingDart_1 until counter is zero.
47161 CALL Sounds_OpponentDart Call Sounds_OpponentDart.
47164 RET Return.
Prev: 47008 Up: Map Next: 47165