Jazz2::ILevelHandler class

Base interface of a level handler.

Derived classes

class LevelHandler
Level handler of a local game session.

Public static variables

static std::int32_t MainPlaneZ constexpr
Layer of the main plane.
static std::int32_t SpritePlaneZ constexpr
Layer of sprites.
static std::int32_t PlayerZ constexpr
Layer of players.

Public functions

auto Initialize(const LevelInitialization& levelInit) -> bool pure virtual
Initializes the level handler from LevelInitialization.
auto Initialize(Stream& src, std::uint16_t version) -> bool pure virtual
Initializes the level handler from resumable state.
auto EventSpawner() -> Events::EventSpawner* pure virtual
Returns event spawner for the level.
auto EventMap() -> Events::EventMap* pure virtual
Returns event map for the level.
auto TileMap() -> Tiles::TileMap* pure virtual
Returns tile map for the level.
auto Difficulty() const -> GameDifficulty pure virtual
Return current difficulty.
auto IsLocalSession() const -> bool pure virtual
Return true if the level handler is on a local session.
auto IsPausable() const -> bool pure virtual
Return true if the level handler is pausable.
auto IsReforged() const -> bool pure virtual
Returns true if Reforged Gameplay is enabled.
auto CanPlayersCollide() const -> bool pure virtual
Returns true if players can collide with each other.
auto LevelBounds() const -> Recti pure virtual
Returns level bounds including camera limits.
auto ElapsedFrames() const -> float pure virtual
Returns number of elapsed frames.
auto Gravity() const -> float pure virtual
Returns current gravity force.
auto WaterLevel() const -> float pure virtual
Returns current water level.
auto GetActors() const -> ArrayView<const std::shared_ptr<Actors::ActorBase>> pure virtual
Returns list of actors (objects)
auto GetPlayers() const -> ArrayView<Actors::Player*const> pure virtual
Returns list of players.
auto GetDefaultAmbientLight() const -> float pure virtual
Returns default ambient light intensity.
auto GetAmbientLight(Actors::Player* player) const -> float pure virtual
Returns current ambient light intensity.
void SetAmbientLight(Actors::Player* player, float value) pure virtual
Sets current ambient light intensity.
void AddActor(std::shared_ptr<Actors::ActorBase> actor) pure virtual
Adds an actor (object) to the level.
auto PlaySfx(Actors::ActorBase* self, StringView identifier, AudioBuffer* buffer, const Vector3f& pos, bool sourceRelative, float gain = 1.0f, float pitch = 1.0f) -> std::shared_ptr<AudioBufferPlayer> pure virtual
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> pure virtual
Plays a common sound effect.
void WarpCameraToTarget(Actors::ActorBase* actor, bool fast = false) pure virtual
Warps a camera to its assigned target.
auto IsPositionEmpty(Actors::ActorBase* self, const AABBf& aabb, Tiles::TileCollisionParams& params, Actors::ActorBase** collider) -> bool pure virtual
Returns true if a specified AABB is empty.
auto IsPositionEmpty(Actors::ActorBase* self, const AABBf& aabb, Tiles::TileCollisionParams& params) -> bool
void FindCollisionActorsByAABB(const Actors::ActorBase* self, const AABBf& aabb, Function<bool(Actors::ActorBase*)>&& callback) pure virtual
Calls the callback function for all colliding objects with specified AABB.
void FindCollisionActorsByRadius(float x, float y, float radius, Function<bool(Actors::ActorBase*)>&& callback) pure virtual
Calls the callback function for all colliding objects with specified circle.
void GetCollidingPlayers(const AABBf& aabb, Function<bool(Actors::ActorBase*)>&& callback) pure virtual
Calls the callback function for all colliding players with specified AABB.
void BroadcastTriggeredEvent(Actors::ActorBase* initiator, EventType eventType, std::uint8_t* eventParams) pure virtual
Broadcasts specified event to all other actors.
void BeginLevelChange(Actors::ActorBase* initiator, ExitType exitType, StringView nextLevel = {}) pure virtual
Starts transition to change current level.
void HandleGameOver(Actors::Player* player) pure virtual
Called when the game is over.
auto HandlePlayerDied(Actors::Player* player, Actors::ActorBase* collider) -> bool pure virtual
Called when a player dies.
void HandlePlayerWarped(Actors::Player* player, Vector2f prevPos, WarpFlags flags) pure virtual
Called when a player warps.
void HandlePlayerCoins(Actors::Player* player, std::int32_t prevCount, std::int32_t newCount) pure virtual
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) pure virtual
Called when a player collects or losts gems.
void SetCheckpoint(Actors::Player* player, Vector2f pos) pure virtual
Sets checkpoint for a given player.
void RollbackToCheckpoint(Actors::Player* player) pure virtual
Rolls back to the last checkpoint for a given player.
void HandleActivateSugarRush(Actors::Player* player) pure virtual
Called when a player activates sugar rush.
void ShowLevelText(StringView text, Actors::ActorBase* initiator = nullptr) pure virtual
Shows a text notification.
auto GetLevelText(std::uint32_t textId, std::int32_t index = -1, std::uint32_t delimiter = 0) -> StringView pure virtual
Returns a level text.
void OverrideLevelText(std::uint32_t textId, StringView value) pure virtual
Override specified level text.
auto GetCameraPos(Actors::Player* player) const -> Vector2f pure virtual
Returns camera position of a given player.
void LimitCameraView(Actors::Player* player, std::int32_t left, std::int32_t width) pure virtual
Limits camera viewport for a given player.
void OverrideCameraView(Actors::Player* player, float x, float y, bool topLeft = false) pure virtual
Override camera viewport for a given player.
void ShakeCameraView(Actors::Player* player, float duration) pure virtual
Shake camera for a given player.
void ShakeCameraViewNear(Vector2f pos, float duration) pure virtual
Shake camera for all players near a given position.
auto GetTrigger(std::uint8_t triggerId) -> bool pure virtual
Returns state of a given trigger in the tile map.
void SetTrigger(std::uint8_t triggerId, bool newState) pure virtual
Sets state of a given trigger in the tile map.
void SetWeather(WeatherType type, std::uint8_t intensity) pure virtual
Sets current level weather.
auto BeginPlayMusic(StringView path, bool setDefault = false, bool forceReload = false) -> bool pure virtual
Plays specified music.
auto PlayerActionPressed(std::int32_t index, PlayerActions action, bool includeGamepads = true) -> bool pure virtual
Returns true if player action is pressed.
auto PlayerActionPressed(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) -> bool pure virtual
auto PlayerActionHit(std::int32_t index, PlayerActions action, bool includeGamepads = true) -> bool pure virtual
Returns true if player action is hit (newly pressed)
auto PlayerActionHit(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) -> bool pure virtual
auto PlayerHorizontalMovement(std::int32_t index) -> float pure virtual
Returns value of desired horizontal player movement.
auto PlayerVerticalMovement(std::int32_t index) -> float pure virtual
Returns value of desired vertical player movement.
void PlayerExecuteRumble(std::int32_t index, StringView rumbleEffect) pure virtual
Executes a rumble effect.

Function documentation

bool Jazz2::ILevelHandler::IsPositionEmpty(Actors::ActorBase* self, const AABBf& aabb, Tiles::TileCollisionParams& params)

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

bool Jazz2::ILevelHandler::PlayerActionPressed(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) pure virtual

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

bool Jazz2::ILevelHandler::PlayerActionHit(std::int32_t index, PlayerActions action, bool includeGamepads, bool& isGamepad) pure virtual

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