core2/gc/pauseMenu. c progress
This commit is contained in:
@@ -4,23 +4,61 @@
|
||||
|
||||
extern void func_8024CE60(f32, f32);
|
||||
|
||||
extern struct48s D_8036BD40[];
|
||||
typedef struct {
|
||||
s16 model_id;
|
||||
// u8 pad2[0x2];
|
||||
f32 scale;
|
||||
f32 rotation_speed;
|
||||
}SkyInfo;
|
||||
|
||||
/* .rodata */
|
||||
extern f32 D_80378440;
|
||||
typedef struct {
|
||||
s16 map;
|
||||
// u8 pad2[2];
|
||||
SkyInfo sky_list[3];
|
||||
}MapSkyInfo;
|
||||
|
||||
/* .data */
|
||||
MapSkyInfo D_8036BD40[] = {
|
||||
{MAP_94_CS_INTRO_SPIRAL_7, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_99_CS_END_SPIRAL_MOUNTAIN_2, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_98_CS_END_SPIRAL_MOUNTAIN_1, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_95_CS_END_ALL_100, {{ASSET_7CD_MODEL_SKYBOX_BEACH_ENDING, 1.0f, 0.0f}}},
|
||||
{MAP_20_CS_END_NOT_100, {{ASSET_7CD_MODEL_SKYBOX_BEACH_ENDING, 1.0f, 0.0f}}},
|
||||
{MAP_89_CS_INTRO_BANJOS_HOUSE_2, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_8C_SM_BANJOS_HOUSE, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_96_CS_END_BEACH_1, {{ASSET_7CD_MODEL_SKYBOX_BEACH_ENDING, 1.0f, 0.0f}}},
|
||||
{MAP_97_CS_END_BEACH_2, {{ASSET_7CD_MODEL_SKYBOX_BEACH_ENDING, 1.0f, 0.0f}}},
|
||||
{MAP_85_CS_SPIRAL_MOUNTAIN_3, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_86_CS_SPIRAL_MOUNTAIN_4, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_87_CS_SPIRAL_MOUNTAIN_5, {{ASSET_7CC_MODEL_SKYBOX_GRUNTYS_FALL, 1.0f, 0.0f}}},
|
||||
{MAP_88_CS_SPIRAL_MOUNTAIN_6, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_7D_CS_SPIRAL_MOUNTAIN_1, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_75_GL_MMM_LOBBY, {{ASSET_7CB_MODEL_CLOUDS_LAIR_MMM, 1.0f, 0.5f}, {ASSET_7CA_MODEL_SKYBOX_LAIR_MMM, 1.0f, 6.0f}}},
|
||||
{MAP_1F_CS_START_RAREWARE, {{ASSET_7C9_MODEL_SKYBOX_INTRO_N64, 1.0f, 0.0f}}},
|
||||
{MAP_7_TTC_TREASURE_TROVE_COVE, {{ASSET_7BF_MODEL_SKYBOX_TTC, 1.0f, 0.0f}, {ASSET_7C0_MODEL_CLOUDS_TTC, 2.0f, 0.5f}}},
|
||||
{MAP_12_GV_GOBIS_VALLEY, {{ASSET_7C1_MODEL_SKYBOX_GV, 1.0f, 0.0f}, {0x000, 1.0f, 1.0f}}},
|
||||
{MAP_1B_MMM_MAD_MONSTER_MANSION, {{ASSET_7C2_MODEL_SKYBOX_MMM, 1.0f, 0.0f}, {ASSET_7C3_MODEL_SKYBOX_MMM, 1.0f, 0.0f}}},
|
||||
{MAP_2_MM_MUMBOS_MOUNTAIN, {{ASSET_7BD_MODEL_SKYBOX_MM, 1.0f, 0.0f}, {ASSET_7BE_MODEL_CLOUDS_MM, 1.0f, 1.0f}}},
|
||||
{MAP_31_RBB_RUSTY_BUCKET_BAY, {{ASSET_7C5_MODEL_SKYBOX_RBB, 1.0f, 0.0f}}},
|
||||
{MAP_1_SM_SPIRAL_MOUNTAIN, {{ASSET_7C4_MODEL_SKYBOX_SM, 1.0f, 0.0f}}},
|
||||
{MAP_3_UNUSED, {{ASSET_7BF_MODEL_SKYBOX_TTC, 1.0f, 0.0f}, {ASSET_7C0_MODEL_CLOUDS_TTC, 2.0f, 0.5f}}},
|
||||
{MAP_27_FP_FREEZEEZY_PEAK, {{ASSET_7C6_MODEL_SKYBOX_FP, 1.0f, 1.0f}, {ASSET_7C7_MODEL_CLOUDS_FP_A, 1.0f, 1.5f}, {ASSET_7C8_MODEL_CLOUDS_FP_B, 1.0f, 3.0f}}},
|
||||
{MAP_C_MM_TICKERS_TOWER, {{ASSET_7BD_MODEL_SKYBOX_MM, 1.0f, 0.5f}}},
|
||||
0
|
||||
};
|
||||
|
||||
/* .bss */
|
||||
struct
|
||||
struct
|
||||
{
|
||||
struct48s *unk0;
|
||||
BKModel *unk4[3];
|
||||
void *unk10[3];
|
||||
f32 unk1C;
|
||||
}D_80382410;
|
||||
MapSkyInfo *sky_info;
|
||||
BKModel *model[3];
|
||||
BKModelBin *model_bins[3];
|
||||
f32 timer;
|
||||
}gcSky;
|
||||
|
||||
/* .code */
|
||||
struct48s * func_8030B060(enum map_e map_id){
|
||||
struct48s * v1 = D_8036BD40;
|
||||
MapSkyInfo * sky_getMapSkyInfo(enum map_e map_id){
|
||||
MapSkyInfo * v1 = D_8036BD40;
|
||||
while(v1->map){
|
||||
if(map_id == v1->map){
|
||||
return v1;
|
||||
@@ -30,67 +68,64 @@ struct48s * func_8030B060(enum map_e map_id){
|
||||
return v1;
|
||||
}
|
||||
|
||||
void func_8030B0AC(Gfx **arg0, Mtx **arg1, s32 arg2){
|
||||
void sky_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){
|
||||
int i;
|
||||
f32 sp70[3];
|
||||
f32 sp64[3];
|
||||
void *iAsset;
|
||||
f32 position[3];
|
||||
f32 rotation[3];
|
||||
BKModelBin *iAsset;
|
||||
|
||||
func_8024CE60(5.0f, D_80378440);
|
||||
if(D_80382410.unk10[0]){
|
||||
func_80254084(arg0, 0, 0,
|
||||
(s32)(f32) D_80276588, (s32)(f32)D_8027658C,
|
||||
0, 0, 0
|
||||
);
|
||||
func_8024C904(arg0, arg1);
|
||||
func_8024C5CC(&sp70);
|
||||
func_8024CE60(5.0f, 15000.0f);
|
||||
if(gcSky.model_bins[0]){
|
||||
func_80254084(gfx, 0, 0, (s32)(f32) D_80276588, (s32)(f32)D_8027658C,0, 0, 0); //fill screen with black
|
||||
func_8024C904(gfx, mtx);
|
||||
func_8024C5CC(position);
|
||||
for(i = 0; i < 3; i++){
|
||||
iAsset = D_80382410.unk10[i];
|
||||
iAsset = gcSky.model_bins[i];
|
||||
if(iAsset){
|
||||
sp64[0] = 0.0f;
|
||||
sp64[1] = D_80382410.unk0->unk4[i].unk8 * D_80382410.unk1C;
|
||||
sp64[2] = 0.0f;
|
||||
func_803391A4(arg0, arg1, sp70, sp64, D_80382410.unk0->unk4[i].unk4, NULL, iAsset);
|
||||
rotation[0] = 0.0f;
|
||||
rotation[1] = gcSky.sky_info->sky_list[i].rotation_speed * gcSky.timer;
|
||||
rotation[2] = 0.0f;
|
||||
func_803391A4(gfx, mtx, position, rotation, gcSky.sky_info->sky_list[i].scale, NULL, iAsset);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//L8030B200
|
||||
func_80254084(arg0, 0, 0, (s32)(f32) D_80276588, (s32)(f32)D_8027658C, 0, 0, 0);
|
||||
func_80254084(gfx, 0, 0, (s32)(f32) D_80276588, (s32)(f32)D_8027658C, 0, 0, 0);
|
||||
}//L8030B254
|
||||
}
|
||||
|
||||
void func_8030B284(void){
|
||||
void sky_free(void){
|
||||
int i;
|
||||
|
||||
for(i = 0; i < 3; i++){
|
||||
if(D_80382410.unk4[i]){
|
||||
model_free(D_80382410.unk4[i]);
|
||||
if(gcSky.model[i]){
|
||||
model_free(gcSky.model[i]);
|
||||
}
|
||||
|
||||
if(D_80382410.unk10[i]){
|
||||
assetcache_release(D_80382410.unk10[i]);
|
||||
if(gcSky.model_bins[i]){
|
||||
assetcache_release(gcSky.model_bins[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_8030B2EC(void){
|
||||
void sky_reset(void){
|
||||
int i;
|
||||
|
||||
D_80382410.unk0 = func_8030B060(map_get());
|
||||
gcSky.sky_info = sky_getMapSkyInfo(map_get());
|
||||
for(i = 0; i< 3; i++){
|
||||
D_80382410.unk4[i] = 0;
|
||||
D_80382410.unk10[i] = NULL;
|
||||
if(D_80382410.unk0->unk4[i].unk0){
|
||||
D_80382410.unk10[i] = assetcache_get(D_80382410.unk0->unk4[i].unk0);
|
||||
if(func_8033A0B0(D_80382410.unk10[i])){
|
||||
D_80382410.unk4[i] = func_8033F5F8(func_8033A0B0(D_80382410.unk10[i]), func_8033A148( D_80382410.unk10[i]));
|
||||
func_8034C6DC(D_80382410.unk4[i]);
|
||||
gcSky.model[i] = NULL;
|
||||
gcSky.model_bins[i] = NULL;
|
||||
if(gcSky.sky_info->sky_list[i].model_id){
|
||||
gcSky.model_bins[i] = assetcache_get(gcSky.sky_info->sky_list[i].model_id);
|
||||
if(func_8033A0B0(gcSky.model_bins[i])){
|
||||
gcSky.model[i] = func_8033F5F8(func_8033A0B0(gcSky.model_bins[i]), func_8033A148( gcSky.model_bins[i]));
|
||||
func_8034C6DC(gcSky.model[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
D_80382410.unk1C = 0.0f;
|
||||
gcSky.timer = 0.0f;
|
||||
}
|
||||
|
||||
void func_8030B3C8(void){
|
||||
D_80382410.unk1C += time_getDelta();
|
||||
void sky_update(void){
|
||||
gcSky.timer += time_getDelta();
|
||||
}
|
||||
|
@@ -5,8 +5,26 @@
|
||||
extern u8 D_803A5D00[2][0x1ecc0];
|
||||
|
||||
/* .data */
|
||||
extern Gfx D_8036C450[];
|
||||
extern Gfx D_8036C4A8[];
|
||||
Gfx D_8036C450[] = {
|
||||
gsDPPipeSync(),
|
||||
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
|
||||
gsSPSetGeometryMode(G_SHADE | G_TEXTURE_GEN_LINEAR | G_SHADING_SMOOTH),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE_ALPHA, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE_ALPHA, 0, 0, 0, 0, TEXEL0),
|
||||
gsDPSetTextureFilter(G_TF_POINT),
|
||||
gsDPSetTexturePersp(G_TP_NONE),
|
||||
gsDPSetPrimColor(0, 0, 0x00, 0x00, 0x00, 0x78),
|
||||
gsSPEndDisplayList()
|
||||
};
|
||||
|
||||
Gfx D_8036C4A8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetTextureFilter(G_TF_BILERP),
|
||||
gsDPSetTexturePersp(G_TP_PERSP),
|
||||
gsSPEndDisplayList()
|
||||
};
|
||||
|
||||
/* .bss */
|
||||
s16 *D_80382450;
|
||||
|
@@ -774,7 +774,7 @@ void func_8031DC10(s32 arg0, s32 arg1) {
|
||||
|
||||
if (player_getTransformation() == TRANSFORM_3_PUMPKIN) {
|
||||
ml_vec3h_to_vec3f(vec, arg0);
|
||||
func_8028F6E4(0x2F, vec);
|
||||
func_8028F6E4(BS_INTR_2F_LOGGO, vec);
|
||||
timedFunc_set_0(D_80378D44, &func_8031DBE8);
|
||||
}
|
||||
}
|
||||
|
@@ -37,7 +37,7 @@ void func_80334540(Gfx** gdl, Mtx **mptr, Vtx **vptr) {
|
||||
write_file_blocks(0, 0, 0x80BC7230, EEPROM_MAXBLOCKS);
|
||||
}
|
||||
func_802C3BDC();
|
||||
func_8030B0AC(gdl, mptr, vptr);
|
||||
sky_draw(gdl, mptr, vptr);
|
||||
func_802BBD2C(&sp44, &sp40);
|
||||
func_8024CE60(sp44, sp40);
|
||||
func_8024C904(gdl, mptr);
|
||||
@@ -157,7 +157,7 @@ void func_80334910(void) {
|
||||
func_80309FF0();
|
||||
func_8030A6B0();
|
||||
func_80333918();
|
||||
func_8030B284();
|
||||
sky_free();
|
||||
func_8034C8D8();
|
||||
func_80323238();
|
||||
func_803343AC();
|
||||
@@ -231,7 +231,7 @@ void func_80334B20(enum map_e arg0, s32 arg1, s32 arg2) {
|
||||
func_802F7D30();
|
||||
func_8030A78C();
|
||||
func_8033393C();
|
||||
func_8030B2EC();
|
||||
sky_reset();
|
||||
func_803343D0();
|
||||
cubeList_init();
|
||||
func_802FA69C();
|
||||
@@ -334,7 +334,7 @@ s32 func_80334ECC(void) {
|
||||
func_8031B790();
|
||||
func_8034C9D4();
|
||||
func_8030A850(1);
|
||||
func_8030B3C8();
|
||||
sky_update();
|
||||
func_802F08A0();
|
||||
func_8034F918();
|
||||
func_80350250();
|
||||
|
@@ -57,7 +57,7 @@ climbSet(f32 bottom[3], f32 top[3], f32 radius, u32 arg3){
|
||||
void func_80298344(void){ //climbUpdateRegrab
|
||||
D_8037C58C = max_f(D_8037C58C - time_getDelta(), 0.0f);
|
||||
if(D_8037C590 && ability_hasLearned(ABILITY_5_CLIMB)){
|
||||
bs_checkInterrupt(BS_INTR_C);
|
||||
bs_checkInterrupt(BS_INTR_C_CLIMB);
|
||||
}
|
||||
D_8037C590 = 0;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -11,11 +11,74 @@ void func_8024CE60(f32, f32);
|
||||
|
||||
|
||||
/* .data */
|
||||
extern struct9s D_8036C150[0x16];
|
||||
extern struct9s D_8036C308[0xC];
|
||||
extern struct10s D_8036C3F8[0x18];
|
||||
extern f32 D_8036C440;
|
||||
extern f32 D_8036C444;
|
||||
struct9s D_8036C150[0x16]= {
|
||||
{0x1, 2, 0, 0.1f, 0, 0, 0.0f},
|
||||
{0x2, 3, 1, 0.1f, 0, 0, 0.0f},
|
||||
{0x3, 4, 0, 0.5f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x4, 5, 1, 0.5f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x5, 4, 0, 2.5f, ASSET_7D0_MODEL_TRANSITION_JIGGY, 0, 3.5f},
|
||||
{0x6, 5, 1, 0.9f, ASSET_7D0_MODEL_TRANSITION_JIGGY, 0, 3.5f},
|
||||
{0x7, 0, 0, 0.0f, 0, 0, 0.0f},
|
||||
{0x8, 7, 0, 1.1f, 0, 0, 0.0f},
|
||||
{0x9, 8, 6, 0.7f, 0, 0, 0.0f},
|
||||
{0xA, 5, 1, 3.5f, ASSET_7D4_MODEL_TRANSITION_WITCH, 0, 3.7f},
|
||||
{0xB, 4, 0, 0.3f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0xC, 5, 1, 0.3f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0xD, 2, 0, 0.6f, 0, 0, 0.0f},
|
||||
{0xE, 4, 0, 1.0f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0xF, 5, 1, 1.0f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x10, 4, 0, 2.5f, ASSET_467_MODEL_TRANSITION_FALLING_JIGGIES, ASSET_1F5_ANIM_TRANSITION_FALLING_JIGGIES, 0.269645989f},
|
||||
{0x11, 5, 1, 2.0f, ASSET_467_MODEL_TRANSITION_FALLING_JIGGIES, ASSET_1F5_ANIM_TRANSITION_FALLING_JIGGIES, 0.269645989f},
|
||||
{0x12, 4, 0, 1.2f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x13, 5, 1, 1.2f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x14, 5, 1, 2.2f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x15, 4, 0, 2.2f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
0
|
||||
};
|
||||
|
||||
struct9s D_8036C308[0xC] = {
|
||||
{0xA, 5, 1, 3.5f, ASSET_7D4_MODEL_TRANSITION_WITCH, 0, 3.7f},
|
||||
{0x10, 4, 0, 2.5f, ASSET_467_MODEL_TRANSITION_FALLING_JIGGIES, ASSET_1F5_ANIM_TRANSITION_FALLING_JIGGIES, 0.269645989f},
|
||||
{0x11, 5, 1, 2.0f, ASSET_467_MODEL_TRANSITION_FALLING_JIGGIES, ASSET_1F5_ANIM_TRANSITION_FALLING_JIGGIES, 0.269645989f},
|
||||
{0x6, 5, 1, 0.9f, ASSET_7D0_MODEL_TRANSITION_JIGGY, 0, 3.5f},
|
||||
{0x5, 4, 0, 2.5f, ASSET_7D0_MODEL_TRANSITION_JIGGY, 0, 3.5f},
|
||||
{0x9, 8, 6, 0.7f, 0, 0, 0.0f},
|
||||
{0x8, 7, 0, 0.7f, 0, 0, 0.0f},
|
||||
{0xE, 4, 0, 1.0f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0xF, 5, 1, 1.0f, ASSET_7CF_MODEL_TRANSITION_UNKNOWN, 0, 25.0f},
|
||||
{0x7, 0, 0, 0.0f, 0, 0, 0.0f},
|
||||
{0x8, 7, 0, 1.1f, 0, 0, 0.0f},
|
||||
{0x9, 8, 6, 1.5f, 0, 0, 0.0f}
|
||||
};
|
||||
|
||||
struct10s D_8036C3F8[0x18] = {
|
||||
{MAP_20_CS_END_NOT_100, 0x12, 0x13},
|
||||
{MAP_1F_CS_START_RAREWARE, 0x15, 0x09},
|
||||
{MAP_1E_CS_START_NINTENDO, 0x08, 0x13},
|
||||
{MAP_7D_CS_SPIRAL_MOUNTAIN_1, 0x0B, 0x0C},
|
||||
{MAP_7E_CS_SPIRAL_MOUNTAIN_2, 0x0B, 0x0C},
|
||||
{MAP_85_CS_SPIRAL_MOUNTAIN_3, 0x12, 0x0C},
|
||||
{MAP_86_CS_SPIRAL_MOUNTAIN_4, 0x0B, 0x0C},
|
||||
{MAP_87_CS_SPIRAL_MOUNTAIN_5, 0x12, 0x13},
|
||||
{MAP_88_CS_SPIRAL_MOUNTAIN_6, 0x12, 0x13},
|
||||
{MAP_94_CS_INTRO_SPIRAL_7, 0x12, 0x13},
|
||||
{MAP_95_CS_END_ALL_100, 0x12, 0x13},
|
||||
{MAP_98_CS_END_SPIRAL_MOUNTAIN_1, 0x12, 0x0A},
|
||||
{MAP_99_CS_END_SPIRAL_MOUNTAIN_2, 0x12, 0x0A},
|
||||
{MAP_7B_CS_INTRO_GL_DINGPOT_1, 0x0B, 0x0C},
|
||||
{MAP_81_CS_INTRO_GL_DINGPOT_2, 0x0B, 0x0C},
|
||||
{MAP_82_CS_ENTERING_GL_MACHINE_ROOM, 0x12, 0x0A},
|
||||
{MAP_83_CS_GAME_OVER_MACHINE_ROOM, 0x12, 0x13},
|
||||
{MAP_84_CS_UNUSED_MACHINE_ROOM, 0x12, 0x0C},
|
||||
{MAP_7C_CS_INTRO_BANJOS_HOUSE_1, 0x0B, 0x0C},
|
||||
{MAP_89_CS_INTRO_BANJOS_HOUSE_2, 0x0B, 0x0A},
|
||||
{MAP_8A_CS_INTRO_BANJOS_HOUSE_3, 0x01, 0x02},
|
||||
{MAP_96_CS_END_BEACH_1, 0x12, 0x13},
|
||||
{MAP_97_CS_END_BEACH_2, 0x08, 0x14},
|
||||
{0, 0x05, 0x06}
|
||||
};
|
||||
f32 D_8036C440 = 63.6026115f;
|
||||
f32 D_8036C444 = 500.0f;
|
||||
|
||||
|
||||
/* .bss */
|
||||
|
Reference in New Issue
Block a user