Skip to content

Milestone 5#210

Merged
ThorstenSuckow merged 83 commits intomainfrom
milestone_5
Feb 5, 2026
Merged

Milestone 5#210
ThorstenSuckow merged 83 commits intomainfrom
milestone_5

Conversation

@ThorstenSuckow
Copy link
Owner

No description provided.

Copilot AI review requested due to automatic review settings February 5, 2026 22:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements "Milestone 5", introducing several major new systems to the Helios engine including UI rendering, scoring mechanics, health/damage systems, and enhanced collision handling. The changes enable viewport-relative UI positioning, score tracking with observer patterns, combat damage attribution, and improved text rendering with font scaling.

Changes:

  • New UI module with layout, transform, widget, and binding systems for viewport-relative UI elements
  • Complete scoring system with score pools, observers, commands, and integration with combat events
  • Health and damage systems with death events and kill attribution
  • Enhanced collision system with bitmask behaviors, context data, and layer tracking
  • Font scaling support and improved text rendering with state caching
  • Viewport snapshot system for frame-consistent rendering data
  • EmittedBy component for projectile source tracking
  • Builder pattern extensions for all new systems

Reviewed changes

Copilot reviewed 151 out of 151 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
Window.ixx Added viewportSnapshots() method for collecting viewport state
ViewportSnapshot.ixx New immutable viewport state snapshot structure
Viewport.ixx Added viewport ID, snapshot caching, and absolute bounds computation
RenderTarget.ixx Added viewports() accessor and initialization fix
TypeSetter.ixx Added font scaling parameter to layout method
TextMesh.ixx Added fontScale member and related accessors
FontResourceProvider.ixx Added pixelHeight parameter to loadFont
UpdateContext.ixx Added viewportSnapshots parameter and accessor
GameLoop.ixx Updated update() signature to accept viewport snapshots
UI modules Complete new UI system (layout, transform, widgets, binding)
Scoring modules Complete new scoring system (types, components, systems, managers)
Health modules New health tracking system with components, events, and systems
Damage modules New damage dealing system with layer-based damage values
Combat modules Added LastAttackerComponent and AttackContext for kill attribution
Collision modules Enhanced with bitmask behaviors, CollisionContext, and layer tracking
Spawn modules Added EmittedByComponent and source tracking in EmitterContext
Builder configs New configs for all added systems (UI, health, scoring, combat, observers)
OpenGLGlyphTextRenderer Added state caching for shader and VAO to reduce redundant GL calls
Input system Added isKeyReleased() support and TILDE key
Core data types Added ViewportId, ScorePoolId, ScoreTypeId, CollisionLayer
Examples Updated all examples to pass viewport snapshots to game loop

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 41 to 45
float fontScale_;;

std::string template_;

bool isUiText_ = false;;
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra semicolon after member variable declaration. This should be removed.

Suggested change
float fontScale_;;
std::string template_;
bool isUiText_ = false;;
float fontScale_;
std::string template_;
bool isUiText_ = false;

Copilot uses AI. Check for mistakes.
@ThorstenSuckow ThorstenSuckow merged commit 69adfb1 into main Feb 5, 2026
3 checks passed
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.

1 participant