Prev: 35425 Up: Map Next: 35633
35460: High Score Table
Used by the routine at Handler_SubGame.
high-scores
HighScoreTable 35460 LD B,4 B=4.
35462 LD IX,36360 IX=Messaging_HighScores.
HighScoreTable_0 35466 LD HL,(61426) HL=*Pointer_ActivePlayer.
35469 LD DE,12 HL+=0012.
35472 ADD HL,DE
35473 LD A,(HL) Jump to HighScoreTable_2 if *HL is higher than *IX+10.
35474 CP (IX+10)
35477 JR NC,HighScoreTable_2
HighScoreTable_1 35479 LD DE,11 IX+=0011.
35482 ADD IX,DE
35484 DJNZ HighScoreTable_0 Decrease counter by one and loop back to HighScoreTable_0 until counter is zero.
35486 LD HL,61435 HL=GameState_2.
35489 RES 6,(HL) Reset bit 6 of *HL.
35491 RET Return.
HighScoreTable_2 35492 JR NZ,HighScoreTable_3 Jump to HighScoreTable_3 if is not zero.
35494 DEC HL Decrease HL by one.
35495 LD A,(HL) Jump to HighScoreTable_1 if *HL is lower than *IX+9.
35496 CP (IX+9)
35499 JR C,HighScoreTable_1
35501 JR NZ,HighScoreTable_3 Jump to HighScoreTable_3 if *HL is not equal to *IX+9.
35503 DEC HL Decrease HL by one.
35504 LD A,(HL) Jump to HighScoreTable_1 if *HL is lower than *IX+8.
35505 CP (IX+8)
35508 JR C,HighScoreTable_1
35510 JR Z,HighScoreTable_1 Jump to HighScoreTable_1 if *HL is equal to *IX+8.
HighScoreTable_3 35512 DEC B Decrease B by one.
35513 JR Z,HighScoreTable_5 Jump to HighScoreTable_5 if B is zero.
35515 LD A,0 A=0.
HighScoreTable_4 35517 ADD A,11 A+=11.
35519 DJNZ HighScoreTable_4 Decrease counter by one and loop back to HighScoreTable_4 until counter is zero.
35521 LD C,A C=A.
35522 LD HL,36392 HL=36392.
35525 LD DE,36403 DE=36403.
35528 LDDR LDDR.
HighScoreTable_5 35530 PUSH IX DE=IX (using the stack).
35532 POP DE
35533 LD HL,(61426) HL=*Pointer_ActivePlayer.
35536 LD BC,8 BC=0008.
35539 LDIR LDIR.
35541 INC HL Increment HL by two.
35542 INC HL
35543 LD BC,3 BC=0003.
35546 LDIR LDIR.
35548 LD HL,61435 HL=GameState_2.
35551 SET 6,(HL) Set bit 6 of *HL.
This entry point is used by the routine at Handler_SubGame.
HighScoreTable_6 35553 CALL ClearMenuScreenAreas Call ClearMenuScreenAreas.
Prints "FAMOUS TRASHMEN".
35556 LD HL,36345 HL=Messaging_FamousTrashmen.
35559 LD DE,20553 DE=20553 (screen buffer location).
35562 CALL Print_String Call Print_String.
35565 LD HL,20585 HL=20585 (screen buffer location).
35568 LD B,15 Underline the header with 15 character blocks of 255.
35570 CALL Underline
35573 LD B,4 B=4.
Cycle through each high score and print the details.
35575 LD HL,36360 HL=Messaging_HighScores.
35578 LD DE,20617 DE=20617 (screen buffer location).
PrintHighScore_Loop 35581 PUSH BC Stash BC, HL and DE on the stack.
35582 PUSH HL
35583 PUSH DE
35584 CALL Print_String Call Print_String.
35587 INC DE Increment DE by two.
35588 INC DE
35589 INC HL Increment HL by two.
35590 INC HL
35591 LD BC,515 BC=0515.
35594 CALL PrintNumbers Call PrintNumbers.
35597 POP DE Restore DE from the stack.
35598 LD HL,32 DE+=0032.
35601 ADD HL,DE
35602 EX DE,HL
35603 POP HL Restore HL from the stack.
35604 LD BC,11 HL+=0011.
35607 ADD HL,BC
35608 POP BC Restore BC from the stack.
35609 DJNZ PrintHighScore_Loop Decrease counter by one and loop back to PrintHighScore_Loop until counter is zero.
35611 LD B,100 Call 32853 with a count of 100.
35613 CALL 32853
35616 CALL PauseCheck Call PauseCheck.
HighScoreTable_7 35619 LD B,1 Call 32853 with a count of 1.
35621 CALL 32853
35624 CALL Handler_Controls Call Handler_Controls.
35627 LD A,E Jump to HighScoreTable_7 if E is not equal to 32.
35628 CP 32
35630 JR NZ,HighScoreTable_7
35632 RET Return.
Prev: 35425 Up: Map Next: 35633