The first commit
This commit is contained in:
112
src/core2/code_37E50.c
Normal file
112
src/core2/code_37E50.c
Normal file
@@ -0,0 +1,112 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
typedef struct{
|
||||
u8 map_id;
|
||||
u8 rgb[3];
|
||||
u8 alpha;
|
||||
}Struct_core2_37E50_0;
|
||||
|
||||
Struct_core2_37E50_0 D_80365D60[] ={
|
||||
{MAP_3_UNUSED, {0x00, 0xD0, 0xBF}, 0x50},
|
||||
{MAP_B_CC_CLANKERS_CAVERN, {0x78, 0x6D, 0x39}, 0x50},
|
||||
{MAP_22_CC_INSIDE_CLANKER, {0x78, 0x6D, 0x39}, 0x50},
|
||||
{MAP_31_RBB_RUSTY_BUCKET_BAY, {0x32, 0x32, 0x32}, 0xA0},
|
||||
{MAP_8B_RBB_ANCHOR_ROOM, {0x32, 0x32, 0x32}, 0xA0},
|
||||
{MAP_35_RBB_WAREHOUSE, {0x32, 0x32, 0x32}, 0xA0},
|
||||
{0x00, {0x34, 0x6E, 0xEF}, 0x5A}
|
||||
};
|
||||
|
||||
/* .bss */
|
||||
struct {
|
||||
Struct_core2_37E50_0 *unk0;
|
||||
f32 unk4;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
f32 unk10;
|
||||
}D_8037DA80;
|
||||
|
||||
/* .code */
|
||||
Struct_core2_37E50_0 *func_802BEDE0(enum map_e map_id){
|
||||
u8 *temp_v1;
|
||||
u8 temp_v0;
|
||||
u8 phi_v0;
|
||||
u8 *phi_v1;
|
||||
u8 *phi_v1_2;
|
||||
Struct_core2_37E50_0 *iPtr;
|
||||
|
||||
phi_v1 = &D_80365D60;
|
||||
phi_v1_2 = &D_80365D60;
|
||||
for(iPtr = D_80365D60; iPtr->map_id != 0; iPtr++){
|
||||
if(map_id == iPtr->map_id){
|
||||
return iPtr;
|
||||
}
|
||||
}
|
||||
return iPtr;
|
||||
}
|
||||
|
||||
void func_802BEE2C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
|
||||
s32 sp44;
|
||||
s32 i;
|
||||
f32 phi_f2;
|
||||
s32 sp30[3];
|
||||
|
||||
if (!D_8037DA80.unkC)
|
||||
return;
|
||||
|
||||
phi_f2 = (3000.0f < D_8037DA80.unk4) ? 1.0f : D_8037DA80.unk4 / 3000.0f;
|
||||
for(i = 0; i < 3; i++){
|
||||
sp30[i] = D_8037DA80.unk0->rgb[i] + phi_f2 * 0.4*(-D_8037DA80.unk0->rgb[i]);
|
||||
}
|
||||
sp44 = D_8037DA80.unk0->alpha * phi_f2 + D_8037DA80.unk0->alpha;
|
||||
gcbound_reset();
|
||||
gcbound_alpha(sp44);
|
||||
gcbound_color(sp30[0], sp30[1], sp30[2]);
|
||||
gcbound_draw(gfx);
|
||||
}
|
||||
|
||||
bool func_802BEF58(void){
|
||||
return D_8037DA80.unk8;
|
||||
}
|
||||
|
||||
bool func_802BEF64(void){
|
||||
return D_8037DA80.unkC;
|
||||
}
|
||||
|
||||
void func_802BEF70(void){}
|
||||
|
||||
void func_802BEF78(void){
|
||||
D_8037DA80.unk0 = func_802BEDE0(map_get());
|
||||
D_8037DA80.unk8 = 0;
|
||||
D_8037DA80.unkC = 0;
|
||||
}
|
||||
|
||||
void func_802BEFB0(void) {
|
||||
f32 sp3C[3];
|
||||
f32 sp30[3];
|
||||
f32 sp24[3];
|
||||
Struct5Es *temp_v0;
|
||||
|
||||
if (level_get() == LEVEL_D_CUTSCENE) {
|
||||
D_8037DA80.unk8 = 0;
|
||||
D_8037DA80.unkC = 0;
|
||||
return;
|
||||
}
|
||||
D_8037DA80.unk10 += time_getDelta();
|
||||
func_8024C5CC(sp30);
|
||||
sp24[0] = sp30[0];
|
||||
sp24[1] = sp30[1] + 10000.0f;
|
||||
sp24[2] = sp30[2];
|
||||
D_8037DA80.unkC = (func_80309B48(sp30, sp24, sp3C, 0xF800FF0F) != NULL);
|
||||
if (D_8037DA80.unkC) {
|
||||
D_8037DA80.unk8 = 1;
|
||||
D_8037DA80.unk4 = sp24[1] - sp30[1];
|
||||
return;
|
||||
}
|
||||
sp24[0] = sp30[0];
|
||||
sp24[1] = sp30[1] - 200.0f;
|
||||
sp24[2] = sp30[2];
|
||||
temp_v0 = func_80309B48(sp30, sp24, sp3C, 0xF800FF0F);
|
||||
D_8037DA80.unk8 = (temp_v0 != NULL) && (temp_v0->unk8 & 0x1E0000);
|
||||
}
|
Reference in New Issue
Block a user