Prev: 6236 Up: Map Next: 6352
62AE: Draw the whole stage.
Used by the routines at Vector_HeroInit and ScreenUpdate.
Screen_DrawStage 62AE LD HL,$F608 Clear offscreen buffer.
62B1 LD DE,OffScreen0
62B4 LD BC,$087F
62B7 LD (HL),$00
62B9 LDIR
62BB LD HL,(ManData_PosPrimary_dfc3) Make sure positions are always even.
62BE LD DE,(ManData_PosSecondary_dfc5)
62C2 RES 0,L
62C4 RES 0,E
62C6 LD (ManData_PosPrimary_dfc3),HL
62C9 LD (ManData_PosSecondary_dfc5),DE
62CD PUSH HL Store positions.
62CE PUSH DE
62CF LD A,(ManWalkDirection_DFD4)
62D2 PUSH AF
62D3 LD B,$22
62D5 LD A,(CamDirection_DFD2)
62D8 BIT 0,A
62DA JR NZ,Screen_DrawStage_0
62DC EX DE,HL Camera is N/S so work on the E/W position.
Screen_DrawStage_0 62DD LD DE,$00FF
62E0 BIT 1,A
62E2 JR NZ,Screen_DrawStage_1
62E4 AND A Camera is N/E
62E5 SBC HL,DE
62E7 JR C,Screen_DrawStage_4
62E9 JR Screen_DrawStage_2
Screen_DrawStage_1 62EB AND A
62EC SBC HL,DE
62EE JR NC,Screen_DrawStage_4
Screen_DrawStage_2 62F0 LD A,$01
62F2 LD (ManWalkDirection_DFD4),A
62F5 LD HL,$F629
Screen_DrawStage_3 62F8 PUSH BC
62F9 PUSH HL
62FA LD IX,OffsetRectsB
62FE CALL Vector_Screen_DrawColumn
6301 LD HL,(CamDirection_DFD2) Get camera direction and calculate jump vector to move in the right direction based on value.
6304 LD H,$00
6306 ADD HL,HL
6307 LD BC,Vector_MovePositionB
630A ADD HL,BC
630B LD E,L
630C LD D,H
630D CALL Call_HL
6310 EX DE,HL
6311 CALL Call_HL
6314 POP HL
6315 DEC HL
6316 POP BC
6317 DJNZ Screen_DrawStage_3
6319 JR Screen_DrawStage_6
Screen_DrawStage_4 631B LD A,$02
631D LD (ManWalkDirection_DFD4),A
6320 LD HL,$F608
Screen_DrawStage_5 6323 PUSH BC
6324 PUSH HL
6325 LD IX,OffsetRectsA
6329 CALL Vector_Screen_DrawColumn
632C LD HL,(CamDirection_DFD2) Get camera direction and calculate jump vector to move in the right direction based on value.
632F LD H,$00
6331 ADD HL,HL
6332 LD BC,Vector_MovePositionA
6335 ADD HL,BC
6336 LD E,L
6337 LD D,H
6338 CALL Call_HL
633B EX DE,HL
633C CALL Call_HL
633F POP HL
6340 INC HL
6341 POP BC
6342 DJNZ Screen_DrawStage_5
Screen_DrawStage_6 6344 POP AF
6345 LD (ManWalkDirection_DFD4),A
6348 POP DE
6349 POP HL
634A LD (ManData_PosPrimary_dfc3),HL
634D LD (ManData_PosSecondary_dfc5),DE
6351 RET
Prev: 6236 Up: Map Next: 6352