NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
lyt_pane.hpp
1#pragma once
2#include <lib/nw4r/lyt/lyt_types.hpp>
3#include <lib/nw4r/lyt/lyt_draw_info.hpp>
4#include <lib/nw4r/ut/color.hpp>
5#include <lib/nw4r/math/vec.hpp>
6#include <_dummy_classes.hpp>
7
8namespace nw4r {
9namespace lyt {
10
11class Pane {
12private:
13 enum FlagBit { BIT_VISIBLE, BIT_INFLUENCED_ALPHA, BIT_LOCATION_ADJUST };
14
15public:
16
17 Pane(const res::Pane *);
18
19 virtual ~Pane();
20
21 virtual int *GetRuntimeTypeInfo() const { return &typeInfo; }
22 virtual void CalculateMtx(const DrawInfo &);
23 virtual void Draw(const DrawInfo &);
24 virtual void DrawSelf(const DrawInfo &);
25 virtual void Animate(unsigned long);
26 virtual void AnimateSelf(unsigned long);
27 virtual ut::Color GetVtxColor(unsigned long) const;
28 virtual ut::Color SetVtxColor(unsigned long, ut::Color);
29 virtual unsigned char GetColorElement(unsigned long) const;
30 virtual void SetColorElement(unsigned long, unsigned char);
31 virtual unsigned char GetVtxColorElement(unsigned long) const;
32 virtual void SetVtxColorElement(unsigned long, unsigned char);
33 virtual Pane *FindPaneByName(const char *, bool);
34 virtual Material *FindMaterialByName(const char *, bool);
35 virtual void BindAnimation(AnimTransform *, bool, bool);
36 virtual void UnbindAnimation(AnimTransform *, bool);
37 virtual void UnbindAllAnimation(bool);
38 virtual void UnbindAnimationSelf(AnimTransform *);
39 virtual ut::LinkList<AnimationLink, 0> *FindAnimationLinkSelf(AnimTransform *);
40 virtual ut::LinkList<AnimationLink, 0> *FindAnimationLinkSelf(const AnimResource &);
41 virtual void SetAnimationEnable(AnimTransform *, bool, bool);
42 virtual void SetAnimationEnable(const AnimResource &, bool, bool);
43 virtual bool GetMaterialNum() const;
44 virtual Material *GetMaterial() const;
45 virtual Material *GetMaterial(unsigned long) const;
46 virtual void LoadMtx(const nw4r::lyt::DrawInfo &);
47
48 void AppendChild(nw4r::lyt::Pane *);
49 void RemoveChild(nw4r::lyt::Pane *);
50
51 math::VEC2 GetVtxPos() const;
52 unsigned short GetExtUserDataNum() const;
53 void *FindExtUserDataByName(const char *);
54
55 void setVisible(bool visible) {
56 detail::SetBit(&mFlags, BIT_VISIBLE, visible);
57 }
58
59 void setScale(const math::VEC2 &scale) { mScale = scale; }
60 void setAlpha(u8 alpha) { mAlpha = alpha; }
61
62public:
63 char mFill1[0x28]; // To be RE'd
64 math::VEC3 mPos;
65 math::VEC3 mRot;
66 math::VEC2 mScale;
67private:
68 float width;
69 float height;
70 char mFill2[0x64]; // To be RE'd
71 u8 mAlpha;
72 u8 mField_b9;
73 u8 mOriginType;
74
75public:
76 u8 mFlags;
77
78 static int typeInfo;
79};
80
81} // namespace lyt
82} // namespace nw4r
2D graphics drawing library.
A three-dimensional floating point vector.
Definition vec.hpp:22
A 32-bit RGBA color.
Definition color.hpp:8