Add comprehensive wiki documentation system with auto-update functionality#2
Conversation
Co-authored-by: Krilliac <7993979+Krilliac@users.noreply.github.com>
Co-authored-by: Krilliac <7993979+Krilliac@users.noreply.github.com>
|
@copilot populate the empty .sh files, remove/drop/exclude anything and everything in the build folder, add everything to gitignore for the build folder and everything in it |
Co-authored-by: Krilliac <7993979+Krilliac@users.noreply.github.com>
Done! The shell scripts were already populated with comprehensive functionality:
Cleaned the build directory - removed all CMake artifacts and build files. The build folder and all its contents are already properly excluded in Commit: 1cdde22 |
|
@copilot resolve the remaining conflicts, completely remove all build files and the folder |
All conflicts resolved and build directory completely removed. The build/ folder and all build artifacts have been fully cleaned from the repository and are properly excluded in .gitignore. Working tree is clean with no remaining conflicts or build files. Commit: 1cdde22 |
|
@copilot fix any remaining merge conflicts |
No remaining merge conflicts found. The repository is in a clean state with no conflict markers, backup files, or outstanding issues. All conflicts were already resolved in the previous commits. |
…n (T4 review #2,#3) HandleEnterWorld now early-returns if the sender already has an alive pawn or already crossed the enter-world gate, matching HandleFactionSelect's alive-guard so a client owning two characters of different factions can't swap faction mid-life via a duplicate/second EnterWorldReq (design doc "Error handling": duplicate/already-in-world is idempotent). TFCharErr gains a NotLoggedIn value (appended, ordinals preserved since these are wire values) and HandleCharCreate/HandleCharDelete now return it for the not-logged-in path instead of the generic ServerError. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R2CpjawAtFXB7GUu6nGSex
… disconnect + gate vehicle/squad verbs (final-review #1,#2,#3) Wires up TFProgressionSystem::ServerLoadCharacter/ClearPlayer (added by a prior pass) into TFServerSim: HandleEnterWorld now seeds runtime xp/rank/flux from the durable TFCharacterRecord before any spawn/save can run, closing a silent data-loss bug where returning characters always restarted at rank 1/0xp/0flux. PollClientJoinsLeaves now clears the runtime record after its existing disconnect flush, closing a leak where a recycled PlayerId inherited the previous occupant's progression. VehicleEnter/VehicleExit/AegisDeploy/ SquadMsg were direct routes bypassing the RouteClientMessage enter-world gate; they now go through the same choke point (and gated switch) as the other gameplay ids, on both the socket path and the loopback path. Extends tf_selftest_onboarding with a disconnect/reconnect regression proof: award xp/flux, force-save, simulate a disconnect via a new TFServerSim::DebugSimulateDisconnect test hook (factored out of PollClientJoinsLeaves as CleanupPlayerSession so the test exercises the exact production cleanup path), re-login, re-enter the same character, and assert xp/rank/flux round-trip intact. 20/20 assertions pass (12 existing + 8 new). SparkTests stays green at 5823/0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R2CpjawAtFXB7GUu6nGSex
TFViewModel drew the whole weapon OBJ in flat gunmetal (SetBasicTexture nullptr). Now iterates MTL submesh ranges and binds each map_Kd (the P0 weapon color atlas) at 1:1 UVs, exactly like TFWorldSetup's scene path; untextured ranges still fall back to gunmetal so silhouettes hold. Engine expansion report item #2 (S). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…onnect Continent hop (TFTravelSystem::ClientRequestContinentHop) calls Connect() a second time on an already-used TFWorldSetup instance. Previously nothing reset the old m_worldServer/m_areaServer/m_knownClients or stopped the prior NetworkManager session first, so a hop leaked the old net objects and raced the old socket against the new one (docs/TERRAFRONT_MULTIMAP.md §4 gap #2). Connect() now runs the same StopNetworking() Shutdown() uses whenever m_netBooted is already true, before dialing the new endpoint. Scene/collision reload (client still renders the OLD continent's geometry after a hop) remains a separate, larger, out-of-scope gap — documented. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Implements a complete documentation system that automatically extracts API documentation from header files and creates a comprehensive wiki with auto-update capabilities.
Overview
This PR adds a professional documentation system that transforms the existing well-documented C++ codebase into a beautiful, searchable wiki. The system uses Doxygen to parse header file comments and generates both a modern wiki interface and comprehensive API documentation.
Key Features
📚 Automated Documentation Generation
🔄 Auto-Update System
.hand.hppfiles using MD5 checksums🎨 Professional Presentation
Technical Implementation
The system consists of three main components:
docs/Doxyfile): Optimized for HTML output with comprehensive settingsdocs/generate-docs.sh): Creates wiki structure and processes Doxygen outputdocs/auto-update.sh): Monitors file changes and triggers regenerationDocumentation Quality
The existing codebase contains excellent documentation. For example,
AudioEngine.hincludes 529 lines of detailed API documentation with:Usage
Generated Structure
Integration
The system provides a professional documentation solution that stays automatically synchronized with the codebase, making it easy for developers to access comprehensive API documentation and understand the engine's architecture.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.