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:
parent
bde82028b5
commit
9fb428dd01
62
ROADMAP.md
62
ROADMAP.md
|
@ -29,16 +29,16 @@
|
|||
|
||||
#### 3. Grid Clicking BROKEN in Headless Mode 🚨
|
||||
**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
|
||||
- [ ] **Nested Grid Support**: Clicks must work on grids within frames
|
||||
- [ ] **No Error Reporting**: System claimed complete but isn't
|
||||
|
||||
#### 4. Python API Consistency Crisis
|
||||
**Tutorial Writing Reveals Major Issues**:
|
||||
- [ ] **Inconsistent Constructors**: Each class has different requirements
|
||||
- [ ] **Vector Class Broken**: No [0], [1] indexing like tuples
|
||||
- [ ] **Object Splitting Bug**: Python derived classes lose type in collections
|
||||
- [ ] **#101/#110** - Inconsistent Constructors: Each class has different requirements
|
||||
- [ ] **#109** - Vector Class Broken: No [0], [1] indexing like tuples
|
||||
- [ ] **#112** - Object Splitting Bug: Python derived classes lose type in collections
|
||||
- Shared pointer extracted, Python reference discarded
|
||||
- Retrieved objects are base class only
|
||||
- No way to cast back to derived type
|
||||
|
@ -49,21 +49,21 @@
|
|||
- ✅ Create mcrfpy.libtcod submodule with Python bindings
|
||||
- ✅ Fix critical PyArg bug preventing Color object assignments
|
||||
- ✅ Implement FOV with perspective rendering
|
||||
- [ ] Add batch operations for NumPy-style access (deferred)
|
||||
- [ ] Create CellView for ergonomic .at((x,y)) access (deferred)
|
||||
- [ ] **#113** - Add batch operations for NumPy-style access (deferred)
|
||||
- [ ] **#114** - Create CellView for ergonomic .at((x,y)) access (deferred)
|
||||
- [x] **UIEntity Pathfinding** (4 hours) ✅ COMPLETED!
|
||||
- ✅ 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)
|
||||
- [ ] **Add dirty flag system** to UIGrid (1 hour)
|
||||
- [ ] **Batch update context managers** (2 hours)
|
||||
- [ ] **Memory pool for entities** (2 hours)
|
||||
- [ ] **#115** - Implement SpatialHash for 10,000+ entities (2 hours)
|
||||
- [ ] **#116** - Add dirty flag system to UIGrid (1 hour)
|
||||
- [ ] **#113** - Batch update context managers (2 hours)
|
||||
- [ ] **#117** - Memory pool for entities (2 hours)
|
||||
|
||||
#### 4. Bug Fixing Pipeline
|
||||
- [ ] Set up GitHub Issues automation
|
||||
- [ ] **#125** - Set up GitHub Issues automation
|
||||
- [ ] Create test for each bug before fixing
|
||||
- [ ] Track: Memory leaks, Segfaults, Python/C++ boundary errors
|
||||
|
||||
|
@ -73,32 +73,32 @@
|
|||
|
||||
### Object-Oriented Design Overhaul
|
||||
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
|
||||
- [ ] Scene selection by visibility (auto-hide old scene)
|
||||
- [ ] Replace transition system with animations
|
||||
|
||||
2. **Animation System Enhancements**:
|
||||
- [ ] Add proper completion callbacks (object + animation params)
|
||||
- [ ] Prevent property conflicts (exclusive locking)
|
||||
- [ ] **#119** - Add proper completion callbacks (object + animation params)
|
||||
- [ ] **#120** - Prevent property conflicts (exclusive locking)
|
||||
- [ ] Currently using timer sync workarounds
|
||||
|
||||
3. **Timer System Improvements**:
|
||||
- [ ] Replace string-dictionary system with objects
|
||||
- [ ] **#121** - Replace string-dictionary system with objects
|
||||
- [ ] Add start(), stop(), pause() methods
|
||||
- [ ] Implement proper one-shot mode
|
||||
- [ ] Pass timer object to callbacks (not just ms)
|
||||
|
||||
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
|
||||
- [ ] Auto-remove from old parent when adding to new
|
||||
|
||||
### Performance Optimizations Needed
|
||||
- [ ] **Grid Rendering**: Consider texture caching vs real-time
|
||||
- [ ] **Subgrid System**: Split large grids into 256x256 chunks
|
||||
- [ ] **Dirty Flagging**: Propagate from base class up
|
||||
- [ ] **Animation Features**: Tile color animation, sprite cycling
|
||||
- [ ] **#123** - Subgrid System: Split large grids into 256x256 chunks
|
||||
- [ ] **#116** - Dirty Flagging: Propagate from base class up
|
||||
- [ ] **#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
|
||||
2. **Destination Square Reservation**: Block target when movement begins
|
||||
3. **Pokemon-Style Movement**: Smooth continuous movement with input handling
|
||||
4. **Animation Callbacks**: Add completion callbacks with parameters
|
||||
5. **Property Conflict Prevention**: Prevent multiple animations on same property
|
||||
4. **#119** - Animation Callbacks: Add completion callbacks with parameters
|
||||
5. **#120** - Property Conflict Prevention: Prevent multiple animations on same property
|
||||
6. **Remove Bare Pointers**: Complete refactoring to weak references ✅
|
||||
|
||||
### 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
|
||||
9. **Nested Grid Support**: Enable clicking on grids within grids
|
||||
10. **Grid Rendering Performance**: Implement 256x256 subgrid system
|
||||
11. **Dirty Flagging**: Add dirty flag propagation from base
|
||||
12. **Grid Point Animation**: Enable animating individual tiles
|
||||
10. **#123** - Grid Rendering Performance: Implement 256x256 subgrid system
|
||||
11. **#116** - Dirty Flagging: Add dirty flag propagation from base
|
||||
12. **#124** - Grid Point Animation: Enable animating individual tiles
|
||||
|
||||
### Python API (6 issues)
|
||||
13. **Regenerate Python Bindings**: Create consistent interface generation
|
||||
14. **Vector Class Enhancement**: Add [0], [1] indexing to vectors
|
||||
15. **Fix Object Splitting**: Preserve Python derived class types
|
||||
16. **Standardize Constructors**: Make all constructors consistent
|
||||
14. **#109** - Vector Class Enhancement: Add [0], [1] indexing to vectors
|
||||
15. **#112** - Fix Object Splitting: Preserve Python derived class types
|
||||
16. **#101/#110** - Standardize Constructors: Make all constructors consistent
|
||||
17. **Color Class Bindings**: Properly expose SFML Color class
|
||||
18. **Font Class Bindings**: Properly expose SFML Font class
|
||||
|
||||
### 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
|
||||
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
|
||||
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
|
||||
26. **Button Mechanics**: Any entity type can trigger buttons
|
||||
|
||||
|
|
Loading…
Reference in New Issue