Go to file
John McCardle 18cfe93a44 Fix --exec interactive prompt bug and create comprehensive test suite
Major fixes:
- Fixed --exec entering Python REPL instead of game loop
- Resolved screenshot transparency issue (requires timer callbacks)
- Added debug output to trace Python initialization

Test suite created:
- 13 comprehensive tests covering all Python-exposed methods
- Tests use timer callback pattern for proper game loop interaction
- Discovered multiple critical bugs and missing features

Critical bugs found:
- Grid class segfaults on instantiation (blocks all Grid functionality)
- Issue #78 confirmed: Middle mouse click sends 'C' keyboard event
- Entity property setters have argument parsing errors
- Sprite texture setter returns improper error
- keypressScene() segfaults on non-callable arguments

Documentation updates:
- Updated CLAUDE.md with testing guidelines and TDD practices
- Created test reports documenting all findings
- Updated ROADMAP.md with test results and new priorities

The Grid segfault is now the highest priority as it blocks all Grid-based functionality.
2025-07-03 19:25:49 -04:00
assets Whoops, never commited the UI icons spritesheet 2025-03-08 20:33:55 -05:00
deps/platform Windows build 2024-02-25 15:38:38 -05:00
modules Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
src Fix --exec interactive prompt bug and create comprehensive test suite 2025-07-03 19:25:49 -04:00
tests Fix --exec interactive prompt bug and create comprehensive test suite 2025-07-03 19:25:49 -04:00
.gitignore Prep: Cleanup for interpreter mode 2025-07-03 09:42:46 -04:00
.gitmodules Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
CLAUDE.md Fix --exec interactive prompt bug and create comprehensive test suite 2025-07-03 19:25:49 -04:00
CMakeLists.txt Iterators, other Python C API improvements 2025-05-31 09:11:51 -04:00
GNUmakefile Python command emulation 2025-07-03 10:46:21 -04:00
LICENSE.md Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
README.md Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
ROADMAP.md Fix --exec interactive prompt bug and create comprehensive test suite 2025-07-03 19:25:49 -04:00
automation_example.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
automation_exec_examples.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
build.sh Python command emulation 2025-07-03 10:46:21 -04:00
clean.sh Python command emulation 2025-07-03 10:46:21 -04:00
compile_commands.json Prep: Cleanup for interpreter mode 2025-07-03 09:42:46 -04:00
css_colors.txt Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00
example_automation.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
example_config.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
example_monitoring.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
exec_flag_implementation.cpp Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
generate_color_table.py Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00
gitea_issues.py Prep: Cleanup for interpreter mode 2025-07-03 09:42:46 -04:00
wikicrayons_colors.txt Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00
xkcd_colors.txt Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00

README.md

McRogueFace - 2D Game Engine

An experimental prototype game engine built for my own use in 7DRL 2023.

Blame my wife for the name

Tenets:

  • C++ first, Python close behind.
  • Entity-Component system based on David Churchill's Memorial University COMP4300 course lectures available on Youtube.
  • Graphics, particles and shaders provided by SFML.
  • Pathfinding, noise generation, and other Roguelike goodness provided by TCOD.

Why?

I did the r/RoguelikeDev TCOD tutorial in Python. I loved it, but I did not want to be limited to ASCII. I want to be able to draw pixels on top of my tiles (like lines or circles) and eventually incorporate even more polish.

To-do

  • Initial Commit
  • Integrate scene, action, entity, component system from COMP4300 engine
  • Windows / Visual Studio project
  • Draw Sprites
  • Play Sounds
  • Draw UI, spawn entity from Python code
  • Python AI for entities (NPCs on set paths, enemies towards player)
  • Walking / Collision
  • "Boards" (stairs / doors / walk off edge of screen)
  • Cutscenes - interrupt normal controls, text scroll, character portraits
  • Mouse integration - tooltips, zoom, click to select targets, cursors