2019-11-02 13:17:24 -04:00
|
|
|
|
|
2019-11-02 13:51:40 -04:00
|
|
|
|
IDEAL
|
|
|
|
|
JUMPS
|
|
|
|
|
P386
|
|
|
|
|
P387 ; Allow 386 processor
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
2019-11-02 13:51:40 -04:00
|
|
|
|
model flat
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
2019-11-02 13:51:40 -04:00
|
|
|
|
dataseg
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
SVTABLE dd ?
|
|
|
|
|
|
|
|
|
|
SAVEVID dd ?
|
|
|
|
|
SAVEROW dd ?
|
|
|
|
|
|
|
|
|
|
|
2019-11-02 13:51:40 -04:00
|
|
|
|
codeseg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include "ackrtn.inc"
|
|
|
|
|
|
|
|
|
|
extrn _BackDropRows:dword
|
|
|
|
|
extrn _PlayerAngle:word
|
|
|
|
|
extrn _BackArray:dword
|
|
|
|
|
extrn _Resolution:word
|
|
|
|
|
extrn _ScreenOffset:word
|
|
|
|
|
extrn _bmDistance:dword
|
|
|
|
|
extrn _bmWall:dword
|
|
|
|
|
extrn _scPtr:dword
|
|
|
|
|
extrn _VidTop:dword
|
|
|
|
|
extrn _VidBottom:dword
|
|
|
|
|
extrn _Floors1:dword
|
|
|
|
|
extrn _Floors2:dword
|
|
|
|
|
|
|
|
|
|
extrn _gPalTable:dword
|
|
|
|
|
extrn _gWinStartX:word
|
|
|
|
|
extrn _gWinStartY:word
|
|
|
|
|
extrn _gWinEndX:word
|
|
|
|
|
extrn _gWinEndY:word
|
|
|
|
|
extrn _gWinHeight:word
|
|
|
|
|
extrn _ViewHeight:word
|
|
|
|
|
extrn _SysFlags:word
|
|
|
|
|
extrn _Slice:byte
|
|
|
|
|
extrn _gScrnBuffer:dword
|
|
|
|
|
extrn _gCenterOff:word
|
|
|
|
|
extrn _gCenterRow:word
|
|
|
|
|
extrn _Floorscr:dword
|
|
|
|
|
extrn _gWinStartOffset:dword
|
|
|
|
|
|
|
|
|
|
extrn _scVid:dword
|
|
|
|
|
extrn _scWall:dword
|
|
|
|
|
extrn _scPal:dword
|
|
|
|
|
extrn _scdst:word
|
|
|
|
|
extrn _scwht:word
|
|
|
|
|
extrn _scmulti:word
|
|
|
|
|
extrn _sctopht:word
|
|
|
|
|
extrn _scbotht:word
|
|
|
|
|
extrn _scsavwht:word
|
|
|
|
|
extrn _scmulcnt:word
|
|
|
|
|
extrn _scsavVid:dword
|
|
|
|
|
extrn _scbNum:word
|
|
|
|
|
extrn _scMulData:dword
|
|
|
|
|
extrn _scColumn:dword
|
|
|
|
|
extrn _WallbMaps:dword
|
|
|
|
|
extrn _LowerTable:dword
|
|
|
|
|
extrn _gBottomOff:dword
|
|
|
|
|
extrn _LightFlag:word
|
|
|
|
|
|
|
|
|
|
extrn ShowCol_:near
|
|
|
|
|
extrn ShowColMask_:near
|
|
|
|
|
|
|
|
|
|
extrn _Resolution:word
|
|
|
|
|
extrn _Flooru:dword
|
|
|
|
|
extrn _Floorv:dword
|
|
|
|
|
extrn _Floordu:dword
|
|
|
|
|
extrn _Floordv:dword
|
|
|
|
|
extrn _Floorkx:dword
|
|
|
|
|
extrn _Floorky:dword
|
|
|
|
|
extrn _Floorku:dword
|
|
|
|
|
extrn _Floorkv:dword
|
|
|
|
|
extrn _Floorkdu:dword
|
|
|
|
|
extrn _Floorkdv:dword
|
|
|
|
|
extrn _Floorbm:dword
|
|
|
|
|
extrn _Floorscr:dword
|
|
|
|
|
extrn _Floors1:dword
|
|
|
|
|
extrn _Floors2:dword
|
|
|
|
|
extrn _FloorscrTop:dword
|
|
|
|
|
extrn _Floorptr2:dword
|
|
|
|
|
extrn _Floorwt:dword
|
|
|
|
|
extrn _Floorvht:word
|
|
|
|
|
extrn _Flooreht:word
|
|
|
|
|
extrn _FloorMap:word
|
|
|
|
|
extrn _gScrnBufferCenter:dword
|
|
|
|
|
extrn _gWinHalfHeight:word
|
|
|
|
|
extrn _zdTable:dword
|
|
|
|
|
extrn _CosTable:dword
|
|
|
|
|
extrn _SinTable:dword
|
|
|
|
|
extrn _xPglobal:dword
|
|
|
|
|
extrn _yPglobal:dword
|
|
|
|
|
extrn _WallDistTable:dword
|
|
|
|
|
extrn _CeilMap:word
|
|
|
|
|
extrn _AckTimerCounter:dword
|
|
|
|
|
|
|
|
|
|
public Mymemset_
|
|
|
|
|
public AckSpeedUp_
|
|
|
|
|
public AckSlowDown_
|
|
|
|
|
public ShowColNS_
|
|
|
|
|
public ShowColMaskNS_
|
|
|
|
|
public DrawBackDrop_
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
;
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
proc Mymemset_ near
|
|
|
|
|
push edi
|
2019-11-02 13:17:24 -04:00
|
|
|
|
push ebx
|
|
|
|
|
push ecx
|
|
|
|
|
push edx
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov edi,eax
|
|
|
|
|
mov dh,dl
|
|
|
|
|
mov ax,dx
|
|
|
|
|
shl eax,16
|
|
|
|
|
mov ax,dx
|
|
|
|
|
mov ecx,ebx
|
|
|
|
|
sar ecx,2
|
|
|
|
|
rep stosd
|
|
|
|
|
mov ecx,ebx
|
|
|
|
|
and ecx,3
|
|
|
|
|
rep stosb
|
|
|
|
|
pop edx
|
|
|
|
|
pop ecx
|
|
|
|
|
pop ebx
|
|
|
|
|
pop edi
|
2019-11-02 13:17:24 -04:00
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-03 13:06:11 -05:00
|
|
|
|
; void AckSpeedUp(int rate)
|
|
|
|
|
; eax: rate
|
2019-11-02 13:17:24 -04:00
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
proc AckSpeedUp_ near
|
2019-11-02 13:44:19 -04:00
|
|
|
|
push ebx
|
|
|
|
|
push edx
|
2019-11-03 13:06:11 -05:00
|
|
|
|
mov ebx,eax
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov ax,0FFFFH
|
|
|
|
|
xor dx,dx
|
2019-11-02 13:17:24 -04:00
|
|
|
|
idiv bx
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov bx,ax
|
|
|
|
|
mov dx,43h
|
|
|
|
|
mov al,36h
|
|
|
|
|
out dx,al
|
|
|
|
|
mov dx,40h
|
|
|
|
|
mov al,bl ; ffh = original value
|
|
|
|
|
out dx,al
|
|
|
|
|
mov dx,40h
|
|
|
|
|
mov al,bh ; 1fh = orignal value
|
|
|
|
|
out dx,al
|
|
|
|
|
pop edx
|
|
|
|
|
pop ebx
|
2019-11-02 13:17:24 -04:00
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
; void AckSlowDown(void)
|
2019-11-02 13:17:24 -04:00
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
proc AckSlowDown_ near
|
2019-11-02 13:44:19 -04:00
|
|
|
|
push edx
|
|
|
|
|
mov dx,43h
|
|
|
|
|
mov al,36h
|
|
|
|
|
out dx,al
|
|
|
|
|
mov dx,40h
|
|
|
|
|
mov al,0ffh
|
|
|
|
|
out dx,al
|
|
|
|
|
mov dx,40h
|
|
|
|
|
mov al,0ffh
|
|
|
|
|
out dx,al
|
|
|
|
|
pop edx
|
|
|
|
|
ret
|
|
|
|
|
endp
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
; void DrawBackDrop(void)
|
2019-11-02 13:17:24 -04:00
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
proc DrawBackDrop_ near
|
2019-11-02 13:44:19 -04:00
|
|
|
|
push ebp
|
|
|
|
|
push esi
|
|
|
|
|
push edi
|
|
|
|
|
push ebx
|
|
|
|
|
push ecx
|
|
|
|
|
push edx
|
|
|
|
|
mov ax,[_PlayerAngle]
|
|
|
|
|
sub ax,INT_ANGLE_32
|
|
|
|
|
jnc ang_okay
|
|
|
|
|
add ax,INT_ANGLE_360
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
ang_okay:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov cx,640
|
|
|
|
|
cwd
|
|
|
|
|
idiv cx ; Do mod 640 to get starting posn
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
2019-11-02 13:44:19 -04:00
|
|
|
|
; movsx ebx,dx
|
|
|
|
|
movzx ebx,dx
|
|
|
|
|
shl ebx,2 ; x 4 for memory pointers
|
|
|
|
|
mov edx,320
|
|
|
|
|
mov ebp,[_gScrnBuffer] ; get screen buffer
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
dbd010:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov edi,ebp
|
|
|
|
|
mov esi,[dword ptr _BackArray+ebx] ;current image pointer
|
|
|
|
|
mov ecx,[_BackDropRows] ; rows to draw
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
dbd020:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
; mov al,[esi]
|
|
|
|
|
; mov [edi],al
|
|
|
|
|
; inc esi
|
|
|
|
|
; lea edi,[edi+320]
|
|
|
|
|
movsb
|
|
|
|
|
lea edi,[edi+319]
|
|
|
|
|
dec ecx
|
|
|
|
|
jnz dbd020
|
|
|
|
|
|
|
|
|
|
inc ebp ;next screen column
|
|
|
|
|
lea ebx,[ebx+4]
|
|
|
|
|
cmp ebx,2560 ;see if 640x4 column yet
|
|
|
|
|
jb short dbd030 ;nope
|
|
|
|
|
mov ebx,0 ;else wrap to 0 column
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
dbd030:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
dec edx ;see if done with all columns
|
|
|
|
|
jnz dbd010
|
|
|
|
|
|
|
|
|
|
pop edx
|
|
|
|
|
pop ecx
|
|
|
|
|
pop ebx
|
|
|
|
|
pop edi
|
|
|
|
|
pop esi
|
|
|
|
|
pop ebp
|
|
|
|
|
ret
|
|
|
|
|
endp
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
; void ShowColNS(void)
|
2019-11-02 13:17:24 -04:00
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
proc ShowColNS_ near
|
2019-11-02 13:44:19 -04:00
|
|
|
|
push ebp
|
2019-11-02 13:17:24 -04:00
|
|
|
|
push esi
|
|
|
|
|
push edi
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov edi,[_scVid]
|
|
|
|
|
mov ebx,[_scWall]
|
|
|
|
|
mov ebp,[_bmDistance]
|
|
|
|
|
mov cx,[_gCenterRow]
|
|
|
|
|
mov edx,1FFFh
|
|
|
|
|
xor eax,eax
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_top:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov al,dh
|
|
|
|
|
sub edx,ebp
|
|
|
|
|
mov al,[ebx+eax]
|
|
|
|
|
mov [edi],al
|
|
|
|
|
jc short sns_bot
|
|
|
|
|
sub edi,320
|
|
|
|
|
dec cx
|
|
|
|
|
jns sns_top
|
|
|
|
|
xor ecx,ecx
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_bot:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov [SAVEVID],edi
|
|
|
|
|
mov [SAVEROW],ecx
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov edi,[_scVid]
|
|
|
|
|
mov cx,[_gCenterRow]
|
|
|
|
|
mov edx,2000h
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_botloop:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov al,dh
|
|
|
|
|
add edi,320
|
|
|
|
|
mov al,[ebx+eax]
|
|
|
|
|
add edx,ebp
|
|
|
|
|
mov [edi],al
|
|
|
|
|
cmp dh,64
|
|
|
|
|
jae short sns_exit
|
|
|
|
|
dec cx
|
|
|
|
|
jnz sns_botloop
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_exit:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
cmp [word ptr _scmulti],0
|
|
|
|
|
jz sns_alldone
|
|
|
|
|
mov esi,[SAVEROW]
|
|
|
|
|
or si,si
|
|
|
|
|
jz sns_alldone
|
|
|
|
|
|
|
|
|
|
mov ebx,[_scMulData] ;ptr to count and wall data
|
|
|
|
|
mov cl,[ebx] ;get number of walls to draw
|
|
|
|
|
inc ebx
|
|
|
|
|
mov al,[ebx] ;first wall to show
|
|
|
|
|
inc ebx
|
|
|
|
|
mov [_scMulData],ebx
|
|
|
|
|
movzx ebx,al ;get wall number
|
|
|
|
|
mov eax,[_WallbMaps] ;Get array of bitmaps
|
|
|
|
|
mov ebx,[eax+ebx*4] ;Get the bitmap we are using
|
|
|
|
|
mov eax,[_scColumn]
|
|
|
|
|
add ebx,eax
|
|
|
|
|
mov edi,[SAVEVID]
|
|
|
|
|
mov edx,3FFFh
|
|
|
|
|
mov ebp,[_bmDistance]
|
|
|
|
|
mov eax,0
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_mulloop:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov al,dh
|
|
|
|
|
sub edi,320
|
|
|
|
|
mov al,[ebx+eax]
|
|
|
|
|
dec si
|
|
|
|
|
mov [edi],al
|
|
|
|
|
jz short sns_alldone
|
|
|
|
|
sub edx,ebp
|
|
|
|
|
jnc sns_mulloop
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_nextlevel:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
dec cl ;Bump wall count
|
|
|
|
|
jz short sns_alldone ;br if no more walls
|
|
|
|
|
mov ebx,[_scMulData] ;Get pointer to the multi-ht data
|
|
|
|
|
movzx edx,[byte ptr ebx] ;next wall number
|
|
|
|
|
inc ebx ;Advance for next wall
|
|
|
|
|
mov [_scMulData],ebx
|
|
|
|
|
mov ebx,[_WallbMaps] ;Get wall array
|
|
|
|
|
mov ebx,[ebx+edx*4] ;Get wall bitmap to use
|
|
|
|
|
add ebx,[dword ptr _scColumn] ;add in current column
|
|
|
|
|
mov edx,3FFFh
|
|
|
|
|
jmp sns_mulloop
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
sns_alldone:
|
|
|
|
|
|
2019-11-02 13:44:19 -04:00
|
|
|
|
pop edi
|
|
|
|
|
pop esi
|
|
|
|
|
pop ebp
|
|
|
|
|
ret
|
|
|
|
|
endp
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
; void ShowColMaskNS(void)
|
2019-11-02 13:17:24 -04:00
|
|
|
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-11-02 13:51:40 -04:00
|
|
|
|
proc ShowColMaskNS_ near
|
2019-11-02 13:44:19 -04:00
|
|
|
|
push ebp
|
|
|
|
|
push esi
|
|
|
|
|
push edi
|
|
|
|
|
mov edi,[_scVid]
|
|
|
|
|
mov ebx,[_scWall]
|
|
|
|
|
mov ebp,[_bmDistance]
|
|
|
|
|
mov cx,[_gCenterRow]
|
|
|
|
|
mov edx,1FFFh
|
|
|
|
|
xor eax,eax
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
smns_top:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov al,dh
|
|
|
|
|
mov al,[ebx+eax]
|
|
|
|
|
or al,al
|
|
|
|
|
jz short smns_blank
|
|
|
|
|
mov [edi],al
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
smns_blank:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
sub edx,ebp
|
|
|
|
|
jc short smns_bot
|
|
|
|
|
sub edi,320
|
|
|
|
|
dec cx
|
|
|
|
|
jnz smns_top
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
smns_bot:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
mov edi,[_scVid]
|
|
|
|
|
mov cx,[_gCenterRow]
|
|
|
|
|
mov edx,2000h
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
smns_botloop:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
add edi,320
|
|
|
|
|
mov al,dh
|
|
|
|
|
mov al,[ebx+eax]
|
|
|
|
|
or al,al
|
|
|
|
|
jz short smns_blank1
|
|
|
|
|
mov [edi],al
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
smns_blank1:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
add edx,ebp
|
|
|
|
|
cmp dh,64
|
|
|
|
|
jae short smns_exit
|
|
|
|
|
dec cx
|
|
|
|
|
jnz smns_botloop
|
2019-11-02 13:17:24 -04:00
|
|
|
|
|
|
|
|
|
smns_exit:
|
2019-11-02 13:44:19 -04:00
|
|
|
|
pop edi
|
|
|
|
|
pop esi
|
|
|
|
|
pop ebp
|
2019-11-02 13:17:24 -04:00
|
|
|
|
ret
|
|
|
|
|
endp
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|