Prev: FB2F Up: Map Next: FBD2
FB90: Update Actor
Used by the routine at JumpTable_UpdateActor.
Stamps the actor mask onto the display file.
Input
IX Actor data
Update_Actor FB90 XOR A Write 00 to the mask at FBC5.
FB91 LD ($FBC5),A
This entry point is used by the routine at Draw_Actor.
Update_Actor_Target FB94 LD A,$21 Convert the actor column and row into a pixel address.
FB96 SUB (IX+$00)
FB99 ADD A,A
FB9A ADD A,A
FB9B ADD A,A
FB9C LD C,A
FB9D LD A,(IX+$01)
FBA0 SUB $03
FBA2 ADD A,A
FBA3 ADD A,A
FBA4 ADD A,A
FBA5 ADD A,(IX+$03)
FBA8 LD B,A
FBA9 LD E,$04 E=04.
Update_Actor_Continue FBAB PUSH BC Jump to Update_Actor_Branch if this pixel row is off-screen.
FBAC PUSH DE
FBAD LD A,B
FBAE CP $B0
FBB0 JR NC,Update_Actor_Branch
FBB2 CALL $22AA Call PIXEL_ADD.
FBB5 LD B,(IX+$04) Increase the copy width when the fine-X is not 07.
FBB8 LD A,(IX+$02)
FBBB CP $07
FBBD JR Z,Update_Actor_Skip
FBBF INC B
Update_Actor_Skip FBC0 LD DE,$6440 DE=Actor_MaskBuffer.
Update_Actor_Target2 FBC3 LD A,(DE) A=*DE.
Update_Actor_Mask FBC4 AND $FF Merge the mask (self-modified AND).
FBC6 LD (HL),A Write the byte and loop back to Update_Actor_Target2.
FBC7 INC HL
FBC8 INC DE
FBC9 DJNZ Update_Actor_Target2
Update_Actor_Branch FBCB POP DE Move up one pixel row and loop back to Update_Actor_Continue.
FBCC POP BC
FBCD DEC B
FBCE DEC E
FBCF JR NZ,Update_Actor_Continue
FBD1 RET
Prev: FB2F Up: Map Next: FBD2