mirror of https://github.com/zeldaret/tp
d_kankyo matching (#2872)
This commit is contained in:
parent
5d0da9be7c
commit
3080360a2a
|
|
@ -21955,8 +21955,8 @@ dShopSystem_item_count = .sbss:0x8045105C; // type:object size:0x4 scope:global
|
|||
data_80451060 = .sbss:0x80451060; // type:object size:0x1 scope:local align:1 data:byte
|
||||
dShopSystem_camera_count = .sbss:0x80451064; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
S_fuwan_sin$5904 = .sbss:0x80451068; // type:object size:0x2 scope:local align:4 data:2byte
|
||||
data_8045106A = .sbss:0x8045106A; // type:object size:0x1 data:byte
|
||||
data_8045106B = .sbss:0x8045106B; // type:object size:0x5 data:byte
|
||||
init$4995 = .sbss:0x8045106A; // type:object size:0x1 data:byte
|
||||
init$4999 = .sbss:0x8045106B; // type:object size:0x1 data:byte
|
||||
init$localstatic4$draw__10dThunder_cFv = .sbss:0x80451070; // type:object size:0x1 scope:weak align:1 data:byte
|
||||
init$localstatic6$draw__10dThunder_cFv = .sbss:0x80451071; // type:object size:0x1 scope:weak align:1 data:byte
|
||||
player_px = .sbss:0x80451078; // type:object size:0x4 scope:global align:4 data:float
|
||||
|
|
|
|||
|
|
@ -21971,8 +21971,8 @@ dShopSystem_item_count = .sbss:0x8044B19C; // type:object size:0x4 scope:global
|
|||
data_80451060 = .sbss:0x8044B1A0; // type:object size:0x1 scope:local align:1 data:byte
|
||||
dShopSystem_camera_count = .sbss:0x8044B1A4; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
S_fuwan_sin$5904 = .sbss:0x8044B1A8; // type:object size:0x2 scope:local align:4 data:2byte
|
||||
data_8045106A = .sbss:0x8044B1AA; // type:object size:0x1 data:byte
|
||||
data_8045106B = .sbss:0x8044B1AB; // type:object size:0x5 data:byte
|
||||
init$4995 = .sbss:0x8044B1AA; // type:object size:0x1 data:byte
|
||||
init$4999 = .sbss:0x8044B1AB; // type:object size:0x1 data:byte
|
||||
init$localstatic4$draw__10dThunder_cFv = .sbss:0x8044B1B0; // type:object size:0x1 scope:weak align:1 data:byte
|
||||
init$localstatic6$draw__10dThunder_cFv = .sbss:0x8044B1B1; // type:object size:0x1 scope:weak align:1 data:byte
|
||||
player_px = .sbss:0x8044B1B8; // type:object size:0x4 scope:global align:4 data:float
|
||||
|
|
|
|||
|
|
@ -21978,8 +21978,8 @@ dShopSystem_item_count = .sbss:0x8045301C; // type:object size:0x4 scope:global
|
|||
lbl_80453020 = .sbss:0x80453020; // type:object size:0x1 data:byte
|
||||
dShopSystem_camera_count = .sbss:0x80453024; // type:object size:0x4 scope:global align:4 data:4byte
|
||||
S_fuwan_sin$5904 = .sbss:0x80453028; // type:object size:0x2 scope:local align:4 data:2byte
|
||||
lbl_8045302A = .sbss:0x8045302A; // type:object size:0x1 data:byte
|
||||
lbl_8045302B = .sbss:0x8045302B; // type:object size:0x5 data:byte
|
||||
init$4995 = .sbss:0x8045302A; // type:object size:0x1 data:byte
|
||||
init$4999 = .sbss:0x8045302B; // type:object size:0x1 data:byte
|
||||
init$localstatic4$draw__10dThunder_cFv = .sbss:0x80453030; // type:object size:0x1 data:byte
|
||||
init$localstatic6$draw__10dThunder_cFv = .sbss:0x80453031; // type:object size:0x1 data:byte
|
||||
player_px = .sbss:0x80453038; // type:object size:0x4 scope:global align:4 data:float
|
||||
|
|
|
|||
|
|
@ -702,7 +702,7 @@ config.libs = [
|
|||
Object(MatchingFor(ALL_GCN), "d/d_shop_item_ctrl.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_shop_system.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_gameover.cpp"),
|
||||
Object(NonMatching, "d/d_kankyo.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_kankyo.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_kyeff.cpp"),
|
||||
Object(MatchingFor(ALL_GCN, "Shield"), "d/d_kyeff2.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_ky_thunder.cpp"),
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef D_BG_D_BG_S_CHK_H
|
||||
#define D_BG_D_BG_S_CHK_H
|
||||
|
||||
#include "d/d_bg_s_grp_pass_chk.h"
|
||||
#include "d/d_bg_s_poly_pass_chk.h"
|
||||
#include "d/d_bg_s_grp_pass_chk.h"
|
||||
|
||||
class dBgS_Chk : public dBgS_PolyPassChk, public dBgS_GrpPassChk {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@
|
|||
#define D_KANKYO_D_KANKYO_H
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DStruct.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "JSystem/JHostIO/JORReflexible.h"
|
||||
#include "d/d_bg_s_gnd_chk.h"
|
||||
#include "d/d_kankyo_data.h"
|
||||
#include "d/d_kankyo_tev_str.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "f_pc/f_pc_base.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "JSystem/JHostIO/JORReflexible.h"
|
||||
|
||||
class JPABaseEmitter;
|
||||
class cBgS_PolyInfo;
|
||||
|
|
@ -145,43 +147,6 @@ struct LightStatus {
|
|||
/* 0xE4 */ f32 field_0xe4;
|
||||
}; // Size: 0xE8
|
||||
|
||||
class dKy_tevstr_c {
|
||||
public:
|
||||
// Supposedly exists but didn't work. Might be too big to inline.
|
||||
// See dPa_modelEcallBack::model_c::set.
|
||||
// inline dKy_tevstr_c& operator=(const dKy_tevstr_c& b);
|
||||
|
||||
/* 0x000 */ J3DLightObj mLightObj;
|
||||
/* 0x074 */ J3DLightObj mLights[6];
|
||||
/* 0x32C */ cXyz field_0x32c; // some light pos, unsure how it differs
|
||||
/* 0x338 */ cXyz mLightPosWorld;
|
||||
/* 0x344 */ f32 field_0x344;
|
||||
/* 0x348 */ GXColorS10 AmbCol;
|
||||
/* 0x350 */ GXColorS10 FogCol;
|
||||
/* 0x358 */ GXColorS10 TevColor;
|
||||
/* 0x360 */ GXColor TevKColor;
|
||||
/* 0x364 */ GXColor mLightInf;
|
||||
/* 0x368 */ f32 mFogStartZ;
|
||||
/* 0x36C */ f32 mFogEndZ;
|
||||
/* 0x370 */ f32 pat_ratio;
|
||||
/* 0x374 */ f32 field_0x374;
|
||||
/* 0x378 */ u16 Material_id; // Used for some sort of special material handling when non-0
|
||||
/* 0x37A */ u8 Type;
|
||||
/* 0x37B */ u8 mInitTimer;
|
||||
/* 0x37C */ u8 UseCol;
|
||||
/* 0x37D */ u8 PrevCol;
|
||||
/* 0x37E */ u8 wether_pat1;
|
||||
/* 0x37F */ u8 wether_pat0;
|
||||
/* 0x380 */ s8 room_no; // Room Color
|
||||
/* 0x381 */ u8 YukaCol; // Floor (Poly) Color
|
||||
/* 0x382 */ u8 mLightMode;
|
||||
/* 0x383 */ u8 Material_use_fg;
|
||||
/* 0x384 */ u8 field_0x384;
|
||||
/* 0x385 */ u8 field_0x385;
|
||||
}; // Size = 0x388
|
||||
|
||||
STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388);
|
||||
|
||||
class fopAc_ac_c;
|
||||
class dKyd_lightSchejule;
|
||||
class stage_palette_info_class;
|
||||
|
|
@ -514,6 +479,26 @@ inline dScnKy_env_light_c* dKy_getEnvlight() {
|
|||
return &g_env_light;
|
||||
}
|
||||
|
||||
class dKankyo_ParticlelightHIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_ParticlelightHIO_c();
|
||||
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~dKankyo_ParticlelightHIO_c() {}
|
||||
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ u8 field_0x5;
|
||||
/* 0x06 */ GXColor prim_col;
|
||||
/* 0x0A */ GXColor env_col;
|
||||
/* 0x10 */ f32 blend_ratio;
|
||||
/* 0x14 */ int field_0x14;
|
||||
/* 0x18 */ u8 type;
|
||||
/* 0x19 */ u8 field_0x19;
|
||||
/* 0x1A */ u8 field_0x1a;
|
||||
/* 0x1B */ u8 field_0x1B[0x20 - 0x1B];
|
||||
};
|
||||
|
||||
class dKankyo_lightHIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_lightHIO_c();
|
||||
|
|
@ -892,6 +877,22 @@ public:
|
|||
/* 0x1C */ dKy_flush_info step4;
|
||||
};
|
||||
|
||||
class dKankyo_dungeonlightHIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_dungeonlightHIO_c();
|
||||
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~dKankyo_dungeonlightHIO_c() {}
|
||||
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
/* 0x5 */ u8 field_0x5;
|
||||
/* 0x6 */ u8 displayDebugSphere;
|
||||
/* 0x7 */ u8 usedLights;
|
||||
/* 0x8 */ u8 field_0x8;
|
||||
/* 0x9 */ u8 field_0x9;
|
||||
};
|
||||
|
||||
class dKankyo_demolightHIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_demolightHIO_c();
|
||||
|
|
@ -934,42 +935,6 @@ public:
|
|||
/* 0x40 */ s16 minigame_high_wind_duration;
|
||||
};
|
||||
|
||||
class dKankyo_dungeonlightHIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_dungeonlightHIO_c();
|
||||
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~dKankyo_dungeonlightHIO_c() {}
|
||||
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
/* 0x5 */ u8 field_0x5;
|
||||
/* 0x6 */ u8 displayDebugSphere;
|
||||
/* 0x7 */ u8 usedLights;
|
||||
/* 0x8 */ u8 field_0x8;
|
||||
/* 0x9 */ u8 field_0x9;
|
||||
};
|
||||
|
||||
class dKankyo_ParticlelightHIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_ParticlelightHIO_c();
|
||||
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~dKankyo_ParticlelightHIO_c() {}
|
||||
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ u8 field_0x5;
|
||||
/* 0x06 */ GXColor prim_col;
|
||||
/* 0x0A */ GXColor env_col;
|
||||
/* 0x10 */ f32 blend_ratio;
|
||||
/* 0x14 */ int field_0x14;
|
||||
/* 0x18 */ u8 type;
|
||||
/* 0x19 */ u8 field_0x19;
|
||||
/* 0x1A */ u8 field_0x1a;
|
||||
/* 0x1B */ u8 field_0x1B[0x20 - 0x1B];
|
||||
};
|
||||
|
||||
class dKankyo_HIO_c : public JORReflexible {
|
||||
public:
|
||||
dKankyo_HIO_c();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
#ifndef D_D_KANKYO_TEV_STR
|
||||
#define D_D_KANKYO_TEV_STR
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DStruct.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
class dKy_tevstr_c {
|
||||
public:
|
||||
// Supposedly exists but didn't work. Might be too big to inline.
|
||||
// See dPa_modelEcallBack::model_c::set.
|
||||
// inline dKy_tevstr_c& operator=(const dKy_tevstr_c& b);
|
||||
|
||||
/* 0x000 */ J3DLightObj mLightObj;
|
||||
/* 0x074 */ J3DLightObj mLights[6];
|
||||
/* 0x32C */ cXyz field_0x32c; // some light pos, unsure how it differs
|
||||
/* 0x338 */ cXyz mLightPosWorld;
|
||||
/* 0x344 */ f32 field_0x344;
|
||||
/* 0x348 */ GXColorS10 AmbCol;
|
||||
/* 0x350 */ GXColorS10 FogCol;
|
||||
/* 0x358 */ GXColorS10 TevColor;
|
||||
/* 0x360 */ GXColor TevKColor;
|
||||
/* 0x364 */ GXColor mLightInf;
|
||||
/* 0x368 */ f32 mFogStartZ;
|
||||
/* 0x36C */ f32 mFogEndZ;
|
||||
/* 0x370 */ f32 pat_ratio;
|
||||
/* 0x374 */ f32 field_0x374;
|
||||
/* 0x378 */ u16 Material_id; // Used for some sort of special material handling when non-0
|
||||
/* 0x37A */ u8 Type;
|
||||
/* 0x37B */ u8 mInitTimer;
|
||||
/* 0x37C */ u8 UseCol;
|
||||
/* 0x37D */ u8 PrevCol;
|
||||
/* 0x37E */ u8 wether_pat1;
|
||||
/* 0x37F */ u8 wether_pat0;
|
||||
/* 0x380 */ s8 room_no; // Room Color
|
||||
/* 0x381 */ u8 YukaCol; // Floor (Poly) Color
|
||||
/* 0x382 */ u8 mLightMode;
|
||||
/* 0x383 */ u8 Material_use_fg;
|
||||
/* 0x384 */ u8 field_0x384;
|
||||
/* 0x385 */ u8 field_0x385;
|
||||
}; // Size = 0x388
|
||||
|
||||
STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388);
|
||||
|
||||
#endif /* D_D_KANKYO_TEV_STR */
|
||||
|
|
@ -14,10 +14,11 @@
|
|||
#include "string.h" // IWYU pragma: export
|
||||
#include "JSystem/JUtility/JUTGamePad.h" // IWYU pragma: export
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" // IWYU pragma: export
|
||||
#include "JSystem/JHostIO/JORReflexible.h" // IWYU pragma: export
|
||||
#include "SSystem/SComponent/c_m3d_g_pla.h" // IWYU pragma: export
|
||||
#include "SSystem/SComponent/c_bg_s_chk.h" // IWYU pragma: export
|
||||
#include "f_op/f_op_actor.h" // IWYU pragma: export
|
||||
#include "d/d_bg_s_poly_pass_chk.h" // IWYU pragma: export
|
||||
#include "d/d_bg_s_gnd_chk.h" // IWYU pragma: export
|
||||
#include "d/d_bg_s_chk.h" // IWYU pragma: export
|
||||
#include "d/d_bg_w.h" // IWYU pragma: export
|
||||
#include "d/d_com_inf_game.h" // IWYU pragma: export
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef F_OP_ACTOR_H_
|
||||
#define F_OP_ACTOR_H_
|
||||
|
||||
#include "d/d_kankyo.h"
|
||||
#include "d/d_kankyo_tev_str.h"
|
||||
#include "f_pc/f_pc_leaf.h"
|
||||
#include "global.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/actor/d_a_kytag08.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_bg_s_gnd_chk.h"
|
||||
#include "d/d_debug_viewer.h"
|
||||
#include "d/d_debug_pad.h"
|
||||
#include "d/d_kankyo_rain.h"
|
||||
|
|
@ -7511,6 +7512,13 @@ void dKy_ParticleColor_get_base(cXyz* param_0, dKy_tevstr_c* param_1, GXColor* p
|
|||
param_3->b = (sp18 * (sp50.b * (1.0f - param_6))) + (param_5->b * param_6);
|
||||
}
|
||||
|
||||
// Dummy data to force 0x30 bytes of padding between parcent_table and dScnKy_env_light's vtable.
|
||||
// This extra space is likely allocated for stripped vtables - debug indicates that dBgS_ObjGndChk
|
||||
// is used somewhere which has a 0x30 byte vtable, but I can't find a way to generate it without
|
||||
// also reserving space for cBgS_GrpPassChk and cBgS_PolyPassChk which ends up making .data too
|
||||
// large.
|
||||
static u8 dummy_padding_data_0x354[0x30] = {};
|
||||
|
||||
/* 801A9BE4-801A9CBC 1A4524 00D8+00 0/0 3/3 0/0 .text
|
||||
* dKy_ParticleColor_get_actor__FP4cXyzP12dKy_tevstr_cP8_GXColorP8_GXColorP8_GXColorP8_GXColorf */
|
||||
void dKy_ParticleColor_get_actor(cXyz* param_0, dKy_tevstr_c* tevstr_p, GXColor* param_2,
|
||||
|
|
@ -7860,12 +7868,12 @@ void dKy_WaterIn_Light_set() {
|
|||
sp8 = 3;
|
||||
}
|
||||
|
||||
#if PLATFORM_SHIELD
|
||||
for (int i = 0; i < 6; i++)
|
||||
#if PLATFORM_GCN
|
||||
#define WATERIN_LIGHT_SET_LOOP_MAX 1
|
||||
#else
|
||||
int i = 0;
|
||||
#define WATERIN_LIGHT_SET_LOOP_MAX 6
|
||||
#endif
|
||||
{
|
||||
for (int i = 0; i < WATERIN_LIGHT_SET_LOOP_MAX; i++) {
|
||||
if (kankyo->field_0x0c18[i].field_0x26 != 1) {
|
||||
dKy_twi_wolflight_set(i);
|
||||
kankyo->field_0x0c18[i].mColor.r = 0x8A;
|
||||
|
|
@ -7977,9 +7985,7 @@ void dKy_WaterIn_Light_set() {
|
|||
kankyo->field_0x0c18[i].field_0x26 = 1;
|
||||
sp10 = 1;
|
||||
|
||||
#if PLATFORM_SHIELD
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue