class
MultiLevelHandlerLevel 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.