diff --git a/xbox/live/oskiewar.js b/xbox/live/oskiewar.js index 89bf22e912..05dc67616a 100644 --- a/xbox/live/oskiewar.js +++ b/xbox/live/oskiewar.js @@ -102,7 +102,7 @@ if (hostAnalytics) const hostAc = typeof ac === "function" ? ac : null; // Monotonic count of committed revisions to this piece (next revision included). -const buildVersion = 181; +const buildVersion = 182; const floorY = 1800; // Oskiewar now opens as a versus game. An ordinary web visit hosts a room — // the URL becomes the invitation — and until a friend opens it, all you can @@ -19093,23 +19093,30 @@ function drawPoolGeometry() { }; const xs=cuts(gridLeft,gridLeft+gridWidth,'x','hx'),zs=cuts(worldNear,worldFar,'z','hz'); const groundPoint=(x,z)=>({x,y:parkGroundAt(x,z),z}); - for(let i=1;iMath.abs(x-h.x){if(flatFrom===null)return;worldQuad(groundPoint(flatFrom,zs[j-1]),groundPoint(right,zs[j-1]),groundPoint(right,zs[j]),groundPoint(flatFrom,zs[j]),ground);flatFrom=null;}; + for(let i=1;iMath.abs(x-h.x)p.y===parkDeckY)){flatFrom??=xs[i-1];continue;} + flush(xs[i-1]);worldQuad(...points,ground); + } + flush(xs.at(-1)); } for(const bowl of parkPools){ const ring=radius=>{ const raw=[]; - for(let corner=0;corner<4;corner++)for(let i=0;i<=12;i++){ - const a=(corner+i/12)*Math.PI/2,sx=corner===0||corner===3?1:-1,sz=corner<2?1:-1; + for(let corner=0;corner<4;corner++)for(let i=0;i<=8;i++){ + const a=(corner+i/8)*Math.PI/2,sx=corner===0||corner===3?1:-1,sz=corner<2?1:-1; raw.push({x:bowl.x+sx*bowl.halfX+Math.cos(a)*radius,z:bowl.z+sz*bowl.halfZ+Math.sin(a)*radius}); } const result=[]; for(let i=0;i { const g=game(),a=g.api; const mesh=a.poolMesh(),bowlFaces=mesh.faces.filter(f=>f.ids.some(i=>mesh.vertices[i].y>a.parkDeckY+.1)); - assert.ok(bowlFaces.length>3000);assert.deepEqual([...new Set(bowlFaces.map(f=>f.color.join(',')))],['172,212,211']); + assert.ok(bowlFaces.length>1500);assert.deepEqual([...new Set(bowlFaces.map(f=>f.color.join(',')))],['172,212,211']); for(let i=0;i<120;i++)g.tick(); assert.ok(a.cameraDoll.position.y>1100,'lens is lower than the old overhead view'); assert.ok(a.cameraDoll.position.y