Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work on d_a_obj_lv3Water #2261

Merged
merged 3 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 49 additions & 12 deletions include/d/actor/d_a_obj_lv3Water.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef D_A_OBJ_LV3WATER_H
#define D_A_OBJ_LV3WATER_H

#include "d/d_bg_s_movebg_actor.h"
#include "d/d_event_lib.h"
#include "f_op/f_op_actor_mng.h"

/**
Expand All @@ -11,32 +13,67 @@
* @details
*
*/
class daLv3Water_c : public fopAc_ac_c {
class daLv3Water_c : public dBgS_MoveBgActor,
public request_of_phase_process_class,
public dEvLib_callback_c {
public:
typedef void (daLv3Water_c::*modeFunc)();

enum Mode {
WAIT,
LEVEL_CTRL,
};

daLv3Water_c() : dEvLib_callback_c(this) {}

/* 80C58838 */ void setBaseMtx();
/* 80C5891C */ void CreateHeap();
/* 80C58ABC */ void create();
/* 80C58D68 */ void Execute(f32 (**)[3][4]);
/* 80C5891C */ virtual int CreateHeap();
/* 80C58ABC */ int create();
/* 80C58D68 */ virtual int Execute(Mtx**);
/* 80C58E20 */ void effectSet();
/* 80C596F4 */ void mode_proc_wait();
/* 80C59754 */ void mode_init_levelCtrl();
/* 80C597FC */ void mode_proc_levelCtrl();
/* 80C598BC */ void Draw();
/* 80C59AA0 */ void Delete();
/* 80C59AE0 */ void eventStart();
/* 80C59D80 */ ~daLv3Water_c();
/* 80C598BC */ virtual int Draw();
/* 80C59AA0 */ virtual int Delete();

/* 80C59D80 */ virtual ~daLv3Water_c();
/* 80C59AE0 */ virtual BOOL eventStart();

int getParam() { return fpcM_GetParam(this) >> 0xC & 0x0FFF; }
int getParamSw() { return fpcM_GetParam(this) & 0xFF; }
int getParamEvent() { return shape_angle.x & 0xFF; }
u8 getParamType() { return (shape_angle.x >> 8) & 0xFF; }
u8 getType() { return mType; }

private:
/* 0x568 */ u8 field_0x568[0x628 - 0x568];
/* 0x5B8 */ request_of_phase_process_class mPhase;
/* 0x5C0 */ J3DModel* mpModel1;
/* 0x5C4 */ J3DModel* mpModel2;
/* 0x5C8 */ mDoExt_btkAnm mBtk1;
/* 0x5E0 */ mDoExt_btkAnm mBtk2;
/* 0x5F8 */ u8 mMode;
/* 0x5F9 */ u8 mType;
/* 0x5FC */ f32 field_0x5fc;
/* 0x600 */ u8 field_0x600;
/* 0x601 */ u8 field_0x601;
/* 0x602 */ u8 mSwitch1;
/* 0x603 */ u8 mSwitch2;
/* 0x604 */ u8 field_0x604;
/* 0x605 */ u8 field_0x605;
/* 0x608 */ u32 mEmitterIDs[8];
};

STATIC_ASSERT(sizeof(daLv3Water_c) == 0x628);

class daLv3Water_HIO_c {
class daLv3Water_HIO_c : public mDoHIO_entry_c {
public:
/* 80C587CC */ daLv3Water_HIO_c();
/* 80C59C34 */ ~daLv3Water_HIO_c();
};
/* 80C59C34 */ virtual ~daLv3Water_HIO_c();

/* 0x00 */ /* vtable */

/* 0x04 */ u8 field_0x04;
};

#endif /* D_A_OBJ_LV3WATER_H */
Loading
Loading