📄 guimouse.inc
字号:
je near CheatCodeLoad
cmp byte[GUICBHold],9
je near ProcessCheatCode
cmp byte[GUICBHold],33
je near CheatCodeFix
cmp byte[GUICBHold],14
je near SetDevice
cmp byte[GUICBHold],15
je near CalibrateDev1
cmp byte[GUICBHold],16
je near MoviePlay
cmp byte[GUICBHold],17
je near MovieRecord
cmp byte[GUICBHold],18
je near MovieStop
cmp byte[GUICBHold],19
je near MovieRecord
cmp byte[GUICBHold],20
je near SkipMovie
cmp byte[GUICBHold],40
je near SetAllKeys
cmp byte[GUICBHold],50
jne .notstartcheat
call CheatCodeSearchInit
.notstartcheat
cmp byte[GUICBHold],60
jne .nocombclear
mov byte[GUIComboTextH],0
mov byte[GUINumCombo],0
mov dword[GUIComboKey],0
.nocombclear
cmp byte[GUICBHold],61
jne .nocomboadd
cmp byte[NumCombo],50
je .nocomboadd
call ComboAdder
.nocomboadd
cmp byte[GUICBHold],62
jne .nocomboreplace
cmp byte[NumCombo],0
je .nocomboreplace
call ComboReplace
.nocomboreplace
cmp byte[GUICBHold],63
jne .nocomboremove
cmp byte[NumCombo],0
je .nocomboremove
call ComboRemoval
.nocomboremove
cmp byte[GUICBHold],51
jne .notrestartcheat
mov byte[CheatWinMode],0
mov byte[CheatSearchStatus],0
.notrestartcheat
cmp byte[GUICBHold],52
jne .notviewcheat
mov byte[CheatWinMode],2
.notviewcheat
cmp byte[GUICBHold],53
jne .notsearchprocess
call CheatCodeSearchProcess
.notsearchprocess
cmp byte[GUICBHold],54
jne .notreturnview
mov byte[CheatWinMode],1
.notreturnview
cmp byte[GUICBHold],55
jne .notadd
cmp dword[NumCheatSrc],0
je .notadd
mov byte[CheatWinMode],3
mov byte[CurCStextpos],0
mov byte[CSInputDisplay],'_'
mov byte[CSInputDisplay+1],0
mov byte[CSDescDisplay],0
.notadd
cmp byte[GUICBHold],56
jne .notreturnadd
mov byte[CheatWinMode],2
.notreturnadd
cmp byte[GUICBHold],57
jne .noinsertscc
call AddCSCheatCode
; call InsertSearchDescription
.noinsertscc
cmp byte[GUICBHold],21
jne .nomodem1
mov byte[CNetType],3
.nomodem1
cmp byte[GUICBHold],22
jne .nomodem2
mov byte[CNetType],10
mov byte[ModemProcess],0
.nomodem2
cmp byte[GUICBHold],23
jne .nomodem3
mov byte[CNetType],2
.nomodem3
cmp byte[GUICBHold],24
jne .nomodem4
mov byte[CNetType],12
mov byte[ModemProcess],0
.nomodem4
cmp byte[GUICBHold],25
jne .nomodem4b
mov byte[CNetType],15
mov byte[ModemProcess],40
mov byte[WhichRemote],4
.nomodem4b
cmp byte[GUICBHold],26
jne .nomodem4c
mov byte[CNetType],15
mov byte[ModemProcess],41
mov byte[WhichRemote],4
.nomodem4c
cmp byte[GUICBHold],27
jne .noinit
cmp byte[CNetType],20
jne near .nostat20b2
call PreparePacket
mov al,255
call RemoteSendChar
call SendPacket
call PreparePacket
mov al,255
call RemoteSendChar
call SendPacket
call PreparePacket
mov al,255
call RemoteSendChar
call SendPacket
cmp byte[NetQuitAfter],0
je .nostat20b2
mov byte[GUIQuit],1
.nostat20b2
call RemoteDeInit
.noinit
cmp byte[GUICBHold],28
jne .nomodem5
mov byte[CNetType],11
mov byte[ModemProcess],0
.nomodem5
cmp byte[GUICBHold],34
jne .noipx1
mov byte[WhichRemote],2
mov byte[ModemProcess],30
mov byte[CNetType],15
.noipx1
cmp byte[GUICBHold],64
jne .nostatecancel
mov byte[NetStateQuit],1
.nostatecancel
cmp byte[GUICBHold],65
jne .nohomepage
call GotoHomepage
.nohomepage
mov byte[GUICBHold],0
ret
.checkmenuboxclick
mov byte[GUIpclicked],1
xor eax,eax
mov al,[GUIwinptr]
or eax,eax
jz near .nomore
dec eax
xor ebx,ebx
mov bl,[GUIwinorder+eax]
mov ecx,[GUIwinposx+ebx*4]
cmp ecx,[GUImouseposx]
jge .noinsdwin
mov ecx,[GUIwinposy+ebx*4]
cmp ecx,[GUImouseposy]
jge .noinsdwin
mov ecx,[GUIwinposx+ebx*4]
add ecx,[GUIwinsizex+ebx*4]
cmp ecx,[GUImouseposx]
jle .noinsdwin
mov ecx,[GUIwinposy+ebx*4]
add ecx,[GUIwinsizey+ebx*4]
add ecx,10
cmp ecx,[GUImouseposy]
jle .noinsdwin
jmp GUIWinClicked
.noinsdwin
.nextwindowfind
or eax,eax
jz near .nomore
dec eax
mov bl,[GUIwinorder+eax]
mov ecx,[GUIwinposx+ebx*4]
cmp ecx,[GUImouseposx]
jge .nextwindowfind
mov ecx,[GUIwinposy+ebx*4]
cmp ecx,[GUImouseposy]
jge .nextwindowfind
mov ecx,[GUIwinposx+ebx*4]
add ecx,[GUIwinsizex+ebx*4]
cmp ecx,[GUImouseposx]
jle .nextwindowfind
mov ecx,[GUIwinposy+ebx*4]
add ecx,[GUIwinsizey+ebx*4]
add ecx,10
cmp ecx,[GUImouseposy]
jle .nextwindowfind
; Shift all following windows downwards by 1
.nextfind
inc eax
cmp al,[GUIwinptr]
je .foundend
mov cl,[GUIwinorder+eax]
mov [GUIwinorder+eax-1],cl
jmp .nextfind
.foundend
mov byte[GUIpclicked],0
mov [GUIwinorder+eax-1],bl
ret
.nomore
cmp dword[SantaPos],272
je .nosanta
cmp byte[ShowTimer],0
jne .nosanta
mov dword[MsgGiftLeft],36*4
mov byte[ShowTimer],1
.nosanta
ret
GUIProcVideo:
mov al,[GUIcurrentvideocursloc]
; cmp byte[OSPort],2
; jae .yes16b
%ifdef __MSDOS__
cmp al,3
je .yes16b
cmp al,5
je .yes16b
cmp al,7
je .yes16b
cmp al,10
je .yes16b
cmp al,8
jne .no16b
%endif
.yes16b
; mov byte[newengen],0
; mov byte[cfgnewgfx],0
; jmp .skipno16b
.no16b
mov byte[newengen],1
mov byte[cfgnewgfx],1
.skipno16b
mov byte[GUICBHold],0
call guiprevideo
mov al,[cvidmode]
mov [.prevvid],al
mov al,[GUIcurrentvideocursloc]
mov [cvidmode],al
mov byte[ExitFromGUI],1
call initvideo
cmp byte[videotroub],1
je .failed
call GUISetPal
mov al,[cvidmode]
mov [cfgcvidmode],al
call guipostvideo
cmp dword[GUIkeydelay],0
je .failed2
mov dword[GUIkeydelay],0
xor eax,eax
mov al,[cvidmode]
cmp byte[GUIWFVID+eax],1
je .fullsc
mov [PrevWinMode],al
ret
.fullsc
mov [PrevFSMode],al
ret
.failed
mov byte[videotroub],0
mov al,[.prevvid]
mov [cvidmode],al
mov [cfgcvidmode],al
call initvideo
call GUISetPal
call guipostvideofail
mov dword[GUIkeydelay],0
ret
.failed2
mov byte[videotroub],0
mov al,[.prevvid]
mov [cvidmode],al
mov [cfgcvidmode],al
call initvideo
call GUISetPal
mov dword[GUIkeydelay],0
ret
.prevvid db 0
NEWSYM SwitchFullScreen
pushad
mov ecx,255*296
mov eax,[vidbufferofsb]
.loop
mov dword[eax],0FEFEFEFEh
add eax,4
loop .loop
xor eax,eax
mov al,[cvidmode]
cmp byte[GUIWFVID+eax],0
je .fullsc
mov al,[PrevWinMode]
mov [cvidmode],al
mov [cfgcvidmode],al
call initvideo
popad
ret
.fullsc
mov al,[PrevFSMode]
mov [cvidmode],al
mov [cfgcvidmode],al
call initvideo
popad
ret
GUIWindowMove:
xor eax,eax
mov al,[GUIwinptr]
dec eax
xor ebx,ebx
mov bl,[GUIwinorder+eax]
mov eax,[GUImouseposx]
sub eax,[GUIwinposx+ebx*4]
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+ebx*4]
cmp ebx,13
je near DisplayGUICheatSearchClick2
cmp ebx,7
je near DisplayGUICheatClick2
cmp ebx,5
je near DisplayGUIVideoClick2
cmp ebx,3
je near DisplayGUIInputClick2
cmp ebx,16
je near DisplayGUIComboClick2
jmp DisplayGUIConfirmClick2
GUIWinClicked:
mov ecx,[GUImouseposx]
sub ecx,[GUIwinposx+ebx*4]
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+ebx*4]
mov esi,ecx
sub esi,[GUIwinsizex+ebx*4]
add esi,10
cmp esi,-1
jle .noclose
cmp esi,10
jge .noclose
cmp edx,0
jle .noclose
cmp edx,10
jge .noclose
mov byte[GUIwinorder+eax],0
mov byte[GUIwinactiv+ebx],0
dec byte[GUIwinptr]
ret
.noclose
cmp edx,10
jge .nomove
mov byte[GUIHold],1
mov ax,[GUIwinposx+ebx*4]
movsx eax,ax
mov [GUIHoldxm],eax
mov ax,[GUIwinposy+ebx*4]
movsx eax,ax
mov [GUIHoldym],eax
xor eax,eax
mov ax,[GUImouseposx]
mov [GUIHoldx],eax
mov ax,[GUImouseposy]
mov [GUIHoldy],eax
ret
.nomove
mov eax,[GUImouseposx]
sub eax,[GUIwinposx+ebx*4]
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+ebx*4]
cmp ebx,1
je near DisplayGUIConfirmClick
cmp ebx,2
je near DisplayGUIChoseSaveClick
cmp ebx,3
je near DisplayGUIInputClick
cmp ebx,4
je near DisplayGUIOptionClick
cmp ebx,5
je near DisplayGUIVideoClick
cmp ebx,6
je near DisplayGUISoundClick
cmp ebx,7
je near DisplayGUICheatClick
cmp ebx,8
je near DisplayNetOptnsClick
cmp ebx,9
je near DisplayGameOptnsClick
cmp ebx,10
je near DisplayGUIOptnsClick
cmp ebx,11
je near DisplayGUIAboutClick
cmp ebx,12
je near DisplayGUIResetClick
cmp ebx,13
je near DisplayGUICheatSearchClick
cmp ebx,14
je near DisplayGUIStatesClick
cmp ebx,15
je near DisplayGUIMovieClick
cmp ebx,16
je near DisplayGUIComboClick
cmp ebx,17
je near DisplayGUIAddOnClick
ret
%macro GUIClickCButton 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
%%noclick
%endmacro
%macro GUIClickCButtonat 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
call guimustrestartmsg
%%noclick
%endmacro
%macro GUIClickCButtonC 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
mov dword[GUIccombviewloc],0
mov dword[GUIccombcursloc],0
mov dword[GUIccomblcursloc],0
%%noclick
%endmacro
%macro GUIClickCButtonN 4
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
mov %3,%4
%%noclick
%endmacro
%macro GUIClickCButtonO 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
push eax
xor %3,1
mov al,%3
mov [bgfixer],al
pop eax
%%noclick
%endmacro
%macro GUIClickCButtonS 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
push eax
xor %3,1
call initrevst
mov al,[DSPMem+0Ch]
call WDSPReg0C
mov al,[DSPMem+1Ch]
call WDSPReg1C
mov al,[DSPMem+2Ch]
call WDSPReg2C
mov al,[DSPMem+3Ch]
call WDSPReg3C
pop eax
%%noclick
%endmacro
%macro GUIClickCButtonM 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
mov byte[MultiTap],1
cmp byte[pl12s34],1
je .nomtap
cmp byte[pl3contrl],0
jne .mtap
cmp byte[pl4contrl],0
jne .mtap
cmp byte[pl5contrl],0
jne .mtap
.nomtap
mov byte[MultiTap],0
.mtap
%%noclick
%endmacro
%macro GUIClickCButtonID 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
call SetDevice
%%noclick
%endmacro
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -