9.1 KiB
Extensive Verification Audit Report
Date: 2025-11-28
This report documents ALL remaining TODOs, stubs, placeholders, and incomplete implementations in the Playerbot module after remediation efforts.
Summary Statistics
| Category | Count | Notes |
|---|---|---|
| TODO comments in .cpp files | 37 | Across 20 files (excluding deps/) |
| TODO comments in .h files | 75 | Mostly in deps/ (tbb, phmap) |
| Placeholder patterns | 34 | Across 20 files |
| Stub patterns | 28 | Across 17 files |
| "For now" patterns | 20+ | Design decisions, not incomplete code |
CRITICAL Priority (Blocking Functionality)
None Found
All CRITICAL issues from the previous audit have been resolved.
HIGH Priority (Functional Gaps)
1. EnhancedBotAI.cpp - Looting Logic Not Implemented
File: AI/EnhancedBotAI.cpp:756
// TODO: Implement looting logic
return false;
Impact: Bots cannot loot corpses Recommendation: Implement using TrinityCore's Loot APIs
2. BotLifecycleManager.cpp - BotAI Accessor Missing
File: Lifecycle/BotLifecycleManager.cpp:411
return nullptr; // TODO: Implement when BotAI accessor is available on Player
Impact: Cannot retrieve BotAI from Player pointer Recommendation: Add accessor method to Player or use session-based lookup
3. RaidOrchestrator.cpp - GroupCoordinator Redesign Needed
Files: AI/Coordination/RaidOrchestrator.cpp:68,75,102,264
// TODO: Redesign - GroupCoordinator is now per-bot, not per-group
Impact: Raid coordination may not function correctly Recommendation: Redesign to work with per-bot GroupCoordinator pattern
4. RoleCoordinator.cpp - BotSession Method Missing
File: AI/Coordination/RoleCoordinator.cpp:78
// TODO: BotSession::GetBotAI() method needs implementation
Impact: Role coordination cannot access bot AI Recommendation: Add GetBotAI() to BotSession class
MEDIUM Priority (Partial Implementations)
5. TargetManager.cpp - Multiple TODOs
File: AI/Combat/TargetManager.cpp
- Line 215:
// TODO: Detect tank role properly - Line 266:
info.damageDealt = 0.0f; // TODO: Get from metrics - Line 267:
info.timeSinceLastSwitch = 0; // TODO: Track switch history - Line 322:
// TODO: Check spec for healer role - Line 330:
// TODO: Implement NPC healer detection - Line 392:
// TODO: Implement damage tracking from combat metricsImpact: Target prioritization may not be optimal Recommendation: Integrate with spec detection and combat metrics
6. DefensiveManager.cpp - Role-Based Thresholds
File: AI/Combat/DefensiveManager.cpp
- Line 149:
// TODO: Adjust based on role (tank = 80%, healer = 70%, DPS = 50%) - Line 288:
// TODO: Implement comprehensive defensive aura detection - Line 304:
// TODO: Implement damage tracking from combat metricsImpact: Defensive abilities may trigger incorrectly Recommendation: Add role-based defensive thresholds
7. UnifiedMovementCoordinator.cpp - Multiple PositionManager TODOs
File: Movement/UnifiedMovementCoordinator.cpp
- Line 498:
// TODO: Implement ResetStatistics in PathfindingAdapter - Line 1372:
// TODO: Implement IsWalkable in PositionManager - Line 1394:
// TODO: Fix parameter type mismatch - PositionManager expects ThreatRole - Line 1421:
// TODO: Implement SetWeights in PositionManager - Line 1427:
// TODO: Implement GetWeights in PositionManager - Line 1444:
// TODO: Implement GetMetrics in PositionManager - Line 1451:
// TODO: Implement ResetMetrics in PositionManagerImpact: Advanced positioning features unavailable Recommendation: Implement PositionManager API methods
8. CrowdControlManager.cpp - CC Spell Detection
File: AI/Combat/CrowdControlManager.cpp
- Line 206:
// TODO: Check if member has CC available - Line 362:
// TODO: Implement class-specific CC spell detectionImpact: CC coordination may miss abilities Recommendation: Create CC spell database per class
9. AdaptiveBehaviorManager.cpp - DecisionFusionSystem Integration
File: AI/Combat/AdaptiveBehaviorManager.cpp:1199-1200
// TODO: DecisionVote and DecisionSource not fully defined (only forward-declared)
// TODO: Implement when DecisionFusionSystem.h provides full definitions
Impact: Advanced decision fusion unavailable Recommendation: Complete DecisionFusionSystem implementation
10. EnhancedBotAI.cpp - Snapshot Conversion
File: AI/EnhancedBotAI.cpp:470,511
// TODO: Implement safe conversion from snapshot to Player*
Impact: Group member iteration may miss some logic Recommendation: Add safe conversion with validation
LOW Priority (Enhancements)
11. BotAI.cpp - Social Interactions
File: AI/BotAI.cpp:921
// TODO: Add social interactions (chat, emotes) when implemented
12. ThreatAssistant.cpp - Enhancements
File: AI/Services/ThreatAssistant.cpp:347,377
- Add more sophisticated danger assessment
- Integrate with proper role detection system
13. UtilityContextBuilder.h - Manager Integrations
File: AI/Utility/UtilityContextBuilder.h:103,203
- Integrate with ThreatManager when available
- Integrate with CombatStateManager to track combat start time
14. CombatEvaluators.h - Debuff Detection
File: AI/Utility/Evaluators/CombatEvaluators.h:233
// TODO: Implement debuff detection via blackboard
15. ClassAI.cpp - CooldownManager API
File: AI/ClassAI/ClassAI.cpp:916
// TODO: CooldownManager::StartCooldown doesn't exist, use Trigger() if cooldown is pre-registered
16. DruidAI.cpp - Spec-Specific Buffs
File: AI/ClassAI/Druids/DruidAI.cpp:1262
// TODO: Add spec-specific buff logic here if needed
17. PaladinAI.cpp - Tank Detection
File: AI/ClassAI/Paladins/PaladinAI.cpp:1049
// TODO: Check if member is tank
PHASE 6 Deferred Items (By Design)
18. PlayerbotEventScripts.cpp - AuctionHouse Scripts
File: scripts/PlayerbotEventScripts.cpp:54,986,1070
// TODO Phase 6: Re-enable when AuctionHouseScript hooks are available in TrinityCore
Status: Waiting on TrinityCore upstream support
19. PlayerbotEventScripts.cpp - PvP/Creature Kill Tracking
File: scripts/PlayerbotEventScripts.cpp:148,156
// TODO Phase 6: Implement PvP kill tracking
// TODO Phase 6: Implement creature kill tracking
Status: Deferred to Phase 6 development
Dependencies (Third-Party Libraries)
The following TODOs/FIXMEs are in third-party dependencies and should NOT be modified:
| Library | Files | Count |
|---|---|---|
| TBB (Threading Building Blocks) | deps/tbb/* | ~50+ |
| PHMAP (Parallel Hashmap) | deps/phmap/* | ~20+ |
These are upstream library issues and will be resolved by library updates.
Test Files (Acceptable)
The following TODOs in test files are acceptable as they track test improvements:
Tests/ComprehensiveIntegrationTest.cpp- GroupCoordinator test updatesTests/Phase3/Unit/Specializations/*Test.cpp- Mock improvements
Placeholder Patterns (Design Decisions)
Many "placeholder" patterns are actually intentional design patterns:
- Base class virtual methods - Return default values by design
- Template specializations - Provide base implementations
- Configuration defaults - Use placeholder values until configured
- Timestamp placeholders - Use current time when actual time unknown
These are NOT incomplete implementations.
"For Now" Patterns (Acceptable)
Many "For now" comments are design decisions, not incomplete code:
- BotAccountMgr.cpp - Uses legacyAccountId (acceptable approach)
- GroupCoordinator.cpp - Each bot creates own instance (by design)
- TacticalCoordinator.cpp - Keep targets on combat end (intentional)
- BankingManager.cpp - Simpler creature iteration approach (functional)
Recommendations
Immediate Action Required (HIGH):
- Implement
EnhancedBotAI::LootNearbyCorpses()- blocks looting - Implement
BotSession::GetBotAI()method - blocks role coordination - Redesign RaidOrchestrator for per-bot GroupCoordinator pattern
Short-Term (MEDIUM):
- Complete TargetManager role detection integration
- Implement DefensiveManager role-based thresholds
- Complete PositionManager API methods in UnifiedMovementCoordinator
- Add class-specific CC spell detection
Long-Term (LOW):
- Add social interactions (chat, emotes)
- Enhance ThreatAssistant danger assessment
- Complete DecisionFusionSystem
Deferred (PHASE 6):
- AuctionHouse script integration (pending TrinityCore support)
- PvP/Creature kill tracking
Conclusion
The codebase is in good shape after the remediation efforts. The remaining TODOs fall into these categories:
- ~5 HIGH priority items that affect core functionality
- ~15 MEDIUM priority items that are partial implementations
- ~10 LOW priority items that are enhancements
- ~5 PHASE 6 items intentionally deferred
- ~70+ items in deps/ that are third-party library issues
The HIGH priority items should be addressed in the next development cycle.