mirror of https://github.com/zeldaret/tp
90 lines
2.8 KiB
C++
90 lines
2.8 KiB
C++
#ifndef D_KANKYO_D_KANKYO_DATA_H
|
|
#define D_KANKYO_D_KANKYO_DATA_H
|
|
|
|
#include "dolphin/types.h"
|
|
|
|
struct color_RGB_class {
|
|
/* 0x0 */ u8 r;
|
|
/* 0x1 */ u8 g;
|
|
/* 0x2 */ u8 b;
|
|
}; // Size: 0x3
|
|
|
|
// Invented name; Used as u8 `darkLv` in dKydata_darkworldInfo_c.
|
|
enum dKyd_DARKLV {
|
|
KY_DARKLV_FARON = 0,
|
|
KY_DARKLV_ELDIN = 1,
|
|
KY_DARKLV_LANAYRU = 2,
|
|
KY_DARKLV_TEST = 5, // Only used with nonexistent test stages
|
|
KY_DARKLV_UNCLEARABLE = 6, // Default. Palace of Twilight stages use this
|
|
KY_DARKLV_ALWAYS = 8, // Unused. Forces Twilight
|
|
};
|
|
|
|
class dKydata_darkworldInfo_c {
|
|
public:
|
|
/* 0x0 */ const char* stageName;
|
|
/* 0x4 */ u8 darkLv;
|
|
}; // Size: 0x8
|
|
|
|
class dKydata_lightsizeInfo_c {
|
|
public:
|
|
/* 0x0 */ const char* stageName;
|
|
/* 0x4 */ u8 size;
|
|
}; // Size: 0x8
|
|
|
|
// Invented name; adjust as needed in the future.
|
|
// Notes (needs more investigation):
|
|
// startTime and endTime are in the range 0 to 360, which is the same as the current time of day.
|
|
// l_time_attribute and l_time_attribute_boss are arrays of `dKyd_lightSchedjule` with their times
|
|
// set up such that the current time of day will fall in the range of one dKyd_lightSchedjule. For
|
|
// example, if the current time is 110.0f (7:20 AM), then the dKyd_lightSchedjule {105.0f, 135.0f,
|
|
// 1, 2} would be selected. If the time was 105.0f, we would use light 1. If the time was 135.0f, we
|
|
// would use light 2. Since 110.0f is closer to 105.0f than 135.0f, we get a blend of lights 1 and 2
|
|
// which is mostly 1. Blending the lights over time is how we get a smooth day-night transition.
|
|
struct dKyd_lightSchejule {
|
|
float startTime;
|
|
float endTime;
|
|
u8 startTimeLight;
|
|
u8 endTimeLight;
|
|
}; // Size: 0xC
|
|
|
|
enum BloomType {
|
|
/* 0x0 */ BLOOM_CLEAR,
|
|
/* 0x1 */ BLOOM_SOFT
|
|
};
|
|
|
|
struct dkydata_bloomInfo_info_class {
|
|
/* 0x0 */ u8 mType;
|
|
/* 0x1 */ u8 mThreshold;
|
|
/* 0x2 */ u8 mBlurAmount;
|
|
/* 0x3 */ u8 mDensity;
|
|
/* 0x4 */ u8 mColorR;
|
|
/* 0x5 */ u8 mColorG;
|
|
/* 0x6 */ u8 mColorB;
|
|
/* 0x7 */ u8 mOrigDensity; // ?
|
|
/* 0x8 */ u8 mSaturateSubtractR;
|
|
/* 0x9 */ u8 mSaturateSubtractG;
|
|
/* 0xA */ u8 mSaturateSubtractB;
|
|
/* 0xB */ u8 mSaturateSubtractA;
|
|
};
|
|
|
|
#define BLOOMINFO_MAX 64
|
|
class dKydata_BloomInfo_c {
|
|
public:
|
|
dkydata_bloomInfo_info_class info;
|
|
}; // Size: 0xC
|
|
|
|
void* dKyd_dmpalet_getp();
|
|
void* dKyd_dmpselect_getp();
|
|
void* dKyd_dmenvr_getp();
|
|
void* dKyd_dmvrbox_getp();
|
|
dKyd_lightSchejule* dKyd_schejule_getp();
|
|
dKyd_lightSchejule* dKyd_schejule_boss_getp();
|
|
void dKyd_xfog_table_set(u8);
|
|
color_RGB_class* dKyd_maple_col_getp();
|
|
dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp();
|
|
dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp();
|
|
dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp();
|
|
dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int);
|
|
|
|
#endif /* D_KANKYO_D_KANKYO_DATA_H */
|