Prev: EF5C Up: Map Next: EFD3
EF8A: Start Actor
Used by the routine at Handler_Events.
Event 08: start an actor walking.
Event_StartActor EF8A LD IX,($6430) IX=*ReferenceActors.
Event_StartActor_Target EF8E LD A,(IX+$00) Return if the terminator FF is reached.
EF91 CP $FF
EF93 RET Z
EF94 BIT 7,A Jump to Event_StartActor_Continue if this actor is hidden.
EF96 JR NZ,Event_StartActor_Continue
EF98 LD A,(IX+$08) Jump to Event_StartActor_Continue if the actor already has a delta.
EF9B OR (IX+$09)
EF9E JR NZ,Event_StartActor_Continue
EFA0 LD A,(IX+$05) Jump to Event_StartActor_Skip if there is no horizontal destination.
EFA3 OR A
EFA4 JR Z,Event_StartActor_Skip
EFA6 CP (IX+$00) Jump to Event_StartActor_Branch if the actor is left of the destination.
EFA9 JR NC,Event_StartActor_Branch
EFAB LD (IX+$08),$FE Write FE as the horizontal delta.
EFAF JR Event_StartActor_Continue Jump to Event_StartActor_Continue.
Event_StartActor_Branch EFB1 LD (IX+$08),$02 Write 02 as the horizontal delta.
EFB5 JR Event_StartActor_Continue Jump to Event_StartActor_Continue.
Event_StartActor_Skip EFB7 LD A,(IX+$06) Jump to Event_StartActor_Continue if there is no vertical destination.
EFBA OR A
EFBB JR Z,Event_StartActor_Continue
EFBD CP (IX+$01) Jump to Event_StartActor_Branch2 if the actor is above the destination.
EFC0 JR NC,Event_StartActor_Branch2
EFC2 LD (IX+$09),$FE Write FE as the vertical delta.
EFC6 JR Event_StartActor_Continue Jump to Event_StartActor_Continue.
Event_StartActor_Branch2 EFC8 LD (IX+$09),$02 Write 02 as the vertical delta.
Event_StartActor_Continue EFCC LD DE,$000D IX+=000D.
EFCF ADD IX,DE
EFD1 JR Event_StartActor_Target Jump to Event_StartActor_Target.
Prev: EF5C Up: Map Next: EFD3