Merge pull request #66 from TakaRikka/ky2

d_kankyo_wether almost done, d_kankyo_data / d_kankyo_demo OK
This commit is contained in:
Jasper St. Pierre
2023-09-21 00:09:32 -07:00
committed by GitHub
20 changed files with 4460 additions and 375 deletions
+2 -2
View File
@@ -363,10 +363,10 @@ config.libs = [
Object(Matching, "d/d_particle_name.cpp"),
Object(NonMatching, "d/d_path.cpp"),
Object(NonMatching, "d/d_drawlist.cpp"),
Object(NonMatching, "d/d_kankyo_data.cpp"),
Object(Matching, "d/d_kankyo_data.cpp"),
Object(NonMatching, "d/d_kankyo_wether.cpp"),
Object(NonMatching, "d/d_kankyo_rain.cpp"),
Object(NonMatching, "d/d_kankyo_demo.cpp"),
Object(Matching, "d/d_kankyo_demo.cpp"),
Object(NonMatching, "d/d_detect.cpp"),
Object(NonMatching, "d/d_vibration.cpp"),
Object(NonMatching, "d/d_vib_pattern.cpp"),
+2
View File
@@ -2,6 +2,8 @@
#define JAZELAUDIO_JAIZELBASIC_H
#include "dolphin/types.h"
#include "JAZelAudio/JAZelAudio_SE.h"
#include "JAZelAudio/JAZelAudio_BGM.h"
class Vec;
class JAISound;
+105
View File
@@ -0,0 +1,105 @@
#ifndef JAZELAUDIO_BGM_H
#define JAZELAUDIO_BGM_H
enum {
JA_BGM_SE_SEQUENCE = 0x0800,
JA_BGM_ISLAND_LINK = 0x0001,
JA_BGM_ITEM_GET = 0x0002,
JA_BGM_GOMA = 0x0003,
JA_BGM_BATTLE_NORM = 0x0004,
JA_BGM_KINDAN_BOSS = 0x0005,
JA_BGM_D_RYU_MT = 0x0006,
JA_BGM_I_MAJU = 0x0007,
JA_BGM_HOUSE = 0x0008,
JA_BGM_OPEN_BOX = 0x0009,
JA_BGM_DIE_LINK = 0x000A,
JA_BGM_SEA_GAME = 0x000B,
JA_BGM_SEA_GOAL = 0x000C,
JA_BGM_SEA_FAIL = 0x000D,
JA_BGM_ISLAND_LINK_2 = 0x000E,
JA_BGM_I_MAJU_JAIL = 0x000F,
JA_BGM_GOMA_2 = 0x0010,
JA_BGM_JI_TRAINING = 0x0011,
JA_BGM_TETRA_MEET = 0x0012,
JA_BGM_BK_FLY_DOWN = 0x0013,
JA_BGM_DK_BATTLE = 0x0014,
JA_BGM_MJ_TOWER_BATTLE = 0x0015,
JA_BGM_FIND_TETRA = 0x0016,
JA_BGM_I_LINK_FOREST = 0x0017,
JA_BGM_HOUSE_G = 0x0018,
JA_BGM_MBOSS = 0x0019,
JA_BGM_MBOSS_S = 0x001A,
JA_BGM_BOAT_SHOP = 0x001B,
JA_BGM_SEA_ENEMY = 0x001C,
JA_BGM_MORNING = 0x001D,
JA_BGM_SELECT = 0x001E,
JA_BGM_MEDRI_AWAKE = 0x001F,
JA_BGM_MAKORE_AWAKE = 0x0020,
JA_BGM_TAKT_MAKORE = 0x0021,
JA_BGM_TAKT_MEDRI = 0x0022,
JA_BGM_BST_BATTLE = 0x0023,
JA_BGM_GET_HEART = 0x0024,
JA_BGM_ITEM_GET_S = 0x0025,
JA_BGM_D_FOREST = 0x0026,
JA_BGM_GET_SONG = 0x0027,
JA_BGM_KAMI_TOWER = 0x0028,
JA_BGM_RANE_BATTLE = 0x0029,
JA_BGM_PIRATE = 0x002A,
JA_BGM_DIOCTA_BATTLE = 0x002B,
JA_BGM_PIRATE_C = 0x002C,
JA_BGM_D_EARTH = 0x002D,
JA_BGM_SEA = 0x002E,
JA_BGM_D_WIND = 0x002F,
JA_BGM_TAKT_CHUYA = 0x0030,
JA_BGM_TAKT_KAZE = 0x0031,
JA_BGM_TAKT_SHIPPU = 0x0032,
JA_BGM_TETRA_MEET_B = 0x0033,
JA_BGM_HYRULE_OFF = 0x0034,
JA_BGM_HYRULE_ON = 0x0035,
JA_BGM_CB_NEXTYEAR = 0x0036,
JA_BGM_CB_NEXTYEAR_W = 0x0037,
JA_BGM_ISLAND_LINK_0 = 0x0038,
JA_BGM_ISLAND_WOOD = 0x0039,
JA_BGM_ISLAND_DRAGON = 0x003A,
JA_BGM_ISLAND_TAURA = 0x003B,
JA_BGM_SEA_STORM = 0x003C,
JA_BGM_PIRATE_DEMO5 = 0x003D,
JA_BGM_JI_TRAINING_2 = 0x003E,
JA_BGM_I_WOOD_INNER = 0x003F,
JA_BGM_DRUG_STORE = 0x0040,
JA_BGM_P_GANON_1 = 0x0041,
JA_BGM_D_GANON_1 = 0x0042,
JA_BGM_D_GANON_2 = 0x0043,
JA_BGM_BAACHAN = 0x0044,
JA_BGM_DEKU_PINCH = 0x0045,
JA_BGM_DIOCTA_2 = 0x0046,
JA_BGM_P_GANON_2 = 0x0047,
JA_BGM_BIG_POW = 0x0048,
JA_BGM_PAST_BIG_POW = 0x0049,
JA_BGM_PAST_BKM = 0x004A,
JA_BGM_PAST_GOMA = 0x004B,
JA_BGM_PAST_RANE = 0x004C,
JA_BGM_GANON_BATTLE = 0x004D,
JA_BGM_MASTER_SWORD = 0x004E,
JA_BGM_GET_PEARL = 0x004F,
JA_BGM_BIRDMAN = 0x0050,
JA_BGM_BIRDMAN_GOAL = 0x0051,
JA_BGM_BIRDMAN_FAIL = 0x0052,
JA_BGM_ELF = 0x0053,
JA_BGM_PAST_GOMA_2 = 0x0054,
JA_BGM_ISLAND_LINK_3 = 0x0055,
JA_BGM_DEATH_VALLEY = 0x0056,
JA_BGM_JABOO_CAVE = 0x0057,
JA_BGM_SUB_DUNGEON = 0x0058,
JA_BGM_BGN_KUGUTSU = 0x0059,
JA_BGM_BGN_TARABA = 0x005A,
JA_BGM_BGN_HAYAMUSHI = 0x005B,
JA_BGM_BGN_TARABA_IN = 0x005C,
JA_BGM_BGN_GET_BOX = 0x005D,
JA_BGM_I_MAJU_2ND = 0x005E,
JA_BGM_MAKORE_TAKT_8 = 0x005F,
JA_BGM_MEDORI_TAKT_8 = 0x0060,
JA_BGM_TRIFORCE_DEMO = 0x0061,
};
#endif /* JAZELAUDIO_BGM_H */
File diff suppressed because it is too large Load Diff
+19
View File
@@ -16,6 +16,16 @@ class JPACallBackBase;
class JPACallBackBase2;
class JPADataBlockLinkInfo;
enum {
JPAEmtrStts_StopEmit = 0x01,
JPAEmtrStts_StopCalc = 0x02,
JPAEmtrStts_StopDraw = 0x04,
JPAEmtrStts_EnableDeleteEmitter = 0x08,
JPAEmtrStts_FirstEmit = 0x10,
JPAEmtrStts_RateStepEmit = 0x20,
JPAEmtrStts_Immortal = 0x40,
};
class JPABaseEmitter {
public:
typedef void (JPABaseEmitter::*VolumeFunc)();
@@ -45,12 +55,21 @@ public:
void calcgReRDirection();
void getPivotX();
void getPivotY();
void setStatus(u32 status) { mFlags |= status; }
u8 getGlobalAlpha() { return mGlobalPrmColor.a; }
void setGlobalAlpha(u8 alpha) { mGlobalPrmColor.a = alpha; }
void setGlobalRTMatrix(MtxP mtx) {
JPASetRMtxTVecfromMtx(mtx, mGlobalRotation, mGlobalTranslation);
}
void stopCreateParticle() { setStatus(JPAEmtrStts_StopEmit); }
void becomeInvalidEmitter() {
mMaxFrame = -1;
stopCreateParticle();
}
/* 0x000 */ VolumeFunc mVolumeFunc;
/* 0x00C */ cXyz mEmitterScale;
+18 -1
View File
@@ -49,7 +49,6 @@ double modf(double, double*);
double pow(double, double);
double sin(double);
float sinf(float);
double sqrt(double);
double tan(double);
float tanf(float);
@@ -72,6 +71,24 @@ extern inline float sqrtf(float x) {
return x;
}
extern inline double sqrt(double x) {
if(x > 0.0)
{
double guess = __frsqrte(x); /* returns an approximation to */
guess = .5*guess*(3.0 - guess*guess*x); /* now have 8 sig bits */
guess = .5*guess*(3.0 - guess*guess*x); /* now have 16 sig bits */
guess = .5*guess*(3.0 - guess*guess*x); /* now have 32 sig bits */
guess = .5*guess*(3.0 - guess*guess*x); /* now have > 53 sig bits */
return x*guess ;
}
else if ( x == 0 )
return 0;
else if ( x )
return NAN;
return HUGE_VALF;
}
inline float atan2f(float y, float x) {
return (float)atan2(y, x);
}
+44 -1
View File
@@ -170,6 +170,7 @@ public:
void setLkDemoAnmArchive(JKRArchive* i_arc) { mpLkDArc = i_arc; }
void setStatus(u16 status) { mStatus = status; }
s32 checkStatus(u16 flags) { return flags & mStatus; }
void setShipId(u8 i_id) { mShipId = i_id; }
void setShipRoomId(u8 i_id) { mShipRoomId = i_id; }
@@ -243,7 +244,7 @@ public:
/* 0x483C */ dFlower_packet_c* mpFlowerPacket;
/* 0x4840 */ s8 mLkDArcIdx;
/* 0x4841 */ u8 field_0x4841;
/* 0x4842 */ s16 mStatus;
/* 0x4842 */ u16 mStatus;
/* 0x4844 */ dDlst_window_c mDlstWindow[1];
/* 0x4870 */ dComIfG_camera_info_class mCameraInfo[1];
/* 0x48A4 */ daPy_py_c* mpPlayer[1];
@@ -659,6 +660,22 @@ inline BOOL dComIfGs_isGetItem(int i_field, u8 i_item) {
return g_dComIfG_gameInfo.save.getPlayer().getGetItem().isItem(i_field, i_item);
}
inline s16 dComIfGs_getWindY() {
return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().getWindY();
}
inline s16 dComIfGs_getWindX() {
return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().getWindX();
}
inline void dComIfGs_setWindY(s16 i_windY) {
g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().setWindY(i_windY);
}
inline void dComIfGs_setWindX(s16 i_windX) {
g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusB().setWindX(i_windX);
}
/**
* === PLAY ===
*/
@@ -987,6 +1004,10 @@ inline void dComIfGp_setMessageCountNumber(s16 num) {
g_dComIfG_gameInfo.play.setMessageCountNumber(num);
}
inline s32 dComIfGp_checkStatus(u16 flags) {
return g_dComIfG_gameInfo.play.checkStatus(flags);
}
inline s16 dComIfGp_getItemMagicCount() {
return g_dComIfG_gameInfo.play.getItemMagicCount();
}
@@ -1135,6 +1156,28 @@ inline s32 dComIfGd_getLightModelNum() {
return g_dComIfG_gameInfo.drawlist.getLightModelNum();
}
inline J3DDrawBuffer* dComIfGd_getListFilter() {
return g_dComIfG_gameInfo.drawlist.getOpaListFilter();
}
inline void dComIfGd_setList() {
g_dComIfG_gameInfo.drawlist.setOpaList();
g_dComIfG_gameInfo.drawlist.setXluList();
}
inline void dComIfGd_setListSky() {
g_dComIfG_gameInfo.drawlist.setOpaListSky();
g_dComIfG_gameInfo.drawlist.setXluListSky();
}
inline void dComIfGd_setXluListBG() {
g_dComIfG_gameInfo.drawlist.setXluListBG();
}
inline void dComIfGd_entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) {
g_dComIfG_gameInfo.drawlist.entryZSortXluList(i_packet, param_1);
}
/**
* === RESOURCE ===
*/
+30 -25
View File
@@ -1,6 +1,7 @@
#ifndef D_D_DRAWLIST_H
#define D_D_DRAWLIST_H
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "f_op/f_op_view.h"
#include "global.h"
#include "m_Do/m_Do_ext.h"
@@ -171,21 +172,20 @@ struct dDlst_alphaModelData_c;
struct dDlst_alphaModel_c {
public:
enum Type {
TYPE_SPHERE = 0,
TYPE_TWO_SPHERES = 1,
TYPE_SEARCHLIGHT = 2,
TYPE_CUBE = 3,
TYPE_SMALL_SPHERE = 4,
TYPE_SPHERE = 0,
TYPE_TWO_SPHERES = 1,
TYPE_SEARCHLIGHT = 2,
TYPE_CUBE = 3,
TYPE_SMALL_SPHERE = 4,
TYPE_THREE_SPHERES = 5,
};
dDlst_alphaModel_c();
void create(int);
void set(u8 type, Mtx mtx, u8 alpha);
void draw(MtxP);
s32 getNum() {
return mNum;
}
s32 getNum() { return mNum; }
public:
/* 0x00 */ _GXColor mColor;
/* 0x04 */ s16 mCapacity;
@@ -208,6 +208,21 @@ public:
void calcWipe();
void set2DOpa(dDlst_base_c*);
J3DDrawBuffer* getOpaListFilter() { return mpWetherFxBuffer; }
void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); }
void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); }
void setOpaList() { setOpaDrawList(mpBufInvisibleModelOpa); }
void setXluList() { setXluDrawList(mpBufInvisibleModelXlu); }
void setOpaListSky() { setOpaDrawList(mpBufSkyOpa); }
void setXluListSky() { setXluDrawList(mpBufSkyXlu); }
void setOpaListBG() { setOpaDrawList(mpBufWorldOpa); }
void setXluListBG() { setXluDrawList(mpBufWorldXlu); }
void entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) {
entryZSortXluDrawList(mpBufInvisibleModelXlu, i_packet, param_1);
}
int setSimpleShadow(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, s16 param_4,
f32 param_5, _GXTexObj* param_6) {
return mShadowControl.setSimple(param_0, param_1, param_2, param_3, param_4, param_5,
@@ -217,22 +232,12 @@ public:
dKy_tevstr_c* pTevStr) {
return mShadowControl.setReal2(id, param_2, pModel, pPos, param_5, param_6, pTevStr);
}
void setAlphaModel(u8 type, Mtx mtx, u8 alpha) {
mpAlphaModel->set(type, mtx, alpha);
}
void setSpotModel(u8 type, Mtx mtx, u8 alpha) {
mpSpotModel->set(type, mtx, alpha);
}
void setLightModel(u8 type, Mtx mtx, u8 alpha) {
mpLightModel->set(type, mtx, alpha);
}
s32 getSpotModelNum() {
return mpSpotModel->getNum();
}
s32 getLightModelNum() {
return mpLightModel->getNum();
}
void setAlphaModel(u8 type, Mtx mtx, u8 alpha) { mpAlphaModel->set(type, mtx, alpha); }
void setSpotModel(u8 type, Mtx mtx, u8 alpha) { mpSpotModel->set(type, mtx, alpha); }
void setLightModel(u8 type, Mtx mtx, u8 alpha) { mpLightModel->set(type, mtx, alpha); }
s32 getSpotModelNum() { return mpSpotModel->getNum(); }
s32 getLightModelNum() { return mpLightModel->getNum(); }
static void offWipe() { mWipe = false; }
+21 -17
View File
@@ -35,7 +35,7 @@ struct WIND_INFLUENCE {
/* 0x18 */ f32 mRadius;
/* 0x1C */ f32 mStrength;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ u32 field_0x24;
/* 0x24 */ int field_0x24;
/* 0x28 */ u8 mbConstant;
};
@@ -50,9 +50,7 @@ struct WIND_INF_ENTITY {
struct GB_WIND_INFLUENCE {
/* 0x00 */ cXyz mWindVec;
/* 0x04 */ cXyz* mpWindVecOverride;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x08 */ cXyz field_0x8;
/* 0x14 */ f32 mWindPower;
/* 0x18 */ f32 mWindStrengthOverride;
/* 0x1C */ f32 mCustomWindPower;
@@ -107,6 +105,12 @@ struct WAVE_INFO {
/* 0x14 */ f32 field_0x14;
};
struct DEMO_PLIGHT {
/* 0x00 */ int field_0x00;
/* 0x04 */ int field_0x04;
/* 0x08 */ LIGHT_INFLUENCE mLightInfluence;
};
class dKy_tevstr_c {
public:
/* 0x00 */ J3DLightObj mLightObj;
@@ -148,13 +152,6 @@ enum TevType {
TEV_TYPE_ACTOR_NOLIGHT,
};
struct dScnKy__Schedule {
/* 0x0 */ f32 mTimeEnd;
/* 0x4 */ f32 mTimeBegin;
/* 0x8 */ u8 mPalIdx0;
/* 0x9 */ u8 mPalIdx1;
};
class dKankyo_sun_Packet;
class dKankyo_sunlenz_Packet;
class dKankyo_rain_Packet;
@@ -163,13 +160,15 @@ class dKankyo_housi_Packet;
class dKankyo_cloud_Packet;
class dKankyo_vrkumo_Packet;
class dKankyo_wave_Packet;
class dKyr__wind_Packet;
class dKankyo_poison_Packet;
class WINDEFF_SET;
class dKankyo_star_Packet;
class stage_palet_info_class;
class stage_pselect_info_class;
class stage_envr_info_class;
class stage_vrbox_info_class;
class stage_plight_info_class;
struct dKyd_Schedule;
class dScnKy_env_light_c {
public:
@@ -203,7 +202,7 @@ public:
/* 0x008 */ stage_pselect_info_class* mpPselectInfo;
/* 0x00C */ stage_envr_info_class* mpEnvrInfo;
/* 0x010 */ stage_vrbox_info_class* mpVrboxInfo;
/* 0x014 */ dScnKy__Schedule* mpSchejule;
/* 0x014 */ dKyd_Schedule* mpSchejule;
/* 0x018 */ LIGHT_INFLUENCE mBaseLightInfluence;
/* 0x038 */ LIGHT_INFLUENCE mLightInfluence[30];
/* 0x3F8 */ LIGHT_INFLUENCE* mpPLights[200];
@@ -229,8 +228,10 @@ public:
/* 0x9D8 */ int mStarCount;
/* 0x9DC */ f32 mStarCountTarget;
/* 0x9E0 */ dKankyo_star_Packet* mpStarPacket;
/* 0x9E4 */ u8 field_0x9E4[0x9F0 - 0x9E4];
/* 0x9F0 */ u8 mbHouseInitialized;
/* 0x9E4 */ u8 mbPoisonInitialized;
/* 0x9E8 */ int mPoisonCount;
/* 0x9EC */ dKankyo_poison_Packet* mpPoisonPacket;
/* 0x9F0 */ u8 mbHousiInitialized;
/* 0x9F4 */ int mHousiCount;
/* 0x9F8 */ dKankyo_housi_Packet* mpHousiPacket;
/* 0x9FC */ u8 mMoyaInitialized;
@@ -242,11 +243,11 @@ public:
/* 0xA10 */ f32 mVrkumoStrength;
/* 0xA14 */ dKankyo_vrkumo_Packet* mpVrkumoPacket;
/* 0xA18 */ u8 mWaveInitialized;
/* 0xA19 */ u8 field_0xA19[0xA20 - 0xA19];
/* 0xA1C */ int field_0xa1c;
/* 0xA20 */ dKankyo_wave_Packet* mpWavePacket;
/* 0xA24 */ u8 mbWindlineInitialized;
/* 0xA28 */ int mWindlineCount;
/* 0xA2C */ dKyr__wind_Packet* mpWind;
/* 0xA2C */ WINDEFF_SET* mpWind;
/* 0xA30 */ EF_THUNDER mThunderEff;
/* 0xA68 */ WAVE_INFO* mpWaveInfl[10];
/* 0xA90 */ cXyz mLightDir;
@@ -392,6 +393,9 @@ void dKy_Sound_set(cXyz i_pos, int param_1, unsigned int i_actorID, int param_3)
void dKy_itudemo_se();
void dKy_actor_addcol_set(s16, s16, s16, f32);
void dKy_plight_set(LIGHT_INFLUENCE*);
void dKy_efplight_set(LIGHT_INFLUENCE* param_0);
void dKy_plight_cut(LIGHT_INFLUENCE* param_0);
void dKy_efplight_cut(LIGHT_INFLUENCE* param_0);
void dKy_fog_startendz_set(f32, f32, f32);
void dKy_vrbox_addcol_set(s16, s16, s16, f32);
BOOL dKy_daynight_check();
+10 -4
View File
@@ -7,15 +7,21 @@ struct stage_vrbox_info_class;
struct stage_pselect_info_class;
struct stage_envr_info_class;
struct stage_palet_info_class;
struct dScnKy__Schedule;
struct dKyd_Schedule {
/* 0x0 */ f32 mTimeEnd;
/* 0x4 */ f32 mTimeBegin;
/* 0x8 */ u8 mPalIdx0;
/* 0x9 */ u8 mPalIdx1;
};
stage_palet_info_class* dKyd_dmpalet_getp();
stage_pselect_info_class* dKyd_dmpselect_getp();
stage_envr_info_class* dKyd_dmenvr_getp();
stage_vrbox_info_class* dKyd_dmvrbox_getp();
dScnKy__Schedule* dKyd_schejule_getp();
dScnKy__Schedule* dKyd_schejule_boss_getp();
void dKyd_schejule_menu_getp();
dKyd_Schedule* dKyd_schejule_getp();
dKyd_Schedule* dKyd_schejule_boss_getp();
dKyd_Schedule* dKyd_schejule_menu_getp();
void dKyd_xfog_table_set(u8);
#endif /* D_KANKYO_DATA_H */
+41
View File
@@ -1,7 +1,48 @@
#ifndef D_KANKYO_D_KANKYO_RAIN_H
#define D_KANKYO_D_KANKYO_RAIN_H
#include "dolphin/types.h"
#include "dolphin/gx/GX.h"
struct DOUBLE_POS {
f64 x, y, z;
};
class cXyz;
void dKyr_drawSun(Mtx, cXyz*, GXColor&, u8**);
void dKyr_drawLenzflare(Mtx, cXyz*, GXColor&, u8**);
void dKyr_drawRain(Mtx, u8**);
void dKyr_drawSibuki(Mtx, u8**);
void drawPoison(Mtx, u8**);
void dKyr_drawHousi(Mtx, u8**);
void dKyr_drawKazanbai(Mtx, u8**);
void dKyr_drawSnow(Mtx, u8**);
void dKyr_drawStar(Mtx, u8**);
void drawWave(Mtx, u8**);
void drawCloudShadow(Mtx, u8**);
void drawVrkumo(Mtx, GXColor&, u8**);
void dKyr_thunder_init();
void dKyr_thunder_move();
void dKyr_poison_light_colision();
void dKyr_wind_init();
void dKyr_wind_move();
void dKyr_sun_move();
void dKyr_lenzflare_move();
void dKyr_rain_init();
void dKyr_rain_move();
void dKyr_snow_move();
void dKyr_kazanbai_move();
void dKyr_snow_init();
void dKyr_star_init();
void dKyr_star_move();
void poison_init();
void poison_move();
void dKyr_housi_move();
void cloud_shadow_move();
void vrkumo_move();
void wave_move();
void dKyr_get_vectle_calc(cXyz*, cXyz*, cXyz*);
BOOL dKyr_poison_live_check();
BOOL dKyr_moon_arrival_check();
+332
View File
@@ -1,9 +1,341 @@
#ifndef D_KANKYO_WETHER_H
#define D_KANKYO_WETHER_H
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "SSystem/SComponent/c_xyz.h"
class JUTTexture;
class JPABaseEmitter;
class WIND_INFLUENCE;
class dKankyo_sun_Packet : public J3DPacket {
public:
dKankyo_sun_Packet() {}
virtual void draw();
virtual ~dKankyo_sun_Packet();
/* 0x10 */ cXyz mPos[2];
/* 0x28 */ u32 mVizChkData[5];
/* 0x3C */ u8 field_0x3c;
/* 0x3D */ bool field_0x3d;
/* 0x40 */ f32 mVisibility;
/* 0x44 */ f32 mSunAlpha;
/* 0x48 */ f32 mMoonAlpha;
/* 0x4C */ GXColor mColor;
/* 0x50 */ u8* mpTextureData[5];
};
class dKankyo_sunlenz_Packet : public J3DPacket {
public:
dKankyo_sunlenz_Packet() {}
virtual void draw();
virtual ~dKankyo_sunlenz_Packet();
/* 0x10 */ GXColor mColorTmp;
/* 0x14 */ u8* mpTexSnow01;
/* 0x18 */ u8* mpTexLensHalf;
/* 0x1C */ u8* mpTexRingHalf;
/* 0x20 */ cXyz mPositions[8];
/* 0x80 */ f32 field_0x80;
/* 0x84 */ f32 field_0x84;
/* 0x88 */ f32 field_0x88;
/* 0x8C */ f32 field_0x8c;
/* 0x90 */ f32 mAngleDeg;
/* 0x94 */ f32 mDistFalloff;
/* 0x98 */ s16 field_0x98;
/* 0x9A */ bool mbDrawLenzInSky;
};
struct RAIN_EFF {
RAIN_EFF();
~RAIN_EFF();
/* 0x00 */ u8 mStatus;
/* 0x04 */ cXyz mPos;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 mAlpha;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ s16 mTimer;
};
class dKankyo_rain_Packet : public J3DPacket {
public:
dKankyo_rain_Packet() {}
virtual void draw();
virtual ~dKankyo_rain_Packet();
/* 0x0010 */ u8* mpTxSnow01;
/* 0x0014 */ u8* mpTxRingAHalf;
/* 0x0018 */ RAIN_EFF mRainEff[250];
/* 0x36C8 */ f32 field_0x36c8;
/* 0x36CC */ f32 field_0x36cc;
/* 0x36D0 */ s16 mRainCount;
/* 0x36D2 */ u8 field_0x36D2[0x36D8 - 0x36D2];
/* 0x36D8 */ cXyz mCamEyePos;
/* 0x36E4 */ cXyz mCamCenterPos;
/* 0x36F0 */ cXyz mCenterDelta;
/* 0x36FC */ f32 mCenterDeltaMul;
/* 0x3700 */ f32 field_0x3700;
/* 0x3704 */ f32 mSibukiAlpha;
/* 0x3708 */ f32 mOverheadFade;
/* 0x370C */ f32 mFwd1Fade;
/* 0x3710 */ f32 mFwdFade2;
/* 0x3714 */ u8 mStatus;
};
struct SNOW_EFF {
SNOW_EFF();
~SNOW_EFF();
/* 0x00 */ u8 mStatus;
/* 0x04 */ cXyz mPos;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ f32 mPosWaveX;
/* 0x20 */ f32 mPosWaveZ;
/* 0x24 */ f32 mGravity;
/* 0x28 */ f32 mWindSpeed;
/* 0x2C */ f32 mScale;
/* 0x30 */ u8 field_0x30[0x34 - 0x30];
/* 0x34 */ s16 mTimer;
};
class dKankyo_snow_Packet : public J3DPacket {
public:
dKankyo_snow_Packet() {}
virtual void draw();
virtual ~dKankyo_snow_Packet();
/* 0x0010 */ u8* mpTexture;
/* 0x0014 */ SNOW_EFF mEff[250];
/* 0x36C4 */ cXyz mOldEyePos;
/* 0x36D0 */ f32 field_0x36d0;
/* 0x36D4 */ f32 field_0x36d4;
/* 0x36D8 */ s16 mEffCount;
/* 0x36DA */ s16 mTamariStart;
};
struct STAR_EFF {
STAR_EFF();
~STAR_EFF();
/* 0x00 */ u8 field_0x00[0x1C - 0x00];
/* 0x1C */ f32 mAnimCounter;
/* 0x20 */ u8 field_0x20[0x28 - 0x20];
/* 0x28 */ f32 mSin;
/* 0x2C */ u8 field_0x2c[0x34 - 0x2C];
};
class dKankyo_star_Packet : public J3DPacket {
public:
dKankyo_star_Packet() {}
virtual void draw();
virtual ~dKankyo_star_Packet();
/* 0x10 */ u8* field_0x10;
/* 0x14 */ STAR_EFF mStarEff[1];
/* 0x48 */ s16 mCount;
};
struct POISON_EFF {
POISON_EFF();
~POISON_EFF();
/* 0x0 */ u8 field_0x0[0x30];
};
class dKankyo_poison_Packet : public J3DPacket {
public:
dKankyo_poison_Packet() {}
virtual void draw();
virtual ~dKankyo_poison_Packet();
/* 0x0010 */ POISON_EFF mPoisonEff[1000];
/* 0xBB90 */ u8 field_0xbb90[0xBB9C - 0xBB90];
/* 0xBB9C */ cXyz field_0xbb9c;
/* 0xBBA8 */ u8 field_0xbba8[0xBBAC - 0xBBA8];
/* 0xBBAC */ u8* field_0xbbac;
};
struct CLOUD_EFF {
CLOUD_EFF();
~CLOUD_EFF();
/* 0x00 */ u8 mStatus;
/* 0x04 */ cXyz mPos;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ cXyz mPntWindVel;
/* 0x28 */ cXyz mVelRndm;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 mWindSpeed;
/* 0x3C */ s16 mAnimCounter;
/* 0x40 */ f32 mAlpha;
/* 0x44 */ f32 mSize;
/* 0x48 */ f32 mInitialSize;
};
class dKankyo_cloud_Packet : public J3DPacket {
public:
dKankyo_cloud_Packet() {}
virtual void draw();
virtual ~dKankyo_cloud_Packet();
/* 0x0010 */ u8* mpTexture;
/* 0x0014 */ int mCount;
/* 0x0018 */ CLOUD_EFF mEff[100];
};
struct HOUSI_EFF {
HOUSI_EFF();
~HOUSI_EFF();
/* 0x00 */ u8 mState;
/* 0x04 */ cXyz mPos;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ cXyz mVel;
/* 0x28 */ cXyz mScale;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ u8 field_0x38[0x3C - 0x38];
/* 0x3C */ s16 field_0x3c;
/* 0x3E */ u8 field_0x3E[0x40 - 0x3E];
/* 0x40 */ f32 mAlpha;
/* 0x44 */ u8 field_0x44[0x48 - 0x44];
/* 0x48 */ f32 field_0x48;
/* 0x4C */ s16 field_0x4c;
};
class dKankyo_housi_Packet : public J3DPacket {
public:
dKankyo_housi_Packet() {}
virtual void draw();
virtual ~dKankyo_housi_Packet();
/* 0x0010 */ u8* mpTex;
/* 0x0014 */ HOUSI_EFF mEff[300];
/* 0x5DD4 */ u8 field_0x5DD4[0x5DDC - 0x5DD4];
/* 0x5DDC */ f32 field_0x5ddc;
/* 0x5DE0 */ s16 mCount;
/* 0x5DE2 */ u8 field_0x5de2[0x5DE8 - 0x5DE2];
};
struct VRKUMO_EFF {
VRKUMO_EFF();
~VRKUMO_EFF();
/* 0x00 */ u8 mStatus;
/* 0x01 */ u8 field_0x01[0x04 - 0x01];
/* 0x04 */ cXyz mPosition;
/* 0x10 */ u8 field_0x10[0x1C - 0x10];
/* 0x1C */ f32 mHeight;
/* 0x20 */ f32 mAlpha;
/* 0x24 */ f32 mDistFalloff;
/* 0x28 */ f32 mSpeed;
};
class dKankyo_vrkumo_Packet : public J3DPacket {
public:
dKankyo_vrkumo_Packet() {}
virtual void draw();
virtual ~dKankyo_vrkumo_Packet();
/* 0x0010 */ GXColor mColorTmp;
/* 0x0014 */ u8* mpCloudTx1;
/* 0x0018 */ u8* mpCloudTx2;
/* 0x001C */ u8* mpCloudTx3;
/* 0x0020 */ VRKUMO_EFF mInst[100];
};
struct WAVE_EFF {
WAVE_EFF();
~WAVE_EFF();
/* 0x00 */ cXyz mPos;
/* 0x0C */ cXyz mBasePos;
/* 0x18 */ f32 mSpeed;
/* 0x1C */ f32 mScale;
/* 0x20 */ f32 mCounterSpeed;
/* 0x24 */ f32 mCounter;
/* 0x28 */ f32 mStrengthWind;
/* 0x2C */ f32 mStrengthEnv;
/* 0x30 */ s16 field_0x30;
/* 0x32 */ s16 field_0x32;
/* 0x34 */ u8 mState;
};
class dKankyo_wave_Packet : public J3DPacket {
public:
dKankyo_wave_Packet() {}
virtual void draw();
virtual ~dKankyo_wave_Packet();
/* 0x0010 */ u8* mpTexUsonami;
/* 0x0014 */ u8* mpTexUsonamiM;
/* 0x0018 */ WAVE_EFF mpWaveEff[300];
/* 0x41B8 */ f32 mSkewWidth;
/* 0x41BC */ f32 mSkewDir;
};
struct KAMOME_EFF {
KAMOME_EFF();
~KAMOME_EFF();
/* 0x00 */ JPABaseEmitter* mpBaseEmitter;
/* 0x04 */ cXyz mPos;
/* 0x10 */ s16 field_0x10;
/* 0x12 */ s16 field_0x12;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ u8 field_0x18[0x1E - 0x18];
/* 0x1E */ u8 field_0x1e;
};
struct WIND_EFF {
WIND_EFF();
~WIND_EFF();
/* 0x00 */ JPABaseEmitter* mpEmitter;
/* 0x04 */ cXyz mBasePos;
/* 0x10 */ cXyz mRandomPos;
/* 0x1C */ f32 mStateTimer;
/* 0x20 */ f32 mAlpha;
/* 0x24 */ int mState;
/* 0x28 */ int field_0x28;
/* 0x2C */ s16 field_0x2c;
/* 0x2E */ s16 mAngleY;
/* 0x30 */ s16 mAngleXZ;
/* 0x32 */ u8 field_0x32;
};
// is this the correct name?
struct WINDEFF_SET {
/* 0x000 */ WIND_EFF mWindEff[30];
/* 0x618 */ KAMOME_EFF mKamomeEff[10];
/* 0x758 */ u8 mbHasCustomWindPower;
/* 0x759 */ u8 field_0x759;
};
void dKyw_wether_proc();
void dKyw_rain_set(int);
void dKyw_wind_set();
void dKyw_wind_init();
void dKyw_pntwind_init();
void dKy_wave_chan_init();
f32 dKyw_get_wind_pow();
f32* dKyw_get_wind_power();
void squal_proc();
void dKyw_pntwind_set(WIND_INFLUENCE*);
void dKyw_pntwind_cut(WIND_INFLUENCE*);
#endif /* D_KANKYO_WETHER_H */
+4
View File
@@ -39,6 +39,10 @@ public:
void setDate(u16 i_date) { mDate = i_date; }
void setTime(f32 i_time) { mTime = i_time; }
s64 getDateIpl() const { return mDateIPL; }
s16 getWindY() { return mTactWindAngleY; }
s16 getWindX() { return mTactWindAngleX; }
void setWindY(s16 i_windY) { mTactWindAngleY = i_windY; }
void setWindX(s16 i_windX) { mTactWindAngleX = i_windX; }
/* 0x00 */ u64 mDateIPL;
/* 0x08 */ f32 field_0x8;
+8
View File
@@ -956,4 +956,12 @@ inline s32 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) {
return p_info->mWipe;
}
inline int dStage_FileList_dt_ChkPathWindEffect(dStage_FileList_dt_c* i_fili) {
return i_fili->mParam & 0x100000;
}
inline int dStage_FileList_dt_GlobalWindLevel(dStage_FileList_dt_c* i_fili) {
return (i_fili->mParam >> 0x12) & 3;
}
#endif /* D_D_STAGE_H */
+4
View File
@@ -82,4 +82,8 @@ inline void mDoAud_setWeekday(s32 day) {
mDoAud_zelAudio_c::getInterface()->setWeekday(day);
}
inline void mDoAud_rainPlay(s32 param_0) {
mDoAud_zelAudio_c::getInterface()->rainPlay(param_0);
}
#endif /* M_DO_AUDIO_H */
+1 -1
View File
@@ -640,7 +640,7 @@ void dScnKy_env_light_c::setLight_palno_get(u8* i_envrSel0, u8* i_envrSel1, u8*
}
}
dScnKy__Schedule* schedule_p;
dKyd_Schedule* schedule_p;
for (int i = 0; i < 11; i++) {
schedule_p = &mpSchejule[i];
if (mCurTime >= schedule_p->mTimeEnd && mCurTime <= schedule_p->mTimeBegin) {
+422 -23
View File
@@ -1,48 +1,447 @@
//
// Generated by dtk
// Translation Unit: d_kankyo_data.cpp
//
/**
* d_kankyo_data.cpp
* Environment Data
*/
#include "d_kankyo_data.h"
#include "dolphin/types.h"
#include "d/d_kankyo_data.h"
#include "d/d_stage.h"
static dKyd_Schedule l_time_attribute[] = {
{0.0f, 90.0f, 5, 5}, {90.0f, 105.0f, 5, 0}, {105.0f, 120.0f, 0, 1}, {120.0f, 150.0f, 1, 2},
{150.0f, 270.0f, 2, 2}, {270.0f, 285.0f, 2, 3}, {285.0f, 300.0f, 3, 4}, {300.0f, 315.0f, 4, 5},
{315.0f, 360.0f, 5, 5}, {360.0f, 360.0f, 5, 5}, {360.0f, 360.0f, 5, 5},
};
static dKyd_Schedule l_time_attribute_boss[] = {
{0.0f, 45.0f, 0, 1}, {45.0f, 90.0f, 1, 2}, {90.0f, 180.0f, 2, 3}, {180.0f, 225.0f, 3, 4},
{225.0f, 270.0f, 4, 5}, {270.0f, 360.0f, 5, 0}, {360.0f, 360.0f, 5, 5}, {360.0f, 360.0f, 5, 5},
{360.0f, 360.0f, 5, 5}, {360.0f, 360.0f, 5, 5}, {360.0f, 360.0f, 5, 5},
};
static dKyd_Schedule l_time_attribute_menu[] = {
{0.0f, 60.0f, 5, 5}, {60.0f, 75.0f, 5, 0}, {75.0f, 90.0f, 0, 0}, {90.0f, 105.0f, 0, 1},
{105.0f, 150.0f, 1, 2}, {150.0f, 225.0f, 2, 2}, {225.0f, 240.0f, 2, 3}, {240.0f, 255.0f, 3, 4},
{255.0f, 270.0f, 4, 5}, {270.0f, 300.0f, 5, 5}, {300.0f, 360.0f, 5, 5},
};
static stage_palet_info_class l_field_data[] = {
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
0,
-5000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
1,
40000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
2,
10000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
3,
8000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
4,
-5000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
5,
40000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
6,
10000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
7,
8000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
0,
-5000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
1,
40000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
2,
10000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
3,
8000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
0,
-5000.0f,
30000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
1,
40000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
2,
10000.0f,
50000.0f,
},
{
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF},
3,
8000.0f,
30000.0f,
},
};
static stage_pselect_info_class l_pselect_default[] = {
{
{0, 0, 1, 2, 2, 3, 0, 0},
0.0f,
},
{
{4, 4, 5, 6, 6, 7, 0, 0},
0.0f,
},
};
static stage_envr_info_class l_envr_default[] = {
{
{0, 1, 2, 3, 0, 0, 0, 0},
},
{
{4, 5, 6, 7, 0, 0, 0, 0},
},
};
static stage_vrbox_info_class l_vr_box_data[] = {
{
0,
0,
0,
0,
{0x4A, 0x47, 0x4F, 0xC0},
{0x6C, 0x60, 0x5C, 0xFF},
{0x4F, 0x46, 0x4E},
{0x71, 0x5A, 0x49},
{0xB4, 0x8E, 0x79},
},
{
0,
0,
0,
0,
{0xF7, 0xE8, 0xD8, 0xA3},
{0xFF, 0xF1, 0xDF, 0xFF},
{0xB4, 0xBC, 0xC9},
{0xC1, 0xBE, 0xC5},
{0xF1, 0xE6, 0xDC},
},
{
0,
0,
0,
0,
{0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF},
{0x50, 0x78, 0xFF},
{0x50, 0x78, 0xFF},
{0xA3, 0xD2, 0xFF},
},
{
0,
0,
0,
0,
{0xE9, 0xB1, 0x6C, 0xD4},
{0xD0, 0x9B, 0x62, 0xFF},
{0xE5, 0xA4, 0x6D},
{0xC8, 0xA0, 0x64},
{0xFF, 0xD1, 0x93},
},
{
0,
0,
0,
0,
{0x60, 0x55, 0x5A, 0x5F},
{0x75, 0x5E, 0x5B, 0xFF},
{0x64, 0x50, 0x4E},
{0x67, 0x58, 0x4F},
{0xE7, 0xC7, 0x96},
},
{
0,
0,
0,
0,
{0x34, 0x56, 0x78, 0x64},
{0x3A, 0x64, 0x86, 0xFF},
{0x0A, 0x32, 0x55},
{0x00, 0x31, 0x4A},
{0x3C, 0x4B, 0x64},
},
{
0,
0,
0,
0,
{0x25, 0x3C, 0x4B, 0xFF},
{0x25, 0x3C, 0x4B, 0xFF},
{0x0E, 0x14, 0x2C},
{0x00, 0x00, 0x00},
{0x13, 0x2B, 0x4D},
},
{
0,
0,
0,
0,
{0x00, 0x0A, 0x0A, 0x32},
{0x00, 0x0A, 0x0A, 0x32},
{0x00, 0x0A, 0x1E},
{0x00, 0x5A, 0x50},
{0x00, 0x1E, 0x26},
},
};
static GXFogAdjTable S_xfog_table_data[] = {
{
{260, 260, 270, 280, 290, 300, 310, 320, 330, 340},
},
{
{250, 260, 280, 320, 350, 400, 480, 550, 600, 800},
},
};
/* 80086EE0-80086EEC .text dKyd_dmpalet_getp__Fv */
void dKyd_dmpalet_getp() {
/* Nonmatching */
stage_palet_info_class* dKyd_dmpalet_getp() {
return l_field_data;
}
/* 80086EEC-80086EF8 .text dKyd_dmpselect_getp__Fv */
void dKyd_dmpselect_getp() {
/* Nonmatching */
stage_pselect_info_class* dKyd_dmpselect_getp() {
return l_pselect_default;
}
/* 80086EF8-80086F04 .text dKyd_dmenvr_getp__Fv */
void dKyd_dmenvr_getp() {
/* Nonmatching */
stage_envr_info_class* dKyd_dmenvr_getp() {
return l_envr_default;
}
/* 80086F04-80086F10 .text dKyd_dmvrbox_getp__Fv */
void dKyd_dmvrbox_getp() {
/* Nonmatching */
stage_vrbox_info_class* dKyd_dmvrbox_getp() {
return l_vr_box_data;
}
/* 80086F10-80086F1C .text dKyd_schejule_getp__Fv */
void dKyd_schejule_getp() {
/* Nonmatching */
dKyd_Schedule* dKyd_schejule_getp() {
return l_time_attribute;
}
/* 80086F1C-80086F28 .text dKyd_schejule_boss_getp__Fv */
void dKyd_schejule_boss_getp() {
/* Nonmatching */
dKyd_Schedule* dKyd_schejule_boss_getp() {
return l_time_attribute_boss;
}
/* 80086F28-80086F34 .text dKyd_schejule_menu_getp__Fv */
void dKyd_schejule_menu_getp() {
/* Nonmatching */
dKyd_Schedule* dKyd_schejule_menu_getp() {
return l_time_attribute_menu;
}
/* 80086F34-80086F74 .text dKyd_xfog_table_set__FUc */
void dKyd_xfog_table_set(unsigned char) {
/* Nonmatching */
void dKyd_xfog_table_set(u8 i_idx) {
for (int i = 0; i < 10; i++) {
u16 fogAdjTableEntry = S_xfog_table_data[i_idx].r[i];
g_env_light.mFogAdjTable.r[i] = fogAdjTableEntry;
}
}
+56 -13
View File
@@ -1,23 +1,66 @@
//
// Generated by dtk
// Translation Unit: d_kankyo_demo.cpp
//
/**
* d_kankyo_demo.cpp
*
*/
#include "d_kankyo_demo.h"
#include "dolphin/types.h"
#include "d/d_kankyo.h"
/* 8009BE64-8009BF6C .text dKydm_demo_plight_entry__FP11DEMO_PLIGHTP4cXyziUc */
void dKydm_demo_plight_entry(DEMO_PLIGHT*, cXyz*, int, unsigned char) {
/* Nonmatching */
void dKydm_demo_plight_entry(DEMO_PLIGHT* i_plight, cXyz* i_pos, int param_2, u8 param_3) {
if (param_2 >= 0) {
i_plight->mLightInfluence.mPos = *i_pos;
i_plight->field_0x04 = param_2 + param_3 * 100;
if (i_plight->field_0x04 < 100) {
// idk if this is fake but it's needed to match...
switch (i_plight->field_0x04) {
case 0:
break;
}
i_plight->mLightInfluence.mColor.r = 255;
i_plight->mLightInfluence.mColor.g = 255;
i_plight->mLightInfluence.mColor.b = 128;
i_plight->mLightInfluence.mPower = 500.0f;
i_plight->mLightInfluence.mFluctuation = 255.0f;
dKy_plight_set(&i_plight->mLightInfluence);
} else {
if (i_plight->field_0x04 != 103) {
i_plight->mLightInfluence.mColor.r = 255;
i_plight->mLightInfluence.mColor.g = 255;
i_plight->mLightInfluence.mColor.b = 120;
i_plight->mLightInfluence.mPower = 437.0f;
i_plight->mLightInfluence.mFluctuation = 55.0f;
} else {
i_plight->mLightInfluence.mColor.r = 255;
i_plight->mLightInfluence.mColor.g = 255;
i_plight->mLightInfluence.mColor.b = 120;
i_plight->mLightInfluence.mPower = 532.0f;
i_plight->mLightInfluence.mFluctuation = 71.0f;
}
dKy_efplight_set(&i_plight->mLightInfluence);
}
i_plight->field_0x00 = 0;
i_plight->field_0x04 = param_2;
}
}
/* 8009BF6C-8009BFB0 .text dKydm_demo_plight_delete__FP11DEMO_PLIGHT */
void dKydm_demo_plight_delete(DEMO_PLIGHT*) {
/* Nonmatching */
void dKydm_demo_plight_delete(DEMO_PLIGHT* i_plight) {
if (i_plight != NULL) {
if (i_plight->field_0x04 < 100) {
dKy_plight_cut(&i_plight->mLightInfluence);
} else {
dKy_efplight_cut(&i_plight->mLightInfluence);
}
}
}
/* 8009BFB0-8009BFD4 .text dKydm_demo_plight_execute__FP11DEMO_PLIGHTP4cXyz */
void dKydm_demo_plight_execute(DEMO_PLIGHT*, cXyz*) {
/* Nonmatching */
void dKydm_demo_plight_execute(DEMO_PLIGHT* i_plight, cXyz* i_pos) {
if (i_plight != NULL) {
i_plight->mLightInfluence.mPos = *i_pos;
}
}
+82 -78
View File
@@ -3,37 +3,87 @@
// Translation Unit: d_kankyo_rain.cpp
//
#include "d_kankyo_rain.h"
#include "dolphin/types.h"
#include "d/d_kankyo_rain.h"
#include "d/d_bg_s_gnd_chk.h"
#include "d/d_com_inf_game.h"
#include "d/d_kankyo.h"
#include "f_op/f_op_camera_mng.h"
/* 8008AA30-8008AB3C .text vectle_calc__FP10DOUBLE_POSP4cXyz */
void vectle_calc(DOUBLE_POS*, cXyz*) {
/* Nonmatching */
void vectle_calc(DOUBLE_POS* i_pos, cXyz* o_out) {
double s = sqrt(i_pos->x * i_pos->x + i_pos->y * i_pos->y + i_pos->z * i_pos->z);
if (s != 0.0) {
o_out->x = i_pos->x / s;
o_out->y = i_pos->y / s;
o_out->z = i_pos->z / s;
} else {
o_out->x = 0.0;
o_out->y = 0.0;
o_out->z = 0.0;
}
}
/* 8008AB3C-8008AB94 .text get_vectle_calc__FP4cXyzP4cXyzP4cXyz */
void get_vectle_calc(cXyz*, cXyz*, cXyz*) {
/* Nonmatching */
void get_vectle_calc(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
DOUBLE_POS pos;
pos.x = param_1->x - param_0->x;
pos.y = param_1->y - param_0->y;
pos.z = param_1->z - param_0->z;
vectle_calc(&pos, param_2);
}
/* 8008AB94-8008ABB4 .text dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz */
void dKyr_get_vectle_calc(cXyz*, cXyz*, cXyz*) {
/* Nonmatching */
void dKyr_get_vectle_calc(cXyz* param_0, cXyz* param_1, cXyz* param_2) {
get_vectle_calc(param_0, param_1, param_2);
}
/* 8008ABB4-8008AC64 .text dKy_set_eyevect_calc__FP12camera_classP3Vecff */
void dKy_set_eyevect_calc(camera_class*, Vec*, float, float) {
/* Nonmatching */
void dKy_set_eyevect_calc(camera_class* i_camera, Vec* param_1, f32 param_2, f32 param_3) {
cXyz tmp;
get_vectle_calc(&i_camera->mLookat.mEye, &i_camera->mLookat.mCenter, &tmp);
param_1->x = i_camera->mLookat.mEye.x + tmp.x * param_2;
param_1->y = (i_camera->mLookat.mEye.y + tmp.y * param_3) - 200.0f;
param_1->z = i_camera->mLookat.mEye.z + tmp.z * param_2;
}
/* 8008AC64-8008AD60 .text dKy_set_eyevect_calc2__FP12camera_classP3Vecff */
void dKy_set_eyevect_calc2(camera_class*, Vec*, float, float) {
/* Nonmatching */
void dKy_set_eyevect_calc2(camera_class* i_camera, Vec* param_1, f32 param_2, f32 param_3) {
cXyz tmp;
DOUBLE_POS pos;
pos.x = i_camera->mLookat.mCenter.x - i_camera->mLookat.mEye.x;
if (param_3 != 0.0f) {
pos.y = i_camera->mLookat.mCenter.y - i_camera->mLookat.mEye.y;
} else {
pos.y = 0.0f;
}
pos.z = i_camera->mLookat.mCenter.z - i_camera->mLookat.mEye.z;
vectle_calc(&pos, &tmp);
param_1->x = i_camera->mLookat.mEye.x + tmp.x * param_2;
param_1->y = i_camera->mLookat.mEye.y + tmp.y * param_3;
param_1->z = i_camera->mLookat.mEye.z + tmp.z * param_2;
if (param_3 == 0.0f) {
param_1->y = 0.0f;
}
}
/* 8008AD60-8008AE54 .text dKyr_set_btitex__FP9_GXTexObjP7ResTIMG */
void dKyr_set_btitex(_GXTexObj*, ResTIMG*) {
/* Nonmatching */
void dKyr_set_btitex(GXTexObj* i_obj, ResTIMG* i_img) {
GXInitTexObj(i_obj, (&i_img->format + i_img->imageOffset), i_img->width, i_img->height,
(GXTexFmt)i_img->format, (GXTexWrapMode)i_img->wrapS, (GXTexWrapMode)i_img->wrapT,
(GXBool)(i_img->mipmapCount > 1));
GXInitTexObjLOD(i_obj, (GXTexFilter)i_img->minFilter, (GXTexFilter)i_img->magFilter,
i_img->minLOD * 0.125f, i_img->maxLOD * 0.125f, i_img->LODBias * 0.01f,
(GXBool)i_img->biasClamp, (GXBool)i_img->doEdgeLOD,
(GXAnisotropy)i_img->maxAnisotropy);
GXLoadTexObj(i_obj, GX_TEXMAP0);
}
/* 8008AE54-8008B44C .text dKyr_kamome_move__Fv */
@@ -51,18 +101,13 @@ void dKyr_wind_move() {
/* Nonmatching */
}
/* 8008C4BC-8008C624 .text __dt__18dBgS_ObjGndChk_AllFv */
dBgS_ObjGndChk_All::~dBgS_ObjGndChk_All() {
/* Nonmatching */
}
/* 8008C624-8008C888 .text dKyr_lenzflare_move__Fv */
void dKyr_lenzflare_move() {
/* Nonmatching */
}
/* 8008C888-8008C8B8 .text dKyr_moon_arrival_check__Fv */
void dKyr_moon_arrival_check() {
BOOL dKyr_moon_arrival_check() {
/* Nonmatching */
}
@@ -86,13 +131,8 @@ void overhead_bg_chk() {
/* Nonmatching */
}
/* 8008D53C-8008D638 .text __dt__12dBgS_RoofChkFv */
dBgS_RoofChk::~dBgS_RoofChk() {
/* Nonmatching */
}
/* 8008D638-8008DAF0 .text forward_overhead_bg_chk__FP4cXyzf */
void forward_overhead_bg_chk(cXyz*, float) {
void forward_overhead_bg_chk(cXyz*, f32) {
/* Nonmatching */
}
@@ -152,7 +192,7 @@ void light_at_hit_check(cXyz*) {
}
/* 80092310-80092330 .text dKyr_poison_live_check__Fv */
void dKyr_poison_live_check() {
BOOL dKyr_poison_live_check() {
/* Nonmatching */
}
@@ -186,63 +226,63 @@ void snap_sunmoon_proc(cXyz*, int) {
/* Nonmatching */
}
/* 8009428C-8009514C .text dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc */
void dKyr_drawSun(float(*)[4], cXyz*, _GXColor&, unsigned char**) {
/* 8009428C-8009514C .text dKyr_drawSun__FPA4_fP4cXyzR8GXColorPPUc */
void dKyr_drawSun(Mtx, cXyz*, GXColor&, u8**) {
/* Nonmatching */
}
/* 8009514C-80095E8C .text dKyr_drawLenzflare__FPA4_fP4cXyzR8_GXColorPPUc */
void dKyr_drawLenzflare(float(*)[4], cXyz*, _GXColor&, unsigned char**) {
/* 8009514C-80095E8C .text dKyr_drawLenzflare__FPA4_fP4cXyzR8GXColorPPUc */
void dKyr_drawLenzflare(Mtx, cXyz*, GXColor&, u8**) {
/* Nonmatching */
}
/* 80095E8C-8009682C .text dKyr_drawRain__FPA4_fPPUc */
void dKyr_drawRain(float(*)[4], unsigned char**) {
void dKyr_drawRain(Mtx, u8**) {
/* Nonmatching */
}
/* 8009682C-80096D18 .text dKyr_drawSibuki__FPA4_fPPUc */
void dKyr_drawSibuki(float(*)[4], unsigned char**) {
void dKyr_drawSibuki(Mtx, u8**) {
/* Nonmatching */
}
/* 80096D18-800973CC .text drawPoison__FPA4_fPPUc */
void drawPoison(float(*)[4], unsigned char**) {
void drawPoison(Mtx, u8**) {
/* Nonmatching */
}
/* 800973CC-80097AD0 .text dKyr_drawHousi__FPA4_fPPUc */
void dKyr_drawHousi(float(*)[4], unsigned char**) {
void dKyr_drawHousi(Mtx, u8**) {
/* Nonmatching */
}
/* 80097AD0-800987B8 .text dKyr_drawKazanbai__FPA4_fPPUc */
void dKyr_drawKazanbai(float(*)[4], unsigned char**) {
void dKyr_drawKazanbai(Mtx, u8**) {
/* Nonmatching */
}
/* 800987B8-80098FF0 .text dKyr_drawSnow__FPA4_fPPUc */
void dKyr_drawSnow(float(*)[4], unsigned char**) {
void dKyr_drawSnow(Mtx, u8**) {
/* Nonmatching */
}
/* 80098FF0-80099D38 .text dKyr_drawStar__FPA4_fPPUc */
void dKyr_drawStar(float(*)[4], unsigned char**) {
void dKyr_drawStar(Mtx, u8**) {
/* Nonmatching */
}
/* 80099D38-8009A5D4 .text drawWave__FPA4_fPPUc */
void drawWave(float(*)[4], unsigned char**) {
void drawWave(Mtx, u8**) {
/* Nonmatching */
}
/* 8009A5D4-8009AB88 .text drawCloudShadow__FPA4_fPPUc */
void drawCloudShadow(float(*)[4], unsigned char**) {
void drawCloudShadow(Mtx, u8**) {
/* Nonmatching */
}
/* 8009AB88-8009B9C4 .text drawVrkumo__FPA4_fR8_GXColorPPUc */
void drawVrkumo(float(*)[4], _GXColor&, unsigned char**) {
/* 8009AB88-8009B9C4 .text drawVrkumo__FPA4_fR8GXColorPPUc */
void drawVrkumo(Mtx, GXColor&, u8**) {
/* Nonmatching */
}
@@ -255,39 +295,3 @@ void dKyr_thunder_init() {
void dKyr_thunder_move() {
/* Nonmatching */
}
/* 8009BDEC-8009BDF4 .text @20@__dt__18dBgS_ObjGndChk_AllFv */
void @20@__dt__18dBgS_ObjGndChk_AllFv {
/* Nonmatching */
}
/* 8009BDF4-8009BDFC .text @76@__dt__18dBgS_ObjGndChk_AllFv */
void @76@__dt__18dBgS_ObjGndChk_AllFv {
/* Nonmatching */
}
/* 8009BDFC-8009BE04 .text @64@__dt__18dBgS_ObjGndChk_AllFv */
void @64@__dt__18dBgS_ObjGndChk_AllFv {
/* Nonmatching */
}
/* 8009BE04-8009BE0C .text @16@__dt__12dBgS_RoofChkFv */
void @16@__dt__12dBgS_RoofChkFv {
/* Nonmatching */
}
/* 8009BE0C-8009BE14 .text @48@__dt__12dBgS_RoofChkFv */
void @48@__dt__12dBgS_RoofChkFv {
/* Nonmatching */
}
/* 8009BE14-8009BE1C .text @36@__dt__12dBgS_RoofChkFv */
void @36@__dt__12dBgS_RoofChkFv {
/* Nonmatching */
}
/* 8009BE1C-8009BE64 .text __dt__9dSnap_ObjFv */
dSnap_Obj::~dSnap_Obj() {
/* Nonmatching */
}
+1041 -210
View File
File diff suppressed because it is too large Load Diff