; A = Tile number ; C = Slice height ; L = Column of the wall to display (0-255) #ifdef TextureMapping DrawSlice: ld l,a ld h,0 add hl,hl ;*2 add hl,hl ;*4 add hl,hl ;*8 add hl,hl ;*16 ld d,h ld e,l add hl,hl ;*32 add hl,de ;* 48 ld de,Textures - 48 add hl,de push hl pop ix ld a,b and %11110000 rra rra rra rra cp 8 jr c,SkipIncIX inc ix SkipIncIX: and %00000111 ld hl,MaskTable add a,l ld l,a ld a,(hl) ld (TextureMask),a ld a,c and %11111110 ret z ld c,a ld hl,MappingPtrs-2 ; ld h,MappingPtrs-2/256 ld b,0 ; ld l,c add hl,bc ; ; wenn fertig dies einsetzen! und an $XX00 gerne setzen ld e,(hl) inc hl ; I ld d,(hl) ; I push de ; I pop iy ; I ld d,b ; = 0 ;<<--- Hier auf null setzen! ld b,SCREEN_HEIGHT ld e,0 ScrnCol = $-1 ld a,c #ifdef EnableSprite ld (ScreenHeightArray),a ScreenHeightArrayVar = $-2 #endif cp b jr nc,Sup54 ld a,b ;Screen_Height ld b,c ;slice hight for djnz loop in render slice sub b rra ;sra a ld c,e ld e,a ld h,d ld l,e add hl,hl ;*2 add hl,de ;*3 add hl,hl ;*6 add hl,hl ;*12 ld e,c add hl,de ld de,plotsscreen add hl,de ld d,0 jr RenderLoop Sup54: ld hl,plotsscreen add hl,de RenderLoop: ld e,(iy) add ix,de #ifdef DeckeUndBoden ld a,0 TextureMask = $-1 and (ix) ld a,0 ColMask = $-1 jr z,ClearPixel1 or (hl) jr SkipClearPixel1 ClearPixel1: cpl and (hl) SkipClearPixel1: ld (hl),a #else ld a,0 TextureMask = $-1 and (ix) jp z,SkipPixel ; here to save 1 byte ld a,0 ColMask = $-1 or (hl) ld (hl),a SkipPixel: #endif ld e,12 add hl,de inc iy djnz RenderLoop ret #else DrawSlice: cp 2 ret c cp MAX_SCALE+1 ret nc ld e,0 ScrnCol = $-1 ld b,SCREEN_HEIGHT cp b jr nc,SupScrn ld b,a ;slice hight for djnz loop in render slice ld a,SCREEN_HEIGHT sub b sra a ld e,a ld d,0 push de pop hl add hl,hl ;*2 add hl,de ;*3 add hl,hl ;*6 add hl,hl ;*12 ld a,(ScrnCol) ld e,a add hl,de ld de,plotsscreen add hl,de jr RenderSlice SupScrn: ld hl,plotsscreen ld a,l add a,e ld l,a RenderSlice: ld de,12 RenderLoop2: ld a,0 ColMask = $-1 or (hl) ld (hl),a add hl,de djnz RenderLoop2 ret #endif .end