kankyo_rain / obj_life_container mostly done, obj_glowsphere done (#2266)

* obj_life_container mostly done

* obj_glowSphere done

* kankyo_rain mostly done

* some cleanup

* more kankyo_rain cleanup
This commit is contained in:
TakaRikka 2024-12-18 10:02:52 -08:00 committed by GitHub
parent c5ab943cfc
commit ff5f31b844
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 6797 additions and 3980 deletions

View File

@ -30,10 +30,10 @@ actionMoveInit__10daGlwSph_cFv = .text:0x00000F80; // type:function size:0x24 sc
actionMove__10daGlwSph_cFv = .text:0x00000FA4; // type:function size:0xA0 scope:global
draw__10daGlwSph_cFv = .text:0x00001044; // type:function size:0x148 scope:global
_delete__10daGlwSph_cFv = .text:0x0000118C; // type:function size:0x4C scope:global
daGlwSph_Draw__FP10daGlwSph_c = .text:0x000011D8; // type:function size:0x20 scope:global
daGlwSph_Execute__FP10daGlwSph_c = .text:0x000011F8; // type:function size:0x20 scope:global
daGlwSph_Delete__FP10daGlwSph_c = .text:0x00001218; // type:function size:0x20 scope:global
daGlwSph_Create__FP10fopAc_ac_c = .text:0x00001238; // type:function size:0x20 scope:global
daGlwSph_Draw__FP10daGlwSph_c = .text:0x000011D8; // type:function size:0x20 scope:local
daGlwSph_Execute__FP10daGlwSph_c = .text:0x000011F8; // type:function size:0x20 scope:local
daGlwSph_Delete__FP10daGlwSph_c = .text:0x00001218; // type:function size:0x20 scope:local
daGlwSph_Create__FP10fopAc_ac_c = .text:0x00001238; // type:function size:0x20 scope:local
_clrLstBuf__12_GlSph_Mng_cFv = .text:0x00001258; // type:function size:0x24 scope:global
entry__12_GlSph_Mng_cFP10daGlwSph_c = .text:0x0000127C; // type:function size:0x4C scope:global
remove__12_GlSph_Mng_cFP10daGlwSph_c = .text:0x000012C8; // type:function size:0x34 scope:global
@ -67,12 +67,12 @@ mCcDObjInfo__10daGlwSph_c = .rodata:0x00000008; // type:object size:0x30 scope:g
@4103 = .rodata:0x00000050; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000054; // type:object size:0xA scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
l_cull_box = .data:0x00000020; // type:object size:0x18 scope:global data:float
l_cull_box = .data:0x00000020; // type:object size:0x18 scope:local data:float
mCcDSph__10daGlwSph_c = .data:0x00000038; // type:object size:0x40 scope:global
l_prmColor = .data:0x00000078; // type:object size:0x4 scope:global
l_envColor = .data:0x0000007C; // type:object size:0x10 scope:global
l_prmColor = .data:0x00000078; // type:object size:0x4 scope:local
l_envColor = .data:0x0000007C; // type:object size:0x10 scope:local
@3934 = .data:0x0000008C; // type:object size:0xC scope:local
@3935 = .data:0x00000098; // type:object size:0xC scope:local
@3936 = .data:0x000000A4; // type:object size:0xC scope:local
@ -84,7 +84,7 @@ l_colorKB$4111 = .data:0x000000E0; // type:object size:0x4 scope:local
l_colorCR$4112 = .data:0x000000E4; // type:object size:0x4 scope:local
l_colorCG$4113 = .data:0x000000E8; // type:object size:0x4 scope:local
l_colorCB$4114 = .data:0x000000EC; // type:object size:0x4 scope:local
l_daGlwSph_Method = .data:0x000000F0; // type:object size:0x20 scope:global
l_daGlwSph_Method = .data:0x000000F0; // type:object size:0x20 scope:local
g_profile_Obj_glowSphere = .data:0x00000110; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x00000140; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x0000014C; // type:object size:0xC scope:global
@ -115,11 +115,11 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
@3657 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0xC scope:global data:float
l_HIO = .bss:0x00000054; // type:object size:0xC scope:local data:float
@3673 = .bss:0x00000060; // type:object size:0xC scope:local
mSphMng__10daGlwSph_c = .bss:0x0000006C; // type:object size:0x3C4 scope:global
lbl_459_bss_430 = .bss:0x00000430; // type:object size:0x1 data:byte
lbl_459_bss_431 = .bss:0x00000431; // type:object size:0x1 data:byte
lbl_459_bss_430 = .bss:0x00000430; // type:object size:0x1 scope:local data:byte
lbl_459_bss_431 = .bss:0x00000431; // type:object size:0x1 scope:local data:byte
sSeId$4016 = .bss:0x00000434; // type:object size:0x14 scope:local data:4byte
mSphSe__12_GlSph_Mng_c = .bss:0x00000448; // type:object size:0x2 scope:global data:2byte
mSeClrTmr__12_GlSph_Mng_c = .bss:0x0000044A; // type:object size:0x2 scope:global data:2byte

View File

@ -1418,7 +1418,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_mg_rod"),
ActorRel(NonMatching, "d_a_midna"),
ActorRel(Equivalent, "d_a_nbomb"),
ActorRel(NonMatching, "d_a_obj_life_container"),
ActorRel(Equivalent, "d_a_obj_life_container"), # vtable ordering
ActorRel(NonMatching, "d_a_obj_yousei"),
ActorRel(NonMatching, "d_a_spinner"),
ActorRel(Matching, "d_a_suspend"),
@ -1824,7 +1824,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_ganonwall2"),
ActorRel(Matching, "d_a_obj_gb"),
ActorRel(NonMatching, "d_a_obj_geyser"),
ActorRel(NonMatching, "d_a_obj_glowSphere"),
ActorRel(Matching, "d_a_obj_glowSphere"),
ActorRel(NonMatching, "d_a_obj_gm"),
ActorRel(NonMatching, "d_a_obj_goGate"),
ActorRel(NonMatching, "d_a_obj_gomikabe"),

View File

@ -24,6 +24,23 @@ struct JUTDataFileHeader { // actual struct name unknown
/* 0x20 */ JUTDataBlockHeader mFirstBlock;
};
// unknown name. refers to ANK1 chunk of BCK files
struct J3DAnmTransform_ANK1 {
/* 0x00 */ u32 magic;
/* 0x04 */ u32 size;
/* 0x08 */ u8 attribute;
/* 0x09 */ u8 rotation_frac;
/* 0x0A */ s16 duration;
/* 0x0C */ s16 keyframe_num;
/* 0x0E */ s16 scale_entries;
/* 0x10 */ s16 rotation_entries;
/* 0x12 */ s16 translation_entries;
/* 0x14 */ u32 anm_data_offset;
/* 0x18 */ u32 scale_data_offset;
/* 0x1C */ u32 rotation_data_offset;
/* 0x20 */ u32 translation_data_offset;
};
typedef struct _GXColor GXColor;
typedef struct _GXColorS10 GXColorS10;

View File

@ -78,6 +78,7 @@ public:
J3DTexCoord* getTexCoord(u32 idx) { return mTexGenBlock->getTexCoord(idx); }
J3DZMode* getZMode() { return mPEBlock->getZMode(); }
J3DBlend* getBlend() { return mPEBlock->getBlend(); }
J3DColorChan* getColorChan(u32 idx) { return getColorBlock()->getColorChan(idx); }
void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }

View File

@ -69,6 +69,9 @@ struct cAngle {
/* Converts Degree value to s16 angle */
static s16 d2s(f32 d) { return Degree_to_SAngle(d); }
/* Converts s16 angle to Degree value */
static f32 s2d(s16 a) { return SAngle_to_Degree(a); }
template <typename T>
static T Adjust(T f1, T f2, T f3);
};

View File

@ -3,6 +3,7 @@
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_a_itembase_static.h"
#include "f_op/f_op_actor_mng.h"
struct daItemBase_data {

View File

@ -2,6 +2,78 @@
#define D_A_OBJ_GLOWSPHERE_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
class daGlwSph_c;
class _GlSph_LstInfo_c{
public:
_GlSph_LstInfo_c() {
mpSph = NULL;
mIsSet = false;
}
~_GlSph_LstInfo_c() {}
void Set(daGlwSph_c* i_sph) {
if (!mIsSet && i_sph != NULL) {
mpSph = i_sph;
mIsSet = true;
}
}
void Remove() {
mpSph = NULL;
mIsSet = false;
}
bool isSet() { return mIsSet; }
daGlwSph_c* getpSph() { return mpSph; }
private:
/* 0x0 */ daGlwSph_c* mpSph;
/* 0x4 */ s8 mIsSet;
};
class _GlSph_Mng_c {
public:
_GlSph_Mng_c() {
field_0x0 = 0;
}
~_GlSph_Mng_c() {
reset();
}
/* 80BFA4B8 */ void _clrLstBuf();
/* 80BFA4DC */ int entry(daGlwSph_c*);
/* 80BFA528 */ void remove(daGlwSph_c*);
/* 80BFA55C */ int _setting_main();
/* 80BFA5C4 */ bool _chkAllGet_main();
/* 80BFA60C */ void SphSeProc();
/* 80BFA6D8 */ static void clrSphSe();
/* 80BFA6E8 */ static u16 getSphSe();
/* 80BFA6F8 */ static void incSphSe();
void setting() {
_setting_main();
}
bool isAllGet() {
return _chkAllGet_main();
}
void reset() {
field_0x0 = 0;
_clrLstBuf();
}
static u16 mSphSe;
static s16 mSeClrTmr;
/* 0x0 */ int field_0x0;
/* 0x4 */ _GlSph_LstInfo_c mListBuf[120];
};
/**
* @ingroup actors-objects
@ -13,12 +85,27 @@
*/
class daGlwSph_c : public fopAc_ac_c {
public:
/* 80BF9430 */ void getSphMng();
enum COLOR_e {
COLOR_GRAY_e,
COLOR_RED_e,
COLOR_YELLOW_e,
COLOR_BLUE_e,
COLOR_DEFAULT_e = 0xFF,
};
enum ACTION_e {
ACTION_WAIT_e,
ACTION_GET_e,
ACTION_MOVE_e,
};
/* 80BF9430 */ _GlSph_Mng_c& getSphMng();
/* 80BF943C */ void setBaseMtx();
/* 80BF94AC */ void createHeapCallBack(fopAc_ac_c*);
/* 80BF94CC */ void CreateHeap();
/* 80BF95D4 */ void create();
/* 80BF9B1C */ void execute();
/* 80BF94AC */ static int createHeapCallBack(fopAc_ac_c*);
/* 80BF94CC */ int CreateHeap();
/* 80BF95D4 */ int create();
/* 80BF9B1C */ int execute();
/* 80BF9BC0 */ void actionMain();
/* 80BF9DF0 */ void effectSet();
/* 80BF9F30 */ void getSE();
@ -29,44 +116,61 @@ public:
/* 80BFA130 */ void actionGet();
/* 80BFA1E0 */ void actionMoveInit();
/* 80BFA204 */ void actionMove();
/* 80BFA2A4 */ void draw();
/* 80BFA3EC */ void _delete();
/* 80BFA2A4 */ int draw();
/* 80BFA3EC */ int _delete();
static u8 const mCcDObjInfo[48];
static u8 mCcDSph[64];
static u8 mSphMng[964];
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getArg0() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getColor() { return fopAcM_GetParamBit(this, 0x10, 8); }
private:
/* 0x568 */ u8 field_0x568[0x98c - 0x568];
void onGetFlag() { mGetFlag = true; }
void offGetFlag() { mGetFlag = false; }
void saveGetFlag() { field_0x951 = mGetFlag; }
bool is_getted() { return mGetFlag == true; }
void reset() {
current.pos = home.pos;
mSphCollider.OnCoSetBit();
offGetFlag();
saveGetFlag();
}
static const dCcD_SrcGObjInf mCcDObjInfo;
static dCcD_SrcSph mCcDSph;
static _GlSph_Mng_c mSphMng;
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mpModel;
/* 0x574 */ mDoExt_btkAnm mBtk;
/* 0x58C */ mDoExt_brkAnm mBrk;
/* 0x5A4 */ dBgS_ObjAcch mAcch;
/* 0x77C */ dBgS_AcchCir mAcchCir;
/* 0x7BC */ dCcD_Stts mColliderStts;
/* 0x7F8 */ dCcD_Sph mSphCollider;
/* 0x930 */ LIGHT_INFLUENCE mLight;
/* 0x950 */ u8 mGetFlag;
/* 0x951 */ u8 field_0x951;
/* 0x952 */ u8 mAction;
/* 0x953 */ u8 mIsNoMoveHome;
/* 0x954 */ u8 mColor;
/* 0x955 */ u8 mMoveTimer;
/* 0x958 */ f32 mMoveSpeed;
/* 0x95C */ cXyz mMoveVec;
/* 0x968 */ cXyz field_0x968;
/* 0x974 */ cXyz field_0x974;
/* 0x980 */ s16 field_0x980;
/* 0x984 */ u32 mEmitterIDs[2];
};
STATIC_ASSERT(sizeof(daGlwSph_c) == 0x98C);
class daGlwSph_HIO_c {
class daGlwSph_HIO_c : public fOpAcm_HIO_entry_c {
public:
/* 80BF934C */ daGlwSph_HIO_c();
/* 80BFA76C */ ~daGlwSph_HIO_c();
};
/* 80BFA76C */ virtual ~daGlwSph_HIO_c() {}
class _GlSph_Mng_c {
public:
/* 80BFA4B8 */ void _clrLstBuf();
/* 80BFA4DC */ void entry(daGlwSph_c*);
/* 80BFA528 */ void remove(daGlwSph_c*);
/* 80BFA55C */ void _setting_main();
/* 80BFA5C4 */ void _chkAllGet_main();
/* 80BFA60C */ void SphSeProc();
/* 80BFA6D8 */ void clrSphSe();
/* 80BFA6E8 */ void getSphSe();
/* 80BFA6F8 */ void incSphSe();
/* 80BFA890 */ ~_GlSph_Mng_c();
/* 0x4 */ f32 speed;
/* 0x8 */ f32 speed2;
};
class _GlSph_LstInfo_c{
public:
/* 80BFA900 */ ~_GlSph_LstInfo_c();
/* 80BFA93C */ _GlSph_LstInfo_c();
};
#endif /* D_A_OBJ_GLOWSPHERE_H */

View File

@ -1,7 +1,8 @@
#ifndef D_A_OBJ_LIFE_CONTAINER_H
#define D_A_OBJ_LIFE_CONTAINER_H
#include "f_op/f_op_actor_mng.h"
#include "d/actor/d_a_itembase.h"
#include "d/d_particle.h"
/**
* @ingroup actors-objects
@ -11,37 +12,76 @@
* @details
*
*/
class daObjLife_c : public fopAc_ac_c {
class daObjLife_c : public daItemBase_c {
public:
enum Status_e {
STATUS_WAIT_e,
STATUS_ORDER_GET_DEMO_e,
STATUS_GET_DEMO_e,
STATUS_SW_ON_WAIT_e,
STATUS_BOOMERANG_CARRY_e,
STATUS_WAIT_2_e,
};
/* 804CCBE4 */ void initBaseMtx();
/* 804CCC04 */ void setBaseMtx();
/* 804CCC6C */ void Create();
/* 804CCC6C */ int Create();
/* 804CCE00 */ void setEffect();
/* 804CCF5C */ void endEffect00();
/* 804CCFAC */ void endEffect02();
/* 804CCFD8 */ bool __CreateHeap();
/* 804CCFE0 */ void create();
/* 804CCFE0 */ int create();
/* 804CD428 */ void bg_check();
/* 804CD5B8 */ void actionWaitInit();
/* 804CD660 */ void actionWait();
/* 804CD8C0 */ void initActionOrderGetDemo();
/* 804CD98C */ void actionOrderGetDemo();
/* 804CDA08 */ void actionGetDemo();
/* 804CDBC8 */ void actionSwOnWait();
/* 804CDC2C */ void actionInitBoomerangCarry();
/* 804CDD0C */ void actionBoomerangCarry();
/* 804CDD7C */ void actionInitWait2();
/* 804CDD8C */ void actionWait2();
/* 804CD5B8 */ int actionWaitInit();
/* 804CD660 */ int actionWait();
/* 804CD8C0 */ int initActionOrderGetDemo();
/* 804CD98C */ int actionOrderGetDemo();
/* 804CDA08 */ int actionGetDemo();
/* 804CDBC8 */ int actionSwOnWait();
/* 804CDC2C */ int actionInitBoomerangCarry();
/* 804CDD0C */ int actionBoomerangCarry();
/* 804CDD7C */ int actionInitWait2();
/* 804CDD8C */ int actionWait2();
/* 804CDDAC */ void calcScale();
/* 804CDE70 */ void execute();
/* 804CE19C */ void draw();
/* 804CE1F0 */ void setListStart();
/* 804CE214 */ void _delete();
/* 804CDE70 */ int execute();
/* 804CE19C */ int draw();
/* 804CE214 */ int _delete();
/* 804CE1F0 */ virtual void setListStart();
/* 804CCFD8 */ virtual int __CreateHeap();
bool chkStatus(u8 i_status) { return mStatus == i_status; }
void setStatus(u8 i_status) { mStatus = i_status; }
u8 getSaveBitNo() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getItemNo() { return fopAcM_GetParamBit(this, 0, 8); }
int getSwNo() { return 0xFF; }
void setPos(cXyz);
private:
/* 0x568 */ u8 field_0x568[0x9d4 - 0x568];
/* 0x92C */ fpc_ProcID mItemId;
/* 0x930 */ int mCounter;
/* 0x934 */ u8 mStatus;
/* 0x935 */ u8 field_0x935;
/* 0x936 */ u8 mGndLandCount;
/* 0x937 */ u8 mIsPrmsInit;
/* 0x938 */ s16 field_0x938;
/* 0x93A */ s16 field_0x93a;
/* 0x93C */ cXyz mPrevSpeed;
/* 0x948 */ u16 mLv5Counter;
/* 0x94C */ f32 field_0x94c;
/* 0x950 */ f32 field_0x950;
/* 0x954 */ f32 field_0x954;
/* 0x958 */ u8 field_0x958[0x95E - 0x958];
/* 0x95E */ s16 field_0x95e;
/* 0x960 */ u8 field_0x960[0x962 - 0x960];
/* 0x962 */ s16 mRotateSpeed;
/* 0x964 */ u8 field_0x964[0x974 - 0x964];
/* 0x974 */ dPa_followEcallBack mEffect0;
/* 0x988 */ dPa_followEcallBack mEffect1;
/* 0x99C */ dPa_followEcallBack mEffect2;
/* 0x9B0 */ Z2SoundObjSimple mSound;
/* 0x9D0 */ u8 mIsHookCarry;
};
STATIC_ASSERT(sizeof(daObjLife_c) == 0x9d4);

View File

@ -814,7 +814,7 @@ public:
virtual s16 getBoardCutTurnOffsetAngleY() const;
virtual cXyz* getMagneHitPos();
virtual cXyz* getMagneBootsTopVec();
virtual cXyz* getKandelaarFlamePos();
virtual cXyz* getKandelaarFlamePos() { return NULL; }
virtual bool checkUseKandelaar(int);
virtual void setDkCaught(fopAc_ac_c*);
virtual void onPressedDamage(cXyz const&, short);

View File

@ -839,13 +839,13 @@ extern GXColor g_saftyWhiteColor;
int dComLbG_PhaseHandler(request_of_phase_process_class*, request_of_phase_process_fn*, void*);
BOOL dComIfG_resetToOpening(scene_class* scene);
char* dComIfG_getRoomArcName(int roomNo);
void* dComIfG_getStageRes(char const* resName);
void* dComIfG_getOldStageRes(char const* resName);
void* dComIfG_getStageRes(char const* i_resName);
void* dComIfG_getOldStageRes(char const* i_resName);
void dComIfG_get_timelayer(int* layer);
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resName);
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* i_resName);
int dComIfG_changeOpeningScene(scene_class* scene, s16 procName);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_name);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcName);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resName, JKRHeap* heap);
int dComIfG_TimerDeleteRequest(int i_mode);
int dComIfG_TimerStart(int i_mode, s16 i_time);
bool dComIfGp_isLightDropMapVisible();
@ -888,44 +888,57 @@ inline void dComIfG_setTimerLimitTimeMs(int i_time) {
g_dComIfG_gameInfo.play.setTimerLimitTimeMs(i_time);
}
inline int dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap);
/**
* Attempts to add a new Object Resource Archive (*.arc) into the Resource Control.
* @param i_arcName Name of archive to be added
* @param i_mountDirection The direction to mount the archive. mDoDvd_MOUNT_DIRECTION_HEAD or mDoDvd_MOUNT_DIRECTION_TAIL
* @param i_heap Pointer to heap to load resources into
* @return TRUE if successful, FALSE otherwise
*/
inline int dComIfG_setObjectRes(const char* i_arcName, u8 i_mountDirection, JKRHeap* i_heap) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(i_arcName, i_mountDirection, i_heap);
}
inline int dComIfG_setObjectRes(const char* name, void* param_1, u32 param_2) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, param_2, NULL);
inline int dComIfG_setObjectRes(const char* i_arcName, void* i_archiveRes, u32 i_bufferSize) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(i_arcName, i_archiveRes, i_bufferSize, NULL);
}
inline int dComIfG_setStageRes(const char* name, JKRHeap* heap) {
return g_dComIfG_gameInfo.mResControl.setStageRes(name, heap);
/**
* Attempts to add a new Stage Resource Archive (*.arc) into the Resource Control.
* @param i_arcName Name of archive to be added
* @param i_heap Pointer to heap to load resources into
* @return TRUE if successful, FALSE otherwise
*/
inline int dComIfG_setStageRes(const char* i_arcName, JKRHeap* i_heap) {
return g_dComIfG_gameInfo.mResControl.setStageRes(i_arcName, i_heap);
}
inline int dComIfG_syncObjectRes(const char* name) {
return g_dComIfG_gameInfo.mResControl.syncObjectRes(name);
inline int dComIfG_syncObjectRes(const char* i_arcName) {
return g_dComIfG_gameInfo.mResControl.syncObjectRes(i_arcName);
}
inline int dComIfG_syncStageRes(const char* name) {
return g_dComIfG_gameInfo.mResControl.syncStageRes(name);
inline int dComIfG_syncStageRes(const char* i_arcName) {
return g_dComIfG_gameInfo.mResControl.syncStageRes(i_arcName);
}
inline int dComIfG_deleteObjectResMain(const char* res) {
return g_dComIfG_gameInfo.mResControl.deleteObjectRes(res);
inline int dComIfG_deleteObjectResMain(const char* i_arcName) {
return g_dComIfG_gameInfo.mResControl.deleteObjectRes(i_arcName);
}
inline int dComIfG_deleteStageRes(const char* res) {
return g_dComIfG_gameInfo.mResControl.deleteStageRes(res);
inline int dComIfG_deleteStageRes(const char* i_arcName) {
return g_dComIfG_gameInfo.mResControl.deleteStageRes(i_arcName);
}
inline void* dComIfG_getStageRes(const char* arcName, const char* resName) {
return g_dComIfG_gameInfo.mResControl.getStageRes(arcName, resName);
inline void* dComIfG_getStageRes(const char* i_arcName, const char* i_resName) {
return g_dComIfG_gameInfo.mResControl.getStageRes(i_arcName, i_resName);
}
inline void* dComIfG_getObjectRes(const char* arcName, const char* resName) {
return g_dComIfG_gameInfo.mResControl.getObjectRes(arcName, resName);
inline void* dComIfG_getObjectRes(const char* i_arcName, const char* i_resName) {
return g_dComIfG_gameInfo.mResControl.getObjectRes(i_arcName, i_resName);
}
inline void* dComIfG_getObjectRes(const char* arcName, int param_1) {
return g_dComIfG_gameInfo.mResControl.getObjectRes(arcName, param_1);
inline void* dComIfG_getObjectRes(const char* i_arcName, int i_index) {
return g_dComIfG_gameInfo.mResControl.getObjectRes(i_arcName, i_index);
}
inline dBgS& dComIfG_Bgsp() {
@ -940,20 +953,20 @@ inline dCcS& dComIfG_Ccsp2() {
return g_dComIfG_gameInfo.play.mCcs;
}
inline dRes_info_c* dComIfG_getObjectResInfo(const char* arc_name) {
return g_dComIfG_gameInfo.mResControl.getObjectResInfo(arc_name);
inline dRes_info_c* dComIfG_getObjectResInfo(const char* i_arcName) {
return g_dComIfG_gameInfo.mResControl.getObjectResInfo(i_arcName);
}
inline dRes_info_c* dComIfG_getStageResInfo(const char* arc_name) {
return g_dComIfG_gameInfo.mResControl.getStageResInfo(arc_name);
inline dRes_info_c* dComIfG_getStageResInfo(const char* i_arcName) {
return g_dComIfG_gameInfo.mResControl.getStageResInfo(i_arcName);
}
inline int dComIfG_syncAllObjectRes() {
return g_dComIfG_gameInfo.mResControl.syncAllObjectRes();
}
inline void* dComIfG_getObjectIDRes(const char* arc_name, u16 id) {
return g_dComIfG_gameInfo.mResControl.getObjectIDRes(arc_name, id);
inline void* dComIfG_getObjectIDRes(const char* i_arcName, u16 i_resID) {
return g_dComIfG_gameInfo.mResControl.getObjectIDRes(i_arcName, i_resID);
}
inline u8 dComIfG_getBrightness() {

View File

@ -137,10 +137,10 @@ struct GB_WIND_INFLUENCE {
struct EF_THUNDER {
/* 0x00 */ u8 mStatus;
/* 0x01 */ u8 mStateTimer;
/* 0x01 */ u8 mState;
/* 0x02 */ u8 field_0x2;
/* 0x04 */ int mMode;
/* 0x08 */ f32 field_0x8;
/* 0x08 */ f32 mFlashTimer;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
@ -605,5 +605,11 @@ _GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1);
static void dKy_WaterIn_Light_set();
void dKy_SordFlush_set(cXyz param_0, int param_1);
void dKy_camera_water_in_status_set(u8 status);
void dKy_mock_light_every_set(LIGHT_INFLUENCE* param_0);
f32 dKy_move_room_ratio(dKy_tevstr_c* param_0, s8* param_1);
void dKy_bg1_addcol_amb_set(s16 r, s16 g, s16 b, f32 factor);
void dKy_vrbox_addcol_sky0_set(s16 r, s16 g, s16 b, f32 factor);
void dKy_vrbox_addcol_kasumi_set(s16 r, s16 g, s16 b, f32 factor);
void dKy_addcol_fog_set(s16 r, s16 g, s16 b, f32 factor);
#endif /* D_KANKYO_D_KANKYO_H */

View File

@ -55,7 +55,7 @@ public:
/* 0x5C */ f32 mVisibility;
/* 0x60 */ f32 mSunAlpha;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ f32 field_0x68;
/* 0x68 */ f32 mMoonAlpha;
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ GXColor mColor;
/* 0x74 */ GXColor field_0x74;
@ -174,7 +174,7 @@ public:
virtual void draw();
virtual ~dKankyo_star_Packet();
/* 0x10 */ u8* field_0x10;
/* 0x10 */ u8* mpTex;
/* 0x14 */ STAR_EFF mEffect[1];
/* 0x48 */ s16 mEffectNum;
};
@ -214,11 +214,14 @@ struct CLOUD_EFF {
/* 80056E38 */ ~CLOUD_EFF();
/* 80056E74 */ CLOUD_EFF();
/* 0x00 */ u8 mStatus;
/* 0x00 */ s8 mStatus;
/* 0x04 */ cXyz mPosition;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ cXyz mPntWindSpeed;
/* 0x28 */ u8 field_0x28[0x10];
/* 0x28 */ f32 field_0x28;
/* 0x2C */ u16 field_0x2c;
/* 0x30 */ f32 mAlpha;
/* 0x34 */ f32 mSize;
}; // Size: 0x38
class dKankyo_cloud_Packet : public J3DPacket {
@ -235,7 +238,7 @@ struct VRKUMO_EFF {
/* 80056F18 */ ~VRKUMO_EFF();
/* 80056F54 */ VRKUMO_EFF();
/* 0x00 */ u8 mStatus;
/* 0x00 */ s8 mStatus;
/* 0x04 */ cXyz mPosition;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ f32 mHeight;
@ -268,8 +271,8 @@ struct EF_ODOUR_EFF {
/* 0x00 */ u8 mStatus;
/* 0x04 */ cXyz mPosition;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ s16 field_0x1c;
/* 0x1E */ s16 field_0x1e;
/* 0x1C */ s16 mRotX;
/* 0x1E */ s16 mRotY;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
@ -284,18 +287,28 @@ public:
/* 0x00010 */ u8* mpResTex;
/* 0x00014 */ EF_ODOUR_EFF mOdourEff[2000];
/* 0x17714 */ cXyz field_0x17714;
/* 0x17720 */ u8 field_0x17720[0x17728 - 0x17720];
/* 0x17720 */ u8 field_0x17720[0x17724 - 0x17720];
/* 0x17724 */ s16 field_0x17724;
/* 0x17720 */ s16 field_0x17726;
}; // Size: 0x17728
struct EF_MUD_EFF {
/* 80056FFC */ ~EF_MUD_EFF();
/* 80057038 */ EF_MUD_EFF();
/* 0x00 */ u8 mStatus;
/* 0x00 */ s8 mStatus;
/* 0x04 */ cXyz mPosition;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ cXyz field_0x1c;
/* 0x28 */ u8 field_0x28[0x20];
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ s16 field_0x40;
/* 0x42 */ s16 field_0x42;
/* 0x44 */ u8 field_0x44[0x48 - 0x44];
}; // Size: 0x48
class dKankyo_mud_Packet : public J3DPacket {

View File

@ -10,21 +10,29 @@ class JKRSolidHeap;
class dRes_info_c {
public:
/* 8003A260 */ dRes_info_c();
/* 8003A280 */ ~dRes_info_c();
/* 8003A348 */ int set(char const*, char const*, u8, JKRHeap*);
/* 8003AB30 */ static void onWarpMaterial(J3DModelData*);
/* 8003AC1C */ static void offWarpMaterial(J3DModelData*);
/* 8003AD08 */ static void setWarpSRT(J3DModelData*, cXyz const&, f32, f32);
/* 8003AE14 */ static J3DModelData* loaderBasicBmd(u32, void*);
/* 8003B30C */ int loadResource();
/* 8003B998 */ void deleteArchiveRes();
/* 8003BAC4 */ int setRes(JKRArchive*, JKRHeap*);
/* 8003BAF8 */ int setRes();
/* 8003BD2C */ static void dump_long(dRes_info_c*, int);
/* 8003BE38 */ static void dump(dRes_info_c*, int);
dRes_info_c();
~dRes_info_c();
int set(char const* i_arcName, char const* i_path, u8 i_mountDirection, JKRHeap* i_heap);
int loadResource();
void deleteArchiveRes();
int setRes(JKRArchive* i_archive, JKRHeap* i_heap);
int setRes();
static void onWarpMaterial(J3DModelData* i_modelData);
static void offWarpMaterial(J3DModelData* i_modelData);
static void setWarpSRT(J3DModelData* i_modelData, const cXyz& i_pos, f32 i_transX, f32 i_transY);
static J3DModelData* loaderBasicBmd(u32 i_tag, void* i_data);
static void dump_long(dRes_info_c* i_resInfo, int i_infoNum);
static void dump(dRes_info_c* i_resInfo, int i_infoNum);
void* getRes(s32 i_index) {
JUT_ASSERT(25, i_index >= 0 && i_index < getResNum());
return *(mRes + i_index);
}
s32 getResNum() { return mArchive->countFile(); }
void* getRes(u32 resIdx) { return *(mRes + resIdx); }
int getCount() { return mCount; }
char* getArchiveName() { return mArchiveName; }
mDoDvdThd_mountArchive_c* getDMCommand() { return mDMCommand; }
@ -34,6 +42,8 @@ public:
return --mCount;
}
static const int NAME_MAX = 8;
private:
/* 0x00 */ char mArchiveName[11];
/* 0x0C */ u16 mCount;
@ -49,71 +59,73 @@ STATIC_ASSERT(sizeof(dRes_info_c) == 0x24);
class dRes_control_c {
public:
dRes_control_c() {}
/* 8003BFB0 */ ~dRes_control_c();
/* 8003C078 */ static int setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*);
/* 8003C160 */ static int syncRes(char const*, dRes_info_c*, int);
/* 8003C194 */ static int deleteRes(char const*, dRes_info_c*, int);
/* 8003C37C */ static void* getRes(char const*, char const*, dRes_info_c*, int);
/* 8003C1E4 */ static dRes_info_c* getResInfo(char const*, dRes_info_c*, int);
/* 8003C260 */ static dRes_info_c* newResInfo(dRes_info_c*, int);
/* 8003C288 */ static dRes_info_c* getResInfoLoaded(char const*, dRes_info_c*, int);
/* 8003C2EC */ static void* getRes(char const*, s32, dRes_info_c*, int);
/* 8003C400 */ static void* getIDRes(char const*, u16, dRes_info_c*, int);
/* 8003C470 */ static int syncAllRes(dRes_info_c*, int);
/* 8003C4E4 */ int setObjectRes(char const*, void*, u32, JKRHeap*);
/* 8003C5BC */ int setStageRes(char const*, JKRHeap*);
/* 8003C638 */ void dump();
/* 8003C6B8 */ int getObjectResName2Index(char const*, char const*);
~dRes_control_c();
int setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
return setRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo), "/res/Object/", param_1,
heap);
int setObjectRes(char const* i_arcName, void* i_archiveRes, u32 i_bufferSize, JKRHeap* i_heap);
int setStageRes(char const* i_arcName, JKRHeap* i_heap);
void dump();
int getObjectResName2Index(char const* i_arcName, char const* i_resName);
static int setRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum, char const* i_path, u8 i_mountDirection, JKRHeap* i_heap);
static int syncRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
static int deleteRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
static void* getRes(char const* i_arcName, char const* i_resName, dRes_info_c* i_resInfo, int i_infoNum);
static dRes_info_c* getResInfo(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
static dRes_info_c* newResInfo(dRes_info_c* i_resInfo, int i_infoNum);
static dRes_info_c* getResInfoLoaded(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
static void* getRes(char const* i_arcName, s32 i_index, dRes_info_c* i_resInfo, int i_infoNum);
static void* getIDRes(char const* i_arcName, u16 i_resID, dRes_info_c* i_resInfo, int i_infoNum);
static int syncAllRes(dRes_info_c* i_resInfo, int i_infoNum);
int setObjectRes(const char* i_arcName, u8 i_mountDirection, JKRHeap* i_heap) {
return setRes(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo), "/res/Object/", i_mountDirection,
i_heap);
}
void* getObjectRes(const char* arcName, const char* resName) {
return getRes(arcName, resName, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
void* getObjectRes(const char* i_arcName, const char* resName) {
return getRes(i_arcName, resName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
}
void* getObjectRes(const char* arcName, s32 param_1) {
return getRes(arcName, param_1, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
void* getObjectRes(const char* i_arcName, s32 i_index) {
return getRes(i_arcName, i_index, mObjectInfo, ARRAY_SIZE(mObjectInfo));
}
void* getObjectIDRes(const char* arcName, u16 id) {
return getIDRes(arcName, id, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
void* getObjectIDRes(const char* i_arcName, u16 i_resID) {
return getIDRes(i_arcName, i_resID, mObjectInfo, ARRAY_SIZE(mObjectInfo));
}
int syncObjectRes(const char* name) {
return syncRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
int syncObjectRes(const char* i_arcName) {
return syncRes(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
}
int syncStageRes(const char* name) {
return syncRes(name, &mStageInfo[0], ARRAY_SIZE(mStageInfo));
int syncStageRes(const char* i_arcName) {
return syncRes(i_arcName, mStageInfo, ARRAY_SIZE(mStageInfo));
}
int syncAllObjectRes() { return syncAllRes(&mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); }
int syncAllObjectRes() { return syncAllRes(mObjectInfo, ARRAY_SIZE(mObjectInfo)); }
int deleteObjectRes(const char* name) {
return deleteRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
int deleteObjectRes(const char* i_arcName) {
return deleteRes(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
}
int deleteStageRes(const char* name) {
return deleteRes(name, &mStageInfo[0], ARRAY_SIZE(mStageInfo));
int deleteStageRes(const char* i_arcName) {
return deleteRes(i_arcName, mStageInfo, ARRAY_SIZE(mStageInfo));
}
void* getStageRes(const char* arcName, const char* resName) {
return getRes(arcName, resName, &mStageInfo[0], ARRAY_SIZE(mStageInfo));
void* getStageRes(const char* i_arcName, const char* i_resName) {
return getRes(i_arcName, i_resName, mStageInfo, ARRAY_SIZE(mStageInfo));
}
dRes_info_c* getObjectResInfo(const char* arcName) {
return getResInfo(arcName, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
dRes_info_c* getObjectResInfo(const char* i_arcName) {
return getResInfo(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
}
dRes_info_c* getStageResInfo(const char* arcName) {
return getResInfo(arcName, &mStageInfo[0], ARRAY_SIZE(mStageInfo));
dRes_info_c* getStageResInfo(const char* i_arcName) {
return getResInfo(i_arcName, mStageInfo, ARRAY_SIZE(mStageInfo));
}
/* 0x0000 */ dRes_info_c mObjectInfo[0x80];
/* 0x1200 */ dRes_info_c mStageInfo[0x40];
/* 0x0000 */ dRes_info_c mObjectInfo[128];
/* 0x1200 */ dRes_info_c mStageInfo[64];
}; // Size: 0x1B00
#endif /* D_D_RESORCE_H */

View File

@ -91,6 +91,10 @@ inline cXyz* fopCamM_GetCenter_p(camera_class* i_camera) {
return &i_camera->lookat.center;
}
inline s16 fopCamM_GetBank(camera_class* i_camera) {
return i_camera->bank;
}
fpc_ProcID fopCamM_Create(int i_cameraIdx, s16 i_procName, void* i_append);
void fopCamM_Management();
u32 fopCamM_GetParam(camera_class* i_this);

View File

@ -175,6 +175,10 @@ inline void mDoAud_mEnvSe_startFarThunderSe(const Vec* param_0) {
g_mEnvSeMgr.startFarThunderSe((Vec*)param_0, 0);
}
inline void mDoAud_mEnvSe_startNearThunderSe() {
g_mEnvSeMgr.startNearThunderSe(0);
}
inline void mDoAud_mEnvse_initStrongWind() {
g_mEnvSeMgr.initStrongWindSe();
}

View File

@ -6,6 +6,9 @@
#include "dolphin/os/OSMutex.h"
#include "f_pc/f_pc_node.h"
#define mDoDvd_MOUNT_DIRECTION_HEAD 0
#define mDoDvd_MOUNT_DIRECTION_TAIL 1
class JKRHeap;
class JKRMemArchive;

View File

@ -262,8 +262,8 @@ static void odour_move(kytag03_class* i_this) {
}
effect->mBasePos.z += temp_f22 * cM_rndFX(50.0f);
effect->field_0x1c = spFC.x;
effect->field_0x1e = spFC.y;
effect->mRotX = spFC.x;
effect->mRotY = spFC.y;
effect->field_0x2c = cM_rndF(20.0f) + 45.0f +
temp_f22 * (cM_rndF(20.0f) + 100.0f);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1037,6 +1037,14 @@ static int phase_3(char*) {
/* 8002CEBC-8002CEFC 0277FC 0040+00 0/0 7/7 550/550 .text
* dComIfG_resLoad__FP30request_of_phase_process_classPCc */
/**
* Attempts to load a Resource Archive (*.arc) into the Resource Control.
* The archive must be successfully loaded into the Resource Control before
* calling dComIfG_getObjectRes / dComIfG_getStageRes
* @param i_phase Pointer to phase request for handling resource loading process
* @param i_arcName Name of archive to be loaded
* @return Loading phase state. cPhs_COMPLEATE_e if loaded successfully
*/
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcName) {
static int (*l_method[3])(void*) = {(int (*)(void*))phase_1, (int (*)(void*))phase_2,
(int (*)(void*))phase_3};
@ -1078,6 +1086,15 @@ static int phase_03(phaseParam_c*) {
/* 8002CFC0-8002D008 027900 0048+00 1/1 3/3 0/0 .text
* dComIfG_resLoad__FP30request_of_phase_process_classPCcP7JKRHeap */
/**
* Attempts to load a Resource Archive (*.arc) into the Resource Control using a specified heap.
* The archive must be successfully loaded into the Resource Control before
* calling dComIfG_getObjectRes / dComIfG_getStageRes
* @param i_phase Pointer to phase request for handling resource loading process
* @param i_arcName Name of archive to be loaded
* @param i_heap Pointer to heap to load resources into
* @return Loading phase state. cPhs_COMPLEATE_e if loaded successfully
*/
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resName,
JKRHeap* i_heap) {
static int (*l_method[3])(void*) = {(int (*)(void*))phase_01, (int (*)(void*))phase_02,
@ -1093,6 +1110,13 @@ int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resNa
/* 8002D008-8002D06C 027948 0064+00 1/1 10/10 540/540 .text
* dComIfG_resDelete__FP30request_of_phase_process_classPCc */
/**
* Attempts to unload a Resource Archive (*.arc) from the Resource Control.
* This should be called from a process' delete method to prevent a memory leak.
* @param i_phase Pointer to phase request for handling resource unloading process
* @param i_arcName Name of archive to be unloaded
* @return TRUE if successful, FALSE otherwise
*/
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* i_resName) {
if (i_phase->id != cPhs_NEXT_e) {
return 0;

View File

@ -1216,8 +1216,8 @@ static void setkankyoShadow(dKy_tevstr_c* param_0, f32* param_1) {
*param_1 *= param_0->field_0x344;
}
if (env_light->mThunderEff.mStateTimer != 0 && env_light->mThunderEff.mStateTimer < 10) {
*param_1 += env_light->mThunderEff.field_0x8;
if (env_light->mThunderEff.mState != 0 && env_light->mThunderEff.mState < 10) {
*param_1 += env_light->mThunderEff.mFlashTimer;
}
if (g_env_light.mSwordLight.mState == 2) {

View File

@ -1145,7 +1145,7 @@ static void envcolor_init() {
g_env_light.field_0x1230 = 0.0f;
g_env_light.field_0x1234 = 0.0f;
g_env_light.mThunderEff.mStateTimer = 0;
g_env_light.mThunderEff.mState = 0;
g_env_light.field_0x1238 = 0.0f;
g_env_light.field_0x123c = 0.0f;
g_env_light.field_0x12d6 = 0;
@ -3492,7 +3492,7 @@ SECTION_DEAD static char const* const stringBase_80394E70 = "D_MN";
#pragma pop
/* 801A6D4C-801A6E9C 1A168C 0150+00 1/1 1/1 0/0 .text dKy_move_room_ratio__FP12dKy_tevstr_cPSc */
void dKy_move_room_ratio(dKy_tevstr_c* param_0, s8* param_1) {
f32 dKy_move_room_ratio(dKy_tevstr_c* param_0, s8* param_1) {
// NONMATCHING
}
@ -3816,7 +3816,7 @@ void dKy_SordFlush_set(cXyz param_0, int param_1) {
dScnKy_env_light_c* light = dKy_getEnvlight();
if (!dKy_darkworld_check() &&
(light->mThunderEff.mStateTimer >= 10 || light->mThunderEff.field_0x8 <= 0.0f))
(light->mThunderEff.mState >= 10 || light->mThunderEff.mFlashTimer <= 0.0f))
{
if (g_env_light.mSwordLight.mState == 0) {
g_env_light.mSwordLight.mState = 1;

File diff suppressed because it is too large Load Diff

View File

@ -101,7 +101,7 @@ STAR_EFF::STAR_EFF() {}
/* 80056E08-80056E38 051748 0030+00 1/0 0/0 0/0 .text draw__19dKankyo_star_PacketFv */
void dKankyo_star_Packet::draw() {
dKyr_drawStar(j3dSys.getViewMtx(), &field_0x10);
dKyr_drawStar(j3dSys.getViewMtx(), &mpTex);
}
/* 80056E38-80056E74 051778 003C+00 2/2 0/0 0/0 .text __dt__9CLOUD_EFFFv */
@ -540,7 +540,7 @@ static void wether_move_sun() {
g_env_light.mpSunPacket->mVisibility = 0.0f;
g_env_light.mpSunPacket->mSunAlpha = 0.0f;
g_env_light.mpSunPacket->field_0x64 = 0.0f;
g_env_light.mpSunPacket->field_0x68 = 0.0f;
g_env_light.mpSunPacket->mMoonAlpha = 0.0f;
if (g_env_light.mDaytime < 255.0f) {
g_env_light.mpSunPacket->field_0x6c = 1.0f;

View File

@ -69,7 +69,7 @@ static int dThunder_Draw(dThunder_c* i_this) {
int dThunder_c::execute(dThunder_c* i_thunder) {
dScnKy_env_light_c* env_light = dKy_getEnvlight();
if (env_light->mThunderEff.mStateTimer < 10) {
if (env_light->mThunderEff.mState < 10) {
cLib_addCalc(&mBrkSpeed, 0.1f, 0.05f, 0.017f, 9.999999747378752e-06f);
}
@ -93,7 +93,7 @@ int dThunder_c::execute(dThunder_c* i_thunder) {
fvar7 *= mBrkSpeed;
if (env_light->mThunderEff.mStateTimer < 10) {
if (env_light->mThunderEff.mState < 10) {
field_0x138.x += fvar7 * field_0x138.x * 0.01f * cM_ssin(field_0x16a);
field_0x138.y += fvar7 * field_0x138.y * 0.01f * cM_scos(field_0x16c);
field_0x16a += -25000;
@ -180,7 +180,7 @@ int dThunder_c::create() {
mBrkSpeed = 1.0f;
mModelInfo.mBrk.setPlaySpeed(mBrkSpeed);
if (env_light->mThunderEff.mStateTimer < 10) {
if (env_light->mThunderEff.mState < 10) {
var_f29 = 1.0f;
} else {
var_f29 = 0.25f;
@ -199,7 +199,7 @@ int dThunder_c::create() {
spC4.set(60000.0f, -5000.0f, 0.0f);
field_0x15c = 2000.0f;
if (env_light->mThunderEff.mStateTimer >= 10) {
if (env_light->mThunderEff.mState >= 10) {
var_f31 = var_r27;
var_f30 = 24.0f;
field_0x15c = 2500.0f;

File diff suppressed because it is too large Load Diff