Update ROADMAP with GitHub issue numbers (#111-#125)

Added issue numbers from GitHub tracker to roadmap items:
- #111: Grid Click Events Broken in Headless
- #112: Object Splitting Bug (Python type preservation)
- #113: Batch Operations for Grid
- #114: CellView API
- #115: SpatialHash Implementation
- #116: Dirty Flag System
- #117: Memory Pool for Entities
- #118: Scene as Drawable
- #119: Animation Completion Callbacks
- #120: Animation Property Locking
- #121: Timer Object System
- #122: Parent-Child UI System
- #123: Grid Subgrid System
- #124: Grid Point Animation
- #125: GitHub Issues Automation

Also updated existing references:
- #101/#110: Constructor standardization
- #109: Vector class indexing

Note: Tutorial-specific items and Python-implementable features
(input queue, collision reservation) are not tracked as engine issues.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
John McCardle 2025-07-12 15:16:14 -04:00
parent bde82028b5
commit 9fb428dd01
1 changed files with 31 additions and 31 deletions

View File

@ -29,16 +29,16 @@
#### 3. Grid Clicking BROKEN in Headless Mode 🚨 #### 3. Grid Clicking BROKEN in Headless Mode 🚨
**MAJOR DISCOVERY**: All click events commented out! **MAJOR DISCOVERY**: All click events commented out!
- [ ] **Automation System Non-Functional**: Claude Code "didn't even try" - [ ] **#111** - Grid Click Events Broken in Headless: All click events commented out
- [ ] **Grid Click Coordinates**: Need tile coords, not just mouse coords - [ ] **Grid Click Coordinates**: Need tile coords, not just mouse coords
- [ ] **Nested Grid Support**: Clicks must work on grids within frames - [ ] **Nested Grid Support**: Clicks must work on grids within frames
- [ ] **No Error Reporting**: System claimed complete but isn't - [ ] **No Error Reporting**: System claimed complete but isn't
#### 4. Python API Consistency Crisis #### 4. Python API Consistency Crisis
**Tutorial Writing Reveals Major Issues**: **Tutorial Writing Reveals Major Issues**:
- [ ] **Inconsistent Constructors**: Each class has different requirements - [ ] **#101/#110** - Inconsistent Constructors: Each class has different requirements
- [ ] **Vector Class Broken**: No [0], [1] indexing like tuples - [ ] **#109** - Vector Class Broken: No [0], [1] indexing like tuples
- [ ] **Object Splitting Bug**: Python derived classes lose type in collections - [ ] **#112** - Object Splitting Bug: Python derived classes lose type in collections
- Shared pointer extracted, Python reference discarded - Shared pointer extracted, Python reference discarded
- Retrieved objects are base class only - Retrieved objects are base class only
- No way to cast back to derived type - No way to cast back to derived type
@ -49,21 +49,21 @@
- ✅ Create mcrfpy.libtcod submodule with Python bindings - ✅ Create mcrfpy.libtcod submodule with Python bindings
- ✅ Fix critical PyArg bug preventing Color object assignments - ✅ Fix critical PyArg bug preventing Color object assignments
- ✅ Implement FOV with perspective rendering - ✅ Implement FOV with perspective rendering
- [ ] Add batch operations for NumPy-style access (deferred) - [ ] **#113** - Add batch operations for NumPy-style access (deferred)
- [ ] Create CellView for ergonomic .at((x,y)) access (deferred) - [ ] **#114** - Create CellView for ergonomic .at((x,y)) access (deferred)
- [x] **UIEntity Pathfinding** (4 hours) ✅ COMPLETED! - [x] **UIEntity Pathfinding** (4 hours) ✅ COMPLETED!
- ✅ Implement Dijkstra maps for multiple targets in UIGrid - ✅ Implement Dijkstra maps for multiple targets in UIGrid
- ✅ Add path_to(target) method using A* to UIEntity - ✅ Add path_to(target) method using A* to UIEntity
- ✅ Cache paths in UIEntity for performance - ✅ Cache paths in UIEntity for performance
#### 3. Performance Critical Path #### 3. Performance Critical Path
- [ ] **Implement SpatialHash** for 10,000+ entities (2 hours) - [ ] **#115** - Implement SpatialHash for 10,000+ entities (2 hours)
- [ ] **Add dirty flag system** to UIGrid (1 hour) - [ ] **#116** - Add dirty flag system to UIGrid (1 hour)
- [ ] **Batch update context managers** (2 hours) - [ ] **#113** - Batch update context managers (2 hours)
- [ ] **Memory pool for entities** (2 hours) - [ ] **#117** - Memory pool for entities (2 hours)
#### 4. Bug Fixing Pipeline #### 4. Bug Fixing Pipeline
- [ ] Set up GitHub Issues automation - [ ] **#125** - Set up GitHub Issues automation
- [ ] Create test for each bug before fixing - [ ] Create test for each bug before fixing
- [ ] Track: Memory leaks, Segfaults, Python/C++ boundary errors - [ ] Track: Memory leaks, Segfaults, Python/C++ boundary errors
@ -73,32 +73,32 @@
### Object-Oriented Design Overhaul ### Object-Oriented Design Overhaul
1. **Scene System Revolution**: 1. **Scene System Revolution**:
- [ ] Make Scene derive from Drawable (scenes are drawn!) - [ ] **#118** - Make Scene derive from Drawable (scenes are drawn!)
- [ ] Give scenes position and visibility properties - [ ] Give scenes position and visibility properties
- [ ] Scene selection by visibility (auto-hide old scene) - [ ] Scene selection by visibility (auto-hide old scene)
- [ ] Replace transition system with animations - [ ] Replace transition system with animations
2. **Animation System Enhancements**: 2. **Animation System Enhancements**:
- [ ] Add proper completion callbacks (object + animation params) - [ ] **#119** - Add proper completion callbacks (object + animation params)
- [ ] Prevent property conflicts (exclusive locking) - [ ] **#120** - Prevent property conflicts (exclusive locking)
- [ ] Currently using timer sync workarounds - [ ] Currently using timer sync workarounds
3. **Timer System Improvements**: 3. **Timer System Improvements**:
- [ ] Replace string-dictionary system with objects - [ ] **#121** - Replace string-dictionary system with objects
- [ ] Add start(), stop(), pause() methods - [ ] Add start(), stop(), pause() methods
- [ ] Implement proper one-shot mode - [ ] Implement proper one-shot mode
- [ ] Pass timer object to callbacks (not just ms) - [ ] Pass timer object to callbacks (not just ms)
4. **Parent-Child UI Relationships**: 4. **Parent-Child UI Relationships**:
- [ ] Add parent field to UI drawables (like entities have) - [ ] **#122** - Add parent field to UI drawables (like entities have)
- [ ] Implement append/remove/extend with auto-parent updates - [ ] Implement append/remove/extend with auto-parent updates
- [ ] Auto-remove from old parent when adding to new - [ ] Auto-remove from old parent when adding to new
### Performance Optimizations Needed ### Performance Optimizations Needed
- [ ] **Grid Rendering**: Consider texture caching vs real-time - [ ] **Grid Rendering**: Consider texture caching vs real-time
- [ ] **Subgrid System**: Split large grids into 256x256 chunks - [ ] **#123** - Subgrid System: Split large grids into 256x256 chunks
- [ ] **Dirty Flagging**: Propagate from base class up - [ ] **#116** - Dirty Flagging: Propagate from base class up
- [ ] **Animation Features**: Tile color animation, sprite cycling - [ ] **#124** - Animation Features: Tile color animation, sprite cycling
--- ---
@ -887,33 +887,33 @@ This architecture would make McRogueFace a first-class Python citizen, following
1. **Input Queue During Animation**: Queue one additional move during animation 1. **Input Queue During Animation**: Queue one additional move during animation
2. **Destination Square Reservation**: Block target when movement begins 2. **Destination Square Reservation**: Block target when movement begins
3. **Pokemon-Style Movement**: Smooth continuous movement with input handling 3. **Pokemon-Style Movement**: Smooth continuous movement with input handling
4. **Animation Callbacks**: Add completion callbacks with parameters 4. **#119** - Animation Callbacks: Add completion callbacks with parameters
5. **Property Conflict Prevention**: Prevent multiple animations on same property 5. **#120** - Property Conflict Prevention: Prevent multiple animations on same property
6. **Remove Bare Pointers**: Complete refactoring to weak references ✅ 6. **Remove Bare Pointers**: Complete refactoring to weak references ✅
### Grid System (6 issues) ### Grid System (6 issues)
7. **Grid Click Implementation**: Fix commented-out events in headless 7. **#111** - Grid Click Implementation: Fix commented-out events in headless
8. **Tile Coordinate Conversion**: Convert mouse to tile coordinates 8. **Tile Coordinate Conversion**: Convert mouse to tile coordinates
9. **Nested Grid Support**: Enable clicking on grids within grids 9. **Nested Grid Support**: Enable clicking on grids within grids
10. **Grid Rendering Performance**: Implement 256x256 subgrid system 10. **#123** - Grid Rendering Performance: Implement 256x256 subgrid system
11. **Dirty Flagging**: Add dirty flag propagation from base 11. **#116** - Dirty Flagging: Add dirty flag propagation from base
12. **Grid Point Animation**: Enable animating individual tiles 12. **#124** - Grid Point Animation: Enable animating individual tiles
### Python API (6 issues) ### Python API (6 issues)
13. **Regenerate Python Bindings**: Create consistent interface generation 13. **Regenerate Python Bindings**: Create consistent interface generation
14. **Vector Class Enhancement**: Add [0], [1] indexing to vectors 14. **#109** - Vector Class Enhancement: Add [0], [1] indexing to vectors
15. **Fix Object Splitting**: Preserve Python derived class types 15. **#112** - Fix Object Splitting: Preserve Python derived class types
16. **Standardize Constructors**: Make all constructors consistent 16. **#101/#110** - Standardize Constructors: Make all constructors consistent
17. **Color Class Bindings**: Properly expose SFML Color class 17. **Color Class Bindings**: Properly expose SFML Color class
18. **Font Class Bindings**: Properly expose SFML Font class 18. **Font Class Bindings**: Properly expose SFML Font class
### Architecture (8 issues) ### Architecture (8 issues)
19. **Scene as Drawable**: Refactor Scene to inherit from Drawable 19. **#118** - Scene as Drawable: Refactor Scene to inherit from Drawable
20. **Scene Visibility System**: Implement exclusive visibility switching 20. **Scene Visibility System**: Implement exclusive visibility switching
21. **Replace Transition System**: Use animations not special transitions 21. **Replace Transition System**: Use animations not special transitions
22. **Parent-Child UI**: Add parent field to UI drawables 22. **#122** - Parent-Child UI: Add parent field to UI drawables
23. **Collection Methods**: Implement append/remove/extend with parent updates 23. **Collection Methods**: Implement append/remove/extend with parent updates
24. **Timer Object System**: Replace string-dictionary timers 24. **#121** - Timer Object System: Replace string-dictionary timers
25. **One-Shot Timer Mode**: Implement proper one-shot functionality 25. **One-Shot Timer Mode**: Implement proper one-shot functionality
26. **Button Mechanics**: Any entity type can trigger buttons 26. **Button Mechanics**: Any entity type can trigger buttons