documentations:

- various particle system functions/structs
- more in src/fight
- beehive
- added prototypes (reduced compiler warnings)
This commit is contained in:
mariob92
2024-09-07 12:52:35 +02:00
parent 78142ca162
commit c8598c2677
77 changed files with 356 additions and 332 deletions

View File

@@ -122,7 +122,7 @@ Actor *chyumblie_draw(ActorMarker *this, Gfx **gfx, Mtx** mtx, Vtx **vtx){
modelRender_draw(gfx, mtx, sp44, sp38, 1.0f, NULL, chvilegame_get_grumblie_model(sp40->game_marker));
}
else{
modelRender_draw(gfx, mtx, sp44, sp38, 1.0f, NULL, func_80330B1C(this));
modelRender_draw(gfx, mtx, sp44, sp38, 1.0f, NULL, marker_loadModelBin(this));
}
return thisActor;
}

View File

@@ -230,7 +230,7 @@ void func_80388D70(ActorMarker *caller, enum asset_e text_id, s32 arg2){
void func_80388EE8(ParticleEmitter *pCtrl){
static s32 D_80391D24[3] = {0xc8, 0xc8, 0xe6};
static struct31s D_80391D30 = {
static ParticleScaleAndLifetimeRanges D_80391D30 = {
{0.2f, 0.4f},
{1.2f, 1.6f},
{0.0f, 0.001f},
@@ -244,7 +244,7 @@ void func_80388EE8(ParticleEmitter *pCtrl){
particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST);
particleEmitter_setRGB(pCtrl, D_80391D24);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_80391D58);
func_802EFB98(pCtrl, &D_80391D30);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80391D30);
particleEmitter_manualFree(pCtrl);
}

View File

@@ -20,7 +20,7 @@ ActorInfo FP_D_80391AB0 = {
0, 0x800, 0.0f, 0
};
struct31s D_80391AD4 = {
ParticleScaleAndLifetimeRanges D_80391AD4 = {
{0.4f, 0.6f},
{1.8f, 3.6f},
{0.0f, 0.01f},
@@ -59,7 +59,7 @@ void FP_func_80386BEC(Actor *this){
particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST);
particleEmitter_setPosition(pCtrl, plyr_pos);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80391AFC);
func_802EFB98(pCtrl, &D_80391AD4);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80391AD4);
particleEmitter_emitN(pCtrl, 12);
}

View File

@@ -3,7 +3,6 @@
#include "variables.h"
extern Actor *func_802EBAE0(UNK_TYPE(s32), f32 position[3], f32 rotation[3], f32 scale, UNK_TYPE(s32), UNK_TYPE(s32), UNK_TYPE(s32), f32, UNK_TYPE(s32));
extern Struct70s *func_8034C2C4(ActorMarker *marker, s32 arg1);
Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3);
Actor *func_8038C1F8(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
@@ -61,7 +60,7 @@ s32 D_803920B0[4] = {0xFF, 0xFF, 0xFF, 0x00};
/* .code */
Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3){
UNK_TYPE(s32) sp5C = func_8033A12C(func_80330B1C(marker));
UNK_TYPE(s32) sp5C = func_8033A12C(marker_loadModelBin(marker));
Actor *this = marker_getActor(marker);
f32 sp4C[3];
f32 sp40[3];

View File

@@ -34,7 +34,7 @@ Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
static struct31s D_8039210C = {
static ParticleScaleAndLifetimeRanges D_8039210C = {
{ 0.4f, 0.8f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
@@ -57,14 +57,14 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
100.0f, 100.0f, 100.0f,
200.0f, 200.0f, 200.0f
);
func_802EFB98(pCtrl, &D_8039210C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039210C);
func_802EF9F8(pCtrl, 0.6f);
func_802EFA18(pCtrl, 3);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_8039217C = {
static ParticleScaleAndLifetimeRanges D_8039217C = {
{0.8f, 1.2f },
{1.4f, 2.0f },
{0.0f, 0.01f},
@@ -86,12 +86,12 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803921B0);
func_802EFB98(pCtrl, &D_8039217C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039217C);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
static struct31s D_803921F8 = {
static ParticleScaleAndLifetimeRanges D_803921F8 = {
{ 0.2f, 0.3f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
@@ -114,14 +114,14 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
200.0f, 200.0f, 200.0f,
300.0f, 300.0f, 300.0f
);
func_802EFB98(pCtrl, &D_803921F8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803921F8);
func_802EF9F8(pCtrl, 0.2f);
func_802EFA18(pCtrl, 2);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_80392268 ={
static ParticleScaleAndLifetimeRanges D_80392268 ={
{ 0.4f, 0.6f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
@@ -140,14 +140,14 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392290);
func_802EFB98(pCtrl, &D_80392268);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392268);
func_802EF9F8(pCtrl, 0.2f);
func_802EFA18(pCtrl, 2);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_803922D8 = {
static ParticleScaleAndLifetimeRanges D_803922D8 = {
{0.5f, 0.7f },
{1.4f, 1.7f },
{0.0f, 0.01f},
@@ -167,7 +167,7 @@ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8039230C);
func_802EFB98(pCtrl, &D_803922D8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803922D8);
particleEmitter_emitN(pCtrl, count);
}

View File

@@ -37,7 +37,7 @@ Actor *func_8038FF00(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
void func_8038FF54(Actor *this){
static struct31s D_8039264C = {{0.3f, 0.5f}, {0.5f, 0.7f}, {0.0f, 0.01f}, {0.3f, 0.4f}, 0.3f, 0.7f};
static ParticleScaleAndLifetimeRanges D_8039264C = {{0.3f, 0.5f}, {0.5f, 0.7f}, {0.0f, 0.01f}, {0.3f, 0.4f}, 0.3f, 0.7f};
Actor *other;
f32 sp40[3];
ParticleEmitter *sp3C;
@@ -97,7 +97,7 @@ void func_8038FF54(Actor *this){
0.0f, -60.0f, 0.0f,
0.0f, -90.0f, 0.0f
);
func_802EFB98(sp3C, &D_8039264C);
particleEmitter_setScaleAndLifetimeRanges(sp3C, &D_8039264C);
particleEmitter_emitN(sp3C, 1);
}
}

View File

@@ -21,7 +21,7 @@ Actor *func_803908F0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
}
void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){
static struct31s D_80392754 = {{0.2f, 0.4f}, {-1.0f, -1.0f}, {0.0f, 0.02f}, {2.2f, 2.2f}, 0.0f, 0.3f};
static ParticleScaleAndLifetimeRanges D_80392754 = {{0.2f, 0.4f}, {-1.0f, -1.0f}, {0.0f, 0.02f}, {2.2f, 2.2f}, 0.0f, 0.3f};
static struct43s D_8039277C = {
{{-300.0f, 350.0f, -300.0f}, {300.0f, 600.0f, 300.0f}}, /*position*/
{{ 0.0f, -1000.0f, 0.0f}, { 0.0f, -1000.0f, 0.0f}}, /*velocitcy*/
@@ -35,7 +35,7 @@ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){
100.0f, 100.0f, 100.0f,
250.0f, 250.0f, 250.0f
);
func_802EFB98(pCtrl, &D_80392754);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392754);
func_802EF9F8(pCtrl, 0.6f);
func_802EFA18(pCtrl, 0);
func_802EFA20(pCtrl, 1.0f, 1.3f);
@@ -44,7 +44,7 @@ void func_80390944(f32 position[3], s32 cnt, enum asset_e model_id){
}
void func_80390A30(f32 position[3], s32 cnt, enum asset_e sprite_id){
static struct31s D_803927C4 = {{0.6f, 0.8f}, {1.0f, 1.4f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01f};
static ParticleScaleAndLifetimeRanges D_803927C4 = {{0.6f, 0.8f}, {1.0f, 1.4f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01f};
static struct43s D_803927EC = {
{{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}}, /*position*/
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}}, /*velocitcy*/
@@ -56,7 +56,7 @@ void func_80390A30(f32 position[3], s32 cnt, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803927EC);
func_802EFB98(pCtrl, &D_803927C4);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803927C4);
particleEmitter_emitN(pCtrl, cnt);
}

View File

@@ -46,7 +46,7 @@ void func_8038E7CC(ActorMarker *this_marker, ActorMarker *other_marker){
}
void func_8038E840(f32 position[3], s32 cnt, enum asset_e sprite_id){
static struct31s D_80392444 = {{0.4f, 0.6f}, {0.8f, 1.8f}, {0.0f, 0.01f}, {0.5f, 1.4f}, 0.0f, 0.01f};
static ParticleScaleAndLifetimeRanges D_80392444 = {{0.4f, 0.6f}, {0.8f, 1.8f}, {0.0f, 0.01f}, {0.5f, 1.4f}, 0.0f, 0.01f};
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(cnt);
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
@@ -62,7 +62,7 @@ void func_8038E840(f32 position[3], s32 cnt, enum asset_e sprite_id){
-200.0f, -100.0f, -200.0f,
200.0f, 300.0f, 200.0f
);
func_802EFB98(pCtrl, &D_80392444);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392444);
particleEmitter_emitN(pCtrl, cnt);
}

View File

@@ -203,7 +203,7 @@ void chGobi1_update(Actor *this){
if(this->state == 4){
func_80326224(this);
tmp_s1 = func_8033A12C(func_80330B1C(this->marker));
tmp_s1 = func_8033A12C(marker_loadModelBin(this->marker));
if(tmp_s1){
player_getPosition(sp54);
sp54[1] += 50.0f;

View File

@@ -132,7 +132,7 @@ Actor *chGobi2_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
sp3C[2] = this->roll;
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148));
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, func_80330B1C(this_marker));
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, marker_loadModelBin(this_marker));
if(this->state == 4){
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(local->unk4));

View File

@@ -71,7 +71,7 @@ Actor *chGobiRock_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx
sp3C[2] = this->roll;
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32) this);
func_8033A450(func_80329934());
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL,func_80330B1C(this_marker));
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL,marker_loadModelBin(this_marker));
func_8034A174(func_80329934(), 5, local->unk0);
return this;

View File

@@ -30,7 +30,7 @@ Actor *func_803892D0(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
position[2] = this->position_z;
position[1] += 8.0f;
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_draw(gfx, mtx, position, rotation, this->unk1C[0], NULL, func_80330B1C(this_marker));
modelRender_draw(gfx, mtx, position, rotation, this->unk1C[0], NULL, marker_loadModelBin(this_marker));
}
return this;
}

View File

@@ -54,7 +54,7 @@ Actor* func_80389014(ActorMarker *this, Gfx **dl, Mtx **mPtr, Vtx **arg2){
jujuPtr = (ActorLocal_Juju_2 *)&actorPtr->local;
if(jujuPtr->unk0 != 2){
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
modelRender_draw(dl, mPtr, actorPtr->position, sp34, jujuPtr->unk14, NULL, func_80330B1C(this));
modelRender_draw(dl, mPtr, actorPtr->position, sp34, jujuPtr->unk14, NULL, marker_loadModelBin(this));
}
return actorPtr;
}

View File

@@ -78,7 +78,7 @@ Actor *chMotzhand_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
sp3C[0] = sp3C[1] = sp3C[2] = 0.0f;
sp3C[1] = 180.0f;
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, marker_loadModelBin(marker));
this->marker->unk14_21 = func_8033A170();
return this;
}

View File

@@ -117,7 +117,7 @@ void func_80387D48(ActorMarker *marker){
void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) {
static s32 D_8038BAF4[3] = {0xB4, 0xFF, 0x8C};
static struct31s D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f};
static ParticleScaleAndLifetimeRanges D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f};
static struct43s D_8038BB28 = {
{{-150.0f, 250.0f, -150.0f}, {150.0f, 300.0f, 150.0f}},
{{ 0.0f, -600.0f, 0.0f}, { 0.0f, -600.0f, 0.0f}},
@@ -130,12 +130,12 @@ void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) {
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB28);
func_802EFB98(pCtrl, &D_8038BB00);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038BB00);
particleEmitter_emitN(pCtrl, count);
}
void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) {
static struct31s D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f};
static ParticleScaleAndLifetimeRanges D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f};
static struct43s D_8038BB98 = {
{{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}},
{{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}},
@@ -153,7 +153,7 @@ void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) {
func_802EFA20(pCtrl, 1.0f, 1.3f);
particleEmitter_setSfx(pCtrl, SFX_2F_ORANGE_SPLAT, 16000);
particleEmitter_setDrawMode(pCtrl, 2);
func_802EFB98(pCtrl, &D_8038BB70);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038BB70);
particleEmitter_emitN(pCtrl, count);
}

View File

@@ -5,7 +5,6 @@
extern void actor_predrawMethod(Actor *);
extern void actor_postdrawMethod(ActorMarker *);
extern void func_8030E394(u8);
extern void func_80326310(Actor *);
extern int func_803342AC(f32 (*)[3], f32(*)[3], f32);
extern void particleEmitter_setModel(ParticleEmitter *, s32);
@@ -466,7 +465,7 @@ Actor *func_8038D638(ActorMarker *marker, Gfx **gdl, Mtx ** mptr, s32 arg3){
}
modelRender_preDraw( (GenFunction_1)actor_predrawMethod, (s32)actor);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gdl, mptr, actor->position, sp3C, actor->scale, NULL, func_80330B1C(marker));
modelRender_draw(gdl, mptr, actor->position, sp3C, actor->scale, NULL, marker_loadModelBin(marker));
return actor;
}

View File

@@ -81,7 +81,7 @@ Actor *chPropellorSwitch_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, s32 ar
modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, local->unk4);
}
else{
modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, func_80330B1C(marker));
modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, marker_loadModelBin(marker));
}
return actor;
}

View File

@@ -46,7 +46,7 @@ ActorInfo RBB_D_803909F8 = {
0, 0, 0.0f, 0
};
struct31s D_80390A1C = {
ParticleScaleAndLifetimeRanges D_80390A1C = {
{ 1.0f, 2.0f},
{ 3.0f, 5.0f},
{ 0.05f, 0.1f},
@@ -91,7 +91,7 @@ void RBB_func_8038B0B8(Actor *this, s32 arg1){
-400.0f, 0.0f, -30.0f,
-800.0f, 0.0f, 30.0f
);
func_802EFB98(other, &D_80390A1C);
particleEmitter_setScaleAndLifetimeRanges(other, &D_80390A1C);
particleEmitter_setSpawnInterval(other, 0.5f);
}
}
@@ -113,7 +113,7 @@ Actor *func_8038B230(ActorMarker *marker, Gfx** gdl, Mtx** mptr, s32 arg3){
sp3C[2] = actor->roll;
modelRender_preDraw(&actor_predrawMethod, actor);
func_8033A450(func_80329934());
modelRender_draw(gdl, mptr, &actor->position, &sp3C, actor->scale, NULL, func_80330B1C(marker));
modelRender_draw(gdl, mptr, &actor->position, &sp3C, actor->scale, NULL, marker_loadModelBin(marker));
func_8034A174(func_80329934(), 5, &local->unk4);
local->unk4[0] -= 60.0f;
return actor;

View File

@@ -69,7 +69,7 @@ void func_8038AC18(Actor *this, s32 new_state){
local->unk8 = 0.0f;
if(new_state == 2){
func_8030E6D4(SFX_90_SWITCH_PRESS);
local->unkC = vtxList_clone(model_getVtxList(func_80330B1C(this->marker)));
local->unkC = vtxList_clone(model_getVtxList(marker_loadModelBin(this->marker)));
mapSpecificFlags_set(local->unk4->unk10, TRUE);
this->position_y -= 30.0f;
@@ -113,7 +113,7 @@ Actor *func_8038AD9C(ActorMarker *marker, Gfx **gdl, Mtx **mptr, s32 arg3){
if( actor->state == 2
&& local->unk0 != 0
){
temp_v0 = func_80330B1C(marker);
temp_v0 = marker_loadModelBin(marker);
sp1C = (local->unk0 == 2) ? &D_80390938 : &D_8039092C;
vtxList_tint(local->unkC, sp1C,
(local->unk4->unk4[1] - actor->position_y)/30.0,

View File

@@ -27,7 +27,7 @@ f32 D_803902D4[3] = {4500.0f, 0.0f, 500.0f};
f32 D_803902E0[3] = {4500.0f, 0.0f, 500.0f};
f32 D_803902EC[3] = {4000.0f, -600.0f, 0.0f};
f32 D_803902F8[3] = {4500.0f, 0.0f, 500.0f};
struct31s D_80390304 = {
ParticleScaleAndLifetimeRanges D_80390304 = {
{ 5.0f, 5.0f},
{ 5.0f, 5.0f},
{ 0.0f, 0.01f},
@@ -142,7 +142,7 @@ void func_80387D80(void){
ParticleEmitter *actor = partEmitMgr_newEmitter(3);
particleEmitter_setSprite(actor, ASSET_70E_SPRITE_SMOKE_2);
particleEmitter_setStartingFrameRange(actor, 0, 7);
func_802EFB98(actor, &D_80390304);
particleEmitter_setScaleAndLifetimeRanges(actor, &D_80390304);
particleEmitter_setParticleVelocityRange(actor, 0.0f, 100.0f, 0.0f, 0.0f, 200.0f ,0.0f);
particleEmitter_emitInVolume(actor, &D_803902EC, &D_803902F8, 3);
}

View File

@@ -80,7 +80,7 @@ ActorInfo D_8038AD7C = { MARKER_1E8_COLLYWOBBLE_B, ACTOR_COLLYWOBBLE_B, MODEL_CO
s32 D_8038ADA0[3] = {0xFF, 0xFF, 0xFF};
struct31s D_8038ADAC = {
ParticleScaleAndLifetimeRanges D_8038ADAC = {
{0.1f, 0.5f},
{1.5f, 3.0f},
{0.0f, 0.01f},
@@ -93,7 +93,7 @@ struct42s D_8038ADD4 = {
{{-40.0f, -40.0f, -40.0f}, {40.0f, 40.0f, 40.0f}}
};
struct31s D_8038AE04 = {
ParticleScaleAndLifetimeRanges D_8038AE04 = {
{0.5f, 0.75f},
{0.4f, 0.6f},
{0.0f, 0.01f},
@@ -107,7 +107,7 @@ struct43s D_8038AE2C = {
{{-80.0f, -80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
};
struct31s D_8038AE74 = {
ParticleScaleAndLifetimeRanges D_8038AE74 = {
{1.0f, 1.0f},
{1.0f, 1.0f},
{0.0f, 0.01f},
@@ -121,7 +121,7 @@ struct43s D_8038AE9C = {
{{-20.0f, -20.0f, -20.0f}, {20.0f, 20.0f, 20.0f}}
};
struct31s D_8038AEE4 = {
ParticleScaleAndLifetimeRanges D_8038AEE4 = {
{0.6f, 0.8f},
{0.5f, 0.7f},
{0.0f, 0.01f},
@@ -142,7 +142,7 @@ void func_80387910(ParticleEmitter *arg0, f32 *arg1, s32 arg2){
particleEmitter_setSprite(arg0, ASSET_700_SPRITE_DUST);
particleEmitter_setStartingFrameRange(arg0, 0, 7);
particleEmitter_setPosition(arg0, arg1);
func_802EFB98(arg0, &D_8038ADAC);
particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038ADAC);
particleEmitter_setPositionAndVelocityRanges(arg0, &D_8038ADD4);
particleEmitter_emitN(arg0, arg2);
}
@@ -154,7 +154,7 @@ void func_803879B8(ParticleEmitter *arg0, f32 *arg1, s32 arg2, enum asset_e mode
particleEmitter_setPosition(arg0, arg1);
particleEmitter_setDrawMode(arg0, 2);
particleEmitter_setAngularVelocityRange(arg0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
func_802EFB98(arg0, &D_8038AE04);
particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038AE04);
particleEmitter_setPositionVelocityAndAccelerationRanges(arg0, &D_8038AE2C);
particleEmitter_emitN(arg0, arg2);
}
@@ -166,7 +166,7 @@ void func_80387A80(ParticleEmitter *arg0, f32 *arg1, s32 arg2, enum asset_e mode
particleEmitter_setPosition(arg0, arg1);
particleEmitter_setDrawMode(arg0, 2);
particleEmitter_setAngularVelocityRange(arg0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
func_802EFB98(arg0, &D_8038AE74);
particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038AE74);
particleEmitter_setPositionVelocityAndAccelerationRanges(arg0, &D_8038AE9C);
particleEmitter_emitN(arg0, arg2);
}
@@ -179,7 +179,7 @@ void func_80387B48(ParticleEmitter *arg0, f32 arg1[3], s32 arg2, enum asset_e mo
particleEmitter_setDrawMode(arg0, 2);
particleEmitter_setAngularVelocityRange(arg0, 150.0f, -300.0f, -300.0f, 300.0f, 300.0f, -150.0f);
particleEmitter_setSfx(arg0, SFX_1F_HITTING_AN_ENEMY_3, 8000);
func_802EFB98(arg0, &D_8038AEE4);
particleEmitter_setScaleAndLifetimeRanges(arg0, &D_8038AEE4);
particleEmitter_setPositionVelocityAndAccelerationRanges(arg0, &D_8038AF0C);
particleEmitter_emitN(arg0, arg2);
}

View File

@@ -197,7 +197,7 @@ void __chClam_emitSmallShellParticles(f32 position[3], s32 count){
}
void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite_id, s32 count){
static struct31s D_8038C484 = {
static ParticleScaleAndLifetimeRanges D_8038C484 = {
{0.2f, 0.35f},
{0.0f, 0.0f},
{0.0f, 0.01f},
@@ -217,7 +217,7 @@ void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite
particleEmitter_setStartingFrameRange(pCtrl, 1, 6);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C4AC);
func_802EFB98(pCtrl, &D_8038C484);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038C484);
particleEmitter_emitN(pCtrl, count);
}

View File

@@ -30,7 +30,7 @@ ActorInfo D_8038C580 = {
/* .code */
void func_80387DC0(f32 *position, s32 count) {
static s32 D_8038C5A4[3] = {180, 180, 180};
static struct31s D_8038C5B0 = {
static ParticleScaleAndLifetimeRanges D_8038C5B0 = {
{0.1f, 0.5f},
{1.4f, 2.8f},
{0.0f, 0.01f},
@@ -53,7 +53,7 @@ void func_80387DC0(f32 *position, s32 count) {
-40.0f, 10.0f, -40.0f,
40.0f, 40.0f, 40.0f
);
func_802EFB98(pCtrl, &D_8038C5B0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038C5B0);
particleEmitter_emitN(pCtrl, count);
}

View File

@@ -57,7 +57,7 @@ ActorInfo D_8038C8F8 = {
};
s32 D_8038C91C[3] = {160, 120, 20};
struct31s D_8038C928 = {
ParticleScaleAndLifetimeRanges D_8038C928 = {
{1.1f, 1.5f},
{4.0f, 4.6f},
{0.0f, 0.01f},
@@ -164,7 +164,7 @@ void func_80389CC4(s16 arg0[3], s32 arg1){
particleEmitter_setStartingFrameRange(D_8038D700, 0, 7);
particleEmitter_setPosition(D_8038D700, D_8038D708);
particleEmitter_setPositionAndVelocityRanges(D_8038D700, &D_8038C950);
func_802EFB98(D_8038D700, &D_8038C928);
particleEmitter_setScaleAndLifetimeRanges(D_8038D700, &D_8038C928);
particleEmitter_emitN(D_8038D700, 5);
D_8038D708[2] += 300.0f;
gcpausemenu_80314AC8(0);
@@ -240,6 +240,6 @@ Actor *func_8038A0D0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
func_8032AA58(actor, sp3C);
modelRender_preDraw(actor_predrawMethod, actor);
modelRender_draw(gfx, mtx, sp40, sp4C, sp3C, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, sp40, sp4C, sp3C, NULL, marker_loadModelBin(marker));
return actor;
}

View File

@@ -724,37 +724,37 @@ f32 func_80257AD4(f32 val1, f32 val2)
return sinf((ml_remainder_f(val1, val2) / val2) * (2*BAD_PI));
}
f32 ml_map_f(f32 a, f32 b, f32 c, f32 d, f32 e)
f32 ml_map_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max)
{
f32 val;
f32 result;
if (c != b)
if (in_max != in_min)
{
if (d < e)
if (out_min < out_max)
{
val = (((a - b) / (c - b)) * (e - d)) + d;
result = (((val - in_min) / (in_max - in_min)) * (out_max - out_min)) + out_min;
if (val > e)
return e;
if (result > out_max)
return out_max;
if (val < d)
return d;
if (result < out_min)
return out_min;
}
else
{
val = (((a - b) / (c - b)) * (e - d)) + d;
result = (((val - in_min) / (in_max - in_min)) * (out_max - out_min)) + out_min;
if (val < e)
return e;
if (result < out_max)
return out_max;
if (val > d)
return d;
if (result > out_min)
return out_min;
}
return val;
return result;
}
return e;
return out_max;
}
f32 ml_mapRange_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max)

View File

@@ -52,7 +52,7 @@ Actor *chBadShad_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
modelRender_setAlpha(other->alpha_124_19);
sp40 = ml_map_f(this->unk28, 0.0f , 800.0f, 0.53f, 0.18f)*this->unk1C[1];
modelRender_setDepthMode(MODEL_RENDER_DEPTH_COMPARE);
modelRender_draw(gfx, mtx, this->position, sp44, sp40, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, sp44, sp40, NULL, marker_loadModelBin(marker));
return this;
}

View File

@@ -2,30 +2,34 @@
#include "functions.h"
#include "variables.h"
void func_802CE8D4(Actor *this);
void chBeehive_update(Actor *this);
/* .data */
ActorAnimationInfo D_803672C0[] ={
enum chBeehive_state {
CHBEEHIVE_STATE_0_UNKNOWN,
CHBEEHIVE_STATE_1_IDLE,
CHBEEHIVE_STATE_2_DIE
};
ActorAnimationInfo chBeehiveAnimations[] ={
{0x000, 0.0f},
{ASSET_165_ANIM_BEEHIVE_IDLE, 0.65f},
{ASSET_65_ANIM_BEEHIVE_DIE, 0.5f},
{ASSET_65_ANIM_BEEHIVE_DIE, 1000000.0f},
};
ActorInfo D_803672E0 = {0x50, ACTOR_12_BEEHIVE, ASSET_364_MODEL_BEEHIVE,
1, D_803672C0,
func_802CE8D4, func_80326224, actor_draw,
ActorInfo chBeehive = {MARKER_50_BEEHIVE, ACTOR_12_BEEHIVE, ASSET_364_MODEL_BEEHIVE,
1, chBeehiveAnimations,
chBeehive_update, func_80326224, actor_draw,
0, 0x333, 0.0f, 0
};
/* .code */
void func_802CE7E0(ActorMarker *marker, ActorMarker *other){
Actor *actor = marker_getActor(marker);
void chBeehive_die(ActorMarker *this, ActorMarker *other){
Actor *actor = marker_getActor(this);
FUNC_8030E8B4(SFX_11_WOOD_BREAKING_1, 1.0f, 28000, actor->position, 300, 3000);
FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.0f, 28000, actor->position, 300, 3000);
subaddie_set_state(actor, 2);
subaddie_set_state(actor, CHBEEHIVE_STATE_2_DIE);
actor_playAnimationOnce(actor);
marker->collidable = FALSE;
this->collidable = FALSE;
actor->unk138_27 = 3;
__spawnQueue_add_4((GenFunction_4)func_802C4140, ACTOR_4C_STEAM, reinterpret_cast(s32, actor->position[0]), reinterpret_cast(s32, actor->position[1]), reinterpret_cast(s32, actor->position[2]));
__spawnQueue_add_4((GenFunction_4)func_802C4140, ACTOR_4A_WOOD_EXPLOSION, reinterpret_cast(s32, actor->position[0]), reinterpret_cast(s32, actor->position[1]), reinterpret_cast(s32, actor->position[2]));
@@ -34,9 +38,9 @@ void func_802CE7E0(ActorMarker *marker, ActorMarker *other){
func_803115C4(ASSET_DA6_TEXT_BEEHIVE_WITH_BEES);
}
void func_802CE8D4(Actor *this){
void chBeehive_update(Actor *this){
if(!this->unk16C_4){
marker_setCollisionScripts(this->marker, NULL, NULL, func_802CE7E0);
marker_setCollisionScripts(this->marker, NULL, NULL, chBeehive_die);
this->marker->propPtr->unk8_3 = 1;
this->unk44_31 = func_8030D90C();
this->unk16C_4 = 1;
@@ -48,42 +52,44 @@ void func_802CE8D4(Actor *this){
return;
}
this->unk58_0 = 1;
}//L802CE9A4
}
switch(this->state)
{
case 1://L802CE9C4
if( !fileProgressFlag_get(FILEPROG_D_BEEHIVE_TEXT)
&& subaddie_playerIsWithinCylinder(this, 250, 300)
){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if( player_getTransformation() == TRANSFORM_1_BANJO
&& func_80311480(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
){
fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, 1);
case CHBEEHIVE_STATE_1_IDLE:
if( !fileProgressFlag_get(FILEPROG_D_BEEHIVE_TEXT)
&& subaddie_playerIsWithinCylinder(this, 250, 300)
){
if(func_8028ECAC() == 0 || func_8028ECAC() == BSGROUP_8_TROT){
if( player_getTransformation() == TRANSFORM_1_BANJO
&& func_80311480(ASSET_D96_DIALOG_BEEHIVE_MEET, 0, NULL, NULL, NULL, 0)
){
fileProgressFlag_set(FILEPROG_D_BEEHIVE_TEXT, 1);
}
}
}
}//L802CEA48
if( actor_animationIsAt(this, 0.45f)
|| actor_animationIsAt(this, 0.55f)
|| actor_animationIsAt(this, 0.6f)
){
if(!this->unk38_0){
func_8030E394(this->unk44_31);
sfxsource_setSfxId(this->unk44_31, SFX_67_BEEHIVE_CLONK);
sfxsource_setSampleRate(this->unk44_31, 12000);
func_8030DBB4(this->unk44_31, (animctrl_getAnimTimer(this->animctrl) + 0.9) - 0.4);
sfxsource_set_position(this->unk44_31, this->position);
sfxsource_set_fade_distances(this->unk44_31, 300.0f, 1500.0f);
func_8030DD14(this->unk44_31, 3);
func_8030E2C4(this->unk44_31);
if( actor_animationIsAt(this, 0.45f)
|| actor_animationIsAt(this, 0.55f)
|| actor_animationIsAt(this, 0.6f)
){
if(!this->unk38_0){
func_8030E394(this->unk44_31);
sfxsource_setSfxId(this->unk44_31, SFX_67_BEEHIVE_CLONK);
sfxsource_setSampleRate(this->unk44_31, 12000);
func_8030DBB4(this->unk44_31, (animctrl_getAnimTimer(this->animctrl) + 0.9) - 0.4);
sfxsource_set_position(this->unk44_31, this->position);
sfxsource_set_fade_distances(this->unk44_31, 300.0f, 1500.0f);
func_8030DD14(this->unk44_31, 3);
func_8030E2C4(this->unk44_31);
}
}
}//L802CEB48
break;
case 2://L802CEB2C
if(animctrl_isStopped(this->animctrl)){
func_80326310(this);
}
break;
}//L802CEB48
}
break;
case CHBEEHIVE_STATE_2_DIE:
if(animctrl_isStopped(this->animctrl)) {
func_80326310(this);
}
break;
}
}

View File

@@ -178,7 +178,7 @@ Actor *chBottlesBonus_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx)
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)sp6C);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gfx, mtx, sp60, NULL, D_80368250, sp54, func_80330B1C(marker));
modelRender_draw(gfx, mtx, sp60, NULL, D_80368250, sp54, marker_loadModelBin(marker));
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
gDPSetColorDither((*gfx)++, G_CD_MAGICSQ);
chBottlesBonusCursor_draw(gfx, mtx, vtx);
@@ -226,7 +226,7 @@ f32 *chBottlesBonus_func_802DD584(s32 arg0){
// temp_f0 = D_80376F48;
sizeof(BKAnimationList);
temp_v1 = (BKAnimation*)(model_getAnimationList(func_80330B1C(chBottlesBonusMarker)) + 1);
temp_v1 = (BKAnimation*)(model_getAnimationList(marker_loadModelBin(chBottlesBonusMarker)) + 1);
D_8037DF70[0] = temp_v1[5 + arg0].unk0[0] * 0.01;
D_8037DF70[1] = temp_v1[5 + arg0].unk0[1] * 0.01;
D_8037DF70[2] = temp_v1[5 + arg0].unk0[2] * 0.01;

View File

@@ -156,7 +156,7 @@ void chBottlesBonusCursor_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
(s32)sp3C, (s32)sp3C,
D_803A5D00[getActiveFramebuffer()]
);
modelRender_draw(gfx, mtx, this->position, rotation, this->scale, NULL, func_80330B1C(chBottlesBonusCursorMarker));
modelRender_draw(gfx, mtx, this->position, rotation, this->scale, NULL, marker_loadModelBin(chBottlesBonusCursorMarker));
func_8024E030(this->position, D_8037E5C0.unk10);
if (this->state == 1) {
D_8037E5C0.unk10[0] -= 24.0f;

View File

@@ -49,7 +49,7 @@ void func_80359A40(f32 position[3], struct_core2_D2AB0 *arg1, s32 cnt){
particleEmitter_emitN(pCtrl, cnt);
}
void __chdrips_particleCallback(struct31s *pCtrl, f32 position[3]){
void __chdrips_particleCallback(ParticleScaleAndLifetimeRanges *pCtrl, f32 position[3]){
if(func_8024549C(position, 4.0f)){
position[1] += 2.0f;
func_80359A40(position, &D_80372AF0, 1);

View File

@@ -29,7 +29,7 @@ ActorInfo D_80372C80 = {
0, 0, 1.0f, 0
};
struct31s D_80372CA4 = {
ParticleScaleAndLifetimeRanges D_80372CA4 = {
{1.0f, 1.2f},
{1.6f, 2.0f},
{0.05f, 0.05f},
@@ -183,7 +183,7 @@ void func_8035C080(Actor *this, s32 next_state){
particleEmitter_setStartingFrameRange(local->pCtrl_8, 0, 7);
particleEmitter_setPosition(local->pCtrl_8, this->position);
particleEmitter_setPositionVelocityAndAccelerationRanges(local->pCtrl_8, &D_80372CCC);
func_802EFB98(local->pCtrl_8, &D_80372CA4);
particleEmitter_setScaleAndLifetimeRanges(local->pCtrl_8, &D_80372CA4);
particleEmitter_setSpawnInterval(local->pCtrl_8, 4);
}//L8035C698

View File

@@ -70,7 +70,7 @@ bool func_8035ED60(Actor *this) {
void func_8035EDB0(f32 position[3], s32 count, enum asset_e sprite) {
static s32 D_80373014[3] = {0xAA, 0xAA, 0xAA};
static struct31s D_80373020 = {{0.4f, 0.8f}, {1.4f, 2.0f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01};
static ParticleScaleAndLifetimeRanges D_80373020 = {{0.4f, 0.8f}, {1.4f, 2.0f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01};
static struct43s D_80373048 = {
{{-200.0f, -200.0f, -200.0f}, { 200.0f, 200.0f, 200.0f}},
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}},
@@ -83,7 +83,7 @@ void func_8035EDB0(f32 position[3], s32 count, enum asset_e sprite) {
particleEmitter_setSprite(p_ctrl, sprite);
particleEmitter_setPosition(p_ctrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_80373048);
func_802EFB98(p_ctrl, &D_80373020);
particleEmitter_setScaleAndLifetimeRanges(p_ctrl, &D_80373020);
particleEmitter_setDrawMode(p_ctrl, PART_EMIT_NO_DEPTH);
particleEmitter_emitN(p_ctrl, count);
}

View File

@@ -5,7 +5,6 @@
extern void subaddie_set_state_with_direction(Actor *, s32, f32 , s32);
extern f32 func_80309B24(f32*);
extern void func_80329904(ActorMarker*, s32, f32*);
extern void func_80326310(Actor *);
extern void func_8032BB88(Actor *, s32, s32);
void chJinjo_update(Actor *this);

View File

@@ -28,7 +28,7 @@ ActorInfo D_80367E20= {
0, 0, 0.0f, 0
};
struct31s D_80367E44 = {
ParticleScaleAndLifetimeRanges D_80367E44 = {
{0.05f, 0.1f},
{0.0f, 0.0f},
{0.0f, 0.01f},
@@ -59,7 +59,7 @@ void func_802DA634(ParticleEmitter *pCtrl, f32 arg1[3], s32 cnt){
particleEmitter_setPosition(pCtrl, arg1);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -150.0f, 150.0f, -150.0f, 150.0f, 360.0f, 150.0f);
func_802EFB98(pCtrl, &D_80367E44);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80367E44);
func_802EF9F8(pCtrl, 0.01f);
func_802EFA18(pCtrl, 3);
particleEmitter_emitN(pCtrl, cnt);

View File

@@ -46,7 +46,7 @@ Actor *chOverlayNoController_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vt
func_8024C904(gdl, mptr);
{sp40[0] = 0.0f; sp40[1] = 0.0f; sp40[2] = 0.0f;};
{sp34[0] = 0.0f; sp34[1] = 165.0f; sp34[2] = 0.0f;};
modelRender_draw(gdl, mptr, sp40, 0, 1.0f, sp34, func_80330B1C(marker));
modelRender_draw(gdl, mptr, sp40, 0, 1.0f, sp34, marker_loadModelBin(marker));
func_8024E2FC();
func_8024C904(gdl, mptr);
return actor;

View File

@@ -56,7 +56,7 @@ Actor *chOverlayPressStart_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx
func_8024C904(gdl, mptr);
{sp40[0] = 0.0f; sp40[1] = 0.0f; sp40[2] = 0.0f;};
{sp34[0] = 0.0f; sp34[1] = 400.0f; sp34[2] = 0.0f;};
modelRender_draw(gdl, mptr, sp40, 0, 1.0f, sp34, func_80330B1C(marker));
modelRender_draw(gdl, mptr, sp40, 0, 1.0f, sp34, marker_loadModelBin(marker));
func_8024E2FC();
func_8024C904(gdl, mptr);
return actor;

View File

@@ -39,7 +39,7 @@ Actor *chSnowball_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
}
void __chSnowball_spawnPieces(f32 position[3]) {
static struct31s D_80368734 = {{0.65f, 1.1}, {0.0f, 0.0f}, {0.0f, 0.01f}, {0.8f, 0.8f}, 0.0f, 0.5f};
static ParticleScaleAndLifetimeRanges D_80368734 = {{0.65f, 1.1}, {0.0f, 0.0f}, {0.0f, 0.01f}, {0.8f, 0.8f}, 0.0f, 0.5f};
static struct43s D_8036875C = {
{{-220.0f, 210.0f, -220.0f}, {280.0f, 460.0f, 280.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
@@ -53,7 +53,7 @@ void __chSnowball_spawnPieces(f32 position[3]) {
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8036875C);
particleEmitter_setAngularVelocityRange(pCtrl, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
func_802EFB98(pCtrl, &D_80368734);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80368734);
particleEmitter_emitN(pCtrl, 8);
}

View File

@@ -104,7 +104,7 @@ void __chSnowman_spawnHat(ActorMarker *marker){
}
void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){
static struct31s D_80368694 = {
static ParticleScaleAndLifetimeRanges D_80368694 = {
{0.4f, 1.55f},
{0.0f, 0.0f},
{0.0f, 0.01f},
@@ -127,7 +127,7 @@ void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){
func_802EFA18(particleSpawner, 3);
func_802EFA20(particleSpawner, 1.0f, 1.3f);
particleEmitter_setSfx(particleSpawner, SFX_2F_ORANGE_SPLAT, 16000);
func_802EFB98(particleSpawner, &D_80368694);
particleEmitter_setScaleAndLifetimeRanges(particleSpawner, &D_80368694);
particleEmitter_emitN(particleSpawner, count);
}

View File

@@ -53,7 +53,7 @@ Actor *func_802CA7BC(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
rotation[2] = this->roll;
sp44 = ml_map_f(sp54[1] - sp40, 0.0f, 300.0f, 0.43f, 0.28f);
modelRender_preDraw((GenFunction_1)func_802CA790, (s32)this);
modelRender_draw(gfx, mtx, this->position, rotation, sp44, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, rotation, sp44, NULL, marker_loadModelBin(marker));
return this;
}

View File

@@ -29,7 +29,7 @@ extern ActorInfo chFightFlightPad = {
};
extern struct31s chFightFlightPad_D_80366F8C = {
extern ParticleScaleAndLifetimeRanges chFightFlightPad_D_80366F8C = {
{0.4f, 0.4f},
{0.0f, 0.0f},
{0.0f, 0.01f},
@@ -85,7 +85,7 @@ void chFightFlightPad_emitSparklesAtPosition(f32 position[3]){
particleEmitter_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &chFightFlightPad_D_80366FB4);
func_802EFB98(pCtrl, &chFightFlightPad_D_80366F8C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &chFightFlightPad_D_80366F8C);
func_802EFA78(pCtrl, 1);
particleEmitter_emitN(pCtrl, 0x18);
}

View File

@@ -87,7 +87,7 @@ Actor *chBeeSwarm_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
this = marker_getActor(marker);
local = (ActorLocal_core2_47BD0 *)&this->local;
phi_fp = func_80330B1C(marker);
phi_fp = marker_loadModelBin(marker);
for(phi_s2 = 0, phi_s0 = local->unk8; phi_s2 < local->unk0; phi_s2++){
sp80[0] = 0.0f;
sp80[1] = phi_s0->unk24[1] - 90.0f;

View File

@@ -12,7 +12,7 @@ ActorInfo D_803675F0 = {
0, 0, 0.0f, 0
};
s16 D_80367614[] = {3,2,3,4,3,5,3,0};
struct31s D_80367624 = {{0.7f, 0.3f}, {0.01f, 0.01f}, {0.05f, 0.05f}, {0.2f, 0.2f}, 0.0f, 0.01f};
ParticleScaleAndLifetimeRanges D_80367624 = {{0.7f, 0.3f}, {0.01f, 0.01f}, {0.05f, 0.05f}, {0.2f, 0.2f}, 0.0f, 0.01f};
struct42s D_8036764C = {
{{-100.0f, 400.0f, -100.0f}, { 100.0f, 800.0f, 100.0f}},
{{-100.0f, 0.0f, -100.0f}, { 100.0f, 0.0f, 100.0f}}
@@ -39,7 +39,7 @@ void func_802D2DA0(Actor *this) {
particleEmitter_setStartingFrameRange(pCtrl, 0, 0);
particleEmitter_setPosition(pCtrl, sp70);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8036764C);
func_802EFB98(pCtrl, &D_80367624);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80367624);
particleEmitter_setSpawnInterval(pCtrl, 1.0f);
}
}

View File

@@ -55,7 +55,7 @@ ActorInfo D_80367C10 = {
/* .code */
void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_e sprite_id) {
static struct31s D_80367C34 = {{0.2f, 0.4f}, {0.1f, 0.1f}, {0.0f, 0.01f}, {3.0f, 3.5f}, 0.1f, 0.1f};
static ParticleScaleAndLifetimeRanges D_80367C34 = {{0.2f, 0.4f}, {0.1f, 0.1f}, {0.0f, 0.01f}, {3.0f, 3.5f}, 0.1f, 0.1f};
ParticleEmitter *p_emitter;
p_emitter = partEmitMgr_newEmitter(1);
@@ -64,7 +64,7 @@ void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_
particleEmitter_setPosition(p_emitter, position);
particleEmitter_setParticleSpawnPositionRange(p_emitter, -40.0f, 0.0f, -40.0f, 40.0f, 60.0f, 40.0f);
particleEmitter_setParticleAccelerationRange(p_emitter, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f);
func_802EFB98(p_emitter, &D_80367C34);
particleEmitter_setScaleAndLifetimeRanges(p_emitter, &D_80367C34);
particleEmitter_emitN(p_emitter, 1);
}

View File

@@ -21,7 +21,7 @@ ActorInfo D_80367CB4 = {
0, 0, 0.0f, 0
};
struct31s D_80367CD8 = {
ParticleScaleAndLifetimeRanges D_80367CD8 = {
{0.24f, 0.2f},
{0.01f, 0.01f},
{0.0f, 0.0f},
@@ -55,7 +55,7 @@ void func_802D88E0(Actor *this) {
particleEmitter_setPosition(pCtrl, sp5C);
particleEmitter_setSprite(pCtrl, (this->modelCacheIndex == 0x1FF) ? ASSET_715_SPRITE_SPARKLE_RED : ASSET_713_SPRITE_SPARKLE_YELLOW);
particleEmitter_setStartingFrameRange(pCtrl, 0, 0);
func_802EFB98(pCtrl, &D_80367CD8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80367CD8);
func_802EFF50(pCtrl, 1.0f);
particleEmitter_setSpawnInterval(pCtrl, 0.25f);
}

View File

@@ -48,7 +48,7 @@ Actor *func_802DC320(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
sp34[0] = 0.0f;
sp34[1] = 137.5f;
sp34[2] = 0.0f;
modelRender_draw(gfx, mtx, model_position, NULL, 1.0f, sp34, func_80330B1C(marker));
modelRender_draw(gfx, mtx, model_position, NULL, 1.0f, sp34, marker_loadModelBin(marker));
func_8024E2FC();
func_8024C904(gfx, mtx);
return this;

View File

@@ -47,7 +47,7 @@ Actor *func_802DC7E0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
sp34[0] = 0.0f;
sp34[1] = -87.0f;
sp34[2] = 0.0f;
modelRender_draw(gfx, mtx, sp40, NULL, 1.0f, sp34, func_80330B1C(marker));
modelRender_draw(gfx, mtx, sp40, NULL, 1.0f, sp34, marker_loadModelBin(marker));
func_8024E2FC();
func_8024C904(gfx, mtx);
return this;

View File

@@ -67,7 +67,7 @@ Actor *func_802DEC00(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
gSPSegment((*gfx)++, 0x04, osVirtualToPhysical(sp48));
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gfx, mtx, this->position, NULL, 4.5f, sp4C, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, NULL, 4.5f, sp4C, marker_loadModelBin(marker));
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
gDPSetColorDither((*gfx)++, G_CD_MAGICSQ);
chBottlesBonus_func_802DD158(gfx, mtx);

View File

@@ -33,7 +33,7 @@ Actor *func_802DF160(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
gSPSegment((*gfx)++, 0x04, osVirtualToPhysical(sp38));
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)D_8037E000);
modelRender_draw(gfx, mtx, &D_80368360, NULL, 1.0f, NULL, func_80330B1C(D_8037E000));
modelRender_draw(gfx, mtx, &D_80368360, NULL, 1.0f, NULL, marker_loadModelBin(D_8037E000));
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
return this;
}

View File

@@ -91,7 +91,7 @@ Actor *func_802E0738(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
this = marker_getActorAndRotation(marker, &sp34);
modelRender_preDraw( (GenFunction_1)func_802E0710, (s32)this);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gfx, mtx, this->position, sp34, this->scale, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, sp34, this->scale, NULL, marker_loadModelBin(marker));
return this;
}

View File

@@ -80,7 +80,7 @@ Actor *func_80325340(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
BKModelBin * model_bin = func_80330DE4(marker);
if(model_bin && func_8033A12C(model_bin)){
if(marker->collidable)
func_80330B1C(marker);
marker_loadModelBin(marker);
}
return NULL;
}
@@ -92,7 +92,7 @@ void actor_predrawMethod(Actor *this){
BKVertexList *sp40;
f32 sp34[3];
sp48 = func_80330B1C(this->marker);
sp48 = marker_loadModelBin(this->marker);
func_80330534(this);
if(this->animctrl != NULL){
animctrl_drawSetup(this->animctrl, this->position, 1);

View File

@@ -1491,8 +1491,7 @@ Struct6Cs *func_80330B10(void){
return &D_8036E7D0;
}
//marker_loadModelBin
BKModelBin *func_80330B1C(ActorMarker *this){
BKModelBin *marker_loadModelBin(ActorMarker *this){
Actor* thisActor;
BKModelBin * model;
ModelCache *modelInfo;
@@ -1540,7 +1539,7 @@ BKVertexList *func_80330CFC(Actor *this, s32 arg1){
ModelCache *model_cache_ptr;
model_cache_ptr = &modelCache[this->modelCacheIndex];
if(model_cache_ptr->modelPtr == NULL){
func_80330B1C(this->marker);
marker_loadModelBin(this->marker);
}
if(this->unkF4_30 && this->unk14C[this->unkF4_29 ^ arg1] != NULL)
return this->unk14C[this->unkF4_29 ^ arg1];
@@ -1718,10 +1717,10 @@ s32 func_803311D4(Cube *arg0, f32 *arg1, f32 *arg2, f32 *arg3, u32 arg4) {
if (!(var_s1->actorProp.marker->unk3E_0 && (marker_getActor(var_s1->actorProp.marker)->unk3C & 0x008000000))) {
var_a0 = func_80330DE4(var_s1->actorProp.marker);
} else {
var_a0 = func_80330B1C(var_s1->actorProp.marker);
var_a0 = marker_loadModelBin(var_s1->actorProp.marker);
}
if(var_a0 != NULL || (func_8028F280() && (var_a0 = func_80330B1C(var_s1->actorProp.marker), TRUE))){
if(var_a0 != NULL || (func_8028F280() && (var_a0 = marker_loadModelBin(var_s1->actorProp.marker), TRUE))){
temp_s0 = model_getCollisionList(var_a0);
if (temp_s0 != 0) {
temp_s2_2 = marker_getActor(var_s1->actorProp.marker);
@@ -1734,7 +1733,7 @@ s32 func_803311D4(Cube *arg0, f32 *arg1, f32 *arg2, f32 *arg3, u32 arg4) {
sp7C[2] = (f32) var_s1->actorProp.marker->roll;
temp_s0_2 = func_802E805C(temp_s0, temp_a1, &sp88, &sp7C, temp_s2_2->scale, arg1, arg2, arg3, arg4);
if ((temp_s0_2 != 0) && (func_8029453C())) {
func_80330B1C(var_s1->actorProp.marker);
marker_loadModelBin(var_s1->actorProp.marker);
if (var_s1->actorProp.marker->unk50 != 0) {
D_80383410[0] = arg2[0];
D_80383410[1] = arg2[1];
@@ -2007,7 +2006,7 @@ f32 func_80331F54(ActorMarker *marker) {
f32 model_center[3];
BKModelBin *model;
model = func_80330B1C(marker);
model = marker_loadModelBin(marker);
if (model == NULL) {
return 1.0f;
}

View File

@@ -187,7 +187,7 @@ void func_8033F738(ActorMarker *arg0) {
BKModelBin *sp1C;
s32 sp18;
sp1C = func_80330B1C(arg0);
sp1C = marker_loadModelBin(arg0);
sp18 = func_8033A0B0(sp1C);
arg0->unk48 = func_8033F5F8(sp18, model_getVtxList(sp1C));
}

View File

@@ -238,7 +238,7 @@ void func_803584BC(Actor *this) {
void func_80358524(f32 position[3], s32 count, enum asset_e model_id) {
static struct31s D_803728C4 = { {1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.01f}, {1.2f, 1.2f}, 0.0f, 0.1f};
static ParticleScaleAndLifetimeRanges D_803728C4 = { {1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.01f}, {1.2f, 1.2f}, 0.0f, 0.1f};
static struct43s D_803728EC = {
{{-250.0f, 500.0f, -250.0f}, { 350.0f, 760.0f, 350.0f}},
{{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}},
@@ -257,7 +257,7 @@ void func_80358524(f32 position[3], s32 count, enum asset_e model_id) {
func_802EFA20(p_ctrl, 1.0f, 1.3f);
particleEmitter_setSfx(p_ctrl, SFX_2F_ORANGE_SPLAT, 16000);
particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_803728EC);
func_802EFB98(p_ctrl, &D_803728C4);
particleEmitter_setScaleAndLifetimeRanges(p_ctrl, &D_803728C4);
particleEmitter_emitN(p_ctrl, count);
}

View File

@@ -26,7 +26,7 @@ ActorInfo D_80373158 = {
0, 0, 0.0f, 0
};
struct31s D_8037317C = {
ParticleScaleAndLifetimeRanges D_8037317C = {
{0.01f, 0.01f},
{2.5f, 3.0f},
{0.05f, 0.05f},
@@ -56,7 +56,7 @@ void func_80361330(Actor *this, s32 next_state){
particleEmitter_setStartingFrameRange(pctrl, 0, 7);
particleEmitter_setParticleSpawnPositionRange(pctrl, -20.0f, -20.0f, -20.0f, 20.0f, 20.0f, 20.0f);
particleEmitter_setPosition(pctrl, this->position);
func_802EFB98(pctrl, &D_8037317C);
particleEmitter_setScaleAndLifetimeRanges(pctrl, &D_8037317C);
particleEmitter_setParticleVelocityRange(pctrl,
sp40[0] *0.6, sp40[1]*0.6, sp40[2]*0.6,
sp40[0], sp40[1], sp40[2]

View File

@@ -459,7 +459,7 @@ void func_802EFB84(ParticleEmitter * this, f32 min, f32 max){
this->particleFinalScaleRange_B4_max = max;
}
void func_802EFB98(ParticleEmitter *this, struct31s *arg1){
void particleEmitter_setScaleAndLifetimeRanges(ParticleEmitter *this, ParticleScaleAndLifetimeRanges *arg1){
this->particleStartingScaleRange_AC_min = arg1->unk0[0];
this->particleStartingScaleRange_AC_max = arg1->unk0[1];
if(-1.0f != arg1->unk8[0]){
@@ -474,7 +474,7 @@ void func_802EFB98(ParticleEmitter *this, struct31s *arg1){
}
void func_802EFC28(ParticleEmitter *this, struct40s *arg1){
func_802EFB98(this, &arg1->unk0);
particleEmitter_setScaleAndLifetimeRanges(this, &arg1->unk0);
particleEmitter_setDrawMode(this, (s32)arg1->unk28);
particleEmitter_emitN(this, (s32)arg1->unk2C);
}

View File

@@ -51,7 +51,7 @@ extern ActorInfo chJinjoGreen; //jingo_green
extern ActorInfo chJinjoYellow; //jingo_yellow
extern ActorInfo chJinjoPink; //jingo_pink
extern ActorInfo chJinjoOrange; //jingo_orange
extern ActorInfo D_803672E0; //chbeehive
extern ActorInfo chBeehive; //chbeehive
extern ActorInfo D_80367310; //chswarm
extern ActorInfo D_80367390; //chwaterfallfx
extern ActorInfo chShrapnelDescription; //scrapnel
@@ -215,7 +215,7 @@ void spawnQueue_reset(void){
spawnableActorList_add(&D_80366090, actor_new, 0x2010103);
spawnableActorList_add(&D_803660B4, actor_new, 0x0000103);
spawnableActorList_add(&D_803674E0, actor_new, 0x0000182);
spawnableActorList_add(&D_803672E0, actor_new, 0x2000108);
spawnableActorList_add(&chBeehive, actor_new, 0x2000108);
spawnableActorList_add(&D_80367310, actor_new, 0x0020001);
spawnableActorList_add(&D_80367390, actor_new, 0x0080084);
spawnableActorList_add(&chJinjoYellow, actor_new, 0x0000140);

View File

@@ -170,7 +170,7 @@ void func_80386A90(s32 marker, s32 duration) {
}
void func_80386AC8(s32 arg0) {
static struct31s D_8038D350 = {{2.2f, 2.8f}, {6.3f, 9.4f}, {0.0f, 0.05f}, {10.0f, 10.0f}, 0.2f, 0.9f};
static ParticleScaleAndLifetimeRanges D_8038D350 = {{2.2f, 2.8f}, {6.3f, 9.4f}, {0.0f, 0.05f}, {10.0f, 10.0f}, 0.2f, 0.9f};
Actor *actor;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -186,12 +186,12 @@ void func_80386AC8(s32 arg0) {
particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f, 600.0f, -50.0f, 50.0f, 600.0f, 50.0f);
func_802EF9F8(pCtrl, 0.01f);
func_802EFA18(pCtrl, 3);
func_802EFB98(pCtrl, &D_8038D350);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D350);
particleEmitter_emitN(pCtrl, 10);
}
void func_80386C34(s32 arg0) {
static struct31s D_8038D378 = {{3.0f, 6.0f}, {6.3f, 9.4f}, {0.0f, 0.05f}, {10.0f, 10.0f}, 0.0f, 0.9f};
static ParticleScaleAndLifetimeRanges D_8038D378 = {{3.0f, 6.0f}, {6.3f, 9.4f}, {0.0f, 0.05f}, {10.0f, 10.0f}, 0.0f, 0.9f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -207,12 +207,12 @@ void func_80386C34(s32 arg0) {
particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f, 600.0f, -50.0f, 50.0f, 600.0f, 50.0f);
func_802EF9F8(pCtrl, 0.01f);
func_802EFA18(pCtrl, 3);
func_802EFB98(pCtrl, &D_8038D378);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D378);
particleEmitter_emitN(pCtrl, 15);
}
void func_80386DA0(s32 arg0) {
static struct31s D_8038D3A0 = {{10.0f, 10.0f}, {100.0f, 100.0f}, {0.0f, 0.05f}, {10.0f, 10.0f}, 0.3f, 0.9f};
static ParticleScaleAndLifetimeRanges D_8038D3A0 = {{10.0f, 10.0f}, {100.0f, 100.0f}, {0.0f, 0.05f}, {10.0f, 10.0f}, 0.3f, 0.9f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -228,12 +228,12 @@ void func_80386DA0(s32 arg0) {
particleEmitter_setParticleSpawnPositionRange(pCtrl, -50.0f, 1500.0f, -50.0f, 50.0f, 1500.0f, 50.0f);
func_802EF9F8(pCtrl, 0.01f);
func_802EFA18(pCtrl, 3);
func_802EFB98(pCtrl, &D_8038D3A0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D3A0);
particleEmitter_emitN(pCtrl, 1);
}
void func_80386EF8(s32 arg0) {
static struct31s D_8038D3C8 = {{0.05f, 0.1f}, {0.0f, 0.0f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.3f};
static ParticleScaleAndLifetimeRanges D_8038D3C8 = {{0.05f, 0.1f}, {0.0f, 0.0f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.3f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -248,12 +248,12 @@ void func_80386EF8(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -600.0f, 0.0f, 0.0f, -600.0f, 0.0f);
func_802EF9F8(pCtrl, 0.01f);
func_802EFA18(pCtrl, 3);
func_802EFB98(pCtrl, &D_8038D3C8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D3C8);
particleEmitter_emitN(pCtrl, 8);
}
void func_8038702C(s32 arg0) {
static struct31s D_8038D3F0 = {{0.2f, 0.25f}, {0.35f, 0.4f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.8f};
static ParticleScaleAndLifetimeRanges D_8038D3F0 = {{0.2f, 0.25f}, {0.35f, 0.4f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.8f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -269,12 +269,12 @@ void func_8038702C(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f);
func_802EF9F8(pCtrl, 0.4f);
func_802EFA18(pCtrl, 3);
func_802EFB98(pCtrl, &D_8038D3F0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D3F0);
particleEmitter_emitN(pCtrl, 8);
}
void func_80387170(s32 arg0) {
static struct31s D_8038D418 ={{0.2f, 0.25f}, {0.35f, 0.4f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.8f};
static ParticleScaleAndLifetimeRanges D_8038D418 ={{0.2f, 0.25f}, {0.35f, 0.4f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.8f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -290,7 +290,7 @@ void func_80387170(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -800.0f, 0.0f, 0.0f, -800.0f, 0.0f);
func_802EF9F8(pCtrl, 0.4f);
func_802EFA18(pCtrl, 3);
func_802EFB98(pCtrl, &D_8038D418);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D418);
particleEmitter_emitN(pCtrl, 8);
}
@@ -312,7 +312,7 @@ void func_803872B4(s32 arg0) {
func_8034A174((struct5Bs *)sp44->marker->unk44, 7, sp34);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D470);
func_802EFB98(pCtrl, &D_8038D440.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D440.unk0);
particleEmitter_emitN(pCtrl, 4);
}
@@ -336,12 +336,12 @@ void func_80387364(s32 arg0) {
func_8034A174((struct5Bs *) sp34->marker->unk44, 8, sp24);
particleEmitter_setPosition(pCtrl, sp24);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D4DC);
func_802EFB98(pCtrl, &D_8038D4AC.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D4AC.unk0);
particleEmitter_emitN(pCtrl, 1);
}
void func_80387424(s32 arg0) {
static struct31s D_8038D50C = {{0.06f, 0.07f}, {0.07f, 0.07f}, {0.0f, 0.8f}, {1.0f, 1.1f}, 0.0f, 0.4f};
static ParticleScaleAndLifetimeRanges D_8038D50C = {{0.06f, 0.07f}, {0.07f, 0.07f}, {0.0f, 0.8f}, {1.0f, 1.1f}, 0.0f, 0.4f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -355,13 +355,13 @@ void func_80387424(s32 arg0) {
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -30.0f, 130.0f, -30.0f, 130.0f, 45.0f, 30.0f);
func_802EFB98(pCtrl, &D_8038D50C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D50C);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -300.0f, 0.0f, 0.0f, -300.0f, 0.0f);
particleEmitter_emitN(pCtrl, 8);
}
void cutscenes_func_80387560(s32 arg0) {
static struct31s D_8038D534 = {{0.15f, 0.15f}, {0.15f, 0.15f}, {0.0f, 0.8f}, {1.0f, 1.1f}, 0.0f, 0.4f};
static ParticleScaleAndLifetimeRanges D_8038D534 = {{0.15f, 0.15f}, {0.15f, 0.15f}, {0.0f, 0.8f}, {1.0f, 1.1f}, 0.0f, 0.4f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -373,13 +373,13 @@ void cutscenes_func_80387560(s32 arg0) {
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -30.0f, 130.0f, -30.0f, 130.0f, 45.0f, 30.0f);
func_802EFB98(pCtrl, &D_8038D534);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D534);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -500.0f, 0.0f, 0.0f, -500.0f, 0.0f);
particleEmitter_emitN(pCtrl, 11);
}
void func_80387680(s32 arg0) {
static struct31s D_8038D55C = {{0.03f, 0.03f}, {0.03f, 0.03f}, {0.0f, 0.8f}, {1.0f, 1.1f}, 0.0f, 0.4f};
static ParticleScaleAndLifetimeRanges D_8038D55C = {{0.03f, 0.03f}, {0.03f, 0.03f}, {0.0f, 0.8f}, {1.0f, 1.1f}, 0.0f, 0.4f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -391,7 +391,7 @@ void func_80387680(s32 arg0) {
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f, -600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setParticleVelocityRange(pCtrl, -30.0f, 130.0f, -30.0f, 130.0f, 45.0f, 30.0f);
func_802EFB98(pCtrl, &D_8038D55C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D55C);
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -500.0f, 0.0f, 0.0f, -500.0f, 0.0f);
particleEmitter_emitN(pCtrl, 11);
}
@@ -419,12 +419,12 @@ void func_803877A0(s32 arg0) {
func_8034A174((struct5Bs *) sp34->marker->unk44, 6, sp24);
particleEmitter_setPosition(pCtrl, sp24);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D5C0);
func_802EFB98(pCtrl, &D_8038D590.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D590.unk0);
particleEmitter_emitN(pCtrl, 1);
}
void func_803878A4(s32 arg0) {
static struct31s D_8038D5F0 = {{1.6f, 1.6f}, {1.6f, 1.6f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.3f};
static ParticleScaleAndLifetimeRanges D_8038D5F0 = {{1.6f, 1.6f}, {1.6f, 1.6f}, {0.0f, 0.05f}, {4.0f, 4.0f}, 0.0f, 0.3f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -440,13 +440,13 @@ void func_803878A4(s32 arg0) {
func_802EF9F8(pCtrl, 0.3f);
func_802EFA18(pCtrl, 3);
particleEmitter_setDrawMode(pCtrl, 2);
func_802EFB98(pCtrl, &D_8038D5F0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D5F0);
particleEmitter_setSfx(pCtrl, SFX_21_EGG_BOUNCE_1, 15000);
particleEmitter_emitN(pCtrl, 1);
}
void cutscenes_func_803879E0(s32 arg0) {
static struct31s D_8038D618 = {{1.6f, 1.6f}, {1.6f, 1.6f}, {0.0f, 3.0f}, {4.0f, 4.0f}, 0.0f, 0.3f};
static ParticleScaleAndLifetimeRanges D_8038D618 = {{1.6f, 1.6f}, {1.6f, 1.6f}, {0.0f, 3.0f}, {4.0f, 4.0f}, 0.0f, 0.3f};
Actor *sp44;
ParticleEmitter *pCtrl;
f32 sp34[3];
@@ -463,7 +463,7 @@ void cutscenes_func_803879E0(s32 arg0) {
func_802EF9F8(pCtrl, 0.3f);
func_802EFA18(pCtrl, 3);
particleEmitter_setDrawMode(pCtrl, 2);
func_802EFB98(pCtrl, &D_8038D618);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D618);
particleEmitter_setSfx(pCtrl, SFX_21_EGG_BOUNCE_1, 15000);
particleEmitter_emitN(pCtrl, 2);
}
@@ -488,7 +488,7 @@ void func_80387B58(s32 arg0) {
func_8034A174((struct5Bs *) sp44->marker->unk44, 5, sp34);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D670);
func_802EFB98(pCtrl, &D_8038D640.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D640.unk0);
particleEmitter_emitN(pCtrl, 1);
}
@@ -517,7 +517,7 @@ void func_80387C64(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D6DC);
func_802EFB98(pCtrl, &D_8038D6AC.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D6AC.unk0);
particleEmitter_emitN(pCtrl, 1);
}
}
@@ -543,7 +543,7 @@ void func_80387D88(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D73C);
func_802EFB98(pCtrl, &D_8038D70C.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D70C.unk0);
particleEmitter_emitN(pCtrl, 25);
}
}
@@ -571,7 +571,7 @@ void func_80387E9C(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, -30.0f, 0.0f, 0.0f, -30.0f, 0.0f);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D7A8);
func_802EFB98(pCtrl, &D_8038D778.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D778.unk0);
particleEmitter_emitN(pCtrl, 1);
}
}
@@ -598,7 +598,7 @@ void func_80387FC0(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, 200.0f, 0.0f, 0.0f, 200.0f, 0.0f);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D808);
func_802EFB98(pCtrl, &D_8038D7D8.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D7D8.unk0);
particleEmitter_emitN(pCtrl, 1);
}
}
@@ -626,7 +626,7 @@ void func_803880C8(s32 arg0) {
func_8034A174((struct5Bs *) sp34->marker->unk44, 5, sp24);
particleEmitter_setPosition(pCtrl, sp24);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D874);
func_802EFB98(pCtrl, &D_8038D844.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D844.unk0);
particleEmitter_emitN(pCtrl, 1);
}
@@ -651,7 +651,7 @@ void func_803881CC(s32 arg0) {
particleEmitter_setParticleAccelerationRange(pCtrl, 0.0f, 100.0f, 0.0f, 0.0f, 300.0f, 0.0f);
particleEmitter_setPosition(pCtrl, sp34);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038D8D4);
func_802EFB98(pCtrl, &D_8038D8A4.unk0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038D8A4.unk0);
particleEmitter_emitN(pCtrl, 2);
}
}

View File

@@ -25,7 +25,7 @@ extern ActorInfo D_8038E718 = {
extern s32 D_8038E73C[3] = {0xff, 0xff, 0xff};
extern struct31s D_8038E748 = {
extern ParticleScaleAndLifetimeRanges D_8038E748 = {
{0.1f, 0.3f},
{0.0f, 0.0f},
{0.0f, 0.01f},
@@ -45,7 +45,7 @@ void cutscenes_func_8038CB20(ParticleEmitter *pCtrl){
particleEmitter_setAlpha(pCtrl, 230);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f,-600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038E770);
func_802EFB98(pCtrl, &D_8038E748);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038E748);
particleEmitter_setDrawMode(pCtrl, 4);
particleEmitter_manualFree(pCtrl);
}

View File

@@ -19,7 +19,7 @@ ActorInfo D_8038E7A0 = {
s32 D_8038E7C4[3] = {0xFF, 0xFF, 0xFF};
struct31s D_8038E7D0 = {
ParticleScaleAndLifetimeRanges D_8038E7D0 = {
{0.7f, 0.9f},
{0.4f, 0.5f},
{0.0f, 0.01f},
@@ -34,7 +34,7 @@ struct42s D_8038E7F8 ={
s32 D_8038E828[3] = {0xFF, 0xFF, 0xFF};
struct31s D_8038E834 = {
ParticleScaleAndLifetimeRanges D_8038E834 = {
{0.05f, 0.1f},
{0.1f, 0.2f},
{0.0f, 0.01f},
@@ -55,7 +55,7 @@ void func_8038CDE0(ParticleEmitter *pCtrl){
particleEmitter_setAlpha(pCtrl, 0xff);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f,-600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038E7F8);
func_802EFB98(pCtrl, &D_8038E7D0);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038E7D0);
func_802EFA78(pCtrl, 1);
particleEmitter_setDrawMode(pCtrl, 4);
particleEmitter_manualFree(pCtrl);
@@ -67,7 +67,7 @@ void func_8038CE98(ParticleEmitter *pCtrl){
particleEmitter_setAlpha(pCtrl, 0xff);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f,-600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_8038E85C);
func_802EFB98(pCtrl, &D_8038E834);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038E834);
func_802EFA78(pCtrl, 1);
particleEmitter_setDrawMode(pCtrl, 4);
particleEmitter_manualFree(pCtrl);

View File

@@ -25,7 +25,7 @@ ActorInfo D_8038E8A8 = {
s32 D_8038E8CC[3] = {0xff, 0xff, 0xff};
struct31s D_8038E8D8 = {
ParticleScaleAndLifetimeRanges D_8038E8D8 = {
{0.6f, 0.6f},
{0.9f, 0.9f},
{0.0f, 0.01f},
@@ -46,7 +46,7 @@ void func_8038D080(ParticleEmitter *pCtrl){
particleEmitter_setAlpha(pCtrl, 60);
particleEmitter_setAngularVelocityRange(pCtrl, -600.0f, -600.0f,-600.0f, 600.0f, 600.0f, 600.0f);
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038E900);
func_802EFB98(pCtrl, &D_8038E8D8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038E8D8);
particleEmitter_setDrawMode(pCtrl, 4);
particleEmitter_manualFree(pCtrl);
}

View File

@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
#include "core2/particle.h"
@@ -68,7 +69,7 @@ f32 D_80391948[4] = {1.0f, 1.0f, 1.0f, 1.0f};
f32 D_80391958[4] = {0.33f, 0.33f, 0.33f, 1.0f};
struct31s D_80391968 = {
ParticleScaleAndLifetimeRanges D_80391968 = {
{0.1f, 0.1f}, {10.0f, 10.0f}, {0.0f, 0.01f}, {0.8f, 0.8f}, 0.1f, 0.1f
};
@@ -340,7 +341,7 @@ void func_8038CED8(f32 arg0[3], enum asset_e model_id, f32 arg2, f32 arg3){
D_80391968.unk0[1] *= arg2;
D_80391968.unk8[0] *= arg2;
D_80391968.unk8[1] *= arg2;
func_802EFB98(s0, &D_80391968);
particleEmitter_setScaleAndLifetimeRanges(s0, &D_80391968);
particleEmitter_setDrawMode(s0, PART_EMIT_NO_DEPTH);
func_802EFA78(s0, 1);
particleEmitter_emitN(s0, 1);

View File

@@ -1,24 +1,31 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
typedef struct {
u8 unk0;
}ActorLocal_fight_6E90;
}ActorLocal_BossJinjoBase;
void func_8038D568(Actor *this);
enum chBossJinjoBase_states {
CHBOSSJINJOBASE_STATE_1_RAISE = 1,
CHBOSSJINJOBASE_STATE_2_DEFAULT = 2,
CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO = 3
};
void chBossJinjoBase_update(Actor *this);
/* .data */
ActorInfo chBossJinjoBase = {
MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE,
0x1, NULL,
func_8038D568, func_80326224, actor_draw,
chBossJinjoBase_update, func_80326224, actor_draw,
0, 0x800, 0.0f, 0
};
s32 D_803919B4[3] = {0xC8, 0xC8, 0xA0};
s32 chBossJinjoBase_smokeColor[3] = {0xC8, 0xC8, 0xA0};
struct31s D_803919C0 = {
ParticleScaleAndLifetimeRanges chBossJinjoBase_smokeSettings = {
{1.0f, 1.0f},
{1.7f, 2.7f},
{0.0f, 0.05f},
@@ -36,17 +43,17 @@ void chbossjinjobase_spawnStoneJinjo(ActorMarker *arg0) {
sp1C->unk100 = temp_v0->marker;
}
void func_8038D2EC(f32 arg0[3], s32 arg1) {
ParticleEmitter *temp_v0 = partEmitMgr_newEmitter(arg1);
void chBossJinjoBase_emitSmoke(f32 position[3], s32 count) {
ParticleEmitter *p = partEmitMgr_newEmitter(count);
particleEmitter_setSprite(temp_v0, ASSET_70E_SPRITE_SMOKE_2);
particleEmitter_setRGB(temp_v0, D_803919B4);
particleEmitter_setStartingFrameRange(temp_v0, 0, 7);
particleEmitter_setPosition(temp_v0, arg0);
particleEmitter_setParticleSpawnPositionRange(temp_v0, -90.0f, 0.0f, -80.0f, 80.0f, 60.0f, 80.0f);
particleEmitter_setParticleVelocityRange(temp_v0, -170.0f, 0.0f, -170.0f, 170.0f, 100.0f, 170.0f);
func_802EFB98(temp_v0, &D_803919C0);
particleEmitter_emitN(temp_v0, arg1);
particleEmitter_setSprite(p, ASSET_70E_SPRITE_SMOKE_2);
particleEmitter_setRGB(p, chBossJinjoBase_smokeColor);
particleEmitter_setStartingFrameRange(p, 0, 7);
particleEmitter_setPosition(p, position);
particleEmitter_setParticleSpawnPositionRange(p, -90.0f, 0.0f, -80.0f, 80.0f, 60.0f, 80.0f);
particleEmitter_setParticleVelocityRange(p, -170.0f, 0.0f, -170.0f, 170.0f, 100.0f, 170.0f);
particleEmitter_setScaleAndLifetimeRanges(p, &chBossJinjoBase_smokeSettings);
particleEmitter_emitN(p, count);
}
void func_8038D3DC(Actor* this, s32 arg1, f32 arg2, f32 arg3, f32 arg4){
@@ -57,25 +64,27 @@ void func_8038D3DC(Actor* this, s32 arg1, f32 arg2, f32 arg3, f32 arg4){
}
}
void func_8038D428(ActorMarker *arg0, ActorMarker *arg1) {
Actor *temp_v0;
Actor *s0;
void chBossJinjoBase_getHitByEgg(ActorMarker *this, ActorMarker *other) {
Actor *actor_base;
Actor *actor_other;
temp_v0 = marker_getActor(arg0);
if (temp_v0->state != 3) {
actor_base = marker_getActor(this);
if (actor_base->state != CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO) {
func_8025A70C(COMUSIC_2B_DING_B);
temp_v0->unk38_31++;
if (temp_v0->unk38_31 >= 3) {
subaddie_set_state(temp_v0, 3);
chstonejinjo_breakOpen(temp_v0->unk100);
func_8038D3DC(temp_v0, 0x19A, -100.0f, 0.0f, 1.2f);
func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, temp_v0->position, 1000.0f, 2000.0f);
actor_base->unk38_31++; // hit count
if (actor_base->unk38_31 >= 3) { // spawn Jjnjonator
subaddie_set_state(actor_base, CHBOSSJINJOBASE_STATE_3_SPAWNED_BOSS_JINJO);
chstonejinjo_breakOpen(actor_base->unk100);
func_8038D3DC(actor_base, 0x19A, -100.0f, 0.0f, 1.2f);
func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, actor_base->position, 1000.0f, 2000.0f);
}
}
}
void fight_func_8038D510(Actor *arg0) {
ActorLocal_fight_6E90 *sp18 = (ActorLocal_fight_6E90 *)&arg0->local;
ActorLocal_BossJinjoBase *sp18 = (ActorLocal_BossJinjoBase *)&arg0->local;
if ((u8)arg0->unk44_31 != 0) {
func_8030DA44(arg0->unk44_31);
@@ -87,21 +96,21 @@ void fight_func_8038D510(Actor *arg0) {
}
}
void func_8038D568(Actor *this){
ActorLocal_fight_6E90 *local = (ActorLocal_fight_6E90 *)&this->local;
void chBossJinjoBase_update(Actor *this) {
ActorLocal_BossJinjoBase *local = (ActorLocal_BossJinjoBase *)&this->local;
f32 sp48 = time_getDelta();
u32 sp44 = globalTimer_getTime() & 0xF;
Actor *other; //sp40
f32 sp3C;
f32 sp30[3];
f32 delta_time = time_getDelta();
u32 shake_noise = globalTimer_getTime() & 0xF;
Actor *actor_stone_jinjo; //sp40
f32 y_delta;
f32 position_delta[3];
this->unkF4_29 = 0;
func_80330B1C(this->marker);
marker_loadModelBin(this->marker);
if(!this->unk16C_4){
this->unk16C_4 = 1;
marker_setCollisionScripts(this->marker, NULL, func_8038D428, NULL);
marker_setCollisionScripts(this->marker, NULL, chBossJinjoBase_getHitByEgg, NULL);
marker_setFreeMethod(this->marker, fight_func_8038D510);
this->marker->propPtr->unk8_3 = 1;
actor_collisionOn(this);
@@ -128,44 +137,45 @@ void func_8038D568(Actor *this){
func_802BB3DC(0, 8.0f, 0.92f);
__spawnQueue_add_4((GenFunction_4)func_802C4140, 0x3ad, *(s32*)&this->unk1C[0], *(s32*)&this->unk1C[1], *(s32*)&this->unk1C[2]);
func_8038D2EC(this->unk1C, 0x10);
chBossJinjoBase_emitSmoke(this->unk1C, 0x10);
SPAWNQUEUE_ADD_1(chbossjinjobase_spawnStoneJinjo, this->marker);
}
else{//L8038D774
if(this->state == 1){
other = marker_getActor(this->unk100);
sp3C = this->velocity_y * sp48;
if(this->position_y + sp3C < this->unk1C[1]){
if( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1){
else{
if(this->state == CHBOSSJINJOBASE_STATE_1_RAISE) {
actor_stone_jinjo = marker_getActor(this->unk100);
y_delta = this->velocity_y * delta_time;
if(this->position_y + y_delta < this->unk1C[1]) {
if( !fileProgressFlag_get(FILEPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1) {
func_8030E2C4(this->unk44_31);
func_8030E2C4(local->unk0);
}
sp30[0] = (sp44 & 1) ? 3.0f : -3.0f;
sp30[1] = sp3C;
sp30[2] = (sp44 & 2) ? 3.0f : -3.0f;
position_delta[0] = (shake_noise & 1) ? 3.0f : -3.0f;
position_delta[1] = y_delta;
position_delta[2] = (shake_noise & 2) ? 3.0f : -3.0f;
this->position_x = this->unk1C[0];
this->position_z = this->unk1C[2];
this->position_x = sp30[0] + this->position_x;
this->position_y = sp30[1] + this->position_y;
this->position_z = sp30[2] + this->position_z;
other->position_x = this->unk1C[0];
other->position_z = this->unk1C[2];
other->position_x = sp30[0] + other->position_x;
other->position_y = sp30[1] + other->position_y;
other->position_z = sp30[2] + other->position_z;
this->position_x = position_delta[0] + this->position_x;
this->position_y = position_delta[1] + this->position_y;
this->position_z = position_delta[2] + this->position_z;
actor_stone_jinjo->position_x = this->unk1C[0];
actor_stone_jinjo->position_z = this->unk1C[2];
actor_stone_jinjo->position_x = position_delta[0] + actor_stone_jinjo->position_x;
actor_stone_jinjo->position_y = position_delta[1] + actor_stone_jinjo->position_y;
actor_stone_jinjo->position_z = position_delta[2] + actor_stone_jinjo->position_z;
}
else{//L8038D8E0
subaddie_set_state(this, 2);
else {
subaddie_set_state(this, CHBOSSJINJOBASE_STATE_2_DEFAULT);
func_8030DA44(this->unk44_31);
this->unk44_31 = 0;
func_8030DA44(local->unk0);
local->unk0 = 0;
TUPLE_COPY(this->position, this->unk1C);
TUPLE_COPY(other->position, this->unk1C);
other->position_y += 172.0f;
TUPLE_COPY(actor_stone_jinjo->position, this->unk1C);
actor_stone_jinjo->position_y += 172.0f;
}
}
}//L8038D954

View File

@@ -1,30 +1,29 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
Actor *chbossshadow_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chbossshadow_update(Actor *this);
/* .data */
ActorInfo chBossShadow = {
MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, NULL,
chbossshadow_update, func_80326224, chbossshadow_draw,
chBossShadow_update, func_80326224, chBossShadow_draw,
0, 0, 0.0f, 0
};
/* .code */
Actor *chbossshadow_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
f32 sp34[3];
f32 sp30;
Actor *this;
this = marker_getActorAndRotation(marker, sp34);
sp30 = this->scale * ml_map_f(this->unk1C[0], 0.0f, 1000.0f, 1.75f, 0.9f);
Actor *chBossShadow_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **vptr) {
f32 rotation[3];
f32 scale;
Actor *actor;
// unk1C[0] of ACTOR_3AF_GRUNTY_SHADOW is set in chfinalboss_update to the distance between Gruntilda and the floor triangle below her
actor = marker_getActorAndRotation(this, rotation);
scale = actor->scale * ml_map_f(actor->unk1C[0], 0.0f, 1000.0f, 1.75f, 0.9f);
modelRender_setDepthMode(MODEL_RENDER_DEPTH_COMPARE);
modelRender_draw(gdl, mptr, this->position, sp34, sp30, NULL, func_80330B1C(marker));
return this;
modelRender_draw(gdl, mptr, actor->position, rotation, scale, NULL, marker_loadModelBin(this));
return actor;
}
void chbossshadow_update(Actor *this){
void chBossShadow_update(Actor *this) {
actor_collisionOff(this);
}

View File

@@ -122,7 +122,7 @@ f32 fight_D_80391524[3] = {0.0f, -8.0f, 400.0f};
f32 D_80391530[3] = {0.0f, -8.0f, 0.0f};
struct31s D_8039153C ={
ParticleScaleAndLifetimeRanges D_8039153C ={
{1.0f, 1.0f},
{1.0f, 1.0f},
{0.0f, 0.01f},
@@ -285,7 +285,7 @@ void chfinalboss_spawnBroomstickParticles(f32 position[3], enum asset_e model_id
particleEmitter_setPosition(temp_s0, position);
particleEmitter_setAngularVelocityRange(temp_s0, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
particleEmitter_setPositionVelocityAndAccelerationRanges(temp_s0, &D_80391564);
func_802EFB98(temp_s0, &D_8039153C);
particleEmitter_setScaleAndLifetimeRanges(temp_s0, &D_8039153C);
func_802EFA78(temp_s0, 1);
particleEmitter_emitN(temp_s0, n);
}

View File

@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
extern void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]);
extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32);

View File

@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
extern f32 func_8038C288(void);
extern void subaddie_set_state_with_direction(Actor *, s32, f32, s32);

View File

@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
typedef struct {
u8 unk0[4];
@@ -18,7 +19,7 @@ ActorInfo chJinjonatorBase = {
s32 D_80391A64[3] = {0xC8, 0xC8, 0xA0};
struct31s fight_D_80391A70 = {
ParticleScaleAndLifetimeRanges fight_D_80391A70 = {
{1.0f, 1.0f},
{1.7f, 2.7f},
{0.0f, 0.05f},
@@ -53,7 +54,7 @@ void func_8038E03C(f32 arg0[3], u32 arg1) {
particleEmitter_setStartingFrameRange(temp_v0, 0, 7);
particleEmitter_setPosition(temp_v0, arg0);
particleEmitter_setPositionAndVelocityRanges(temp_v0, &D_80391A98);
func_802EFB98(temp_v0, &fight_D_80391A70);
particleEmitter_setScaleAndLifetimeRanges(temp_v0, &fight_D_80391A70);
particleEmitter_emitN(temp_v0, arg1);
}
@@ -116,7 +117,7 @@ void chjinjonatorbase_update(Actor *this){
f32 sp38[3];
func_80330B1C(this->marker);
marker_loadModelBin(this->marker);
if(!this->unk16C_4){
this->unk16C_4 = 1;
marker_setCollisionScripts(this->marker, NULL, func_8038E120, NULL);

View File

@@ -1,7 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
extern ActorMarker *chfinalboss_findCollidingJinjo(Actor*, f32);
void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]);

View File

@@ -1,6 +1,7 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "fight.h"
#include "core2/particle.h"
extern void func_80324CFC(f32, s32, s32);

View File

@@ -1,26 +1,9 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "prop.h"
#include "fight.h"
extern ActorInfo chFightFlightPad;
extern ActorInfo chFinalBoss;
extern ActorInfo chBossJinjoOrange;
extern ActorInfo chBossJinjoGreen;
extern ActorInfo chBossJinjoPink;
extern ActorInfo chBossJinjoYellow;
extern ActorInfo chBossJinjoBase;
extern ActorInfo chStoneJinjo;
extern ActorInfo chJinjonatorBase;
extern ActorInfo chSpellBarrier;
extern ActorInfo chSpellFireball;
extern ActorInfo chSpellGreen;
extern ActorInfo chGreenBlast;
extern ActorInfo chJinjonator;
extern ActorInfo chBossShadow;
/* .bss */
u8 pad_fight_80392740[0x10];
void fight_func_803863F0(void)

View File

@@ -9,4 +9,25 @@ enum bossjinjo_e{
BOSSJINJO_JINJONATOR
};
extern ActorInfo chFightFlightPad;
extern ActorInfo chFinalBoss;
extern ActorInfo chBossJinjoOrange;
extern ActorInfo chBossJinjoGreen;
extern ActorInfo chBossJinjoPink;
extern ActorInfo chBossJinjoYellow;
extern ActorInfo chBossJinjoBase;
extern ActorInfo chStoneJinjo;
extern ActorInfo chJinjonatorBase;
extern ActorInfo chSpellBarrier;
extern ActorInfo chSpellFireball;
extern ActorInfo chSpellGreen;
extern ActorInfo chGreenBlast;
extern ActorInfo chJinjonator;
extern ActorInfo chBossShadow;
extern void fight_func_803863F0(void);
extern Actor *chBossShadow_draw(ActorMarker *this, Gfx **gdl, Mtx **mptr, Vtx **vptr);
extern void chBossShadow_update(Actor *this);
#endif

View File

@@ -16,7 +16,6 @@ extern int actor_animationIsAt(Actor *, f32);
extern void subaddie_set_state_with_direction(Actor *, s32, f32, s32);
extern void func_8033A45C(s32, s32);
extern void func_8034E0FC(void *, s32);
extern void *func_8034C2C4(ActorMarker *, s32);
@@ -162,7 +161,7 @@ ActorInfo D_8039339C = { 0x234, 0x23E, 0x4E1, 0x12, D_80392CB0, func_8038982C, f
ActorInfo D_803933C0 = { 0x163, 0x258, 0x511, 0x12, D_80392CB0, func_80389898, func_80326224, func_8038664C, 0, 0, 0.0f, 0x8E};
ActorInfo D_803933E4 = { 0x160, 0x255, 0x509, 0x15, D_80392CB0, func_80389934, func_80326224, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_80393408 = { 0x102, 0x203, 0x491, 0x1, D_80392CB0, func_80387730, func_80326224, func_80387DA8, 0, 0, 0.0f, 0};
struct31s D_8039342C = {
ParticleScaleAndLifetimeRanges D_8039342C = {
{0.31f, 0.37f},
{0.17f, 0.22f},
{0.0f, 0.01f},
@@ -199,7 +198,7 @@ s16 D_8039347C[] = {50, 180, 260, 350, 450, 640, 765, 810, 828, 846, 864, 882};
s16 D_80393494[] = {0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B};
s32 D_803934A0[3] = {0x00, 0xFF, 0x00};
struct31s D_803934AC = {
ParticleScaleAndLifetimeRanges D_803934AC = {
{1.0f, 2.0f},
{2.4f, 5.0f},
{0.0f, 3.2f},
@@ -320,7 +319,7 @@ ParticleEmitter *func_803866D8(s32 a0)
particleEmitter_manualFree(ptr);
particleEmitter_setSprite(ptr, ASSET_710_SPRITE_SPARKLE_PURPLE);
func_802EFB98(ptr, &D_8039342C);
particleEmitter_setScaleAndLifetimeRanges(ptr, &D_8039342C);
particleEmitter_setParticleVelocityRange(ptr, 0.f, 70.f, 0.f, 0.f, 140.f, 0.f);
colour[0] = a0 * 0xFF;
@@ -1191,7 +1190,7 @@ void func_80388524(Actor *this) {
particleEmitter_setAlpha(sp2C, 0x3C);
particleEmitter_setPosition(sp2C, this->position);
particleEmitter_setPositionAndVelocityRanges(sp2C, &D_803934D4);
func_802EFB98(sp2C, &D_803934AC);
particleEmitter_setScaleAndLifetimeRanges(sp2C, &D_803934AC);
particleEmitter_emitN(sp2C, 3);
}
break;
@@ -1640,7 +1639,7 @@ void func_80389934(Actor *this)
if (actor_animationIsAt(this, 0.95f))
{
subaddie_set_state_with_direction(this, 0x18, 0.999f, 1);
FUNC_8030E624(SFX_7F_HEAVYDOOR_SLAM, 1.0f, 26000,);
FUNC_8030E624(SFX_7F_HEAVYDOOR_SLAM, 1.0f, 26000);
}
break;

View File

@@ -41,7 +41,7 @@ Struct_lair_86F0_0 D_803947F8[0xb] ={
{ 4, 0x3, FILEPROG_7F_DOUBLE_HEALTH_PUZZLE_PIECES_PLACED}
};
s32 D_80394824[3] = {0xff, 0xff, 0};
struct31s D_80394830 = {
ParticleScaleAndLifetimeRanges D_80394830 = {
{0.17f, 0.24f},
{0.08f, 0.13f},
{0.0f, 0.01f},
@@ -460,7 +460,7 @@ void lair_func_8038F924(Actor *this) {
sp54 = partEmitMgr_newEmitter(6);
particleEmitter_setSprite(sp54, ASSET_710_SPRITE_SPARKLE_PURPLE);
particleEmitter_setAlpha(sp54, 0xFF);
func_802EFB98(sp54, &D_80394830);
particleEmitter_setScaleAndLifetimeRanges(sp54, &D_80394830);
particleEmitter_setPosition(sp54, this->position);
sp58[2] = randf() * 255.0f;
particleEmitter_setRGB(sp54, sp58);

View File

@@ -20,7 +20,7 @@ void func_80391B04(Actor *this);
/* .data */
ActorInfo D_80394AB0 = { 0x1EF, 0x3BB, 0x54B, 0x1, NULL, func_80391B04, func_80326224, func_80325340, 0, 0, 0.0f, 0};
s32 D_80394AD4[3] = {0xBA, 0xBA, 0xBA};
struct31s D_80394AE0 = {
ParticleScaleAndLifetimeRanges D_80394AE0 = {
{0.1f, 0.2f},
{3.6f, 4.6f},
{1.0f, 1.0f},
@@ -28,7 +28,7 @@ struct31s D_80394AE0 = {
0.05f, 0.1f
};
struct31s D_80394B08 = {
ParticleScaleAndLifetimeRanges D_80394B08 = {
{0.3f, 0.5f},
{0.0f, 0.0f},
{0.0f, 0.1f},
@@ -62,7 +62,7 @@ void func_80391160(f32 pos[3], u32 count)
particleEmitter_setPosition(p, pos);
particleEmitter_setParticleSpawnPositionRange(p, -55, -55, -55, 55, 55, 55);
particleEmitter_setParticleVelocityRange(p, -70, -70, -70, 70, 70, 70);
func_802EFB98(p, &D_80394AE0);
particleEmitter_setScaleAndLifetimeRanges(p, &D_80394AE0);
particleEmitter_emitN(p, count);
}
@@ -91,7 +91,7 @@ void func_8039137C(f32 pos[3], u32 count, enum asset_e sprite)
func_802EFA18(p, 3);
particleEmitter_setAngularVelocityRange(p, 0, 0, 600, 0, 0, 900);
particleEmitter_setPositionVelocityAndAccelerationRanges(p, &D_80394B30);
func_802EFB98(p, &D_80394B08);
particleEmitter_setScaleAndLifetimeRanges(p, &D_80394B08);
particleEmitter_setDrawMode(p, 2);
particleEmitter_emitN(p, count);
}