Skip to content

Commit 3de6b37

Browse files
authored
d_a_obj_katatsumuri matching (#2524)
1 parent f03814b commit 3de6b37

File tree

3 files changed

+863
-640
lines changed

3 files changed

+863
-640
lines changed

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1967,7 +1967,7 @@ def MatchingFor(*versions) -> bool:
19671967
ActorRel(NonMatching, "d_a_obj_kaisou"),
19681968
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kamakiri"),
19691969
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kantera"),
1970-
ActorRel(NonMatching, "d_a_obj_katatsumuri"),
1970+
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_katatsumuri"),
19711971
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_kazeneko"),
19721972
ActorRel(NonMatching, "d_a_obj_kbox"),
19731973
ActorRel(NonMatching, "d_a_obj_key"),
Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef D_A_OBJ_KATATSUMURI_H
22
#define D_A_OBJ_KATATSUMURI_H
33

4+
#include "JSystem/JHostIO/JORMContext.h"
5+
#include "JSystem/JHostIO/JORReflexible.h"
6+
#include "d/d_cc_d.h"
47
#include "d/d_insect.h"
8+
#include "d/actor/d_a_player.h"
59

610
/**
711
* @ingroup actors-objects
@@ -11,12 +15,12 @@
1115
* @details
1216
*
1317
*/
14-
class daObjKAT_c : public fopAc_ac_c {
18+
class daObjKAT_c : public dInsect_c {
1519
public:
1620
/* 80C39994 */ void InitCcSph();
1721
/* 80C39A00 */ void SetCcSph();
18-
/* 80C39A58 */ void ctrlJoint(J3DJoint*, J3DModel*);
19-
/* 80C39B98 */ void CreateHeap();
22+
/* 80C39A58 */ int ctrlJoint(J3DJoint*, J3DModel*);
23+
/* 80C39B98 */ int CreateHeap();
2024
/* 80C39F0C */ void WallWalk();
2125
/* 80C3A4D8 */ void MoveAction();
2226
/* 80C3A628 */ void Action();
@@ -27,23 +31,87 @@ class daObjKAT_c : public fopAc_ac_c {
2731
/* 80C3A990 */ void ParticleSet();
2832
/* 80C3AAB4 */ void BoomChk();
2933
/* 80C3ADC8 */ void ObjHit();
30-
/* 80C3AEC8 */ void Execute();
34+
/* 80C3AEC8 */ int Execute();
3135
/* 80C3B754 */ void Z_BufferChk();
32-
/* 80C3B8D0 */ void Delete();
36+
/* 80C3B8D0 */ int Delete();
3337
/* 80C3B938 */ void setBaseMtx();
34-
/* 80C3BAAC */ void CreateChk();
35-
/* 80C3BC58 */ void create();
38+
int Draw() {
39+
if (mDraw) {
40+
Z_BufferChk();
41+
J3DModel* model = mpMorfSO->getModel();
42+
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
43+
g_env_light.setLightTevColorType_MAJI(model, &tevStr);
44+
mpBtkAnm->entry(model->getModelData());
45+
mpBrkAnm->entry(model->getModelData());
46+
fopAcM_setEffectMtx(this, model->getModelData());
47+
mpMorfSO->entryDL();
48+
if (field_0x808 == 0) {
49+
dComIfGd_setSimpleShadow(&current.pos, mAcch.GetGroundH(), 15.0f, mAcch.m_gnd, 0,
50+
-0.6f, dDlst_shadowControl_c::getSimpleTex());
51+
}
52+
}
53+
return 1;
54+
}
55+
/* 80C3BAAC */ bool CreateChk();
56+
/* 80C3BC58 */ int create();
3657

3758
private:
38-
/* 0x568 */ u8 field_0x568[0xa74 - 0x568];
59+
/* 0x590 */ dBgS_ObjAcch mAcch;
60+
/* 0x768 */ dBgS_GndChk mGndChk;
61+
/* 0x7BC */ u8 field_0x7bc[0x7c0 - 0x7bc];
62+
/* 0x7C0 */ u8 field_0x7c0;
63+
/* 0x7C1 */ u8 field_0x7c1;
64+
/* 0x7C2 */ csXyz field_0x7c2;
65+
/* 0x7C8 */ cXyz field_0x7c8;
66+
/* 0x7D4 */ s16 field_0x7d4;
67+
/* 0x7D8 */ f32 field_0x7d8;
68+
/* 0x7DC */ u8 field_0x7dc[0x7e0 - 0x7dc];
69+
/* 0x7E0 */ s16 field_0x7e0;
70+
/* 0x7E2 */ u8 field_0x7e2[0x7e8 - 0x7e2];
71+
/* 0x7E8 */ u8 field_0x7e8;
72+
/* 0x7EA */ csXyz field_0x7ea;
73+
/* 0x7F0 */ u8 field_0x7f0[0x7f2 - 0x7f0];
74+
/* 0x7F2 */ s16 field_0x7f2;
75+
/* 0x7F4 */ s16 field_0x7f4;
76+
/* 0x7F6 */ s16 field_0x7f6;
77+
/* 0x7F8 */ mDoExt_brkAnm* mpBrkAnm;
78+
/* 0x7FC */ mDoExt_btkAnm* mpBtkAnm;
79+
/* 0x800 */ f32 field_0x800;
80+
/* 0x804 */ u32 field_0x804;
81+
/* 0x808 */ u8 field_0x808;
82+
/* 0x809 */ f32 field_0x80c;
83+
/* 0x810 */ dCcD_Stts mStts;
84+
/* 0x84C */ dCcD_Sph mSph;
85+
/* 0x984 */ daPy_boomerangMove_c mBoomerangMove;
86+
/* 0x990 */ u8 field_0x990;
87+
/* 0x994 */ Z2Creature mCreatureSound;
88+
/* 0xA24 */ dBgS_AcchCir field_0xa24;
89+
/* 0xA64 */ mDoExt_McaMorfSO* mpMorfSO;
90+
/* 0xA68 */ request_of_phase_process_class mPhase;
91+
/* 0xA70 */ u8 field_0xa70;
3992
};
4093

4194
STATIC_ASSERT(sizeof(daObjKAT_c) == 0xa74);
4295

43-
class daObj_KatHIO_c {
96+
class daObj_KatHIO_c : public JORReflexible {
4497
public:
4598
/* 80C3996C */ daObj_KatHIO_c();
46-
/* 80C3C5CC */ ~daObj_KatHIO_c();
99+
/* 80C3C5CC */ virtual ~daObj_KatHIO_c() {}
100+
101+
void genMessage(JORMContext* ctx) {
102+
// Golden Snail
103+
ctx->genLabel("黄金蟲(カタツムリ)", 0x80000001, 0, NULL, -1, -1, 0x200, 24);
104+
// Model scale (male)
105+
ctx->genSlider("モデルスケール(オス)", &this->mScaleMale, 0.1f, 4.0f, 0, NULL, -1, -1,
106+
0x200, 24);
107+
// Model scale (female)
108+
ctx->genSlider("モデルスケール(メス)", &this->mScaleFemale, 0.1f, 4.0f, 0, NULL, -1, -1,
109+
0x200, 24);
110+
}
111+
112+
s8 field_0x4;
113+
f32 mScaleFemale;
114+
f32 mScaleMale;
47115
};
48116

49117
#endif /* D_A_OBJ_KATATSUMURI_H */

0 commit comments

Comments
 (0)