|  | Routines | 
| Prev: B7A0 | Up: Map | Next: B83D | 
| 
Used by the routine at Animation_OpponentThrowing.
 | ||||
| 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 Animation_Dart | Call Animation_Dart. | ||
| 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 |