fix(engine): resolve DDA division overflow crash and Pause mnemonic collision
This commit is contained in:
parent
fe4e38140d
commit
99fc93c700
6 changed files with 30379 additions and 30269 deletions
48
build.bat
48
build.bat
|
|
@ -1,14 +1,56 @@
|
||||||
@echo off
|
@echo off
|
||||||
set MASM_PATH=D:\MASM32\masm32
|
setlocal
|
||||||
|
|
||||||
|
rem Check standard MASM32 paths first
|
||||||
|
if exist "D:\MASM32\masm32\bin\ml.exe" (
|
||||||
|
set "ML_EXE=D:\MASM32\masm32\bin\ml.exe"
|
||||||
|
set "LINK_EXE=D:\MASM32\masm32\bin\link.exe"
|
||||||
|
set "LIB_PATHS=/LIBPATH:D:\MASM32\masm32\lib"
|
||||||
|
set "EXTRA_FLAGS=/SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0"
|
||||||
|
goto do_build
|
||||||
|
)
|
||||||
|
if exist "C:\masm32\bin\ml.exe" (
|
||||||
|
set "ML_EXE=C:\masm32\bin\ml.exe"
|
||||||
|
set "LINK_EXE=C:\masm32\bin\link.exe"
|
||||||
|
set "LIB_PATHS=/LIBPATH:C:\masm32\lib"
|
||||||
|
set "EXTRA_FLAGS=/SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0"
|
||||||
|
goto do_build
|
||||||
|
)
|
||||||
|
|
||||||
|
rem Fallback to Visual Studio / MSVC BuildTools
|
||||||
|
set "MSVC_BIN=C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\bin\Hostx64\x86"
|
||||||
|
set "SDK_LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\um\x86"
|
||||||
|
set "UCRT_LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.26100.0\ucrt\x86"
|
||||||
|
set "VC_LIB=C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\lib\x86"
|
||||||
|
|
||||||
|
if exist "%MSVC_BIN%\ml.exe" (
|
||||||
|
set "ML_EXE=%MSVC_BIN%\ml.exe"
|
||||||
|
set "LINK_EXE=%MSVC_BIN%\link.exe"
|
||||||
|
set LIB_PATHS=/LIBPATH:"%SDK_LIB%" /LIBPATH:"%UCRT_LIB%" /LIBPATH:"%VC_LIB%"
|
||||||
|
set "EXTRA_FLAGS=/NOLOGO /SUBSYSTEM:WINDOWS"
|
||||||
|
goto do_build
|
||||||
|
)
|
||||||
|
|
||||||
|
echo [ERROR] No compatible MASM/MSVC assembler found!
|
||||||
|
goto err
|
||||||
|
|
||||||
|
:do_build
|
||||||
echo Assembling poker.asm...
|
echo Assembling poker.asm...
|
||||||
"%MASM_PATH%\bin\ml.exe" /c /coff /Cp /nologo /I. /I"%MASM_PATH%\include" poker.asm
|
"%ML_EXE%" /c /coff /Cp /nologo /I. poker.asm
|
||||||
if errorlevel 1 goto err
|
if errorlevel 1 goto err
|
||||||
|
|
||||||
echo Linking poker.obj...
|
echo Linking poker.obj...
|
||||||
"%MASM_PATH%\bin\link.exe" /SUBSYSTEM:CONSOLE /RELEASE /VERSION:4.0 /LIBPATH:"%MASM_PATH%\lib" /OUT:poker.exe poker.obj kernel32.lib winmm.lib user32.lib ws2_32.lib gdi32.lib
|
"%LINK_EXE%" %EXTRA_FLAGS% %LIB_PATHS% /OUT:poker.exe poker.obj kernel32.lib winmm.lib user32.lib ws2_32.lib gdi32.lib
|
||||||
if errorlevel 1 goto err
|
if errorlevel 1 goto err
|
||||||
|
|
||||||
|
copy /y poker.exe build\graphics\poker.exe >nul 2>&1
|
||||||
echo [SUCCESS] poker.exe built successfully!
|
echo [SUCCESS] poker.exe built successfully!
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
:err
|
:err
|
||||||
echo [ERROR] Build failed!
|
echo [ERROR] Build failed!
|
||||||
pause
|
pause
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
:end
|
:end
|
||||||
|
endlocal
|
||||||
|
|
|
||||||
|
|
@ -146,10 +146,10 @@ sz3DWindowTitle db "Assembler Casino - 2.5D",0
|
||||||
szTexturesRelPath db "assets\textures\casino3d-hd.bin",0
|
szTexturesRelPath db "assets\textures\casino3d-hd.bin",0
|
||||||
szTexturesFullPath db 260 dup(0)
|
szTexturesFullPath db 260 dup(0)
|
||||||
|
|
||||||
soundCoin db "assets\audio\Звон падающей монеты.wav",0
|
soundCoin db "assets\audio\Çâîí ïàäàþùåé ìîíåòû.wav",0
|
||||||
soundCards db "assets\audio\playing_cards_deck_flick_through_001_20485.wav",0
|
soundCards db "assets\audio\playing_cards_deck_flick_through_001_20485.wav",0
|
||||||
soundRoulette db "assets\audio\roulette-wheel-throw-2.wav",0
|
soundRoulette db "assets\audio\roulette-wheel-throw-2.wav",0
|
||||||
soundJackpot db "assets\audio\Джекпот.wav",0
|
soundJackpot db "assets\audio\Äæåêïîò.wav",0
|
||||||
soundClick db "assets\audio\b05e1ac8be34248.wav",0
|
soundClick db "assets\audio\b05e1ac8be34248.wav",0
|
||||||
|
|
||||||
playerX dd (16 * FP_1 + FP_HALF)
|
playerX dd (16 * FP_1 + FP_HALF)
|
||||||
|
|
@ -179,12 +179,12 @@ promptBackroom db "BACKROOM - UNDER CONSTRUCTION",0
|
||||||
promptDurak db "DURAK - UNDER CONSTRUCTION",0
|
promptDurak db "DURAK - UNDER CONSTRUCTION",0
|
||||||
promptHell db "TOWER - UNDER CONSTRUCTION",0
|
promptHell db "TOWER - UNDER CONSTRUCTION",0
|
||||||
|
|
||||||
msgDancerTipped db "Вы бросили $100 танцовщице! УДАЧА АКТИВИРОВАНА!",0
|
msgDancerTipped db "Âû áðîñèëè $100 òàíöîâùèöå! ÓÄÀ×À ÀÊÒÈÂÈÐÎÂÀÍÀ!",0
|
||||||
msgNeedMoney db "Недостаточно денег в кошельке!",0
|
msgNeedMoney db "Íåäîñòàòî÷íî äåíåã â êîøåëüêå!",0
|
||||||
statusHUDFormat db "БАНКРОЛЛ: $",0
|
statusHUDFormat db "ÁÀÍÊÐÎËË: $",0
|
||||||
targetHUDFormat db " ЦЕЛЬ: $",0
|
targetHUDFormat db " ÖÅËÜ: $",0
|
||||||
luckHUDFormat db " УДАЧА: +",0
|
luckHUDFormat db " ÓÄÀ×À: +",0
|
||||||
controlsHUD db "WASD/Стрелки: Ходьба | E: Действие | ESC: Меню",0
|
controlsHUD db "WASD/Ñòðåëêè: Õîäüáà | E: Äåéñòâèå | ESC: Ìåíþ",0
|
||||||
|
|
||||||
NUM_SPRITES equ 13
|
NUM_SPRITES equ 13
|
||||||
ALIGN 4
|
ALIGN 4
|
||||||
|
|
@ -227,12 +227,12 @@ roulOutcomeMsg db 64 dup(0)
|
||||||
shopMsg db 128 dup(0)
|
shopMsg db 128 dup(0)
|
||||||
atmMsg db 128 dup(0)
|
atmMsg db 128 dup(0)
|
||||||
|
|
||||||
strWin db "ПОБЕДА! +$",0
|
strWin db "ÏÎÁÅÄÀ! +$",0
|
||||||
strLose db "ПРОИГРЫШ",0
|
strLose db "ÏÐÎÈÃÐÛØ",0
|
||||||
strJackpot db "ДЖЕКПОТ! +$",0
|
strJackpot db "ÄÆÅÊÏÎÒ! +$",0
|
||||||
strPush db "НИЧЬЯ (PUSH)",0
|
strPush db "ÍÈ×Üß (PUSH)",0
|
||||||
strDealerBust db "ДИЛЕР ПЕРЕБРАЛ! ПОБЕДА! +$",0
|
strDealerBust db "ÄÈËÅÐ ÏÅÐÅÁÐÀË! ÏÎÁÅÄÀ! +$",0
|
||||||
strPlayerBust db "ПЕРЕБОР (>21)! ПРОИГРЫШ",0
|
strPlayerBust db "ÏÅÐÅÁÎÐ (>21)! ÏÐÎÈÃÐÛØ",0
|
||||||
|
|
||||||
sym7 db " 777 ",0
|
sym7 db " 777 ",0
|
||||||
symBar db " BAR ",0
|
symBar db " BAR ",0
|
||||||
|
|
@ -763,11 +763,15 @@ calc_delta_x:
|
||||||
neg eax
|
neg eax
|
||||||
@@:
|
@@:
|
||||||
mov ebx, eax
|
mov ebx, eax
|
||||||
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
cmp ebx, 4
|
||||||
|
jbe delta_x_clamp
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov edx, 1
|
mov edx, 1
|
||||||
idiv ebx
|
div ebx
|
||||||
mov deltaDistX, eax
|
mov deltaDistX, eax
|
||||||
|
jmp calc_delta_y
|
||||||
|
delta_x_clamp:
|
||||||
|
mov deltaDistX, 7FFFFFFFh
|
||||||
|
|
||||||
calc_delta_y:
|
calc_delta_y:
|
||||||
mov eax, rayDirY
|
mov eax, rayDirY
|
||||||
|
|
@ -781,11 +785,15 @@ calc_delta_y_ok:
|
||||||
neg eax
|
neg eax
|
||||||
@@:
|
@@:
|
||||||
mov ebx, eax
|
mov ebx, eax
|
||||||
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
cmp ebx, 4
|
||||||
|
jbe delta_y_clamp
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov edx, 1
|
mov edx, 1
|
||||||
idiv ebx
|
div ebx
|
||||||
mov deltaDistY, eax
|
mov deltaDistY, eax
|
||||||
|
jmp check_step
|
||||||
|
delta_y_clamp:
|
||||||
|
mov deltaDistY, 7FFFFFFFh
|
||||||
|
|
||||||
check_step:
|
check_step:
|
||||||
cmp rayDirX, 0
|
cmp rayDirX, 0
|
||||||
|
|
@ -988,6 +996,13 @@ select_tex:
|
||||||
mov drawEnd, SCREEN_H - 1
|
mov drawEnd, SCREEN_H - 1
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
|
mov eax, lineH
|
||||||
|
cmp eax, 1
|
||||||
|
jge @F
|
||||||
|
mov eax, 1
|
||||||
|
mov lineH, eax
|
||||||
|
@@:
|
||||||
|
|
||||||
mov eax, 128 * FP_1
|
mov eax, 128 * FP_1
|
||||||
cdq
|
cdq
|
||||||
idiv lineH
|
idiv lineH
|
||||||
|
|
@ -1151,13 +1166,22 @@ draw_spr_loop:
|
||||||
; Sample animation by elapsed time. Pausing freezes the clock.
|
; Sample animation by elapsed time. Pausing freezes the clock.
|
||||||
push eax
|
push eax
|
||||||
mov ecx, [casinoSprites + eax].animSpeed
|
mov ecx, [casinoSprites + eax].animSpeed
|
||||||
|
cmp ecx, 0
|
||||||
|
jg @F
|
||||||
|
mov ecx, 1
|
||||||
|
@@:
|
||||||
imul ecx, 40
|
imul ecx, 40
|
||||||
mov eax, animationClock3D
|
mov eax, animationClock3D
|
||||||
xor edx, edx
|
xor edx, edx
|
||||||
div ecx
|
div ecx
|
||||||
pop ebx
|
pop ebx
|
||||||
|
mov ecx, [casinoSprites + ebx].frameCount
|
||||||
|
cmp ecx, 0
|
||||||
|
jg @F
|
||||||
|
mov ecx, 1
|
||||||
|
@@:
|
||||||
xor edx, edx
|
xor edx, edx
|
||||||
div [casinoSprites + ebx].frameCount
|
div ecx
|
||||||
mov [casinoSprites + ebx].curFrame, edx
|
mov [casinoSprites + ebx].curFrame, edx
|
||||||
mov eax, ebx
|
mov eax, ebx
|
||||||
|
|
||||||
|
|
@ -1181,8 +1205,14 @@ draw_spr_loop:
|
||||||
imul playerPlaneY
|
imul playerPlaneY
|
||||||
shrd eax, edx, 16
|
shrd eax, edx, 16
|
||||||
sub ebx, eax
|
sub ebx, eax
|
||||||
test ebx, ebx
|
|
||||||
jz next_spr
|
mov eax, ebx
|
||||||
|
test eax, eax
|
||||||
|
jns @F
|
||||||
|
neg eax
|
||||||
|
@@:
|
||||||
|
cmp eax, 4
|
||||||
|
jbe next_spr
|
||||||
|
|
||||||
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
|
|
@ -1238,6 +1268,10 @@ draw_spr_loop:
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jns @F
|
jns @F
|
||||||
neg eax
|
neg eax
|
||||||
|
@@:
|
||||||
|
cmp eax, 1
|
||||||
|
jge @F
|
||||||
|
jmp next_spr
|
||||||
@@:
|
@@:
|
||||||
cmp eax, SCREEN_H * 2
|
cmp eax, SCREEN_H * 2
|
||||||
jle @F
|
jle @F
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
48
casino3d.inc
48
casino3d.inc
|
|
@ -763,11 +763,15 @@ calc_delta_x:
|
||||||
neg eax
|
neg eax
|
||||||
@@:
|
@@:
|
||||||
mov ebx, eax
|
mov ebx, eax
|
||||||
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
cmp ebx, 4
|
||||||
|
jbe delta_x_clamp
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov edx, 1
|
mov edx, 1
|
||||||
idiv ebx
|
div ebx
|
||||||
mov deltaDistX, eax
|
mov deltaDistX, eax
|
||||||
|
jmp calc_delta_y
|
||||||
|
delta_x_clamp:
|
||||||
|
mov deltaDistX, 7FFFFFFFh
|
||||||
|
|
||||||
calc_delta_y:
|
calc_delta_y:
|
||||||
mov eax, rayDirY
|
mov eax, rayDirY
|
||||||
|
|
@ -781,11 +785,15 @@ calc_delta_y_ok:
|
||||||
neg eax
|
neg eax
|
||||||
@@:
|
@@:
|
||||||
mov ebx, eax
|
mov ebx, eax
|
||||||
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
cmp ebx, 4
|
||||||
|
jbe delta_y_clamp
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
mov edx, 1
|
mov edx, 1
|
||||||
idiv ebx
|
div ebx
|
||||||
mov deltaDistY, eax
|
mov deltaDistY, eax
|
||||||
|
jmp check_step
|
||||||
|
delta_y_clamp:
|
||||||
|
mov deltaDistY, 7FFFFFFFh
|
||||||
|
|
||||||
check_step:
|
check_step:
|
||||||
cmp rayDirX, 0
|
cmp rayDirX, 0
|
||||||
|
|
@ -988,6 +996,13 @@ select_tex:
|
||||||
mov drawEnd, SCREEN_H - 1
|
mov drawEnd, SCREEN_H - 1
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
|
mov eax, lineH
|
||||||
|
cmp eax, 1
|
||||||
|
jge @F
|
||||||
|
mov eax, 1
|
||||||
|
mov lineH, eax
|
||||||
|
@@:
|
||||||
|
|
||||||
mov eax, 128 * FP_1
|
mov eax, 128 * FP_1
|
||||||
cdq
|
cdq
|
||||||
idiv lineH
|
idiv lineH
|
||||||
|
|
@ -1151,13 +1166,22 @@ draw_spr_loop:
|
||||||
; Sample animation by elapsed time. Pausing freezes the clock.
|
; Sample animation by elapsed time. Pausing freezes the clock.
|
||||||
push eax
|
push eax
|
||||||
mov ecx, [casinoSprites + eax].animSpeed
|
mov ecx, [casinoSprites + eax].animSpeed
|
||||||
|
cmp ecx, 0
|
||||||
|
jg @F
|
||||||
|
mov ecx, 1
|
||||||
|
@@:
|
||||||
imul ecx, 40
|
imul ecx, 40
|
||||||
mov eax, animationClock3D
|
mov eax, animationClock3D
|
||||||
xor edx, edx
|
xor edx, edx
|
||||||
div ecx
|
div ecx
|
||||||
pop ebx
|
pop ebx
|
||||||
|
mov ecx, [casinoSprites + ebx].frameCount
|
||||||
|
cmp ecx, 0
|
||||||
|
jg @F
|
||||||
|
mov ecx, 1
|
||||||
|
@@:
|
||||||
xor edx, edx
|
xor edx, edx
|
||||||
div [casinoSprites + ebx].frameCount
|
div ecx
|
||||||
mov [casinoSprites + ebx].curFrame, edx
|
mov [casinoSprites + ebx].curFrame, edx
|
||||||
mov eax, ebx
|
mov eax, ebx
|
||||||
|
|
||||||
|
|
@ -1181,8 +1205,14 @@ draw_spr_loop:
|
||||||
imul playerPlaneY
|
imul playerPlaneY
|
||||||
shrd eax, edx, 16
|
shrd eax, edx, 16
|
||||||
sub ebx, eax
|
sub ebx, eax
|
||||||
test ebx, ebx
|
|
||||||
jz next_spr
|
mov eax, ebx
|
||||||
|
test eax, eax
|
||||||
|
jns @F
|
||||||
|
neg eax
|
||||||
|
@@:
|
||||||
|
cmp eax, 4
|
||||||
|
jbe next_spr
|
||||||
|
|
||||||
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
; 2^32 needs the full EDX:EAX dividend, not a truncated multiply.
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
|
|
@ -1238,6 +1268,10 @@ draw_spr_loop:
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jns @F
|
jns @F
|
||||||
neg eax
|
neg eax
|
||||||
|
@@:
|
||||||
|
cmp eax, 1
|
||||||
|
jge @F
|
||||||
|
jmp next_spr
|
||||||
@@:
|
@@:
|
||||||
cmp eax, SCREEN_H * 2
|
cmp eax, SCREEN_H * 2
|
||||||
jle @F
|
jle @F
|
||||||
|
|
|
||||||
168
poker.asm
168
poker.asm
|
|
@ -4454,11 +4454,11 @@ read_bet_empty:
|
||||||
ReadBetInput ENDP
|
ReadBetInput ENDP
|
||||||
|
|
||||||
; --- Pause: ââîä ïîëüçîâàòåëÿ è ðàçáîð ââåäåííûõ äàííûõ ---
|
; --- Pause: ââîä ïîëüçîâàòåëÿ è ðàçáîð ââåäåííûõ äàííûõ ---
|
||||||
Pause PROC
|
PauseConsole PROC
|
||||||
invoke PrintStr, OFFSET pauseText
|
invoke PrintStr, OFFSET pauseText
|
||||||
call ReadAnyKey
|
call ReadAnyKey
|
||||||
ret
|
ret
|
||||||
Pause ENDP
|
PauseConsole ENDP
|
||||||
|
|
||||||
; --- PrintBank: âûâîä òåêñòà, öâåòîâ, êàðòèíîê è ýëåìåíòîâ èíòåðôåéñà ---
|
; --- PrintBank: âûâîä òåêñòà, öâåòîâ, êàðòèíîê è ýëåìåíòîâ èíòåðôåéñà ---
|
||||||
PrintBank PROC
|
PrintBank PROC
|
||||||
|
|
@ -4808,7 +4808,7 @@ select_account_again:
|
||||||
cmp accountCount, 0
|
cmp accountCount, 0
|
||||||
jne accounts_available
|
jne accounts_available
|
||||||
invoke PrintStr, OFFSET accountNoFilesText
|
invoke PrintStr, OFFSET accountNoFilesText
|
||||||
call Pause
|
call PauseConsole
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
accounts_available:
|
accounts_available:
|
||||||
|
|
@ -4825,7 +4825,7 @@ accounts_available:
|
||||||
ret
|
ret
|
||||||
select_account_bad:
|
select_account_bad:
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp select_account_again
|
jmp select_account_again
|
||||||
SelectExistingAccount ENDP
|
SelectExistingAccount ENDP
|
||||||
|
|
||||||
|
|
@ -4842,7 +4842,7 @@ account_menu_loop:
|
||||||
cmp al, '2'
|
cmp al, '2'
|
||||||
je account_create
|
je account_create
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp account_menu_loop
|
jmp account_menu_loop
|
||||||
|
|
||||||
account_login:
|
account_login:
|
||||||
|
|
@ -5754,7 +5754,7 @@ GameDailyTasks PROC
|
||||||
invoke PrintDailySlot, 0, 1
|
invoke PrintDailySlot, 0, 1
|
||||||
invoke PrintDailySlot, 1, 2
|
invoke PrintDailySlot, 1, 2
|
||||||
invoke PrintDailySlot, 2, 4
|
invoke PrintDailySlot, 2, 4
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameDailyTasks ENDP
|
GameDailyTasks ENDP
|
||||||
|
|
||||||
|
|
@ -5961,7 +5961,7 @@ CheckSecretEnding PROC uses eax
|
||||||
invoke PrintStr, OFFSET secretEndingArt2
|
invoke PrintStr, OFFSET secretEndingArt2
|
||||||
call ResetColor
|
call ResetColor
|
||||||
invoke PrintStr, OFFSET secretEndingBody
|
invoke PrintStr, OFFSET secretEndingBody
|
||||||
call Pause
|
call PauseConsole
|
||||||
secret_ending_done:
|
secret_ending_done:
|
||||||
ret
|
ret
|
||||||
CheckSecretEnding ENDP
|
CheckSecretEnding ENDP
|
||||||
|
|
@ -6036,7 +6036,7 @@ settings_show_menu:
|
||||||
cmp eax, 5
|
cmp eax, 5
|
||||||
je settings_toggle_dbd
|
je settings_toggle_dbd
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp settings_loop
|
jmp settings_loop
|
||||||
settings_quieter:
|
settings_quieter:
|
||||||
cmp settingsVolume, 0
|
cmp settingsVolume, 0
|
||||||
|
|
@ -6305,7 +6305,7 @@ welcome_check_tampered:
|
||||||
welcome_bank_normal:
|
welcome_bank_normal:
|
||||||
call PrintBank
|
call PrintBank
|
||||||
call ShowStats
|
call ShowStats
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
ShowWelcome ENDP
|
ShowWelcome ENDP
|
||||||
|
|
||||||
|
|
@ -7722,7 +7722,7 @@ CheatPeek21 PROC uses eax ebx
|
||||||
invoke PrintCard, ebx
|
invoke PrintCard, ebx
|
||||||
invoke AddSuspicion, 12
|
invoke AddSuspicion, 12
|
||||||
call CheckCasinoHeat
|
call CheckCasinoHeat
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
CheatPeek21 ENDP
|
CheatPeek21 ENDP
|
||||||
|
|
||||||
|
|
@ -7738,11 +7738,11 @@ CheatSwap21 PROC uses eax ebx
|
||||||
invoke PrintStr, OFFSET cheatSwapText
|
invoke PrintStr, OFFSET cheatSwapText
|
||||||
invoke AddSuspicion, 18
|
invoke AddSuspicion, 18
|
||||||
call CheckCasinoHeat
|
call CheckCasinoHeat
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
cheat_swap21_none:
|
cheat_swap21_none:
|
||||||
invoke PrintStr, OFFSET cheatNoTargetText
|
invoke PrintStr, OFFSET cheatNoTargetText
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
CheatSwap21 ENDP
|
CheatSwap21 ENDP
|
||||||
|
|
||||||
|
|
@ -7763,7 +7763,7 @@ cheat_peek_poker_table:
|
||||||
cheat_peek_poker_done:
|
cheat_peek_poker_done:
|
||||||
invoke AddSuspicion, 12
|
invoke AddSuspicion, 12
|
||||||
call CheckCasinoHeat
|
call CheckCasinoHeat
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
CheatPeekPoker ENDP
|
CheatPeekPoker ENDP
|
||||||
|
|
||||||
|
|
@ -7776,11 +7776,11 @@ CheatSwapPoker PROC uses eax
|
||||||
invoke PrintStr, OFFSET cheatSwapText
|
invoke PrintStr, OFFSET cheatSwapText
|
||||||
invoke AddSuspicion, 18
|
invoke AddSuspicion, 18
|
||||||
call CheckCasinoHeat
|
call CheckCasinoHeat
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
cheat_swap_poker_none:
|
cheat_swap_poker_none:
|
||||||
invoke PrintStr, OFFSET cheatNoTargetText
|
invoke PrintStr, OFFSET cheatNoTargetText
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
CheatSwapPoker ENDP
|
CheatSwapPoker ENDP
|
||||||
|
|
||||||
|
|
@ -9247,7 +9247,7 @@ skulls_guess_again:
|
||||||
cmp al, '3'
|
cmp al, '3'
|
||||||
je skull_guess_3
|
je skull_guess_3
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp skulls_guess_again
|
jmp skulls_guess_again
|
||||||
|
|
||||||
skull_guess_1:
|
skull_guess_1:
|
||||||
|
|
@ -9831,7 +9831,7 @@ bs_player_again:
|
||||||
cmp al, '6'
|
cmp al, '6'
|
||||||
je bs_player_cuffs
|
je bs_player_cuffs
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp bs_player_again
|
jmp bs_player_again
|
||||||
bs_player_self:
|
bs_player_self:
|
||||||
mov bsTarget, 0
|
mov bsTarget, 0
|
||||||
|
|
@ -10013,7 +10013,7 @@ dice_choose:
|
||||||
cmp al, '2'
|
cmp al, '2'
|
||||||
je dice_pick_odd
|
je dice_pick_odd
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp dice_choose
|
jmp dice_choose
|
||||||
|
|
||||||
dice_pick_even:
|
dice_pick_even:
|
||||||
|
|
@ -10282,7 +10282,7 @@ OnlineHostConnect PROC
|
||||||
online_host_connect_error:
|
online_host_connect_error:
|
||||||
call PrintOnlineError
|
call PrintOnlineError
|
||||||
call OnlineCleanup
|
call OnlineCleanup
|
||||||
call Pause
|
call PauseConsole
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
OnlineHostConnect ENDP
|
OnlineHostConnect ENDP
|
||||||
|
|
@ -10318,13 +10318,13 @@ online_join_connect_bad_ip:
|
||||||
invoke PrintStr, OFFSET onlineBadIpText
|
invoke PrintStr, OFFSET onlineBadIpText
|
||||||
call ResetColor
|
call ResetColor
|
||||||
call OnlineCleanup
|
call OnlineCleanup
|
||||||
call Pause
|
call PauseConsole
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
online_join_connect_error:
|
online_join_connect_error:
|
||||||
call PrintOnlineError
|
call PrintOnlineError
|
||||||
call OnlineCleanup
|
call OnlineCleanup
|
||||||
call Pause
|
call PauseConsole
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
OnlineJoinConnect ENDP
|
OnlineJoinConnect ENDP
|
||||||
|
|
@ -10612,19 +10612,19 @@ online_casino_session_done:
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz online_casino_session_error
|
jz online_casino_session_error
|
||||||
call OnlineCleanup
|
call OnlineCleanup
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
online_casino_protocol_error:
|
online_casino_protocol_error:
|
||||||
invoke SetColor, COLOR_BAD
|
invoke SetColor, COLOR_BAD
|
||||||
invoke PrintStr, OFFSET OnlineProtocolText
|
invoke PrintStr, OFFSET OnlineProtocolText
|
||||||
call ResetColor
|
call ResetColor
|
||||||
call OnlineCleanup
|
call OnlineCleanup
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
online_casino_session_error:
|
online_casino_session_error:
|
||||||
call PrintOnlineError
|
call PrintOnlineError
|
||||||
call OnlineCleanup
|
call OnlineCleanup
|
||||||
call Pause
|
call PauseConsole
|
||||||
online_casino_done:
|
online_casino_done:
|
||||||
ret
|
ret
|
||||||
GameOnlineCasino ENDP
|
GameOnlineCasino ENDP
|
||||||
|
|
@ -10696,7 +10696,7 @@ coin_choose:
|
||||||
cmp al, '2'
|
cmp al, '2'
|
||||||
je coin_pick_tails
|
je coin_pick_tails
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp coin_choose
|
jmp coin_choose
|
||||||
|
|
||||||
coin_pick_heads:
|
coin_pick_heads:
|
||||||
|
|
@ -11145,7 +11145,7 @@ casino_roulette_choose:
|
||||||
cmp eax, 13
|
cmp eax, 13
|
||||||
je casino_roulette_choose_col3
|
je casino_roulette_choose_col3
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp casino_roulette_choose
|
jmp casino_roulette_choose
|
||||||
|
|
||||||
casino_roulette_choose_number:
|
casino_roulette_choose_number:
|
||||||
|
|
@ -11158,7 +11158,7 @@ casino_roulette_choose_number:
|
||||||
jmp casino_roulette_spin
|
jmp casino_roulette_spin
|
||||||
casino_roulette_bad_number:
|
casino_roulette_bad_number:
|
||||||
invoke PrintStr, OFFSET casinoRouletteBadNumber
|
invoke PrintStr, OFFSET casinoRouletteBadNumber
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp casino_roulette_choose
|
jmp casino_roulette_choose
|
||||||
|
|
||||||
casino_roulette_choose_red:
|
casino_roulette_choose_red:
|
||||||
|
|
@ -12300,7 +12300,7 @@ player_throw_loop:
|
||||||
invoke PrintStr, OFFSET durakAITakeText
|
invoke PrintStr, OFFSET durakAITakeText
|
||||||
mov durakPlayerTurn, 1
|
mov durakPlayerTurn, 1
|
||||||
call RefillDurakHands
|
call RefillDurakHands
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
player_throw_after_defense:
|
player_throw_after_defense:
|
||||||
call ShowDurakTable
|
call ShowDurakTable
|
||||||
|
|
@ -12371,7 +12371,7 @@ player_defend_loop:
|
||||||
invoke RemoveDurakCard, OFFSET durakPlayerHand, OFFSET durakPlayerCnt, durakChoice
|
invoke RemoveDurakCard, OFFSET durakPlayerHand, OFFSET durakPlayerCnt, durakChoice
|
||||||
call AddDurakAttack
|
call AddDurakAttack
|
||||||
invoke PrintStr, OFFSET durakTransferText
|
invoke PrintStr, OFFSET durakTransferText
|
||||||
call Pause
|
call PauseConsole
|
||||||
call PlayerThrowLoop
|
call PlayerThrowLoop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
@ -12396,7 +12396,7 @@ player_take_table:
|
||||||
invoke PrintStr, OFFSET durakPlayerTakeText
|
invoke PrintStr, OFFSET durakPlayerTakeText
|
||||||
mov durakPlayerTurn, 0
|
mov durakPlayerTurn, 0
|
||||||
call RefillDurakHandsAIFirst
|
call RefillDurakHandsAIFirst
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
player_defended_all:
|
player_defended_all:
|
||||||
call FindAIThrowIn
|
call FindAIThrowIn
|
||||||
|
|
@ -12410,7 +12410,7 @@ player_defense_done:
|
||||||
call ClearDurakTable
|
call ClearDurakTable
|
||||||
mov durakPlayerTurn, 1
|
mov durakPlayerTurn, 1
|
||||||
call RefillDurakHandsAIFirst
|
call RefillDurakHandsAIFirst
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
PlayerDefendLoop ENDP
|
PlayerDefendLoop ENDP
|
||||||
|
|
||||||
|
|
@ -12720,7 +12720,7 @@ observer21_ai1_win:
|
||||||
observer21_ai2_win:
|
observer21_ai2_win:
|
||||||
invoke PrintStr, OFFSET observerWin2Text
|
invoke PrintStr, OFFSET observerWin2Text
|
||||||
observer21_done:
|
observer21_done:
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameObserver21 ENDP
|
GameObserver21 ENDP
|
||||||
|
|
||||||
|
|
@ -12851,7 +12851,7 @@ observer_poker_ai1_wins:
|
||||||
observer_poker_ai2_wins:
|
observer_poker_ai2_wins:
|
||||||
invoke PrintStr, OFFSET observerWin2Text
|
invoke PrintStr, OFFSET observerWin2Text
|
||||||
observer_poker_done:
|
observer_poker_done:
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameObserverPoker ENDP
|
GameObserverPoker ENDP
|
||||||
|
|
||||||
|
|
@ -13036,7 +13036,7 @@ observer_durak_draw:
|
||||||
call ShowDurakObserverTable
|
call ShowDurakObserverTable
|
||||||
invoke PrintStr, OFFSET observerDrawText
|
invoke PrintStr, OFFSET observerDrawText
|
||||||
observer_durak_done:
|
observer_durak_done:
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameObserverDurak ENDP
|
GameObserverDurak ENDP
|
||||||
|
|
||||||
|
|
@ -13082,7 +13082,7 @@ observer_rr_ai2_dead:
|
||||||
call PrintBang
|
call PrintBang
|
||||||
invoke PrintStr, OFFSET observerShotAI2Text
|
invoke PrintStr, OFFSET observerShotAI2Text
|
||||||
observer_rr_done:
|
observer_rr_done:
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameObserverRoulette ENDP
|
GameObserverRoulette ENDP
|
||||||
|
|
||||||
|
|
@ -13104,7 +13104,7 @@ observer_menu_loop:
|
||||||
cmp eax, 4
|
cmp eax, 4
|
||||||
je observer_run_durak
|
je observer_run_durak
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp observer_menu_loop
|
jmp observer_menu_loop
|
||||||
observer_run_rr:
|
observer_run_rr:
|
||||||
invoke UnlockAchievement, 10000h, OFFSET achObserverName
|
invoke UnlockAchievement, 10000h, OFFSET achObserverName
|
||||||
|
|
@ -13609,7 +13609,7 @@ bestiary_loop:
|
||||||
cmp eax, 24
|
cmp eax, 24
|
||||||
je bestiary_devil
|
je bestiary_devil
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp bestiary_loop
|
jmp bestiary_loop
|
||||||
bestiary_clover:
|
bestiary_clover:
|
||||||
invoke ShowBestiaryPage, OFFSET bestiaryCloverArt, OFFSET bestiaryCloverInfo, COLOR_MONEY
|
invoke ShowBestiaryPage, OFFSET bestiaryCloverArt, OFFSET bestiaryCloverInfo, COLOR_MONEY
|
||||||
|
|
@ -13704,7 +13704,7 @@ shop_loop:
|
||||||
cmp eax, 3
|
cmp eax, 3
|
||||||
je shop_bestiary_menu
|
je shop_bestiary_menu
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_loop
|
jmp shop_loop
|
||||||
|
|
||||||
shop_bestiary_menu:
|
shop_bestiary_menu:
|
||||||
|
|
@ -13744,7 +13744,7 @@ shop_backs_menu:
|
||||||
cmp eax, 12
|
cmp eax, 12
|
||||||
je shop_web
|
je shop_web
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
|
|
||||||
shop_charms_menu:
|
shop_charms_menu:
|
||||||
|
|
@ -13804,153 +13804,153 @@ shop_charms_menu:
|
||||||
cmp eax, 24
|
cmp eax, 24
|
||||||
je buy_charm_devil
|
je buy_charm_devil
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
|
|
||||||
shop_blue:
|
shop_blue:
|
||||||
invoke ShopBuyBack, 1, 3000, 2
|
invoke ShopBuyBack, 1, 3000, 2
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_red:
|
shop_red:
|
||||||
invoke ShopBuyBack, 2, 3000, 4
|
invoke ShopBuyBack, 2, 3000, 4
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_gold:
|
shop_gold:
|
||||||
invoke ShopBuyBack, 3, 10000, 8
|
invoke ShopBuyBack, 3, 10000, 8
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_skull:
|
shop_skull:
|
||||||
invoke ShopBuyBack, 4, 12000, 10h
|
invoke ShopBuyBack, 4, 12000, 10h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_clover_back:
|
shop_clover_back:
|
||||||
invoke ShopBuyBack, 5, 15000, 20h
|
invoke ShopBuyBack, 5, 15000, 20h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_arcane:
|
shop_arcane:
|
||||||
invoke ShopBuyBack, 6, 17000, 40h
|
invoke ShopBuyBack, 6, 17000, 40h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_noir:
|
shop_noir:
|
||||||
invoke ShopBuyBack, 7, 18000, 80h
|
invoke ShopBuyBack, 7, 18000, 80h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_diamond_back:
|
shop_diamond_back:
|
||||||
invoke ShopBuyBack, 8, 20000, 100h
|
invoke ShopBuyBack, 8, 20000, 100h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_rider:
|
shop_rider:
|
||||||
invoke ShopBuyBack, 9, 22000, 200h
|
invoke ShopBuyBack, 9, 22000, 200h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_bee:
|
shop_bee:
|
||||||
invoke ShopBuyBack, 10, 22000, 400h
|
invoke ShopBuyBack, 10, 22000, 400h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_fan:
|
shop_fan:
|
||||||
invoke ShopBuyBack, 11, 23000, 800h
|
invoke ShopBuyBack, 11, 23000, 800h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
shop_web:
|
shop_web:
|
||||||
invoke ShopBuyBack, 12, 24000, 1000h
|
invoke ShopBuyBack, 12, 24000, 1000h
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_backs_menu
|
jmp shop_backs_menu
|
||||||
|
|
||||||
buy_charm_clover:
|
buy_charm_clover:
|
||||||
invoke ShopBuyCharm, 1, 12000
|
invoke ShopBuyCharm, 1, 12000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_bell:
|
buy_charm_bell:
|
||||||
invoke ShopBuyCharm, 2, 18000
|
invoke ShopBuyCharm, 2, 18000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_diamond:
|
buy_charm_diamond:
|
||||||
invoke ShopBuyCharm, 3, 25000
|
invoke ShopBuyCharm, 3, 25000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_skull:
|
buy_charm_skull:
|
||||||
invoke ShopBuyCharm, 4, 32000
|
invoke ShopBuyCharm, 4, 32000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_web:
|
buy_charm_web:
|
||||||
invoke ShopBuyCharm, 5, 40000
|
invoke ShopBuyCharm, 5, 40000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_bee_item:
|
buy_charm_bee_item:
|
||||||
invoke ShopBuyCharm, 6, 30000
|
invoke ShopBuyCharm, 6, 30000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_moon:
|
buy_charm_moon:
|
||||||
invoke ShopBuyCharm, 7, 36000
|
invoke ShopBuyCharm, 7, 36000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_crown:
|
buy_charm_crown:
|
||||||
invoke ShopBuyCharm, 8, 52000
|
invoke ShopBuyCharm, 8, 52000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_mirror:
|
buy_charm_mirror:
|
||||||
invoke ShopBuyCharm, 9, 42000
|
invoke ShopBuyCharm, 9, 42000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_dice:
|
buy_charm_dice:
|
||||||
invoke ShopBuyCharm, 10, 35000
|
invoke ShopBuyCharm, 10, 35000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_blood:
|
buy_charm_blood:
|
||||||
invoke ShopBuyCharm, 11, 65000
|
invoke ShopBuyCharm, 11, 65000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_hourglass:
|
buy_charm_hourglass:
|
||||||
invoke ShopBuyCharm, 12, 48000
|
invoke ShopBuyCharm, 12, 48000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_horseshoe:
|
buy_charm_horseshoe:
|
||||||
invoke ShopBuyCharm, 13, 39000
|
invoke ShopBuyCharm, 13, 39000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_joker:
|
buy_charm_joker:
|
||||||
invoke ShopBuyCharm, 14, 70000
|
invoke ShopBuyCharm, 14, 70000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_phoenix:
|
buy_charm_phoenix:
|
||||||
invoke ShopBuyCharm, 15, 56000
|
invoke ShopBuyCharm, 15, 56000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_compass:
|
buy_charm_compass:
|
||||||
invoke ShopBuyCharm, 16, 44000
|
invoke ShopBuyCharm, 16, 44000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_tooth:
|
buy_charm_tooth:
|
||||||
invoke ShopBuyCharm, 17, 47000
|
invoke ShopBuyCharm, 17, 47000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_eye:
|
buy_charm_eye:
|
||||||
invoke ShopBuyCharm, 18, 60000
|
invoke ShopBuyCharm, 18, 60000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_key:
|
buy_charm_key:
|
||||||
invoke ShopBuyCharm, 19, 41000
|
invoke ShopBuyCharm, 19, 41000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_candle:
|
buy_charm_candle:
|
||||||
invoke ShopBuyCharm, 20, 76000
|
invoke ShopBuyCharm, 20, 76000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_chip:
|
buy_charm_chip:
|
||||||
invoke ShopBuyCharm, 21, 50000
|
invoke ShopBuyCharm, 21, 50000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_snake:
|
buy_charm_snake:
|
||||||
invoke ShopBuyCharm, 22, 62000
|
invoke ShopBuyCharm, 22, 62000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_ace:
|
buy_charm_ace:
|
||||||
invoke ShopBuyCharm, 23, 53000
|
invoke ShopBuyCharm, 23, 53000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
buy_charm_devil:
|
buy_charm_devil:
|
||||||
invoke ShopBuyCharm, 24, 100000
|
invoke ShopBuyCharm, 24, 100000
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp shop_charms_menu
|
jmp shop_charms_menu
|
||||||
shop_exit:
|
shop_exit:
|
||||||
ret
|
ret
|
||||||
|
|
@ -14203,7 +14203,7 @@ stats_by_game_loop:
|
||||||
jmp stats_by_game_loop
|
jmp stats_by_game_loop
|
||||||
stats_by_game_done:
|
stats_by_game_done:
|
||||||
call PrintLeaderboards
|
call PrintLeaderboards
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameStatsByGame ENDP
|
GameStatsByGame ENDP
|
||||||
|
|
||||||
|
|
@ -14579,7 +14579,7 @@ GameAchievements PROC
|
||||||
invoke PrintAchievementLine, 8000h, OFFSET achCharmBuyerName
|
invoke PrintAchievementLine, 8000h, OFFSET achCharmBuyerName
|
||||||
invoke PrintAchievementLine, 10000h, OFFSET achObserverName
|
invoke PrintAchievementLine, 10000h, OFFSET achObserverName
|
||||||
invoke PrintAchievementLine, 20000h, OFFSET achSkillCheckName
|
invoke PrintAchievementLine, 20000h, OFFSET achSkillCheckName
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameAchievements ENDP
|
GameAchievements ENDP
|
||||||
; --- GameTraining: ñëóæåáíûé áëîê èãðîâîé ëîãèêè ---
|
; --- GameTraining: ñëóæåáíûé áëîê èãðîâîé ëîãèêè ---
|
||||||
|
|
@ -14587,7 +14587,7 @@ GameTraining PROC
|
||||||
call ClearView
|
call ClearView
|
||||||
invoke PrintTitleColor, OFFSET trainingTitle
|
invoke PrintTitleColor, OFFSET trainingTitle
|
||||||
invoke PrintStr, OFFSET trainingText
|
invoke PrintStr, OFFSET trainingText
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameTraining ENDP
|
GameTraining ENDP
|
||||||
; --- ShowTournamentStage: òóðíèð-áàøíÿ è ïîáåäíàÿ àíèìàöèÿ ôèíàëà ---
|
; --- ShowTournamentStage: òóðíèð-áàøíÿ è ïîáåäíàÿ àíèìàöèÿ ôèíàëà ---
|
||||||
|
|
@ -14665,7 +14665,7 @@ GameTournament PROC
|
||||||
invoke PrintStr, OFFSET secretHellText
|
invoke PrintStr, OFFSET secretHellText
|
||||||
call ResetColor
|
call ResetColor
|
||||||
invoke PrintStr, OFFSET tournamentIntro
|
invoke PrintStr, OFFSET tournamentIntro
|
||||||
call Pause
|
call PauseConsole
|
||||||
call PlayTowerRandomMusic ; tower start
|
call PlayTowerRandomMusic ; tower start
|
||||||
|
|
||||||
mov tournamentStage, 1
|
mov tournamentStage, 1
|
||||||
|
|
@ -14757,7 +14757,7 @@ GameTournament PROC
|
||||||
call PayWin
|
call PayWin
|
||||||
call SaveGame
|
call SaveGame
|
||||||
mov tournamentMode, 0
|
mov tournamentMode, 0
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
|
|
||||||
tournament_failed:
|
tournament_failed:
|
||||||
|
|
@ -14766,7 +14766,7 @@ tournament_failed:
|
||||||
invoke PrintStr, OFFSET tournamentFailText
|
invoke PrintStr, OFFSET tournamentFailText
|
||||||
call ResetColor
|
call ResetColor
|
||||||
mov tournamentMode, 0
|
mov tournamentMode, 0
|
||||||
call Pause
|
call PauseConsole
|
||||||
ret
|
ret
|
||||||
GameTournament ENDP
|
GameTournament ENDP
|
||||||
|
|
||||||
|
|
@ -14920,7 +14920,7 @@ uma_race_lost:
|
||||||
call PrintLoseEvent
|
call PrintLoseEvent
|
||||||
|
|
||||||
uma_race_done:
|
uma_race_done:
|
||||||
call Pause
|
call PauseConsole
|
||||||
uma_exit:
|
uma_exit:
|
||||||
ret
|
ret
|
||||||
GameUmamusume ENDP
|
GameUmamusume ENDP
|
||||||
|
|
@ -15011,7 +15011,7 @@ menu_loop:
|
||||||
cmp eax, 0
|
cmp eax, 0
|
||||||
je exit_menu
|
je exit_menu
|
||||||
invoke PrintStr, OFFSET badChoiceText
|
invoke PrintStr, OFFSET badChoiceText
|
||||||
call Pause
|
call PauseConsole
|
||||||
jmp menu_loop
|
jmp menu_loop
|
||||||
run_21:
|
run_21:
|
||||||
mov currentGameId, 1
|
mov currentGameId, 1
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue