Jazz2::Actors::Solid::MovingPlatform class

Moving platform.

A solid platform suspended from a chain that swings or circles along a fixed path; the player can stand on it and is carried along as it moves. Comes in several themed variants (Carrotus fruit, ball, lab, etc.), including spiked variants that damage the player instead of carrying them.

Base classes

class Jazz2::Actors::SolidObjectBase
Base class of a (pushable) solid object.

Public static functions

static void Preload(const ActorActivationDetails& details)
Preloads all assets required by this actor.

Constructors, destructors, conversion operators

MovingPlatform()
Creates a new instance.
~MovingPlatform()

Public functions

auto OnHandleCollision(ActorBase* other) -> bool override
Called when the object collides with another object.

Protected functions

auto OnActivatedAsync(const ActorActivationDetails& details) -> Task<bool> override
Called when the object is created and activated.
void OnUpdate(float timeMult) override
Called every frame to update the object state.
void OnUpdateHitbox() override
Called when the hitbox needs to be updated.
void OnSerializeState(Stream& dest) override
Serializes the live state of the object to a level state snapshot.
void OnDeserializeState(Stream& src) override
Restores the live state of the object from a level state snapshot.
auto OnPerish(ActorBase* collider) -> bool override
Called when the object has no health left and should perish.
auto OnDraw(RenderQueue& renderQueue) -> bool override
Called when the object needs to be drawn.

Function documentation

void Jazz2::Actors::Solid::MovingPlatform::OnSerializeState(Stream& dest) override protected

Serializes the live state of the object to a level state snapshot.

Called only if IsSerializable() returns true. Anything that is initialized from the event parameters in OnActivatedAsync() doesn't need to be stored, because the object is spawned again with the same parameters before OnDeserializeState() is called. Derived classes must call the base implementation first and read the data back in the same order.

void Jazz2::Actors::Solid::MovingPlatform::OnDeserializeState(Stream& src) override protected

Restores the live state of the object from a level state snapshot.

Called right after the object was spawned again (i.e., after OnActivatedAsync()) and before it's added to the level. Running transitions are not restored, because their callbacks cannot be serialized, so derived classes have to put the object into a state that doesn't wait for such a callback.