- Add --exec flag to execute multiple scripts before main program
- Scripts are executed in order and share Python interpreter state
- Implement full PyAutoGUI-compatible automation API in McRFPy_Automation
- Add screenshot, mouse control, keyboard input capabilities
- Fix Python initialization issues when multiple scripts are loaded
- Update CommandLineParser to handle --exec with proper sys.argv management
- Add comprehensive examples and documentation
This enables automation testing by allowing test scripts to run alongside
games using the same Python environment. The automation API provides
event injection into the SFML render loop for UI testing.
Closes#32 partially (Python interpreter emulation)
References automation testing requirements
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