NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
banm.hpp
1#pragma once
2#include <game/mLib/m_allocator.hpp>
3#include <lib/egg/heap/eggFrmHeap.hpp>
4#include <lib/nw4r/g3d/anm_obj.hpp>
5
6namespace m3d {
7 enum playMode_e {
8 FORWARD_LOOP, ///< Play the animation forward in a loop.
9 FORWARD_ONCE, ///< Play the animation forward once.
10 REVERSE_LOOP, ///< Play the animation in reverse in a loop.
11 REVERSE_ONCE, ///< Play the animation in reverse once.
12 PLAYMODE_INHERIT, ///< Use the play mode of the parent.
13
14 MASK_LOOP = 1, ///< Mask for loop play mode.
15 MASK_FORWARD = 2, ///< Mask for forward play mode.
16 };
17
18 class banm_c {
19 public:
20 /// @unofficial
21 enum anmType_e {
22 TYPE_ANM_CHR,
23 TYPE_ANM_VIS,
24 TYPE_ANM_MAT_CLR,
25 TYPE_ANM_TEX_PAT,
26 TYPE_ANM_TEX_SRT,
27 TYPE_ANM_OTHER ///< Never used
28 };
29
30 banm_c() : mpObj(nullptr), mpHeap(nullptr) {}
31 virtual ~banm_c();
32 virtual anmType_e getType() const = 0;
33 virtual void remove();
34 virtual void play() {}
35
36 bool createAllocator(mAllocator_c *allocator, size_t *size);
37 bool IsBound() const;
38 float getFrame() const;
39 void setFrameOnly(float frame);
40 float getRate() const;
41 void setRate(float rate);
42
43 nw4r::g3d::AnmObj *getObj() { return mpObj; }
44
45 protected:
46 nw4r::g3d::AnmObj *mpObj;
47 EGG::FrmHeap *mpHeap;
48 mAllocator_c mAllocator;
49
50 private:
51 static u32 sHeapAlignment; ///< @unofficial
52 };
53}
@ TYPE_ANM_OTHER
Never used.
Definition banm.hpp:27
static u32 sHeapAlignment
Definition banm.hpp:51
mLib 3D library
Definition anm_chr.hpp:5
playMode_e
Definition banm.hpp:7
@ MASK_FORWARD
Mask for forward play mode.
Definition banm.hpp:15
@ FORWARD_ONCE
Play the animation forward once.
Definition banm.hpp:9
@ REVERSE_LOOP
Play the animation in reverse in a loop.
Definition banm.hpp:10
@ FORWARD_LOOP
Play the animation forward in a loop.
Definition banm.hpp:8
@ PLAYMODE_INHERIT
Use the play mode of the parent.
Definition banm.hpp:12
@ REVERSE_ONCE
Play the animation in reverse once.
Definition banm.hpp:11
@ MASK_LOOP
Mask for loop play mode.
Definition banm.hpp:14