KAZIK/src_graphics/scratch_data.inc
Игорь Федосеев ca62db53e9 feat: implement native billiards, scratch tickets, first-person dice, and city wake scene
- 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
2026-10-16 12:37:40 +03:00

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