Prev: A360 Up: Map Next: A4AB
A37D: Process Object Display
Used by the routines at ProcessObjectDisplay and CheckAndResetCharacterState.
ProcessObject_Display A37D XOR A
A37E LD ($A028),A
A381 LD A,($A35D)
A384 CALL CalculateObjectTableOffset
A387 PUSH HL
A388 POP IX
A38A PUSH HL
A38B CALL ExtractObjectAttributes
A38E CALL CheckDisplayFlagBit3
A391 CALL CheckDisplayFlagBit2
A394 POP HL
A395 LD A,($A01D)
A398 LD C,A
A399 PUSH HL
A39A LD DE,$0006
A39D ADD HL,DE
A39E CALL ExtractTokenFromText
A3A1 POP HL
A3A2 CALL ExtractTokenFromText
A3A5 BIT 3,C
A3A7 JR Z,ProcessObject_Display_3
A3A9 BIT 5,C
A3AB CALL NZ,ExtractTokenFromText
A3AE LD A,($A01E)
A3B1 BIT 7,A
A3B3 CALL NZ,ExtractTokenFromText
A3B6 LD A,($A35E)
A3B9 CP $FE
A3BB JR NZ,ProcessObject_Display_0
A3BD PUSH HL
A3BE LD HL,($A02F)
A3C1 CALL ProcessObject_Display_6
A3C4 POP HL
A3C5 JR ProcessObject_Display_3
ProcessObject_Display_0 A3C7 PUSH HL
A3C8 LD HL,$A036
A3CB CP (HL)
A3CC JR NZ,ProcessObject_Display_1
A3CE LD DE,$055B
A3D1 CALL PrintTextToken
A3D4 JR ProcessObject_Display_2
ProcessObject_Display_1 A3D6 LD A,($A00F)
A3D9 CP $05
A3DB LD A,($A35E)
A3DE CALL ProcessLocationDataIfValid
ProcessObject_Display_2 A3E1 POP HL
ProcessObject_Display_3 A3E2 LD A,($A35F)
A3E5 CP $FF
A3E7 JR Z,ProcessObject_Display_5
A3E9 BIT 2,C
A3EB JR Z,ProcessObject_Display_5
A3ED BIT 5,C
A3EF CALL Z,ExtractTokenFromText
A3F2 LD A,($A01E)
A3F5 BIT 7,A
A3F7 CALL Z,ExtractTokenFromText
A3FA LD A,($A35F)
A3FD CP $FE
A3FF JR NZ,ProcessObject_Display_4
A401 LD HL,($A031)
A404 CALL ProcessObject_Display_6
A407 JR ProcessObject_Display_5
ProcessObject_Display_4 A409 LD A,($A010)
A40C CP $05
A40E LD A,($A35F)
A411 CALL ProcessLocationDataIfValid
ProcessObject_Display_5 A414 LD A,$2E
A416 JP Print_Character
This entry point is used by the routines at E17B and E6BC.
ProcessObject_Display_6 A419 PUSH BC
A41A RES 7,H
A41C SLA L
A41E SRL H
A420 RR L
A422 LD A,$20
A424 CALL Print_Character
A427 LD DE,$00F0
A42A CALL ProcessObject_Display_12
A42D AND A
A42E JR Z,ProcessObject_Display_7
A430 LD B,A
A431 LD A,$60
A433 CALL Print_Character
A436 CALL ProcessObject_Display_16
A439 LD A,L
A43A OR H
A43B JR Z,ProcessObject_Display_10
A43D LD A,$20
A43F CALL Print_Character
ProcessObject_Display_7 A442 LD DE,$000C
A445 CALL ProcessObject_Display_12
A448 AND A
A449 JR Z,ProcessObject_Display_11
A44B LD B,A
A44C CALL ProcessObject_Display_16
A44F LD A,$2F
A451 CALL Print_Character
A454 LD A,L
A455 AND A
A456 LD B,A
A457 JR Z,ProcessObject_Display_8
A459 CALL ProcessObject_Display_16
A45C JR ProcessObject_Display_10
ProcessObject_Display_8 A45E LD A,$2D
ProcessObject_Display_9 A460 CALL Print_Character
A463 XOR A
A464 LD ($A026),A
ProcessObject_Display_10 A467 POP BC
A468 RET
ProcessObject_Display_11 A469 LD B,L
A46A CALL ProcessObject_Display_16
A46D LD A,$44
A46F CALL Print_Character
A472 LD A,$2E
A474 JR ProcessObject_Display_9
ProcessObject_Display_12 A476 LD A,$FF
ProcessObject_Display_13 A478 INC A
A479 AND A
A47A SBC HL,DE
A47C JR NC,ProcessObject_Display_13
A47E ADD HL,DE
A47F RET
ProcessObject_Display_14 A480 CALL ProcessObject_Display_12
A483 ADD A,$30
A485 DEC C
A486 INC C
A487 JR NZ,ProcessObject_Display_15
A489 CP $30
A48B RET Z
A48C INC C
ProcessObject_Display_15 A48D JP Print_Character
ProcessObject_Display_16 A490 PUSH HL
A491 PUSH DE
A492 LD L,B
A493 LD H,$00
A495 LD C,H
A496 LD DE,$0064
A499 CALL ProcessObject_Display_14
A49C LD DE,$000A
A49F CALL ProcessObject_Display_14
A4A2 LD A,L
A4A3 ADD A,$30
A4A5 CALL Print_Character
A4A8 POP DE
A4A9 POP HL
A4AA RET
Prev: A360 Up: Map Next: A4AB