SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
CameraShaker.hpp
1#pragma once
2
3#include "Game/NameObj/NameObj.hpp"
4#include "JSystem/JGeometry/TVec.hpp"
5
7
8#define NR_VERTICAL_TASKS 7
9#define NR_HORIZONTAL_TASKS 3
10#define NR_INFINITY_TASKS 4
11
12class CameraShaker : public NameObj {
13public:
14 enum ESinglyVerticalPower {
15 SINGLY_VERTICAL_POWER_VERY_WEAK = 0,
16 SINGLY_VERTICAL_POWER_WEAK = 1,
17 SINGLY_VERTICAL_POWER_NORMAL_WEAK = 2,
18 SINGLY_VERTICAL_POWER_NORMAL = 3,
19 SINGLY_VERTICAL_POWER_NORMAL_STRONG = 4,
20 SINGLY_VERTICAL_POWER_STRONG = 5,
21 SINGLY_VERTICAL_POWER_VERY_STRONG = 6
22 };
23
24 CameraShaker(const char *);
25 virtual ~CameraShaker();
26
27 virtual void movement();
28
29 void shakeVertical(ESinglyVerticalPower);
30 void shakeInfinity(NameObj *, float, float);
31 void stopShakingInfinity(NameObj *);
32 void createSinglyVerticalTask();
33 void createSinglyHorizontalTask();
34 void createInfinityTask();
35 void updateSinglyVerticalTask();
36 void updateSinglyHorizontalTask();
37 void updateInfinityTask();
38 void setOffset();
39 void addSinglyVerticalTaskOffset(TVec2f *);
40 void addSinglyHorizontalTaskOffset(TVec2f *);
41 void addInfinityTaskOffset(TVec2f *);
42 void adjustOffsetToScreen(TVec2f *); // TODO
43 void startInfinity(unsigned long, float, float);
44
45 CameraShakeTask *mVerticalTasks[NR_VERTICAL_TASKS]; // _C
46 CameraShakeTask *mHorizontalTasks[NR_HORIZONTAL_TASKS]; // _28
47 CameraShakeTask *mInfinityTasks[NR_INFINITY_TASKS]; // _34
48 NameObj *mInfinityNameObjs[NR_INFINITY_TASKS]; // _44
49};
The most basic form of an object.
Definition NameObj.hpp:11