Add native assembly scenes and assets for Slots (777), Coin flip, and European Roulette; add 3D hall furniture packs and prompts; improve Russian UI strings in CP1251; update launcher hash and rebuild shipping binaries.
45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
# Native coin table
|
|
|
|
Coin toss now stays inside the graphical MASM executable. Its first-person
|
|
table, two readable coin faces and sixteen hand poses are separate packed assets.
|
|
The dealer is a static background character, not an animated rig.
|
|
|
|
## Controls and settlement
|
|
|
|
- Choose heads/tails with the buttons or 1/2.
|
|
- Change the stake with +/- buttons or W/S and Up/Down (50 through 5000).
|
|
- Start with TOSS, Space or Enter. The stake is debited once at this point.
|
|
- A winning flip returns twice the stake, including the original stake.
|
|
- The result stays visible until AGAIN, Space or Enter returns to selection.
|
|
- EXIT or Escape during a paid toss queues departure until settlement.
|
|
- Missing art blocks paid play, and insufficient funds never reduce the stake automatically.
|
|
|
|
Progress is saved through the existing native profile path on debit and settlement.
|
|
This is the current local save model, not a crash-recovery journal for unfinished bets.
|
|
|
|
## Animation
|
|
|
|
The 1700 ms timeline has a 300 ms thumb preparation, a 720 ms ballistic flight,
|
|
two small landing bounces and a final resting pose. In the first five poses the
|
|
coin and supporting fingers are one sprite, aligned to the launch point (414,266).
|
|
There is no separate, floating coin layer before release. Airborne rotation has
|
|
constant angular speed, rather than slowing into a hover. Rotation ends on the
|
|
actual chosen result. Position, face, squash, withdrawal and shadow are derived from
|
|
elapsed milliseconds rather than frame counts. Rendering does not consume RNG
|
|
or alter the wager/outcome. This is an authored toss animation, not rigid-body physics.
|
|
|
|
## Assets and checks
|
|
|
|
Source images and complete built-in image-generation prompts:
|
|
`assets/sprites/coin/{table,faces}-v1.png`, `hands-v2.png`,
|
|
`prompts-v1.json` and `prompts-v2.json`.
|
|
The offline Python packer is `tools/generators/pack_coin_assets.py`;
|
|
the game loads only ANM1 packs from `assets/animations/coin/`.
|
|
No Python or C/C++ runtime was added.
|
|
|
|
Native assertions live in `tools/tests/coin_test.inc` and run inside the real
|
|
assembly action-test executable. The checker `tools/tests/check_coin_scene.py`
|
|
validates assets and captured framebuffers, with optional tested/shipping COFF parity.
|
|
The launch-path asset probe also loads these packs from the root and from an
|
|
unrelated working directory. Run those checks after building; this document does
|
|
not itself certify a particular build.
|