feat(2.5d): integrate all classic games via dedicated terminal windows and 22 stations
This commit is contained in:
parent
99fc93c700
commit
3ae4323379
6 changed files with 904 additions and 174 deletions
|
|
@ -167,17 +167,46 @@ dancerLuckBuff dd 0
|
||||||
flashTimer dd 0
|
flashTimer dd 0
|
||||||
flashMessage db 128 dup(0)
|
flashMessage db 128 dup(0)
|
||||||
|
|
||||||
promptDancer db "[E] CABARET - TIP $100",0
|
promptDancer db "[E] ÊÀÁÀÐÅ - ×ÀÅÂÛÅ $100",0
|
||||||
promptSlot1 db "[E] SLOTS 777",0
|
promptBlackjack db "[E] ÁËÝÊÄÆÅÊ (21)",0
|
||||||
promptSlot2 db "[E] SLOTS 777",0
|
promptPoker db "[E] ÏÎÊÅÐ (TEXAS HOLD'EM)",0
|
||||||
promptBlackjack db "[E] BLACKJACK / 21",0
|
promptDurak db "[E] ÊÀÐÒÛ: ÏÎÄÊÈÄÍÎÉ ÄÓÐÀÊ",0
|
||||||
promptPoker db "POKER - UNDER CONSTRUCTION",0
|
promptCasinoRoulette db "[E] ÅÂÐÎÏÅÉÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
promptRoulette db "[E] ROULETTE",0
|
promptClassicSlot db "[E] ÊËÀÑÑÈ×ÅÑÊÈÅ ÑËÎÒÛ 777",0
|
||||||
promptShop db "[E] BOUTIQUE",0
|
promptCloverSlot db "[E] ÑËÎÒÛ CLOVERPIT (5x3)",0
|
||||||
promptATM db "[E] CASHIER",0
|
promptDice db "[E] ÈÃÐÀ Â ÊÎÑÒÈ (CRAPS)",0
|
||||||
promptBackroom db "BACKROOM - UNDER CONSTRUCTION",0
|
promptSkulls db "[E] ÍÀϨÐÑÒÊÈ (×ÅÐÅÏÀ)",0
|
||||||
promptDurak db "DURAK - UNDER CONSTRUCTION",0
|
promptCoin db "[E] ÌÎÍÅÒÊÀ (ÎШË/ÐÅØÊÀ)",0
|
||||||
promptHell db "TOWER - UNDER CONSTRUCTION",0
|
promptSkillCheck db "[E] ÒÐÅÍÈÐÎÂÊÀ ÐÅÀÊÖÈÈ",0
|
||||||
|
promptBuckshot db "[E] BUCKSHOT ROULETTE",0
|
||||||
|
promptRussianRoulette db "[E] ÐÓÑÑÊÀß ÐÓËÅÒÊÀ (VIP)",0
|
||||||
|
promptOnlineRR db "[E] ÑÅÒÅÂÀß ÐÓËÅÒÊÀ (NET)",0
|
||||||
|
promptUmamusume db "[E] ÑÊÀ×ÊÈ ÓÌÀÌÓÑÓÌÝ",0
|
||||||
|
promptHellTower db "[E] ÁÀØÍß ÀÄÀ (10 ÝÒÀÆÅÉ)",0
|
||||||
|
promptShop db "[E] ÁÓÒÈÊ È ÒÀËÈÑÌÀÍÛ",0
|
||||||
|
promptATM db "[E] ÁÀÍÊÎÌÀÒ È ÁÀËÀÍÑ",0
|
||||||
|
promptPlayerTerminal db "[E] ÒÅÐÌÈÍÀË: ÑÒÀÒÛ È À×ÈÂÊÈ",0
|
||||||
|
promptObserver db "[E] ÐÅÆÈÌ ÍÀÁËÞÄÀÒÅËß (ÈÈ)",0
|
||||||
|
|
||||||
|
szTitleBlackjack db "[KAZIK 3D CASINO] - ÁËÝÊÄÆÅÊ (21)",0
|
||||||
|
szTitlePoker db "[KAZIK 3D CASINO] - ÏÎÊÅÐ (TEXAS HOLD'EM)",0
|
||||||
|
szTitleDurak db "[KAZIK 3D CASINO] - ÏÎÄÊÈÄÍÎÉ ÄÓÐÀÊ",0
|
||||||
|
szTitleCasinoRoulette db "[KAZIK 3D CASINO] - ÅÂÐÎÏÅÉÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
|
szTitleClassicSlot db "[KAZIK 3D CASINO] - ÊËÀÑÑÈ×ÅÑÊÈÅ ÑËÎÒÛ 777",0
|
||||||
|
szTitleCloverSlot db "[KAZIK 3D CASINO] - ÑËÎÒ-ÌÀØÈÍÀ CLOVERPIT (5x3)",0
|
||||||
|
szTitleDice db "[KAZIK 3D CASINO] - ÈÃÐÀ Â ÊÎÑÒÈ (CRAPS)",0
|
||||||
|
szTitleSkulls db "[KAZIK 3D CASINO] - ÍÀϨÐÑÒÊÈ",0
|
||||||
|
szTitleCoin db "[KAZIK 3D CASINO] - ÌÎÍÅÒÊÀ (ÎШË/ÐÅØÊÀ)",0
|
||||||
|
szTitleSkillCheck db "[KAZIK 3D CASINO] - ÏÐÎÂÅÐÊÀ ÐÅÀÊÖÈÈ",0
|
||||||
|
szTitleBuckshot db "[KAZIK 3D CASINO] - BUCKSHOT ROULETTE",0
|
||||||
|
szTitleRussianRoulette db "[KAZIK 3D CASINO] - ÐÓÑÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
|
szTitleOnlineRR db "[KAZIK 3D CASINO] - ÑÅÒÅÂÀß ÐÓÑÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
|
szTitleUmamusume db "[KAZIK 3D CASINO] - ÑÊÀ×ÊÈ ÓÌÀÌÓÑÓÌÝ",0
|
||||||
|
szTitleHellTower db "[KAZIK 3D CASINO] - ÁÀØÍß ÀÄÀ (ÒÓÐÍÈÐ)",0
|
||||||
|
szTitleShop db "[KAZIK 3D CASINO] - ÁÓÒÈÊ È ÒÀËÈÑÌÀÍÛ",0
|
||||||
|
szTitleATM db "[KAZIK 3D CASINO] - ÁÀÍÊÎÌÀÒ",0
|
||||||
|
szTitleTerminal db "[KAZIK 3D CASINO] - ÒÅÐÌÈÍÀË ÈÃÐÎÊÀ",0
|
||||||
|
szTitleObserver db "[KAZIK 3D CASINO] - ÐÅÆÈÌ ÍÀÁËÞÄÀÒÅËß (ÈÈ)",0
|
||||||
|
|
||||||
msgDancerTipped db "Âû áðîñèëè $100 òàíöîâùèöå! ÓÄÀ×À ÀÊÒÈÂÈÐÎÂÀÍÀ!",0
|
msgDancerTipped db "Âû áðîñèëè $100 òàíöîâùèöå! ÓÄÀ×À ÀÊÒÈÂÈÐÎÂÀÍÀ!",0
|
||||||
msgNeedMoney db "Íåäîñòàòî÷íî äåíåã â êîøåëüêå!",0
|
msgNeedMoney db "Íåäîñòàòî÷íî äåíåã â êîøåëüêå!",0
|
||||||
|
|
@ -186,7 +215,29 @@ targetHUDFormat db "
|
||||||
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 22
|
||||||
|
|
||||||
|
INTERACT_NONE equ 0
|
||||||
|
INTERACT_BLACKJACK equ 1
|
||||||
|
INTERACT_POKER equ 2
|
||||||
|
INTERACT_SLOTS_777 equ 3
|
||||||
|
INTERACT_ROULETTE equ 4
|
||||||
|
INTERACT_SKULLS equ 5
|
||||||
|
INTERACT_SHOP equ 6
|
||||||
|
INTERACT_ATM equ 7
|
||||||
|
INTERACT_DANCER equ 8
|
||||||
|
INTERACT_HELL_TOWER equ 9
|
||||||
|
INTERACT_DURAK equ 10
|
||||||
|
INTERACT_BUCKSHOT equ 11
|
||||||
|
INTERACT_COIN equ 12
|
||||||
|
INTERACT_DICE equ 13
|
||||||
|
INTERACT_SLOTS_CLOVER equ 14
|
||||||
|
INTERACT_UMAMUSUME equ 15
|
||||||
|
INTERACT_OBSERVER equ 16
|
||||||
|
INTERACT_TERMINAL equ 17
|
||||||
|
INTERACT_ONLINE_RR equ 18
|
||||||
|
INTERACT_RUSSIAN_ROULETTE equ 19
|
||||||
|
INTERACT_SKILL_CHECK equ 20
|
||||||
ALIGN 4
|
ALIGN 4
|
||||||
casinoSprites SpriteObject NUM_SPRITES dup(<>)
|
casinoSprites SpriteObject NUM_SPRITES dup(<>)
|
||||||
sortedSprites dd NUM_SPRITES dup(0)
|
sortedSprites dd NUM_SPRITES dup(0)
|
||||||
|
|
@ -2633,18 +2684,104 @@ interaction_done:
|
||||||
ret
|
ret
|
||||||
CheckInteractions ENDP
|
CheckInteractions ENDP
|
||||||
|
|
||||||
|
; --- LaunchClassicGame: Îòêðûòèå îòäåëüíîãî îêíà äëÿ êëàññè÷åñêîé âåðñèè èãðû ---
|
||||||
|
LaunchClassicGame PROC uses ebx esi edi, pGameProc:DWORD, gameId:DWORD, pTitle:DWORD
|
||||||
|
LOCAL rc3D[16]:BYTE
|
||||||
|
LOCAL conWnd:DWORD
|
||||||
|
LOCAL conW:DWORD, conH:DWORD, conX:DWORD, conY:DWORD
|
||||||
|
|
||||||
|
mov eax, gameId
|
||||||
|
mov currentGameId, eax
|
||||||
|
|
||||||
|
invoke AllocConsole
|
||||||
|
test eax, eax
|
||||||
|
jz launch_ret
|
||||||
|
|
||||||
|
invoke GetStdHandle, STD_OUTPUT_HANDLE
|
||||||
|
mov hOut, eax
|
||||||
|
invoke GetStdHandle, STD_INPUT_HANDLE
|
||||||
|
mov hIn, eax
|
||||||
|
|
||||||
|
invoke SetConsoleCP, 1251
|
||||||
|
invoke SetConsoleOutputCP, 1251
|
||||||
|
|
||||||
|
cmp pTitle, 0
|
||||||
|
je @F
|
||||||
|
invoke SetConsoleTitleA, pTitle
|
||||||
|
@@:
|
||||||
|
call EnableAnsi
|
||||||
|
call ConfigureConsoleSize
|
||||||
|
|
||||||
|
invoke GetConsoleWindow
|
||||||
|
mov conWnd, eax
|
||||||
|
test eax, eax
|
||||||
|
jz run_game_body
|
||||||
|
|
||||||
|
cmp h3DWnd, 0
|
||||||
|
je show_con_fallback
|
||||||
|
|
||||||
|
lea eax, rc3D
|
||||||
|
invoke GetWindowRect, h3DWnd, eax
|
||||||
|
mov eax, dword ptr rc3D[0]
|
||||||
|
add eax, 40
|
||||||
|
mov conX, eax
|
||||||
|
mov eax, dword ptr rc3D[4]
|
||||||
|
add eax, 40
|
||||||
|
mov conY, eax
|
||||||
|
mov conW, 960
|
||||||
|
mov conH, 680
|
||||||
|
invoke SetWindowPos, conWnd, 0, conX, conY, conW, conH, 40h ; SWP_SHOWWINDOW
|
||||||
|
jmp set_con_focus
|
||||||
|
|
||||||
|
show_con_fallback:
|
||||||
|
invoke ShowWindow, conWnd, 5 ; SW_SHOW
|
||||||
|
set_con_focus:
|
||||||
|
invoke SetForegroundWindow, conWnd
|
||||||
|
invoke SetFocus, conWnd
|
||||||
|
|
||||||
|
run_game_body:
|
||||||
|
call pGameProc
|
||||||
|
|
||||||
|
invoke FreeConsole
|
||||||
|
mov hOut, 0
|
||||||
|
mov hIn, 0
|
||||||
|
|
||||||
|
cmp h3DWnd, 0
|
||||||
|
je cleanup_game_input
|
||||||
|
invoke SetForegroundWindow, h3DWnd
|
||||||
|
invoke SetFocus, h3DWnd
|
||||||
|
|
||||||
|
cleanup_game_input:
|
||||||
|
mov ecx, 256
|
||||||
|
xor eax, eax
|
||||||
|
lea edi, keys3D
|
||||||
|
rep stosb
|
||||||
|
mov ecx, 256
|
||||||
|
lea edi, pressedKeys3D
|
||||||
|
rep stosb
|
||||||
|
|
||||||
|
invoke GetTickCount
|
||||||
|
mov previousTick3D, eax
|
||||||
|
mov frameStart3D, eax
|
||||||
|
mov deltaTime3D, 0
|
||||||
|
|
||||||
|
call SaveProgress3D
|
||||||
|
|
||||||
|
launch_ret:
|
||||||
|
ret
|
||||||
|
LaunchClassicGame ENDP
|
||||||
|
|
||||||
Trigger3DInteraction PROC
|
Trigger3DInteraction PROC
|
||||||
mov eax, interactTargetId
|
mov eax, interactTargetId
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz @F
|
jz trigger_done
|
||||||
|
|
||||||
cmp eax, 8 ; DANCER
|
cmp eax, INTERACT_DANCER
|
||||||
jne check_target_slots
|
jne check_target_bj
|
||||||
cmp bankroll, 100
|
cmp bankroll, 100
|
||||||
jl dancer_no_cash
|
jl dancer_no_cash
|
||||||
sub bankroll, 100
|
sub bankroll, 100
|
||||||
inc dancerLuckBuff
|
inc dancerLuckBuff
|
||||||
; Tips are cosmetic and must not silently change game odds.
|
|
||||||
invoke CopyString3D, OFFSET textTips3D, OFFSET flashMessage
|
invoke CopyString3D, OFFSET textTips3D, OFFSET flashMessage
|
||||||
mov flashTimer, 100
|
mov flashTimer, 100
|
||||||
invoke PlaySoundA, OFFSET soundJackpot, 0, 1
|
invoke PlaySoundA, OFFSET soundJackpot, 0, 1
|
||||||
|
|
@ -2654,42 +2791,124 @@ dancer_no_cash:
|
||||||
mov flashTimer, 60
|
mov flashTimer, 60
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_slots:
|
check_target_bj:
|
||||||
cmp eax, 3 ; SLOTS
|
cmp eax, INTERACT_BLACKJACK
|
||||||
jne check_target_bj
|
jne check_target_poker
|
||||||
mov engineMode, MODE_SLOTS
|
invoke LaunchClassicGame, OFFSET Game21, 1, OFFSET szTitleBlackjack
|
||||||
invoke PlaySoundA, OFFSET soundClick, 0, 1
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_bj:
|
check_target_poker:
|
||||||
cmp eax, 1 ; BLACKJACK
|
cmp eax, INTERACT_POKER
|
||||||
|
jne check_target_durak
|
||||||
|
invoke LaunchClassicGame, OFFSET GamePoker, 2, OFFSET szTitlePoker
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_durak:
|
||||||
|
cmp eax, INTERACT_DURAK
|
||||||
|
jne check_target_slots777
|
||||||
|
invoke LaunchClassicGame, OFFSET GameDurak, 10, OFFSET szTitleDurak
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_slots777:
|
||||||
|
cmp eax, INTERACT_SLOTS_777
|
||||||
|
jne check_target_slots_clover
|
||||||
|
invoke LaunchClassicGame, OFFSET GameClassicSlot, 9, OFFSET szTitleClassicSlot
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_slots_clover:
|
||||||
|
cmp eax, INTERACT_SLOTS_CLOVER
|
||||||
jne check_target_roulette
|
jne check_target_roulette
|
||||||
mov engineMode, MODE_BLACKJACK
|
invoke LaunchClassicGame, OFFSET GameSlot, 3, OFFSET szTitleCloverSlot
|
||||||
mov bjState, 0
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_roulette:
|
check_target_roulette:
|
||||||
cmp eax, 4 ; ROULETTE
|
cmp eax, INTERACT_ROULETTE
|
||||||
|
jne check_target_dice
|
||||||
|
invoke LaunchClassicGame, OFFSET GameCasinoRoulette, 8, OFFSET szTitleCasinoRoulette
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_dice:
|
||||||
|
cmp eax, INTERACT_DICE
|
||||||
|
jne check_target_skulls
|
||||||
|
invoke LaunchClassicGame, OFFSET GameDice, 7, OFFSET szTitleDice
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_skulls:
|
||||||
|
cmp eax, INTERACT_SKULLS
|
||||||
|
jne check_target_coin
|
||||||
|
invoke LaunchClassicGame, OFFSET GameSkulls, 5, OFFSET szTitleSkulls
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_coin:
|
||||||
|
cmp eax, INTERACT_COIN
|
||||||
|
jne check_target_skill
|
||||||
|
invoke LaunchClassicGame, OFFSET GameCoin, 6, OFFSET szTitleCoin
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_skill:
|
||||||
|
cmp eax, INTERACT_SKILL_CHECK
|
||||||
|
jne check_target_buckshot
|
||||||
|
invoke LaunchClassicGame, OFFSET GameSkillCheck, 11, OFFSET szTitleSkillCheck
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_buckshot:
|
||||||
|
cmp eax, INTERACT_BUCKSHOT
|
||||||
|
jne check_target_rr
|
||||||
|
invoke LaunchClassicGame, OFFSET GameBuckshot, 13, OFFSET szTitleBuckshot
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_rr:
|
||||||
|
cmp eax, INTERACT_RUSSIAN_ROULETTE
|
||||||
|
jne check_target_online_rr
|
||||||
|
invoke LaunchClassicGame, OFFSET GameRoulette, 4, OFFSET szTitleRussianRoulette
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_online_rr:
|
||||||
|
cmp eax, INTERACT_ONLINE_RR
|
||||||
|
jne check_target_umamusume
|
||||||
|
invoke LaunchClassicGame, OFFSET GameOnlineCasino, 20, OFFSET szTitleOnlineRR
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_umamusume:
|
||||||
|
cmp eax, INTERACT_UMAMUSUME
|
||||||
|
jne check_target_hell
|
||||||
|
invoke LaunchClassicGame, OFFSET GameUmamusume, 21, OFFSET szTitleUmamusume
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_hell:
|
||||||
|
cmp eax, INTERACT_HELL_TOWER
|
||||||
jne check_target_shop
|
jne check_target_shop
|
||||||
mov engineMode, MODE_ROULETTE
|
invoke LaunchClassicGame, OFFSET GameTournament, 666, OFFSET szTitleHellTower
|
||||||
mov roulState, 0
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_shop:
|
check_target_shop:
|
||||||
cmp eax, 6 ; SHOP
|
cmp eax, INTERACT_SHOP
|
||||||
jne check_target_atm
|
jne check_target_atm
|
||||||
mov engineMode, MODE_SHOP
|
invoke LaunchClassicGame, OFFSET GameShop, 0, OFFSET szTitleShop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_atm:
|
check_target_atm:
|
||||||
cmp eax, 7 ; ATM
|
cmp eax, INTERACT_ATM
|
||||||
jne target_unported
|
jne check_target_terminal
|
||||||
mov engineMode, MODE_ATM
|
mov engineMode, MODE_ATM
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
check_target_terminal:
|
||||||
|
cmp eax, INTERACT_TERMINAL
|
||||||
|
jne check_target_observer
|
||||||
|
invoke LaunchClassicGame, OFFSET GamePlayerTerminal, 0, OFFSET szTitleTerminal
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_observer:
|
||||||
|
cmp eax, INTERACT_OBSERVER
|
||||||
|
jne target_unported
|
||||||
|
invoke LaunchClassicGame, OFFSET GameObserver, 14, OFFSET szTitleObserver
|
||||||
|
ret
|
||||||
|
|
||||||
target_unported:
|
target_unported:
|
||||||
invoke CopyString3D, OFFSET textUnavailable3D, OFFSET flashMessage
|
invoke CopyString3D, OFFSET textUnavailable3D, OFFSET flashMessage
|
||||||
mov flashTimer, 150
|
mov flashTimer, 150
|
||||||
@@:
|
trigger_done:
|
||||||
ret
|
ret
|
||||||
Trigger3DInteraction ENDP
|
Trigger3DInteraction ENDP
|
||||||
|
|
||||||
|
|
@ -2721,7 +2940,7 @@ init_sprites_table:
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[0*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[0*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].animSpeed, 5
|
mov casinoSprites[0*SIZEOF SpriteObject].animSpeed, 5
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].interactId, 8
|
mov casinoSprites[0*SIZEOF SpriteObject].interactId, INTERACT_DANCER
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
mov casinoSprites[0*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
||||||
|
|
||||||
; Sprite 1: VIP Dancer 2 (Center Stage Star)
|
; Sprite 1: VIP Dancer 2 (Center Stage Star)
|
||||||
|
|
@ -2732,7 +2951,7 @@ init_sprites_table:
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].curFrame, 2
|
mov casinoSprites[1*SIZEOF SpriteObject].curFrame, 2
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[1*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].animSpeed, 5
|
mov casinoSprites[1*SIZEOF SpriteObject].animSpeed, 5
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].interactId, 8
|
mov casinoSprites[1*SIZEOF SpriteObject].interactId, INTERACT_DANCER
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
mov casinoSprites[1*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
||||||
|
|
||||||
; Sprite 2: VIP Dancer 3 (Stage Right)
|
; Sprite 2: VIP Dancer 3 (Stage Right)
|
||||||
|
|
@ -2743,21 +2962,21 @@ init_sprites_table:
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].curFrame, 1
|
mov casinoSprites[2*SIZEOF SpriteObject].curFrame, 1
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[2*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].animSpeed, 5
|
mov casinoSprites[2*SIZEOF SpriteObject].animSpeed, 5
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].interactId, 8
|
mov casinoSprites[2*SIZEOF SpriteObject].interactId, INTERACT_DANCER
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
mov casinoSprites[2*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
||||||
|
|
||||||
; Sprite 3: Blackjack Table with Dealer (Front Center Left)
|
; Sprite 3: VIP Blackjack (Front Center Left)
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].posX, (12 * FP_1 + FP_HALF)
|
mov casinoSprites[3*SIZEOF SpriteObject].posX, (12 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].posY, (10 * FP_1)
|
mov casinoSprites[3*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].baseTexId, 30
|
mov casinoSprites[3*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[3*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[3*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[3*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[3*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].interactId, 1
|
mov casinoSprites[3*SIZEOF SpriteObject].interactId, INTERACT_BLACKJACK
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].promptPtr, OFFSET promptBlackjack
|
mov casinoSprites[3*SIZEOF SpriteObject].promptPtr, OFFSET promptBlackjack
|
||||||
|
|
||||||
; Sprite 4: Roulette Table (Front Center)
|
; Sprite 4: European Roulette Table (Front Center)
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
mov casinoSprites[4*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].posY, (10 * FP_1)
|
mov casinoSprites[4*SIZEOF SpriteObject].posY, (10 * FP_1)
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].baseTexId, 31
|
mov casinoSprites[4*SIZEOF SpriteObject].baseTexId, 31
|
||||||
|
|
@ -2765,96 +2984,195 @@ init_sprites_table:
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[4*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[4*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[4*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].interactId, 4
|
mov casinoSprites[4*SIZEOF SpriteObject].interactId, INTERACT_ROULETTE
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].promptPtr, OFFSET promptRoulette
|
mov casinoSprites[4*SIZEOF SpriteObject].promptPtr, OFFSET promptCasinoRoulette
|
||||||
|
|
||||||
; Sprite 5: Poker Table (Front Center Right)
|
; Sprite 5: Texas Hold'em Poker Table (Front Center Right)
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].posX, (21 * FP_1)
|
mov casinoSprites[5*SIZEOF SpriteObject].posX, (20 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].posY, (10 * FP_1)
|
mov casinoSprites[5*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].baseTexId, 30
|
mov casinoSprites[5*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[5*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[5*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[5*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[5*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].interactId, 1
|
mov casinoSprites[5*SIZEOF SpriteObject].interactId, INTERACT_POKER
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].promptPtr, OFFSET promptPoker
|
mov casinoSprites[5*SIZEOF SpriteObject].promptPtr, OFFSET promptPoker
|
||||||
|
|
||||||
; Sprite 6: Slot Machine 1 (West Arcade)
|
; Sprite 6: Podkidnoy Durak Card Table
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].posX, (6 * FP_1)
|
mov casinoSprites[6*SIZEOF SpriteObject].posX, (24 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].posY, (8 * FP_1)
|
mov casinoSprites[6*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].baseTexId, 24
|
mov casinoSprites[6*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].frameCount, 3
|
mov casinoSprites[6*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[6*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[6*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].animSpeed, 8
|
mov casinoSprites[6*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].interactId, 3
|
mov casinoSprites[6*SIZEOF SpriteObject].interactId, INTERACT_DURAK
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].promptPtr, OFFSET promptSlot1
|
mov casinoSprites[6*SIZEOF SpriteObject].promptPtr, OFFSET promptDurak
|
||||||
|
|
||||||
; Sprite 7: Slot Machine 2 (CloverPit)
|
; Sprite 7: Classic Slots 777 (West Arcade 1)
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].posX, (6 * FP_1)
|
mov casinoSprites[7*SIZEOF SpriteObject].posX, (6 * FP_1)
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].posY, (11 * FP_1)
|
mov casinoSprites[7*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].baseTexId, 24
|
mov casinoSprites[7*SIZEOF SpriteObject].baseTexId, 24
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].frameCount, 3
|
mov casinoSprites[7*SIZEOF SpriteObject].frameCount, 3
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].curFrame, 1
|
mov casinoSprites[7*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[7*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].animSpeed, 8
|
mov casinoSprites[7*SIZEOF SpriteObject].animSpeed, 8
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].interactId, 3
|
mov casinoSprites[7*SIZEOF SpriteObject].interactId, INTERACT_SLOTS_777
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].promptPtr, OFFSET promptSlot2
|
mov casinoSprites[7*SIZEOF SpriteObject].promptPtr, OFFSET promptClassicSlot
|
||||||
|
|
||||||
; Sprite 8: Slot Machine 3
|
; Sprite 8: CloverPit Slots 5x3 (West Arcade 2)
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].posX, (6 * FP_1)
|
mov casinoSprites[8*SIZEOF SpriteObject].posX, (6 * FP_1)
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].posY, (14 * FP_1)
|
mov casinoSprites[8*SIZEOF SpriteObject].posY, (11 * FP_1)
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].baseTexId, 24
|
mov casinoSprites[8*SIZEOF SpriteObject].baseTexId, 24
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].frameCount, 3
|
mov casinoSprites[8*SIZEOF SpriteObject].frameCount, 3
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].curFrame, 2
|
mov casinoSprites[8*SIZEOF SpriteObject].curFrame, 1
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[8*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].animSpeed, 8
|
mov casinoSprites[8*SIZEOF SpriteObject].animSpeed, 8
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].interactId, 3
|
mov casinoSprites[8*SIZEOF SpriteObject].interactId, INTERACT_SLOTS_CLOVER
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].promptPtr, OFFSET promptSlot1
|
mov casinoSprites[8*SIZEOF SpriteObject].promptPtr, OFFSET promptCloverSlot
|
||||||
|
|
||||||
; Sprite 9: Bartender / Bar Counter (East Wing)
|
; Sprite 9: Craps & Dice Table (West Arcade 3)
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].posX, (26 * FP_1)
|
mov casinoSprites[9*SIZEOF SpriteObject].posX, (6 * FP_1)
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].posY, (12 * FP_1)
|
mov casinoSprites[9*SIZEOF SpriteObject].posY, (14 * FP_1)
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].baseTexId, 32
|
mov casinoSprites[9*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[9*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[9*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[9*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[9*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].interactId, 6
|
mov casinoSprites[9*SIZEOF SpriteObject].interactId, INTERACT_DICE
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].promptPtr, OFFSET promptShop
|
mov casinoSprites[9*SIZEOF SpriteObject].promptPtr, OFFSET promptDice
|
||||||
|
|
||||||
; Sprite 10: ATM Bank Terminal (East Wing)
|
; Sprite 10: Skulls & Cups Table
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].posX, (26 * FP_1)
|
mov casinoSprites[10*SIZEOF SpriteObject].posX, (10 * FP_1)
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].posY, (16 * FP_1)
|
mov casinoSprites[10*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].baseTexId, 33
|
mov casinoSprites[10*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[10*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[10*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[10*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[10*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].interactId, 7
|
mov casinoSprites[10*SIZEOF SpriteObject].interactId, INTERACT_SKULLS
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].promptPtr, OFFSET promptATM
|
mov casinoSprites[10*SIZEOF SpriteObject].promptPtr, OFFSET promptSkulls
|
||||||
|
|
||||||
; Sprite 11: Underground Table (South Wing)
|
; Sprite 11: Coin Toss Stand
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
mov casinoSprites[11*SIZEOF SpriteObject].posX, (14 * FP_1)
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].posY, (24 * FP_1)
|
mov casinoSprites[11*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].baseTexId, 34
|
mov casinoSprites[11*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[11*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[11*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[11*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[11*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].interactId, 5
|
mov casinoSprites[11*SIZEOF SpriteObject].interactId, INTERACT_COIN
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].promptPtr, OFFSET promptBackroom
|
mov casinoSprites[11*SIZEOF SpriteObject].promptPtr, OFFSET promptCoin
|
||||||
|
|
||||||
; Sprite 12: Secret Demon Portal (South Wing)
|
; Sprite 12: Skill Check Stand
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
mov casinoSprites[12*SIZEOF SpriteObject].posX, (18 * FP_1)
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].posY, (29 * FP_1)
|
mov casinoSprites[12*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].baseTexId, 4
|
mov casinoSprites[12*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[12*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[12*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[12*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[12*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].interactId, 9
|
mov casinoSprites[12*SIZEOF SpriteObject].interactId, INTERACT_SKILL_CHECK
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].promptPtr, OFFSET promptHell
|
mov casinoSprites[12*SIZEOF SpriteObject].promptPtr, OFFSET promptSkillCheck
|
||||||
|
|
||||||
|
; Sprite 13: Umamusume Derby Lounge
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].posX, (22 * FP_1)
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].baseTexId, 30
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].interactId, INTERACT_UMAMUSUME
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].promptPtr, OFFSET promptUmamusume
|
||||||
|
|
||||||
|
; Sprite 14: Boutique & Shop (East Wing)
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].posX, (26 * FP_1)
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].posY, (12 * FP_1)
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].baseTexId, 32
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].interactId, INTERACT_SHOP
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].promptPtr, OFFSET promptShop
|
||||||
|
|
||||||
|
; Sprite 15: Cashier & ATM (East Wing)
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].posX, (26 * FP_1)
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].posY, (16 * FP_1)
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].baseTexId, 33
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].interactId, INTERACT_ATM
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].promptPtr, OFFSET promptATM
|
||||||
|
|
||||||
|
; Sprite 16: Player Terminal (East Wing)
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].posX, (26 * FP_1)
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].posY, (20 * FP_1)
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].baseTexId, 33
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].interactId, INTERACT_TERMINAL
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].promptPtr, OFFSET promptPlayerTerminal
|
||||||
|
|
||||||
|
; Sprite 17: Buckshot Roulette (South-West)
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].posX, (12 * FP_1)
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].posY, (22 * FP_1)
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].baseTexId, 30
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].interactId, INTERACT_BUCKSHOT
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].promptPtr, OFFSET promptBuckshot
|
||||||
|
|
||||||
|
; Sprite 18: Observer Lounge (South-East)
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].posX, (20 * FP_1)
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].posY, (22 * FP_1)
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].baseTexId, 30
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].interactId, INTERACT_OBSERVER
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].promptPtr, OFFSET promptObserver
|
||||||
|
|
||||||
|
; Sprite 19: Russian Roulette (Backroom Entrance)
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].posX, (16 * FP_1)
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].posY, (25 * FP_1)
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].baseTexId, 34
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].interactId, INTERACT_RUSSIAN_ROULETTE
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].promptPtr, OFFSET promptRussianRoulette
|
||||||
|
|
||||||
|
; Sprite 20: Online Russian Roulette (Backroom Secret Terminal)
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].posX, (18 * FP_1)
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].posY, (25 * FP_1)
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].baseTexId, 34
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].interactId, INTERACT_ONLINE_RR
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].promptPtr, OFFSET promptOnlineRR
|
||||||
|
|
||||||
|
; Sprite 21: Hell Tower Portal (South Wing Deep End)
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].posY, (29 * FP_1)
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].baseTexId, 4
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].interactId, INTERACT_HELL_TOWER
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].promptPtr, OFFSET promptHellTower
|
||||||
|
|
||||||
mov eax, 1
|
mov eax, 1
|
||||||
jmp init_return
|
jmp init_return
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,13 @@ GetConsoleScreenBufferInfo PROTO :DWORD, :DWORD
|
||||||
GetConsoleMode PROTO :DWORD, :DWORD
|
GetConsoleMode PROTO :DWORD, :DWORD
|
||||||
SetConsoleMode PROTO :DWORD, :DWORD
|
SetConsoleMode PROTO :DWORD, :DWORD
|
||||||
FillConsoleOutputCharacterA PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
|
FillConsoleOutputCharacterA PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
|
||||||
|
AllocConsole PROTO
|
||||||
|
FreeConsole PROTO
|
||||||
|
GetConsoleWindow PROTO
|
||||||
|
SetConsoleTitleA PROTO :DWORD
|
||||||
|
GetWindowRect PROTO :DWORD, :DWORD
|
||||||
|
SetWindowPos PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
|
||||||
|
SetFocus PROTO :DWORD
|
||||||
mciSendStringA PROTO :DWORD, :DWORD, :DWORD, :DWORD
|
mciSendStringA PROTO :DWORD, :DWORD, :DWORD, :DWORD
|
||||||
waveOutSetVolume PROTO :DWORD, :DWORD
|
waveOutSetVolume PROTO :DWORD, :DWORD
|
||||||
AnimFrameDelay PROTO :DWORD
|
AnimFrameDelay PROTO :DWORD
|
||||||
|
|
@ -14925,6 +14932,46 @@ uma_exit:
|
||||||
ret
|
ret
|
||||||
GameUmamusume ENDP
|
GameUmamusume ENDP
|
||||||
|
|
||||||
|
; --- GamePlayerTerminal: Èãðîâîé òåðìèíàë (ñòàòèñòèêà, à÷èâêè, êâåñòû) ---
|
||||||
|
titleTerminal db "=== ÒÅÐÌÈÍÀË ÈÃÐÎÊÀ ===",13,10,0
|
||||||
|
textTerminalMenu db "1. Äîñòèæåíèÿ",13,10,"2. Ñòàòèñòèêà ïî èãðàì",13,10,"3. Åæåäíåâíûå çàäàíèÿ",13,10,"4. Ãëàâíîå ìåíþ è ÷èòû",13,10,"0. Íàçàä â êàçèíî",13,10,0
|
||||||
|
|
||||||
|
GamePlayerTerminal PROC
|
||||||
|
terminal_loop:
|
||||||
|
call ClearView
|
||||||
|
invoke PrintTitleColor, OFFSET titleTerminal
|
||||||
|
invoke PrintStr, OFFSET textTerminalMenu
|
||||||
|
invoke PrintStr, OFFSET choiceText
|
||||||
|
call ReadKey
|
||||||
|
cmp al, '1'
|
||||||
|
je term_ach
|
||||||
|
cmp al, '2'
|
||||||
|
je term_stats
|
||||||
|
cmp al, '3'
|
||||||
|
je term_daily
|
||||||
|
cmp al, '4'
|
||||||
|
je term_classic_menu
|
||||||
|
cmp al, '0'
|
||||||
|
je term_exit
|
||||||
|
cmp al, 1Bh
|
||||||
|
je term_exit
|
||||||
|
jmp terminal_loop
|
||||||
|
term_ach:
|
||||||
|
call GameAchievements
|
||||||
|
jmp terminal_loop
|
||||||
|
term_stats:
|
||||||
|
call GameStatsByGame
|
||||||
|
jmp terminal_loop
|
||||||
|
term_daily:
|
||||||
|
call GameDailyTasks
|
||||||
|
jmp terminal_loop
|
||||||
|
term_classic_menu:
|
||||||
|
call MainMenu
|
||||||
|
jmp terminal_loop
|
||||||
|
term_exit:
|
||||||
|
ret
|
||||||
|
GamePlayerTerminal ENDP
|
||||||
|
|
||||||
include casino3d.inc
|
include casino3d.inc
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
492
casino3d.inc
492
casino3d.inc
|
|
@ -167,17 +167,46 @@ dancerLuckBuff dd 0
|
||||||
flashTimer dd 0
|
flashTimer dd 0
|
||||||
flashMessage db 128 dup(0)
|
flashMessage db 128 dup(0)
|
||||||
|
|
||||||
promptDancer db "[E] CABARET - TIP $100",0
|
promptDancer db "[E] ÊÀÁÀÐÅ - ×ÀÅÂÛÅ $100",0
|
||||||
promptSlot1 db "[E] SLOTS 777",0
|
promptBlackjack db "[E] ÁËÝÊÄÆÅÊ (21)",0
|
||||||
promptSlot2 db "[E] SLOTS 777",0
|
promptPoker db "[E] ÏÎÊÅÐ (TEXAS HOLD'EM)",0
|
||||||
promptBlackjack db "[E] BLACKJACK / 21",0
|
promptDurak db "[E] ÊÀÐÒÛ: ÏÎÄÊÈÄÍÎÉ ÄÓÐÀÊ",0
|
||||||
promptPoker db "POKER - UNDER CONSTRUCTION",0
|
promptCasinoRoulette db "[E] ÅÂÐÎÏÅÉÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
promptRoulette db "[E] ROULETTE",0
|
promptClassicSlot db "[E] ÊËÀÑÑÈ×ÅÑÊÈÅ ÑËÎÒÛ 777",0
|
||||||
promptShop db "[E] BOUTIQUE",0
|
promptCloverSlot db "[E] ÑËÎÒÛ CLOVERPIT (5x3)",0
|
||||||
promptATM db "[E] CASHIER",0
|
promptDice db "[E] ÈÃÐÀ Â ÊÎÑÒÈ (CRAPS)",0
|
||||||
promptBackroom db "BACKROOM - UNDER CONSTRUCTION",0
|
promptSkulls db "[E] ÍÀϨÐÑÒÊÈ (×ÅÐÅÏÀ)",0
|
||||||
promptDurak db "DURAK - UNDER CONSTRUCTION",0
|
promptCoin db "[E] ÌÎÍÅÒÊÀ (ÎШË/ÐÅØÊÀ)",0
|
||||||
promptHell db "TOWER - UNDER CONSTRUCTION",0
|
promptSkillCheck db "[E] ÒÐÅÍÈÐÎÂÊÀ ÐÅÀÊÖÈÈ",0
|
||||||
|
promptBuckshot db "[E] BUCKSHOT ROULETTE",0
|
||||||
|
promptRussianRoulette db "[E] ÐÓÑÑÊÀß ÐÓËÅÒÊÀ (VIP)",0
|
||||||
|
promptOnlineRR db "[E] ÑÅÒÅÂÀß ÐÓËÅÒÊÀ (NET)",0
|
||||||
|
promptUmamusume db "[E] ÑÊÀ×ÊÈ ÓÌÀÌÓÑÓÌÝ",0
|
||||||
|
promptHellTower db "[E] ÁÀØÍß ÀÄÀ (10 ÝÒÀÆÅÉ)",0
|
||||||
|
promptShop db "[E] ÁÓÒÈÊ È ÒÀËÈÑÌÀÍÛ",0
|
||||||
|
promptATM db "[E] ÁÀÍÊÎÌÀÒ È ÁÀËÀÍÑ",0
|
||||||
|
promptPlayerTerminal db "[E] ÒÅÐÌÈÍÀË: ÑÒÀÒÛ È À×ÈÂÊÈ",0
|
||||||
|
promptObserver db "[E] ÐÅÆÈÌ ÍÀÁËÞÄÀÒÅËß (ÈÈ)",0
|
||||||
|
|
||||||
|
szTitleBlackjack db "[KAZIK 3D CASINO] - ÁËÝÊÄÆÅÊ (21)",0
|
||||||
|
szTitlePoker db "[KAZIK 3D CASINO] - ÏÎÊÅÐ (TEXAS HOLD'EM)",0
|
||||||
|
szTitleDurak db "[KAZIK 3D CASINO] - ÏÎÄÊÈÄÍÎÉ ÄÓÐÀÊ",0
|
||||||
|
szTitleCasinoRoulette db "[KAZIK 3D CASINO] - ÅÂÐÎÏÅÉÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
|
szTitleClassicSlot db "[KAZIK 3D CASINO] - ÊËÀÑÑÈ×ÅÑÊÈÅ ÑËÎÒÛ 777",0
|
||||||
|
szTitleCloverSlot db "[KAZIK 3D CASINO] - ÑËÎÒ-ÌÀØÈÍÀ CLOVERPIT (5x3)",0
|
||||||
|
szTitleDice db "[KAZIK 3D CASINO] - ÈÃÐÀ Â ÊÎÑÒÈ (CRAPS)",0
|
||||||
|
szTitleSkulls db "[KAZIK 3D CASINO] - ÍÀϨÐÑÒÊÈ",0
|
||||||
|
szTitleCoin db "[KAZIK 3D CASINO] - ÌÎÍÅÒÊÀ (ÎШË/ÐÅØÊÀ)",0
|
||||||
|
szTitleSkillCheck db "[KAZIK 3D CASINO] - ÏÐÎÂÅÐÊÀ ÐÅÀÊÖÈÈ",0
|
||||||
|
szTitleBuckshot db "[KAZIK 3D CASINO] - BUCKSHOT ROULETTE",0
|
||||||
|
szTitleRussianRoulette db "[KAZIK 3D CASINO] - ÐÓÑÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
|
szTitleOnlineRR db "[KAZIK 3D CASINO] - ÑÅÒÅÂÀß ÐÓÑÑÊÀß ÐÓËÅÒÊÀ",0
|
||||||
|
szTitleUmamusume db "[KAZIK 3D CASINO] - ÑÊÀ×ÊÈ ÓÌÀÌÓÑÓÌÝ",0
|
||||||
|
szTitleHellTower db "[KAZIK 3D CASINO] - ÁÀØÍß ÀÄÀ (ÒÓÐÍÈÐ)",0
|
||||||
|
szTitleShop db "[KAZIK 3D CASINO] - ÁÓÒÈÊ È ÒÀËÈÑÌÀÍÛ",0
|
||||||
|
szTitleATM db "[KAZIK 3D CASINO] - ÁÀÍÊÎÌÀÒ",0
|
||||||
|
szTitleTerminal db "[KAZIK 3D CASINO] - ÒÅÐÌÈÍÀË ÈÃÐÎÊÀ",0
|
||||||
|
szTitleObserver db "[KAZIK 3D CASINO] - ÐÅÆÈÌ ÍÀÁËÞÄÀÒÅËß (ÈÈ)",0
|
||||||
|
|
||||||
msgDancerTipped db "Âû áðîñèëè $100 òàíöîâùèöå! ÓÄÀ×À ÀÊÒÈÂÈÐÎÂÀÍÀ!",0
|
msgDancerTipped db "Âû áðîñèëè $100 òàíöîâùèöå! ÓÄÀ×À ÀÊÒÈÂÈÐÎÂÀÍÀ!",0
|
||||||
msgNeedMoney db "Íåäîñòàòî÷íî äåíåã â êîøåëüêå!",0
|
msgNeedMoney db "Íåäîñòàòî÷íî äåíåã â êîøåëüêå!",0
|
||||||
|
|
@ -186,7 +215,29 @@ targetHUDFormat db "
|
||||||
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 22
|
||||||
|
|
||||||
|
INTERACT_NONE equ 0
|
||||||
|
INTERACT_BLACKJACK equ 1
|
||||||
|
INTERACT_POKER equ 2
|
||||||
|
INTERACT_SLOTS_777 equ 3
|
||||||
|
INTERACT_ROULETTE equ 4
|
||||||
|
INTERACT_SKULLS equ 5
|
||||||
|
INTERACT_SHOP equ 6
|
||||||
|
INTERACT_ATM equ 7
|
||||||
|
INTERACT_DANCER equ 8
|
||||||
|
INTERACT_HELL_TOWER equ 9
|
||||||
|
INTERACT_DURAK equ 10
|
||||||
|
INTERACT_BUCKSHOT equ 11
|
||||||
|
INTERACT_COIN equ 12
|
||||||
|
INTERACT_DICE equ 13
|
||||||
|
INTERACT_SLOTS_CLOVER equ 14
|
||||||
|
INTERACT_UMAMUSUME equ 15
|
||||||
|
INTERACT_OBSERVER equ 16
|
||||||
|
INTERACT_TERMINAL equ 17
|
||||||
|
INTERACT_ONLINE_RR equ 18
|
||||||
|
INTERACT_RUSSIAN_ROULETTE equ 19
|
||||||
|
INTERACT_SKILL_CHECK equ 20
|
||||||
ALIGN 4
|
ALIGN 4
|
||||||
casinoSprites SpriteObject NUM_SPRITES dup(<>)
|
casinoSprites SpriteObject NUM_SPRITES dup(<>)
|
||||||
sortedSprites dd NUM_SPRITES dup(0)
|
sortedSprites dd NUM_SPRITES dup(0)
|
||||||
|
|
@ -2633,18 +2684,104 @@ interaction_done:
|
||||||
ret
|
ret
|
||||||
CheckInteractions ENDP
|
CheckInteractions ENDP
|
||||||
|
|
||||||
|
; --- LaunchClassicGame: Îòêðûòèå îòäåëüíîãî îêíà äëÿ êëàññè÷åñêîé âåðñèè èãðû ---
|
||||||
|
LaunchClassicGame PROC uses ebx esi edi, pGameProc:DWORD, gameId:DWORD, pTitle:DWORD
|
||||||
|
LOCAL rc3D[16]:BYTE
|
||||||
|
LOCAL conWnd:DWORD
|
||||||
|
LOCAL conW:DWORD, conH:DWORD, conX:DWORD, conY:DWORD
|
||||||
|
|
||||||
|
mov eax, gameId
|
||||||
|
mov currentGameId, eax
|
||||||
|
|
||||||
|
invoke AllocConsole
|
||||||
|
test eax, eax
|
||||||
|
jz launch_ret
|
||||||
|
|
||||||
|
invoke GetStdHandle, STD_OUTPUT_HANDLE
|
||||||
|
mov hOut, eax
|
||||||
|
invoke GetStdHandle, STD_INPUT_HANDLE
|
||||||
|
mov hIn, eax
|
||||||
|
|
||||||
|
invoke SetConsoleCP, 1251
|
||||||
|
invoke SetConsoleOutputCP, 1251
|
||||||
|
|
||||||
|
cmp pTitle, 0
|
||||||
|
je @F
|
||||||
|
invoke SetConsoleTitleA, pTitle
|
||||||
|
@@:
|
||||||
|
call EnableAnsi
|
||||||
|
call ConfigureConsoleSize
|
||||||
|
|
||||||
|
invoke GetConsoleWindow
|
||||||
|
mov conWnd, eax
|
||||||
|
test eax, eax
|
||||||
|
jz run_game_body
|
||||||
|
|
||||||
|
cmp h3DWnd, 0
|
||||||
|
je show_con_fallback
|
||||||
|
|
||||||
|
lea eax, rc3D
|
||||||
|
invoke GetWindowRect, h3DWnd, eax
|
||||||
|
mov eax, dword ptr rc3D[0]
|
||||||
|
add eax, 40
|
||||||
|
mov conX, eax
|
||||||
|
mov eax, dword ptr rc3D[4]
|
||||||
|
add eax, 40
|
||||||
|
mov conY, eax
|
||||||
|
mov conW, 960
|
||||||
|
mov conH, 680
|
||||||
|
invoke SetWindowPos, conWnd, 0, conX, conY, conW, conH, 40h ; SWP_SHOWWINDOW
|
||||||
|
jmp set_con_focus
|
||||||
|
|
||||||
|
show_con_fallback:
|
||||||
|
invoke ShowWindow, conWnd, 5 ; SW_SHOW
|
||||||
|
set_con_focus:
|
||||||
|
invoke SetForegroundWindow, conWnd
|
||||||
|
invoke SetFocus, conWnd
|
||||||
|
|
||||||
|
run_game_body:
|
||||||
|
call pGameProc
|
||||||
|
|
||||||
|
invoke FreeConsole
|
||||||
|
mov hOut, 0
|
||||||
|
mov hIn, 0
|
||||||
|
|
||||||
|
cmp h3DWnd, 0
|
||||||
|
je cleanup_game_input
|
||||||
|
invoke SetForegroundWindow, h3DWnd
|
||||||
|
invoke SetFocus, h3DWnd
|
||||||
|
|
||||||
|
cleanup_game_input:
|
||||||
|
mov ecx, 256
|
||||||
|
xor eax, eax
|
||||||
|
lea edi, keys3D
|
||||||
|
rep stosb
|
||||||
|
mov ecx, 256
|
||||||
|
lea edi, pressedKeys3D
|
||||||
|
rep stosb
|
||||||
|
|
||||||
|
invoke GetTickCount
|
||||||
|
mov previousTick3D, eax
|
||||||
|
mov frameStart3D, eax
|
||||||
|
mov deltaTime3D, 0
|
||||||
|
|
||||||
|
call SaveProgress3D
|
||||||
|
|
||||||
|
launch_ret:
|
||||||
|
ret
|
||||||
|
LaunchClassicGame ENDP
|
||||||
|
|
||||||
Trigger3DInteraction PROC
|
Trigger3DInteraction PROC
|
||||||
mov eax, interactTargetId
|
mov eax, interactTargetId
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz @F
|
jz trigger_done
|
||||||
|
|
||||||
cmp eax, 8 ; DANCER
|
cmp eax, INTERACT_DANCER
|
||||||
jne check_target_slots
|
jne check_target_bj
|
||||||
cmp bankroll, 100
|
cmp bankroll, 100
|
||||||
jl dancer_no_cash
|
jl dancer_no_cash
|
||||||
sub bankroll, 100
|
sub bankroll, 100
|
||||||
inc dancerLuckBuff
|
inc dancerLuckBuff
|
||||||
; Tips are cosmetic and must not silently change game odds.
|
|
||||||
invoke CopyString3D, OFFSET textTips3D, OFFSET flashMessage
|
invoke CopyString3D, OFFSET textTips3D, OFFSET flashMessage
|
||||||
mov flashTimer, 100
|
mov flashTimer, 100
|
||||||
invoke PlaySoundA, OFFSET soundJackpot, 0, 1
|
invoke PlaySoundA, OFFSET soundJackpot, 0, 1
|
||||||
|
|
@ -2654,42 +2791,124 @@ dancer_no_cash:
|
||||||
mov flashTimer, 60
|
mov flashTimer, 60
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_slots:
|
check_target_bj:
|
||||||
cmp eax, 3 ; SLOTS
|
cmp eax, INTERACT_BLACKJACK
|
||||||
jne check_target_bj
|
jne check_target_poker
|
||||||
mov engineMode, MODE_SLOTS
|
invoke LaunchClassicGame, OFFSET Game21, 1, OFFSET szTitleBlackjack
|
||||||
invoke PlaySoundA, OFFSET soundClick, 0, 1
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_bj:
|
check_target_poker:
|
||||||
cmp eax, 1 ; BLACKJACK
|
cmp eax, INTERACT_POKER
|
||||||
|
jne check_target_durak
|
||||||
|
invoke LaunchClassicGame, OFFSET GamePoker, 2, OFFSET szTitlePoker
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_durak:
|
||||||
|
cmp eax, INTERACT_DURAK
|
||||||
|
jne check_target_slots777
|
||||||
|
invoke LaunchClassicGame, OFFSET GameDurak, 10, OFFSET szTitleDurak
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_slots777:
|
||||||
|
cmp eax, INTERACT_SLOTS_777
|
||||||
|
jne check_target_slots_clover
|
||||||
|
invoke LaunchClassicGame, OFFSET GameClassicSlot, 9, OFFSET szTitleClassicSlot
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_slots_clover:
|
||||||
|
cmp eax, INTERACT_SLOTS_CLOVER
|
||||||
jne check_target_roulette
|
jne check_target_roulette
|
||||||
mov engineMode, MODE_BLACKJACK
|
invoke LaunchClassicGame, OFFSET GameSlot, 3, OFFSET szTitleCloverSlot
|
||||||
mov bjState, 0
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_roulette:
|
check_target_roulette:
|
||||||
cmp eax, 4 ; ROULETTE
|
cmp eax, INTERACT_ROULETTE
|
||||||
|
jne check_target_dice
|
||||||
|
invoke LaunchClassicGame, OFFSET GameCasinoRoulette, 8, OFFSET szTitleCasinoRoulette
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_dice:
|
||||||
|
cmp eax, INTERACT_DICE
|
||||||
|
jne check_target_skulls
|
||||||
|
invoke LaunchClassicGame, OFFSET GameDice, 7, OFFSET szTitleDice
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_skulls:
|
||||||
|
cmp eax, INTERACT_SKULLS
|
||||||
|
jne check_target_coin
|
||||||
|
invoke LaunchClassicGame, OFFSET GameSkulls, 5, OFFSET szTitleSkulls
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_coin:
|
||||||
|
cmp eax, INTERACT_COIN
|
||||||
|
jne check_target_skill
|
||||||
|
invoke LaunchClassicGame, OFFSET GameCoin, 6, OFFSET szTitleCoin
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_skill:
|
||||||
|
cmp eax, INTERACT_SKILL_CHECK
|
||||||
|
jne check_target_buckshot
|
||||||
|
invoke LaunchClassicGame, OFFSET GameSkillCheck, 11, OFFSET szTitleSkillCheck
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_buckshot:
|
||||||
|
cmp eax, INTERACT_BUCKSHOT
|
||||||
|
jne check_target_rr
|
||||||
|
invoke LaunchClassicGame, OFFSET GameBuckshot, 13, OFFSET szTitleBuckshot
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_rr:
|
||||||
|
cmp eax, INTERACT_RUSSIAN_ROULETTE
|
||||||
|
jne check_target_online_rr
|
||||||
|
invoke LaunchClassicGame, OFFSET GameRoulette, 4, OFFSET szTitleRussianRoulette
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_online_rr:
|
||||||
|
cmp eax, INTERACT_ONLINE_RR
|
||||||
|
jne check_target_umamusume
|
||||||
|
invoke LaunchClassicGame, OFFSET GameOnlineCasino, 20, OFFSET szTitleOnlineRR
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_umamusume:
|
||||||
|
cmp eax, INTERACT_UMAMUSUME
|
||||||
|
jne check_target_hell
|
||||||
|
invoke LaunchClassicGame, OFFSET GameUmamusume, 21, OFFSET szTitleUmamusume
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_hell:
|
||||||
|
cmp eax, INTERACT_HELL_TOWER
|
||||||
jne check_target_shop
|
jne check_target_shop
|
||||||
mov engineMode, MODE_ROULETTE
|
invoke LaunchClassicGame, OFFSET GameTournament, 666, OFFSET szTitleHellTower
|
||||||
mov roulState, 0
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_shop:
|
check_target_shop:
|
||||||
cmp eax, 6 ; SHOP
|
cmp eax, INTERACT_SHOP
|
||||||
jne check_target_atm
|
jne check_target_atm
|
||||||
mov engineMode, MODE_SHOP
|
invoke LaunchClassicGame, OFFSET GameShop, 0, OFFSET szTitleShop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
check_target_atm:
|
check_target_atm:
|
||||||
cmp eax, 7 ; ATM
|
cmp eax, INTERACT_ATM
|
||||||
jne target_unported
|
jne check_target_terminal
|
||||||
mov engineMode, MODE_ATM
|
mov engineMode, MODE_ATM
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
check_target_terminal:
|
||||||
|
cmp eax, INTERACT_TERMINAL
|
||||||
|
jne check_target_observer
|
||||||
|
invoke LaunchClassicGame, OFFSET GamePlayerTerminal, 0, OFFSET szTitleTerminal
|
||||||
|
ret
|
||||||
|
|
||||||
|
check_target_observer:
|
||||||
|
cmp eax, INTERACT_OBSERVER
|
||||||
|
jne target_unported
|
||||||
|
invoke LaunchClassicGame, OFFSET GameObserver, 14, OFFSET szTitleObserver
|
||||||
|
ret
|
||||||
|
|
||||||
target_unported:
|
target_unported:
|
||||||
invoke CopyString3D, OFFSET textUnavailable3D, OFFSET flashMessage
|
invoke CopyString3D, OFFSET textUnavailable3D, OFFSET flashMessage
|
||||||
mov flashTimer, 150
|
mov flashTimer, 150
|
||||||
@@:
|
trigger_done:
|
||||||
ret
|
ret
|
||||||
Trigger3DInteraction ENDP
|
Trigger3DInteraction ENDP
|
||||||
|
|
||||||
|
|
@ -2721,7 +2940,7 @@ init_sprites_table:
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[0*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[0*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].animSpeed, 5
|
mov casinoSprites[0*SIZEOF SpriteObject].animSpeed, 5
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].interactId, 8
|
mov casinoSprites[0*SIZEOF SpriteObject].interactId, INTERACT_DANCER
|
||||||
mov casinoSprites[0*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
mov casinoSprites[0*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
||||||
|
|
||||||
; Sprite 1: VIP Dancer 2 (Center Stage Star)
|
; Sprite 1: VIP Dancer 2 (Center Stage Star)
|
||||||
|
|
@ -2732,7 +2951,7 @@ init_sprites_table:
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].curFrame, 2
|
mov casinoSprites[1*SIZEOF SpriteObject].curFrame, 2
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[1*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].animSpeed, 5
|
mov casinoSprites[1*SIZEOF SpriteObject].animSpeed, 5
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].interactId, 8
|
mov casinoSprites[1*SIZEOF SpriteObject].interactId, INTERACT_DANCER
|
||||||
mov casinoSprites[1*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
mov casinoSprites[1*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
||||||
|
|
||||||
; Sprite 2: VIP Dancer 3 (Stage Right)
|
; Sprite 2: VIP Dancer 3 (Stage Right)
|
||||||
|
|
@ -2743,21 +2962,21 @@ init_sprites_table:
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].curFrame, 1
|
mov casinoSprites[2*SIZEOF SpriteObject].curFrame, 1
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[2*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].animSpeed, 5
|
mov casinoSprites[2*SIZEOF SpriteObject].animSpeed, 5
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].interactId, 8
|
mov casinoSprites[2*SIZEOF SpriteObject].interactId, INTERACT_DANCER
|
||||||
mov casinoSprites[2*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
mov casinoSprites[2*SIZEOF SpriteObject].promptPtr, OFFSET promptDancer
|
||||||
|
|
||||||
; Sprite 3: Blackjack Table with Dealer (Front Center Left)
|
; Sprite 3: VIP Blackjack (Front Center Left)
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].posX, (12 * FP_1 + FP_HALF)
|
mov casinoSprites[3*SIZEOF SpriteObject].posX, (12 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].posY, (10 * FP_1)
|
mov casinoSprites[3*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].baseTexId, 30
|
mov casinoSprites[3*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[3*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[3*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[3*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[3*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].interactId, 1
|
mov casinoSprites[3*SIZEOF SpriteObject].interactId, INTERACT_BLACKJACK
|
||||||
mov casinoSprites[3*SIZEOF SpriteObject].promptPtr, OFFSET promptBlackjack
|
mov casinoSprites[3*SIZEOF SpriteObject].promptPtr, OFFSET promptBlackjack
|
||||||
|
|
||||||
; Sprite 4: Roulette Table (Front Center)
|
; Sprite 4: European Roulette Table (Front Center)
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
mov casinoSprites[4*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].posY, (10 * FP_1)
|
mov casinoSprites[4*SIZEOF SpriteObject].posY, (10 * FP_1)
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].baseTexId, 31
|
mov casinoSprites[4*SIZEOF SpriteObject].baseTexId, 31
|
||||||
|
|
@ -2765,96 +2984,195 @@ init_sprites_table:
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[4*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[4*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[4*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].interactId, 4
|
mov casinoSprites[4*SIZEOF SpriteObject].interactId, INTERACT_ROULETTE
|
||||||
mov casinoSprites[4*SIZEOF SpriteObject].promptPtr, OFFSET promptRoulette
|
mov casinoSprites[4*SIZEOF SpriteObject].promptPtr, OFFSET promptCasinoRoulette
|
||||||
|
|
||||||
; Sprite 5: Poker Table (Front Center Right)
|
; Sprite 5: Texas Hold'em Poker Table (Front Center Right)
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].posX, (21 * FP_1)
|
mov casinoSprites[5*SIZEOF SpriteObject].posX, (20 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].posY, (10 * FP_1)
|
mov casinoSprites[5*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].baseTexId, 30
|
mov casinoSprites[5*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[5*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[5*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[5*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[5*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].interactId, 1
|
mov casinoSprites[5*SIZEOF SpriteObject].interactId, INTERACT_POKER
|
||||||
mov casinoSprites[5*SIZEOF SpriteObject].promptPtr, OFFSET promptPoker
|
mov casinoSprites[5*SIZEOF SpriteObject].promptPtr, OFFSET promptPoker
|
||||||
|
|
||||||
; Sprite 6: Slot Machine 1 (West Arcade)
|
; Sprite 6: Podkidnoy Durak Card Table
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].posX, (6 * FP_1)
|
mov casinoSprites[6*SIZEOF SpriteObject].posX, (24 * FP_1 + FP_HALF)
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].posY, (8 * FP_1)
|
mov casinoSprites[6*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].baseTexId, 24
|
mov casinoSprites[6*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].frameCount, 3
|
mov casinoSprites[6*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[6*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[6*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].animSpeed, 8
|
mov casinoSprites[6*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].interactId, 3
|
mov casinoSprites[6*SIZEOF SpriteObject].interactId, INTERACT_DURAK
|
||||||
mov casinoSprites[6*SIZEOF SpriteObject].promptPtr, OFFSET promptSlot1
|
mov casinoSprites[6*SIZEOF SpriteObject].promptPtr, OFFSET promptDurak
|
||||||
|
|
||||||
; Sprite 7: Slot Machine 2 (CloverPit)
|
; Sprite 7: Classic Slots 777 (West Arcade 1)
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].posX, (6 * FP_1)
|
mov casinoSprites[7*SIZEOF SpriteObject].posX, (6 * FP_1)
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].posY, (11 * FP_1)
|
mov casinoSprites[7*SIZEOF SpriteObject].posY, (8 * FP_1)
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].baseTexId, 24
|
mov casinoSprites[7*SIZEOF SpriteObject].baseTexId, 24
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].frameCount, 3
|
mov casinoSprites[7*SIZEOF SpriteObject].frameCount, 3
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].curFrame, 1
|
mov casinoSprites[7*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[7*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].animSpeed, 8
|
mov casinoSprites[7*SIZEOF SpriteObject].animSpeed, 8
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].interactId, 3
|
mov casinoSprites[7*SIZEOF SpriteObject].interactId, INTERACT_SLOTS_777
|
||||||
mov casinoSprites[7*SIZEOF SpriteObject].promptPtr, OFFSET promptSlot2
|
mov casinoSprites[7*SIZEOF SpriteObject].promptPtr, OFFSET promptClassicSlot
|
||||||
|
|
||||||
; Sprite 8: Slot Machine 3
|
; Sprite 8: CloverPit Slots 5x3 (West Arcade 2)
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].posX, (6 * FP_1)
|
mov casinoSprites[8*SIZEOF SpriteObject].posX, (6 * FP_1)
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].posY, (14 * FP_1)
|
mov casinoSprites[8*SIZEOF SpriteObject].posY, (11 * FP_1)
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].baseTexId, 24
|
mov casinoSprites[8*SIZEOF SpriteObject].baseTexId, 24
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].frameCount, 3
|
mov casinoSprites[8*SIZEOF SpriteObject].frameCount, 3
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].curFrame, 2
|
mov casinoSprites[8*SIZEOF SpriteObject].curFrame, 1
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[8*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].animSpeed, 8
|
mov casinoSprites[8*SIZEOF SpriteObject].animSpeed, 8
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].interactId, 3
|
mov casinoSprites[8*SIZEOF SpriteObject].interactId, INTERACT_SLOTS_CLOVER
|
||||||
mov casinoSprites[8*SIZEOF SpriteObject].promptPtr, OFFSET promptSlot1
|
mov casinoSprites[8*SIZEOF SpriteObject].promptPtr, OFFSET promptCloverSlot
|
||||||
|
|
||||||
; Sprite 9: Bartender / Bar Counter (East Wing)
|
; Sprite 9: Craps & Dice Table (West Arcade 3)
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].posX, (26 * FP_1)
|
mov casinoSprites[9*SIZEOF SpriteObject].posX, (6 * FP_1)
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].posY, (12 * FP_1)
|
mov casinoSprites[9*SIZEOF SpriteObject].posY, (14 * FP_1)
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].baseTexId, 32
|
mov casinoSprites[9*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[9*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[9*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[9*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[9*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].interactId, 6
|
mov casinoSprites[9*SIZEOF SpriteObject].interactId, INTERACT_DICE
|
||||||
mov casinoSprites[9*SIZEOF SpriteObject].promptPtr, OFFSET promptShop
|
mov casinoSprites[9*SIZEOF SpriteObject].promptPtr, OFFSET promptDice
|
||||||
|
|
||||||
; Sprite 10: ATM Bank Terminal (East Wing)
|
; Sprite 10: Skulls & Cups Table
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].posX, (26 * FP_1)
|
mov casinoSprites[10*SIZEOF SpriteObject].posX, (10 * FP_1)
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].posY, (16 * FP_1)
|
mov casinoSprites[10*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].baseTexId, 33
|
mov casinoSprites[10*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[10*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[10*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[10*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[10*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].interactId, 7
|
mov casinoSprites[10*SIZEOF SpriteObject].interactId, INTERACT_SKULLS
|
||||||
mov casinoSprites[10*SIZEOF SpriteObject].promptPtr, OFFSET promptATM
|
mov casinoSprites[10*SIZEOF SpriteObject].promptPtr, OFFSET promptSkulls
|
||||||
|
|
||||||
; Sprite 11: Underground Table (South Wing)
|
; Sprite 11: Coin Toss Stand
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
mov casinoSprites[11*SIZEOF SpriteObject].posX, (14 * FP_1)
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].posY, (24 * FP_1)
|
mov casinoSprites[11*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].baseTexId, 34
|
mov casinoSprites[11*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[11*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[11*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[11*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[11*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].interactId, 5
|
mov casinoSprites[11*SIZEOF SpriteObject].interactId, INTERACT_COIN
|
||||||
mov casinoSprites[11*SIZEOF SpriteObject].promptPtr, OFFSET promptBackroom
|
mov casinoSprites[11*SIZEOF SpriteObject].promptPtr, OFFSET promptCoin
|
||||||
|
|
||||||
; Sprite 12: Secret Demon Portal (South Wing)
|
; Sprite 12: Skill Check Stand
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
mov casinoSprites[12*SIZEOF SpriteObject].posX, (18 * FP_1)
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].posY, (29 * FP_1)
|
mov casinoSprites[12*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].baseTexId, 4
|
mov casinoSprites[12*SIZEOF SpriteObject].baseTexId, 30
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].frameCount, 1
|
mov casinoSprites[12*SIZEOF SpriteObject].frameCount, 1
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].curFrame, 0
|
mov casinoSprites[12*SIZEOF SpriteObject].curFrame, 0
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].animTimer, 0
|
mov casinoSprites[12*SIZEOF SpriteObject].animTimer, 0
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].animSpeed, 1
|
mov casinoSprites[12*SIZEOF SpriteObject].animSpeed, 1
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].interactId, 9
|
mov casinoSprites[12*SIZEOF SpriteObject].interactId, INTERACT_SKILL_CHECK
|
||||||
mov casinoSprites[12*SIZEOF SpriteObject].promptPtr, OFFSET promptHell
|
mov casinoSprites[12*SIZEOF SpriteObject].promptPtr, OFFSET promptSkillCheck
|
||||||
|
|
||||||
|
; Sprite 13: Umamusume Derby Lounge
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].posX, (22 * FP_1)
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].posY, (15 * FP_1)
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].baseTexId, 30
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].interactId, INTERACT_UMAMUSUME
|
||||||
|
mov casinoSprites[13*SIZEOF SpriteObject].promptPtr, OFFSET promptUmamusume
|
||||||
|
|
||||||
|
; Sprite 14: Boutique & Shop (East Wing)
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].posX, (26 * FP_1)
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].posY, (12 * FP_1)
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].baseTexId, 32
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].interactId, INTERACT_SHOP
|
||||||
|
mov casinoSprites[14*SIZEOF SpriteObject].promptPtr, OFFSET promptShop
|
||||||
|
|
||||||
|
; Sprite 15: Cashier & ATM (East Wing)
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].posX, (26 * FP_1)
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].posY, (16 * FP_1)
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].baseTexId, 33
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].interactId, INTERACT_ATM
|
||||||
|
mov casinoSprites[15*SIZEOF SpriteObject].promptPtr, OFFSET promptATM
|
||||||
|
|
||||||
|
; Sprite 16: Player Terminal (East Wing)
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].posX, (26 * FP_1)
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].posY, (20 * FP_1)
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].baseTexId, 33
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].interactId, INTERACT_TERMINAL
|
||||||
|
mov casinoSprites[16*SIZEOF SpriteObject].promptPtr, OFFSET promptPlayerTerminal
|
||||||
|
|
||||||
|
; Sprite 17: Buckshot Roulette (South-West)
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].posX, (12 * FP_1)
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].posY, (22 * FP_1)
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].baseTexId, 30
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].interactId, INTERACT_BUCKSHOT
|
||||||
|
mov casinoSprites[17*SIZEOF SpriteObject].promptPtr, OFFSET promptBuckshot
|
||||||
|
|
||||||
|
; Sprite 18: Observer Lounge (South-East)
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].posX, (20 * FP_1)
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].posY, (22 * FP_1)
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].baseTexId, 30
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].interactId, INTERACT_OBSERVER
|
||||||
|
mov casinoSprites[18*SIZEOF SpriteObject].promptPtr, OFFSET promptObserver
|
||||||
|
|
||||||
|
; Sprite 19: Russian Roulette (Backroom Entrance)
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].posX, (16 * FP_1)
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].posY, (25 * FP_1)
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].baseTexId, 34
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].interactId, INTERACT_RUSSIAN_ROULETTE
|
||||||
|
mov casinoSprites[19*SIZEOF SpriteObject].promptPtr, OFFSET promptRussianRoulette
|
||||||
|
|
||||||
|
; Sprite 20: Online Russian Roulette (Backroom Secret Terminal)
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].posX, (18 * FP_1)
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].posY, (25 * FP_1)
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].baseTexId, 34
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].interactId, INTERACT_ONLINE_RR
|
||||||
|
mov casinoSprites[20*SIZEOF SpriteObject].promptPtr, OFFSET promptOnlineRR
|
||||||
|
|
||||||
|
; Sprite 21: Hell Tower Portal (South Wing Deep End)
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].posX, (16 * FP_1 + FP_HALF)
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].posY, (29 * FP_1)
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].baseTexId, 4
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].frameCount, 1
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].curFrame, 0
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].animTimer, 0
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].animSpeed, 1
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].interactId, INTERACT_HELL_TOWER
|
||||||
|
mov casinoSprites[21*SIZEOF SpriteObject].promptPtr, OFFSET promptHellTower
|
||||||
|
|
||||||
mov eax, 1
|
mov eax, 1
|
||||||
jmp init_return
|
jmp init_return
|
||||||
|
|
|
||||||
47
poker.asm
47
poker.asm
|
|
@ -72,6 +72,13 @@ GetConsoleScreenBufferInfo PROTO :DWORD, :DWORD
|
||||||
GetConsoleMode PROTO :DWORD, :DWORD
|
GetConsoleMode PROTO :DWORD, :DWORD
|
||||||
SetConsoleMode PROTO :DWORD, :DWORD
|
SetConsoleMode PROTO :DWORD, :DWORD
|
||||||
FillConsoleOutputCharacterA PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
|
FillConsoleOutputCharacterA PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
|
||||||
|
AllocConsole PROTO
|
||||||
|
FreeConsole PROTO
|
||||||
|
GetConsoleWindow PROTO
|
||||||
|
SetConsoleTitleA PROTO :DWORD
|
||||||
|
GetWindowRect PROTO :DWORD, :DWORD
|
||||||
|
SetWindowPos PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
|
||||||
|
SetFocus PROTO :DWORD
|
||||||
mciSendStringA PROTO :DWORD, :DWORD, :DWORD, :DWORD
|
mciSendStringA PROTO :DWORD, :DWORD, :DWORD, :DWORD
|
||||||
waveOutSetVolume PROTO :DWORD, :DWORD
|
waveOutSetVolume PROTO :DWORD, :DWORD
|
||||||
AnimFrameDelay PROTO :DWORD
|
AnimFrameDelay PROTO :DWORD
|
||||||
|
|
@ -14925,6 +14932,46 @@ uma_exit:
|
||||||
ret
|
ret
|
||||||
GameUmamusume ENDP
|
GameUmamusume ENDP
|
||||||
|
|
||||||
|
; --- GamePlayerTerminal: Èãðîâîé òåðìèíàë (ñòàòèñòèêà, à÷èâêè, êâåñòû) ---
|
||||||
|
titleTerminal db "=== ÒÅÐÌÈÍÀË ÈÃÐÎÊÀ ===",13,10,0
|
||||||
|
textTerminalMenu db "1. Äîñòèæåíèÿ",13,10,"2. Ñòàòèñòèêà ïî èãðàì",13,10,"3. Åæåäíåâíûå çàäàíèÿ",13,10,"4. Ãëàâíîå ìåíþ è ÷èòû",13,10,"0. Íàçàä â êàçèíî",13,10,0
|
||||||
|
|
||||||
|
GamePlayerTerminal PROC
|
||||||
|
terminal_loop:
|
||||||
|
call ClearView
|
||||||
|
invoke PrintTitleColor, OFFSET titleTerminal
|
||||||
|
invoke PrintStr, OFFSET textTerminalMenu
|
||||||
|
invoke PrintStr, OFFSET choiceText
|
||||||
|
call ReadKey
|
||||||
|
cmp al, '1'
|
||||||
|
je term_ach
|
||||||
|
cmp al, '2'
|
||||||
|
je term_stats
|
||||||
|
cmp al, '3'
|
||||||
|
je term_daily
|
||||||
|
cmp al, '4'
|
||||||
|
je term_classic_menu
|
||||||
|
cmp al, '0'
|
||||||
|
je term_exit
|
||||||
|
cmp al, 1Bh
|
||||||
|
je term_exit
|
||||||
|
jmp terminal_loop
|
||||||
|
term_ach:
|
||||||
|
call GameAchievements
|
||||||
|
jmp terminal_loop
|
||||||
|
term_stats:
|
||||||
|
call GameStatsByGame
|
||||||
|
jmp terminal_loop
|
||||||
|
term_daily:
|
||||||
|
call GameDailyTasks
|
||||||
|
jmp terminal_loop
|
||||||
|
term_classic_menu:
|
||||||
|
call MainMenu
|
||||||
|
jmp terminal_loop
|
||||||
|
term_exit:
|
||||||
|
ret
|
||||||
|
GamePlayerTerminal ENDP
|
||||||
|
|
||||||
include casino3d.inc
|
include casino3d.inc
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
BIN
poker.exe
BIN
poker.exe
Binary file not shown.
Loading…
Add table
Reference in a new issue