Skip to content

feat: make gm registration simpler and safer#1932

Open
EmosewaMC wants to merge 2 commits intoDarkflameUniverse:mainfrom
Squareville:main-branch
Open

feat: make gm registration simpler and safer#1932
EmosewaMC wants to merge 2 commits intoDarkflameUniverse:mainfrom
Squareville:main-branch

Conversation

@EmosewaMC
Copy link
Copy Markdown
Collaborator

@EmosewaMC EmosewaMC commented Nov 16, 2025

Tested that various combat and reports still function

Copy link
Copy Markdown
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 <175728472+Copilot@users.noreply.github.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.

3 participants