remove "done" folders, label "bs/droneenter, bs/dronelook, and bs/dronevanish files and functions"

This commit is contained in:
Banjo Kazooie
2023-01-21 20:13:03 -06:00
parent 0ecaa54b4a
commit c004632915
190 changed files with 645 additions and 644 deletions

View File

@@ -20,7 +20,7 @@ void func_802AAE80(void){
void func_802AAEE0(void){
enum bs_e state = bs_getNextState();
if(state != BS_3A_CARRY_IDLE && state != BS_CARRY_WALK)
if(state != BS_3A_CARRY_IDLE && state != BS_3B_CARRY_WALK)
func_8029B0C0();
func_80289F10(1);
@@ -42,7 +42,7 @@ void bscarry_idle_update(void){
enum bs_e sp1C = 0;
if(func_8029B300() > 0)
sp1C = BS_CARRY_WALK;
sp1C = BS_3B_CARRY_WALK;
if(carriedobj_getMarker() == NULL)
sp1C = BS_1_IDLE;
@@ -85,7 +85,7 @@ void bscarry_walk_end(void){
int bscarry_inSet(enum bs_e state){
return state == BS_3A_CARRY_IDLE
|| state == BS_CARRY_WALK;
|| state == BS_3B_CARRY_WALK;
}
void bscarry_interrupt(void){
@@ -95,7 +95,7 @@ void bscarry_interrupt(void){
break;
case 8:
func_8029A86C(2);
bs_setState(BS_3C);
bs_setState(BS_3C_TALK);
break;
case 0x12:
func_8028DE6C(carriedObject_getActorID());

View File

@@ -10,10 +10,10 @@ typedef struct{
struct_drone D_80364B30[] = {
{01, {func_802AEDE8, func_802AEE48, func_802AEE9C, NULL}},
{02, {func_802AEEF4, func_802AEFB0, func_802AF164, func_80296608}},
{02, {bsDroneLook_init, bsDroneLook_update, bsDroneLook_end, func_80296608}},
{04, {bsdronexform_init, bsdronexform_update, bsdronexform_end, bsdronexform_interrupt}},
{05, {func_802AE9C8, func_802AEA2C, func_802AEB24, NULL}},
{06, {func_802AF604, bsdronevanish_update, func_802AF768, NULL}},
{05, {bsDroneEnter_init, bsDroneEnter_update, bsDroneEnter_end, NULL}},
{06, {bsDroneVanish_init, bsDroneVanish_update, bsDroneVanish_end, NULL}},
{0}
};

152
src/core2/bs/droneenter.c Normal file
View File

@@ -0,0 +1,152 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
enum bsdroneenter_state_e{
BSDRONEENTER_SUBSTATE_0_UNINITIALIZED,
BSDRONEENTER_SUBSTATE_1,
BSDRONEENTER_SUBSTATE_2,
BSDRONEENTER_SUBSTATE_3
};
/* .bss */
struct {
ParticleEmitter *white_sparkle_emitter;
ParticleEmitter *yellow_sparkle_emitter;
f32 unk8;
f32 unkC;
f32 unk10;
u8 pad14[4];
}bsDroneEnter;
u8 bsDroneEnterSubstate;
/* .code */
void __bsDroneEnter_setSubstate(enum bsdroneenter_state_e arg0) {
switch (arg0) {
case 1:
func_8029E3C0(0, 0.2f);
break;
case 2:
func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
func_8029E3C0(0, 0.4f);
playerModel_setEnvAlpha(0);
playerModel_updateModel();
break;
case 3:
comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000);
func_8029E3C0(0, 0.55f);
break;
}
bsDroneEnterSubstate = arg0;
}
void __bsDroneEnter_emitParticles(void) {
f32 plyr_pos[3];
player_getPosition(plyr_pos);
particleEmitter_setParticleAccelerationRange(bsDroneEnter.yellow_sparkle_emitter, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f);
particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -5.0f, -45.0f, 45.0f, 10.0f, 45.0f);
particleEmitter_setPosition(bsDroneEnter.yellow_sparkle_emitter, plyr_pos);
particleEmitter_emitN(bsDroneEnter.yellow_sparkle_emitter, 1);
particleEmitter_setParticleAccelerationRange(bsDroneEnter.white_sparkle_emitter, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f);
particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -5.0f, -45.0f, 45.0f, 10.0f, 45.0f);
particleEmitter_setPosition(bsDroneEnter.white_sparkle_emitter, plyr_pos);
particleEmitter_emitN(bsDroneEnter.white_sparkle_emitter, 1);
player_getPosition(plyr_pos);
plyr_pos[1] += 130.0f;
particleEmitter_setParticleAccelerationRange(bsDroneEnter.yellow_sparkle_emitter, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f);
particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -10.0f, -45.0f, 45.0f, 10.0f, 45.0f);
particleEmitter_setPosition(bsDroneEnter.yellow_sparkle_emitter, plyr_pos);
particleEmitter_emitN(bsDroneEnter.yellow_sparkle_emitter, 1);
particleEmitter_setParticleAccelerationRange(bsDroneEnter.white_sparkle_emitter, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f);
particleEmitter_setParticleSpawnPositionRange(bsDroneEnter.yellow_sparkle_emitter, -45.0f, -10.0f, -45.0f, 45.0f, 10.0f, 45.0f);
particleEmitter_setPosition(bsDroneEnter.white_sparkle_emitter, plyr_pos);
particleEmitter_emitN(bsDroneEnter.white_sparkle_emitter, 1);
}
void __bsDroneEnter_initParticleTypes(ParticleEmitter *p_ctrl, enum asset_e sprite_id) {
func_802F0D54(p_ctrl);
particleEmitter_setSprite(p_ctrl, sprite_id);
func_802EFA5C(p_ctrl, 0.3f, 0.8f);
func_802EFB70(p_ctrl, 0.15f, 0.22f);
func_802EFB84(p_ctrl, 0.03f, 0.05f);
func_802EFE24(p_ctrl, 0.0f, 0.0f, 300.0f, 0.0f, 0.0f, 300.0f);
func_802EFEC0(p_ctrl, 0.55f, 0.55f);
}
void __bsDroneEnter_removeParticleTypes(void) {
partEmitList_remove(bsDroneEnter.yellow_sparkle_emitter);
partEmitList_remove(bsDroneEnter.white_sparkle_emitter);
}
void __bsDroneEnter_init(void) {
bsDroneEnter.unk10 = 0.0f;
bsDroneEnter.unk8 = 0.0f;
bsDroneEnter.unkC = 1.0f;
bsDroneEnter.white_sparkle_emitter = partEmitList_pushNew(60);
__bsDroneEnter_initParticleTypes(bsDroneEnter.white_sparkle_emitter, ASSET_716_SPRITE_SPARKLE_WHITE);
bsDroneEnter.yellow_sparkle_emitter = partEmitList_pushNew(60);
__bsDroneEnter_initParticleTypes(bsDroneEnter.yellow_sparkle_emitter, ASSET_713_SPRITE_SPARKLE_YELLOW);
}
void func_802AE914(void) {
bsDroneEnter.unk10 -= time_getDelta();
while ( bsDroneEnter.unk10 < 0.0f) {
__bsDroneEnter_emitParticles();
bsDroneEnter.unk8 += 0.02 * (f64) bsDroneEnter.unkC;
bsDroneEnter.unk10 += 0.02;
}
}
void bsDroneEnter_init(void) {
f32 anim_duration;
enum asset_e anim_id;
func_8029BCF8(&anim_id, &anim_duration);
func_8028A010(anim_id, anim_duration);
func_8029C7F4(1, 1, 3, 7);
func_80294378(6);
__bsDroneEnter_init();
bsDroneEnterSubstate = BSDRONEENTER_SUBSTATE_0_UNINITIALIZED;
__bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_1);
}
void bsDroneEnter_update(void) {
s32 next_state;
s32 sp20;
u8 temp_v0;
next_state = 0;
switch (bsDroneEnterSubstate) {
case BSDRONEENTER_SUBSTATE_1:
func_802AE914();
if (func_8029E1A8(0)) {
__bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_2);
}
break;
case BSDRONEENTER_SUBSTATE_2:
func_802AE914();
sp20 = func_8029E1A8(0);
playerModel_setEnvAlpha((s32) ml_map_f(func_8029E270(0), 0.0f, 0.4f, 255.0f, 0.0f));
if (sp20) {
__bsDroneEnter_setSubstate(BSDRONEENTER_SUBSTATE_3);
}
break;
case BSDRONEENTER_SUBSTATE_3:
if (func_8029E1A8(0)) {
next_state = bs_getIdleState();
}
break;
}
bs_setState(next_state);
}
void bsDroneEnter_end(void){
__bsDroneEnter_removeParticleTypes();
func_80294378(1);
playerModel_updateModel();
}

78
src/core2/bs/dronelook.c Normal file
View File

@@ -0,0 +1,78 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
extern f32 func_8029B2D0(void);
/* .code */
void __bsDroneLook_getEyePos(f32 arg0[3]) {
func_8028E9C4(5, arg0);
}
void bsDroneLook_init(void) {
f32 anim_duration;
f32 eye_position[3];
f32 eye_rotation[3];
enum asset_e anim_id;
func_80299D2C(SFX_12D_CAMERA_ZOOM_CLOSEST, 1.2f, 12000);
func_8029BCF8(&anim_id, &anim_duration);
func_8028A010(anim_id, anim_duration);
func_8029C7F4(1, 1, 3, 2);
func_80297970(0.0f);
func_80297A0C(0);
func_802BE8D8();
__bsDroneLook_getEyePos(eye_position);
func_802C2A64(eye_position);
player_getRotation(eye_rotation);
eye_rotation[0] = 0.0f;
eye_rotation[1] += 180.0f;
eye_rotation[2] = 0.0f;
func_802C2A8C(eye_rotation);
miscflag_set(0x17);
}
void bsDroneLook_update(void) {
s32 next_state;
f32 eye_rotation[3];
f32 eye_position[3];
f32 dt;
s32 exit_first_person;
next_state = 0;
dt = time_getDelta();
if (func_802C2B00() == 2) {
func_802C2ADC(eye_rotation);
eye_rotation[0] -= func_8029B2DC() * 90.0f * dt;
eye_rotation[1] -= func_8029B2D0() * 90.0f * dt;
eye_rotation[2] = 0.0f;
eye_rotation[0] = (eye_rotation[0] > 180.0f) ? max_f(305.0f, eye_rotation[0]) : min_f(70.0f, eye_rotation[0]);
func_802C2A8C(eye_rotation);
yaw_setIdeal(eye_rotation[1] + 180.0f);
exit_first_person = FALSE;
if (button_pressed(BUTTON_B) || button_pressed(BUTTON_A) || button_pressed(BUTTON_C_UP)) {
exit_first_person = TRUE;
}
if (player_inWater()) {
if (player_getTransformation() == TRANSFORM_1_BANJO && func_8028EE84() == BSWATERGROUP_0_NONE) {
exit_first_person += TRUE;
}
} else if (func_8028B254(25) == 0) {
exit_first_person += TRUE;
}
if (exit_first_person) {
next_state = func_8029BDBC();
}
}
__bsDroneLook_getEyePos(eye_position);
func_802C2A64(eye_position);
bs_setState(next_state);
}
void bsDroneLook_end(void) {
if (func_80298850() == 0) {
func_80299D2C(SFX_12E_CAMERA_ZOOM_MEDIUM, 1.2f, 12000);
}
func_802BE91C();
miscflag_clear(0x17);
}

136
src/core2/bs/dronevanish.c Normal file
View File

@@ -0,0 +1,136 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
/* .bss */
struct {
ParticleEmitter *unk0;
ParticleEmitter *unk4;
f32 unk8;
f32 unkC;
f32 unk10;
}D_8037D450;
u8 D_8037D468;
/* .code */
void __bsDroneVanish_setSubstate(s32 next_state) {
switch (next_state) {
case 1:
func_8029E3C0(0, 0.3f);
break;
case 2:
func_8025A6CC(COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
func_8025AABC(COMUSIC_43_ENTER_LEVEL_GLITTER);
func_8029E3C0(0, 0.4f);
break;
case 3:
gcpausemenu_returnToLair();
playerModel_setVisible(FALSE);
comusic_8025AB44(COMUSIC_43_ENTER_LEVEL_GLITTER, 0, 2000);
func_8029E3C0(0, 2.0f);
break;
}
D_8037D468 = next_state;
}
void __bsDroneVanish_emitParticles(void) {
f32 position[3];
player_getPosition(position);
particleEmitter_setParticleAccelerationRange(D_8037D450.unk4, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f);
particleEmitter_setPosition(D_8037D450.unk4, position);
particleEmitter_emitN(D_8037D450.unk4, 1);
particleEmitter_setParticleAccelerationRange(D_8037D450.unk0, 0.0f, 700.0f, 0.0f, 0.0f, 1200.0f, 0.0f);
particleEmitter_setPosition(D_8037D450.unk0, position);
particleEmitter_emitN(D_8037D450.unk0, 1);
position[1] += 130.0f;
particleEmitter_setParticleAccelerationRange(D_8037D450.unk4, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f);
particleEmitter_setPosition(D_8037D450.unk4, position);
particleEmitter_emitN(D_8037D450.unk4, 1);
particleEmitter_setParticleAccelerationRange(D_8037D450.unk0, 0.0f, -700.0f, 0.0f, 0.0f, -1200.0f, 0.0f);
particleEmitter_setPosition(D_8037D450.unk0, position);
particleEmitter_emitN(D_8037D450.unk0, 1);
}
void __bsDroneVanish_particleEmitInit(ParticleEmitter *p_ctrl, enum asset_e sprite_id) {
func_802F0D54();
particleEmitter_setSprite(p_ctrl, sprite_id);
func_802EFA5C(p_ctrl, 0.3f, 0.8f);
particleEmitter_setParticleSpawnPositionRange(p_ctrl, -45.0f, 0.0f, -45.0f, 45.0f, 0.0f, 45.0f);
func_802EFB70(p_ctrl, 0.15f, 0.22f);
func_802EFB84(p_ctrl, 0.03f, 0.05f);
func_802EFE24(p_ctrl, 0.0f, 0.0f, 300.0f, 0.0f, 0.0f, 300.0f);
func_802EFEC0(p_ctrl, 0.55f, 0.55f);
}
void __bsDroneVanish_end(void) {
partEmitList_remove(D_8037D450.unk4);
partEmitList_remove(D_8037D450.unk0);
}
void __bsDroneVanish_init(void) {
D_8037D450.unk10 = 0.0f;
D_8037D450.unk8 = 0.0f;
D_8037D450.unkC = 1.0f;
D_8037D450.unk0 = partEmitList_pushNew(60);
__bsDroneVanish_particleEmitInit(D_8037D450.unk0, ASSET_716_SPRITE_SPARKLE_WHITE);
D_8037D450.unk4 = partEmitList_pushNew(60);
__bsDroneVanish_particleEmitInit(D_8037D450.unk4, ASSET_713_SPRITE_SPARKLE_YELLOW);
}
void __bsDroneVanish_update(void) {
D_8037D450.unk10 -= time_getDelta();
while ( D_8037D450.unk10 < 0.0f) {
__bsDroneVanish_emitParticles();
D_8037D450.unk8 += 0.02 * (f64) D_8037D450.unkC;
D_8037D450.unk10 += 0.02;
}
}
void bsDroneVanish_init(void){
f32 anim_duration;
enum asset_e anim_id;
func_8029BCF8(&anim_id, &anim_duration);
func_8028A010(anim_id, anim_duration);
func_8029C7F4(1,1,3,7);
func_80294378(6);
__bsDroneVanish_init();
D_8037D468 = 0;
__bsDroneVanish_setSubstate(1);
}
void bsDroneVanish_update(void) {
s32 next_state;
bool sp20;
next_state = 0;
switch (D_8037D468) {
case 1:
__bsDroneVanish_update();
if (func_8029E1A8(0)) {
__bsDroneVanish_setSubstate(2);
}
break;
case 2:
__bsDroneVanish_update();
sp20 = func_8029E1A8(0);
playerModel_setEnvAlpha((s32) ml_map_f(func_8029E270(0), 0.0f, 0.4f, 0.0f, 255.0f));
if (sp20) {
__bsDroneVanish_setSubstate(3);
}
break;
case 3:
if (func_8029E1A8(0)) {
next_state = bs_getIdleState();
}
break;
}
bs_setState(next_state);
}
void bsDroneVanish_end(void){
__bsDroneVanish_end();
func_80294378(1);
playerModel_updateModel();
}

View File

@@ -82,8 +82,8 @@ void func_802AF900(void){
}
void func_802AFADC(void){
func_802F0C78(D_8037D470.unk4);
func_802F0C78(D_8037D470.unk0);
partEmitList_remove(D_8037D470.unk4);
partEmitList_remove(D_8037D470.unk0);
}
void func_802AFB0C(void){

View File

@@ -328,7 +328,7 @@ void func_802B5350(void){
}
else if(sp1C == 0x8){//L802B5438
func_8029A86C(2);
bs_setState(BS_3C);
bs_setState(BS_3C_TALK);
}else{
func_802948E0();
func_80296608();

51
src/core2/bs/talk.c Normal file
View File

@@ -0,0 +1,51 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
/* .bss */
bool bsTalkStayInState;
/* .code */
void bstalk_init(void){
AnimCtrl *player_anim_ctrl;
f32 yaw;
f32 plyr_pos[3];
f32 target_pos[3];
player_anim_ctrl = _player_getAnimCtrlPtr();
animctrl_reset(player_anim_ctrl);
func_8029C848(player_anim_ctrl);
animctrl_setPlaybackType(player_anim_ctrl, ANIMCTRL_LOOP);
func_802875AC(player_anim_ctrl, "bstalk.c", 0x38);
_player_getPosition(plyr_pos);
func_802949F8(target_pos);
func_80257F18(plyr_pos, target_pos, &yaw);
yaw_setIdeal(yaw);
func_80289F10(1);
func_802991A8(1);
func_8029957C(3);
func_802978DC(2);
func_80297970(0.0f);
bsTalkStayInState = TRUE;
}
void bstalk_update(void){
enum bs_e next_state = BS_0_NONE;
if (!bsTalkStayInState)
next_state = BS_1_IDLE;
bsTalkStayInState = FALSE;
bs_setState(next_state);
}
void bstalk_end(void){}
void bstalk_interrupt(void){
if(bs_getInterruptType() == BS_INTR_8){
bsTalkStayInState = TRUE;
func_8029A86C(2);
}
else{
func_80296608();
}
}