mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
d_bg_s_acch 70%
This commit is contained in:
@@ -27,7 +27,12 @@ public:
|
||||
mGrpPassChk = NULL;
|
||||
unk_0x0C = 1;
|
||||
}
|
||||
void SetExtChk(cBgS_Chk&);
|
||||
void SetExtChk(cBgS_Chk& other) {
|
||||
mPolyPassChk = other.mPolyPassChk;
|
||||
mGrpPassChk = other.mGrpPassChk;
|
||||
mActorPid = other.mActorPid;
|
||||
unk_0x0C = other.unk_0x0C;
|
||||
}
|
||||
bool ChkSameActorPid(unsigned int) const;
|
||||
|
||||
void SetActorPid(u32 pid) { mActorPid = pid; }
|
||||
|
||||
@@ -21,7 +21,7 @@ class cM3dGCir : public cM2dGCir {
|
||||
f32 mPosZ;
|
||||
|
||||
public:
|
||||
cM3dGCir(void);
|
||||
cM3dGCir(void) {}
|
||||
virtual ~cM3dGCir(void) {}
|
||||
void Set(f32, f32, f32, f32);
|
||||
};
|
||||
|
||||
@@ -1061,8 +1061,6 @@ public:
|
||||
/* 0x0708 */ dBgS_BoomerangLinChk mBoomerangLinChk;
|
||||
/* 0x0774 */ dBgS_LinkGndChk mGndChk;
|
||||
/* 0x07C8 */ dBgS_LinkRoofChk mRoofChk;
|
||||
/* 0x080C */ void* field_0x080c;
|
||||
/* 0x0810 */ void* field_0x0810;
|
||||
/* 0x0814 */ dBgS_ArrowLinChk mArrowLinChk;
|
||||
/* 0x0880 */ dBgS_MirLightLinChk mMirLightLinChk;
|
||||
/* 0x08EC */ u8 field_0x08EC[0x0910 - 0x08EC];
|
||||
|
||||
+24
-18
@@ -68,6 +68,9 @@ public:
|
||||
/* 0x004000 */ LINE_CHECK_NONE = (1 << 14),
|
||||
/* 0x008000 */ CLR_SPEED_Y = (1 << 15),
|
||||
/* 0x010000 */ LINE_CHECK_HIT = (1 << 16),
|
||||
/* 0x020000 */ SEA_CHECK = (1 << 17),
|
||||
/* 0x040000 */ SEA_WATER_HEIGHT = (1 << 18),
|
||||
/* 0x080000 */ SEA_IN = (1 << 19),
|
||||
/* 0x100000 */ MOVE_BG_ONLY = (1 << 20),
|
||||
/* 0x200000 */ GND_THIN_CELLING_OFF = (1 << 21),
|
||||
/* 0x400000 */ WALL_SORT = (1 << 22),
|
||||
@@ -103,16 +106,17 @@ public:
|
||||
void OnWallSort();
|
||||
bool ChkWallSort();
|
||||
bool ChkLineDown();
|
||||
bool ChkRoofHit() const;
|
||||
void ClrGroundHit();
|
||||
bool ChkGroundHit() const;
|
||||
f32 GetOnePolyInfo(cBgS_PolyInfo*);
|
||||
f32 GetWallAddY(Vec&, int);
|
||||
|
||||
virtual ~dBgS_Acch();
|
||||
|
||||
cXyz* GetPos() { return pm_pos; }
|
||||
cXyz* GetOldPos() { return pm_old_pos; }
|
||||
f32 GetGroundH() const { return m_ground_h; }
|
||||
f32 GetRoofHeight() const { return m_roof_height; }
|
||||
f32 GetGroundH() { return m_ground_h; }
|
||||
f32 GetRoofHeight() { return m_roof_height; }
|
||||
f32 GetSeaHeight() { return m_sea_height; }
|
||||
void SetLin() { m_lin.SetStartEnd(*pm_old_pos, *pm_pos); }
|
||||
bool ChkGroundFind() { return m_flags & GROUND_FIND; }
|
||||
bool ChkGroundHit() { return m_flags & GROUND_HIT; }
|
||||
@@ -155,6 +159,9 @@ public:
|
||||
bool ChkMoveBGOnly() const { return m_flags & MOVE_BG_ONLY; }
|
||||
void SetWallHit() { m_flags |= WALL_HIT; }
|
||||
void ClrWallNone() { m_flags &= ~WALL_NONE; }
|
||||
bool ChkSeaCheckOn() { return m_flags & SEA_CHECK;}
|
||||
bool ChkSeaWaterHeight() { return m_flags & SEA_WATER_HEIGHT;}
|
||||
bool ChkSeaIn() { return m_flags & SEA_IN;}
|
||||
cM3dGCyl* GetWallBmdCylP() { return &m_wall_cyl; }
|
||||
|
||||
public:
|
||||
@@ -167,28 +174,27 @@ public:
|
||||
/* 0x040 */ cM3dGLin m_lin;
|
||||
/* 0x05C */ cM3dGCyl m_wall_cyl;
|
||||
/* 0x074 */ int m_bg_index;
|
||||
/* 0x078 */ void* field_0x7c;
|
||||
/* 0x07C */ u32 field_0x80;
|
||||
/* 0x078 */ void* field_0x78;
|
||||
/* 0x07C */ u32 field_0x7c;
|
||||
/* 0x080 */ fopAc_ac_c* m_my_ac;
|
||||
/* 0x084 */ int m_tbl_size;
|
||||
/* 0x088 */ dBgS_AcchCir* field_0x8c;
|
||||
/* 0x08C */ f32 field_0x90;
|
||||
/* 0x090 */ f32 field_0x94;
|
||||
/* 0x088 */ dBgS_AcchCir* mp_acch_cir;
|
||||
/* 0x08C */ f32 m_ground_up_h;
|
||||
/* 0x090 */ f32 m_ground_up_h_diff;
|
||||
/* 0x094 */ f32 m_ground_h;
|
||||
/* 0x098 */ f32 field_0x9c;
|
||||
/* 0x09C */ cM3dGPla field_0xa0;
|
||||
/* 0x0B0 */ u8 field_0xb4;
|
||||
/* 0x0B4 */ f32 field_0xb8;
|
||||
/* 0x0B8 */ f32 field_0xbc;
|
||||
/* 0x0BC */ u8 field_0xc0;
|
||||
/* 0x098 */ f32 field_0x98;
|
||||
/* 0x09C */ cM3dGPla m_pla;
|
||||
/* 0x0B0 */ u8 field_0xb0;
|
||||
/* 0x0B4 */ f32 field_0xb4;
|
||||
/* 0x0B8 */ f32 field_0xb8;
|
||||
/* 0x0BC */ f32 m_roof_y;
|
||||
/* 0x0C0 */ f32 m_roof_height;
|
||||
/* 0x0C4 */ f32 m_roof_crr_height;
|
||||
/* 0x0C8 */ f32 field_0xc8;
|
||||
/* 0x0CC */ int field_0xd4;
|
||||
/* 0x0D0 */ f32 field_0xd8;
|
||||
/* 0x0CC */ cBgS_PolyInfo* pm_out_poly_info;
|
||||
/* 0x0D0 */ f32 m_sea_height;
|
||||
/* 0x0D4 */ dBgS_GndChk m_gnd;
|
||||
/* 0x128 */ dBgS_RoofChk m_roof;
|
||||
/* 0x16C */ u8 field_0x16c[0x174 - 0x16C];
|
||||
/* 0x174 */ dBgS_WtrChk m_wtr;
|
||||
}; // Size: 0x1C4
|
||||
|
||||
|
||||
@@ -36,6 +36,10 @@ public:
|
||||
void SetBomb() { mbBombThrough = true; }
|
||||
void SetBoomerang() { mbBoomerangThrough = true; }
|
||||
void SetRope() { mbRopeThrough = true; }
|
||||
|
||||
void SetPassChkInfo(dBgS_PolyPassChk& other) {
|
||||
*this = other;
|
||||
}
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dBgS_PolyPassChk) == 0xC);
|
||||
|
||||
@@ -7,25 +7,34 @@
|
||||
|
||||
class dBgS_RoofChk : public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk {
|
||||
public:
|
||||
dBgS_RoofChk();
|
||||
dBgS_RoofChk() {
|
||||
SetPolyPassChk(GetPolyPassChkInfo());
|
||||
SetGrpPassChk(GetGrpPassChkInfo());
|
||||
m_pos.x = 0.0f;
|
||||
m_pos.y = 0.0f;
|
||||
m_pos.z = 0.0f;
|
||||
SetActorPid(-1);
|
||||
field_0x44 = 0;
|
||||
}
|
||||
void Init();
|
||||
void SetPos(cXyz const&);
|
||||
|
||||
virtual ~dBgS_RoofChk();
|
||||
virtual ~dBgS_RoofChk() {}
|
||||
|
||||
void i_SetPos(cXyz const& pos) { m_pos = pos; }
|
||||
void SetPos(cXyz const& pos) { m_pos = pos; }
|
||||
cXyz* GetPosP() { return &m_pos; }
|
||||
|
||||
private:
|
||||
/* 0x38 */ cXyz m_pos;
|
||||
}; // Size: 0x44
|
||||
/* 0x44 */ void* field_0x44;
|
||||
/* 0x48 */ void* field_0x48;
|
||||
}; // Size: 0x4C
|
||||
|
||||
STATIC_ASSERT(sizeof(dBgS_RoofChk) == 0x44);
|
||||
STATIC_ASSERT(sizeof(dBgS_RoofChk) == 0x4C);
|
||||
|
||||
class dBgS_LinkRoofChk : public dBgS_RoofChk {
|
||||
public:
|
||||
dBgS_LinkRoofChk() { /* SetLink(); */ }
|
||||
virtual ~dBgS_LinkRoofChk();
|
||||
};
|
||||
}; // Size: 0x4C
|
||||
|
||||
#endif /* D_BG_D_BG_S_ROOF_CHK_H */
|
||||
@@ -13,11 +13,10 @@ public:
|
||||
/* 0x4 */ MOVE_BG_ONLY = 4
|
||||
};
|
||||
|
||||
void Set(cXyz&, f32);
|
||||
dBgS_SplGrpChk();
|
||||
dBgS_SplGrpChk() {}
|
||||
void Init();
|
||||
|
||||
virtual ~dBgS_SplGrpChk();
|
||||
virtual ~dBgS_SplGrpChk() {}
|
||||
|
||||
void OffFind() { m_flags &= ~FIND; }
|
||||
void OffIn() { m_flags &= ~IN; }
|
||||
@@ -29,6 +28,10 @@ public:
|
||||
f32 GetHeight() { return m_height; }
|
||||
cXyz& GetPosP() { return m_ground; }
|
||||
f32 GetRoof() const { return m_roof; }
|
||||
void Set(cXyz& ground, f32 roof) {
|
||||
m_ground = ground;
|
||||
m_roof = roof;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x38 */ cXyz m_ground;
|
||||
|
||||
@@ -7,7 +7,7 @@ class dBgS_WtrChk : public dBgS_SplGrpChk {
|
||||
public:
|
||||
dBgS_WtrChk();
|
||||
|
||||
virtual ~dBgS_WtrChk();
|
||||
virtual ~dBgS_WtrChk() {}
|
||||
}; // Size: 0x50
|
||||
|
||||
STATIC_ASSERT(sizeof(dBgS_WtrChk) == 0x50);
|
||||
|
||||
@@ -1139,6 +1139,10 @@ inline s32 dComIfGp_roomControl_getStayNo() {
|
||||
return dStage_roomControl_c::getStayNo();
|
||||
}
|
||||
|
||||
inline dBgW* dComIfGp_roomControl_getBgW(int i_roomNo) {
|
||||
return dStage_roomControl_c::getBgW(i_roomNo);
|
||||
}
|
||||
|
||||
inline void dComIfGp_roomControl_init() {
|
||||
g_dComIfG_gameInfo.play.getRoomControl()->init();
|
||||
}
|
||||
|
||||
+4
-4
@@ -770,7 +770,7 @@ public:
|
||||
/* 0x18 */ int field_0x18[2];
|
||||
};
|
||||
|
||||
class dBgW_base;
|
||||
class dBgW;
|
||||
class dStage_roomStatus_c : public dStage_roomDt_c {
|
||||
public:
|
||||
/* 0x054 */ dKy_tevstr_c mTevStr;
|
||||
@@ -780,7 +780,7 @@ public:
|
||||
/* 0x107 */ s8 mZoneNo;
|
||||
/* 0x108 */ s8 mMemBlockID;
|
||||
/* 0x10C */ int mProcID;
|
||||
/* 0x110 */ dBgW_base* mpBgW;
|
||||
/* 0x110 */ dBgW* mpBgW;
|
||||
|
||||
int getZoneNo() const { return mZoneNo; }
|
||||
~dStage_roomStatus_c() {}
|
||||
@@ -801,7 +801,7 @@ public:
|
||||
void checkDrawArea() const;
|
||||
dStage_darkStatus_c* getDarkStatus();
|
||||
u32 getDarkMode();
|
||||
void getBgW(int);
|
||||
static dBgW* getBgW(int i_roomNo);
|
||||
|
||||
static JKRExpHeap* createMemoryBlock(int, u32);
|
||||
static void destroyMemoryBlock();
|
||||
@@ -830,7 +830,7 @@ public:
|
||||
mStatus[i_roomNo].mMemBlockID = i_blockID;
|
||||
}
|
||||
|
||||
static void setBgW(int param_0, dBgW_base* i_bgw) { mStatus[param_0].mpBgW = i_bgw; }
|
||||
static void setBgW(int i_roomNo, dBgW* i_bgw) { mStatus[i_roomNo].mpBgW = i_bgw; }
|
||||
|
||||
BOOL checkStatusFlag(int i_roomNo, u8 flag) const {
|
||||
return cLib_checkBit(mStatus[i_roomNo].mFlags, flag);
|
||||
|
||||
@@ -89,13 +89,12 @@ struct actor_process_profile_definition2 {
|
||||
class JKRSolidHeap;
|
||||
|
||||
enum dEvt_Command_e {
|
||||
dEvtCmd_NONE_e,
|
||||
dEvtCmd_INTALK_e,
|
||||
dEvtCmd_INDEMO_e,
|
||||
dEvtCmd_INDOOR_e,
|
||||
dEvtCmd_INGETITEM_e,
|
||||
dEvtCmd_INCATCH_e = 6,
|
||||
dEvtCmd_DUMMY = 0xFFFF,
|
||||
dEvtCmd_NONE_e = 0x0000,
|
||||
dEvtCmd_INTALK_e = 0x0001,
|
||||
dEvtCmd_INDEMO_e = 0x0002,
|
||||
dEvtCmd_INDOOR_e = 0x0003,
|
||||
dEvtCmd_INGETITEM_e = 0x0004,
|
||||
dEvtCmd_INCATCH_e = 0x0006,
|
||||
};
|
||||
|
||||
enum dEvt_Condition_e {
|
||||
@@ -104,7 +103,6 @@ enum dEvt_Condition_e {
|
||||
dEvtCnd_CANDOOR_e = 0x0004,
|
||||
dEvtCnd_CANGETITEM_e = 0x0008,
|
||||
dEvtCnd_CANTALKITEM_e = 0x0020,
|
||||
dEvtCnd_DUMMY = 0x8000,
|
||||
};
|
||||
|
||||
class dEvt_info_c {
|
||||
|
||||
@@ -177,19 +177,14 @@ void daPy_npc_c::drawDamageFog() {
|
||||
return;
|
||||
}
|
||||
|
||||
cXyz temp;
|
||||
f32 temp_f1;
|
||||
f32 temp_f2;
|
||||
mDoLib_pos2camera(¤t.pos, &temp);
|
||||
temp_f2 = fabs(cM_ssin(g_Counter.mTimer * 0x800));
|
||||
cXyz camPos;
|
||||
mDoLib_pos2camera(¤t.pos, &camPos);
|
||||
f32 adjust = fabsf(cM_ssin(g_Counter.mTimer * 0x800));
|
||||
mTevStr.mFogColor.r = 255;
|
||||
mTevStr.mFogColor.g = 60;
|
||||
mTevStr.mFogColor.b = 60;
|
||||
|
||||
temp_f1 = -temp.z;
|
||||
temp_f1 -= 200.0f;
|
||||
temp_f2 = 200.0f * temp_f2;
|
||||
mTevStr.mFogStartZ = temp_f1 + temp_f2;
|
||||
mTevStr.mFogStartZ = (-camPos.z - 200.0f) + 200.0f * adjust;
|
||||
mTevStr.mFogEndZ = mTevStr.mFogStartZ + 300.0f;
|
||||
}
|
||||
|
||||
|
||||
+214
-65
@@ -3,32 +3,73 @@
|
||||
// Translation Unit: d_bg_s_acch.cpp
|
||||
//
|
||||
|
||||
#include "d_bg_s_acch.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_bg_s.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
|
||||
bool daSea_ChkArea(f32, f32);
|
||||
f32 daSea_calcWave(f32, f32);
|
||||
|
||||
/* 800A257C-800A25F4 .text __ct__12dBgS_AcchCirFv */
|
||||
dBgS_AcchCir::dBgS_AcchCir() {
|
||||
/* Nonmatching */
|
||||
m_flags = 0;
|
||||
m_wall_rr = 0.0f;
|
||||
field_0x2c = 0.0f;
|
||||
m_wall_h = 0.0f;
|
||||
m_wall_r = 0.0f;
|
||||
m_wall_angle_y = 0;
|
||||
m_wall_h_direct = 0.0f;
|
||||
}
|
||||
|
||||
/* 800A25F4-800A25FC .text SetWallR__12dBgS_AcchCirFf */
|
||||
void dBgS_AcchCir::SetWallR(float) {
|
||||
/* Nonmatching */
|
||||
void dBgS_AcchCir::SetWallR(f32 radius) {
|
||||
m_wall_r = radius;
|
||||
}
|
||||
|
||||
/* 800A25FC-800A2624 .text SetWall__12dBgS_AcchCirFff */
|
||||
void dBgS_AcchCir::SetWall(float, float) {
|
||||
/* Nonmatching */
|
||||
void dBgS_AcchCir::SetWall(f32 height, f32 radius) {
|
||||
m_wall_h = height;
|
||||
SetWallR(radius);
|
||||
}
|
||||
|
||||
/* 800A2624-800A29B0 .text __dt__9dBgS_AcchFv */
|
||||
dBgS_Acch::~dBgS_Acch() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A29B0-800A2CFC .text __ct__9dBgS_AcchFv */
|
||||
dBgS_Acch::dBgS_Acch() {
|
||||
/* Nonmatching */
|
||||
SetPolyPassChk(GetPolyPassChkInfo());
|
||||
SetGrpPassChk(GetGrpPassChkInfo());
|
||||
m_flags = 0;
|
||||
SetRoofNone();
|
||||
pm_pos = NULL;
|
||||
pm_old_pos = NULL;
|
||||
pm_speed = NULL;
|
||||
m_ground_h = 1000000000.0f;
|
||||
m_ground_up_h = 0.0f;
|
||||
field_0x98 = 98.0f;
|
||||
m_ground_up_h_diff = 0.0f;
|
||||
field_0xb0 = 0;
|
||||
field_0xb4 = 0.0f;
|
||||
field_0xb8 = 0.0f;
|
||||
m_tbl_size = 0;
|
||||
mp_acch_cir = NULL;
|
||||
m_roof_y = 0.0f;
|
||||
m_roof_height = 0.0f;
|
||||
m_roof_crr_height = 0.0f;
|
||||
field_0xc8 = 200.0f;
|
||||
pm_angle = NULL;
|
||||
pm_shape_angle = NULL;
|
||||
m_my_ac = NULL;
|
||||
pm_out_poly_info = NULL;
|
||||
m_sea_height = 1000000000.0f;
|
||||
}
|
||||
|
||||
static void dummy1() {
|
||||
OSReport("***********************************\ndBgS_Acch::copy constructer called.\n***********************************\n");
|
||||
}
|
||||
|
||||
/* 800A2CFC-800A2D78 .text Init__9dBgS_AcchFv */
|
||||
@@ -37,8 +78,19 @@ void dBgS_Acch::Init() {
|
||||
}
|
||||
|
||||
/* 800A2D78-800A2E80 .text Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz */
|
||||
void dBgS_Acch::Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*) {
|
||||
/* Nonmatching */
|
||||
void dBgS_Acch::Set(cXyz* param_1, cXyz* param_2, fopAc_ac_c* param_3, int param_4, dBgS_AcchCir* param_5, cXyz* param_6, csXyz* param_7, csXyz* param_8) {
|
||||
pm_pos = param_1;
|
||||
pm_old_pos = param_2;
|
||||
JUT_ASSERT(221, pm_pos != 0);
|
||||
JUT_ASSERT(222, pm_old_pos != 0);
|
||||
|
||||
m_my_ac = param_3;
|
||||
SetActorPid(fopAcM_GetID(param_3));
|
||||
pm_speed = param_6;
|
||||
m_tbl_size = param_4;
|
||||
mp_acch_cir = param_5;
|
||||
pm_angle = param_7;
|
||||
pm_shape_angle = param_8;
|
||||
}
|
||||
|
||||
/* 800A2E80-800A2EE8 .text GroundCheckInit__9dBgS_AcchFR4dBgS */
|
||||
@@ -62,12 +114,144 @@ void dBgS_Acch::LineCheck(dBgS&) {
|
||||
}
|
||||
|
||||
/* 800A3460-800A3F50 .text CrrPos__9dBgS_AcchFR4dBgS */
|
||||
void dBgS_Acch::CrrPos(dBgS&) {
|
||||
/* Nonmatching */
|
||||
void dBgS_Acch::CrrPos(dBgS& i_bgs) {
|
||||
if (m_flags & 0x1) {
|
||||
return;
|
||||
}
|
||||
|
||||
JUT_ASSERT(494, pm_pos != 0);
|
||||
JUT_ASSERT(495, pm_old_pos != 0);
|
||||
|
||||
JUT_ASSERT(535, !(((sizeof(pm_pos->x) == sizeof(float)) ? __fpclassifyf((float)(pm_pos->x)) : __fpclassifyd((double)(pm_pos->x)) ) == 1));
|
||||
JUT_ASSERT(536, !(((sizeof(pm_pos->y) == sizeof(float)) ? __fpclassifyf((float)(pm_pos->y)) : __fpclassifyd((double)(pm_pos->y)) ) == 1));
|
||||
JUT_ASSERT(537, !(((sizeof(pm_pos->z) == sizeof(float)) ? __fpclassifyf((float)(pm_pos->z)) : __fpclassifyd((double)(pm_pos->z)) ) == 1));
|
||||
JUT_ASSERT(541, -1.0e32f < pm_pos->x && pm_pos->x < 1.0e32f && -1.0e32f < pm_pos->y && pm_pos->y < 1.0e32f && -1.0e32f < pm_pos->z && pm_pos->z < 1.0e32f);
|
||||
|
||||
i_bgs.MoveBgCrrPos(m_gnd, ChkGroundHit(), pm_pos, pm_angle, pm_shape_angle);
|
||||
|
||||
GroundCheckInit(i_bgs);
|
||||
Init();
|
||||
|
||||
f32 lowH_R = GetWallAllLowH_R();
|
||||
cXyz* temp9 = pm_old_pos;
|
||||
cXyz* temp10 = pm_pos;
|
||||
f32 distXZ2 = temp9->abs2XZ(*temp10);
|
||||
f32 distY = pm_old_pos->y - pm_pos->y;
|
||||
f32 lowH = GetWallAllLowH();
|
||||
field_0xb4 = pm_pos->y;
|
||||
f32 oldY = pm_old_pos->y;
|
||||
f32 temp7 = lowH + oldY;
|
||||
f32 temp8 = field_0x98 + pm_pos->y;
|
||||
|
||||
bool ranLineCheck = false;
|
||||
OffLineCheckHit();
|
||||
if (!ChkLineCheckNone() && !cM3d_IsZero(lowH_R)) {
|
||||
if (distXZ2 > lowH_R*lowH_R || temp7 > temp8 || distY > field_0x98 || ChkLineCheck()) {
|
||||
ranLineCheck = true;
|
||||
LineCheck(i_bgs);
|
||||
}
|
||||
}
|
||||
if (!(m_flags & WALL_NONE)) {
|
||||
i_bgs.WallCorrect(this);
|
||||
}
|
||||
if (ChkWallHit() && ranLineCheck) {
|
||||
LineCheck(i_bgs);
|
||||
}
|
||||
|
||||
m_roof_crr_height = 1000000000.0f;
|
||||
if (!(m_flags & ROOF_NONE)) {
|
||||
m_roof.SetExtChk(*(cBgS_Chk*)this);
|
||||
ClrRoofHit();
|
||||
cXyz roofPos = *pm_pos;
|
||||
m_roof.SetPos(roofPos);
|
||||
m_roof_y = i_bgs.RoofChk(&m_roof);
|
||||
if (m_roof_y != 1000000000.0f && pm_pos->y + m_roof_height > m_roof_y) {
|
||||
m_roof_crr_height = m_roof_y - m_roof_height;
|
||||
SetRoofHit();
|
||||
}
|
||||
}
|
||||
|
||||
if (!(m_flags & GRND_NONE)) {
|
||||
ClrGroundFind();
|
||||
GroundCheck(i_bgs);
|
||||
GroundRoofProc(i_bgs);
|
||||
} else if (m_roof_crr_height < pm_pos->y) {
|
||||
pm_pos->y = m_roof_crr_height;
|
||||
}
|
||||
|
||||
if (!(m_flags & WATER_NONE)) {
|
||||
ClrWaterHit();
|
||||
ClrWaterIn();
|
||||
m_wtr.SetHeight(-1000000000.0f);
|
||||
|
||||
int room_no = i_bgs.GetRoomId(m_gnd);
|
||||
if (m_ground_h != -1000000000.0f && 0 <= room_no && room_no < 64) {
|
||||
JUT_ASSERT(693, 0 <= room_no && room_no < 64);
|
||||
|
||||
dBgW* bgw = dComIfGp_roomControl_getBgW(room_no);
|
||||
if (bgw) {
|
||||
f32 top;
|
||||
f32 under;
|
||||
bgw->GetTopUnder(&top, &under);
|
||||
|
||||
cXyz ground = *pm_pos;
|
||||
ground.y = under;
|
||||
m_wtr.Set(ground, top);
|
||||
m_wtr.SetPassChkInfo(*this);
|
||||
if (i_bgs.SplGrpChk(&m_wtr)) {
|
||||
SetWaterHit();
|
||||
if (m_wtr.GetHeight() > pm_pos->y) {
|
||||
SetWaterIn();
|
||||
}
|
||||
|
||||
// JUT_ASSERT's (COND) == 0 check screws up the codegen here. Using !(COND) instead fixes it.
|
||||
// JUT_ASSERT(718, m_wtr.GetHeight() >= ground.y);
|
||||
// JUT_ASSERT(719, m_wtr.GetHeight() <= top);
|
||||
if (!(m_wtr.GetHeight() >= ground.y)) {
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), __FILE__, 718, "m_wtr.GetHeight() >= ground.y");
|
||||
OSPanic(__FILE__, 718, "Halt");
|
||||
}
|
||||
if (!(m_wtr.GetHeight() <= top)) {
|
||||
JUTAssertion::showAssert(JUTAssertion::getSDevice(), __FILE__, 719, "m_wtr.GetHeight() <= top");
|
||||
OSPanic(__FILE__, 719, "Halt");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ChkSeaCheckOn()) {
|
||||
m_flags &= ~SEA_IN;
|
||||
m_sea_height = -1000000000.0f;
|
||||
|
||||
if (daSea_ChkArea(pm_pos->x, pm_pos->z)) {
|
||||
m_sea_height = daSea_calcWave(pm_pos->x, pm_pos->z);
|
||||
}
|
||||
|
||||
if (ChkSeaWaterHeight()) {
|
||||
f32 wtr_height = m_wtr.GetHeight();
|
||||
if (m_sea_height < wtr_height) {
|
||||
m_sea_height = wtr_height;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_sea_height > pm_pos->y) {
|
||||
m_flags |= SEA_IN;
|
||||
}
|
||||
}
|
||||
|
||||
JUT_ASSERT(780, !(((sizeof(pm_pos->x) == sizeof(float)) ? __fpclassifyf((float)(pm_pos->x)) : __fpclassifyd((double)(pm_pos->x)) ) == 1));
|
||||
JUT_ASSERT(781, !(((sizeof(pm_pos->y) == sizeof(float)) ? __fpclassifyf((float)(pm_pos->y)) : __fpclassifyd((double)(pm_pos->y)) ) == 1));
|
||||
JUT_ASSERT(782, !(((sizeof(pm_pos->z) == sizeof(float)) ? __fpclassifyf((float)(pm_pos->z)) : __fpclassifyd((double)(pm_pos->z)) ) == 1));
|
||||
JUT_ASSERT(786, -1.0e32f < pm_pos->x && pm_pos->x < 1.0e32f && -1.0e32f < pm_pos->y && pm_pos->y < 1.0e32f && -1.0e32f < pm_pos->z && pm_pos->z < 1.0e32f);
|
||||
}
|
||||
|
||||
static void dummy2() {
|
||||
OSReport("\033[43;30m**************************************\ndBgS_ObjAcch::copy constructer called.\n**************************************\n\033[m");
|
||||
}
|
||||
|
||||
/* 800A3F50-800A3F8C .text GetWallAllR__9dBgS_AcchFv */
|
||||
void dBgS_Acch::GetWallAllR() {
|
||||
f32 dBgS_Acch::GetWallAllR() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -82,77 +266,42 @@ void dBgS_Acch::CalcWallBmdCyl() {
|
||||
}
|
||||
|
||||
/* 800A4114-800A4128 .text SetGroundUpY__9dBgS_AcchFf */
|
||||
void dBgS_Acch::SetGroundUpY(float) {
|
||||
/* Nonmatching */
|
||||
void dBgS_Acch::SetGroundUpY(f32 y) {
|
||||
m_ground_up_h_diff = y - m_ground_up_h;
|
||||
m_ground_up_h = y;
|
||||
}
|
||||
|
||||
/* 800A4128-800A4178 .text GetWallAllLowH__9dBgS_AcchFv */
|
||||
void dBgS_Acch::GetWallAllLowH() {
|
||||
f32 dBgS_Acch::GetWallAllLowH() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A4178-800A41E4 .text GetWallAllLowH_R__9dBgS_AcchFv */
|
||||
void dBgS_Acch::GetWallAllLowH_R() {
|
||||
f32 dBgS_Acch::GetWallAllLowH_R() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A41E4-800A42B4 .text GetOnePolyInfo__9dBgS_AcchFP13cBgS_PolyInfo */
|
||||
void dBgS_Acch::GetOnePolyInfo(cBgS_PolyInfo*) {
|
||||
f32 dBgS_Acch::GetOnePolyInfo(cBgS_PolyInfo*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A42B4-800A4348 .text GetWallAddY__9dBgS_AcchFR3Veci */
|
||||
void dBgS_Acch::GetWallAddY(Vec&, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A4348-800A43A4 .text __dt__8cM3dGCirFv */
|
||||
cM3dGCir::~cM3dGCir() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A43A4-800A43EC .text __dt__8cM2dGCirFv */
|
||||
cM2dGCir::~cM2dGCir() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A43EC-800A4434 .text __dt__8cM3dGPlaFv */
|
||||
cM3dGPla::~cM3dGPla() {
|
||||
f32 dBgS_Acch::GetWallAddY(Vec&, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A4434-800A444C .text getBgW__20dStage_roomControl_cFi */
|
||||
void dStage_roomControl_c::getBgW(int) {
|
||||
/* Nonmatching */
|
||||
dBgW* dStage_roomControl_c::getBgW(int i_roomNo) {
|
||||
return mStatus[i_roomNo].mpBgW;
|
||||
}
|
||||
|
||||
/* 800A444C-800A44BC .text __dt__12dBgS_ObjAcchFv */
|
||||
dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A44BC-800A4544 .text __dt__12dBgS_AcchCirFv */
|
||||
dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A4544-800A454C .text @32@__dt__9dBgS_AcchFv */
|
||||
void @32@__dt__9dBgS_AcchFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A454C-800A4554 .text @20@__dt__9dBgS_AcchFv */
|
||||
void @20@__dt__9dBgS_AcchFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A4554-800A455C .text @32@__dt__12dBgS_ObjAcchFv */
|
||||
void @32@__dt__12dBgS_ObjAcchFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 800A455C-800A4564 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
void @20@__dt__12dBgS_ObjAcchFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
// /* 800A444C-800A44BC .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
// /* Nonmatching */
|
||||
// }
|
||||
|
||||
// /* 800A44BC-800A4544 .text __dt__12dBgS_AcchCirFv */
|
||||
// dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
// /* Nonmatching */
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user