- Billiards: add native Russian Pyramid & American Eight-Ball pool with physics prediction, controls, and regression tests - Scratch Tickets: add dedicated counter, mat presentation, elliptical coin scraping, 4 ticket types, and payout effects - First-Person Dice: add native dice scene, hand anchor frames, throwing animation, and table perspective - City Wake & Weather: add arrival cutscene, alley geometry, weather/rain effects, and lighter/rocker animation - World Dressing: add hall paintings, furniture packs, hall lighting, and scene regression tests - Build & Tooling: update build.bat for modern MSVC toolchain, update launcher hash, and refresh shipping binaries
205 lines
7.6 KiB
PHP
205 lines
7.6 KiB
PHP
MODE_SCRATCH equ 22
|
|
INTERACT_SCRATCH equ 25
|
|
SCR_X equ 144
|
|
SCR_Y equ 174
|
|
SCR_W equ 104
|
|
SCR_H equ 42
|
|
SCR_DX equ 124
|
|
SCR_DY equ 50
|
|
SCR_AREA equ SCR_W*SCR_H
|
|
SCR_REVEAL equ SCR_AREA*72/100
|
|
SCR_MASK_AREA equ 240*120
|
|
SCR_PORTRAIT_STRIDE equ 128*96
|
|
SCR_DUST_COUNT equ 64
|
|
ScratchStartDeal3D PROTO
|
|
ScratchStartPayout3D PROTO
|
|
ScratchTickVisuals3D PROTO
|
|
ScratchSpawnDust3D PROTO
|
|
ScratchDrawDust3D PROTO
|
|
ScratchSaveBackdrop3D PROTO
|
|
ScratchDrawDelivery3D PROTO
|
|
ScratchDrawPayout3D PROTO
|
|
ScratchEase3D PROTO :DWORD,:DWORD
|
|
PlayCasinoSound3D PROTO :DWORD,:DWORD,:DWORD
|
|
ScratchConfigurePortrait3D PROTO
|
|
ScratchBuildPortrait3D PROTO
|
|
ScratchPortraitPayout3D PROTO
|
|
ScratchPortraitView3D PROTO
|
|
ScratchPortraitField3D PROTO :DWORD
|
|
ScratchPortraitBounds3D PROTO :DWORD
|
|
ScratchPortraitHit3D PROTO :DWORD,:DWORD
|
|
ScratchErasePortrait3D PROTO :DWORD,:DWORD
|
|
ScratchPortraitLayers3D PROTO :DWORD
|
|
RenderScratchPortrait3D PROTO
|
|
ScratchPortraitInfo3D PROTO
|
|
ScratchToggleZoom3D PROTO
|
|
ScratchPortraitMapBase3D PROTO
|
|
ScratchPortraitText3D PROTO :DWORD
|
|
HandleScratchCatalog3D PROTO
|
|
RenderScratchCatalog3D PROTO
|
|
RenderScratchNet3D PROTO
|
|
ScratchConfigure3D PROTO
|
|
ScratchSelectType3D PROTO :DWORD
|
|
ScratchBuildVariant3D PROTO
|
|
ScratchDrawContent3D PROTO :DWORD,:DWORD,:DWORD
|
|
LoadScratchArt3D PROTO
|
|
FreeScratchArt3D PROTO
|
|
BeginScratch3D PROTO
|
|
LeaveScratch3D PROTO
|
|
BuyScratch3D PROTO
|
|
FinishScratch3D PROTO
|
|
SettleScratchOnQuit3D PROTO
|
|
HandleScratch3D PROTO
|
|
RenderScratch3D PROTO
|
|
ScratchCancelStroke3D PROTO
|
|
ScratchMouseEvent3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
ScratchStamp3D PROTO :DWORD,:DWORD
|
|
ScratchErasePixel3D PROTO :DWORD,:DWORD
|
|
ScratchStroke3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
ScratchApplyPointer3D PROTO
|
|
ScratchCellOrigin3D PROTO :DWORD
|
|
ScratchCanWalk3D PROTO :DWORD,:DWORD
|
|
SetCapture PROTO :DWORD
|
|
ReleaseCapture PROTO
|
|
SetCursor PROTO :DWORD
|
|
.data
|
|
scrTicketArt3D AnimPack3D <>
|
|
scrTableArt3D AnimPack3D <>
|
|
scrCoinArt3D AnimPack3D <>
|
|
scrFoilArt3D AnimPack3D <>
|
|
scrSymbolsArt3D AnimPack3D <>
|
|
scrCounterArt3D AnimPack3D <>
|
|
scrPortraitArt3D AnimPack3D <>
|
|
scrPortraitMap3D AnimPack3D <>
|
|
scrPayoutArt3D AnimPack3D <>
|
|
scrPayoutPath3D db "assets\animations\scratch\payout-chips-v1.bin",0
|
|
scrScrapeSound3D db "assets\audio\generated\scratch-scrape.wav",0
|
|
scrPaperSound3D db "assets\audio\generated\scratch-paper.wav",0
|
|
scrPayoutSound3D db "assets\audio\generated\scratch-payout.wav",0
|
|
scrDealMs3D dd 0
|
|
scrPayoutMs3D dd 0
|
|
scrScrapeCooldown3D dd 0
|
|
scrDustStep3D dd 0
|
|
scrVisualSeed3D dd 713
|
|
scrTicketPath3D db "assets\animations\scratch\ticket-v1.bin",0
|
|
scrTablePath3D db "assets\animations\scratch\table-v1.bin",0
|
|
scrCoinPath3D db "assets\animations\scratch\coin-edge-v1.bin",0
|
|
scrFoilPath3D db "assets\animations\scratch\foil-v1.bin",0
|
|
scrCounterPath3D db "assets\animations\scratch\counter-v1.bin",0
|
|
scrPortraitPath3D db "assets\animations\scratch\portraits-v3.bin",0
|
|
scrPortraitMapPath3D db "assets\animations\scratch\portrait-fields-v3.bin",0
|
|
scrStation3D CityProp3D <29*FP_1,7*FP_1+FP_HALF,FP_1*8/5,FP_1*7/5,0,OFFSET scrCounterArt3D>
|
|
scrReady3D dd 0
|
|
scrState3D dd 0
|
|
scrType3D dd 0
|
|
scrCellCount3D dd 9
|
|
scrCellW3D dd SCR_W
|
|
scrCellH3D dd SCR_H
|
|
scrCellArea3D dd SCR_AREA
|
|
scrRevealAt3D dd SCR_REVEAL
|
|
scrPriceIndex3D dd 0
|
|
scrStake3D dd 0
|
|
scrGross3D dd 0
|
|
scrPrizeSymbol3D dd -1
|
|
scrOpened3D dd 0
|
|
scrError3D dd 0
|
|
scrPrices3D dd 50,200,500
|
|
scrMultipliers3D dd 1,1,2,3,5,10,25
|
|
scrCutoffs3D dd 700,800,910,960,985,997,1000
|
|
scrGrid3D dd 24 dup(0)
|
|
scrCellPrizes3D dd 24 dup(0)
|
|
scrBag3D dd 60 dup(0)
|
|
scrCounts3D dd 24 dup(0)
|
|
scrRevealed3D dd 24 dup(0)
|
|
scrMask3D db 9*SCR_MASK_AREA dup(0)
|
|
scrPortraitMask3D db 24*SCR_PORTRAIT_STRIDE dup(0)
|
|
scrPortraitAreas3D dd 24 dup(0)
|
|
scrAwards3D dd 24 dup(0)
|
|
scrZoom3D dd 0
|
|
scrCatalog3D dd 0
|
|
scrCatalogLocked3D dd 0
|
|
scrClickX3D dd 0
|
|
scrClickY3D dd 0
|
|
scrHitX3D dd 0
|
|
scrHitY3D dd 0
|
|
scrPortraitWins3D dd 5
|
|
scrPortraitOutcome3D dd 0
|
|
scrViewX3D dd 194
|
|
scrViewY3D dd 46
|
|
scrViewW3D dd 252
|
|
scrViewH3D dd 336
|
|
scrZoomIn3D db "+",0
|
|
scrZoomOut3D db "-",0
|
|
scrDouble3D db "x2",0
|
|
scrTen3D db "x10",0
|
|
scrHeld3D dd 0
|
|
scrClick3D dd 0
|
|
scrPointerValid3D dd 0
|
|
scrPointerX3D dd 320
|
|
scrPointerY3D dd 240
|
|
scrLastValid3D dd 0
|
|
scrLastX3D dd 0
|
|
scrLastY3D dd 0
|
|
scrNewPixels3D dd 0
|
|
scrDustIndex3D dd 0
|
|
scrDustX3D dd SCR_DUST_COUNT dup(0)
|
|
scrDustY3D dd SCR_DUST_COUNT dup(0)
|
|
scrDustLife3D dd SCR_DUST_COUNT dup(0)
|
|
scrDustVX3D dd SCR_DUST_COUNT dup(0)
|
|
scrDustVY3D dd SCR_DUST_COUNT dup(0)
|
|
scrDustFloor3D dd SCR_DUST_COUNT dup(0)
|
|
scrDustInk3D dd 00D8DCD8h,00868D89h,00B7BDB8h,00EEECE3h
|
|
scratchTitle3D db 203,206,210,197,208,197,223,0
|
|
scratchGame3D db 199,206,203,206,210,192,223,32,210,208,206,201,202,192,0
|
|
scratchBuy3D db 202,211,207,200,210,220,0
|
|
scratchNext3D db 205,206,194,219,201,0
|
|
scratchPrice3D db 214,197,205,192,0
|
|
scratchWin3D db 207,208,200,199,0
|
|
scratchLose3D db 193,197,199,32,194,219,200,195,208,219,216,192,0
|
|
scratchWait3D db 206,210,202,208,219,210,206,0
|
|
scratchPoor3D db 204,192,203,206,32,212,200,216,197,202,0
|
|
scratchMissing3D db 205,197,210,32,209,207,208,192,201,210,206,194,0
|
|
scratchHall3D db 69,58,32,203,206,210,197,208,197,201,205,219,197,32,193,200,203,197,210,219,0
|
|
scratchRule3D db 51,32,206,196,200,205,192,202,206,194,219,213,32,61,32,207,208,200,199,0
|
|
scratchActive3D db 193,200,203,197,210,0
|
|
scrTimes3D db "x",0
|
|
scrPrev3D db "<",0
|
|
scrNext3D db ">",0
|
|
scratchNumbers3D db 209,215,192,209,210,203,200,194,219,197,32,215,200,209,203,192,0
|
|
scratchRows3D db 210,208,200,32,194,32,208,223,196,0
|
|
scratchInstant3D db 204,200,195,32,211,196,192,215,200,0
|
|
scratchNumberRule3D db 209,206,194,207,192,196,197,205,200,197,32,61,32,207,208,200,199,32,207,206,196,32,215,200,209,203,206,204,0
|
|
scratchRowRule3D db 51,32,206,196,200,205,192,202,206,194,219,213,32,194,32,206,196,205,206,204,32,208,223,196,211,0
|
|
scratchInstantRule3D db 207,208,200,199,32,211,202,192,199,192,205,32,207,206,196,32,199,192,217,200,210,206,201,0
|
|
scratchLucky3D db 194,219,200,195,208,219,216,205,219,197,32,215,200,209,203,192,0
|
|
scratchYours3D db 194,192,216,200,32,215,200,209,203,192,0
|
|
scratchAmount3D db 194,192,216,32,207,208,200,199,0
|
|
scratchNeon3D db 205,197,206,205,206,194,192,223,32,211,196,192,215,192,0
|
|
scratchRuby3D db 208,211,193,200,205,206,194,219,201,32,196,198,197,202,207,206,210,0
|
|
scratchSea3D db 194,206,203,205,192,32,209,206,202,208,206,194,200,217,0
|
|
scratchBonusRule3D db 215,200,209,203,206,32,200,203,200,32,193,206,205,211,209,32,61,32,207,208,200,199,0
|
|
scratchMatch3D db 209,206,194,207,192,196,197,205,200,197,58,32,207,208,200,199,0
|
|
scratchNeonDouble3D db 120,50,58,32,196,194,206,201,205,206,201,32,207,208,200,199,0
|
|
scratchNeonTen3D db 120,49,48,58,32,207,208,200,199,32,120,49,48,0
|
|
scratchRubyDouble3D db 120,50,58,32,196,194,206,201,205,206,201,32,207,208,200,199,0
|
|
scratchRubyAll3D db 194,209,197,58,32,194,209,197,32,207,208,200,199,219,0
|
|
scratchSeaDouble3D db 120,50,58,32,196,194,206,201,205,206,201,32,207,208,200,199,0
|
|
scratchSeaAll3D db 194,209,197,58,32,194,209,197,32,207,208,200,199,219,0
|
|
scratchAll3D db 194,209,197,0
|
|
scratchField3D db 207,206,203,197,0
|
|
scratchKind3D db 194,200,196,32,193,200,203,197,210,192,0
|
|
scratchCost3D db 214,197,205,192,32,193,200,203,197,210,192,0
|
|
scratchPayout3D db 194,219,207,203,192,210,192,0
|
|
scratchNet3D db 215,200,209,210,219,201,32,200,210,206,195,0
|
|
scratchPending3D db 193,200,203,197,210,32,205,197,32,206,210,202,208,219,210,0
|
|
scrEquals3D db "=",0
|
|
scrNames3D dd OFFSET scratchGame3D,OFFSET scratchNumbers3D,OFFSET scratchRows3D,OFFSET scratchInstant3D
|
|
dd OFFSET scratchNeon3D,OFFSET scratchRuby3D,OFFSET scratchSea3D
|
|
scrRules3D dd OFFSET scratchRule3D,OFFSET scratchNumberRule3D,OFFSET scratchRowRule3D,OFFSET scratchInstantRule3D
|
|
dd 3 dup(OFFSET scratchBonusRule3D)
|
|
scrPaperLayerPack3D AnimPack3D <314D4E41h,640,480,1,640*480*4,OFFSET scrPaperLayer3D>
|
|
.data?
|
|
scrBackdrop3D dd 640*480 dup(?)
|
|
scrPaperLayer3D dd 640*480 dup(?)
|
|
.code
|
|
include src_graphics/scratch_portrait_fields.inc
|