Prev: 8E32 Up: Map Next: 8EED
8EA0: Blit a character offset in the vertical axis.
Used by the routines at Room_CastleLock and Room_jvGambling.
Input
IX Ptr to sprite info
Output
When offset, the blit continues onto the next character.
char_BlitScrolledVert 8EA0 LD A,(Camera_Compass) See if visible based on camera direction.
8EA3 CP $01
8EA5 RET NZ
8EA6 PUSH DE
8EA7 PUSH HL
8EA8 LD L,(IX+$00) Get character to blit.
8EAB LD H,$00 Convert into bitmap address.
8EAD ADD HL,HL
8EAE ADD HL,HL
8EAF ADD HL,HL
8EB0 LD E,(IX+$04) Get scan offset
8EB3 LD D,$00
8EB5 ADD HL,DE
8EB6 LD DE,Charset_Start
8EB9 ADD HL,DE
8EBA LD (Bitmap_PtrTable),HL Store in bitmap info scratchpad.
8EBD LD E,(IX+$07) Calculate position on screen and see if visible.
8EC0 LD D,(IX+$08)
8EC3 LD HL,(Coords_EW)
8EC6 AND A
8EC7 SBC HL,DE
8EC9 JR NZ,char_BlitScrolledVert_0
8ECB LD E,(IX+$05)
8ECE LD D,(IX+$06)
8ED1 LD HL,(Coords_NS)
8ED4 CALL sub_abs
8ED7 LD DE,$0021
8EDA AND A
8EDB SBC HL,DE
8EDD JR NC,char_BlitScrolledVert_0
8EDF LD A,$01 Store bitmap size into scatchpad.
8EE1 LD (Bitmap_PtrTableOffWidth),A
8EE4 LD (Bitmap_PtrTableOffHeight),A
8EE7 CALL ObjNode_BlitShft Blit at correct position on screen.
char_BlitScrolledVert_0 8EEA POP HL
8EEB POP DE
8EEC RET
Prev: 8E32 Up: Map Next: 8EED