core2/code_CB050.c done

This commit is contained in:
Banjo Kazooie
2022-07-30 15:52:54 -05:00
parent 5a29612c4a
commit 0cadfce967
7 changed files with 212 additions and 48 deletions

View File

@@ -17,7 +17,7 @@
<text x="22.0" y="14">core2</text> <text x="22.0" y="14">core2</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">75.5725%</text> <text x="78.5" y="15" fill="#010101" fill-opacity=".3">75.7777%</text>
<text x="77.5" y="14">75.5725%</text> <text x="77.5" y="14">75.7777%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -17,7 +17,7 @@
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text> <text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">80.7765%</text> <text x="184.5" y="15" fill="#010101" fill-opacity=".3">80.8942%</text>
<text x="183.5" y="14">80.7765%</text> <text x="183.5" y="14">80.8942%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -14,8 +14,10 @@ extern s32 D_80385FE0;
extern s32 D_80385FE4; extern s32 D_80385FE4;
extern s32 D_80385FE8; extern s32 D_80385FE8;
extern f32 D_80385FEC; extern f32 D_80385FEC;
extern u8 D_80385FF0[]; extern u8 D_80385FF0[];
extern f32 D_80386000[]; extern f32 D_80386000[];
extern s32 D_80386038;
extern s32 D_80386068;
void func_80345EB0(enum item_e item){ void func_80345EB0(enum item_e item){
if(func_802FAFE8(item)){ if(func_802FAFE8(item)){
@@ -386,7 +388,6 @@ s32 notescore_getLevelScore(enum level_e lvl_id){
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_8034722C.s") #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_8034722C.s")
extern u8 D_80386060[]; //saved item array extern u8 D_80386060[]; //saved item array
extern s32 D_80385F68;
//itemscore_getSavedItemArray //itemscore_getSavedItemArray
void func_80347630(s32 *size, u8 **buffer){ void func_80347630(s32 *size, u8 **buffer){
@@ -405,56 +406,57 @@ void func_80347630(s32 *size, u8 **buffer){
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_8034789C.s") #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_8034789C.s")
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80347958.s") void func_80347958(void){
func_8034789C();
D_80385F30[ITEM_14_HEALTH] = D_80385F30[ITEM_15_HEALTH_TOTAL];
}
void func_80347984(void){} void func_80347984(void){}
void func_8034798C(void){ void func_8034798C(void){
D_80385F68 = jiggyscore_leveltotal(level_get()); D_80385F30[ITEM_E_JIGGY] = jiggyscore_leveltotal(level_get());
func_802FA5D0(); func_802FA5D0();
} }
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_803479C0.s") //restore item counts from savestate
void func_803479C0(u8 *arg0){
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80347A14.s") D_80385F30[ITEM_1C_MUMBO_TOKEN] = D_80385F30[ITEM_25_MUMBO_TOKEN_TOTAL] = arg0[0];
D_80385F30[ITEM_D_EGGS] = arg0[1];
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80347A4C.s") D_80385F30[ITEM_F_RED_FEATHER] = arg0[2];
D_80385F30[ITEM_10_GOLD_FEATHER] = arg0[3];
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80347A70.s") D_80385F30[ITEM_26_JIGGY_TOTAL] = D_80385F30[ITEM_2B_UNKNOWN] = arg0[4];
func_802FA5D0();
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80347A7C.s")
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80347AA8.s")
/// =============== BREAK?????
extern void func_80329904(ActorMarker *, s32, f32 *);
void func_80347B10(Struct81s *arg0){
Actor *actor;
actor = func_802C937C(0x10, arg0->position);
actor->unk54 = 3.0f;
func_803333DC(arg0, actor);
} }
void func_80347B54(Struct81s *arg0){
func_802C3C88((GenMethod_1)func_80347B10, reinterpret_cast(s32, arg0));
}
void func_80347B80(Struct81s *arg0) { void func_80347A14(s32 arg0){
Actor *sp1C; if(arg0){
Actor *temp_v0; D_80386038--;
}
sp1C = marker_getActor(arg0->marker); else{
if (sp1C->unk54 > 0.0) { D_80386038++;
if (randf() < ((sp1C->unk54 / 3.0) * 2)) {
func_8033E73C(arg0->marker, 5, func_80329904);
func_8033E3F0(0xF, ((ActorMarker *)arg0->marker)->unk14_21);
// func_8033E3F0(0xF, arg0->marker->unk14_21);
}
sp1C->unk54 -= time_getDelta();
} }
} }
void func_80347C5C(Struct81s *arg0, Gfx **arg1, Mtx **arg2, Vtx **arg3){} bool func_80347A4C(void){
return (D_80386038 != 0) ? FALSE : TRUE;
}
void func_80347C70(Struct81s *arg0){} void func_80347A70(void){
D_80386038 = 0;
}
void func_80347A7C(void){
func_80320748();
D_80386068 = item_getCount(ITEM_16_LIFE);
}
void func_80347AA8(void) {
func_80320798();
func_803204E4(0x1F, FALSE);
func_803204E4(0x20, FALSE);
func_803204E4(0xC1, FALSE);
func_803204E4(0xC0, FALSE);
item_set(ITEM_16_LIFE, D_80386068);
func_802FA5D0();
}

35
src/core2/code_C0B80.c Normal file
View File

@@ -0,0 +1,35 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
extern void func_80329904(ActorMarker *, s32, f32 *);
void func_80347B10(Struct81s *arg0){
Actor *actor;
actor = func_802C937C(0x10, arg0->position);
actor->unk54 = 3.0f;
func_803333DC(arg0, actor);
}
void func_80347B54(Struct81s *arg0){
func_802C3C88((GenMethod_1)func_80347B10, reinterpret_cast(s32, arg0));
}
void func_80347B80(Struct81s *arg0) {
Actor *sp1C;
Actor *temp_v0;
sp1C = marker_getActor(arg0->marker);
if (sp1C->unk54 > 0.0) {
if (randf() < ((sp1C->unk54 / 3.0) * 2)) {
func_8033E73C(arg0->marker, 5, func_80329904);
func_8033E3F0(0xF, ((ActorMarker *)arg0->marker)->unk14_21);
// func_8033E3F0(0xF, arg0->marker->unk14_21);
}
sp1C->unk54 -= time_getDelta();
}
}
void func_80347C5C(Struct81s *arg0, Gfx **arg1, Mtx **arg2, Vtx **arg3){}
void func_80347C70(Struct81s *arg0){}

View File

@@ -2,7 +2,130 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
extern f32 func_80258780(f32[3], f32[3]);
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_CB050/func_80351FE0.s") typedef struct{
f32 unk0;
f32 unk4[3];
f32 unk10[3];
f32 unk1C[3];
f32 unk28[3];
f32 unk34[3];
f32 unk40[3];
f32 unk4C[3];
f32 unk58[3];
f32 unk64;
f32 unk68;
s32 unk6C;
}Struct_core2_CB050_0;
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_CB050/func_80352114.s") /* .code */
void func_80351FE0(Struct_core2_CB050_0 *arg0, Struct68s *arg1) {
f32 sp3C[3];
f32 sp30[3];
f32 sp24[3];
arg0->unk0 = randf2(80.0f, 100.0f);
arg0->unk4[0] = arg0->unk4[1] = arg0->unk4[2] = 0.0f;
arg0->unk10[0] = arg0->unk10[1] = arg0->unk10[2] = 0.0f;
arg0->unk1C[0] = arg0->unk1C[1] = arg0->unk1C[2] = 0.0f;
arg0->unk28[0] = arg0->unk28[1] = arg0->unk28[2] = 0.0f;
arg0->unk34[0] = arg0->unk34[1] = arg0->unk34[2] = 0.0f;
arg0->unk40[0] = arg0->unk40[1] = arg0->unk40[2] = 0.0f;
func_8035179C(arg1, arg0->unk4C);
func_80351814(arg1, arg0->unk58);
arg0->unk64 = 0.0f;
arg0->unk6C = 0;
if (map_get() == MAP_22_CC_INSIDE_CLANKER) {
sp3C[0] = arg0->unk4C[0];
sp3C[1] = arg0->unk4C[1] + 1000.0f;
sp3C[2] = arg0->unk4C[2];
sp30[0] = arg0->unk4C[0];
sp30[1] = arg0->unk4C[1] - 200.0f;
sp30[2] = arg0->unk4C[2];
if (func_80309B48(sp3C, sp30, sp24, 0xF800FF0F)) {
arg0->unk68 = arg0->unk4C[1] - sp30[1];
}
}
}
void func_80352114(Struct_core2_CB050_0 *arg0, s32 arg1, f32 arg2) {
f32 sp6C[3];
f32 player_position[3];
s32 pad;
f32 sp58;
f32 sp54;
f32 sp50;
f32 temp_f0;
f32 sp40[3];
f32 sp34[3];
f32 sp28[3];
arg0->unk64 = (f32) (arg0->unk64 + arg2);
player_getPosition(player_position);
if( (func_80294660() == 0x100)
&& func_8028F20C()
&& (func_80258780(player_position, arg0->unk4C) < 50000.0f)
) {
sp58 = arg0->unk4C[0] - player_position[0];
sp54 = arg0->unk4C[2] - player_position[2];
sp50 = cosf((arg0->unk58[1] * M_PI) / 180.0);
temp_f0 = sinf((arg0->unk58[1] * M_PI) / 180.0);
arg0->unk1C[0] = -((sp58 * temp_f0) + (sp54 * sp50)) / 4;
arg0->unk1C[2] = ((sp58 * sp50) - (sp54 * temp_f0)) / 4;
if (arg0->unk6C) {
if (arg0->unk34[1] < -20.0f) {
arg0->unk40[1] = -7.0f;
}
} else {
arg0->unk40[1] = -32.0f;
}
arg0->unk6C = TRUE;
} else {
arg0->unk1C[0] = arg0->unk1C[1] = arg0->unk1C[2] = 0.0f;
if (!arg0->unk6C) {
if (arg0->unk34[1] > 5.0f) {
arg0->unk40[1] = 0.0f;
}
} else {
arg0->unk40[1] = 10.0f;
}
arg0->unk6C = FALSE;
}
arg0->unk28[1] = sinf(((arg0->unk64 * arg0->unk0) / 180.0) * RARE_PI) * 10.0f;
arg0->unk4[0] = cosf(((arg0->unk64 * arg0->unk0) / 180.0) * RARE_PI) * 4.5;
arg0->unk4[1] = sinf(((arg0->unk64 * arg0->unk0) / 180.0) * RARE_PI) * 2;
if (map_get() == MAP_22_CC_INSIDE_CLANKER) {
sp40[0] = arg0->unk4C[0];
sp40[1] = arg0->unk4C[1] + 1000.0f;
sp40[2] = arg0->unk4C[2];
sp34[0] = arg0->unk4C[0];
sp34[1] = arg0->unk4C[1] - 200.0f;
sp34[2] = arg0->unk4C[2];
if (func_80309B48(sp40, sp34, sp28, 0xF800FF0F)) {
arg0->unk4C[1] = sp34[1] + arg0->unk68;
}
}
sp6C[0] = arg0->unk4C[0] + arg0->unk34[0];
sp6C[1] = arg0->unk4C[1] + arg0->unk34[1];
sp6C[2] = arg0->unk4C[2] + arg0->unk34[2];
sp6C[0] = sp6C[0] + arg0->unk28[0];
sp6C[1] = sp6C[1] + arg0->unk28[1];
sp6C[2] = sp6C[2] + arg0->unk28[2];
func_80351B28(arg1, sp6C);
arg0->unk10[2] += (arg0->unk1C[2] - arg0->unk10[2]) * 0.075;
arg0->unk10[0] += (arg0->unk1C[0] - arg0->unk10[0]) * 0.075;
arg0->unk34[1] += (arg0->unk40[1] - arg0->unk34[1]) * 0.2;
sp6C[0] = arg0->unk58[0] + arg0->unk4[0];
sp6C[1] = arg0->unk58[1] + arg0->unk4[1];
sp6C[2] = arg0->unk58[2] + arg0->unk4[2];
sp6C[0] = sp6C[0] + arg0->unk10[0];
sp6C[1] = sp6C[1] + arg0->unk10[1];
sp6C[2] = sp6C[2] + arg0->unk10[2];
func_80351C2C(arg1, sp6C);
}

View File

@@ -341,6 +341,7 @@ segments:
- [0xBDCC0, c, code_BDCC0] #DONE - [0xBDCC0, c, code_BDCC0] #DONE
- [0xBE2C0, c, code_BE2C0] - [0xBE2C0, c, code_BE2C0]
- [0xBEF20, c, code_BEF20] - [0xBEF20, c, code_BEF20]
- [0xC0B80, c, code_C0B80] #DONE
- [0xC0CF0, c, code_C0CF0] #DONE - [0xC0CF0, c, code_C0CF0] #DONE
- [0xC0E60, c, code_C0E60] - [0xC0E60, c, code_C0E60]
- [0xC2C20, c, code_C2C20] #DONE - [0xC2C20, c, code_C2C20] #DONE
@@ -367,7 +368,7 @@ segments:
- [0xC97F0, c, code_C97F0] - [0xC97F0, c, code_C97F0]
- [0xC9E70, c, code_C9E70] #DONE - [0xC9E70, c, code_C9E70] #DONE
- [0xC9F00, c, code_C9F00] - [0xC9F00, c, code_C9F00]
- [0xCB050, c, code_CB050] - [0xCB050, c, code_CB050] #DONE
- [0xCB610, c, code_CB610] #DONE - [0xCB610, c, code_CB610] #DONE
- [0xCB8A0, c, code_CB8A0] #DONE - [0xCB8A0, c, code_CB8A0] #DONE
- [0xCBBF0, c, code_CBBF0] #DONE - [0xCBBF0, c, code_CBBF0] #DONE
@@ -774,6 +775,8 @@ segments:
- [0xF2390, bin, data_F2390] # .rodata, code_C89C0] - [0xF2390, bin, data_F2390] # .rodata, code_C89C0]
- [0xF23B0, bin, data_C97F0] # .rodata, code_C97F0] - [0xF23B0, bin, data_C97F0] # .rodata, code_C97F0]
- [0xF23C0, bin, data_F23C0] - [0xF23C0, bin, data_F23C0]
- [0xF23F0, .rodata, code_CB050]
- [0xF2460, bin, data_F2460]
- [0xF2480, .rodata, code_CBD10] - [0xF2480, .rodata, code_CBD10]
- [0xF24A0, bin, data_F24A0] - [0xF24A0, bin, data_F24A0]
- [0xF24C0, .rodata, code_CD0A0] - [0xF24C0, .rodata, code_CD0A0]

View File

@@ -502,6 +502,7 @@ D_80378E38 = 0x80378E38;
D_803791A8 = 0x803791A8; D_803791A8 = 0x803791A8;
D_80379208 = 0x80379208; D_80379208 = 0x80379208;
D_80379210 = 0x80379210; D_80379210 = 0x80379210;
D_803793E0 = 0x803793E0;
D_80379400 = 0x80379400; D_80379400 = 0x80379400;
D_80379458 = 0x80379458; D_80379458 = 0x80379458;
D_80379460 = 0x80379460; D_80379460 = 0x80379460;