![]() |
Routines |
| Prev: 6EC0 | Up: Map | Next: 6F16 |
|
Used by the routine at TestFallenActor.
The actor which was hit has landed in the mixing bowl. CatchActor deals with the number of ingredients which are needed, and the points for catching it are added to the score using the table at BowlPoints (the nasties are worth nothing). The actor then becomes the batter (ID 28) at the bottom of the bowl, which is handled by HandleBatter.
|
||||||||
| CatchHitActor | 6EF5 | CALL CatchActor | Take away or add ingredients using CatchActor. | |||||
| 6EF8 | LD A,(IX+$00) | Fetch the actor ID. | ||||||
| 6EFB | RRCA | Rotate the actor ID right, to halve it. | ||||||
| 6EFC | AND %00001111 | Keep only bits 0-3. | ||||||
| 6EFE | LD C,A | Use the result as the offset into the table of points. | ||||||
| 6EFF | LD B,$00 | Set the high byte of the offset to 00. | ||||||
| 6F01 | LD HL,$6F47 | Point HL at BowlPoints. | ||||||
| 6F04 | ADD HL,BC | Find the points for the ingredient. | ||||||
| 6F05 | LD C,(HL) | Fetch the points. | ||||||
| 6F06 | CALL AddPointsToScore | Add the points to the score using AddPointsToScore. | ||||||
| 6F09 | LD (IX+$00),$28 | Write 28 to the actor ID. | ||||||
| 6F0D | LD (IX+$02),$A0 | Set the vertical co-ordinate to A0 (the floor). | ||||||
| 6F11 | LD (IX+$03),$46 | Set the actor colour to 46 (yellow). | ||||||
| 6F15 | RET | Return. | ||||||
| Prev: 6EC0 | Up: Map | Next: 6F16 |