Skip to main content

GameWorld Class

Runtime root object coordinating world domains, resources, and frame services. More...

Declaration

class helios::engine::runtime::world::GameWorld { ... }

Public Constructors Index

GameWorld (const size_t capacity=ENTITY_MANAGER_DEFAULT_CAPACITY)

Constructs GameWorld and creates internal session/environment entities. More...

GameWorld (const GameWorld &)=delete

Non-copyable, non-movable. More...

GameWorld (const GameWorld &&)=delete

Public Operators Index

GameWorldoperator= (const GameWorld &)=delete
GameWorldoperator= (const GameWorld &&)=delete

Public Member Functions Index

Session &session ()

Returns a reference to the current game session. More...

RuntimeEnvironment &runtimeEnvironment ()

Returns a reference to the current runtime platform. More...

GameWorld &init ()

Initializes managers and command buffers. More...

voidsetLevel (std::unique_ptr< Level > level) noexcept

Sets the current level for the game world. More...

boolhasLevel () const noexcept

Checks if a level is currently loaded. More...

const Level *level () const noexcept

Retrieves the currently loaded level. More...

template <typename T>
boolhasManager () const

Checks whether a Manager of type T is registered. More...

template <typename T>
boolhasCommandBuffer () const

Checks whether a CommandBuffer of type T is registered. More...

template <typename T, typename... Args>
T &registerManager (Args &&... args)

Registers and constructs a Manager of type T. More...

template <typename T, typename... Args>
T &registerCommandBuffer (Args &&... args)

Registers and constructs a CommandBuffer of type T. More...

template <typename T>
T &manager () const noexcept

Retrieves a registered Manager by type. More...

template <typename T>
T *tryManager () const noexcept

Retrieves a registered Manager by type, or nullptr if not found. More...

template <typename T>
T *tryCommandBuffer () const noexcept

Retrieves a registered CommandBuffer by type, or nullptr if not found. More...

template <typename T>
T &commandBuffer () const noexcept

Retrieves a registered CommandBuffer by type. More...

template <typename... CommandType, typename OwningT>
voidregisterCommandHandler (OwningT &owner)

Registers a command handler for one or more command types. More...

CommandHandlerRegistry &commandHandlerRegistry () noexcept

Returns a reference to the CommandHandlerRegistry. More...

voidflushManagers (UpdateContext &updateContext)

Flushes all registered Managers. More...

voidflushCommandBuffers (UpdateContext &updateContext)

Flushes all registered CommandBuffers. More...

voidreset ()

Resets all managers and the session to their initial state. More...

ResourceRegistry &resourceRegistry () noexcept

Returns a reference to the ResourceRegistry. More...

const ResourceRegistry &resourceRegistry () const noexcept

Returns a reference to the ResourceRegistry. More...

PlatformWorld &platformWorld () noexcept

Returns the platform-domain world. More...

RenderResourceWorld &renderResourceWorld () noexcept

Returns the render-resource domain world. More...

RenderTargetWorld &renderTargetWorld () noexcept

Returns the render-target domain world. More...

GameObjectWorld &gameObjectWorld () noexcept

Returns the game-object domain world. More...

EngineWorld &engineWorld () noexcept

Returns the aggregate typed world used for handle-routed operations. More...

template <typename THandle, typename... Components>
autoview ()

Builds a typed ECS view for a handle domain and component set. More...

template <typename THandle>
autofind (const THandle handle) noexcept

Finds an entity facade by handle. More...

template <typename THandle>
autoadd (const typename THandle::StrongId_type strongId=typename THandle::StrongId_type{}, const bool isActive=true) noexcept

Adds a new entity in the domain inferred from THandle. More...

template <typename THandle>
autodestroy (const THandle handle) noexcept

Destroys an entity in the domain inferred from THandle. More...

helios::engine::runtime::messaging::command::CommandBufferRegistry &commandBufferRegistry () noexcept

Returns direct access to the command-buffer registry. More...

Protected Member Attributes Index

std::unique_ptr< Level >level_ = nullptr

The current level loaded in the game world. More...

ResourceRegistryresourceRegistry_

Type-indexed registry for Managers and CommandBuffers. More...

CommandHandlerRegistrycommandHandlerRegistry_

Registry mapping command types to their handler function pointers. More...

EngineWorldengineWorld_ {}

Aggregate multi-domain entity world. More...

Sessionsession_

Session object storing runtime/game state. More...

RuntimeEnvironmentruntimeEnvironment_

Runtime environment facade for platform readiness state. More...

Protected Static Attributes Index

static const helios::engine::util::log::Logger &logger_ = ...

The logger used with this GameWorld instance. More...

Description

Runtime root object coordinating world domains, resources, and frame services.

GameWorld owns the EngineWorld (entity domains), Session, RuntimeEnvironment, and runtime registries for managers/command buffers. It also exposes typed convenience APIs (add, find, view, destroy) that delegate to EngineWorld.

Definition at line 70 of file GameWorld.ixx.

Public Constructors

GameWorld()

helios::engine::runtime::world::GameWorld::GameWorld (const size_t capacity=ENTITY_MANAGER_DEFAULT_CAPACITY)
inline explicit

Constructs GameWorld and creates internal session/environment entities.

The constructor creates one game-object entity for Session and one platform entity for RuntimeEnvironment.

Definition at line 136 of file GameWorld.ixx.

GameWorld()

helios::engine::runtime::world::GameWorld::GameWorld (const GameWorld &)
delete

Non-copyable, non-movable.

Definition at line 144 of file GameWorld.ixx.

GameWorld()

helios::engine::runtime::world::GameWorld::GameWorld (const GameWorld &&)
delete

Definition at line 146 of file GameWorld.ixx.

Public Operators

operator=()

GameWorld helios::engine::runtime::world::GameWorld::operator= (const GameWorld &)
delete

Definition at line 145 of file GameWorld.ixx.

operator=()

GameWorld helios::engine::runtime::world::GameWorld::operator= (const GameWorld &&)
delete

Definition at line 147 of file GameWorld.ixx.

Public Member Functions

add()

template <typename THandle>
auto helios::engine::runtime::world::GameWorld::add (const typename THandle::StrongId_type strongId=typename THandle::StrongId_type{}, const bool isActive=true)
inline noexcept

Adds a new entity in the domain inferred from THandle.

Template Parameters
THandle

Handle type.

Parameters
strongId

Optional strong id value used by the handle domain.

Returns

Domain-specific entity facade for the created entity.

Definition at line 523 of file GameWorld.ixx.

523 [[nodiscard]] auto add(const typename THandle::StrongId_type strongId = typename THandle::StrongId_type{}, const bool isActive = true) noexcept {
525 entity.setActive(isActive);
526 return entity;
527 }

commandBuffer()

template <typename T>
T & helios::engine::runtime::world::GameWorld::commandBuffer ()
inline noexcept

Retrieves a registered CommandBuffer by type.

Template Parameters
T

The CommandBuffer type. Must satisfy IsCommandBufferLike.

Precondition

A CommandBuffer of type T must already be registered. Use tryCommandBuffer<T>() when the buffer is optional.

Returns

Reference to the CommandBuffer.

Definition at line 340 of file GameWorld.ixx.

341 return resourceRegistry_.get<T>();
342 }

References helios::engine::runtime::world::ResourceRegistry::get and resourceRegistry_.

commandBufferRegistry()

helios::engine::runtime::messaging::command::CommandBufferRegistry & helios::engine::runtime::world::GameWorld::commandBufferRegistry ()
inline noexcept

Returns direct access to the command-buffer registry.

Returns

Reference to the internal CommandBufferRegistry.

Definition at line 548 of file GameWorld.ixx.

References helios::engine::runtime::world::ResourceRegistry::commandBufferRegistry and resourceRegistry.

commandHandlerRegistry()

CommandHandlerRegistry & helios::engine::runtime::world::GameWorld::commandHandlerRegistry ()
inline noexcept

Returns a reference to the CommandHandlerRegistry.

Returns

Reference to the CommandHandlerRegistry.

Definition at line 371 of file GameWorld.ixx.

Reference commandHandlerRegistry_.

destroy()

template <typename THandle>
auto helios::engine::runtime::world::GameWorld::destroy (const THandle handle)
inline noexcept

Destroys an entity in the domain inferred from THandle.

Template Parameters
THandle

Handle type.

Parameters
handle

Entity handle to destroy.

Returns

Domain-specific destroy result.

Definition at line 539 of file GameWorld.ixx.

539 [[nodiscard]] auto destroy(const THandle handle) noexcept {
540 return engineWorld_.template destroy<THandle>(handle);
541 }

References engineWorld_ and helios::engine::runtime::registerComponents.

engineWorld()

EngineWorld & helios::engine::runtime::world::GameWorld::engineWorld ()
inline noexcept

Returns the aggregate typed world used for handle-routed operations.

Returns

Reference to EngineWorld.

Definition at line 482 of file GameWorld.ixx.

Reference engineWorld_.

Referenced by helios::engine::runtime::gameloop::GameLoop::update.

find()

template <typename THandle>
auto helios::engine::runtime::world::GameWorld::find (const THandle handle)
inline noexcept

Finds an entity facade by handle.

Template Parameters
THandle

Handle type.

Parameters
handle

Entity handle to resolve.

Returns

Domain-specific entity facade (or empty facade if not found).

Definition at line 509 of file GameWorld.ixx.

509 [[nodiscard]] auto find(const THandle handle) noexcept {
510 return engineWorld_.template find<THandle>(handle);
511 }

References engineWorld_ and helios::engine::runtime::registerComponents.

flushCommandBuffers()

void helios::engine::runtime::world::GameWorld::flushCommandBuffers (UpdateContext & updateContext)
inline

Flushes all registered CommandBuffers.

Iterates over all CommandBuffers in registration order and invokes flush(updateContext) on each. Called by the GameLoop at commit points before Managers are flushed.

Parameters
updateContext

The current frame's update context.

Definition at line 399 of file GameWorld.ixx.

References helios::engine::runtime::world::ResourceRegistry::commandBuffers, helios::engine::runtime::registerComponents and resourceRegistry_.

Referenced by helios::engine::runtime::gameloop::GameLoop::onPassCommit and helios::engine::runtime::gameloop::GameLoop::phaseCommit.

flushManagers()

void helios::engine::runtime::world::GameWorld::flushManagers (UpdateContext & updateContext)
inline

Flushes all registered Managers.

Iterates over all Managers in registration order and invokes flush(updateContext) on each. Called by the GameLoop at commit points after the CommandBuffer has been flushed.

Parameters
updateContext

The current frame's update context.

Definition at line 384 of file GameWorld.ixx.

385 for (auto& mgr : resourceRegistry_.managers()) {
386 mgr->flush(updateContext);
387 }
388 }

References helios::engine::runtime::world::ResourceRegistry::managers, helios::engine::runtime::registerComponents and resourceRegistry_.

Referenced by helios::engine::runtime::gameloop::GameLoop::onPassCommit and helios::engine::runtime::gameloop::GameLoop::phaseCommit.

gameObjectWorld()

GameObjectWorld & helios::engine::runtime::world::GameWorld::gameObjectWorld ()
inline noexcept

Returns the game-object domain world.

Returns

Reference to GameObjectWorld.

Definition at line 472 of file GameWorld.ixx.

References engineWorld_ and helios::engine::runtime::world::EngineWorld::gameObjectWorld.

hasCommandBuffer()

template <typename T>
bool helios::engine::runtime::world::GameWorld::hasCommandBuffer ()
inline

Checks whether a CommandBuffer of type T is registered.

Template Parameters
T

The CommandBuffer type. Must satisfy IsCommandBufferLike.

Returns

True if the CommandBuffer is registered.

Definition at line 242 of file GameWorld.ixx.

242 [[nodiscard]] bool hasCommandBuffer() const {
243 return resourceRegistry_.has<T>();
244 }

References helios::engine::runtime::world::ResourceRegistry::has and resourceRegistry_.

hasLevel()

bool helios::engine::runtime::world::GameWorld::hasLevel ()
inline noexcept

Checks if a level is currently loaded.

Returns

True if a level is set, false otherwise.

Definition at line 205 of file GameWorld.ixx.

206 return level_ != nullptr;
207 }

Reference level_.

hasManager()

template <typename T>
bool helios::engine::runtime::world::GameWorld::hasManager ()
inline

Checks whether a Manager of type T is registered.

Template Parameters
T

The Manager type. Must satisfy IsManagerLike.

Returns

True if the Manager is registered.

Definition at line 229 of file GameWorld.ixx.

229 [[nodiscard]] bool hasManager() const {
230 return resourceRegistry_.has<T>();
231 }

References helios::engine::runtime::world::ResourceRegistry::has and resourceRegistry_.

init()

GameWorld & helios::engine::runtime::world::GameWorld::init ()
inline

Initializes managers and command buffers.

Should be called after all resources have been registered and before the game loop starts. Manager init() receives the CommandHandlerRegistry so managers can register command handlers without a hard GameWorld dependency. Command buffers are initialized afterward and bound to the same handler registry.

Definition at line 178 of file GameWorld.ixx.

179 for (auto& mgr : resourceRegistry_.managers()) {
181 }
182
183 assert(resourceRegistry_.tryGet<TimerManager>() && "TimerManager must be registered before initializing command buffers");
184 for (auto& buff : resourceRegistry_.commandBuffers()) {
186 }
187
188 return *this;
189 }

References helios::engine::runtime::world::ResourceRegistry::commandBuffers, commandHandlerRegistry_, helios::engine::runtime::world::ResourceRegistry::get, init, helios::engine::runtime::world::ResourceRegistry::managers, helios::engine::runtime::registerComponents, resourceRegistry_ and helios::engine::runtime::world::ResourceRegistry::tryGet.

Referenced by init.

level()

const Level * helios::engine::runtime::world::GameWorld::level ()
inline noexcept

Retrieves the currently loaded level.

Returns

Const pointer to the active Level.

warning

Calling this method when hasLevel() returns false results in undefined behavior.

Definition at line 216 of file GameWorld.ixx.

217 return level_.get();
218 }

Reference level_.

Referenced by setLevel and helios::engine::runtime::gameloop::GameLoop::update.

manager()

template <typename T>
T & helios::engine::runtime::world::GameWorld::manager ()
inline noexcept

Retrieves a registered Manager by type.

Template Parameters
T

The Manager type. Must satisfy IsManagerLike.

Returns

Reference to the Manager.

Precondition

A Manager of type T must be registered.

Definition at line 297 of file GameWorld.ixx.

298 assert(resourceRegistry_.has<T>() && "Manager not registered");
299 return resourceRegistry_.get<T>();
300 }

References helios::engine::runtime::world::ResourceRegistry::get, helios::engine::runtime::world::ResourceRegistry::has, helios::engine::runtime::registerComponents and resourceRegistry_.

platformWorld()

PlatformWorld & helios::engine::runtime::world::GameWorld::platformWorld ()
inline noexcept

Returns the platform-domain world.

Returns

Reference to PlatformWorld.

Definition at line 445 of file GameWorld.ixx.

References engineWorld_ and helios::engine::runtime::world::EngineWorld::platformWorld.

registerCommandBuffer()

template <typename T, typename... Args>
T & helios::engine::runtime::world::GameWorld::registerCommandBuffer (Args &&... args)
inline

Registers and constructs a CommandBuffer of type T.

Delegates to ResourceRegistry::emplace. The buffer is constructed in-place with forwarded arguments and owned by the CommandBufferRegistry.

Template Parameters
T

The CommandBuffer type. Must satisfy IsCommandBufferLike.

Args

Constructor argument types.

Parameters
args

Arguments forwarded to the T constructor.

Returns

Reference to the newly registered CommandBuffer.

Definition at line 282 of file GameWorld.ixx.

283 return resourceRegistry_.emplace<T>(std::forward<Args>(args)...);
284 }

References helios::engine::runtime::world::ResourceRegistry::emplace, helios::engine::runtime::registerComponents and resourceRegistry_.

registerCommandHandler()

template <typename... CommandType, typename OwningT>
void helios::engine::runtime::world::GameWorld::registerCommandHandler (OwningT & owner)
inline

Registers a command handler for one or more command types.

Stores a type-erased function pointer for each CommandType that routes to owner.submit(cmd). During flush, the TypedCommandBuffer uses the CommandHandlerRegistry to dispatch queued commands to the registered handler.

Template Parameters
CommandType

The command types to register handlers for.

OwningT

The handler type. Must satisfy IsCommandHandlerLike.

Parameters
owner

Reference to the handler instance. Must outlive the GameWorld.

See Also

CommandHandlerRegistry

Definition at line 362 of file GameWorld.ixx.

References commandHandlerRegistry_ and helios::engine::runtime::registerComponents.

registerManager()

template <typename T, typename... Args>
T & helios::engine::runtime::world::GameWorld::registerManager (Args &&... args)
inline

Registers and constructs a Manager of type T.

Delegates to ResourceRegistry::emplace. The Manager is constructed in-place with forwarded arguments and owned by the ManagerRegistry.

Template Parameters
T

The Manager type. Must satisfy IsManagerLike.

Args

Constructor argument types.

Parameters
args

Arguments forwarded to the T constructor.

Returns

Reference to the newly registered Manager.

Definition at line 262 of file GameWorld.ixx.

263 return resourceRegistry_.emplace<T>(std::forward<Args>(args)...);
264 }

References helios::engine::runtime::world::ResourceRegistry::emplace, helios::engine::runtime::registerComponents and resourceRegistry_.

renderResourceWorld()

RenderResourceWorld & helios::engine::runtime::world::GameWorld::renderResourceWorld ()
inline noexcept

Returns the render-resource domain world.

Returns

Reference to RenderResourceWorld.

Definition at line 454 of file GameWorld.ixx.

References engineWorld_ and helios::engine::runtime::world::EngineWorld::renderResourceWorld.

renderTargetWorld()

RenderTargetWorld & helios::engine::runtime::world::GameWorld::renderTargetWorld ()
inline noexcept

Returns the render-target domain world.

Returns

Reference to RenderTargetWorld.

Definition at line 463 of file GameWorld.ixx.

References engineWorld_ and helios::engine::runtime::world::EngineWorld::renderTargetWorld.

reset()

void helios::engine::runtime::world::GameWorld::reset ()
inline

Resets all managers and the session to their initial state.

Called during level transitions or game restarts to clear accumulated state. Invokes reset() on all managers and the session.

Definition at line 411 of file GameWorld.ixx.

411 void reset() {
412
413 for (auto& mgr : resourceRegistry_.managers()) {
414 mgr->reset();
415 }
416
418 }

References helios::engine::runtime::world::ResourceRegistry::managers, helios::engine::runtime::registerComponents, helios::engine::runtime::world::Session::reset, resourceRegistry_ and session_.

resourceRegistry()

ResourceRegistry & helios::engine::runtime::world::GameWorld::resourceRegistry ()
inline noexcept

Returns a reference to the ResourceRegistry.

Use for direct resource access. Prefer the convenience methods registerManager(), registerCommandBuffer(), manager(), tryManager(), and tryCommandBuffer() for type-constrained access.

Returns

Reference to the ResourceRegistry.

Definition at line 429 of file GameWorld.ixx.

Reference resourceRegistry_.

Referenced by commandBufferRegistry.

resourceRegistry()

const ResourceRegistry & helios::engine::runtime::world::GameWorld::resourceRegistry ()
inline noexcept

Returns a reference to the ResourceRegistry.

Use for direct resource access. Prefer the convenience methods registerManager(), registerCommandBuffer(), manager(), tryManager(), and tryCommandBuffer() for type-constrained access.

Returns

Reference to the ResourceRegistry.

Definition at line 436 of file GameWorld.ixx.

Reference resourceRegistry_.

runtimeEnvironment()

RuntimeEnvironment & helios::engine::runtime::world::GameWorld::runtimeEnvironment ()
inline

Returns a reference to the current runtime platform.

Returns

Reference to the Platform.

Definition at line 163 of file GameWorld.ixx.

Reference runtimeEnvironment_.

Referenced by helios::engine::runtime::gameloop::GameLoop::update.

session()

Session & helios::engine::runtime::world::GameWorld::session ()
inline

Returns a reference to the current game session.

Returns

Reference to the Session.

Definition at line 154 of file GameWorld.ixx.

155 return session_;
156 }

Reference session_.

Referenced by helios::engine::runtime::gameloop::GameLoop::isRunning and helios::engine::runtime::gameloop::GameLoop::update.

setLevel()

void helios::engine::runtime::world::GameWorld::setLevel (std::unique_ptr< Level > level)
inline noexcept

Sets the current level for the game world.

Parameters
level

Unique pointer to the Level instance. Ownership is transferred to the GameWorld.

Definition at line 196 of file GameWorld.ixx.

196 void setLevel(std::unique_ptr<Level> level) noexcept {
197 level_ = std::move(level);
198 }

References level and level_.

tryCommandBuffer()

template <typename T>
T * helios::engine::runtime::world::GameWorld::tryCommandBuffer ()
inline noexcept

Retrieves a registered CommandBuffer by type, or nullptr if not found.

Template Parameters
T

The CommandBuffer type. Must satisfy IsCommandBufferLike.

Returns

Pointer to the CommandBuffer, or nullptr if not registered.

Definition at line 324 of file GameWorld.ixx.

325 return resourceRegistry_.tryGet<T>();
326 }

References resourceRegistry_ and helios::engine::runtime::world::ResourceRegistry::tryGet.

Referenced by helios::engine::runtime::gameloop::Pass::addSystem.

tryManager()

template <typename T>
T * helios::engine::runtime::world::GameWorld::tryManager ()
inline noexcept

Retrieves a registered Manager by type, or nullptr if not found.

Template Parameters
T

The Manager type. Must satisfy IsManagerLike.

Returns

Pointer to the Manager, or nullptr if not registered.

Definition at line 311 of file GameWorld.ixx.

312 return resourceRegistry_.tryGet<T>();
313 }

References resourceRegistry_ and helios::engine::runtime::world::ResourceRegistry::tryGet.

view()

template <typename THandle, typename... Components>
auto helios::engine::runtime::world::GameWorld::view ()
inline

Builds a typed ECS view for a handle domain and component set.

Template Parameters
THandle

Handle domain type.

Components

Component types to include.

Returns

Domain-specific view.

Definition at line 495 of file GameWorld.ixx.

495 [[nodiscard]] auto view() {
496 return engineWorld_.view<THandle, Components...>();
497 }

References engineWorld_, helios::engine::runtime::registerComponents and helios::engine::runtime::world::EngineWorld::view.

Protected Member Attributes

commandHandlerRegistry_

CommandHandlerRegistry helios::engine::runtime::world::GameWorld::commandHandlerRegistry_
protected

Registry mapping command types to their handler function pointers.

Used by TypedCommandBuffer during flush to route commands to the correct handler. Handlers are usually registered by managers in init(CommandHandlerRegistry&); direct registration via registerCommandHandler<CommandTypes...>(owner) is still supported.

Definition at line 110 of file GameWorld.ixx.

Referenced by commandHandlerRegistry, init and registerCommandHandler.

engineWorld_

EngineWorld helios::engine::runtime::world::GameWorld::engineWorld_ {}
protected

Aggregate multi-domain entity world.

Definition at line 115 of file GameWorld.ixx.

Referenced by destroy, engineWorld, find, gameObjectWorld, platformWorld, renderResourceWorld, renderTargetWorld and view.

level_

std::unique_ptr<Level> helios::engine::runtime::world::GameWorld::level_ = nullptr
protected

The current level loaded in the game world.

Can be null if no level is currently active.

Definition at line 90 of file GameWorld.ixx.

90 std::unique_ptr<Level> level_ = nullptr;

Referenced by hasLevel, level and setLevel.

resourceRegistry_

ResourceRegistry helios::engine::runtime::world::GameWorld::resourceRegistry_
protected

Type-indexed registry for Managers and CommandBuffers.

Provides O(1) type-based access via ManagerRegistry and CommandBufferRegistry. Owns all registered Manager and CommandBuffer instances via ConceptModelRegistry.

Definition at line 100 of file GameWorld.ixx.

Referenced by commandBuffer, flushCommandBuffers, flushManagers, hasCommandBuffer, hasManager, init, manager, registerCommandBuffer, registerManager, reset, resourceRegistry, resourceRegistry, tryCommandBuffer and tryManager.

runtimeEnvironment_

RuntimeEnvironment helios::engine::runtime::world::GameWorld::runtimeEnvironment_
protected

Runtime environment facade for platform readiness state.

Definition at line 125 of file GameWorld.ixx.

Referenced by runtimeEnvironment.

session_

Session helios::engine::runtime::world::GameWorld::session_
protected

Session object storing runtime/game state.

Definition at line 120 of file GameWorld.ixx.

Referenced by reset and session.

Protected Static Attributes

logger_

const helios::engine::util::log::Logger& helios::engine::runtime::world::GameWorld::logger_
protected static

The logger used with this GameWorld instance.

Initialiser

Defaults to HELIOS_LOG_SCOPE.

Definition at line 82 of file GameWorld.ixx.


The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.