Skip to content

Latest commit

 

History

History
141 lines (113 loc) · 9.69 KB

File metadata and controls

141 lines (113 loc) · 9.69 KB

Handoff - 2026-03-18

2026-04-05 - Native Custom Puzzle Editor Recovery

Summary

This session repaired native custom-editor drift and made the custom piece editor genuinely interactive.

What Changed

  • Replaced the stale CustomGameEditor header declaration with a correct CustomGameEditorControl declaration matching the implementation and engine references.
  • Reworked src/Puzzle/CustomGameEditor.cpp into a live native editor control backed by GameType / PieceType / Rotation data.
  • Added controls for:
    • add piece type
    • add rotation
    • clear rotation
    • previous / next piece navigation
    • previous / next rotation navigation
  • Wired the 4x4 Gwen button grid to real Rotation::blockOffsets so native users can toggle piece cells directly.
  • Added live summary labels showing current piece, rotation, total rotations, filled cells, grid size, mode, and hold/next settings.

Validation

  • Ran git diff --check specifically for:
    • src/Puzzle/CustomGameEditor.h
    • src/Puzzle/CustomGameEditor.cpp
  • No whitespace / patch-format errors were reported.

Risks / Notes

  • The native repo still contains unrelated dirty build/lib state and untracked ECS component files; this session intentionally avoided staging those.
  • A full native rebuild was not attempted in this pass because the repo is already carrying unrelated build output churn. The header/implementation mismatch fix is still valuable build-recovery work.

Additional Follow-Up - 2026-04-05

  • Added local remove-piece and remove-rotation controls to the native custom editor patch.
  • Updated the pending native docs/version to 2.0.2.
  • This native follow-up is still waiting on the existing workspace submodule lock before it can be committed.

Additional Follow-Up - 2026-04-05 (Duplication Workflow)

  • Added local duplicate-piece and duplicate-rotation controls to the native custom editor patch.
  • Updated the pending native docs/version to 2.0.3.
  • The native repo is still blocked by the existing lock, so this remains a ready-to-commit local patch.

Additional Follow-Up - 2026-04-05 (Rotation Overview)

  • Documented the next local native editor parity step as a rotation-overview / direct-rotation-navigation patch.
  • Updated the pending native docs/version to 2.0.4.
  • The native repo remains blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Advanced Rule Toggles)

  • Documented the next local native editor parity step as advanced gameplay-rule toggles to match the newly shipped web and Java editors.
  • Updated the pending native docs/version to 2.0.5.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Movement / Randomizer Toggles)

  • Documented the next local native editor parity step as next-piece / hold-piece / bag-randomizer / movement-kick toggles to match the newly shipped web and Java editors.
  • Updated the pending native docs/version to 2.0.6.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Preset Slots)

  • Documented the next local native editor parity step as quick preset save/load slots to match the newly shipped web and Java iteration workflow.
  • Updated the pending native docs/version to 2.0.7.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Preset Shortcut Buttons)

  • Documented the next local native editor parity step as one-click classic preset buttons to match the newly shipped web and Java shortcut workflow.
  • Updated the pending native docs/version to 2.0.8.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Empty Rotation Cleanup Plan)

  • Documented the next local native editor parity step as one-click empty-rotation cleanup to match the newly shipped web and Java cleanup workflow.
  • Updated the pending native docs/version to 2.0.13.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Recent Share / Import History Plan)

  • Documented the next local native editor parity step as bounded recent-history recall for imported/shared rulesets to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.14.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Center-All Helper Plan)

  • Documented the next local native editor parity step as one-click centering of every rotation in the selected piece to match the newly shipped web and Java geometry workflow.
  • Updated the pending native docs/version to 2.0.15.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Recent Action Breadcrumbs Plan)

  • Documented the next local native editor parity step as a bounded recent-action panel for meaningful editor operations to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.16.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Block Type / Color Controls Plan)

  • Documented the next local native editor parity step as focused block authoring controls and piece block override assignment to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.17.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Deeper Block Rule Editing Plan)

  • Documented the next local native editor parity step as focused second-pass block-rule controls like special colors, special chance/frequency, flashing, match-any-color, and counter behavior to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.18.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Richer Block Color Set Editing Plan)

  • Documented the next local native editor parity step as multi-color block palette authoring to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.19.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Block Gameplay Hooks Plan)

  • Documented the next local native editor parity step as reward-piece assignment plus focused chain-behavior hooks for selected blocks to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.20.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-05 (Advanced Field-Effect Toggle Plan)

  • Documented the next local native editor parity step as engine-backed field-effect toggles for gravity-ignore and field-wide color effects to match the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.21.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-06 (Template-to-Slot Shortcut Plan)

  • Documented the next local native editor parity step as direct built-in-template slot saves so the C++ editor can mirror the newly shipped web and Java workflow.
  • Updated the pending native docs/version to 2.0.26.
  • The native repo is still blocked by the same existing lock.

Additional Follow-Up - 2026-04-06 (Unified Template Library Plan)

  • Documented the next local native editor parity step as a unified template library mixing built-ins, saved slots, and import history, so the C++ editor can match the newly shipped web and Java template-ecosystem workflow.
  • Updated the pending native docs/version to 2.0.27.
  • The native repo is still blocked by the same existing lock.

Recommended Next Steps

  1. Run a focused native compile once the unrelated build-tree dirt is isolated and the lock clears.
  2. Hook saveAllToCurrentGameType() into the actual save/upload flow.
  3. Add a miniature live preview piece renderer next to the grid.
  4. Consider confirmation prompts for delete actions if native editor UX testing shows accidental removals.

Current Status - Version 1.7.0

  • Visualizer Shaders Modernization: RESOLVED SDL3 COMPATIBILITY. Restored the missing projectM submodule to okgame/lib/projectm.
  • Shader Pipeline: Modified internal C++ code generation files within the projectM source (MilkdropStaticShaders.cpp.in, CopyTexture.cpp, TransitionShaderManager.cpp, and MilkdropSprite.cpp) to inject #version 330 core rather than the deprecated #version 330. This is required by strict modern OpenGL Context Profiles, which SDL3 requests by default on modern operating systems.
  • Build System: Re-enabled the add_subdirectory(lib/projectm) and linked the library to the bobsgame executable in CMakeLists.txt.

Accomplishments

  • Addressed the SDL3 shader compilation failures that occur when legacy #version 330 headers are used in a strictly enforced Core Profile.
  • Restored the missing visualization dependencies.

Next Steps

  • Steam Integration Polish: This is the final item on the ROADMAP! The C++ client is configured and linked with the real Steamworks SDK v1.64. The application needs to be launched in an environment where the Steam Client is running to verify that the overlay attaches and achievements trigger.
  • Cross-Platform Playtest: Conduct a final real-world playtest connecting a C++, Java, and Web client to the same Node.js server.

Technical Notes

  • The .gitmodules file did not contain an entry for projectM, so it was manually added by cloning the official repository directly into okgame/lib/projectm.
  • The shader modifications had to be made directly to the libprojectM C++ source code because the shaders are compiled into the binary as static strings using CMake's @STATIC_SHADER_CONTENTS@ replacements, rather than loaded from .glsl files at runtime.