fix: Resolve --exec double script execution bug

Scripts passed to --exec were executing twice because GameEngine
constructor ran scripts, and main.cpp created two GameEngine instances.

- Move exec_scripts from constructor to new executeStartupScripts() method
- Call executeStartupScripts() once after final engine setup in main.cpp
- Remove double-execution workarounds from tests
- Delete duplicate test_viewport_visual.py (flaky due to race condition)
- Fix test constructor syntax and callback signatures

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
John McCardle 2025-11-26 13:20:22 -05:00
commit ce0be78b73
9 changed files with 118 additions and 451 deletions

View file

@ -213,6 +213,7 @@ int run_python_interpreter(const McRogueFaceConfig& config, int argc, char* argv
delete engine;
engine = new GameEngine(mutable_config);
McRFPy_API::game = engine;
engine->executeStartupScripts(); // Execute --exec scripts ONCE here
engine->run();
McRFPy_API::api_shutdown();
delete engine;