mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 05:14:58 -04:00
@@ -19,3 +19,6 @@ SortIncludes: false
|
||||
IncludeCategories:
|
||||
- Regex: '"d/dolzel(_rel)?\.h"'
|
||||
Priority: -1000
|
||||
IndentCaseBlocks: true
|
||||
IndentCaseLabels: true
|
||||
NamespaceIndentation: All
|
||||
|
||||
+1
-1
@@ -1535,7 +1535,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_aygr"),
|
||||
ActorRel(NonMatching, "d_a_obj_balancelift"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_barrier"),
|
||||
ActorRel(NonMatching, "d_a_obj_bemos"),
|
||||
ActorRel(Matching, "d_a_obj_bemos"),
|
||||
ActorRel(Matching, "d_a_obj_canon"),
|
||||
ActorRel(Matching, "d_a_obj_eff"),
|
||||
ActorRel(NonMatching, "d_a_obj_magmarock"),
|
||||
|
||||
+14
-17
@@ -55,29 +55,26 @@ struct TVec3 {
|
||||
|
||||
template <>
|
||||
struct TVec3<s16> : public SVec {
|
||||
// s16 x, y, z;
|
||||
|
||||
TVec3& operator=(const TVec3& b) {
|
||||
set(b.x, b.y, b.z);
|
||||
return *this;
|
||||
}
|
||||
|
||||
TVec3() {}
|
||||
|
||||
TVec3(const SVec& b) { set(b); }
|
||||
TVec3(const s16 x, const s16 y, const s16 z) { set(x, y, z); }
|
||||
|
||||
void set(const SVec& vec) {
|
||||
x = vec.x;
|
||||
y = vec.y;
|
||||
z = vec.z;
|
||||
}
|
||||
|
||||
template<typename s16>
|
||||
void set(s16 x_, s16 y_, s16 z_) {
|
||||
x = x_;
|
||||
y = y_;
|
||||
z = z_;
|
||||
x = (s16)x_;
|
||||
y = (s16)y_;
|
||||
z = (s16)z_;
|
||||
}
|
||||
|
||||
TVec3(const int x, const int y, const int z) { set(x, y, z); }
|
||||
|
||||
void set(int x_, int y_, int z_) {
|
||||
x = x_;
|
||||
y = y_;
|
||||
z = z_;
|
||||
TVec3<s16>& operator=(const TVec3<s16>& b) {
|
||||
set(b.x, b.y, b.z);
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -34,7 +34,10 @@ public:
|
||||
void onSmokeParticle() { m5F9 = true; }
|
||||
void setDefaultProc(Func func) { m55C = func; }
|
||||
void setEmitterOffset(float) {}
|
||||
void setPosAngle(cXyz&, csXyz&) {}
|
||||
void setPosAngle(cXyz& pos, csXyz& angle) {
|
||||
current.pos = pos;
|
||||
current.angle = angle;
|
||||
}
|
||||
void setSearchProc(Func func) { m550 = func; }
|
||||
|
||||
void set_mtx();
|
||||
|
||||
@@ -44,7 +44,6 @@ public:
|
||||
cXyz& getAttentionBasePos() { return field_0x754; }
|
||||
s16 getBackbone_x() { return mJntCtrl.getBackbone_x(); }
|
||||
s16 getBackbone_y() { return mJntCtrl.getBackbone_y(); }
|
||||
s8 getCattleRoomNo() { return m_cattleRoomNo; }
|
||||
cXyz& getEyePos() { return field_0x748; }
|
||||
f32 getGroundY() { return mAcch.GetGroundH(); }
|
||||
s16 getHead_x() { return mJntCtrl.getHead_x(); }
|
||||
@@ -70,10 +69,11 @@ public:
|
||||
// Note: The 0x10 bit is used in the final release, but not in the demo debug maps, so its official name is unknown.
|
||||
void offPlayerRoom(int idx) { m_playerRoom[idx] = false; }
|
||||
void onPlayerRoom(int idx) { m_playerRoom[idx] = true; }
|
||||
void setCattleRoomNo(s8 roomNo) { m_cattleRoomNo = roomNo; }
|
||||
|
||||
static bool isPlayerRoom(int idx) { return m_playerRoom[idx]; }
|
||||
static bool isPlayerRoom_Goat() { return isPlayerRoom(1) == true; }
|
||||
static s8 getCattleRoomNo() { return m_cattleRoomNo; }
|
||||
static void setCattleRoomNo(s8 roomNo) { m_cattleRoomNo = roomNo; }
|
||||
|
||||
cPhs_State create();
|
||||
BOOL createHeap();
|
||||
|
||||
+125
-38
@@ -2,61 +2,148 @@
|
||||
#define D_A_OBJ_BEMOS_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_bg_s_gnd_chk.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class JPABaseEmitter;
|
||||
class daBeam_c;
|
||||
|
||||
class daBemos_c : public fopAc_ac_c {
|
||||
typedef BOOL (daBemos_c::*EyeProc)();
|
||||
|
||||
public:
|
||||
inline cPhs_State _create();
|
||||
inline bool _delete();
|
||||
inline bool _draw();
|
||||
inline bool _execute();
|
||||
void checkEyeProc(int (daBemos_c::*)()) {}
|
||||
void setEyeProc(int (daBemos_c::*)()) {}
|
||||
bool checkEyeProc(EyeProc proc) {
|
||||
return m290 == proc;
|
||||
}
|
||||
void setEyeProc(EyeProc proc) {
|
||||
m290 = proc;
|
||||
}
|
||||
|
||||
void set_mtx();
|
||||
void CreateHeap1();
|
||||
void CreateHeap2();
|
||||
void CreateHeap3();
|
||||
void CreateHeap();
|
||||
void CreateInit1();
|
||||
void CreateInit2();
|
||||
void CreateInit3();
|
||||
void CreateInit();
|
||||
void blue_range_check(int, csXyz*);
|
||||
void red_range_check(int, csXyz*);
|
||||
void yellow_range_check(int, csXyz*);
|
||||
void blue_eye_wait_init();
|
||||
void blue_eye_wait();
|
||||
void blue_eye_charge_init();
|
||||
void blue_eye_charge();
|
||||
void blue_eye_search_init();
|
||||
void blue_eye_search();
|
||||
void red_eye_wait_init();
|
||||
void red_eye_wait();
|
||||
void red_eye_charge_init();
|
||||
void red_eye_charge();
|
||||
void red_eye_search_init();
|
||||
void red_eye_search();
|
||||
void eye_break_init();
|
||||
void eye_break();
|
||||
void eye_dummy();
|
||||
void yellow_eye_wait_init();
|
||||
void yellow_eye_wait();
|
||||
void yellow_eye_search_init();
|
||||
void yellow_eye_search();
|
||||
BOOL CreateHeap1();
|
||||
BOOL CreateHeap2();
|
||||
BOOL CreateHeap3();
|
||||
BOOL CreateHeap();
|
||||
BOOL CreateInit1();
|
||||
BOOL CreateInit2();
|
||||
BOOL CreateInit3();
|
||||
cPhs_State CreateInit();
|
||||
BOOL blue_range_check(int, csXyz*);
|
||||
BOOL red_range_check(int, csXyz*);
|
||||
BOOL yellow_range_check(int, csXyz*);
|
||||
BOOL blue_eye_wait_init();
|
||||
BOOL blue_eye_wait();
|
||||
BOOL blue_eye_charge_init();
|
||||
BOOL blue_eye_charge();
|
||||
BOOL blue_eye_search_init();
|
||||
BOOL blue_eye_search();
|
||||
BOOL red_eye_wait_init();
|
||||
BOOL red_eye_wait();
|
||||
BOOL red_eye_charge_init();
|
||||
BOOL red_eye_charge();
|
||||
BOOL red_eye_search_init();
|
||||
BOOL red_eye_search();
|
||||
BOOL eye_break_init();
|
||||
BOOL eye_break();
|
||||
BOOL eye_dummy();
|
||||
BOOL yellow_eye_wait_init();
|
||||
BOOL yellow_eye_wait();
|
||||
BOOL yellow_eye_search_init();
|
||||
BOOL yellow_eye_search();
|
||||
void event_move();
|
||||
void guard_proc();
|
||||
void getBeamActor();
|
||||
daBeam_c* getBeamActor();
|
||||
|
||||
static const char m_arcname[];
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x290 */ EyeProc m290;
|
||||
/* 0x29C */ csXyz m29C;
|
||||
/* 0x2A2 */ u8 m2A2[0x2A4 - 0x2A2];
|
||||
/* 0x2A4 */ cXyz m2A4;
|
||||
/* 0x2B0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x2B8 */ J3DModel* m2B8;
|
||||
/* 0x2BC */ J3DModel* m2BC;
|
||||
/* 0x2C0 */ J3DModel* m2C0;
|
||||
/* 0x2C4 */ u8 m2C4[0x2C8 - 0x2C4];
|
||||
/* 0x2C8 */ mDoExt_brkAnm mBrkAnm1;
|
||||
/* 0x2E0 */ J3DAnmTevRegKey* m_sch_brk;
|
||||
/* 0x2E4 */ mDoExt_brkAnm mBrkAnm2;
|
||||
/* 0x2FC */ JPABaseEmitter* m2FC;
|
||||
/* 0x300 */ JPABaseEmitter* m300;
|
||||
/* 0x304 */ JPABaseEmitter* m304;
|
||||
/* 0x308 */ JPABaseEmitter* m308;
|
||||
/* 0x30C */ JPABaseEmitter* m30C;
|
||||
/* 0x310 */ u8 m310;
|
||||
/* 0x311 */ u8 m311[0x314 - 0x311];
|
||||
/* 0x314 */ cXyz m314;
|
||||
/* 0x320 */ f32 m320;
|
||||
/* 0x324 */ u8 m324[0x354 - 0x324];
|
||||
/* 0x354 */ cXyz m354;
|
||||
/* 0x360 */ cXyz m360;
|
||||
/* 0x36C */ cXyz m36C;
|
||||
/* 0x378 */ dCcD_Stts mSttsCyl;
|
||||
/* 0x3B4 */ dCcD_Cyl mCyl;
|
||||
/* 0x4E4 */ dCcD_Stts mSttsSph;
|
||||
/* 0x520 */ dCcD_Sph mSph;
|
||||
/* 0x64C */ dBgS_ObjGndChk mGndChk;
|
||||
/* 0x6A0 */ f32 m6A0;
|
||||
/* 0x6A4 */ s32 m6A4;
|
||||
/* 0x6A8 */ s32 m6A8;
|
||||
/* 0x6AC */ s16 m6AC;
|
||||
/* 0x6AE */ s16 m6AE;
|
||||
/* 0x6B0 */ s16 m6B0;
|
||||
/* 0x6B2 */ s16 m6B2;
|
||||
/* 0x6B4 */ u8 m6B4[0x6B6 - 0x6B4];
|
||||
/* 0x6B6 */ s16 m6B6;
|
||||
/* 0x6B8 */ u8 m6B8;
|
||||
/* 0x6B9 */ u8 m6B9;
|
||||
/* 0x6BA */ u8 m6BA;
|
||||
/* 0x6BB */ u8 m6BB;
|
||||
/* 0x6BC */ u8 m6BC;
|
||||
/* 0x6BD */ u8 m6BD;
|
||||
/* 0x6BE */ u8 m6BE[0x6BF - 0x6BE];
|
||||
/* 0x6BF */ u8 m6BF;
|
||||
/* 0x6C0 */ u8 m6C0;
|
||||
/* 0x6C1 */ u8 m6C1[0x6C4 - 0x6C1];
|
||||
}; // Size: 0x6C4
|
||||
|
||||
class daBemos_HIO_c {
|
||||
class daBemos_HIO_c : public JORReflexible {
|
||||
public:
|
||||
daBemos_HIO_c();
|
||||
virtual ~daBemos_HIO_c() {}
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x05 */ u8 m05[0x08 - 0x05];
|
||||
/* 0x08 */ f32 m08;
|
||||
/* 0x0C */ f32 m0C;
|
||||
/* 0x10 */ f32 m10;
|
||||
/* 0x14 */ f32 m14;
|
||||
/* 0x18 */ f32 m18;
|
||||
/* 0x1C */ s16 m1C;
|
||||
/* 0x1E */ s16 m1E;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ f32 m24;
|
||||
/* 0x28 */ s16 m28;
|
||||
/* 0x2A */ s16 m2A;
|
||||
/* 0x2C */ f32 m2C;
|
||||
/* 0x30 */ f32 m30;
|
||||
/* 0x34 */ f32 m34;
|
||||
/* 0x38 */ f32 m38;
|
||||
/* 0x3C */ f32 m3C;
|
||||
/* 0x40 */ s16 m40;
|
||||
/* 0x42 */ s16 m42;
|
||||
/* 0x44 */ f32 m44;
|
||||
/* 0x48 */ f32 m48;
|
||||
/* 0x4C */ u8 m4C;
|
||||
/* 0x4D */ u8 m4D[0x50 - 0x4D];
|
||||
}; // Size: 0x50
|
||||
|
||||
#endif /* D_A_OBJ_BEMOS_H */
|
||||
|
||||
+1335
-79
File diff suppressed because it is too large
Load Diff
+19
-10
@@ -259,8 +259,10 @@ dPa_followEcallBack::dPa_followEcallBack(u8 param_1, u8 param_2) {
|
||||
void dPa_followEcallBack::execute(JPABaseEmitter* emtr) {
|
||||
if (field_0x12 == 0 && !(mFlag & 2)) {
|
||||
emtr->setGlobalTranslation(mPos->x, mPos->y, mPos->z);
|
||||
if (mAngle != NULL)
|
||||
emtr->setGlobalRotation(JGeometry::TVec3<s16>(mAngle->x, mAngle->y, mAngle->z));
|
||||
if (mAngle != NULL) {
|
||||
JGeometry::TVec3<s16> tmp(mAngle->x, mAngle->y, mAngle->z);
|
||||
emtr->setGlobalRotation(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
if (emtr->isEnableDeleteEmitter()) {
|
||||
@@ -748,21 +750,26 @@ void dPa_control_c::draw(JPADrawInfo* param_1, u8 param_2) {
|
||||
|
||||
/* 8007D1DC-8007D378 .text set__13dPa_control_cFUcUsPC4cXyzPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyz */
|
||||
JPABaseEmitter* dPa_control_c::set(u8 groupID, u16 userID, const cXyz* pos, const csXyz* angle, const cXyz* scale, u8 alpha, dPa_levelEcallBack* pCallBack, s8 setupInfo, const GXColor* prm, const GXColor* env, const cXyz* globalScale) {
|
||||
JPABaseEmitter* emtr = mEmitterMng->createSimpleEmitterID(JGeometry::TVec3<f32>(pos->x, pos->y, pos->z), userID, groupID, getRM_ID(userID), NULL, NULL);
|
||||
JGeometry::TVec3<f32> tmp(pos->x, pos->y, pos->z);
|
||||
JPABaseEmitter* emtr = mEmitterMng->createSimpleEmitterID(tmp, userID, groupID, getRM_ID(userID), NULL, NULL);
|
||||
if (emtr == NULL)
|
||||
return NULL;
|
||||
|
||||
if (angle != NULL)
|
||||
emtr->setGlobalRotation(*(JGeometry::TVec3<s16>*)angle);
|
||||
if (angle != NULL) {
|
||||
JGeometry::TVec3<s16> tmp2(angle->x, angle->y, angle->z);
|
||||
emtr->setGlobalRotation(tmp2);
|
||||
}
|
||||
|
||||
if (scale != NULL)
|
||||
emtr->setGlobalScale(*scale);
|
||||
if (scale != NULL) {
|
||||
JGeometry::TVec3<f32> tmp2(scale->x, scale->y, scale->z);
|
||||
emtr->setGlobalScale(tmp2);
|
||||
}
|
||||
|
||||
emtr->mGlobalPrmColor.a = alpha;
|
||||
if (pCallBack != NULL) {
|
||||
emtr->setEmitterCallBackPtr(pCallBack);
|
||||
pCallBack->setup(emtr, pos, angle, setupInfo);
|
||||
} else if (!!(userID & 0x4000)) {
|
||||
} else if (userID & 0x4000) {
|
||||
emtr->setEmitterCallBackPtr(&mKagero);
|
||||
}
|
||||
|
||||
@@ -770,8 +777,10 @@ JPABaseEmitter* dPa_control_c::set(u8 groupID, u16 userID, const cXyz* pos, cons
|
||||
emtr->setGlobalPrmColor(prm->r, prm->g, prm->b);
|
||||
if (env != NULL)
|
||||
emtr->setGlobalEnvColor(env->r, env->g, env->b);
|
||||
if (globalScale != NULL)
|
||||
emtr->setGlobalParticleScale(*globalScale);
|
||||
if (globalScale != NULL) {
|
||||
JGeometry::TVec3<f32> tmp2(globalScale->x, globalScale->y, globalScale->z);
|
||||
emtr->setGlobalParticleScale(tmp2);
|
||||
}
|
||||
return emtr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user