mirror of
https://github.com/SMGCommunity/Petari.git
synced 2026-11-10 17:49:24 -10:00
* (Cleanup) offset comments for DinoPackun * (Cleanup) offset comments for SkeletalFishBoss * (Cleanup) offset comments for CameraTranslators * (Cleanup) offset comments for Demos * (Cleanup) offset comments for Enemies * (Cleanup) offset comments for Gravities * (Cleanup) offset comments for LiveActors * (Cleanup) offset comments for Maps * (Cleanup) offset comments for MapObjs * (Cleanup) offset comments for NameObjs * (Cleanup) offset comments for NPCs * (Cleanup) offset comments for Player * (Cleanup) offset comments for Scenes * (Cleanup) offset comments for System * (Cleanup) offset comments for Utils * (Cleanup) offset comments for JSystem * (Cleanup) offset comments for MetroTRK * forgot the union comments * (Cleanup) offset comments for MSL_C * (Cleanup) offset comments for nw4r * (Cleanup) offset comments for the SDK * (Cleanup) offset comments for all that was left
49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "Game/NameObj/NameObj.hpp"
|
|
#include <JSystem/JGeometry/TVec.hpp>
|
|
|
|
class CameraShakeTask;
|
|
|
|
#define NR_VERTICAL_TASKS 7
|
|
#define NR_HORIZONTAL_TASKS 3
|
|
#define NR_INFINITY_TASKS 4
|
|
|
|
class CameraShaker : public NameObj {
|
|
public:
|
|
enum ESinglyVerticalPower {
|
|
SINGLY_VERTICAL_POWER_VERY_WEAK = 0,
|
|
SINGLY_VERTICAL_POWER_WEAK = 1,
|
|
SINGLY_VERTICAL_POWER_NORMAL_WEAK = 2,
|
|
SINGLY_VERTICAL_POWER_NORMAL = 3,
|
|
SINGLY_VERTICAL_POWER_NORMAL_STRONG = 4,
|
|
SINGLY_VERTICAL_POWER_STRONG = 5,
|
|
SINGLY_VERTICAL_POWER_VERY_STRONG = 6
|
|
};
|
|
|
|
CameraShaker(const char*);
|
|
|
|
virtual void movement();
|
|
|
|
void shakeVertical(ESinglyVerticalPower);
|
|
void shakeInfinity(NameObj*, f32, f32);
|
|
void stopShakingInfinity(NameObj*);
|
|
void createSinglyVerticalTask();
|
|
void createSinglyHorizontalTask();
|
|
void createInfinityTask();
|
|
void updateSinglyVerticalTask();
|
|
void updateSinglyHorizontalTask();
|
|
void updateInfinityTask();
|
|
void setOffset();
|
|
void addSinglyVerticalTaskOffset(TVec2f*);
|
|
void addSinglyHorizontalTaskOffset(TVec2f*);
|
|
void addInfinityTaskOffset(TVec2f*);
|
|
void adjustOffsetToScreen(TVec2f*); // TODO
|
|
void startInfinity(u32, f32, f32);
|
|
|
|
/* 0x0C */ CameraShakeTask* mVerticalTasks[NR_VERTICAL_TASKS];
|
|
/* 0x28 */ CameraShakeTask* mHorizontalTasks[NR_HORIZONTAL_TASKS];
|
|
/* 0x34 */ CameraShakeTask* mInfinityTasks[NR_INFINITY_TASKS];
|
|
/* 0x44 */ NameObj* mInfinityNameObjs[NR_INFINITY_TASKS];
|
|
};
|