Routines |
Prev: $31EA | Up: Map | Next: $3279 |
$322E | LDY $26 | Pick up the character's animatory state from $26. | ||
$3230 | LDA #$00 | Prepare to address the animatory state tile references at $8D00 onwards. | ||
$3232 | STA $50 | |||
$3234 | LDA #$8D | |||
$3236 | STA $51 | |||
$3238 | LDA $FC | Pick up the character's x-coordinate from $FC and store it at $57. This is the initial play area x-coordinate. | ||
$323A | STA $57 | |||
Here we enter a loop to consider each tile of the character's sprite that is currently on screen, working column by column from left to right.
|
||||
$323C | LDA $FB | Pick up the character's y-coordinate from $FB and store it at $4A. This is the initial play area y-coordinate. | ||
$323E | STA $4A | |||
$3240 | LDA $57 | Pick up the play area x-coordinate from $57. | ||
$3242 | CMP $58 | Is it less than the x-coordinate of the leftmost column of the skool on screen? | ||
$3244 | BCS $3249 | Branch if not. | ||
$3246 | JMP $3269 | Otherwise jump forward to consider the next column of tiles in the character's sprite. | ||
$3249 | CMP $59 | Is the play area x-coordinate less than the x-coordinate of the leftmost column of the skool off screen? | ||
$324B | BCS $3269 | Branch if not to consider the next column of tiles in the character's sprite (which will also be off screen). | ||
$324D | LDX #$04 | There are four rows of tiles in a character's sprite. | ||
$324F | LDY $26 | Pick up the character's animatory state from $26. | ||
$3251 | LDA ($50),Y | Pick up an animatory state tile reference. | ||
$3253 | BEQ $325F | Branch if it's zero (i.e. the blank tile). | ||
$3255 | LDA $57 | Pick up the play area x-coordinate from $57. | ||
$3257 | SEC | Subtract the x-coordinate of the leftmost column of the skool on screen to obtain the screen x-coordinate, and store it at $49. | ||
$3258 | SBC $58 | |||
$325A | STA $49 | |||
$325C | JSR $36E3 | Update the SRB for the character cell containing this sprite tile. | ||
$325F | INC $51 | Point at the animatory state tile references for the next row of tiles in the character's sprite. | ||
$3261 | INC $4A | Increment the play area y-coordinate at $4A. | ||
$3263 | DEX | Decrement the tile row counter. | ||
$3264 | BNE $324F | Branch back until all four tiles in this column have been checked. | ||
$3266 | JMP $3270 | Jump forward. | ||
$3269 | LDA $51 | Add 4 to the MSB of the animatory state tile reference address at $51. This now points at the first tile in the next column to the right. | ||
$326B | CLC | |||
$326C | ADC #$04 | |||
$326E | STA $51 | |||
$3270 | INC $57 | Increment the play area x-coordinate at $57. This now corresponds to the tiles in the next column to the right. | ||
$3272 | LDA $51 | Pick up the animatory state tile reference address MSB. | ||
$3274 | CMP #$99 | Have we done every tile in the sprite yet? | ||
$3276 | BCC $323C | Branch back if not. | ||
$3278 | RTS |
Prev: $31EA | Up: Map | Next: $3279 |