fix codebase issues#3
Merged
Merged
Conversation
Critical fixes: - Fix Player deadlock: change std::mutex to std::recursive_mutex - Fix Player memory leak: use unique_ptr for ProjectilePool - Fix Player::OnHit using own weapon damage instead of incoming damage - Fix Grenade double lifetime increment and m_hasExploded not reset - Fix Rocket m_hasExploded not reset after pool recycle - Fix Game::Render potential double EndFrame call on exception - Fix Game::DeleteObject unsigned underflow on empty vector - Fix Console crash on empty Enter input Memory and resource management: - Fix Mesh.cpp COM buffer leak when CreateBuffers called repeatedly - Fix Terrain.h missing destructor for D3D buffer release - Fix GraphicsEngine missing member initialization (width, height, etc.) - Fix RenderStatistics uninitialized members (30+ fields) - Fix PostProcessing.h uninitialized device/context/dimensions - Fix ProjectilePool.h uninitialized device/context pointers - Fix Shader.h uninitialized members (device, context, type, etc.) - Fix LightingSystem.h uninitialized ShadowMap::size and LightingMetrics - Fix GizmoSystem.h uninitialized XMFLOAT3 and indexCount members Logic and correctness: - Fix division by zero in CollisionSystem RayVsBox - Fix FPS counter logic (frameCount was inside reporting block) - Fix InputManager key name case mismatch (Space vs SPACE) - Fix m_timeScale not applied in Game::Update - Fix frame-rate dependent projectile drag - Fix division by zero in InvScreenResolution - Fix ModelObject::Render ignoring rotation/scale transforms - Fix LightingSystem.cpp silently overwriting HRESULT values - Fix Grenade/Rocket Explode() assert changed to early-return guard ODR violation fixes: - Remove duplicate StreamingMethod from LevelStreamingSystem.h - Remove duplicate ComponentType from SceneFile.h (use SceneSystemEnums.h) - Rename PlaybackState to AudioPlaybackState in AudioSystemEnums.h - Rename CompressionType to AudioCompressionType/PackageCompressionType - Remove duplicate VCSType/FileStatus from VersionControlSystem.h - Fix ScriptNode missing virtual destructor Build system: - Fix duplicate imgui target (guard with if(NOT TARGET imgui)) - Fix MSVC runtime library double specification in CMakeLists.txt - Fix extern variable name mismatch (hInst vs g_hInst) https://claude.ai/code/session_01AL7dUucuy6NdAjPUbjQpRH
…new panels - Enable ImGui docking (switched submodule to docking branch) - Implement Spark Professional theme: dark blue-gray base with electric blue (#2D8CF0) primary accent and orange-amber (#F5A623) secondary accent - Add 9 theme presets (Spark Professional, Unity Pro, Unreal Pro, VS Pro, etc.) - Create EditorFonts system: Roboto Regular/Bold, JetBrains Mono, FontAwesome 6 - Create EditorIcons.h with 100+ FontAwesome icon constants - Full-screen DockSpace with default layout (Hierarchy left, Inspector right, Console+Assets bottom, Scene center) - Stable panel docking IDs using ImGui ### separator syntax - Add toolbar with transform tools, world/local toggle, play/pause/stop controls - Enhanced status bar with color-coded FPS, connection indicator, tool info - Toast-style notifications with colored left stripe and fade animation - SceneViewPanel: icon toolbar, render mode dropdown, camera speed control - SimpleHierarchyPanel: FontAwesome icons, search bar, right-click context menu - InspectorPanel: color-coded XYZ axis labels (red/green/blue), collapsible component sections, categorized Add Component menu - SimpleConsolePanel: log level filter buttons with counts, monospace font - AssetBrowserPanel: file-type icons, breadcrumb navigation, hover tooltips - New GameViewPanel: FPS player camera viewport with crosshair, health bar, ammo counter HUD overlay - New PerformanceProfiler: CPU/GPU/Memory tabs with real-time graphs, frame time history, breakdown bars, budget tracking - Add FPS Tools menu (Weapon Editor, Spawn Points, Objectives, etc.) - Add Build menu (Build Lighting, Build NavMesh, Deploy) - Add Themes submenu under Help for live theme switching - Bundle font TTF files and CMake post-build copy rule https://claude.ai/code/session_01AL7dUucuy6NdAjPUbjQpRH
This was referenced Apr 13, 2026
Krilliac
added a commit
that referenced
this pull request
Jul 6, 2026
…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
Krilliac
added a commit
that referenced
this pull request
Jul 6, 2026
… 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
Krilliac
added a commit
that referenced
this pull request
Jul 10, 2026
…tes/banners glow, muzzle flash additive Basic pixel shader now reads PerObjectConstants (already bound to the PS) and applies MaterialProperties.z as an UNLIT emissive term and .w as output alpha - both default to 0/1 so every existing draw is pixel-identical (verified: embedded PS recompiles, render unchanged). Added a UpdateBasicConstants overload that sets emissive/alpha/uvOffset (the VS already applies UVTiling.zw), plus lazily-created opaque/alpha/additive blend states (SetBasicBlendMode). Applied: MeshRenderer gains an emissive field honored by the module ECS render path; warpgates glow (0.45) and capture banners glow (0.55) so they read as lit faction beacons at range and in shadow; the first-person muzzle flash draws additive + fully emissive as a burst of light instead of an opaque box. This is the safe, backward-compatible slice of the render-pipeline batch. Full PBR (normal/roughness/metallic sampling) still needs vertex tangents + a BRDF and is left as a deliberate follow-up. Engine expansion report #3/#4/#16 (partial). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Krilliac
added a commit
that referenced
this pull request
Jul 13, 2026
TFLoginFlow previously left the login UI hidden after a disconnect or continent-hop, so the player had no way back to the login screen (TERRAFRONT_MULTIMAP.md gap #3). TFClientNet now signals the flow on these transitions and TFLoginFlow resets state to reliably reappear. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.