New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Parameter.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadTList.h>
4#include <heap/seadDisposer.h>
5#include <math/seadVector.h>
6
7namespace sead {
8
9class ReadStream;
10
11}
12
13class ParameterBase;
14
16{
17public:
19 {
20 }
21
22 virtual void read(const void* file, u32 size) = 0;
23};
24
26{
27public:
28 ParameterBase(ParameterListBase* list, const char* name);
29 virtual ~ParameterBase();
30
31 virtual void read(sead::ReadStream& stream);
32
33 const char* getName() const { return mName; }
34
35protected:
36 const char* mName;
38};
39static_assert(sizeof(ParameterBase) == 0x24);
40
41template <typename T>
43{
44public:
45 Parameter(const T& default_value, ParameterListBase* list, const char* name)
46 : ParameterBase(list, name)
47 {
48 mValue = default_value;
49 }
50
51 virtual ~Parameter()
52 {
53 }
54
55 void read(sead::ReadStream& stream) override;
56
57 void setValue(const T& value) { mValue = value; }
58 const T& getValue() const { return mValue; }
59
60 T& operator*() { return mValue; }
61 const T& operator*() const { return mValue; }
62
63 T* operator->() { return &mValue; }
64 const T* operator->() const { return &mValue; }
65
66private:
68};
69
70template <>
71void Parameter<u32>::read(sead::ReadStream& stream);
72
73template <>
74void Parameter<f32>::read(sead::ReadStream& stream);
75
76template <>
77void Parameter<sead::Vector2f>::read(sead::ReadStream& stream);
78
82
83static_assert(sizeof(ParamU32) == 0x28);
84static_assert(sizeof(ParamF32) == 0x28);
85static_assert(sizeof(ParamVec2) == 0x2C);
Parameter< sead::Vector2f > ParamVec2
Definition Parameter.h:81
Parameter< u32 > ParamU32
Definition Parameter.h:79
Parameter< f32 > ParamF32
Definition Parameter.h:80
Definition Parameter.h:26
const char * mName
Definition Parameter.h:36
virtual ~ParameterBase()
ParameterBase(ParameterListBase *list, const char *name)
sead::TListNode< ParameterBase * > mListNode
Definition Parameter.h:37
virtual void read(sead::ReadStream &stream)
const char * getName() const
Definition Parameter.h:33
Definition Parameter.h:16
virtual void read(const void *file, u32 size)=0
ParameterListBase()
Definition Parameter.h:18
Definition Parameter.h:43
T mValue
Definition Parameter.h:67
const T & getValue() const
Definition Parameter.h:58
void setValue(const T &value)
Definition Parameter.h:57
virtual ~Parameter()
Definition Parameter.h:51
Parameter(const T &default_value, ParameterListBase *list, const char *name)
Definition Parameter.h:45
T & operator*()
Definition Parameter.h:60
const T & operator*() const
Definition Parameter.h:61
T * operator->()
Definition Parameter.h:63
const T * operator->() const
Definition Parameter.h:64
void read(sead::ReadStream &stream) override