Prev: 63DA Up: Map Next: 645A
63FF: Handler: Pick Up Cup
Used by the routine at 702A.
Calculate number of points to award.
HandlerCup 63FF LD A,($5E3C) A=Cups_Collected.
6402 INC A A=(A + 01) * 02 with BCD conversion.
6403 ADD A,A
6404 DAA
Adds points to score.
6405 LD B,A BC=number of points to award.
6406 LD C,$00
6408 CALL AddPointsToScore Call AddPointsToScore.
Handle incrementing the cup counter.
640B LD HL,$5E3C Increment Cups_Collected by one.
640E INC (HL)
Have all the cups been collected?
640F LD A,(HL) A=Cups_Collected.
6410 CP $08 If A is less than 08 jump to DisplayCupsCollected.
6412 JR C,DisplayCupsCollected
All cups have been collected, display the "congratulations" messaging.
6414 CALL SetDayAttributes Call SetDayAttributes.
6417 CALL CreateWindow Call CreateWindow.
641A CALL DisplayCongratsMessaging Call DisplayCongratsMessaging.
Writes the line "YOUR TIME WAS".
641D LD HL,$5868 HL=5868 (screen location).
6420 LD DE,$63E3 DE=Message_YourTime.
6423 CALL MenuWriteText Call MenuWriteText.
Set HL to where the time itself will display.
6426 LD HL,$6880 HL=6880 (screen location).
6429 CALL ScreenAddress Call ScreenAddress.
642C CALL DisplayTime_Minutes Call DisplayTime_Minutes.
Has a new "Best Time" been made?
642F LD A,($5E03) If Flag_BestTime is zero then jump to BestTime_Set.
6432 AND A
6433 JR Z,BestTime_Set
6435 CALL DisplayBestTime Call DisplayBestTime.
6438 LD HL,$5E00 HL=BestTime_1.
643B LD DE,$5E31 DE=Time_1.
643E LD B,$03 B=03 (counter).
BestTime_Compare 6440 LD A,(DE) Compare DE against HL.
6441 CP (HL)
6442 JR C,BestTime_Update If it's higher than A then jump to BestTime_Update.
6444 JR Z,BestTime_Compare_Next If zero then jump to BestTime_Compare_Next.
6446 JR HandlerCup_Delay Jump to HandlerCup_Delay.
BestTime_Compare_Next 6448 INC HL Move onto the next BestTime digit.
6449 INC DE Move onto the next Time digit.
644A DJNZ BestTime_Compare Decrease counter by one and loop back to BestTime_Compare until counter is zero.
Create a short pause.
HandlerCup_Delay 644C LD B,$0C B=0C.
644E CALL Delay Call Delay.
6451 CALL GameInit_0 Call GameInit_0.
6454 LD SP,$5E00 Set the stack pointer to 5E00.
6457 JP StartGame_0 Jump to StartGame_0.
Prev: 63DA Up: Map Next: 645A