⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guimouse.inc

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 INC
📖 第 1 页 / 共 5 页
字号:
    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 + -