Files
ss/include/toBeSorted/effects_struct.h
T
Elijah Thomas f42f9a0e23 d_a_obj_seat_sword OK (#107)
* d_a_obj_seat_sword mostly done

* ninja apply

* symbol cleanup

* correct code pattern, not right regs

* d_a_obj_seat_sword OK

---------

Co-authored-by: robojumper <robojumper@gmail.com>
2024-11-15 12:28:43 -05:00

70 lines
1.6 KiB
C++

#ifndef EFFECTS_STRUCT_H
#define EFFECTS_STRUCT_H
#include "common.h"
#include "d/d_base.h"
#include "m/m_angle.h"
#include "m/m_mtx.h"
#include "m/m_vec.h"
class EffectsStruct {
private:
s32 field_0x00;
u8 field_0x04[0x1C - 0x04];
public:
// vt at 0x1C
EffectsStruct();
EffectsStruct(dBase_c *);
virtual ~EffectsStruct();
inline void init(dBase_c *owner) {
mpOwner = owner;
}
void remove(bool);
void fn_80027320(u8);
void fn_80029920(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
void fn_80029980(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
void fn_800299F0(u16 effect, mMtx_c *mtx, void *, void *);
void fn_80029A10(u16 effect, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, void *, void *);
void setMtx(const mMtx_c &);
bool checkField0x00() const {
return field_0x00 != 0;
}
private:
u8 field_0x20[0x28 - 0x20];
/* 0x28 */ dBase_c *mpOwner;
u8 field_0x2C[0x34 - 0x2C];
};
// Not sure if these belongs here, but it uses EffectsStruct
// Related Functions in the 8002B100 area
class EffectsStruct_Ext {
public:
EffectsStruct_Ext() : mField_0x00(1), mField_0x01(0) {}
void init(dBase_c *, f32, f32, f32);
void setField_0x00(u8 val) {
mField_0x00 = val;
}
void setField_0x01(u8 val) {
mField_0x01 = val;
}
void fn_8002B120(f32, f32);
/* 0x00 */ u8 mField_0x00;
/* 0x01 */ u8 mField_0x01;
/* 0x04 */ f32 mField_0x04;
/* 0x08 */ f32 mField_0x08;
/* 0x0C */ f32 mField_0x0C;
/* 0x10 */ EffectsStruct mEff;
virtual ~EffectsStruct_Ext() {}
};
#endif