![]() |
Routines |
| Prev: 53348 | Up: Map | Next: 53456 |
|
Used by the routines at ProcessObjectDisplay, ProcessObjectDisplayEntry and ProcessObjectDisplayWithCheck.
|
||||||||
| CheckObjectVisibility | 53368 | PUSH IX | Stash IX, IY and BC on the stack. | |||||
| 53370 | PUSH IY | |||||||
| 53372 | PUSH BC | |||||||
| 53373 | LD IX,(40983) | IX=*CurrentCharacterData. | ||||||
| 53377 | LD A,(IX+4) | A=*IX+4. | ||||||
| 53380 | AND %10000000 | Keep only bit 7. | ||||||
| 53382 | JR Z,CheckObjectVisibility_2 | Jump to CheckObjectVisibility_2 if ?? is equal to 0. | ||||||
| 53384 | CALL CheckObjectMother | Call CheckObjectMother. | ||||||
| 53387 | INC A | Increment A by one. | ||||||
| 53388 | JR NZ,CheckObjectVisibility_0 | Jump to CheckObjectVisibility_0 if A is not equal to 0. | ||||||
| 53390 | CALL FetchCurrentCharacterLocation | Call FetchCurrentCharacterLocation. | ||||||
| 53393 | BIT 7,(IX+0) | Jump to CheckObjectVisibility_2 if bit 7 of *IX+0 is set. | ||||||
| 53397 | JR NZ,CheckObjectVisibility_2 | |||||||
| 53399 | CALL GetTimePeriod | Call GetTimePeriod. | ||||||
| 53402 | CP 1 | Jump to CheckObjectVisibility_2 if the time-period code is anything other than late night/ evening (8 PM - 5 AM). | ||||||
| 53404 | JR NZ,CheckObjectVisibility_2 | |||||||
|
It's late night/ evening (8 PM - 5 AM).
|
||||||||
| CheckObjectVisibility_0 | 53406 | LD IX,35695 | IX=Table_Objects. | |||||
| CheckObjectVisibility_1 | 53410 | CALL FetchNextObject | Call FetchNextObject. | |||||
| 53413 | JR Z,CheckObjectVisibility_3 | Jump to CheckObjectVisibility_3 if A is equal to 1. | ||||||
| 53415 | LD A,(IY+0) | Jump to CheckObjectVisibility_1 if *IY+0 is not equal to 1. | ||||||
| 53418 | CP 1 | |||||||
| 53420 | JR NZ,CheckObjectVisibility_1 | |||||||
| 53422 | LD A,(IY+5) | A=*IY+5. | ||||||
| 53425 | XOR %10110111 | Flip bits 0-2, 4-5, 7. | ||||||
| 53427 | AND %01011100 | Keep only bits 2-4, 6. | ||||||
| 53429 | JR NZ,CheckObjectVisibility_1 | Jump to CheckObjectVisibility_1 if A is not equal to 1. | ||||||
| 53431 | LD A,(IY+4) | A=*IY+4. | ||||||
| 53434 | AND %10000000 | Keep only bit 7. | ||||||
| 53436 | JR Z,CheckObjectVisibility_1 | Jump to CheckObjectVisibility_1 if A is equal to 1. | ||||||
| 53438 | LD A,(IX+0) | A=*IX+0. | ||||||
| 53441 | CALL CheckObjectLocationMatch | Call CheckObjectLocationMatch. | ||||||
| 53444 | JR Z,CheckObjectVisibility_1 | Jump to CheckObjectVisibility_1 if A is equal to 1. | ||||||
| CheckObjectVisibility_2 | 53446 | AND A | Set flags. | |||||
| 53447 | JR CheckObjectVisibility_4 | Jump to CheckObjectVisibility_4. | ||||||
| CheckObjectVisibility_3 | 53449 | SCF | Set the carry flag. | |||||
| CheckObjectVisibility_4 | 53450 | POP BC | Restore BC, IY and IX from the stack. | |||||
| 53451 | POP IY | |||||||
| 53453 | POP IX | |||||||
| 53455 | RET | Return. | ||||||
| Prev: 53348 | Up: Map | Next: 53456 |