Skip to content

Conversation

@EmosewaMC
Copy link
Collaborator

@EmosewaMC EmosewaMC commented Nov 16, 2025

Tested that various combat and reports still function

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 PR refactors the game message registration system to be simpler and safer by using template type deduction from function pointers instead of manual type specification and enum passing.

Key Changes:

  • Replaced two-parameter RegisterMsg<MessageType>(this, &Handler) with single-parameter RegisterMsg(&Handler) that deduces the message type from the handler signature
  • Updated all message handler functions to accept specific message types (e.g., GetObjectReportInfo&) instead of base GameMsg&, eliminating the need for static_cast operations
  • Added new IsDead game message struct and corresponding handler in DestroyableComponent

Reviewed Changes

Copilot reviewed 40 out of 40 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
dGame/dGameMessages/GameMessages.h Added new IsDead message struct
dGame/dComponents/Component.h Refactored RegisterMsg template to deduce message type from handler signature with compile-time type safety checks
dGame/Entity.h Updated RegisterMsg template and added forward declarations for game messages used in Entity handlers
dGame/Entity.cpp Updated all message handler signatures and registration calls to use new pattern
dGame/dComponents/*.h Updated all component message handler signatures to accept specific message types
dGame/dComponents/*.cpp Updated handler implementations to use typed parameters and removed static_cast operations, simplified registration calls

Co-authored-by: Copilot <[email protected]>
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