Jazz2::Multiplayer::MultiLevelHandler class

Level handler of an online multiplayer game session.

Base classes

class Jazz2::LevelHandler
Level handler of a local game session.

Constructors, destructors, conversion operators

MultiLevelHandler(IRootController* root, NetworkManager* networkManager)
~MultiLevelHandler() override

Public functions

auto Initialize(const LevelInitialization& levelInit) -> bool override
Initializes the level handler from LevelInitialization.
auto IsLocalSession() const -> bool override
Return true if the level handler is on a local session.
auto IsPausable() const -> bool override
Return true if the level handler is pausable.
auto GetDefaultAmbientLight() const -> float override
Returns default ambient light intensity.
void SetAmbientLight(Actors::Player* player, float value) override
Sets current ambient light intensity.
void OnBeginFrame() override
Called at the beginning of each frame.
void OnEndFrame() override
Called at the end of each frame.
void OnInitializeViewport(std::int32_t width, std::int32_t height) override
Called when the viewport needs to be initialized (e.g., when the resolution is changed)
auto OnConsoleCommand(StringView line) -> bool override
Called when a console command is entered.
void OnKeyPressed(const KeyboardEvent& event) override
Called when a key is pressed.
void OnKeyReleased(const KeyboardEvent& event) override
Called when a key is released.
void OnTouchEvent(const TouchEvent& event) override
Called when a touch event is triggered.
void AddActor(std::shared_ptr<Actors::ActorBase> actor) override
Adds an actor (object) to the level.
auto PlaySfx(Actors::ActorBase* self, StringView identifier, AudioBuffer* buffer, const Vector3f& pos, bool sourceRelative, float gain, float pitch) -> std::shared_ptr<AudioBufferPlayer> override
Plays a sound effect for a given actor (object)
auto PlayCommonSfx(StringView identifier, const Vector3f& pos, float gain = 1.0f, float pitch = 1.0f) -> std::shared_ptr<AudioBufferPlayer> override
Plays a common sound effect.
void WarpCameraToTarget(Actors::ActorBase* actor, bool fast = false) override
Warps a camera to its assigned target.
auto IsPositionEmpty(Actors::ActorBase* self, const AABBf& aabb, TileCollisionParams& params, Actors::ActorBase** collider) -> bool override
Returns true if a specified AABB is empty.
void FindCollisionActorsByAABB(const Actors::ActorBase* self, const AABBf& aabb, Function<bool(Actors::ActorBase*)>&& callback) override
Calls the callback function for all colliding objects with specified AABB.
void FindCollisionActorsByRadius(float x, float y, float radius, Function<bool(Actors::ActorBase*)>&& callback) override
Calls the callback function for all colliding objects with specified circle.
void GetCollidingPlayers(const AABBf& aabb, Function<bool(Actors::ActorBase*)>&& callback) override
Calls the callback function for all colliding players with specified AABB.
void BroadcastTriggeredEvent(Actors::ActorBase* initiator, EventType eventType, uint8_t* eventParams) override
void BeginLevelChange(Actors::ActorBase* initiator, ExitType exitType, StringView nextLevel = {}) override
Starts transition to change current level.
void HandleGameOver(Actors::Player* player) override
Called when the game is over.
auto HandlePlayerDied(Actors::Player* player, Actors::ActorBase* collider) -> bool override
Called when a player dies.
void HandlePlayerWarped(Actors::Player* player, Vector2f prevPos, WarpFlags flags) override
Called when a player warps.
void HandlePlayerCoins(Actors::Player* player, std::int32_t prevCount, std::int32_t newCount) override
Called when a player collects or losts coins.
void HandlePlayerGems(Actors::Player* player, std::uint8_t gemType, std::int32_t prevCount, std::int32_t newCount) override
Called when a player collects or losts gems.
void SetCheckpoint(Actors::Player* player, Vector2f pos) override
Sets checkpoint for a given player.
void RollbackToCheckpoint(Actors::Player* player) override
Rolls back to the last checkpoint for a given player.
void HandleActivateSugarRush(Actors::Player* player) override
Called when a player activates sugar rush.
void ShowLevelText(StringView text, Actors::ActorBase* initiator = nullptr) override
Shows a text notification.
auto GetLevelText(std::uint32_t textId, std::int32_t index = -1, std::uint32_t delimiter = 0) -> StringView override
Returns a level text.
void OverrideLevelText(std::uint32_t textId, StringView value) override
Override specified level text.
void LimitCameraView(Actors::Player* player, std::int32_t left, std::int32_t width) override
Limits camera viewport for a given player.
void ShakeCameraView(Actors::Player* player, float duration) override
Shake camera for a given player.
void ShakeCameraViewNear(Vector2f pos, float duration) override
Shake camera for all players near a given position.
void SetTrigger(std::uint8_t triggerId, bool newState) override
Sets state of a given trigger in the tile map.
void SetWeather(WeatherType type, uint8_t intensity) override
auto BeginPlayMusic(StringView path, bool setDefault = false, bool forceReload = false) -> bool override
Plays specified music.
auto PlayerActionPressed(std::int32_t index, PlayerActions action, bool includeGamepads = true) -> bool override
Returns true if player action is pressed.
auto PlayerActionPressed(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) -> bool override
auto PlayerActionHit(std::int32_t index, PlayerActions action, bool includeGamepads = true) -> bool override
Returns true if player action is hit (newly pressed)
auto PlayerActionHit(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) -> bool override
auto PlayerHorizontalMovement(std::int32_t index) -> float override
Returns value of desired horizontal player movement.
auto PlayerVerticalMovement(std::int32_t index) -> float override
Returns value of desired vertical player movement.
auto SerializeResumableToStream(Stream& dest) -> bool override
Serializes object state to a stream.
void OnAdvanceDestructibleTileAnimation(std::int32_t tx, std::int32_t ty, std::int32_t amount) override
Called when a destructible tile animation is advanced.
void AttachComponents(LevelDescriptor&& descriptor) override
Attaches all required level components to the handler.
void SpawnPlayers(const LevelInitialization& levelInit) override
Spawns all players.
auto GetGameMode() const -> MultiplayerGameMode
Returns current game mode.
auto SetGameMode(MultiplayerGameMode value) -> bool
Sets current game mode.
auto OnPeerDisconnected(const Peer& peer) -> bool
auto OnPacketReceived(const Peer& peer, std::uint8_t channelId, std::uint8_t* data, std::size_t dataLength) -> bool

Protected functions

void BeforeActorDestroyed(Actors::ActorBase* actor) override
Called before an actor (object) is destroyed.
void ProcessEvents(float timeMult) override
Processes events.
void PrepareNextLevelInitialization(LevelInitialization& levelInit) override
Prepares LevelInitialization for transition to the next level.
void HandlePlayerLevelChanging(Actors::Player* player, ExitType exitType)
auto HandlePlayerSpring(Actors::Player* player, Vector2f pos, Vector2f force, bool keepSpeedX, bool keepSpeedY) -> bool
void HandlePlayerBeforeWarp(Actors::Player* player, Vector2f pos, WarpFlags flags)
void HandlePlayerTakeDamage(Actors::Player* player, std::int32_t amount, float pushForce)
void HandlePlayerRefreshAmmo(Actors::Player* player, WeaponType weaponType)
void HandlePlayerRefreshWeaponUpgrades(Actors::Player* player, WeaponType weaponType)
void HandlePlayerEmitWeaponFlare(Actors::Player* player)
void HandlePlayerWeaponChanged(Actors::Player* player)

Function documentation

bool Jazz2::Multiplayer::MultiLevelHandler::PlayerActionPressed(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) override

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

bool Jazz2::Multiplayer::MultiLevelHandler::PlayerActionHit(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) override

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.