Skip to content
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
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1562,7 +1562,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(NonMatching, "d_a_obj_gpTaru"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_hhashi"),
ActorRel(NonMatching, "d_a_obj_kanban2"),
ActorRel(NonMatching, "d_a_obj_kbacket"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kbacket"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kgate"),
ActorRel(Equivalent, "d_a_obj_klift00"), # vtable order
ActorRel(NonMatching, "d_a_obj_ktOnFire"),
Expand Down
139 changes: 119 additions & 20 deletions include/d/actor/d_a_obj_kbacket.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,46 @@
#ifndef D_A_OBJ_KBACKET_H
#define D_A_OBJ_KBACKET_H

#include "SSystem/SComponent/c_math.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"

struct daObj_KBacket_HIOParam
{
f32 field_0x0;
f32 field_0x4;
f32 field_0x8;
f32 field_0xc;
f32 field_0x10;
f32 field_0x14;
f32 field_0x18;
f32 field_0x1c;
f32 field_0x20;
f32 field_0x24;
f32 field_0x28;
};

class daObj_KBacket_HIO_c
#ifdef DEBUG
: public mDoHIO_entry_c
#endif
{
public:
#ifdef DEBUG
void genMessage(JORMContext*);

daObj_KBacket_HIOParam param;
#endif
};

class daObj_KBacket_Param_c {
public:
/* 80587D18 */ virtual ~daObj_KBacket_Param_c() {}

static const daObj_KBacket_HIOParam m;
};

/**
* @ingroup actors-objects
* @class daObj_KBacket_c
Expand All @@ -13,35 +51,96 @@
*/
class daObj_KBacket_c : public fopAc_ac_c {
public:
/* 80585E4C */ ~daObj_KBacket_c();
/* 80586048 */ void create();
/* 80586604 */ void CreateHeap();
/* 80586704 */ void Delete();
/* 80586738 */ void Execute();
/* 8058742C */ void Draw();
/* 805875A0 */ void createHeapCallBack(fopAc_ac_c*);
/* 0x568 */ daObj_KBacket_HIO_c* mHIO;
/* 0x56C */ request_of_phase_process_class field_0x56c;
/* 0x574 */ J3DModel* mpModel;
/* 0x578 */ dBgS_ObjAcch mObjAcch;
/* 0x750 */ dCcD_Stts mStts;
/* 0x78C */ dBgS_AcchCir mAcchCir;
/* 0x7CC */ cBgS_GndChk mGndChk;
/* 0x808 */ dCcD_Cyl mCyl;
/* 0x90C */ cM3dGLin mLine;
/* 0x960 */ dBgS_LinChk mLinChk;
/* 0x9D0 */ u8 field_0x9d0;
/* 0x9D4 */ cXyz field_0x9d4;
/* 0x9E0 */ cXyz field_0x9e0;
/* 0x9EC */ csXyz field_0x9ec;
/* 0x9F4 */ int field_0x9f4;
/* 0x9F8 */ int field_0x9f8;
/* 0x9FC */ f32 field_0x9fc;
/* 0xA00 */ f32 field_0xa00;
/* 0xA04 */ f32 field_0xa04;
/* 0xA08 */ u8 field_0xa08[0xa0c - 0xa08];
/* 0xA0C */ f32 field_0xa0c;
/* 0xA10 */ f32 field_0xa10;
/* 0xA14 */ s16 field_0xa14;
/* 0xA18 */ s16 field_0xa16;
/* 0xA18 */ s16 field_0xa18;
/* 0xA1A */ s16 field_0xa1a;
/* 0xA1A */ s16 field_0xa1c;
/* 0xA1A */ u8 field_0xa1e[0xa24 - 0xa1e];
/* 0xA24 */ u32 field_0xa24[4];
/* 0xA34 */ u32 field_0xa34;
/* 0xA38 */ u8 field_0xa38[0xa3c - 0xa38];
/* 0xA3C */ u32 field_0xa3c;
/* 0xA40 */ u32 field_0xa40;
/* 0xA44 */ u8 field_0xa44;
/* 0xA45 */ u8 field_0xa45;
/* 0xA46 */ u8 field_0xa46;
/* 0xA47 */ u8 field_0xa47;
/* 0xA48 */ u8 field_0xa48;
/* 0xA49 */ u8 field_0xa49;
/* 0xA49 */ u8 field_0xa4a;
/* 0xA4B */ u8 field_0xa4b;
/* 0xA4C */ u8 field_0xa4c[0xa50 - 0xa4c];

/* 80585E4C */ virtual ~daObj_KBacket_c();
/* 80586048 */ int create();
int setLaunchParam(float param_0, float param_1, short param_2) {
float fVar2;

s16 iVar1 = cM_deg2s(param_1);
speed.setall(0.0f);
speed.y = param_0 * cM_ssin(iVar1);
speedF = param_0 * cM_scos(iVar1);
if (field_0x9d0 == 0x0) {
current.angle.y = param_2 + 0x4000;
}
if (field_0x9d0 == 0x1) {
current.angle.y = param_2 + -0x4000;
}
shape_angle.y = param_2;
field_0xa18 = 0x800;
field_0xa44 = 1;
field_0xa47 = 1;
}
u8 getType() {
u8 param = fopAcM_GetParam(this);
switch (param & 0xff) {
case 0:
return 0;
case 1:
return 1;
default:
return 0;
}
}
/* 80586604 */ int CreateHeap();
/* 80586704 */ int Delete();
/* 80586738 */ int Execute();
/* 8058742C */ int Draw();
/* 805875A0 */ static void createHeapCallBack(fopAc_ac_c*);
/* 805875C0 */ void setEnvTevColor();
/* 8058761C */ void setRoomNo();
/* 80587660 */ void reset();
/* 80587694 */ void setMtx();
/* 805877C4 */ void calcRollAngle(s16, int);
/* 80587864 */ void getWallAngle(s16, s16*);
/* 805877C4 */ s16 calcRollAngle(s16, int);
/* 80587864 */ int getWallAngle(s16, s16*);
/* 805879F4 */ void setSmokePrtcl();
/* 80587A70 */ void setWaterPrtcl();
/* 80587B68 */ void setHamonPrtcl();

private:
/* 0x568 */ u8 field_0x568[0xa54 - 0x568];
};

STATIC_ASSERT(sizeof(daObj_KBacket_c) == 0xa54);

class daObj_KBacket_Param_c {
public:
/* 80587D18 */ ~daObj_KBacket_Param_c();

static u8 const m[44];
};


#endif /* D_A_OBJ_KBACKET_H */
Loading