Added keyboard shortcuts to video menu

This commit is contained in:
pagefault
2001-08-22 19:52:47 +00:00
parent 5ea18b12b9
commit a83fefe661
2 changed files with 216 additions and 18 deletions

View File

@@ -381,6 +381,8 @@ GUIgetcurrentinput:
je near GUIStateSelKeys
cmp ebx,4
je near GUIOptionKeys
cmp ebx,5
je near GUIVideoKeys
cmp ebx,6
je near GUISoundKeys
cmp ebx,7
@@ -979,10 +981,206 @@ GUIGUIOptnsKeys:
xor byte[FilteredGUI],1
cmp byte[En2xSaI],1
jnae .guioptn15
call ClearScreen
call Clear2xSaIBuffer
.guioptn15
ret
GUIVideoKeys:
cmp dh,'a'
jb .nocap
cmp dh,'z'
ja .nocap
sub dh,'z'-'Z'
.nocap
xor eax,eax
mov al,[cvidmode]
cmp byte[GUISLVID+eax],0
je .nofullscanlines
cmp dh,'F'
jne .nofullscanlines
cmp byte[En2xSaI],0
jne .nofullscanlines
call ClearScreen
GUIkeystoggleoptn byte[scanlines],1
%ifdef __MSDOS__
cmp byte[cvidmode],1
jne .nofullscanlines
mov byte[cbitmode],1
call initvideo2
mov byte[cbitmode],0
call GUISetPal
%endif
.nofullscanlines
xor eax,eax
mov al,[cvidmode]
cmp byte[GUIHSVID+eax],0
je near .noquarterscanlines
cmp dh,'5'
jne .nohalfscanlines
cmp byte[En2xSaI],0
jne .nohalfscanlines
call ClearScreen
GUIkeystoggleoptn byte[scanlines],3
%ifdef __MSDOS__
cmp byte[cvidmode],1
jne .nohalfscanlines
mov byte[cbitmode],1
call initvideo2
mov byte[cbitmode],0
call GUISetPal
%endif
.nohalfscanlines
cmp dh,'2'
jne .noquarterscanlines
cmp byte[En2xSaI],0
jne .noquarterscanlines
call ClearScreen
GUIkeystoggleoptn byte[scanlines],2
%ifdef __MSDOS__
cmp byte[cvidmode],1
jne .noquarterscanlines
mov byte[cbitmode],1
call initvideo2
mov byte[cbitmode],0
call GUISetPal
%endif
.noquarterscanlines
cmp dh,'X'
jne .no2xsai
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .no2xsai
call Clear2xSaIBuffer
GUIkeystoggleoptn byte[En2xSaI],1
.no2xsai
cmp dh,'E'
jne .nosupereagle
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .nosupereagle
call Clear2xSaIBuffer
GUIkeystoggleoptn byte[En2xSaI],2
.nosupereagle
cmp dh,'S'
jne .nosuper2xsai
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .nosuper2xsai
call Clear2xSaIBuffer
GUIkeystoggleoptn byte[En2xSaI],3
.nosuper2xsai
cmp dh,'I'
jne .nointerpolationwin
xor eax,eax
mov al,[cvidmode]
cmp byte[GUII2VID+eax],0
je .nointerpolationwin
xor byte[antienab],1
mov al,[antienab]
mov [cfginterp],al
.nointerpolationwin
cmp dh,'I'
jne .nointerpolation
xor eax,eax
mov al,[cvidmode]
cmp byte[GUIIEVID+eax],0
je .nointerpolation
xor byte[antienab],1
mov al,[antienab]
mov [cfginterp],al
.nointerpolation
cmp dh,'U'
jne .nofullscreen
xor eax,eax
mov al,[cvidmode]
cmp byte[GUIFSVID+eax],0
je .nofullscreen
call ClearScreen
xor byte[ScreenScale],1
mov al,[ScreenScale]
mov [GUIScreenScale],al
push eax
push ecx
mov eax,[vidbufferofsb]
mov ecx,288*128
.fsloop
mov dword[eax],0
add eax,4
loop .fsloop
pop ecx
pop eax
.nofullscreen
cmp dh,'M'
jne .nosmallscreen
xor eax,eax
mov al,[cvidmode]
cmp byte[GUISSVID+eax],0
je .nosmallscreen
call ClearScreen
xor byte[smallscreenon],1
mov al,[smallscreenon]
mov [GUIsmallscreenon],al
push eax
push ecx
mov eax,[vidbufferofsb]
mov ecx,288*128
.ssloop
mov dword[eax],0
add eax,4
loop .ssloop
pop ecx
pop eax
.nosmallscreen
cmp dh,'H'
jne .nohiresmode7
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIM7VID+ebx],0
je .nohiresmode7
xor byte[Mode7HiRes16b],1
.nohiresmode7
cmp dh,'B'
jne .nobilinearfilter
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIBIFIL+ebx],0
je .nobilinearfilter
xor byte[BilinearFilter],1
.nobilinearfilter
cmp dh,'T'
jne .notriplebufferwin
xor eax,eax
mov al,[cvidmode]
cmp byte[GUITBWVID+eax],0
je near .notriplebufferwin
xor byte[TripleBufferWin],1
.notriplebufferwin
cmp dh,'T'
jne .notriplebuffer
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUITBVID+ebx],0
je .notriplebuffer
xor byte[Triplebufen],1
.notriplebuffer
cmp dh,'G'
jne .nograyscale
xor byte[GrayscaleMode],1
.nograyscale
%ifndef __LINUX__
cmp dh,'V'
jne .novsync
xor byte[vsyncon],1
mov al,[vsyncon]
mov [cfgvsync],al
.novsync
%endif
ret
GUISoundKeys:
cmp dh,'a'
jb .nocap