Dynamite Dan | Routines |
Prev: EEF1 | Up: Map | Next: EF48 |
Used by the routine at C881.
|
||||
This routine loops through every moving object's movement table, and sets its visible flag, so that everything is in play when the game begins.
|
||||
EF1E | LD HL,($69ED) | Point HL at the moving objects buffer. (69E6 + 7 / 8) | ||
EF21 | INC HL | Skip the first four bytes which hold the object IDs. | ||
EF22 | INC HL | |||
EF23 | INC HL | |||
EF24 | INC HL | |||
EF25 | LD B,$30 | 30 rooms to check. | ||
EF27 | PUSH BC | Remember BC. | ||
EF28 | LD A,(HL) | Get the first byte with the number of objects. | ||
EF29 | CALL $E9F8 | Split the two 4-bit numbers into B and C. | ||
EF2C | LD A,B | Put the combined total in D. | ||
EF2D | ADD A,C | |||
EF2E | LD D,A | |||
EF2F | INC HL | Get the second byte with the number of objects. | ||
EF30 | LD A,(HL) | |||
EF31 | CALL $E9F8 | Split the two 4-bit numbers into B and C. | ||
EF34 | LD A,B | Put the combined total, plus the earlier total in B as the number of moving objects in this room. | ||
EF35 | ADD A,C | |||
EF36 | ADD A,D | |||
EF37 | LD B,A | |||
EF38 | LD DE,$0005 | Move to the start of the movement table. | ||
EF3B | ADD HL,DE | |||
EF3C | RES 6,(HL) | Set the sprite to be drawn. | ||
EF3E | LD DE,$0008 | Move to the next movement entry. | ||
EF41 | ADD HL,DE | |||
EF42 | DJNZ $EF3C | Loop while there are more objects to look at it. | ||
EF44 | POP BC | Restore BC. | ||
EF45 | DJNZ $EF27 | Loop back until all rooms have been checked. | ||
EF47 | RET |
Prev: EEF1 | Up: Map | Next: EF48 |