MODE_POOL equ 16 POOL_AIM equ 0 POOL_STRIKE equ 1 POOL_MOVING equ 2 POOL_HAND equ 3 POOL_RESULT equ 4 POOL_RADIUS equ 5*FP_1 InitPool3D PROTO HandlePool3D PROTO RenderPool3D PROTO PoolStep3D PROTO PoolCollide3D PROTO :DWORD,:DWORD PoolShoot3D PROTO PoolFinishShot3D PROTO PoolPlaceCue3D PROTO :DWORD,:DWORD .data poolX3D dd 16 dup(0) poolY3D dd 16 dup(0) poolVX3D dd 16 dup(0) poolVY3D dd 16 dup(0) poolActive3D dd 16 dup(1) poolPocket3D dd 16 dup(-1) poolSinkTime3D dd 16 dup(0) poolColors3D dd 00F0E8D3h,00D4B524h,00304EADh,00B72B36h,006A438Ch,00DD8030h,003B9560h,00912F38h,0017191Ch,00D4B524h,00304EADh,00B72B36h,006A438Ch,00DD8030h,003B9560h,00912F38h poolRackOrder3D dd 1,9,2,3,8,10,11,4,12,5,6,13,7,14,15 poolPocketX3D dd 30*FP_1,160*FP_1,290*FP_1,30*FP_1,160*FP_1,290*FP_1 poolPocketY3D dd 50*FP_1,50*FP_1,50*FP_1,180*FP_1,180*FP_1,180*FP_1 poolJawX3D dd 42*FP_1,30*FP_1,145*FP_1,175*FP_1,290*FP_1,278*FP_1,42*FP_1,30*FP_1,145*FP_1,175*FP_1,290*FP_1,278*FP_1 poolJawY3D dd 50*FP_1,62*FP_1,58*FP_1,58*FP_1,62*FP_1,50*FP_1,180*FP_1,168*FP_1,172*FP_1,172*FP_1,168*FP_1,180*FP_1 poolState3D dd POOL_AIM poolPlayer3D dd 0 poolAI3D dd 1 poolGroups3D dd 0,0 poolWinner3D dd 0 poolFirst3D dd -1 poolRail3D dd 0 poolBreakRails3D dd 0 poolPotted3D dd 0 poolBreak3D dd 1 poolCalled3D dd 1 poolCalledPocket3D dd 0 poolAtStart3D dd 0 poolFoul3D dd 0 poolAngle3D dd 0 poolPower3D dd 30000 poolCharge3D dd 0 poolAccumulator3D dd 0 poolTime3D dd 0 poolStill3D dd 0 poolTitle3D db "8 BALL",0 poolPlayerText3D db "PLAYER",0 poolDealerText3D db "DEALER",0 poolOpenText3D db "OPEN TABLE",0 poolSolidsText3D db "SOLIDS",0 poolStripesText3D db "STRIPES",0 poolFoulText3D db "FOUL / BALL IN HAND",0 poolWinText3D db "RACK WON",0 poolShotText3D db "SHOT",0 poolRackText3D db "RERACK",0 poolPowerText3D db "POWER",0 poolPlaceText3D db "PLACE CUE BALL",0 poolMovingText3D db "ROLLING",0 poolBallText3D db "BALL",0 poolPocketText3D db "POCKET",0 poolGroupTexts3D dd OFFSET poolOpenText3D,OFFSET poolSolidsText3D,OFFSET poolStripesText3D .code