![]() |
Routines |
| Prev: D064 | Up: Map | Next: D0D0 |
|
Used by the routines at ProcessObjectDisplay, ProcessObjectDisplayEntry and ProcessObjectDisplayWithCheck.
|
||||||||
| CheckObjectVisibility | D078 | PUSH IX | Stash IX, IY and BC on the stack. | |||||
| D07A | PUSH IY | |||||||
| D07C | PUSH BC | |||||||
| D07D | LD IX,($A017) | IX=*CurrentCharacterData. | ||||||
| D081 | LD A,(IX+$04) | A=*IX+04. | ||||||
| D084 | AND %10000000 | Keep only bit 7. | ||||||
| D086 | JR Z,CheckObjectVisibility_2 | Jump to CheckObjectVisibility_2 if ?? is equal to 00. | ||||||
| D088 | CALL CheckObjectMother | Call CheckObjectMother. | ||||||
| D08B | INC A | Increment A by one. | ||||||
| D08C | JR NZ,CheckObjectVisibility_0 | Jump to CheckObjectVisibility_0 if A is not equal to 00. | ||||||
| D08E | CALL FetchCurrentCharacterLocation | Call FetchCurrentCharacterLocation. | ||||||
| D091 | BIT 7,(IX+$00) | Jump to CheckObjectVisibility_2 if bit 7 of *IX+00 is set. | ||||||
| D095 | JR NZ,CheckObjectVisibility_2 | |||||||
| D097 | CALL GetTimePeriod | Call GetTimePeriod. | ||||||
| D09A | CP $01 | Jump to CheckObjectVisibility_2 if the time-period code is anything other than late night/ evening (8 PM - 5 AM). | ||||||
| D09C | JR NZ,CheckObjectVisibility_2 | |||||||
|
It's late night/ evening (8 PM - 5 AM).
|
||||||||
| CheckObjectVisibility_0 | D09E | LD IX,$8B6F | IX=Table_Objects. | |||||
| CheckObjectVisibility_1 | D0A2 | CALL FetchNextObject | Call FetchNextObject. | |||||
| D0A5 | JR Z,CheckObjectVisibility_3 | Jump to CheckObjectVisibility_3 if A is equal to 01. | ||||||
| D0A7 | LD A,(IY+$00) | Jump to CheckObjectVisibility_1 if *IY+00 is not equal to 01. | ||||||
| D0AA | CP $01 | |||||||
| D0AC | JR NZ,CheckObjectVisibility_1 | |||||||
| D0AE | LD A,(IY+$05) | A=*IY+05. | ||||||
| D0B1 | XOR %10110111 | Flip bits 0-2, 4-5, 7. | ||||||
| D0B3 | AND %01011100 | Keep only bits 2-4, 6. | ||||||
| D0B5 | JR NZ,CheckObjectVisibility_1 | Jump to CheckObjectVisibility_1 if A is not equal to 01. | ||||||
| D0B7 | LD A,(IY+$04) | A=*IY+04. | ||||||
| D0BA | AND %10000000 | Keep only bit 7. | ||||||
| D0BC | JR Z,CheckObjectVisibility_1 | Jump to CheckObjectVisibility_1 if A is equal to 01. | ||||||
| D0BE | LD A,(IX+$00) | A=*IX+00. | ||||||
| D0C1 | CALL CheckObjectLocationMatch | Call CheckObjectLocationMatch. | ||||||
| D0C4 | JR Z,CheckObjectVisibility_1 | Jump to CheckObjectVisibility_1 if A is equal to 01. | ||||||
| CheckObjectVisibility_2 | D0C6 | AND A | Set flags. | |||||
| D0C7 | JR CheckObjectVisibility_4 | Jump to CheckObjectVisibility_4. | ||||||
| CheckObjectVisibility_3 | D0C9 | SCF | Set the carry flag. | |||||
| CheckObjectVisibility_4 | D0CA | POP BC | Restore BC, IY and IX from the stack. | |||||
| D0CB | POP IY | |||||||
| D0CD | POP IX | |||||||
| D0CF | RET | Return. | ||||||
| Prev: D064 | Up: Map | Next: D0D0 |