Routines |
Prev: 41173 | Up: Map | Next: 41459 |
|
||||||||
41271 | EXX | Switch registers | ||||||
41272 | LD H,0 | Load HL with eight times block style index... | ||||||
41274 | LD L,A | ...(see trivia)... | ||||||
41275 | ADD A,A | ... | ||||||
41276 | LD L,A | ... | ||||||
41277 | ADD HL,HL | ... | ||||||
41278 | ADD HL,HL | ... | ||||||
41279 | LD DE,49794 | Load DE with start address of table of block style definitions... | ||||||
41282 | ADD HL,DE | ...and add to HL as offset in HL | ||||||
41283 | LD A,(HL) | Store attribute value in selected style at 23695... | ||||||
41284 | LD (23695),A | ... | ||||||
41287 | INC HL | Advance HL to terrain interaction parameter to apply... | ||||||
41288 | LD A,(HL) | ... | ||||||
41289 | LD (23485),A | ...and store at 23485 | ||||||
41292 | INC HL | Advance HL to terrain interaction parameter painting bitmap... | ||||||
41293 | LD A,(HL) | ... | ||||||
41294 | LD (23298),A | ...and store at 23298 | ||||||
41297 | INC HL | Advance HL to index of top-left block UDG... | ||||||
41298 | INC HL | ... | ||||||
41299 | LD DE,(63018) | Store display file address of bitmap virtual text cursor to 23296... | ||||||
41303 | LD (23296),DE | ... | ||||||
41307 | LD A,(HL) | Load A with index of top-left block UDG... | ||||||
41308 | CALL 63162 | ...and draw at location of bitmap virtual text cursor | ||||||
41311 | PUSH HL | Store HL (pointer to index of top-left block UDG) | ||||||
41312 | CALL 63247 | Advance bitmap virtual text cursor right by one character | ||||||
41315 | POP HL | Restore HL (pointer to index of top-left block UDG) | ||||||
41316 | INC HL | Advance HL to index of top-right block UDG... | ||||||
41317 | LD A,(HL) | ...load into A... | ||||||
41318 | CALL 63162 | ...and draw at location of bitmap virtual text cursor | ||||||
41321 | PUSH HL | Store HL (pointer to index of top-right block UDG) | ||||||
41322 | CALL 63247 | Advance bitmap virtual text cursor right by one character (see trivia) | ||||||
41325 | LD A,(23298) | Load B with terrain interaction parameter painting bitmap... | ||||||
41328 | LD B,A | ... | ||||||
41329 | LD A,(23485) | Load A with terrain interaction parameter to apply | ||||||
41332 | LD HL,(23709) | Load HL with address of terrain interaction data for top-left character | ||||||
41335 | BIT 0,B | If bit 0 of terrain interaction parameter painting bitmap is reset... | ||||||
41337 | JR Z,41340 | ...then skip ahead to 41340 | ||||||
41339 | LD (HL),A | Apply current terrain interaction parameter to address in HL | ||||||
41340 | INC HL | Advance HL (i.e. move right one character) | ||||||
41341 | BIT 1,B | If bit 1 of terrain interaction parameter painting bitmap is reset... | ||||||
41343 | JR Z,41346 | ...then skip ahead to 41346 | ||||||
41345 | LD (HL),A | Apply current terrain interaction parameter to address in HL | ||||||
41346 | POP HL | Restore HL (pointer to index of top-right block UDG) | ||||||
41347 | LD A,(23461) | If draw-2-×-1-blocks flag is set (see trivia)... | ||||||
41350 | OR A | ... | ||||||
41351 | JR NZ,41457 | ...then skip ahead to 41457 | ||||||
41353 | INC HL | Advance HL to index of bottom-left block UDG | ||||||
41354 | EX DE,HL | Swap DE (now points to index of bottom-left block UDG) and HL | ||||||
41355 | LD HL,(23296) | Restore display file address of bitmap virtual text cursor (top-left character) from 23296... | ||||||
41358 | LD (63018),HL | ... | ||||||
41361 | CALL 63263 | Advance bitmap virtual text cursor to start of next character row | ||||||
41364 | LD A,(23296) | Load A with LSB of bitmap virtual text cursor display file address stored previously... | ||||||
41367 | AND 31 | ...and clear bits 5, 6 and 7 to leave x-coordinate in characters | ||||||
41369 | LD HL,(63018) | Load HL with address of bitmap virtual text cursor... | ||||||
41372 | OR L | ...and add x-coordinate in characters to move to bottom-left character in 2 × 2 block... | ||||||
41373 | LD L,A | ... | ||||||
41374 | LD (63018),HL | Store updated address of bitmap virtual text cursor | ||||||
41377 | EX DE,HL | Swap DE and HL (now points to index of bottom-left block UDG) | ||||||
41378 | LD A,(HL) | Load A with index of bottom-left block UDG... | ||||||
41379 | CALL 63162 | ...and draw at location of bitmap virtual text cursor | ||||||
41382 | PUSH HL | Store HL (pointer to index of bottom-left block UDG) | ||||||
41383 | CALL 63247 | Advance bitmap virtual text cursor right by one character | ||||||
41386 | POP HL | Restore HL (pointer to index of bottom-left block UDG) | ||||||
41387 | INC HL | Advance HL to index of bottom-right block UDG... | ||||||
41388 | LD A,(HL) | ...load into A... | ||||||
41389 | CALL 63162 | ...and draw at location of bitmap virtual text cursor | ||||||
41392 | LD HL,(23296) | Restore display file address of bitmap virtual text cursor (top-left character) from 23296... | ||||||
41395 | LD (63018),HL | ... | ||||||
41398 | LD A,(23298) | Load B with terrain interaction parameter painting bitmap... | ||||||
41401 | LD B,A | ... | ||||||
41402 | LD A,(23485) | Load A with terrain interaction parameter to apply | ||||||
41405 | LD HL,(23709) | Load HL with address of terrain interaction data for top-left character... | ||||||
41408 | LD BC,32 | ...and add 32 to point to bottom-left character... | ||||||
41411 | ADD HL,BC | ... | ||||||
41412 | BIT 2,B | If bit 2 of terrain interaction parameter painting bitmap is reset... (bug) | ||||||
41414 | JR Z,41417 | ...then skip ahead to 41417 | ||||||
41416 | LD (HL),A | Apply current terrain interaction parameter to address in HL | ||||||
41417 | INC HL | Advance HL (i.e. move right one character) | ||||||
41418 | BIT 3,B | If bit 3 of terrain interaction parameter painting bitmap is reset... (bug) | ||||||
41420 | JR Z,41423 | ...then skip ahead to 41423 | ||||||
41422 | LD (HL),A | Apply current terrain interaction parameter to address in HL | ||||||
41423 | CALL 63247 | Advance bitmap virtual text cursor right by two characters... | ||||||
41426 | CALL 63247 | ...i.e. move to top-left character of next 2 × 2 block to the right | ||||||
41429 | LD HL,(23709) | Load HL with address of terrain interaction data for top-left character... | ||||||
41432 | INC HL | ...advance by two characters... | ||||||
41433 | INC HL | ... | ||||||
41434 | LD (23709),HL | ...and store at 23709 | ||||||
41437 | LD A,(63018) | Load A with LSB of bitmap virtual text cursor display file address... | ||||||
41440 | AND 31 | ...and if at least one of bits 0-4 are set (i.e. we are not at the start of a new character row)... | ||||||
41442 | JR NZ,41457 | ...then skip ahead to 41457 | ||||||
41444 | CALL 63263 | Advance bitmap virtual text cursor to start of next character row | ||||||
41447 | LD BC,32 | Add 32 to address of terrain interaction data to move to next character row... | ||||||
41450 | LD HL,(23709) | ... | ||||||
41453 | ADD HL,BC | ... | ||||||
41454 | LD (23709),HL | ... | ||||||
41457 | EXX | Switch registers | ||||||
41458 | RET | Return |
Prev: 41173 | Up: Map | Next: 41459 |