Prev: 53348 Up: Map Next: 53456
53368: Check Object Visibility
Output
F Carry flag set if object is visible
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