Skip to content

fix codebase issues#3

Merged
Krilliac merged 2 commits into
Workingfrom
claude/fix-codebase-issues-EdLDa
Mar 2, 2026
Merged

fix codebase issues#3
Krilliac merged 2 commits into
Workingfrom
claude/fix-codebase-issues-EdLDa

Conversation

@Krilliac

@Krilliac Krilliac commented Mar 2, 2026

Copy link
Copy Markdown
Owner

No description provided.

claude added 2 commits March 2, 2026 04:20
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
@Krilliac
Krilliac merged commit bb11bcb into Working Mar 2, 2026
@Krilliac
Krilliac deleted the claude/fix-codebase-issues-EdLDa branch March 2, 2026 05:36
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants