![]() |
Routines |
| Prev: 50354 | Up: Map | Next: 50498 |
|
Jumps ahead when bit 7 of the saved character is set, otherwise finds the object's place in the table and checks the display flag.
|
||||
| ProcessDisplayAction | 50385 | LD A,(41011) | Jump ahead to LookUpDisplayRecordForMovedMarker if bit 7 of flags: Saved Character (41011) is present. | |
| 50388 | BIT 7,A | |||
| 50390 | JP NZ,LookUpDisplayRecordForMovedMarker | |||
|
Calculate object table offset.
|
||||
| 50393 | CALL CalculateObjectTableOffset | Call CalculateObjectTableOffset to find the object's place in the table. | ||
| 50396 | PUSH HL | Call ExtractObjectAttributes to extract object attributes. | ||
| 50397 | POP IX | |||
| 50399 | CALL ExtractObjectAttributes | |||
| 50402 | CALL CheckDisplayBitsThreeAndSeven | Call CheckDisplayBitsThreeAndSeven to test bits 3 and 7 of the object attribute, then call CheckDisplayBitsTwoAndSix to test bits 2 and 6. | ||
| 50405 | CALL CheckDisplayBitsTwoAndSix | |||
| 50408 | XOR A | Clear the parser. | ||
| 50409 | LD (40971),A | |||
|
None of the bits 12 are set in the object attribute value?
|
||||
| 50412 | LD A,(40989) | Go to ProcessDisplayAction_RunObjectDisplay if bit 2 and bit 3 of the object attribute are clear. | ||
| 50415 | AND 12 | |||
| 50417 | JR Z,ProcessDisplayAction_RunObjectDisplay | |||
| 50419 | LD A,(40975) | Jump to ProcessDisplayAction_Next if the display mode is not 5. | ||
| 50422 | CP 5 | |||
| 50424 | JR NZ,ProcessDisplayAction_Next | |||
| 50426 | LD A,(41012) | Jump to DispatchLookedUpHandlerThird_0 if the room display parameter is not 254. | ||
| 50429 | CP 254 | |||
| 50431 | JP NZ,DispatchLookedUpHandlerThird_0 | |||
| ProcessDisplayAction_Next | 50434 | LD A,(40976) | Jump to ProcessDisplayAction_DisplayModeZero if the display mode is not 5. | |
| 50437 | CP 5 | |||
| 50439 | JR NZ,ProcessDisplayAction_DisplayModeZero | |||
| 50441 | LD A,(41013) | Jump to DispatchLookedUpHandlerThird_0 if the room graphics parameter is not 254. | ||
| 50444 | CP 254 | |||
| 50446 | JP NZ,DispatchLookedUpHandlerThird_0 | |||
| ProcessDisplayAction_DisplayModeZero | 50449 | LD A,(40975) | Jump to ProcessDisplayAction_AcceptGraphicsParameter if the display mode is zero. | |
| 50452 | AND A | |||
| 50453 | JR Z,ProcessDisplayAction_AcceptGraphicsParameter | |||
| 50455 | LD A,(41012) | Jump to ProcessDisplayAction_AcceptGraphicsParameter if the room display parameter is not 255. | ||
| 50458 | CP 255 | |||
| 50460 | JR NZ,ProcessDisplayAction_AcceptGraphicsParameter | |||
| 50462 | LD B,255 | Start the count at 255 so the first step is 0. | ||
| ProcessDisplayAction_Loop | 50464 | INC B | Count one more and return if ReadDisplayModeForPicture finds the last room for this display mode. | |
| 50465 | CALL ReadDisplayModeForPicture | |||
| 50468 | RET Z | |||
| 50469 | LD (41012),A | Record the room display parameter. | ||
| 50472 | PUSH BC | Call RecordResultRoomGraphics to run display action. | ||
| 50473 | CALL RecordResultRoomGraphics | |||
| 50476 | POP BC | |||
| 50477 | JR NZ,ProcessDisplayAction_RunObjectDisplay | Go to ProcessDisplayAction_RunObjectDisplay if RecordResultRoomGraphics found a picture. | ||
| 50479 | JR ProcessDisplayAction_Loop | This picture did not match, so try the next one from ProcessDisplayAction_Loop. | ||
|
Accept the graphics parameter, and return when it is empty.
|
||||
| ProcessDisplayAction_AcceptGraphicsParameter | 50481 | CALL AcceptGraphicsParameter | Go to ProcessDisplayAction_RunObjectDisplay if the graphics parameter is not accepted. | |
| 50484 | JR Z,ProcessDisplayAction_RunObjectDisplay | |||
| 50486 | CALL RecordResultRoomGraphics_CountCountRemaining | Return if the graphics count has reached its limit. | ||
| 50489 | RET Z | |||
| ProcessDisplayAction_RunObjectDisplay | 50490 | LD A,1 | Set the parser flag to 1 and draw the object from ProcessObjectDisplayLogic. | |
| 50492 | LD (40971),A | |||
| 50495 | JP ProcessObjectDisplayLogic | |||
| Prev: 50354 | Up: Map | Next: 50498 |