Prev: 8D77 Up: Map Next: 8E26
8DC4: Per-frame update for the serf
The serf's equivalent of UPDATE_KNIGHT, reached from ACTOR_HANDLERS for sprite codes $21-$30.
UPDATE_SERF 8DC4 LD BC,$2020
8DC7 LD DE,$0101
8DCA LD HL,$0707
8DCD CALL MOVE_PLAYER
8DD0 LD E,(IX+$06)
8DD3 LD D,(IX+$07)
8DD6 LD A,D
8DD7 OR E
8DD8 JR Z,UPDATE_SERF_4
8DDA LD A,($5C78)
8DDD AND $03
8DDF JR NZ,UPDATE_SERF_4
8DE1 LD A,(IX+$00)
8DE4 AND $03
8DE6 ADD A,$21
8DE8 LD (IX+$00),A
8DEB LD A,D
8DEC AND A
8DED JP P,UPDATE_SERF_0
8DF0 NEG
UPDATE_SERF_0 8DF2 LD C,A
8DF3 LD A,E
8DF4 AND A
8DF5 JP P,UPDATE_SERF_1
8DF8 NEG
UPDATE_SERF_1 8DFA CP C
8DFB JR NC,UPDATE_SERF_5
8DFD LD A,D
8DFE AND A
8DFF LD A,(IX+$00)
8E02 JP M,UPDATE_SERF_2
8E05 ADD A,$04
UPDATE_SERF_2 8E07 ADD A,$08
UPDATE_SERF_3 8E09 LD (IX+$00),A
8E0C CALL SOUND_FOOTSTEP
UPDATE_SERF_4 8E0F CALL READ_CONTROLS
8E12 AND $10
8E14 CALL Z,SERF_FIRE
8E17 JP PLAYER_TICK
UPDATE_SERF_5 8E1A LD A,E
8E1B AND A
8E1C LD A,(IX+$00)
8E1F JP M,UPDATE_SERF_3
8E22 ADD A,$04
8E24 JR UPDATE_SERF_3
Prev: 8D77 Up: Map Next: 8E26