Prev: 63402 Up: Map Next: 63539
63492: Advance Entity
Used by the routine at JumpTable_AdvanceEntity.
Advances an entity by its stored deltas.
Input
IX Entity data
Output
B Updated row
C Updated column
D Updated fine-Y
E Updated fine-X
Advance_Entity 63492 LD C,(IX+0) C=the column and B=the row.
63495 LD B,(IX+1)
63498 LD A,(IX+8) Add *IX+8 to the fine-X.
63501 ADD A,(IX+2)
63504 CP 8 Jump to Advance_Entity_Branch2 if the fine-X is still in range.
63506 JR C,Advance_Entity_Branch2
63508 CP 128 Jump to Advance_Entity_Branch if the entity moved left.
63510 JR NC,Advance_Entity_Branch
63512 INC C Step the column two right, then...
63513 INC C
Advance_Entity_Branch 63514 DEC C ...one left.
63515 AND %00000111 Keep only bits 0-2.
Advance_Entity_Branch2 63517 LD E,A Store the fine-X.
63518 LD A,(IX+9) Add *IX+9 to the fine-Y.
63521 ADD A,(IX+3)
63524 CP 8 Jump to Advance_Entity_Branch4 if the fine-Y is still in range.
63526 JR C,Advance_Entity_Branch4
63528 CP 128 Jump to Advance_Entity_Branch3 if the entity moved up.
63530 JR NC,Advance_Entity_Branch3
63532 INC B Step the row two down, then...
63533 INC B
Advance_Entity_Branch3 63534 DEC B ...one up.
63535 AND %00000111 Keep only bits 0-2.
Advance_Entity_Branch4 63537 LD D,A Store the fine-Y.
63538 RET Return.
View the equivalent code in Booty.
Prev: 63402 Up: Map Next: 63539