SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
CameraManEvent.hpp
1#pragma once
2
3#include "Game/Camera/CameraMan.hpp"
4#include "Game/Camera/CameraTargetArg.hpp"
5#include "Inline.hpp"
6
7class CameraHolder;
11
12#define NR_FIFO_ITEMS 2
13
14class CameraManEvent : public CameraMan {
15public:
16 enum EPriority {
17
18 };
19
21 public:
23
24 CameraParamChunkEvent *mChunk; // _0
25 CameraTargetArg mTargetArg; // _4
26 u32 _14;
27 };
28
30 public:
31 inline ChunkFIFOItemPair() {
32
33 }
34
35 ChunkFIFOItem mFirst; // _0
36 ChunkFIFOItem mSecond; // _18
37 };
38
40 virtual ~CameraManEvent();
41
42 virtual void init(const JMapInfoIter &);
43
44 virtual void calc();
45 virtual void notifyActivate();
46 virtual void notifyDeactivate();
47 virtual bool isInterpolationOff() const;
48 virtual bool isCollisionOff() const;
49 virtual bool isZeroFrameMoveOff() const;
50 virtual bool isCorrectingErpPositionOff() const;
51
52 void start(long, const char *, const CameraTargetArg &, long);
53 void end(long, const char *, long);
54 bool isEventActive(long, const char *) const;
55 bool isActive() const;
56 bool doesNextChunkHaveInterpolation() const;
57 u32 getAnimCameraFrame(long, const char *) const;
58 void pauseOnAnimCamera(long, const char *);
59 void pauseOffAnimCamera(long, const char *);
60 void updateChunkFIFO();
61 void applyChunk();
62 void checkReset(ChunkFIFOItem *);
63 void changeCamera();
64 void setExtraParam();
65 void setVPanParam();
66 void resetCameraIfRequested();
67 void setSafePose();
68 CameraParamChunkEvent *findChunk(long, const char *) const NO_INLINE;
69 void requestChunk(CameraParamChunkEvent *, EPriority, const CameraTargetArg &, long);
70 bool cleanChunkFIFO(CameraParamChunk *);
71 bool isChunkFIFOEmpty() const;
72 void sendStartInterpolateFrame(CameraParamChunkEvent *, long);
73 s32 getInterpolateFrame(CameraParamChunkEvent *, long) const;
74 void sendFinishInterpolateFrame(CameraParamChunkEvent *, long);
75 s32 searchPriority(CameraParamChunk *) const;
76 bool isInFIFO(CameraParamChunk *) const;
77 bool isAnimCameraEnd(long, const char *) const;
78
79 CameraHolder *mHolder; // _48
80 CameraParamChunkHolder *mChunkHolder; // _4C
81 Camera *mCamera; // _50
82 ChunkFIFOItemPair mItems[NR_FIFO_ITEMS]; // _54
83 CameraParamChunkEvent *mChunk; // _B4
84 u32 _B8;
85 bool _BC;
86 u8 _BD[3];
87};
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.