Add native Durak, poker, blackjack, roulette, Buckshot and billiards scenes with animation assets and regression tests. Improve arrival, city, hall, profiles, shops, audio and exit handling; remove the portable C game core and refresh shipping executables.
180 lines
5.2 KiB
PHP
180 lines
5.2 KiB
PHP
; Real card identities: suit*13 + rank (2..A). Cards are never sampled with replacement.
|
|
MODE_POKER equ 12
|
|
TABLE_FLIGHT_MS equ 360
|
|
PK_IDLE equ 0
|
|
PK_DEAL equ 1
|
|
PK_PLAYER equ 2
|
|
PK_AI equ 3
|
|
PK_BOARD equ 4
|
|
PK_RESULT equ 5
|
|
PK_REVEAL equ 6
|
|
CB_IDLE equ 0
|
|
CB_DEAL equ 1
|
|
CB_PLAYER equ 2
|
|
CB_HIT equ 3
|
|
CB_DEALER equ 4
|
|
CB_RESULT equ 5
|
|
LoadCardTableAssets3D PROTO
|
|
FreeCardTableAssets3D PROTO
|
|
RenderCardTable3D PROTO
|
|
ShuffleCards3D PROTO :DWORD
|
|
DrawNativeCard3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
|
|
DrawNativeSuit3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
DrawNativeChips3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
DrawSlidingCard3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
|
|
LookupPokerFive3D PROTO :DWORD
|
|
EvaluateNativePoker3D PROTO :DWORD,:DWORD
|
|
NativePokerClass3D PROTO :DWORD
|
|
InitNativePoker3D PROTO
|
|
StartNativePoker3D PROTO
|
|
HandleNativePoker3D PROTO
|
|
RenderNativePoker3D PROTO
|
|
PokerPay3D PROTO :DWORD,:DWORD
|
|
PokerCall3D PROTO :DWORD
|
|
PokerRaise3D PROTO :DWORD,:DWORD
|
|
PokerFold3D PROTO :DWORD
|
|
PokerNextTurn3D PROTO :DWORD
|
|
PokerNextStreet3D PROTO
|
|
PokerShowdown3D PROTO
|
|
PokerAIDecide3D PROTO
|
|
InitNativeBlackjack3D PROTO
|
|
HandleNativeBlackjack3D PROTO
|
|
RenderNativeBlackjack3D PROTO
|
|
NativeBJScore3D PROTO :DWORD,:DWORD
|
|
NativeBJSettle3D PROTO :DWORD
|
|
TableBusy3D PROTO
|
|
StartNativeBlackjack3D PROTO
|
|
NativeBJHit3D PROTO
|
|
CardTableMouse3D PROTO :DWORD
|
|
DrawTableButton3D PROTO :DWORD,:DWORD,:DWORD
|
|
DrawTableHeader3D PROTO :DWORD,:DWORD
|
|
DrawStakeControls3D PROTO :DWORD
|
|
RenderPokerHole3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
RequestCardExit3D PROTO
|
|
CardTableEscape3D PROTO
|
|
HandleCardExit3D PROTO
|
|
LeaveCardTable3D PROTO
|
|
RenderCardExit3D PROTO
|
|
.data
|
|
cardExitActive3D dd 0
|
|
cardExitChoice3D dd 0
|
|
cardExitButton3D db 194,32,245,238,235,235,0
|
|
cardExitTitle3D db 207,238,234,232,237,243,242,252,32,241,242,238,235,63,0
|
|
cardExitWarning3D db 208,224,231,228,224,247,224,32,229,249,184,32,237,229,32,231,224,234,238,237,247,229,237,224,46,0
|
|
cardExitStake3D db 209,242,224,226,234,224,32,225,243,228,229,242,32,239,238,242,229,240,255,237,224,46,0
|
|
cardExitContinue3D db 207,240,238,228,238,235,230,232,242,252,0
|
|
cardExitLeave3D db 194,251,233,242,232,0
|
|
cardTablePixels3D dd 0
|
|
cardTableHeap3D dd 0
|
|
cardRanks3D dd 0
|
|
cardRanksHeap3D dd 0
|
|
cardTableHeader3D dd 4 dup(0)
|
|
cardRanksHeader3D dd 4 dup(0)
|
|
cardTablePath3D db "assets\textures\card-table.bin",0
|
|
cardRanksPath3D db "assets\data\poker-ranks.bin",0
|
|
cardRankNames3D db "2",0,"3",0,"4",0,"5",0,"6",0,"7",0,"8",0,"9",0,"T",0,"J",0,"Q",0,"K",0,"A",0
|
|
cardSuitMasks3D db 18h,3Ch,18h,7Eh,0FFh,7Eh,18h,3Ch
|
|
db 18h,3Ch,7Eh,0FFh,7Eh,3Ch,18h,0
|
|
db 66h,0FFh,0FFh,7Eh,3Ch,18h,0,0
|
|
db 18h,3Ch,7Eh,0FFh,0FFh,5Ah,18h,3Ch
|
|
cardPrimes3D dd 2,3,5,7,11,13,17,19,23,29,31,37,41
|
|
pkState3D dd PK_IDLE
|
|
pkTimer3D dd 0
|
|
pkBlind3D dd 50
|
|
pkStreet3D dd 0
|
|
pkButton3D dd 1
|
|
pkTurn3D dd 0
|
|
pkPot3D dd 0
|
|
pkCurrent3D dd 0
|
|
pkMinRaise3D dd 50
|
|
pkRaise3D dd 50
|
|
pkRaisedCount3D dd 0
|
|
pkStack3D dd 0
|
|
pkPaid3D dd 2 dup(0)
|
|
pkActed3D dd 2 dup(0)
|
|
pkCanRaise3D dd 1
|
|
pkDeck3D dd 52 dup(0)
|
|
pkCursor3D dd 4
|
|
pkHole3D dd 4 dup(0)
|
|
pkBoard3D dd 5 dup(0)
|
|
pkBoardCount3D dd 0
|
|
pkOldBoardCount3D dd 0
|
|
pkResult3D dd 0
|
|
pkOutcome3D dd 0
|
|
pkScore3D dd 2 dup(7462)
|
|
pkEvalHand3D dd 7 dup(0)
|
|
pkAiMessage3D dd 0
|
|
pkError3D dd 0
|
|
pkChipActor3D dd 0
|
|
pkChipAmount3D dd 0
|
|
pkChipTimer3D dd 320
|
|
pkTitle3D db "TEXAS HOLD'EM",0
|
|
pkPotText3D db "POT $",0
|
|
pkStreet0Text3D db "PREFLOP",0
|
|
pkStreet1Text3D db "FLOP",0
|
|
pkStreet2Text3D db "TURN",0
|
|
pkStreet3Text3D db "RIVER",0
|
|
pkStreetNames3D dd OFFSET pkStreet0Text3D,OFFSET pkStreet1Text3D,OFFSET pkStreet2Text3D,OFFSET pkStreet3Text3D
|
|
pkCheckText3D db "CHECK",0
|
|
pkCallText3D db "CALL",0
|
|
pkRaiseText3D db "RAISE",0
|
|
pkFoldText3D db "FOLD",0
|
|
pkAllInText3D db "ALL-IN",0
|
|
pkCostText3D db "CALL $",0
|
|
pkMinimumText3D db "MIN RAISE",0
|
|
pkDealText3D db "DEAL",0
|
|
pkNextText3D db "NEXT",0
|
|
pkAiWait3D db "DEALER",0
|
|
pkAiCheck3D db "CHECK",0
|
|
pkAiCall3D db "CALL",0
|
|
pkAiRaise3D db "RAISE",0
|
|
pkAiFold3D db "FOLD",0
|
|
pkAiNames3D dd OFFSET pkAiWait3D,OFFSET pkAiCheck3D,OFFSET pkAiCall3D,OFFSET pkAiRaise3D,OFFSET pkAiFold3D
|
|
pkWinText3D db "YOU WIN",0
|
|
pkLoseText3D db "DEALER WINS",0
|
|
pkTieText3D db "SPLIT POT",0
|
|
pkResults3D dd OFFSET pkWinText3D,OFFSET pkLoseText3D,OFFSET pkTieText3D
|
|
pkRank0 db "HIGH CARD",0
|
|
pkRank1 db "PAIR",0
|
|
pkRank2 db "TWO PAIR",0
|
|
pkRank3 db "THREE OF A KIND",0
|
|
pkRank4 db "STRAIGHT",0
|
|
pkRank5 db "FLUSH",0
|
|
pkRank6 db "FULL HOUSE",0
|
|
pkRank7 db "FOUR OF A KIND",0
|
|
pkRank8 db "STRAIGHT FLUSH",0
|
|
pkRankNames3D dd OFFSET pkRank0,OFFSET pkRank1,OFFSET pkRank2,OFFSET pkRank3,OFFSET pkRank4
|
|
dd OFFSET pkRank5,OFFSET pkRank6,OFFSET pkRank7,OFFSET pkRank8
|
|
pkRankLimits3D dd 7462,6185,3325,2467,1609,1599,322,166,10
|
|
cbState3D dd CB_IDLE
|
|
cbTimer3D dd 0
|
|
cbBet3D dd 100
|
|
cbStake3D dd 0
|
|
cbDeck3D dd 52 dup(0)
|
|
cbCursor3D dd 0
|
|
cbPlayer3D dd 12 dup(0)
|
|
cbDealer3D dd 12 dup(0)
|
|
cbPlayerCount3D dd 0
|
|
cbDealerCount3D dd 0
|
|
cbPlayerScore3D dd 0
|
|
cbDealerScore3D dd 0
|
|
cbVisible3D dd 0
|
|
cbDouble3D dd 0
|
|
cbOutcome3D dd 0
|
|
cbCard3D dd 0
|
|
cbError3D dd 0
|
|
cbTitle3D db "BLACKJACK / 21",0
|
|
cbHitText3D db "HIT",0
|
|
cbStandText3D db "STAND",0
|
|
cbDoubleText3D db "DOUBLE",0
|
|
cbNaturalText3D db "BLACKJACK",0
|
|
cbResults3D dd OFFSET pkWinText3D,OFFSET pkLoseText3D,OFFSET textTie3D
|
|
tableBlindText3D db "BLIND $",0
|
|
tableRaiseText3D db "RAISE +$",0
|
|
tableScoreText3D db "TOTAL",0
|
|
tablePlusText3D db "+",0
|
|
tableMinusText3D db "-",0
|
|
tableDealOrder3D dd 0,2,1,3
|
|
tableHoleX3D dd 114,154,114,154
|
|
tableHoleY3D dd 168,168,51,51
|
|
.code
|