This is our largest net-negative commit yet\! Removed the entire deprecated
action registration system that provided unnecessary two-step indirection:
keyboard → action string → Python callback
Removed components:
- McRFPy_API::_registerPyAction() and _registerInputAction() methods
- McRFPy_API::callbacks map for storing Python callables
- McRFPy_API::doAction() method for executing callbacks
- ACTIONPY macro from Scene.h for detecting "_py" suffixed actions
- Scene::registerActionInjected() and unregisterActionInjected() methods
- tests/api_registerPyAction_issue2_test.py (tested deprecated functionality)
The game now exclusively uses keypressScene() for keyboard input handling,
which is simpler and more direct. Also commented out the unused _camFollow
function that referenced non-existent do_camfollow variable.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
closes#4
commit 8f060dc87b
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Mar 15 22:20:03 2024 -0400
Removing std::cout debugging statements
commit c9d5251c71
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Mar 15 20:00:57 2024 -0400
In-place map modification worked
commit 0a8f67e391
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Mar 14 23:13:13 2024 -0400
Stress test is failing: By removing a timer to a function (from inside that function?) I can immediately cause a segfault.
commit 05d9f6a882
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Mar 12 22:27:12 2024 -0400
wow, good test of Key and Click Callable classes. Cleanup, squash, and merge after I give it a lookover in daylight, though.
commit 972768eb26
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Mar 12 21:02:48 2024 -0400
inital PyCallable work; isolate very well behaved usage of PyObject references behind RAII
directories needed:
* build - for cmake output
* deps - stuff needed to compile McRogueface (headers)
libtcod -> ../modules/libtcod/src/libtcod
sfml -> ../modules/SFML/include/SFML
python -> ../modules/cpython/Include
* lib - stuff needed to link McRogueFace (shared objects); also required at runtime
libtcod -> `../modules/libtcod/buildsys/autotools/.libs/libtcod.so.1.0.24`
sfml -> `../modules/SFML/build/lib/*`
python -> `../modules/cpython/libpython3.12.so`; standard lib at ../modules/cpython/build/lib.linux-x86_64-3.12 & ../modules/cpython/Lib
You can get dependencies by:
- Build from source (i.e. all submodules)
- Go download them from each project's website
- install packages from your distro and symlink them to deps/lib directories