Prev: 43740 Up: Map Next: 44093
43822: Animation: Opponent Throwing
Used by the routine at Messaging_YouWin.
Animation_OpponentThrowing 43822 LD HL,56576 Copy 6912 bytes of data from *PubScene to Loading.
43825 LD DE,16384
43828 LD BC,6912
43831 LDIR
43833 LD BC,(39598) BC=*CurrentOpponent_PubScene.
43837 LD D,6 D=6.
43839 LD E,22 E=22.
43841 CALL Draw_OpponentPubScene Call Draw_OpponentPubScene.
Self-modifying code.
43844 LD A,237 Writes an extra LDI to 47338.
43846 LD (47338),A
43849 LD A,160
43851 LD (47339),A
43854 LD E,10 E=10.
43856 CALL 43125 Call 43125.
43859 AND A Jump to Animation_OpponentThrowing_0 if A is not equal to 10.
43860 JR NZ,Animation_OpponentThrowing_0
43862 LD HL,18608 HL=18608 (screen buffer location).
43865 LD DE,51388 DE=Graphics_Dog_02.
43868 CALL Print_Dog_Frame_0 Call Print_Dog_Frame_0.
43871 LD A,1 Write 1 to *39594.
43873 LD (39594),A
Animation_OpponentThrowing_0 43876 LD HL,44278 Copy 0003 bytes of data from *Current_Total to *39727.
43879 LD DE,39727
43882 LD BC,3
43885 LDIR
43887 CALL Messaging_CurrentTotal Call Messaging_CurrentTotal.
43890 CALL LongPause Call LongPause.
43893 CALL ClearMessagingArea Call ClearMessagingArea.
43896 CALL PrintString_Loop Call PrintString_Loop.
43899 DEFB 16,7 INK: WHITE.
43901 DEFB 17,0 PAPER: BLACK.
43903 DEFB 18,1 FLASH: ON.
43905 DEFB 22,22,0 PRINT AT: 22, 0.
43908 DEFM "1ST DART" 1st-dart
43916 DEFB 255 Terminator.
43917 CALL Messaging_AimingAt Call Messaging_AimingAt.
43920 CALL 44981 Call 44981.
43923 CALL 44283 Call 44283.
43926 CALL Animation_ThrowingDart Call Animation_ThrowingDart.
43929 CALL ReportOpponentScore Call ReportOpponentScore.
43932 CALL LongPause Call LongPause.
43935 LD A,(46098) Jump to Handler_OpponentWins if *46098 is not equal to zero.
43938 AND A
43939 JP NZ,Handler_OpponentWins
43942 LD A,(46103) Jump to Messaging_Bust if *46103 is not equal to zero.
43945 AND A
43946 JP NZ,Messaging_Bust
43949 CALL ClearMessagingArea Call ClearMessagingArea.
43952 CALL 44981 Call 44981.
43955 CALL PrintString_Loop Call PrintString_Loop.
43958 DEFB 16,7 INK: WHITE.
43960 DEFB 17,0 PAPER: BLACK.
43962 DEFB 18,1 FLASH: ON.
43964 DEFB 22,22,0 PRINT AT: 22, 0.
43967 DEFM "2ND DART" 2nd-dart
43975 DEFB 255 Terminator.
43976 CALL Messaging_AimingAt Call Messaging_AimingAt.
43979 CALL 44283 Call 44283.
43982 CALL Animation_ThrowingDart Call Animation_ThrowingDart.
43985 CALL ReportOpponentScore Call ReportOpponentScore.
43988 CALL LongPause Call LongPause.
43991 LD A,(46098) Jump to Handler_OpponentWins if *46098 is not equal to 0.
43994 AND A
43995 JP NZ,Handler_OpponentWins
43998 LD A,(46103) Jump to Messaging_Bust if *46103 is not equal to 0.
44001 AND A
44002 JP NZ,Messaging_Bust
44005 CALL ClearMessagingArea Call ClearMessagingArea.
44008 CALL 44981 Call 44981.
44011 CALL PrintString_Loop Call PrintString_Loop.
44014 DEFB 16,7 INK: WHITE.
44016 DEFB 17,0 PAPER: BLACK.
44018 DEFB 18,1 FLASH: ON.
44020 DEFB 22,22,0 PRINT AT: 22, 0.
44023 DEFM "3RD DART" 3rd-dart
44031 DEFB 255 Terminator.
44032 CALL Messaging_AimingAt Call Messaging_AimingAt.
44035 CALL 44283 Call 44283.
44038 CALL Animation_ThrowingDart Call Animation_ThrowingDart.
44041 CALL ReportOpponentScore Call ReportOpponentScore.
44044 CALL LongPause Call LongPause.
44047 LD A,(46098) Jump to Handler_OpponentWins if *46098 is not equal to 0.
44050 AND A
44051 JP NZ,Handler_OpponentWins
44054 LD A,(46103) Jump to Messaging_Bust if *46103 is not equal to 0.
44057 AND A
44058 JP NZ,Messaging_Bust
This entry point is used by the routine at Messaging_Bust.
Animation_OpponentThrowing_1 44061 LD A,(39594) Call Animation_Dog if *39594 is not equal to 0.
44064 AND A
44065 CALL NZ,Animation_Dog
44068 LD HL,44278 Copy 0003 bytes of data from *Current_Total to *FinalTotal.
44071 LD DE,44244
44074 LD BC,3
44077 LDIR
44079 CALL ClearMessagingArea Call ClearMessagingArea.
44082 CALL Messaging_FinalTotal Call Messaging_FinalTotal.
44085 CALL LongPause Call LongPause.
44088 XOR A Write 0 to *39594.
44089 LD (39594),A
44092 RET Return.
Prev: 43740 Up: Map Next: 44093