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

📄 guiwindp.inc

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 INC
📖 第 1 页 / 共 5 页
字号:
    mov dl,167
    mov esi,7
%%loop
    DrawGUILine
    dec esi
    jnz %%loop
    mov eax,%3
    mov ebx,[ScanCodeListing+eax*3]
    mov [GUIGameDisplayKy],ebx
    mov byte[GUIGameDisplayKy+3],0
    mov byte[GUItextcolor],223
    GUIOuttextwin2 3,%1+3,%2+2,GUIGameDisplayKy
    mov byte[GUItextcolor],221
    cmp byte[GUIWincoladd],0
    je %%zero
    mov byte[GUItextcolor],222
%%zero
    GUIOuttextwin2 3,%1+2,%2+1,GUIGameDisplayKy
%endmacro

%macro GUIInputDispKey 2
    mov eax,[edi]
    mov [GUIInputTextQ],eax
    push edi
    DGOptnsDrawBox2 %1,%2,[GUIInputTextQ]
    pop edi
    add edi,4
%endmacro

DisplayGUIInput:
    ; Player Select, Joystick/keyboard Type List, Button Assignments
    GUIDrawWindowBox 3,GUIInputDisp
    cmp byte[GUIWincoladd],0
    je .zero
    mov byte[GUItextcolor],211
.zero
    sub byte[GUItextcolor],15
    GUIOuttextwin2 3,6,102,GUIInputText3
    GUIOuttextwin2 3,6,112,GUIInputText4
    GUIOuttextwin2 3,6,122,GUIInputText5
    GUIOuttextwin2 3,6,132,GUIInputText6
    GUIOuttextwin2 3,6,142,GUIInputTextD
    GUIOuttextwin2 3,6,152,GUIInputTextE
    GUIOuttextwin2 3,76,102,GUIInputText7
    GUIOuttextwin2 3,76,112,GUIInputText8
    GUIOuttextwin2 3,76,122,GUIInputText9
    GUIOuttextwin2 3,76,132,GUIInputTextA
    GUIOuttextwin2 3,76,142,GUIInputTextB
    GUIOuttextwin2 3,76,152,GUIInputTextC
%ifdef __MSDOS__
    GUIOuttextwin2 3,20,167,GUIInputTextW
%endif
    GUIOuttextwin2 3,156,102,GUIInputText7
    GUIOuttextwin2 3,156,112,GUIInputText8
    GUIOuttextwin2 3,156,122,GUIInputTextC
    GUIOuttextwin2 3,116,102,GUIInputText9
    GUIOuttextwin2 3,116,112,GUIInputTextA
    GUIOuttextwin2 3,116,122,GUIInputTextB
    GUIOuttextwin2 3,153,142,GUIInputTextd
    GUIOuttextwin2 3,153,152,GUIInputTexte
    GUIOuttextwin2 3,113,142,GUIInputTextf
    GUIOuttextwin2 3,113,152,GUIInputTextg
    add byte[GUItextcolor],15
    GUIOuttextwin2 3,5,101,GUIInputText3
    GUIOuttextwin2 3,5,111,GUIInputText4
    GUIOuttextwin2 3,5,121,GUIInputText5
    GUIOuttextwin2 3,5,131,GUIInputText6
    GUIOuttextwin2 3,5,141,GUIInputTextD
    GUIOuttextwin2 3,5,151,GUIInputTextE
    GUIOuttextwin2 3,75,101,GUIInputText7
    GUIOuttextwin2 3,75,111,GUIInputText8
    GUIOuttextwin2 3,75,121,GUIInputText9
    GUIOuttextwin2 3,75,131,GUIInputTextA
    GUIOuttextwin2 3,75,141,GUIInputTextB
    GUIOuttextwin2 3,75,151,GUIInputTextC
%ifdef __MSDOS__
    GUIOuttextwin2 3,20,167,GUIInputTextW
%endif
    GUIOuttextwin2 3,155,101,GUIInputText7
    GUIOuttextwin2 3,155,111,GUIInputText8
    GUIOuttextwin2 3,155,121,GUIInputTextC
    GUIOuttextwin2 3,115,101,GUIInputText9
    GUIOuttextwin2 3,115,111,GUIInputTextA
    GUIOuttextwin2 3,115,121,GUIInputTextB
    GUIOuttextwin2 3,152,141,GUIInputTextd
    GUIOuttextwin2 3,152,151,GUIInputTexte
    GUIOuttextwin2 3,112,141,GUIInputTextf
    GUIOuttextwin2 3,112,151,GUIInputTextg
%ifdef __MSDOS__
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    xor eax,eax
    mov al,[cplayernum]
    cmp byte[pl1p209+eax],0
    je .nocheckbox2
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox2
    GUIDisplayIconWin 3,5,162,[GUITemp]
%endif
    DrawGUIButton 3,125,34,155,45,GUIInputTextV,14,0,0
;    cmp byte[OSPort],3
;    je near .win32
%ifdef __MSDOS__
    DrawGUIButton 3,125,50,185,61,GUIInputTexta,15,0,0
%endif
.win32
    DrawGUIButton 3,125,66,179,77,GUIInputTexta2,15,0,0
    mov al,[GUIWincol]
    mov byte[GUItextcolor],al
    mov al,[cplayernum]
    add al,'1'
    mov [GUIInputText1+8],al
    GUIOuttextwin2 3,6,16,GUIInputText1
    GUIOuttextwin2 3,6,26,GUIInputText2
    GUIOuttextwin2 3,6,92,GUIInputTextP
    GUIOuttextwin2 3,116,92,GUIInputTextb
    GUIOuttextwin2 3,116,131,GUIInputTextc
    xor eax,eax
    mov al,[cplayernum]
    mov ebx,[GUIInputRefP+eax*4]
    mov al,[ebx]
    mov al,[GUIInputRefB+eax]
    mov ebx,eax
    shl eax,4
    add eax,ebx
    add eax,GUIInputNames
    mov dword[GUITemp],eax
    GUIOuttextwin2 3,7+24,83,[GUITemp]
    GUIOuttextwin2 3,7,83,GUIInputTextT
    mov byte[GUItextcolor],163
    cmp byte[GUIWincoladd],0
    je .zero3
    mov byte[GUItextcolor],164
.zero3
    GUIOuttextwin2 3,5,15,GUIInputText1
    GUIOuttextwin2 3,5,25,GUIInputText2
    GUIOuttextwin2 3,5,91,GUIInputTextP
    GUIOuttextwin2 3,115,91,GUIInputTextb
    GUIOuttextwin2 3,115,130,GUIInputTextc
    GUIOuttextwin2 3,6+24,82,[GUITemp]
    GUIOuttextwin2 3,6,82,GUIInputTextT
    DrawGUIWinBox 3,5,34,107,77,167
    mov ebx,[GUIcurrentinputcursloc]
    sub ebx,[GUIcurrentinputviewloc]
    mov eax,ebx
    lea ebx,[ebx*8]
    add ebx,36
    DrawGUIWinBox2 3,5,107,7,224
    mov edi,pl1selk
    cmp byte[cplayernum],1
    jne .nopl2
    mov edi,pl2selk
.nopl2
    cmp byte[cplayernum],2
    jne .nopl3
    mov edi,pl3selk
.nopl3
    cmp byte[cplayernum],3
    jne .nopl4
    mov edi,pl4selk
.nopl4
    cmp byte[cplayernum],4
    jne .nopl5
    mov edi,pl5selk
.nopl5
    GUIInputDispKey 45,150      ; Select
    GUIInputDispKey 45,140      ; Start
    GUIInputDispKey 45,100      ; Up
    GUIInputDispKey 45,110      ; Down
    GUIInputDispKey 45,120      ; Left
    GUIInputDispKey 45,130      ; Right
    GUIInputDispKey 85,120      ; X
    GUIInputDispKey 85,100      ; A
    GUIInputDispKey 85,140      ; L
    GUIInputDispKey 85,130      ; Y
    GUIInputDispKey 85,110      ; B
    GUIInputDispKey 85,150      ; R
    mov edi,pl1Atk
    cmp byte[cplayernum],1
    jne .nopl2t
    mov edi,pl2Atk
.nopl2t
    cmp byte[cplayernum],2
    jne .nopl3t
    mov edi,pl3Atk
.nopl3t
    cmp byte[cplayernum],3
    jne .nopl4t
    mov edi,pl4Atk
.nopl4t
    cmp byte[cplayernum],4
    jne .nopl5t
    mov edi,pl5Atk
.nopl5t
    GUIInputDispKey 165,100      ; A Turbo
    GUIInputDispKey 165,110      ; B Turbo
    GUIInputDispKey 125,100      ; X Turbo
    GUIInputDispKey 125,110      ; Y Turbo
    mov edi,pl1Ltk
    cmp byte[cplayernum],1
    jne .nopl2tl
    mov edi,pl2Ltk
.nopl2tl
    cmp byte[cplayernum],2
    jne .nopl3tl
    mov edi,pl3Ltk
.nopl3tl
    cmp byte[cplayernum],3
    jne .nopl4tl
    mov edi,pl4Ltk
.nopl4tl
    cmp byte[cplayernum],4
    jne .nopl5tl
    mov edi,pl5Ltk
.nopl5tl
    GUIInputDispKey 125,120      ; L Turbo
    GUIInputDispKey 165,120      ; R Turbo

    mov edi,pl1ULk
    cmp byte[cplayernum],1
    jne .nopl2tb
    mov edi,pl2ULk
.nopl2tb
    cmp byte[cplayernum],2
    jne .nopl3tb
    mov edi,pl3ULk
.nopl3tb
    cmp byte[cplayernum],3
    jne .nopl4tb
    mov edi,pl4ULk
.nopl4tb
    cmp byte[cplayernum],4
    jne .nopl5tb
    mov edi,pl5ULk
.nopl5tb
    GUIInputDispKey 165,140      ; Up-Left
    GUIInputDispKey 165,150      ; Up-Right
    GUIInputDispKey 125,140      ; Down-Left
    GUIInputDispKey 125,150      ; Down-Right

    mov byte[GUItextcolor],223
    mov eax,[GUIcurrentinputviewloc]
    shl eax,4
    add eax,[GUIcurrentinputviewloc]
    add eax,GUIInputNames
    mov dword[GUITemp],eax
    GUIOuttextwin2 3,11,38,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,11,38+8,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,11,38+8*2,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,11,38+8*3,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,11,38+8*4,[GUITemp]

    mov byte[GUItextcolor],221
    cmp byte[GUIWincoladd],0
    je .zero5
    mov byte[GUItextcolor],222
.zero5
    mov eax,[GUIcurrentinputviewloc]
    shl eax,4
    add eax,[GUIcurrentinputviewloc]
    add eax,GUIInputNames
    mov dword[GUITemp],eax
    GUIOuttextwin2 3,10,37,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,10,37+8,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,10,37+8*2,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,10,37+8*3,[GUITemp]
    add dword[GUITemp],17
    GUIOuttextwin2 3,10,37+8*4,[GUITemp]

    DrawSlideBarWin 3,109,42,[GUIcurrentinputviewloc],[NumInputDevices],5,28,GUIIStA

    cmp byte[GUICHold],9
    jne .noholda
    add byte[GUIWincoladd],3
.noholda
    GUIDisplayIconWin 3,109,34,GUIIconDataUpArrow
    cmp byte[GUICHold],9
    jne .noholda2
    sub byte[GUIWincoladd],3
.noholda2
    cmp byte[GUICHold],10
    jne .noholdb
    add byte[GUIWincoladd],3
.noholdb
    GUIDisplayIconWin 3,109,70,GUIIconDataDownArrow
    cmp byte[GUICHold],10
    jne .noholdb2
    sub byte[GUIWincoladd],3
.noholdb2

    ; Draw border
    mov dword[GUIWincol],148+10
    cmp byte[cwindrawn],1
    jne .noone2
    mov dword[GUIWincol],148+5
.noone2
    cmp byte[cwindrawn],0
    jne .nozero2
    mov dword[GUIWincol],148
.nozero2
    mov dl,[GUIWincol]
    DrawGUIWinBox 3,5,33,107,33,dl
    mov dl,[GUIWincol]
    add dl,1
    DrawGUIWinBox 3,4,34,3,77,dl
    mov dl,[GUIWincol]
    add dl,4
    DrawGUIWinBox 3,5,78,107,78,dl
    ret

GUIInputRefF db 0,1,2,3,5,18,6,7,8,9,10,11,14,15,16,17
GUIInputRefB db 0,1,2,3,3,4,6,7,8,9,10,11,11,11,12,13,14,15,5
GUIInputRefP dd pl1contrl,pl2contrl,pl3contrl,pl4contrl,pl5contrl
GUIInputText1 db 'PLAYER #  CONTROL :',0
GUIInputText2 db 'DEVICE :',0
GUIInputText3 db '    UP',0
GUIInputText4 db '  DOWN',0
GUIInputText5 db '  LEFT',0
GUIInputText6 db ' RIGHT',0
GUIInputText7 db 'A',0
GUIInputText8 db 'B',0
GUIInputText9 db 'X',0
GUIInputTextA db 'Y',0
GUIInputTextB db 'L',0
GUIInputTextC db 'R',0
GUIInputTextD db ' START',0
GUIInputTextE db 'SELECT',0
GUIInputTextP db 'KEYS :',0
GUIInputTextQ dd 0
GUIInputTextT db 'CDV:',0
GUIInputTextV db 'SET',0
GUIInputTextW db 'USE JOYSTICK PORT 209H',0
GUIInputTexta db 'CALIBRATE',0
GUIInputTexta2 db 'SET KEYS',0
GUIInputTextb db 'TURBO :',0
GUIInputTextc db 'DIAGONALS :',0
GUIInputTextd db 'UL',0
GUIInputTexte db 'UR',0
GUIInputTextf db 'DL',0
GUIInputTextg db 'DR',0
GUIIStA dd 0,0,0

GUIcurrentinputviewloc dd 0
GUIcurrentinputcursloc dd 0

DisplayGUIOption:
    ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine/Save Confirm
    GUIDrawWindowBox 4,GUIOptionDisp
    mov byte[GUItextcolor],217
    cmp byte[GUIWincoladd],0
    je .zero
    mov byte[GUItextcolor],211
.zero
    sub byte[GUItextcolor],15
    mov dword[GUITemp],GUIOptionText1
    cmp byte[frameskip],0
    jne .noauto
    mov dword[GUITemp],GUIOptionText3
.noauto
    GUIOuttextwin2 4,6,16,[GUITemp]
    GUIOuttextwin2u 4,26,31,GUIOptionText2,0
    GUIOuttextwin2u 4,26,41,GUIOptionText4,0
%ifndef __LINUX__
    GUIOuttextwin2u 4,26,51,GUIOptionText5,0
%endif
%ifdef __WIN32__
    GUIOuttextwin2u 4,26,191,GUIOptionTextL,1
%endif
    GUIOuttextwin2u 4,26,61,GUIOptionText6,0
    GUIOuttextwin2u 4,26,71,GUIOptionText7,0
%ifdef __MSDOS__
    GUIOuttextwin2u 4,26,81,GUIOptionTextA,0
%endif
%ifdef __WIN32__
    GUIOuttextwin2u 4,26,81,GUIOptionTextAb,0
    GUIOuttextwin2u 4,26,191,GUIOptionTextL,1
%endif
    GUIOuttextwin2u 4,26,91,GUIOptionTextB,0
    GUIOuttextwin2u 4,26,101,GUIOptionTextC,2
    GUIOuttextwin2u 4,26,111,GUIOptionTextD,12
    GUIOuttextwin2u 4,26,121,GUIOptionTextE,0
    GUIOuttextwin2u 4,26,131,GUIOptionTextF,1
    GUIOuttextwin2u 4,26,141,GUIOptionTextG,0
    GUIOuttextwin2u 4,26,151,GUIOptionTextH,9
    GUIOuttextwin2u 4,26,161,GUIOptionTextI,15
    GUIOuttextwin2u 4,26,171,GUIOptionTextJ,0
    GUIOuttextwin2u 4,26,181,GUIOptionTextK,1
    add byte[GUItextcolor],15
    GUIOuttextwin2 4,5,15,[GUITemp]
    GUIOuttextwin2 4,25,30,GUIOptionText2
    GUIOuttextwin2 4,25,40,GUIOptionText4
%ifndef __LINUX__
    GUIOuttextwin2 4,25,50,GUIOptionText5
%endif
    GUIOuttextwin2 4,25,60,GUIOptionText6
    GUIOuttextwin2 4,25,70,GUIOptionText7
%ifdef __MSDOS__
    GUIOuttextwin2 4,25,80,GUIOptionTextA
%endif
%ifdef __WIN32__
    GUIOuttextwin2 4,25,80,GUIOptionTextAb
    GUIOuttextwin2 4,25,190,GUIOptionTextL
%endif
    GUIOuttextwin2 4,25,90,GUIOptionTextB
    GUIOuttextwin2 4,25,100,GUIOptionTextC
    GUIOuttextwin2 4,25,120,GUIOptionTextE
    GUIOuttextwin2 4,25,110,GUIOptionTextD
    GUIOuttextwin2 4,25,130,GUIOptionTextF
    GUIOuttextwin2 4,25,140,GUIOptionTextG
    GUIOuttextwin2 4,25,150,GUIOptionTextH
    GUIOuttextwin2 4,25,160,GUIOptionTextI
    GUIOuttextwin2 4,25,170,GUIOptionTextJ
    GUIOuttextwin2 4,25,180,GUIOptionTextK
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[TimerEnable],0
    je .nocheckboxt
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckboxt
    GUIDisplayIconWin 4,11,106,[GUITemp]
.nocheckboxtb
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[frameskip],0
    jne .nocheckbox
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox
    GUIDisplayIconWin 4,11,26,[GUITemp]
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[newengen],0
    je .nocheckbox1
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox1
    GUIDisplayIconWin 4,11,36,[GUITemp]
%ifndef __LINUX__
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[vsyncon],0
    je .nocheckbox2
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox2
    GUIDisplayIconWin 4,11,46,[GUITemp]
%endif
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[FPUCopy],2
    jne .nocheckbox3
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox3
    GUIDisplayIconWin 4,11,56,[GUITemp]
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[pl12s34],0
    je .nocheckbox4
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox4
    GUIDisplayIconWin 4,11,66,[GUITemp]
%ifdef __MSDOS__
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[SidewinderFix],0
    je .nocheckbox5
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox5
    GUIDisplayIconWin 4,11,76,[GUITemp]
%endif
%ifdef __WIN32__
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[HighPriority],0
    je .nocheckbox5
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox5
    GUIDisplayIconWin 4,11,76,[GUITemp]
%endif
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[FPSAtStart],0
    je .nocheckbox6
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox6
    GUIDisplayIconWin 4,11,86,[GUITemp]
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[Turbo30hz],0
    je .nocheckbox7
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox7
    GUIDisplayIconWin 4,11,96,[GUITemp]
    mov dword[GUITemp],GUIIconDataCheckBoxUC
    cmp byte[FastFwdToggle],0
    je .nocheckbox8
    mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox8
    GUIDisplayIconWin 4,11,116,[GUITemp]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -