diff --git a/ROADMAP.md b/ROADMAP.md index d5040b6..029a633 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -23,15 +23,18 @@ - Performance stress test with 1000+ entities #### 2. TCOD Integration Sprint -- [ ] **UIGrid TCOD Integration** (8 hours) - - Add TCODMap* to UIGrid constructor - - Implement mcrfpy.libtcod.compute_fov() - - Add batch operations for NumPy-style access - - Create CellView for ergonomic .at((x,y)) access -- [ ] **UIEntity Pathfinding** (4 hours) - - Add path_to(target) method using A* - - Implement Dijkstra maps for multiple targets - - Cache paths in UIEntity for performance +- [x] **UIGrid TCOD Integration** (8 hours) ✅ COMPLETED! + - ✅ Add TCODMap* to UIGrid constructor with proper lifecycle + - ✅ Implement complete Dijkstra pathfinding system + - ✅ Create mcrfpy.libtcod submodule with Python bindings + - ✅ Fix critical PyArg bug preventing Color object assignments + - [ ] Implement mcrfpy.libtcod.compute_fov() (still needed for tutorial) + - [ ] Add batch operations for NumPy-style access + - [ ] Create CellView for ergonomic .at((x,y)) access +- [~] **UIEntity Pathfinding** (4 hours) - 50% COMPLETE + - ✅ Implement Dijkstra maps for multiple targets in UIGrid + - [ ] Add path_to(target) method using A* to UIEntity + - [ ] Cache paths in UIEntity for performance #### 3. Performance Critical Path - [ ] **Implement SpatialHash** for 10,000+ entities (2 hours) @@ -121,6 +124,22 @@ entity.can_see(other_entity) # FOV check ## Recent Achievements +### 2025-07-09: Dijkstra Pathfinding & Critical Bug Fix! 🗺️ +**TCOD Integration Sprint - Major Progress** +- ✅ Complete Dijkstra pathfinding implementation in UIGrid + - compute_dijkstra(), get_dijkstra_distance(), get_dijkstra_path() methods + - Full TCODMap and TCODDijkstra integration with proper memory management + - Comprehensive test suite with both headless and interactive demos +- ✅ **CRITICAL FIX**: PyArg bug in UIGridPoint color setter + - Now supports both mcrfpy.Color objects and (r,g,b,a) tuples + - Eliminated mysterious "SystemError: new style getargs format" crashes + - Proper error handling and exception propagation +- ✅ mcrfpy.libtcod submodule with Python bindings + - dijkstra_compute(), dijkstra_get_distance(), dijkstra_get_path() + - line() function for corridor generation + - Foundation ready for FOV implementation +- ✅ Test consolidation: 6 broken demos → 2 clean, working versions + ### 2025-07-08: PyArgHelpers Infrastructure Complete! 🔧 **Standardized Python API Argument Parsing** - Unified position handling: (x, y) tuples or separate x, y args