Prev: 56587 Up: Map Next: 56629
56590: Match The Character And Store Its Room
When this is the character being processed, stores that character's room and looks the object up.
StoreMatchedCharacterRoom 56590 PUSH AF Take the character being processed.
56591 LD HL,41014
56594 CP (HL) Jump ahead to StoreMatchedCharacterRoom_Next if this is not the character being processed.
56595 LD A,B
56596 JR NZ,StoreMatchedCharacterRoom_Next
56598 LD (40970),A Record the current character attribute.
StoreMatchedCharacterRoom_Next 56601 CP 255 Jump ahead to StoreMatchedCharacterRoom_0 unless B is 255.
56603 JR NZ,StoreMatchedCharacterRoom_0
56605 XOR A Start the character from zero.
StoreMatchedCharacterRoom_0 56606 LD (56577),A Store the room at 56577 and call FetchLocationDataPointer to look it up.
56609 CALL FetchLocationDataPointer
56612 LD (56575),IX Store the current record at 56575.
56616 POP AF Call FetchObjectDataPointer to look up that object.
56617 CALL FetchObjectDataPointer
56620 LD (IX+15),B Store it in the character attribute, then call ProcessObjectLocationRecursively to run object location recursively.
56623 CALL ProcessObjectLocationRecursively
56626 OR %00000001 Reset the zero flag.
56628 RET Return.
Prev: 56587 Up: Map Next: 56629