summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-12-29 18:55:43 +0100
committerrobojumper <robojumper@gmail.com>2026-01-28 19:14:14 +0100
commit6dd18a9bce55c3423a851ccf0c7fcb7142736ac5 (patch)
tree67bb3569260c12256495694fc007ce46f558ffe1 /include/d
parent12c5c2862dc9c50a6a37ec964ea4c4196e6545a1 (diff)
dAcBlastboss_c::actorExecute OK
Diffstat (limited to 'include/d')
-rw-r--r--include/d/a/b/d_a_b_lastboss.h208
-rw-r--r--include/d/col/c/c_cc_d.h13
-rw-r--r--include/d/d_light_env.h12
-rw-r--r--include/d/d_stage_mgr.h2
4 files changed, 206 insertions, 29 deletions
diff --git a/include/d/a/b/d_a_b_lastboss.h b/include/d/a/b/d_a_b_lastboss.h
index 7cc03e8f..8f088a58 100644
--- a/include/d/a/b/d_a_b_lastboss.h
+++ b/include/d/a/b/d_a_b_lastboss.h
@@ -8,6 +8,8 @@
#include "m/m3d/m_anmtexsrt.h"
#include "m/m3d/m_mdl.h"
#include "m/m3d/m_smdl.h"
+#include "m/m_angle.h"
+#include "m/m_vec.h"
#include "s/s_State.hpp"
#include "toBeSorted/d_emitter.h"
#include "toBeSorted/d_enemy_sword_mdl.h"
@@ -46,6 +48,145 @@ class dAcBlastboss_c : public dAcEnBase_c {
/* 0x34 */ dAcBlastboss_c *mpOwner;
};
+ // BLastBoss.arc > g3d > model.brres > 3DModels(NW4R) > LastBoss > Bones > ...
+ enum BLastBossModelNode_e {
+ B_LAST_BOSS_NODE_center = 0,
+ B_LAST_BOSS_NODE_backbone1 = 1,
+ B_LAST_BOSS_NODE_backbone2 = 2,
+ B_LAST_BOSS_NODE_chest = 3,
+ B_LAST_BOSS_NODE_neck = 4,
+ B_LAST_BOSS_NODE_head = 5,
+ B_LAST_BOSS_NODE_browL = 6,
+ B_LAST_BOSS_NODE_browR = 7,
+ B_LAST_BOSS_NODE_chin = 8,
+ B_LAST_BOSS_NODE_hairA1 = 9,
+ B_LAST_BOSS_NODE_hairA2 = 10,
+ B_LAST_BOSS_NODE_hairA3 = 11,
+ B_LAST_BOSS_NODE_hairA4 = 12,
+ B_LAST_BOSS_NODE_hairBL1 = 13,
+ B_LAST_BOSS_NODE_hairBL2 = 14,
+ B_LAST_BOSS_NODE_hairBL3 = 15,
+ B_LAST_BOSS_NODE_hairBR1 = 16,
+ B_LAST_BOSS_NODE_hairBR2 = 17,
+ B_LAST_BOSS_NODE_hairBR3 = 18,
+ B_LAST_BOSS_NODE_hairC1 = 19,
+ B_LAST_BOSS_NODE_hairC2 = 20,
+ B_LAST_BOSS_NODE_hairC3 = 21,
+ B_LAST_BOSS_NODE_mouthL = 22,
+ B_LAST_BOSS_NODE_mouthR = 23,
+ B_LAST_BOSS_NODE_shoulderL = 24,
+ B_LAST_BOSS_NODE_armL1 = 25,
+ B_LAST_BOSS_NODE_armL2 = 26,
+ B_LAST_BOSS_NODE_assistanceL = 27,
+ B_LAST_BOSS_NODE_wristL = 28,
+ B_LAST_BOSS_NODE_indexL1 = 29,
+ B_LAST_BOSS_NODE_indexL2 = 30,
+ B_LAST_BOSS_NODE_littleL1 = 31,
+ B_LAST_BOSS_NODE_littleL2 = 32,
+ B_LAST_BOSS_NODE_middleL1 = 33,
+ B_LAST_BOSS_NODE_middleL2 = 34,
+ B_LAST_BOSS_NODE_ringL1 = 35,
+ B_LAST_BOSS_NODE_ringL2 = 36,
+ B_LAST_BOSS_NODE_thumbL1 = 37,
+ B_LAST_BOSS_NODE_thumbL2 = 38,
+ B_LAST_BOSS_NODE_shoulderR = 39,
+ B_LAST_BOSS_NODE_armR1 = 40,
+ B_LAST_BOSS_NODE_armR2 = 41,
+ B_LAST_BOSS_NODE_assistanceR = 42,
+ B_LAST_BOSS_NODE_wristR = 43,
+ B_LAST_BOSS_NODE_indexR1 = 44,
+ B_LAST_BOSS_NODE_indexR2 = 45,
+ B_LAST_BOSS_NODE_littleR1 = 46,
+ B_LAST_BOSS_NODE_littleR2 = 47,
+ B_LAST_BOSS_NODE_loc_sword01 = 48,
+ B_LAST_BOSS_NODE_middleR1 = 49,
+ B_LAST_BOSS_NODE_middleR2 = 50,
+ B_LAST_BOSS_NODE_ringR1 = 51,
+ B_LAST_BOSS_NODE_ringR2 = 52,
+ B_LAST_BOSS_NODE_thumbR1 = 53,
+ B_LAST_BOSS_NODE_thumbR2 = 54,
+ B_LAST_BOSS_NODE_belly = 55,
+ B_LAST_BOSS_NODE_waist = 56,
+ B_LAST_BOSS_NODE_legL1 = 57,
+ B_LAST_BOSS_NODE_legL2 = 58,
+ B_LAST_BOSS_NODE_ankleL = 59,
+ B_LAST_BOSS_NODE_toeL = 60,
+ B_LAST_BOSS_NODE_legR1 = 61,
+ B_LAST_BOSS_NODE_legR2 = 62,
+ B_LAST_BOSS_NODE_ankleR = 63,
+ B_LAST_BOSS_NODE_toeR = 64,
+ B_LAST_BOSS_NODE_skirtA1 = 65,
+ B_LAST_BOSS_NODE_skirtA2 = 66,
+ B_LAST_BOSS_NODE_skirtAU1 = 67,
+ B_LAST_BOSS_NODE_skirtB1 = 68,
+ B_LAST_BOSS_NODE_skirtB2 = 69,
+ B_LAST_BOSS_NODE_skirtB3 = 70,
+ B_LAST_BOSS_NODE_skirtB4 = 71,
+ B_LAST_BOSS_NODE_skirtB5 = 72,
+ B_LAST_BOSS_NODE_skirtB6 = 73,
+ B_LAST_BOSS_NODE_skirtB7 = 74,
+ B_LAST_BOSS_NODE_skirtB8 = 75,
+ B_LAST_BOSS_NODE_skirtB9 = 76,
+ B_LAST_BOSS_NODE_skirtBU1 = 77,
+ B_LAST_BOSS_NODE_skirtC1 = 78,
+ B_LAST_BOSS_NODE_skirtC2 = 79,
+ B_LAST_BOSS_NODE_skirtC3 = 80,
+ B_LAST_BOSS_NODE_skirtC4 = 81,
+ B_LAST_BOSS_NODE_skirtC5 = 82,
+ B_LAST_BOSS_NODE_skirtC6 = 83,
+ B_LAST_BOSS_NODE_skirtC7 = 84,
+ B_LAST_BOSS_NODE_skirtC8 = 85,
+ B_LAST_BOSS_NODE_skirtC9 = 86,
+ B_LAST_BOSS_NODE_skirtCU1 = 87,
+ B_LAST_BOSS_NODE_skirtD1 = 88,
+ B_LAST_BOSS_NODE_skirtD2 = 89,
+ B_LAST_BOSS_NODE_skirtD3 = 90,
+ B_LAST_BOSS_NODE_skirtD4 = 91,
+ B_LAST_BOSS_NODE_skirtD5 = 92,
+ B_LAST_BOSS_NODE_skirtD6 = 93,
+ B_LAST_BOSS_NODE_skirtD7 = 94,
+ B_LAST_BOSS_NODE_skirtD8 = 95,
+ B_LAST_BOSS_NODE_skirtD9 = 96,
+ B_LAST_BOSS_NODE_skirtDU1 = 97,
+ B_LAST_BOSS_NODE_skirtE1 = 98,
+ B_LAST_BOSS_NODE_skirtE2 = 99,
+ B_LAST_BOSS_NODE_skirtE3 = 100,
+ B_LAST_BOSS_NODE_skirtE4 = 101,
+ B_LAST_BOSS_NODE_skirtE5 = 102,
+ B_LAST_BOSS_NODE_skirtE6 = 103,
+ B_LAST_BOSS_NODE_skirtE7 = 104,
+ B_LAST_BOSS_NODE_skirtE8 = 105,
+ B_LAST_BOSS_NODE_skirtE9 = 106,
+ B_LAST_BOSS_NODE_skirtEU1 = 107,
+ B_LAST_BOSS_NODE_skirtEU2 = 108,
+ B_LAST_BOSS_NODE_skirtF1 = 109,
+ B_LAST_BOSS_NODE_skirtF2 = 110,
+ B_LAST_BOSS_NODE_skirtF3 = 111,
+ B_LAST_BOSS_NODE_skirtF4 = 112,
+ B_LAST_BOSS_NODE_skirtF5 = 113,
+ B_LAST_BOSS_NODE_skirtF6 = 114,
+ B_LAST_BOSS_NODE_skirtF7 = 115,
+ B_LAST_BOSS_NODE_skirtF8 = 116,
+ B_LAST_BOSS_NODE_skirtF9 = 117,
+ B_LAST_BOSS_NODE_skirtFU1 = 118,
+ B_LAST_BOSS_NODE_skirtG1 = 119,
+ B_LAST_BOSS_NODE_skirtG2 = 120,
+ B_LAST_BOSS_NODE_skirtG3 = 121,
+ B_LAST_BOSS_NODE_skirtG4 = 122,
+ B_LAST_BOSS_NODE_skirtG5 = 123,
+ B_LAST_BOSS_NODE_skirtG6 = 124,
+ B_LAST_BOSS_NODE_skirtG7 = 125,
+ B_LAST_BOSS_NODE_skirtG8 = 126,
+ B_LAST_BOSS_NODE_skirtG9 = 127,
+ B_LAST_BOSS_NODE_skirtGU1 = 128,
+ B_LAST_BOSS_NODE_skirtH1 = 129,
+ B_LAST_BOSS_NODE_skirtH2 = 130,
+ B_LAST_BOSS_NODE_skirtH3 = 131,
+ B_LAST_BOSS_NODE_skirtH4 = 132,
+ B_LAST_BOSS_NODE_skirtH5 = 133,
+ B_LAST_BOSS_NODE_skirtHU1 = 134,
+ };
+
public:
dAcBlastboss_c() : mStateMgr(*this, sStateID::null), mScnCallback(this) {}
virtual ~dAcBlastboss_c() {}
@@ -75,6 +216,8 @@ private:
void fn_143_6720();
void fn_143_A110(s32);
void fn_143_7B00();
+ void fn_143_7F80();
+ void fn_143_9610();
/* 0x0378 */ d3d::AnmMdlWrapper mMdl;
/* 0x03E8 */ m3d::anmTexSrt_c mAnmTexSrt;
@@ -91,14 +234,19 @@ private:
/* 0x0BAC */ STATE_MGR_DECLARE(dAcBlastboss_c);
/* 0x0BE8 */ dColliderLinkedList mCcList;
/* 0x0BF4 */ dEnemySwordMdl_c mSwordMdl;
-
/* 0x1130 */ u8 field_0x1130;
/* 0x1131 */ u8 field_0x1131;
/* 0x1132 */ u8 field_0x1132;
/* 0x1133 */ u8 field_0x1133;
-
- /* 0x1134 */ u8 _0x1134[0x113D - 0x1134];
-
+ /* 0x1134 */ u8 field_0x1134;
+ /* 0x1135 */ u8 field_0x1135;
+ /* 0x1136 */ u8 field_0x1136;
+ /* 0x1137 */ u8 field_0x1137;
+ /* 0x1138 */ u8 field_0x1138;
+ /* 0x1139 */ u8 field_0x1139;
+ /* 0x113A */ u8 field_0x113A;
+ /* 0x113B */ u8 field_0x113B;
+ /* 0x113C */ u8 field_0x113C;
/* 0x113D */ u8 field_0x113D;
/* 0x113E */ u8 field_0x113E;
/* 0x113F */ u8 field_0x113F;
@@ -109,28 +257,25 @@ private:
/* 0x1144 */ u8 field_0x1144;
/* 0x1145 */ u8 field_0x1145;
/* 0x1146 */ bool mIsSwordEmpowered;
-
- /* 0x1147 */ u8 _0x1147[0x114B - 0x1147];
-
+ /* 0x1147 */ u8 field_0x1147;
+ /* 0x1148 */ u8 field_0x1148;
+ /* 0x1149 */ s8 field_0x1149;
+ /* 0x114A */ u8 field_0x114A;
/* 0x114B */ u8 field_0x114B;
/* 0x114C */ u8 field_0x114C;
/* 0x114D */ u8 field_0x114D;
/* 0x114E */ u8 field_0x114E;
/* 0x114F */ u8 field_0x114F;
+ /* 0x1150 */ u8 field_0x1150;
- /* 0x1150 */ u8 _0x1150[0x1156 - 0x1150];
+ /* 0x1151 */ u8 _0x1151[0x1156 - 0x1151];
+
+ /* 0x1156 */ u16 field_0x1156[6];
- /* 0x1156 */ u16 field_0x1156;
- /* 0x1158 */ u16 field_0x1158;
- /* 0x115A */ u16 field_0x115A;
- /* 0x115C */ u16 field_0x115C;
- /* 0x115E */ u16 field_0x115E;
- /* 0x1160 */ u16 field_0x1160;
-
/* 0x1162 */ u8 _0x1162[0x1164 - 0x1162];
-
+
/* 0x1164 */ s16 field_0x1164;
-
+
/* 0x1166 */ u8 _0x1166[0x116A - 0x1166];
/* 0x116A */ s16 field_0x116A;
@@ -139,8 +284,9 @@ private:
/* 0x117C */ s16 field_0x117C;
- /* 0x1186 */ u8 _0x117E[0x1186 - 0x117E];
+ /* 0x117E */ u8 _0x117E[0x1184 - 0x117E];
+ /* 0x1184 */ s16 field_0x1184;
/* 0x1186 */ s16 field_0x1186;
/* 0x1188 */ u8 _0x1188[0x1190 - 0x1188];
@@ -162,27 +308,32 @@ private:
/* 0x11BC */ f32 field_0x11BC;
/* 0x11C0 */ f32 field_0x11C0;
- /* 0x11C4 */ u8 _0x11C4[0x11D4 - 0x11C4];
+ /* 0x11C4 */ u8 _0x11C4[0x11CC - 0x11C4];
+
+ /* 0x11CC */ f32 field_0x11CC;
+
+ /* 0x11D0 */ u8 _0x11D0[0x11D4 - 0x11D0];
/* 0x11D4 */ s32 field_0x11D4;
/* 0x11D8 */ s32 field_0x11D8;
- /* 0x11DC */ u8 _0x11DC[0x11E4 - 0x11DC];
-
- /* 0x11E4 */ mVec3_c field_0x11E4;
- /* 0x11F0 */ mVec3_c field_0x11F0;
- /* 0x11FC */ mVec3_c field_0x11FC;
+ /* 0x11DC */ mAng3_c field_0x11DC;
+ /* 0x11E4 */ mVec3_c mThumbL2Translation;
+ /* 0x11F0 */ mVec3_c mBackbone1Translation;
+ /* 0x11FC */ mVec3_c mChestTranslation;
/* 0x1208 */ mVec3_c field_0x1208;
- /* 0x1214 */ u8 _0x1214[0x1238 - 0x1214];
+ /* 0x1214 */ u8 _0x1214[0x1220 - 0x1214];
- /* 0x1238 */ mVec3_c field_0x1238[2];
+ /* 0x1220 */ mVec3_c field_0x1220;
+ /* 0x122C */ mVec3_c field_0x122C;
+ /* 0x1238 */ mVec3_c mToeTranslation[2];
/* 0x1250 */ mVec3_c field_0x1250[2];
/* 0x1268 */ UnkLastBossCcSph2 field_0x1260[8];
/* 0x2948 */ UnkLastBossCcSph1 field_0x2948[1];
- /* 0x2B64 */ dEmitter_c mEmitter1;
+ /* 0x2B64 */ dEmitter_c mWaterEmitter;
/* 0x2B98 */ dEmitter_c mEmitter2;
/* 0x2BCC */ dEmitter_c mEmitter3;
/* 0x2C00 */ dEmitter_c mEmitter4;
@@ -191,7 +342,8 @@ private:
/* 0x2C9C */ dEmitter_c mEmitter7;
/* 0x2CD0 */ LIGHT_INFLUENCE mLightInfo;
/* 0x2CEC */ u16 field_0x2CEC;
- /* 0x2CEE */ u8 _0x2CEE[0x2D20 - 0x2CEE];
+ /* 0x2CEE */ u8 _0x2CEE[0x2D1C - 0x2CEE];
+ /* 0x2D1C */ const char *field_0x2D1C;
/* 0x2D20 */ dTgSwordBattleGame_c *mpSwordBattleGame;
};
diff --git a/include/d/col/c/c_cc_d.h b/include/d/col/c/c_cc_d.h
index 7e51421a..69fe1e20 100644
--- a/include/d/col/c/c_cc_d.h
+++ b/include/d/col/c/c_cc_d.h
@@ -836,6 +836,12 @@ public:
void OffAtGrp(u32 grp) {
mAt.SetAtFlag(GetAtGrp() & ~grp);
}
+ void SetTgRpm(u32 f) {
+ mTg.SetRPrm(f);
+ }
+ void SetAtRpm(u32 f) {
+ mAt.SetRPrm(f);
+ }
void SetTgFlag_0xA(u16 flag) {
mTg.SetFlag_0xA(flag);
@@ -878,7 +884,9 @@ public:
return mTg.ChkSet();
}
-
+ void ClrAtActorInfo() { mAt.ClrActorInfo(); }
+ void ClrTgActorInfo() { mTg.ClrActorInfo(); }
+ void ClrCoActorInfo() { mCo.ClrActorInfo(); }
bool ChkAtEffCounter() { return mAt.ChkEffCounter(); }
bool ChkTgEffCounter() { return mTg.ChkEffCounter(); }
void ClrAtEffCounter() { mAt.ClrEffCounter(); }
@@ -981,6 +989,9 @@ public:
void ClrTgElectric() {
return mTg.OffSPrm(0x40000);
}
+ void ClrTg_0x10000() {
+ return mTg.OffSPrm(0x10000);
+ }
u32 ChkTgBonk() const {
return mTg.MskSPrm(0x200000);
}
diff --git a/include/d/d_light_env.h b/include/d/d_light_env.h
index 8e4cc20b..0ce649be 100644
--- a/include/d/d_light_env.h
+++ b/include/d/d_light_env.h
@@ -414,6 +414,10 @@ public:
return currentSpf;
}
+ SpfSetting &GetOverrideSpf() {
+ return mOverrideSpfSetting;
+ }
+
const PaletteEAF_smol_entry &getSmallEAF(s32 idx1, s32 idx2) {
return field_0x38E4.field_0x00[idx1].field_0x00[idx2];
}
@@ -430,6 +434,14 @@ public:
return field_0x2F1C;
}
+ u32 getField_0x38DC() const {
+ return field_0x38DC;
+ }
+
+ void setField_0x38DC(u32 v) {
+ field_0x38DC = v;
+ }
+
private:
/* 0x0004 */ Spf currentSpf;
/* 0x020C */ Spf spfs[20];
diff --git a/include/d/d_stage_mgr.h b/include/d/d_stage_mgr.h
index de4d0b47..65293fcc 100644
--- a/include/d/d_stage_mgr.h
+++ b/include/d/d_stage_mgr.h
@@ -169,6 +169,8 @@ public:
nw4r::g3d::Camera getCamera(s32 idx);
+ void fn_80199B60(u8);
+
dFader_c *getFader() {
return &mFader;
}