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