Prev: 28476 Up: Map Next: 28708
28588: Routine at 6FAC
Used by the routine at 28476.
28588 INC HL
This entry point is used by the routine at 28476.
28589 INC HL
28590 INC HL
28591 DJNZ 28548
28593 POP DE
28594 LD HL,24144 HL=Object_1_State.
28597 LD B,7 B=7.
28599 XOR A Write 0 to 24098.
28600 LD (24098),A
This entry point is used by the routine at 28708.
28603 LD A,(HL)
28604 AND A
28605 JR NZ,28708
28607 INC HL
28608 INC HL
This entry point is used by the routine at 28476.
28609 LD (HL),D
28610 DEC HL
28611 LD (HL),E
28612 DEC HL
28613 LD A,(24094) A=24094.
28616 OR %10000000 Set bit 7.
28618 LD (HL),A Write this back to HL.
28619 PUSH HL IX=HL (using the stack to do so).
28620 POP IX
28622 LD A,(24095) A=ActiveObject.
28625 CP 32 If this is a cup (ActiveObject is 32) then jump to 28634.
28627 JR Z,28634
28629 AND %01111111 Keep only bits 0-6.
28631 CALL DisplayPlaceName Call DisplayPlaceName.
28634 CALL ActorEraseMovedSprite Call ActorEraseMovedSprite.
28637 LD L,(IX+1) L=
28640 LD H,(IX+2) H=
28643 LD A,(24130) D=24130.
28646 LD D,A
28647 CALL ColouriseSprite_0 Call ColouriseSprite_0.
28650 LD A,(24087) Return if too far from Player_X (i.e. more than 10 pixels).
28653 CP 10
28655 RET NC
28656 LD A,(24088) Return if too far from Player_Y (i.e. more than 10 pixels).
28659 CP 10
28661 RET NC
28662 LD A,(24095) A=ActiveObject.
28665 CP 32 If this is a cup (ActiveObject is 32) then jump to 28714.
28667 JR Z,28714
28669 BIT 6,A If this is a place name then jump to 28728.
28671 JR Z,28728
28673 LD C,A
28674 LD A,(24143) A=24143.
28677 CP C
28678 JR Z,28690
28680 LD A,C
28681 LD (24143),A
Add 0080 points to the score.
28684 LD BC,80 BC=0080.
28687 CALL AddPointsToScore Call AddPointsToScore.
28690 LD HL,49407 Write 49407 to Fuel_LSB.
28693 LD (24074),HL
28696 LD A,(24134) A=SoundCounter.
28699 AND %01111111 Keep only bits 0-6.
28701 RET NZ
28702 LD A,7 Write 7 to SoundCounter.
28704 LD (24134),A
28707 RET Return.
Prev: 28476 Up: Map Next: 28708