core2 .data defininitions

This commit is contained in:
Banjo Kazooie
2022-08-10 16:06:32 -05:00
parent e651f96508
commit bd0dfb3ea5
23 changed files with 486 additions and 117 deletions

View File

@@ -5,11 +5,19 @@
extern s32 D_80276588;
extern s32 D_8027658C;
extern BKSprite * D_8036A910;
extern BKSprite * D_8036A914;
extern Gfx D_8036A918[];
extern f32 D_80377480;
/* .data */
BKSprite * D_8036A910 = NULL;
BKSprite * D_8036A914 = NULL;
Gfx D_8036A918[] = {
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(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCycleType(G_CYC_1CYCLE),
gsDPSetCombineMode(G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM),
gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
gsSPEndDisplayList(),
};
/* .bss */
s32 D_80381EF0;
@@ -35,12 +43,24 @@ void func_80300C10(void) {
}
}
void func_80300C70(enum item_e item_id, struct8s *arg1){
s32 temp_a0;
s32 temp_a0_2;
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_79C80/func_80300C70.s")
if (D_8036A910 != 0) {
func_8033BD4C(D_8036A910);
D_8036A910 = 0;
}
if (D_8036A914 != 0) {
func_8033BD4C(D_8036A914);
D_8036A914 = 0;
}
func_80300C10();
}
struct7s *func_80300CD8(enum item_e item_id){
func_80300C10();
D_80381EFC = D_80377480;
D_80381EFC = 0.68f;
return &D_80381F30;
}
@@ -122,8 +142,96 @@ void func_80300D0C(enum item_e item_id, struct8s *arg1, Gfx **gfx, Mtx **mtx, Vt
}
#endif
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_79C80/func_803012B8.s")
bool func_803012B8(f32 arg0, s32 arg1, s32 arg2){
if(arg1 == 0)
return TRUE;
return (arg0 < D_80381F08[arg1 - 1]);
}
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_79C80/func_803012F8.s")
void func_803012F8(void) {
D_80381EF0 = 1;
D_80381F28 = 0.0f;
func_803463D4(ITEM_14_HEALTH, 0);
D_80381F04 = (f32) item_getCount(ITEM_14_HEALTH);
}
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_79C80/func_80301348.s")
void func_80301348(enum item_e item_id, struct8s *arg1) {
f32 temp_f20;
s32 var_s0;
s32 sp2C;
temp_f20 = time_getDelta();
sp2C = func_802FB0D4(arg1);
if (item_getCount(ITEM_15_HEALTH_TOTAL) >= 9) {
D_80381F00 = 8;
} else {
D_80381F00 = item_getCount(ITEM_15_HEALTH_TOTAL);
}
switch (D_80381EF0) {
case 0:
D_80381F04 = (f32) itemPrint_getValue(item_id);
break;
case 1:
D_80381F04 += temp_f20 * 10.0f;
if (D_80381F00 <= D_80381F04) {
D_80381F04 = D_80381F04 - D_80381F00;
}
D_80381F28 += temp_f20;
if (D_80381F28 > 2.5) {
D_80381EF0 = 2;
}
func_803463D4(ITEM_14_HEALTH, 0);
break;
case 2:
if (sp2C != 1) {
D_80381F04 += temp_f20 * 10.0f;
if (D_80381F00 <= D_80381F04) {
D_80381F04 = D_80381F04 - D_80381F00;
}
}
if (randf2(0.0f, 1.0f) < (1.0 / D_80381F00)) {
if (D_80381F04 < 1.0f) {
D_80381F04 =D_80381F04 + 1.0;
}
if (item_getCount(ITEM_14_HEALTH) < D_80381F04) {
func_8025A6EC(COMUSIC_2B_DING_B, 22000);
}
if (D_80381F04 < (f32) item_getCount(ITEM_14_HEALTH)) {
func_8025A6EC(COMUSIC_2C_BUZZER, 22000);
}
item_set(ITEM_14_HEALTH, (s32) D_80381F04);
D_80381EF0 = 0;
}
break;
}
switch (sp2C) {
case 2:
break;
case 1:
if (D_8036A910 == NULL) {
D_8036A910 = assetcache_get(ASSET_7DD_SPRITE_HEALTH);
}
if (D_8036A914 == NULL) {
D_8036A914 = assetcache_get(0x7EA);
}
break;
case 0:
func_80300C70(item_id, arg1);
break;
}
if (sp2C) {
for(var_s0 = 0; var_s0 < D_80381F00; var_s0++){
if (func_803012B8(-15.0f, var_s0, D_80381F00)) {
D_80381F08[var_s0] = D_80381F08[var_s0] * 0.6;
}
}
}
}