Routines |
Prev: 48164 | Up: Map | Next: 48341 |
Used by the routine at 42638.
|
||||||||||||||
48191 | LD IX,23296 | Store object's position data temporarily at 23296 - 23298... | ||||||||||||
48195 | LD (IX+1),C | ...x-coordinate... | ||||||||||||
48198 | LD (IX+2),B | ...y-coordinate... | ||||||||||||
48201 | LD C,A | Load index of object of interest into C | ||||||||||||
This entry point is used by the routine at 48164.
|
||||||||||||||
48202 | PUSH BC | Store BC | ||||||||||||
48203 | PUSH IX | Store IX | ||||||||||||
48205 | LD A,C | Load HL with eight times current object index... | ||||||||||||
48206 | ADD A,A | ... | ||||||||||||
48207 | ADD A,A | ... | ||||||||||||
48208 | LD L,A | ... | ||||||||||||
48209 | LD H,0 | ... | ||||||||||||
48211 | ADD HL,HL | ... | ||||||||||||
48212 | LD DE,49361 | Point DE at last byte (graphic index) of "nothing at all" properties | ||||||||||||
48215 | ADD HL,DE | Add eight times current object index as offset | ||||||||||||
48216 | LD A,(HL) | Load graphic index into A | ||||||||||||
48217 | PUSH AF | Store AF (A = graphic index) | ||||||||||||
48218 | DEC HL | Move pointer back one byte to point at attribute of object... | ||||||||||||
48219 | LD A,(HL) | ... | ||||||||||||
48220 | LD (23695),A | ...and store this value at 23695 | ||||||||||||
48223 | DEC HL | Move pointer back one byte to point at object's terrain interaction parameter... | ||||||||||||
48224 | LD A,(HL) | ...and store at 23473... | ||||||||||||
48225 | LD (23473),A | ... | ||||||||||||
48228 | DEC HL | Move pointer back one byte to point at object's attribute flags... | ||||||||||||
48229 | LD A,(HL) | ...load into A... | ||||||||||||
48230 | AND 15 | ...clear upper four bits... | ||||||||||||
48232 | LD (48271),A | ...and store as operand of instruction at 48270 | ||||||||||||
48235 | LD C,(IX+1) | Load C with x-coordinate of current object | ||||||||||||
48238 | LD B,(IX+2) | Load B with y-coordinate of current object | ||||||||||||
48241 | DEC B | Decrease y-coordinate by one to point to object's top-left character block | ||||||||||||
48242 | POP AF | Restore AF (A = graphic index) | ||||||||||||
48243 | PUSH IX | Store IX (pointer to position data for object) | ||||||||||||
48245 | PUSH BC | Store BC (x- and y-coordinates of object's top-left character block) | ||||||||||||
48246 | CALL 63499 | Draw 2 × 2 graphic with lookup index A at character coordinates (C, B) | ||||||||||||
48249 | POP BC | Restore BC (x- and y-coordinates of object's top-left character block) | ||||||||||||
48250 | PUSH BC | Store BC (x- and y-coordinates of object's top-left character block) | ||||||||||||
48251 | LD A,B | If object's y-coordinate is 4 (i.e. drawn in window at top while carrying Mirror)... | ||||||||||||
48252 | CP 4 | ... | ||||||||||||
48254 | JR Z,48263 | ...then skip ahead to 48263 | ||||||||||||
48256 | LD A,(23706) | If player-attribute-update flag is reset (player attribute ignore mode)... | ||||||||||||
48259 | OR A | ... | ||||||||||||
48260 | JP Z,48298 | ...then skip ahead to 48298 | ||||||||||||
48263 | CALL 63219 | Load HL with attribute file address for coordinates (C, B) | ||||||||||||
48266 | LD A,(23695) | Load E with attribute stored at 23695... | ||||||||||||
48269 | LD E,A | ... | ||||||||||||
48270 | LD A,0 | Load A with object's attribute flags | ||||||||||||
48272 | BIT 0,A | If paint-top-left flag is reset... | ||||||||||||
48274 | JR Z,48277 | ...then skip ahead to 36190 | ||||||||||||
48276 | LD (HL),E | Paint top-left character block of object with object attribute | ||||||||||||
48277 | INC HL | Increase HL to move to top-right character block | ||||||||||||
48278 | BIT 1,A | If paint-top-right flag is reset... | ||||||||||||
48280 | JR Z,48283 | ...then skip ahead to 48283 | ||||||||||||
48282 | LD (HL),E | Paint top-right character block of object with object attribute | ||||||||||||
48283 | LD BC,31 | Advance HL by 31 bytes... | ||||||||||||
48286 | ADD HL,BC | ...to point to bottom-left character block of object | ||||||||||||
48287 | BIT 2,A | If paint-bottom-left flag is reset... | ||||||||||||
48289 | JR Z,48292 | ...then skip ahead to 48292 | ||||||||||||
48291 | LD (HL),E | Paint bottom-left character block of object with object attribute | ||||||||||||
48292 | INC HL | Increase HL to move to bottom-right character block | ||||||||||||
48293 | BIT 3,A | If paint-bottom-right flag is reset... | ||||||||||||
48295 | JR Z,48298 | ...then skip ahead to 48298 | ||||||||||||
48297 | LD (HL),E | Paint bottom-right character block of object with object attribute | ||||||||||||
48298 | POP BC | Store BC (x- and y-coordinates of object's top-left character block) | ||||||||||||
48299 | CALL 63233 | Point HL at terrain interaction data for character coordinates x=C, y=B | ||||||||||||
48302 | LD A,(23473) | Load E with object's terrain interaction parameter... | ||||||||||||
48305 | LD E,A | ... | ||||||||||||
48306 | LD A,(48271) | Load A with object's attribute flags | ||||||||||||
48309 | BIT 0,A | If paint-top-left flag is reset... | ||||||||||||
48311 | JR Z,48314 | ...then skip ahead to 48314 | ||||||||||||
48313 | LD (HL),E | Paint object's terrain interaction parameter into terrain interaction data table for top-left character block | ||||||||||||
48314 | INC HL | Increase HL to move to top-right character block | ||||||||||||
48315 | BIT 1,A | If paint-top-right flag is reset... | ||||||||||||
48317 | JR Z,48320 | ...then skip ahead to 48320 | ||||||||||||
48319 | LD (HL),E | Paint object's terrain interaction parameter into terrain interaction data table for top-right character block | ||||||||||||
48320 | LD BC,31 | Advance HL by 31 bytes... | ||||||||||||
48323 | ADD HL,BC | ...to point to bottom-left character block of object | ||||||||||||
48324 | BIT 2,A | If paint-bottom-left flag is reset... | ||||||||||||
48326 | JR Z,48329 | ...then skip ahead to 48329 | ||||||||||||
48328 | LD (HL),E | Paint object's terrain interaction parameter into terrain interaction data table for bottom-left character block | ||||||||||||
48329 | INC HL | Increase HL to move to bottom-right character block | ||||||||||||
48330 | BIT 3,A | If paint-bottom-right flag is reset... | ||||||||||||
48332 | JR Z,48335 | ...then skip ahead to 48335 | ||||||||||||
48334 | LD (HL),E | Paint object's terrain interaction parameter into terrain interaction data table for bottom-right character block | ||||||||||||
48335 | POP IX | Restore IX (pointer to position data for object) | ||||||||||||
48337 | POP IX | Restore IX | ||||||||||||
48339 | POP BC | Restore BC | ||||||||||||
48340 | RET | Return |
Prev: 48164 | Up: Map | Next: 48341 |