Add native Durak, poker, blackjack, roulette, Buckshot and billiards scenes with animation assets and regression tests. Improve arrival, city, hall, profiles, shops, audio and exit handling; remove the portable C game core and refresh shipping executables.
1.9 KiB
1.9 KiB
Street population
The scene uses the existing generated street-life, city-props and patrons packs. No new artwork or non-assembly game runtime was introduced.
- 47 exterior objects, plus two world-geometry benches.
- All four exterior planters/bushes and five billboard benches are removed.
- The two benches face the road and run parallel to the opposite facade, in gaps between parked cars. Wooden seat/back boards, metal legs and armrests have real world positions, height, perspective and depth testing.
- Mailboxes, newspaper boxes, hydrants, bollards, parking meters and fences remain on curbs and in the entrance forecourt.
- Four independently phased walkers use both pavements. Two waiting visitors flank the entrance, away from the guards and camera path.
- Lamps have street-scale height. Props continue beyond the intersection.
- MASM measures opaque source bounds for the eight furniture frames at load time. Drawing uses the crop's own width, height and original texture pitch, so transparent padding no longer shrinks the object or lifts its feet.
- The shared loader now accepts up to 64 frames, within a 32 MiB allocation budget. The 40-frame street pack was previously rejected by a 32-frame cap. Failed loads clear the entire pack header instead of retaining a misleading nonzero frame count with a null pixel pointer.
- Pedestrian route interpolation keeps the complete 64-bit product, avoiding the previous overflow and position jumps. Gameplay randomness is untouched.
Native tests in tools/tests/street_population_test.inc check registered map
cells, absence of planter/billboard-bench registrations, a 96-second walking
cycle, actual bench pixels, six remaining sprite furniture types, all four
walkers, and seven arrival-route framebuffers.
The offline check_street_population.py only verifies these test artifacts;
it is not used by the game. The existing camera/traffic route regression and
the rest of the native game tests are retained.