fight documentation

This commit is contained in:
Banjo Kazooie 2022-10-08 22:07:56 -05:00
parent c0b005fa3d
commit cd222d498a
106 changed files with 1120 additions and 880 deletions

View File

@ -1,4 +1,4 @@
# banjo (89.2171%) # banjo (89.2214%)
<img src="./progress/progress_total.svg"> <img src="./progress/progress_total.svg">

View File

@ -682,7 +682,7 @@ typedef struct {
ALPan pan; /* overall pan for this chan */ ALPan pan; /* overall pan for this chan */
u8 priority; /* priority for this chan */ u8 priority; /* priority for this chan */
u8 vol; /* current volume for this chan */ u8 vol; /* current volume for this chan */
u8 unk9; u8 unkA;
u8 fxmix; /* current fx mix for this chan */ u8 fxmix; /* current fx mix for this chan */
u8 sustain; /* current sustain pedal state */ u8 sustain; /* current sustain pedal state */
f32 pitchBend; /* current pitch bend val in cents */ f32 pitchBend; /* current pitch bend val in cents */

View File

@ -216,9 +216,10 @@ enum bkprog_e{
// {index=0xCC, type="Prog", level=6, name="Cobweb to Green Cauldron Broken"}, // {index=0xCC, type="Prog", level=6, name="Cobweb to Green Cauldron Broken"},
BKPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN = 0xcd, BKPROG_CD_GRATE_TO_WATER_SWITCH_3_OPEN = 0xcd,
BKPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN, BKPROG_CE_GRATE_TO_MMM_PUZZLE_OPEN,
BKPROG_CF_HAS_ENTERED_FINAL_FIGHT,
// {index=0xD1, type="Prog", level=12, name="Fight 1st Jinjo Statue Activated Cutscene"},
// {index=0xD2, type="Prog", level=12, name="Fight 1st Jinjo Statue Rising Cutscene"}, BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT = 0xD1,
BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT,
// {index=0xD3, type="Prog", level=6, name="??FF PATTERN 2^0"}, // {index=0xD3, type="Prog", level=6, name="??FF PATTERN 2^0"},
// {index=0xD4, type="Prog", level=6, name="??FF PATTERN 2^1"}, // {index=0xD4, type="Prog", level=6, name="??FF PATTERN 2^1"},
// {index=0xD5, type="Prog", level=6, name="??FF PATTERN 2^2"}, // {index=0xD5, type="Prog", level=6, name="??FF PATTERN 2^2"},
@ -676,16 +677,16 @@ enum comusic_e
COMUISC_97_BBONUS_DROP_PIECE, COMUISC_97_BBONUS_DROP_PIECE,
COMUSIC_98_BBONUS_PIECES_SHUFFLE, // Looping COMUSIC_98_BBONUS_PIECES_SHUFFLE, // Looping
MUSIC_MUMBO_BBQ, MUSIC_MUMBO_BBQ,
SFX_JINJONATOR_HITS_GRUNTY_A, COMUSIC_9A_JINJONATOR_HITS_GRUNTY_A,
SFX_JINJONATOR_HITS_GRUNTY_B, COMUSIC_9B_JINJONATOR_HITS_GRUNTY_B,
SFX_JINJONATOR_HITS_GRUNTY_C, COMUSIC_9C_JINJONATOR_HITS_GRUNTY_C,
SFX_JINJONATOR_HITS_GRUNTY_D, COMUSIC_9D_JINJONATOR_HITS_GRUNTY_D,
SFX_JINJONATOR_HITS_GRUNTY_E, COMUSIC_9E_JINJONATOR_HITS_GRUNTY_E,
SFX_JINJONATOR_HITS_GRUNTY_F, COMUSIC_9F_JINJONATOR_HITS_GRUNTY_F,
SFX_JINJONATOR_HITS_GRUNTY_G = 0xA0, COMUSIC_A0_JINJONATOR_HITS_GRUNTY_G = 0xA0,
SFX_JINJONATOR_HITS_GRUNTY_H, COMUSIC_A1_JINJONATOR_HITS_GRUNTY_H,
SFX_JINJONATOR_HITS_GRUNTY_I, COMUSIC_A2_JINJONATOR_HITS_GRUNTY_I,
SFX_JINJONATOR_HITS_GRUNTY_J, COMUSIC_A3_JINJONATOR_HITS_GRUNTY_J,
JINGLE_JINJONATOR_DRUMMING_A, JINGLE_JINJONATOR_DRUMMING_A,
JINGLE_JINJONATOR_DRUMMING_B, JINGLE_JINJONATOR_DRUMMING_B,
JINGLE_JINJONATOR_DRUMMING_C, JINGLE_JINJONATOR_DRUMMING_C,
@ -1293,7 +1294,8 @@ enum sfx_e
SFX_3FA_HONEYCOMB_TALKING, SFX_3FA_HONEYCOMB_TALKING,
SFX_3FB_UNKNOWN, //conga SFX_3FB_UNKNOWN, //conga
SFX_406_GOLD_BULLION_TALKING = 0x406, SFX_405_UNKNOWN = 0x405,
SFX_406_GOLD_BULLION_TALKING,
SFX_407_MUMBO_TALKING_1, SFX_407_MUMBO_TALKING_1,
SFX_408_MUMBO_TALKING_2, SFX_408_MUMBO_TALKING_2,
SFX_409_MUMBO_TALKING_3, SFX_409_MUMBO_TALKING_3,
@ -1858,9 +1860,26 @@ enum actor_e
ACTOR_386_PORTRAIT_OF_TREE_AND_MOON, ACTOR_386_PORTRAIT_OF_TREE_AND_MOON,
ACTOR_387_PORTRAIT_OF_TEEHEE, ACTOR_387_PORTRAIT_OF_TEEHEE,
ACTOR_388_PORTRAIT_OF_MINION, ACTOR_388_PORTRAIT_OF_MINION,
ACTOR_389_GRUNTY_SPELL_FIREBALL,
ACTOR_38B_GRUNTILDA_FINAL_BOSS = 0x38B,
ACTOR_39F_FIGHT_FLIGHT_PAD = 0x39F, ACTOR_39F_FIGHT_FLIGHT_PAD = 0x39F,
ACTOR_3A0_ICECUBE_B, ACTOR_3A0_ICECUBE_B,
ACTOR_3A1_STONE_JINJO = 0x3A1,
ACTOR_3A2_JINJO_STATUE_BASE = 0x3A2,
ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5,
ACTOR_3A6_BOSS_JINJO_GREEN,
ACTOR_3A7_BOSS_JINJO_PINK,
ACTOR_3A8_BOSS_JINJO_YELLOW,
ACTOR_3A9_JINJONATOR_STATUE_BASE = 0x3A9,
ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK = 0x3AA,
ACTOR_3AB_GRUNTY_SPELL_BARRIER,
ACTOR_3AC_JINJONATOR,
ACTOR_3AF_GRUNTY_SHADOW = 0x3AF,
ACTOR_3BA_UNKOWN = 0x3ba, ACTOR_3BA_UNKOWN = 0x3ba,
@ -2639,14 +2658,14 @@ enum asset_e
// Unused // Unused
// Unused // Unused
// Unused // Unused
// 3bb Yellow Jinjo ASSET_3BB_MODEL_JINJO_YELLOW = 0x3BB,
// 3bc Orange Jinjo ASSET_3BC_MODEL_JINJO_ORANGE,
// 3bd TTC Lighthouse A // 3bd TTC Lighthouse A
// 3be TTC Lighthouse B // 3be TTC Lighthouse B
ASSET_3BF_MODEL_PLAYER_SHADOW = 0x3BF, ASSET_3BF_MODEL_PLAYER_SHADOW = 0x3BF,
// 3c0 Blue Jinjo ASSET_3C0_MODEL_JINJO_BLUE,
// 3c1 Pink Jinjo ASSET_3C1_MODEL_JINJO_PINK,
// 3c2 Green Jinjo ASSET_3C2_MODEL_JINJO_GREEN,
// Unused // Unused
// Unused // Unused
ASSET_3C5_MODEL_GRUBLIN = 0x3c5, ASSET_3C5_MODEL_GRUBLIN = 0x3c5,
@ -3027,16 +3046,16 @@ enum asset_e
ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE = 0x53A, ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE = 0x53A,
ASSET_53B_MODEL_SHRAPNAL_PIECE_SPIKE, ASSET_53B_MODEL_SHRAPNAL_PIECE_SPIKE,
ASSET_53C_MODEL_SHRAPNAL_PIECE_PLATE, ASSET_53C_MODEL_SHRAPNAL_PIECE_PLATE,
// 53d Gruntilda On Broomstick ASSET_53D_MODEL_GRUNTILDA_FINAL_BOSS,
// 53e Gnawty's Bed // 53e Gnawty's Bed
// 53f Gnawty's Shelves // 53f Gnawty's Shelves
// 540 GL Shock Jump Pad Switch // 540 GL Shock Jump Pad Switch
// 541 (Fireball?) ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK = 0x541,
// 542 (Shadow?) // 542 (Shadow?)
// 543 Final Battle Jinjo Stand ASSET_543_MODEL_JINJO_STATUE_BASE = 0x543,
// 544 Final Battle Jinjonator Stand ASSET_544_MODEL_JINJONATOR_STATUE_BASE,
// 545 Final Battle Stone Jinjo ASSET_545_MODEL_STONE_JINJO,
// 546 Grunty's Barrier Spell ASSET_546_MODEL_GRUNTY_SPELL_BARRIER = 0x546,
// 547 GL Blue Egg Refill Pillow // 547 GL Blue Egg Refill Pillow
// 548 GL Red Feather Refill Pillow // 548 GL Red Feather Refill Pillow
// 549 GL Gold Feather Refill Pillow // 549 GL Gold Feather Refill Pillow
@ -3047,11 +3066,11 @@ enum asset_e
// 54e Copyright Info (Title Screen) // 54e Copyright Info (Title Screen)
// 54f Cheato // 54f Cheato
// 550 Large Door To Final Battle // 550 Large Door To Final Battle
// 551 Jinjonator ASSET_551_MODEL_JINJONATOR = 0x551,
// 552 Broomstick Head (Upon Breaking) ASSET_552_MODEL_BROOMSTICK_PIECE_HEAD,
// 553 Broomstick Shaft Short (Upon Breaking) ASSET_553_MODEL_BROOMSTICK_PIECE_SHORT,
// 554 Broomstick Shaft Long (Upon Breaking) ASSET_554_MODEL_BROOMSTICK_PIECE_LONG,
// 555 Broomstick Eye (Upon Breaking) ASSET_555_MODEL_BROOMSTICK_PIECE_EYE,
// 556 Blast When Yellow Jinjo Hits Gruntilda // 556 Blast When Yellow Jinjo Hits Gruntilda
// 557 Blast When Orange Jinjo Hits Gruntilda // 557 Blast When Orange Jinjo Hits Gruntilda
// 558 Blast When Green Jinjo Hits Gruntilda // 558 Blast When Green Jinjo Hits Gruntilda
@ -3423,7 +3442,7 @@ enum asset_e
ASSET_6C6_SPRITE_SMOKE_PINK, ASSET_6C6_SPRITE_SMOKE_PINK,
ASSET_6C7_SPRITE_SMOKE_GREEN_2, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
ASSET_6C8_SPRITE_SMOKE_BLUE, ASSET_6C8_SPRITE_SMOKE_BLUE,
ASSET_6C9_SPRITE_SMOKE_GREEN_BIG, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK,
ASSET_6D1_SPRITE_GOLDFEATHTER = 0x6d1, ASSET_6D1_SPRITE_GOLDFEATHTER = 0x6d1,
@ -3949,9 +3968,26 @@ enum marker_e{
MARKER_259_PORTRAIT_OF_TREE_AND_MOON, MARKER_259_PORTRAIT_OF_TREE_AND_MOON,
MARKER_25A_PORTRAIT_OF_TEEHEE, MARKER_25A_PORTRAIT_OF_TEEHEE,
MARKER_25B_PORTRAIT_OF_MINION, MARKER_25B_PORTRAIT_OF_MINION,
MARKER_25C_GRUNTY_SPELL_FIREBALL,
MARKER_25E_GRUNTILDA_FINAL_BOSS = 0x25E,
MARKER_25F_ICECUBE_B = 0x25F, MARKER_25F_ICECUBE_B = 0x25F,
MARKER_276_STONE_JINJO = 0x276,
MARKER_27A_JINJO_STATUE_BASE = 0x27A,
MARKER_27B_BOSS_JINJO_ORANGE,
MARKER_27C_BOSS_JINJO_GREEN,
MARKER_27D_BOSS_JINJO_PINK,
MARKER_27E_BOSS_JINJO_YELLOW,
MARKER_27F_JINJONATOR_STATUE_BASE,
MARKER_280_GRUNTY_SPELL_GREEN_ATTACK = 0x280,
MARKER_284_GRUNTY_SPELL_BARRIER = 0x284,
MARKER_285_JINJONATOR,
MARKER_288_GRUNTY_SHADOW = 0x288,
MARKER_295_GRUNTLING_BLUE = 0x295, MARKER_295_GRUNTLING_BLUE = 0x295,
MARKER_296_TEEHEE_PURPLE, MARKER_296_TEEHEE_PURPLE,

View File

@ -582,7 +582,10 @@ f32 climbGetTopY(void);
void func_802596AC(f32 a0[3], f32 a1[3], f32 a2[3], f32 a3[3]); void func_802596AC(f32 a0[3], f32 a1[3], f32 a2[3], f32 a3[3]);
void func_8024E55C(s32, void *); void func_8024E55C(s32, void *);
void func_802C3C88(GenMethod_1, s32);
void __spawnqueue_add_1(GenMethod_1, s32);
#define SPAWNQUEUE_ADD_1(method, arg0) __spawnqueue_add_1((GenMethod_1) (method), reinterpret_cast(s32, (arg0)))
void func_802FAD64(enum item_e); void func_802FAD64(enum item_e);
void nodeprop_getPosition(NodeProp *, f32[3]); void nodeprop_getPosition(NodeProp *, f32[3]);
bool func_80311480(s32 text_id, s32 arg1, f32 *pos, ActorMarker *marker, void(*callback)(ActorMarker *, enum asset_e, s32), void(*arg5)(ActorMarker *, enum asset_e, s32)); bool func_80311480(s32 text_id, s32 arg1, f32 *pos, ActorMarker *marker, void(*callback)(ActorMarker *, enum asset_e, s32), void(*arg5)(ActorMarker *, enum asset_e, s32));

View File

@ -180,7 +180,7 @@ typedef struct actor_s{
u32 unk58_0: 1; u32 unk58_0: 1;
f32 unk5C; f32 unk5C;
f32 unk60; //0x60 f32 unk60; //0x60
f32 yaw_moving; //0x64 f32 yaw_ideal; //0x64
f32 pitch;//0x68 f32 pitch;//0x68
f32 unk6C; f32 unk6C;
f32 unk70; f32 unk70;

View File

@ -491,7 +491,8 @@ typedef struct{
}struct4Cs; }struct4Cs;
typedef struct struct_4D_s{ typedef struct struct_4D_s{
u8 unk0[0x18]; f32 unk0[3];
f32 unkC[3];
}struct4Ds; }struct4Ds;
typedef struct{ typedef struct{

View File

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

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

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

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -152,16 +152,16 @@ void func_80387FD4(Actor *this){
func_80324D2C(4.5f, COMUSIC_43_ENTER_LEVEL_GLITTER); func_80324D2C(4.5f, COMUSIC_43_ENTER_LEVEL_GLITTER);
func_80328B8C(this, 5, 0.79f, 1); func_80328B8C(this, 5, 0.79f, 1);
if (this->unkF4_8 == 5) { if (this->unkF4_8 == 5) {
timedFunc_set_1(0.9f, (TFQM1) func_80387E40, (s32) this->marker); timedFunc_set_1(0.9f, (GenMethod_1) func_80387E40, (s32) this->marker);
} else { } else {
func_80326310(this); func_80326310(this);
} }
if (this->unkF4_8 < 5) { if (this->unkF4_8 < 5) {
bgs_D_803907B8[this->unkF4_8]->propPtr->unk8_4 = TRUE; bgs_D_803907B8[this->unkF4_8]->propPtr->unk8_4 = TRUE;
timedFunc_set_1(1.1f, (TFQM1)func_80387E00, bgs_D_803907B8[this->unkF4_8]); timedFunc_set_1(1.1f, (GenMethod_1)func_80387E00, bgs_D_803907B8[this->unkF4_8]);
func_802BAFE4(D_803907B0[this->unkF4_8-1]); func_802BAFE4(D_803907B0[this->unkF4_8-1]);
} else { } else {
timedFunc_set_1(0.8f, (TFQM1)func_80387D90, (s32) this->marker); timedFunc_set_1(0.8f, (GenMethod_1)func_80387D90, (s32) this->marker);
} }
func_802C3D3C(&func_80387D18, this->marker, 0x46); func_802C3D3C(&func_80387D18, this->marker, 0x46);
} }

View File

@ -374,9 +374,9 @@ void chvilegame_player_consume_piece(Actor *this) {
item_inc(ITEM_16_LIFE); item_inc(ITEM_16_LIFE);
func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FF8); func_8025A6EC(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FF8);
} }
timedFunc_set_1(0.0f, (TFQM1)func_802FDCB8, ITEM_1A_PLAYER_VILE_SCORE); timedFunc_set_1(0.0f, (GenMethod_1)func_802FDCB8, ITEM_1A_PLAYER_VILE_SCORE);
timedFunc_set_1(0.5f, (TFQM1)func_802FDCB8, ITEM_1A_PLAYER_VILE_SCORE); timedFunc_set_1(0.5f, (GenMethod_1)func_802FDCB8, ITEM_1A_PLAYER_VILE_SCORE);
timedFunc_set_1(1.0f, (TFQM1)func_802FDCB8, ITEM_1A_PLAYER_VILE_SCORE); timedFunc_set_1(1.0f, (GenMethod_1)func_802FDCB8, ITEM_1A_PLAYER_VILE_SCORE);
} }
func_8028F6B8(BS_INTR_17, (i_ptr->type != YUMBLIE) ? ASSET_3F7_MODEL_GRUMBLIE : ASSET_3F6_MODEL_YUMBLIE); func_8028F6B8(BS_INTR_17, (i_ptr->type != YUMBLIE) ? ASSET_3F7_MODEL_GRUMBLIE : ASSET_3F6_MODEL_YUMBLIE);
if (!is_correct_type) { if (!is_correct_type) {
@ -406,9 +406,9 @@ bool chvilegame_cpu_consume_piece(ActorMarker *marker, f32 position[3]) {
for(i_ptr = begin; i_ptr < end; i_ptr++){ for(i_ptr = begin; i_ptr < end; i_ptr++){
if ((ml_vec3f_distance(i_ptr->position, position) < 50.0f) && func_8038B684(i_ptr->marker)) { if ((ml_vec3f_distance(i_ptr->position, position) < 50.0f) && func_8038B684(i_ptr->marker)) {
local->vile_score++; local->vile_score++;
timedFunc_set_1(0.0f, (TFQM1)func_802FDCB8, ITEM_1B_VILE_VILE_SCORE); timedFunc_set_1(0.0f, (GenMethod_1)func_802FDCB8, ITEM_1B_VILE_VILE_SCORE);
timedFunc_set_1(0.5f, (TFQM1)func_802FDCB8, ITEM_1B_VILE_VILE_SCORE); timedFunc_set_1(0.5f, (GenMethod_1)func_802FDCB8, ITEM_1B_VILE_VILE_SCORE);
timedFunc_set_1(1.0f, (TFQM1)func_802FDCB8, ITEM_1B_VILE_VILE_SCORE); timedFunc_set_1(1.0f, (GenMethod_1)func_802FDCB8, ITEM_1B_VILE_VILE_SCORE);
return TRUE; return TRUE;
} }
} }

View File

@ -100,7 +100,7 @@ void func_8038EB8C(Actor *this){
if(tmp == 5){ if(tmp == 5){
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
} }
func_802C3C88(func_8038EB4C, this->marker); __spawnqueue_add_1(func_8038EB4C, this->marker);
if(tmp < 5){ if(tmp < 5){
func_802C3F04(func_802C4218,D_80390B50[tmp], ((u32 *)diffPos)[0], ((u32 *)diffPos)[1], ((u32 *)diffPos)[2]); func_802C3F04(func_802C4218,D_80390B50[tmp], ((u32 *)diffPos)[0], ((u32 *)diffPos)[1], ((u32 *)diffPos)[2]);
} else { } else {

View File

@ -69,7 +69,7 @@ void func_803865F4(Actor *this, s32 next_state) {
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timed_setCameraToNode(2.0f, 4); timed_setCameraToNode(2.0f, 4);
timedFunc_set_1(2.0f, (TFQM1)func_80386550, (s32) this->marker); timedFunc_set_1(2.0f, (GenMethod_1)func_80386550, (s32) this->marker);
func_80324E88(4.0f); func_80324E88(4.0f);
func_80324E38(4.0f, 0); func_80324E38(4.0f, 0);
} }

View File

@ -124,7 +124,7 @@ void func_8038794C(Actor *this){
if(jiggyscore_isCollected(JIGGY_2A_FP_BOGGY_1)){ if(jiggyscore_isCollected(JIGGY_2A_FP_BOGGY_1)){
if(!jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3) && !jiggyscore_isSpawned(JIGGY_2C_FP_BOGGY_3)){ if(!jiggyscore_isCollected(JIGGY_2C_FP_BOGGY_3) && !jiggyscore_isSpawned(JIGGY_2C_FP_BOGGY_3)){
func_802C3C88(func_80387760, this->marker); __spawnqueue_add_1(func_80387760, this->marker);
} }
this->unk38_31 = 0; this->unk38_31 = 0;
actor_collisionOff(this); actor_collisionOff(this);
@ -150,7 +150,7 @@ void func_8038794C(Actor *this){
if(!func_8028ECAC() || func_8028ECAC() == BSGROUP_8_TROT){ if(!func_8028ECAC() || func_8028ECAC() == BSGROUP_8_TROT){
if(func_80311480(0xbff, 0x2a, this->position, NULL, NULL, NULL)){ if(func_80311480(0xbff, 0x2a, this->position, NULL, NULL, NULL)){
for(i = 0; i <5; i++ ){ for(i = 0; i <5; i++ ){
timedFunc_set_1(D_80391BEC[i], (TFQM1)func_8038787C, (s32)this->marker); timedFunc_set_1(D_80391BEC[i], (GenMethod_1)func_8038787C, (s32)this->marker);
} }
this->unk138_24 = TRUE; this->unk138_24 = TRUE;
} }
@ -194,7 +194,7 @@ void func_8038794C(Actor *this){
case 5://L80387D90 case 5://L80387D90
if(jiggyscore_isCollected(JIGGY_2A_FP_BOGGY_1)){ if(jiggyscore_isCollected(JIGGY_2A_FP_BOGGY_1)){
this->unk38_31 = 0; this->unk38_31 = 0;
func_802C3C88(func_80387760, this->marker); __spawnqueue_add_1(func_80387760, this->marker);
} }
break; break;
} }

View File

@ -584,7 +584,7 @@ void func_803896FC(Actor *this){
case 1: //L80389F78 case 1: //L80389F78
if(this->unk38_31 == 2){ if(this->unk38_31 == 2){
if(jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2)){ if(jiggyscore_isCollected(JIGGY_30_FP_BOGGY_2)){
func_802C3C88(func_80388F54, this->marker); __spawnqueue_add_1(func_80388F54, this->marker);
func_8038B9BC(); func_8038B9BC();
marker_despawn(this->marker); marker_despawn(this->marker);
} }

View File

@ -120,7 +120,7 @@ void func_8038A384(Actor *this){
: (sp34 == 2) ? 0xC18 : (sp34 == 2) ? 0xC18
: 0xC19; : 0xC19;
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 2.0f); func_80328FB0(this, 2.0f);
func_8028E668(this->position, 100.0f, -10.0f, 100.0f); func_8028E668(this->position, 100.0f, -10.0f, 100.0f);

View File

@ -159,7 +159,7 @@ void func_8038AEE0(s32 indx){
} }
void func_8038B00C(s32 indx){ void func_8038B00C(s32 indx){
func_802C3C88(func_8038AEE0, indx); __spawnqueue_add_1(func_8038AEE0, indx);
} }
void func_8038B034(void){ void func_8038B034(void){
@ -211,7 +211,7 @@ void func_8038B1D0(enum jiggy_e jiggy_id){
timed_setCameraToNode(0.0f, 3); timed_setCameraToNode(0.0f, 3);
timedFunc_set_0(0.0f, func_8038AEA0); timedFunc_set_0(0.0f, func_8038AEA0);
timedFunc_set_0(0.0f, func_8038B0B8); timedFunc_set_0(0.0f, func_8038B0B8);
timedFunc_set_1(0.1f, (TFQM1) func_8038B130, jiggy_id); timedFunc_set_1(0.1f, (GenMethod_1) func_8038B130, jiggy_id);
timedFunc_set_0(5.0f, func_8038B190); timedFunc_set_0(5.0f, func_8038B190);
timedFunc_set_0(5.0f, func_8038B1C4); timedFunc_set_0(5.0f, func_8038B1C4);
func_80324E88(5.0f); func_80324E88(5.0f);

View File

@ -266,7 +266,7 @@ void func_8038C94C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
Actor *this = marker_getActor(caller); Actor *this = marker_getActor(caller);
if(!func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){ if(!func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
func_80328A84(this, 6); func_80328A84(this, 6);
func_802C3C88(func_8038C8F0, this->marker); __spawnqueue_add_1(func_8038C8F0, this->marker);
} }
} }
@ -370,7 +370,7 @@ void func_8038C9A0(Actor *this){
break; break;
case 5:// 8038CE14 case 5:// 8038CE14
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 8.0f); func_80328FB0(this, 8.0f);
if(!func_8038C718(this, this->unk1C[1])){ if(!func_8038C718(this, this->unk1C[1])){
this->velocity[1] = randf2(14.0f, 20.0f); this->velocity[1] = randf2(14.0f, 20.0f);

View File

@ -261,7 +261,7 @@ void func_8038D51C(ActorMarker *marker){
this->unk1C[1] = 1.0f; this->unk1C[1] = 1.0f;
func_80324E88(1.7f); func_80324E88(1.7f);
func_80324E38(1.7f, 0); func_80324E38(1.7f, 0);
timedFunc_set_1(2.3f, (TFQM1)func_8038D294, (s32)this->marker); timedFunc_set_1(2.3f, (GenMethod_1)func_8038D294, (s32)this->marker);
this->velocity[1] = 1.0f; this->velocity[1] = 1.0f;
} }
@ -368,7 +368,7 @@ void func_8038D6C8(Actor *this){
func_8038D324(this); func_8038D324(this);
if(actor_animationIsAt(this, 0.999f)) if(actor_animationIsAt(this, 0.999f))
func_802C3C88((GenMethod_1)func_8038D474, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_8038D474, (s32)this->marker);
if(this->velocity[0] != 0.0f) if(this->velocity[0] != 0.0f)
break; break;
@ -381,7 +381,7 @@ void func_8038D6C8(Actor *this){
item_set(ITEM_6_HOURGLASS, TRUE); item_set(ITEM_6_HOURGLASS, TRUE);
this->unk38_31 = 0xA; this->unk38_31 = 0xA;
item_set(ITEM_24_TWINKLY_SCORE, this->unk38_31); item_set(ITEM_24_TWINKLY_SCORE, this->unk38_31);
func_802C3C88((GenMethod_1)func_8038D41C, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_8038D41C, (s32)this->marker);
this->unk60 = 0.0f; this->unk60 = 0.0f;
func_80347A14(0); func_80347A14(0);
func_802FAD64(ITEM_14_HEALTH); func_802FAD64(ITEM_14_HEALTH);
@ -398,7 +398,7 @@ void func_8038D6C8(Actor *this){
func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000); func_8025A6EC(COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
func_8038D3D8(); func_8038D3D8();
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timedFunc_set_1(1.3f, (TFQM1)func_8038D51C, (s32)this->marker); timedFunc_set_1(1.3f, (GenMethod_1)func_8038D51C, (s32)this->marker);
timed_setCameraToNode(0.9f, 0xC); timed_setCameraToNode(0.9f, 0xC);
item_set(ITEM_24_TWINKLY_SCORE, this->unk38_31); item_set(ITEM_24_TWINKLY_SCORE, this->unk38_31);
func_80347A14(1); func_80347A14(1);
@ -421,7 +421,7 @@ void func_8038D6C8(Actor *this){
if(0.96 < animctrl_getAnimTimer(this->animctrl)){ if(0.96 < animctrl_getAnimTimer(this->animctrl)){
if(this->unk60 <= 0.0){ if(this->unk60 <= 0.0){
func_802C3C88((GenMethod_1)func_8038D474, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_8038D474, (s32)this->marker);
this->unk60 = 2.9f; this->unk60 = 2.9f;
} }
else{ else{

View File

@ -222,7 +222,7 @@ void func_8038E094(Actor *this){
case 6: //L8038E698 case 6: //L8038E698
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 12.0f); func_80328FB0(this, 12.0f);
break; break;

View File

@ -93,7 +93,7 @@ void func_8038F454(Actor *this){
actor_loopAnimation(this); actor_loopAnimation(this);
timed_setCameraToNode(0.0f, 0x2e); timed_setCameraToNode(0.0f, 0x2e);
func_80324DBC(0.0f, 0xc1b, 0x2a, this->position, this->marker, func_8038F330, NULL); func_80324DBC(0.0f, 0xc1b, 0x2a, this->position, this->marker, func_8038F330, NULL);
timedFunc_set_1(2.5f, (TFQM1)func_8038F3F4, (s32)this->marker); timedFunc_set_1(2.5f, (GenMethod_1)func_8038F3F4, (s32)this->marker);
} }
else{ else{
func_8038F2B8(this); func_8038F2B8(this);
@ -111,7 +111,7 @@ void func_8038F560(Actor *this){
} }
void func_8038F598(Actor *this, f32 arg1){ void func_8038F598(Actor *this, f32 arg1){
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, arg1); func_80328FB0(this, arg1);
} }
@ -119,7 +119,7 @@ bool func_8038F5D4(Actor *this, f32 arg1[3], f32 arg2, f32 arg3, s32 arg4){
f32 sp24; f32 sp24;
sp24 = animctrl_getAnimTimer(this->animctrl); sp24 = animctrl_getAnimTimer(this->animctrl);
this->yaw_moving = (f32) func_803297C8(this, arg1); this->yaw_ideal = (f32) func_803297C8(this, arg1);
func_80328FB0(this, arg3); func_80328FB0(this, arg3);
if(actor_animationIsAt(this, 0.9f)){ if(actor_animationIsAt(this, 0.9f)){
FUNC_8030E8B4(SFX_3F2_UNKNOWN, 0.8f, 24000, this->position, 500, 2000); FUNC_8030E8B4(SFX_3F2_UNKNOWN, 0.8f, 24000, this->position, 500, 2000);
@ -137,7 +137,7 @@ bool func_8038F6C4(Actor *this, f32 arg1[3], f32 arg2){
func_80328C64(this, func_803297C8(this, arg1)); func_80328C64(this, func_803297C8(this, arg1));
func_80328FB0(this, arg2); func_80328FB0(this, arg2);
dTheta = this->yaw - this->yaw_moving; dTheta = this->yaw - this->yaw_ideal;
if(-arg2 <= dTheta && dTheta <= arg2){ if(-arg2 <= dTheta && dTheta <= arg2){
return TRUE; return TRUE;
} }
@ -190,7 +190,7 @@ void func_8038F7AC(Actor *this){
this->position[0] = local->unkC[0];\ this->position[0] = local->unkC[0];\
this->position[1] = local->unkC[1];\ this->position[1] = local->unkC[1];\
this->position[2] = local->unkC[2]; this->position[2] = local->unkC[2];
func_802C3C88(func_8038F758, this->marker); __spawnqueue_add_1(func_8038F758, this->marker);
local->unk30 = FALSE; local->unk30 = FALSE;
} }
}//L8038F910 }//L8038F910

View File

@ -46,7 +46,7 @@ void func_80390630(Actor *this){
func_8028E668(this->position, 200.0f, -40.0f, 160.0f); func_8028E668(this->position, 200.0f, -40.0f, 160.0f);
if(this->state == 1){ if(this->state == 1){
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 1.0f); func_80328FB0(this, 1.0f);
if(!func_803114B0()){ if(!func_803114B0()){

View File

@ -99,7 +99,7 @@ void chXmasTree_update(Actor *this){
sfxsource_setSampleRate(this->unk44_31, 28000); sfxsource_setSampleRate(this->unk44_31, 28000);
} }
func_802C3BF8(func_80386FB4); func_802C3BF8(func_80386FB4);
func_802C3C88(func_80386FE0, this->marker); __spawnqueue_add_1(func_80386FE0, this->marker);
if(func_8031FF1C(0x13)){ if(func_8031FF1C(0x13)){
func_80386F84(this); func_80386F84(this);
mapSpecificFlags_set(2, FALSE); mapSpecificFlags_set(2, FALSE);

View File

@ -72,7 +72,7 @@ void func_80390B2C(ActorMarker *marker){
void func_80390B70(Actor *this){ void func_80390B70(Actor *this){
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 0); timed_setCameraToNode(0.0f, 0);
timedFunc_set_1(0.6f, (TFQM1)func_80390ABC, this->marker); timedFunc_set_1(0.6f, (GenMethod_1)func_80390ABC, this->marker);
timedFunc_set_1(2.5f, func_80390B2C, this->marker); timedFunc_set_1(2.5f, func_80390B2C, this->marker);
} }

View File

@ -50,14 +50,14 @@ void func_80387A00(ActorMarker *this_marker){
void func_80387A2C(ActorMarker *caller, enum asset_e text_id, s32 arg2){ void func_80387A2C(ActorMarker *caller, enum asset_e text_id, s32 arg2){
timed_setCameraToNode(0.0f, 0xC); timed_setCameraToNode(0.0f, 0xC);
timedFunc_set_1(0.5f, (TFQM1) func_80387984, reinterpret_cast(s32, caller)); timedFunc_set_1(0.5f, (GenMethod_1) func_80387984, reinterpret_cast(s32, caller));
timed_playSfx(0.5f, SFX_2C_PULLING_NOISE, 0.9f, 32000); timed_playSfx(0.5f, SFX_2C_PULLING_NOISE, 0.9f, 32000);
timed_playSfx(1.8f, SFX_2C_PULLING_NOISE, 1.0f, 32000); timed_playSfx(1.8f, SFX_2C_PULLING_NOISE, 1.0f, 32000);
timed_playSfx(2.5f, SFX_2C_PULLING_NOISE, 1.1f, 32000); timed_playSfx(2.5f, SFX_2C_PULLING_NOISE, 1.1f, 32000);
timed_setCameraToNode(3.0f, 0xd); timed_setCameraToNode(3.0f, 0xd);
timedFunc_set_0(3.5f, __chgobi2_spawnJIggy); timedFunc_set_0(3.5f, __chgobi2_spawnJIggy);
func_80324E88(6.0f); func_80324E88(6.0f);
timedFunc_set_1(6.0f, (TFQM1) func_80387A00, reinterpret_cast(s32, caller)); timedFunc_set_1(6.0f, (GenMethod_1) func_80387A00, reinterpret_cast(s32, caller));
func_80324E38(6.0f, 0); func_80324E38(6.0f, 0);
} }
@ -79,7 +79,7 @@ void chgobi2_setState(Actor *this, s32 next_state){
timedFunc_set_0(0.05f, func_80387960); timedFunc_set_0(0.05f, func_80387960);
timed_playSfx(0.05f, SFX_84_GOBI_CRYING, 1.1f, 32000); timed_playSfx(0.05f, SFX_84_GOBI_CRYING, 1.1f, 32000);
func_80324E38(0.051f, 1); func_80324E38(0.051f, 1);
timedFunc_set_1(0.06f, (TFQM1)func_803879D4, reinterpret_cast(s32, this->marker)); timedFunc_set_1(0.06f, (GenMethod_1)func_803879D4, reinterpret_cast(s32, this->marker));
timed_setCameraToNode(0.86f, 0xb); timed_setCameraToNode(0.86f, 0xb);
timed_playSfx(0.8f, SFX_4B_GULPING, 0.8f, 28000); timed_playSfx(0.8f, SFX_4B_GULPING, 0.8f, 28000);
timed_playSfx(1.4f, SFX_4B_GULPING, 0.8f, 28000); timed_playSfx(1.4f, SFX_4B_GULPING, 0.8f, 28000);

View File

@ -63,10 +63,10 @@ void chgobi3_setState(Actor *this, s32 next_state){
if(next_state == 3){ if(next_state == 3){
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timedFunc_set_1(0.02f, (TFQM1)func_80388270, (s32)this); timedFunc_set_1(0.02f, (GenMethod_1)func_80388270, (s32)this);
timed_setCameraToNode(0.1f, 0x12); timed_setCameraToNode(0.1f, 0x12);
timed_playSfx(0.2f, SFX_4C_LIP_SMACK, 1.0f, 32000); timed_playSfx(0.2f, SFX_4C_LIP_SMACK, 1.0f, 32000);
timedFunc_set_1(0.2f, (TFQM1)func_80388298, (s32)this); timedFunc_set_1(0.2f, (GenMethod_1)func_80388298, (s32)this);
func_80335924(this->unk148, ASSET_FC_ANIM_GOBI_SPITTING, 0.2f, 1.0f); func_80335924(this->unk148, ASSET_FC_ANIM_GOBI_SPITTING, 0.2f, 1.0f);
} }

View File

@ -70,7 +70,7 @@ void func_8038A31C(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
actor_collisionOff(this); actor_collisionOff(this);
func_802C3C88((GenMethod_1)func_8038A2C0, reinterpret_cast(s32, this->marker)); __spawnqueue_add_1((GenMethod_1)func_8038A2C0, reinterpret_cast(s32, this->marker));
this->velocity[0] = 0.0f; this->velocity[0] = 0.0f;
} }

View File

@ -68,7 +68,7 @@ void func_8038A948(Actor *this){
this->initialized = TRUE; this->initialized = TRUE;
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this); actor_collisionOff(this);
func_802C3C88((GenMethod_1)func_8038A8CC, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_8038A8CC, (s32)this->marker);
this->velocity_y = 0.0f; this->velocity_y = 0.0f;
} }
} }
@ -84,7 +84,7 @@ void func_8038A9C0(Actor *this){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this); actor_collisionOff(this);
func_802C3C88((GenMethod_1)func_8038A8CC, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_8038A8CC, (s32)this->marker);
sp24 = subaddie_getLinkedActor(this); sp24 = subaddie_getLinkedActor(this);
this->unk1C[1] = this->unk48; this->unk1C[1] = this->unk48;
this->pitch = 0.0f; this->pitch = 0.0f;

View File

@ -112,7 +112,7 @@ void func_8038AF10(Actor *this){
int func_8038AF78(Actor *this, f32 arg1, f32 arg2){ int func_8038AF78(Actor *this, f32 arg1, f32 arg2){
this->unk28 = arg2; this->unk28 = arg2;
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, arg1); func_80328FB0(this, arg1);
if(!func_80329030(this, 0) && func_80329480(this)) if(!func_80329030(this, 0) && func_80329480(this))
return 0; return 0;
@ -198,7 +198,7 @@ void func_8038B124(Actor *this){
func_8038ABD8(this->position, 8); func_8038ABD8(this->position, 8);
} }
else{//L8038B3E0 else{//L8038B3E0
this->yaw_moving = func_80257204(this->position_x, this->position_z, this->velocity_x, this->velocity_z); this->yaw_ideal = func_80257204(this->position_x, this->position_z, this->velocity_x, this->velocity_z);
func_80328FB0(this, 18.0f); func_80328FB0(this, 18.0f);
this->unk28 = 18.0f; this->unk28 = 18.0f;
func_80329030(this, 0); func_80329030(this, 0);
@ -213,7 +213,7 @@ void func_8038B124(Actor *this){
func_8038AF10(this); func_8038AF10(this);
} }
else{ else{
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 8.0f); func_80328FB0(this, 8.0f);
} }
break; break;
@ -246,7 +246,7 @@ void func_8038B124(Actor *this){
break; break;
case 4: //L8038B5F0 case 4: //L8038B5F0
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 8.0f); func_80328FB0(this, 8.0f);
if(this->unk38_31 >= 20){ if(this->unk38_31 >= 20){
func_80328B8C(this, 5, 0.00001f, 1); func_80328B8C(this, 5, 0.00001f, 1);

View File

@ -65,7 +65,7 @@ void func_8038D47C(Actor *this){
mapSpecificFlags_set(0x10, 0); mapSpecificFlags_set(0x10, 0);
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -3){ if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && gcparade_8031B4F4() == -3){
timedFunc_set_1(1.5f, (TFQM1)func_8038D450, reinterpret_cast(s32, this->marker)); timedFunc_set_1(1.5f, (GenMethod_1)func_8038D450, reinterpret_cast(s32, this->marker));
} }
}//L8038D5EC }//L8038D5EC

View File

@ -228,7 +228,7 @@ void func_803876D0(Actor *this){
if(0.0f != this->velocity_x){ if(0.0f != this->velocity_x){
this->velocity_x -= 1.0f; this->velocity_x -= 1.0f;
if(0.0f == this->velocity_x){ if(0.0f == this->velocity_x){
func_802C3C88((GenMethod_1)func_80387100, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_80387100, (s32)this->marker);
} }
} }
marker_setCollisionScripts(this->marker, NULL, NULL, func_80387168); marker_setCollisionScripts(this->marker, NULL, NULL, func_80387168);
@ -369,6 +369,6 @@ void func_803876D0(Actor *this){
|| (this->state == 7 && actor_animationIsAt(this, 0.468f)) || (this->state == 7 && actor_animationIsAt(this, 0.468f))
){ ){
func_8034A1B4(this->marker->unk44, 5, &this->local); func_8034A1B4(this->marker->unk44, 5, &this->local);
func_802C3C88((GenMethod_1)func_803873C8, (s32)this->marker); //spawn orange __spawnqueue_add_1((GenMethod_1)func_803873C8, (s32)this->marker); //spawn orange
} }
} }

View File

@ -92,7 +92,7 @@ void chhut_update(Actor *this){
func_8030E484(SFX_5B_HEAVY_STUFF_FALLING); func_8030E484(SFX_5B_HEAVY_STUFF_FALLING);
func_80328A84(this, 1); func_80328A84(this, 1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
func_802C3C88((GenMethod_1)func_803869EC, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_803869EC, (s32)this->marker);
func_802C8F70(this->yaw); func_802C8F70(this->yaw);
if(D_8037DCB0 < 5){ if(D_8037DCB0 < 5){
func_802C3F04(func_802C4218, D_803898D8[D_8037DCB0], *(s32*)(&sp3C[0]),*(s32*)(&sp3C[1]),*(s32*)(&sp3C[2])); func_802C3F04(func_802C4218, D_803898D8[D_8037DCB0], *(s32*)(&sp3C[0]),*(s32*)(&sp3C[1]),*(s32*)(&sp3C[2]));

View File

@ -177,7 +177,7 @@ void func_80388028(Actor *this){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->unk16C_0 = TRUE; this->unk16C_0 = TRUE;
marker_setCollisionScripts(this->marker, NULL, func_80387CF4, func_80387D1C); marker_setCollisionScripts(this->marker, NULL, func_80387CF4, func_80387D1C);
func_802C3C88(func_80387D48, this->marker); __spawnqueue_add_1(func_80387D48, this->marker);
func_80387B14(this, (this->state < 5) ? 1 : 6); func_80387B14(this, (this->state < 5) ? 1 : 6);
}//L803880B4 }//L803880B4

View File

@ -114,7 +114,7 @@ void func_803866F4(Actor *this, s32 arg1){
func_8025A6EC(COMUSIC_2B_DING_B, 28000); func_8025A6EC(COMUSIC_2B_DING_B, 28000);
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timedFunc_set_2(0.5f, (TFQM2) func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000); timedFunc_set_2(0.5f, (TFQM2) func_8025A6EC, COMUSIC_2D_PUZZLE_SOLVED_FANFARE, 28000);
timedFunc_set_1(1.0f, (TFQM1) func_803865D0, this->marker); timedFunc_set_1(1.0f, (GenMethod_1) func_803865D0, this->marker);
}//L803867D4 }//L803867D4
if(arg1 == 4){ if(arg1 == 4){
if(local->unk8 == 1 && D_80390074[local->unk4].unk2 > 0){ if(local->unk8 == 1 && D_80390074[local->unk4].unk2 > 0){

View File

@ -197,7 +197,7 @@ void func_80388154(ActorMarker *marker){
timed_playSfx(0.0f, SFX_7F_HEAVYDOOR_SLAM, 1.0f, 0x7fc6); timed_playSfx(0.0f, SFX_7F_HEAVYDOOR_SLAM, 1.0f, 0x7fc6);
timedFunc_set_2(1.2f, (TFQM2) func_80387B8C, 0x19f, 0); timedFunc_set_2(1.2f, (TFQM2) func_80387B8C, 0x19f, 0);
timed_setCameraToNode(1.2f, 8); timed_setCameraToNode(1.2f, 8);
timedFunc_set_1(1.5f, (TFQM1) func_80387F88, (s32) actor->marker); timedFunc_set_1(1.5f, (GenMethod_1) func_80387F88, (s32) actor->marker);
} }
void func_803881E8(Actor *this, s32 arg1){ void func_803881E8(Actor *this, s32 arg1){
@ -208,7 +208,7 @@ void func_803881E8(Actor *this, s32 arg1){
timedFunc_set_2(0.1f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000); timedFunc_set_2(0.1f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000);
func_80324E38(0.2f, 3); func_80324E38(0.2f, 3);
timed_setCameraToNode(1.1f, 7); timed_setCameraToNode(1.1f, 7);
timedFunc_set_1(1.6f, (TFQM1)func_80388154, (s32)this->marker); timedFunc_set_1(1.6f, (GenMethod_1)func_80388154, (s32)this->marker);
levelSpecificFlags_set(0x2D, 1); levelSpecificFlags_set(0x2D, 1);
} }
} }

View File

@ -49,7 +49,7 @@ void func_8038A0A0(Actor *this, s32 arg1){
if(this->state == 1){ if(this->state == 1){
levelSpecificFlags_set(local->unk0->unk8, 1); levelSpecificFlags_set(local->unk0->unk8, 1);
func_803228D8(); func_803228D8();
timedFunc_set_1(1.1f, (TFQM1)func_8028F9DC, 2); timedFunc_set_1(1.1f, (GenMethod_1)func_8028F9DC, 2);
timedFunc_set_3(1.1f, (TFQM3)func_802E4078, MAP_31_RBB_RUSTY_BUCKET_BAY, 0, 0); timedFunc_set_3(1.1f, (TFQM3)func_802E4078, MAP_31_RBB_RUSTY_BUCKET_BAY, 0, 0);
}else{ }else{
levelSpecificFlags_set(local->unk0->unkA, 1); levelSpecificFlags_set(local->unk0->unkA, 1);

View File

@ -28,7 +28,7 @@ void func_8038FA9C(Actor *this, s32 arg1){
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timedFunc_set_2(1.0f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000); timedFunc_set_2(1.0f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000);
timed_setCameraToNode(1.8f, 1); timed_setCameraToNode(1.8f, 1);
timedFunc_set_1(2.0f, (TFQM1) func_8038FA60, (s32)this->marker); timedFunc_set_1(2.0f, (GenMethod_1) func_8038FA60, (s32)this->marker);
func_80324E88(5.0f); func_80324E88(5.0f);
func_80324E38(5.0f, 0); func_80324E38(5.0f, 0);
} }

View File

@ -23,7 +23,7 @@ void func_8038FDE0(s32 arg0){
levelSpecificFlags_set(0x28, FALSE); levelSpecificFlags_set(0x28, FALSE);
item_set(ITEM_9_PROPELLOR,0); item_set(ITEM_9_PROPELLOR,0);
if(arg0 == 3 && !jiggyscore_isCollected(0x57)){ if(arg0 == 3 && !jiggyscore_isCollected(0x57)){
timedFunc_set_1(0.5f, (TFQM1)func_802FAD64, 3); timedFunc_set_1(0.5f, (GenMethod_1)func_802FAD64, 3);
func_80324DBC(1.0f, 0xb9d, 4, NULL, NULL, NULL, NULL); func_80324DBC(1.0f, 0xb9d, 4, NULL, NULL, NULL, NULL);
} }
else{ else{

View File

@ -102,13 +102,13 @@ void func_80387488(ActorMarker *marker){
if(-50.0f < sp1C[1] && sp1C[1] < 600.0f){ if(-50.0f < sp1C[1] && sp1C[1] < 600.0f){
sp1C[1] = 0; sp1C[1] = 0;
if(ml_vec3f_distance(&sp1C, &D_80390264) < 500.0f){ if(ml_vec3f_distance(&sp1C, &D_80390264) < 500.0f){
timedFunc_set_1(1.0f, (TFQM1) func_80387488, (s32)actor->marker); timedFunc_set_1(1.0f, (GenMethod_1) func_80387488, (s32)actor->marker);
return; return;
} }
} }
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 6); timed_setCameraToNode(0.0f, 6);
timedFunc_set_1(0.5f, (TFQM1) func_80387308, (s32) actor->marker); timedFunc_set_1(0.5f, (GenMethod_1) func_80387308, (s32) actor->marker);
} }
void func_8038756C(Actor *this, s32 arg1){ void func_8038756C(Actor *this, s32 arg1){

View File

@ -378,7 +378,7 @@ void func_80388080(Actor *this){
this->unk38_0 = 1; this->unk38_0 = 1;
}//L803885A0 }//L803885A0
if(func_803292E0(this)){ if(func_803292E0(this)){
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
} }
else{//L803885CC else{//L803885CC
if(randf() < 0.02){ if(randf() < 0.02){
@ -387,7 +387,7 @@ void func_80388080(Actor *this){
}//L80388B68 }//L80388B68
} }
else{//L80388618 else{//L80388618
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
} }
} }
else if(local->unkC == 2){//L80388634 else if(local->unkC == 2){//L80388634
@ -397,7 +397,7 @@ void func_80388080(Actor *this){
this->unk38_0 = 1; this->unk38_0 = 1;
}//L80388698 }//L80388698
if(mapSpecificFlags_get(0xC) || (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && func_803292E0(this))){ if(mapSpecificFlags_get(0xC) || (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) && func_803292E0(this))){
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
}else{//L803886E4 }else{//L803886E4
if(randf() < 0.02){//D_8038B1D0){ if(randf() < 0.02){//D_8038B1D0){
func_80328CEC(this, (s32)this->yaw, 0x1E, 0x5A); func_80328CEC(this, (s32)this->yaw, 0x1E, 0x5A);
@ -454,7 +454,7 @@ void func_80388080(Actor *this){
this->unk1C_z = local->unk0_z + this->unk1C_z; this->unk1C_z = local->unk0_z + this->unk1C_z;
}//L80388AD8 }//L80388AD8
if(func_803292E0(this)){ if(func_803292E0(this)){
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
}else{//L80388B04 }else{//L80388B04
if(randf() < 0.01){ if(randf() < 0.01){
func_80328CEC(this, (s32)this->yaw, 0x1e, 0x5A); func_80328CEC(this, (s32)this->yaw, 0x1e, 0x5A);
@ -462,7 +462,7 @@ void func_80388080(Actor *this){
} }
}else{ }else{
//L80388B50 //L80388B50
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
} }
} }

View File

@ -407,7 +407,7 @@ void func_803899B0(Actor * this){
}//L80389B20 }//L80389B20
if(!this->unk16C_4){ if(!this->unk16C_4){
func_802C3C88((GenMethod_1)func_80389948, reinterpret_cast(s32, this->marker)); __spawnqueue_add_1((GenMethod_1)func_80389948, reinterpret_cast(s32, this->marker));
this->unk16C_4 = 1; this->unk16C_4 = 1;
}//L80389B4C }//L80389B4C
@ -420,7 +420,7 @@ void func_803899B0(Actor * this){
switch (this->state) switch (this->state)
{ {
case 1://L80389BAC case 1://L80389BAC
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if( (this->unkF4_8 == 1 && !mapSpecificFlags_get(1)) if( (this->unkF4_8 == 1 && !mapSpecificFlags_get(1))
|| (this->unkF4_8 == 8 && !mapSpecificFlags_get(2)) || (this->unkF4_8 == 8 && !mapSpecificFlags_get(2))
@ -467,7 +467,7 @@ void func_803899B0(Actor * this){
} }
break; break;
case 2://L80389E2C case 2://L80389E2C
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if( (f64) 0.0 < animctrl_getAnimTimer(this->animctrl) if( (f64) 0.0 < animctrl_getAnimTimer(this->animctrl)
&& animctrl_getAnimTimer(this->animctrl) < 0.16 && animctrl_getAnimTimer(this->animctrl) < 0.16
@ -494,7 +494,7 @@ void func_803899B0(Actor * this){
} }
break; break;
case 3://L80389FAC case 3://L80389FAC
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if( ( actor_animationIsAt(this, 0.37f) if( ( actor_animationIsAt(this, 0.37f)
|| actor_animationIsAt(this, 0.66f) || actor_animationIsAt(this, 0.66f)

View File

@ -48,8 +48,8 @@ void func_8038A8F8(Actor *this){
if( !mapSpecificFlags_get(2) if( !mapSpecificFlags_get(2)
|| (mapSpecificFlags_get(3) && !mapSpecificFlags_get(0xf)) || (mapSpecificFlags_get(3) && !mapSpecificFlags_get(0xf))
){ //L8038AA54 ){ //L8038AA54
this->yaw_moving = ml_vec3f_distance(this->velocity, this->unk1C) / 150.0; this->yaw_ideal = ml_vec3f_distance(this->velocity, this->unk1C) / 150.0;
func_8028F3D8(this->unk1C, this->yaw_moving, func_8038A8C0, this->marker); func_8028F3D8(this->unk1C, this->yaw_ideal, func_8038A8C0, this->marker);
mapSpecificFlags_set(0x10, 1); mapSpecificFlags_set(0x10, 1);
} }
} }

View File

@ -84,7 +84,7 @@ bool func_803864B0(Actor *this, f32 arg1) {
} }
this->unk28 = phi_f2 / arg1; this->unk28 = phi_f2 / arg1;
this->yaw_moving = func_80257204(this->position[0], this->position[2], sp3C[0], sp3C[2]); this->yaw_ideal = func_80257204(this->position[0], this->position[2], sp3C[0], sp3C[2]);
if ((func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11) < this->unk28) { if ((func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11) < this->unk28) {
this->unk28 = (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) != 0) ? 0.0f : 17.0f; this->unk28 = (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) != 0) ? 0.0f : 17.0f;
} else if (sp38 == 0) { } else if (sp38 == 0) {
@ -109,13 +109,13 @@ bool func_80386760(Actor *this, s32 arg1) {
if (this->unk1C[0] != 0.0f) { if (this->unk1C[0] != 0.0f) {
arg1 *= 2; arg1 *= 2;
this->unk28 = (f32) randi2(0, 0.5*(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11)); this->unk28 = (f32) randi2(0, 0.5*(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11));
this->yaw_moving += (f32) randi2(-arg1, arg1); this->yaw_ideal += (f32) randi2(-arg1, arg1);
} else if ((f64) randf() < 0.4) { } else if ((f64) randf() < 0.4) {
this->unk28 = 0.0f; this->unk28 = 0.0f;
this->yaw_moving += (f32) randi2(-arg1, arg1); this->yaw_ideal += (f32) randi2(-arg1, arg1);
} else { } else {
this->unk28 = (f32) randi2(0.33 * (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11), func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11); this->unk28 = (f32) randi2(0.33 * (func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11), func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE) ? 0 : 0x11);
this->yaw_moving = this->yaw; this->yaw_ideal = this->yaw;
} }
this->unk1C[0] = 0.0f; this->unk1C[0] = 0.0f;
} }
@ -126,12 +126,12 @@ bool func_80386760(Actor *this, s32 arg1) {
} }
temp_f0_2 = this->unk28 * sp2C; temp_f0_2 = this->unk28 * sp2C;
this->velocity[1] = ((f32)(0.3*temp_f0_2) / sp2C) - (f32) ((s32) (sp2C * -5) / 2); this->velocity[1] = ((f32)(0.3*temp_f0_2) / sp2C) - (f32) ((s32) (sp2C * -5) / 2);
if (func_80329078(this, this->yaw_moving, temp_f0_2)) { if (func_80329078(this, this->yaw_ideal, temp_f0_2)) {
return TRUE; return TRUE;
} }
this->unk1C[0] = 1.0f; this->unk1C[0] = 1.0f;
this->unk28 = 0.0f; this->unk28 = 0.0f;
this->yaw_moving = this->yaw; this->yaw_ideal = this->yaw;
return FALSE; return FALSE;
} }

View File

@ -92,11 +92,11 @@ void func_80387678(Actor *this){
if( !mapSpecificFlags_get(1) ) return; if( !mapSpecificFlags_get(1) ) return;
if( mapSpecificFlags_get(3) ) return; if( mapSpecificFlags_get(3) ) return;
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
mapSpecificFlags_set(3, TRUE); mapSpecificFlags_set(3, TRUE);
func_8028F918(2); func_8028F918(2);
timed_setCameraToNode(0.0f, 4); timed_setCameraToNode(0.0f, 4);
timedFunc_set_1(1.0f, (TFQM1)func_803875D4, (s32)this->marker); timedFunc_set_1(1.0f, (GenMethod_1)func_803875D4, (s32)this->marker);
func_80328B8C(this, 1, 0.0f, 1); func_80328B8C(this, 1, 0.0f, 1);
} }
@ -104,7 +104,7 @@ void func_8038771C(Actor *this){
if( !func_80329030(this, 0) if( !func_80329030(this, 0)
&& func_80329480(this) && func_80329480(this)
){ ){
func_80328CEC(this, (s32)this->yaw_moving, 120, 180); func_80328CEC(this, (s32)this->yaw_ideal, 120, 180);
} }
} }

View File

@ -135,7 +135,7 @@ void func_80388D04(s32 arg0){
void func_80388D34(Actor *this){ void func_80388D34(Actor *this){
func_80388C78(this); func_80388C78(this);
if(!this->unk16C_4){ if(!this->unk16C_4){
func_802C3C88((GenMethod_1)func_80388D04, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_80388D04, (s32)this->marker);
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
} }
} }

View File

@ -41,7 +41,7 @@ void func_80388FBC(Actor *this) {
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
if (levelSpecificFlags_get(5) != 0) { if (levelSpecificFlags_get(5) != 0) {
levelSpecificFlags_set(5, 0); levelSpecificFlags_set(5, 0);
timedFunc_set_1(0.5f, (TFQM1)func_8025A70C, COMUSIC_2D_PUZZLE_SOLVED_FANFARE); timedFunc_set_1(0.5f, (GenMethod_1)func_8025A70C, COMUSIC_2D_PUZZLE_SOLVED_FANFARE);
} }
if (levelSpecificFlags_get(2) != 0) { if (levelSpecificFlags_get(2) != 0) {
temp_v0_2 = func_8034C5AC(300); temp_v0_2 = func_8034C5AC(300);

View File

@ -169,7 +169,7 @@ void func_80389CC4(s16 arg0[3], s32 arg1){
D_8038D708[2] += 300.0f; D_8038D708[2] += 300.0f;
gcpausemenu_80314AC8(0); gcpausemenu_80314AC8(0);
timedFunc_set_2(0.1f, (TFQM2) func_8028F45C, 9, (s32)&D_8038D708); timedFunc_set_2(0.1f, (TFQM2) func_8028F45C, 9, (s32)&D_8038D708);
timedFunc_set_1(0.1f, (TFQM1) gcpausemenu_80314AC8, 1); timedFunc_set_1(0.1f, (GenMethod_1) gcpausemenu_80314AC8, 1);
func_80311480(ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED, 4, NULL, NULL, NULL, NULL); func_80311480(ASSET_A17_TEXT_BURIED_TREASURE_SPAWNED, 4, NULL, NULL, NULL, NULL);
D_8037DCB4++; D_8037DCB4++;
}//L80389E70 }//L80389E70

View File

@ -423,8 +423,8 @@ void func_8025A70C(enum comusic_e track_id){
} }
void func_8025A788(enum comusic_e comusic_id, f32 delay1, f32 delay2){ void func_8025A788(enum comusic_e comusic_id, f32 delay1, f32 delay2){
timedFunc_set_1(delay1, (TFQM1) func_8025A70C, comusic_id); timedFunc_set_1(delay1, (GenMethod_1) func_8025A70C, comusic_id);
timedFunc_set_1(delay1 + delay2, (TFQM1) func_8025A7DC, comusic_id); timedFunc_set_1(delay1 + delay2, (GenMethod_1) func_8025A7DC, comusic_id);
} }
void func_8025A7DC(enum comusic_e track_id){ void func_8025A7DC(enum comusic_e track_id){

View File

@ -1,6 +1,8 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "n_libaudio.h"
#include "variables.h" #include "n_synth.h"
// #include "functions.h"
// #include "variables.h"
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80260860.s") #pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/func_80260860.s")
@ -10,6 +12,9 @@
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/n_alEnvmixerPull.s") #pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/n_alEnvmixerPull.s")
#ifdef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__postNextSeqEvent.s")
#else
void __postNextSeqEvent(ALSeqPlayer *seqp) void __postNextSeqEvent(ALSeqPlayer *seqp)
{ {
ALEvent evt; ALEvent evt;
@ -42,8 +47,8 @@ void __postNextSeqEvent(ALSeqPlayer *seqp)
evt.type = AL_SEQ_REF_EVT; evt.type = AL_SEQ_REF_EVT;
//alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt); //alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt);
alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt); alEvtqPostEvent(&seqp->evtq, &evt, deltaTicks * seqp->uspt);
} }
#endif
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__setInstChanState.s") #pragma GLOBAL_ASM("asm/nonmatchings/core1/code_22E40/__setInstChanState.s")

View File

@ -2,6 +2,24 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
typedef struct struct_core2_25E20_0{
s32 unk0;
s32 unk4;
s32 unk8;
s16 unkC;
u8 padE[2];
u8 pad10[0xA];
s16 unk1A;
};
typedef struct struct_core2_25E20_1{
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
u8 pad10[0xA];
s16 unk1A;
};
void func_80263840(void){} void func_80263840(void){}
@ -9,7 +27,72 @@ void func_80263848(void){}
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_25E20/func_80263850.s") #pragma GLOBAL_ASM("asm/nonmatchings/core1/code_25E20/func_80263850.s")
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_25E20/func_802639FC.s") void func_802639FC(struct struct_core2_25E20_1 *arg0, struct struct_core2_25E20_0 *arg1, u32 arg2) {
u32 var_v0;
s32 var_s4;
u32 var_s6;
s16 var_s5;
s16 sp50;
s32 sp4C;
s32 sp48;
u32 sp44;
s32 sp40;
s16 sp3E;
if(arg2 == 0){
arg1->unk0 = (s32) arg0->unk4;
arg1->unkC = 0;
arg1->unk4 = 0U;
arg1->unk8 = 0U;
return;
}
sp4C = arg0->unk8;
sp3E = arg0->unk1A;
sp44 = arg0->unkC;
arg0->unk1A = 0;
arg0->unkC = 0;
arg0->unk8 = arg0->unk4;
// var_v0 = 0;
do{
var_s4 = arg0->unk8;
var_s5 = arg0->unk1A;
var_s6 = arg0->unkC;
func_80263850(arg0, &sp50);
if(sp50 == 4){
var_s4 = arg0->unk8;
var_s5 = arg0->unk1A;
var_s6 = arg0->unkC;
break;
}
// var_v0 = arg0->unkC;
}while(arg0->unkC < arg2);
arg1->unk0 = var_s4;
arg1->unkC = var_s5;
arg1->unk4 = var_s6;
arg1->unk8 = arg0->unkC;
arg0->unk8 = sp4C;
arg0->unk1A = sp3E;
arg0->unkC = sp44;
// var_v0 = 0;
// loop_3:
// if (sp50 == 4) {
// } else {
// var_v0 = arg0->unkC;
// if (var_v0 < arg2) {
// goto loop_3;
// }
// }
}
void func_80263B1C(void){} void func_80263B1C(void){}

View File

@ -5,5 +5,5 @@
u8 func_8025F4A0(N_ALCSPlayer *seqp, u8 chan) u8 func_8025F4A0(N_ALCSPlayer *seqp, u8 chan)
{ {
return seqp->chanState[chan].unk9; return seqp->chanState[chan].unkA;
} }

View File

@ -636,7 +636,7 @@ static void __n_CSPHandleMIDIMsg(N_ALCSPlayer *seqp, N_ALEvent *event)
} }
break; break;
case (0x7D): case (0x7D):
seqp->chanState[chan].unk9 = byte2; seqp->chanState[chan].unkA = byte2;
for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) for (vs = seqp->vAllocHead; vs != 0; vs = vs->next)
{ {
if ((vs->channel == chan) && (vs->envPhase != AL_PHASE_RELEASE)) if ((vs->channel == chan) && (vs->envPhase != AL_PHASE_RELEASE))

View File

@ -66,7 +66,7 @@ void func_802C5F44(Actor *this){
void func_802C5F94(Actor *this){ void func_802C5F94(Actor *this){
func_80328A84(this, 2); func_80328A84(this, 2);
func_802C5E80(this); func_802C5E80(this);
func_80328CEC(this, (s32)this->yaw_moving, 135, 175); func_80328CEC(this, (s32)this->yaw_ideal, 135, 175);
this->unk38_31 = 150; this->unk38_31 = 150;
} }
@ -162,13 +162,13 @@ void func_802C6240(Actor *this){
func_80328CEC(this, (s32)this->yaw, 90, 150); func_80328CEC(this, (s32)this->yaw, 90, 150);
}//L802C64EC }//L802C64EC
if(!(func_8023DB5C() & 0xf)) if(!(func_8023DB5C() & 0xf))
func_80328CEC(this, (s32)this->yaw_moving, 10, 20); func_80328CEC(this, (s32)this->yaw_ideal, 10, 20);
if(!(func_8023DB5C() & 0x7)) if(!(func_8023DB5C() & 0x7))
func_80328BD4(this, 1, 0.16f, 1, 0.02f); func_80328BD4(this, 1, 0.16f, 1, 0.02f);
if( !(func_8023DB5C() & 0xf) if( !(func_8023DB5C() & 0xf)
&& func_80329078(this, (s32)this->yaw_moving, 150) && func_80329078(this, (s32)this->yaw_ideal, 150)
&& func_80328B38(this, 3, 0.13f) && func_80328B38(this, 3, 0.13f)
){ ){
this->unk28 = randf2(7.1f, 8.4f); this->unk28 = randf2(7.1f, 8.4f);
@ -178,7 +178,7 @@ void func_802C6240(Actor *this){
case 0x8: //L802C65D0 case 0x8: //L802C65D0
func_802C5F44(this); func_802C5F44(this);
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if(func_80329480(this)) if(func_80329480(this))
func_80328A84(this, 6); func_80328A84(this, 6);
@ -198,7 +198,7 @@ void func_802C6240(Actor *this){
case 0x6: //L802C66D0 case 0x6: //L802C66D0
animctrl_setDuration(this->animctrl, D_80366010[6].duration - (3 - this->unk10_12)*0.1085); animctrl_setDuration(this->animctrl, D_80366010[6].duration - (3 - this->unk10_12)*0.1085);
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
if(!func_803294B4(this, 0x21)){ if(!func_803294B4(this, 0x21)){
func_80328A84(this, 8); func_80328A84(this, 8);
} }
@ -224,13 +224,13 @@ void func_802C6240(Actor *this){
if(30.0f < this->unk28) if(30.0f < this->unk28)
this->unk28 = 30.0f; this->unk28 = 30.0f;
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 9.0f); func_80328FB0(this, 9.0f);
if(!func_80329030(this, 0)) if(!func_80329030(this, 0))
func_802C5F94(this); func_802C5F94(this);
if(func_80329530(this, 320)){ if(func_80329530(this, 320)){
if(func_80329078(this, (s32)this->yaw_moving,200)){ if(func_80329078(this, (s32)this->yaw_ideal,200)){
animctrl_setPlaybackType(this->animctrl, ANIMCTRL_ONCE); animctrl_setPlaybackType(this->animctrl, ANIMCTRL_ONCE);
func_80328A84(this, 4); func_80328A84(this, 4);
this->unk28 += 5.7; this->unk28 += 5.7;
@ -252,7 +252,7 @@ void func_802C6240(Actor *this){
case 0x4: //L802C6A14 case 0x4: //L802C6A14
if(animctrl_getAnimTimer(this->animctrl) < 0.99){ if(animctrl_getAnimTimer(this->animctrl) < 0.99){
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, 1.0f); func_80328FB0(this, 1.0f);
} }
func_80329030(this, 0); func_80329030(this, 0);

View File

@ -141,13 +141,13 @@ void func_802E1DE8(Actor *this){
} }
void func_802E1E20(Actor *this, f32 arg1){ void func_802E1E20(Actor *this, f32 arg1){
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 6.0f); func_80328FB0(this, 6.0f);
} }
int func_802E1E5C(Actor *this, s32 arg1){ int func_802E1E5C(Actor *this, s32 arg1){
f32 f0; f32 f0;
f0 = this->yaw - this->yaw_moving; f0 = this->yaw - this->yaw_ideal;
if((f0 < arg1) && (-arg1 < f0)){ if((f0 < arg1) && (-arg1 < f0)){
return 1; return 1;
} }
@ -183,7 +183,7 @@ void func_802E1FD0(ActorMarker *marker, ActorMarker *other_marker){
FUNC_8030E8B4(SFX_3EA_UNKNOWN, 1.0f, 30000, actor->position, 1500, 4500); FUNC_8030E8B4(SFX_3EA_UNKNOWN, 1.0f, 30000, actor->position, 1500, 4500);
FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 1.0f, 30000, actor->position, 1500, 4500); FUNC_8030E8B4(SFX_2F_ORANGE_SPLAT, 1.0f, 30000, actor->position, 1500, 4500);
func_802C3C88((GenMethod_1)func_802E1BD0, (s32)actor->marker); __spawnqueue_add_1((GenMethod_1)func_802E1BD0, (s32)actor->marker);
if(map_get() == MAP_27_FP_FREEZEEZY_PEAK) if(map_get() == MAP_27_FP_FREEZEEZY_PEAK)
func_8038A978(); func_8038A978();
func_802E1CB8(actor->position, 0xC); func_802E1CB8(actor->position, 0xC);
@ -309,7 +309,7 @@ void func_802E20E8(Actor *this){
&& local->unkB && local->unkB
){ ){
func_8030E878(SFX_8F_SNOWBALL_FLYING, randf2(0.95f, 1.05f), 30000, this->position, 800.0f, 3050.0f); func_8030E878(SFX_8F_SNOWBALL_FLYING, randf2(0.95f, 1.05f), 30000, this->position, 800.0f, 3050.0f);
func_802C3C88((GenMethod_1)func_802E1B24, (s32)this->marker); __spawnqueue_add_1((GenMethod_1)func_802E1B24, (s32)this->marker);
local->unk9 = FALSE; local->unk9 = FALSE;
} }

View File

@ -298,7 +298,7 @@ void func_802C4C14(Actor *this){
return; return;
if(!this->initialized){ if(!this->initialized){
func_802C3C88(func_802C4BB4, this->marker); __spawnqueue_add_1(func_802C4BB4, this->marker);
func_802C7318(this); func_802C7318(this);
this->unk130 = func_802C71F0; this->unk130 = func_802C71F0;
if(sp84 == 0){ if(sp84 == 0){

View File

@ -183,7 +183,7 @@ void func_8035B824(Actor *this){
func_80328B8C(this, 4, 0.01f, 1); func_80328B8C(this, 4, 0.01f, 1);
actor_loopAnimation(this); actor_loopAnimation(this);
func_80328CEC(this, (s32)this->yaw_moving, 0xA, 0x1E); func_80328CEC(this, (s32)this->yaw_ideal, 0xA, 0x1E);
this->unk28 = 4.0f; this->unk28 = 4.0f;
local->unk4 = randf2(2.0f, 4.5f); local->unk4 = randf2(2.0f, 4.5f);
@ -193,7 +193,7 @@ void func_8035B824(Actor *this){
void func_8035B8A8(Actor *this){ void func_8035B8A8(Actor *this){
func_80328B8C(this, 5, 0.01f, 1); func_80328B8C(this, 5, 0.01f, 1);
actor_loopAnimation(this); actor_loopAnimation(this);
func_80328CEC(this, (s32)this->yaw_moving, 0xE1, 0x87); func_80328CEC(this, (s32)this->yaw_ideal, 0xE1, 0x87);
} }
void func_8035B900(Actor *this){ void func_8035B900(Actor *this){
@ -232,7 +232,7 @@ void func_8035B900(Actor *this){
} }
break; break;
case 2: //L8035BA98 case 2: //L8035BA98
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_8035B444(this, 4.0f); func_8035B444(this, 4.0f);
if(actor_animationIsAt(this, 0.99f)){ if(actor_animationIsAt(this, 0.99f)){
func_8035B75C(this); func_8035B75C(this);
@ -243,7 +243,7 @@ void func_8035B900(Actor *this){
if((sp30 & 0x3F) == 7 && randf() < 0.7){ if((sp30 & 0x3F) == 7 && randf() < 0.7){
func_8030E878(0x3F4, randf2(1.0f, 1.2f), 32000, this->position, this->scale*400.0f, this->scale*1800.0f); func_8030E878(0x3F4, randf2(1.0f, 1.2f), 32000, this->position, this->scale*400.0f, this->scale*1800.0f);
}//L8035BB6C }//L8035BB6C
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
if(!func_8035B3E4(this) || !func_8035B444(this, 5.0f)){ if(!func_8035B3E4(this) || !func_8035B444(this, 5.0f)){
func_8035B674(this); func_8035B674(this);
} }

View File

@ -224,7 +224,7 @@ void __chicecube_die(ActorMarker *marker, ActorMarker *other_marker){
func_8035A04C(actor->position, 12, ASSET_505_MODEL_ICECUBE_CHUNK, actor->scale); func_8035A04C(actor->position, 12, ASSET_505_MODEL_ICECUBE_CHUNK, actor->scale);
func_8035A228(actor->position, 6, ASSET_700_SPRITE_DUST, actor->scale); func_8035A228(actor->position, 6, ASSET_700_SPRITE_DUST, actor->scale);
if(actor->unkF4_8 != 1){ if(actor->unkF4_8 != 1){
func_802C3C88(__chicecube_spawnHalfCubes, actor->marker); __spawnqueue_add_1(__chicecube_spawnHalfCubes, actor->marker);
} }
marker_despawn(actor->marker); marker_despawn(actor->marker);
} }

View File

@ -83,7 +83,7 @@ void func_802C7B8C(Actor *this, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5
timedFunc_set_4(0.6f, (TFQM4)func_802C7AF8, (s32)this->position[0], (s32)this->position[1], (s32)this->position[2], arg4); timedFunc_set_4(0.6f, (TFQM4)func_802C7AF8, (s32)this->position[0], (s32)this->position[1], (s32)this->position[2], arg4);
timedFunc_set_2(0.6f, (TFQM2)func_802C7AB0, (s32)this->marker, arg5); timedFunc_set_2(0.6f, (TFQM2)func_802C7AB0, (s32)this->marker, arg5);
timedFunc_set_0(1.0f, (TFQM0)func_802BE720); timedFunc_set_0(1.0f, (TFQM0)func_802BE720);
timedFunc_set_1(3.9f, (TFQM1)func_802C7B6C, arg4); timedFunc_set_1(3.9f, (GenMethod_1)func_802C7B6C, arg4);
mapSpecificFlags_set(arg1, 1); mapSpecificFlags_set(arg1, 1);
} }
} }
@ -95,7 +95,7 @@ void func_802C7CA4(Actor *this){
if(360.0f <= this->yaw){ if(360.0f <= this->yaw){
this->yaw -= 360.0f; this->yaw -= 360.0f;
} }
this->yaw_moving = this->yaw; this->yaw_ideal = this->yaw;
} }
//chjiggy_draw //chjiggy_draw

View File

@ -324,7 +324,7 @@ void func_802D9D60(Actor *this){
this->unk38_0 = TRUE; this->unk38_0 = TRUE;
nodeprop_getPosition(other, this->unk1C); nodeprop_getPosition(other, this->unk1C);
} }
func_802C3C88(func_802D9C54, this->marker); __spawnqueue_add_1(func_802D9C54, this->marker);
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
this->marker->collidable = FALSE; this->marker->collidable = FALSE;
this->initialized = TRUE; this->initialized = TRUE;
@ -345,7 +345,7 @@ void func_802D9D60(Actor *this){
func_8024E55C(0, sp50);//get face buttons press counters func_8024E55C(0, sp50);//get face buttons press counters
switch(this->state){ switch(this->state){
case 1://L802D9F70 case 1://L802D9F70
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if(func_8028F20C() && func_8028F0D4() && !func_8028EC04()){ if(func_8028F20C() && func_8028F0D4() && !func_8028EC04()){
if( this->unkF4_8 == 0x12 if( this->unkF4_8 == 0x12
@ -370,7 +370,7 @@ void func_802D9D60(Actor *this){
break; break;
case 2://L802DA0A0 case 2://L802DA0A0
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if( 0.0 < animctrl_getAnimTimer(this->animctrl) if( 0.0 < animctrl_getAnimTimer(this->animctrl)
&& animctrl_getAnimTimer(this->animctrl) < 0.16 && animctrl_getAnimTimer(this->animctrl) < 0.16
@ -396,7 +396,7 @@ void func_802D9D60(Actor *this){
} }
break; break;
case 3://L802DA210 case 3://L802DA210
this->yaw_moving = func_80329784(this); this->yaw_ideal = func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if( ( actor_animationIsAt(this, 0.37f) if( ( actor_animationIsAt(this, 0.37f)
|| actor_animationIsAt(this, 0.66f) || actor_animationIsAt(this, 0.66f)

View File

@ -475,7 +475,7 @@ void func_802C3BF8(void (* arg0)(void)){
} }
} }
void func_802C3C88(GenMethod_1 arg0, s32 arg1){ void __spawnqueue_add_1(GenMethod_1 arg0, s32 arg1){
u32 tmp = (map_get() == MAP_90_GL_BATTLEMENTS)? 0x32: 0xF; u32 tmp = (map_get() == MAP_90_GL_BATTLEMENTS)? 0x32: 0xF;
if(tmp != D_80365DC4){ if(tmp != D_80365DC4){
D_80365DC8[D_80365DC4].func0 = (void (*)(void))arg0; D_80365DC8[D_80365DC4].func0 = (void (*)(void))arg0;

View File

@ -75,7 +75,7 @@ void func_802CAA44(Actor *this){
if(map_get() == MAP_12_GV_GOBIS_VALLEY){ if(map_get() == MAP_12_GV_GOBIS_VALLEY){
this->unk6C = 352.0f; this->unk6C = 352.0f;
this->pitch = 352.0f; this->pitch = 352.0f;
this->yaw_moving = 90.0f; this->yaw_ideal = 90.0f;
this->yaw = 90.0f; this->yaw = 90.0f;
} }
} }

View File

@ -61,7 +61,7 @@ void func_802CB078(Actor *this) {
void func_802CB140(Actor *this) { void func_802CB140(Actor *this) {
func_80328A84(this, 2U); func_80328A84(this, 2U);
func_802CB040(this); func_802CB040(this);
func_80328CEC(this, (s32) this->yaw_moving, 135, 175); func_80328CEC(this, (s32) this->yaw_ideal, 135, 175);
this->unk38_31 = 150; this->unk38_31 = 150;
} }
@ -254,7 +254,7 @@ void func_802CBAAC(Actor *this) {
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;
} }
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
return; return;
} }
@ -319,7 +319,7 @@ void func_802CBAAC(Actor *this) {
break; break;
case 3: //L802CBF44 case 3: //L802CBF44
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if (func_80329480(this)) { if (func_80329480(this)) {
func_80328A84(this, 4); func_80328A84(this, 4);
@ -328,7 +328,7 @@ void func_802CBAAC(Actor *this) {
break; break;
case 8: //L802CBF9C case 8: //L802CBF9C
this->yaw_moving = func_80329784(this) + 90.0; this->yaw_ideal = func_80329784(this) + 90.0;
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if (func_80329480(this)) { if (func_80329480(this)) {
func_80328A84(this, 9); func_80328A84(this, 9);
@ -340,7 +340,7 @@ void func_802CBAAC(Actor *this) {
case 4: //L802CC024 case 4: //L802CC024
if ((func_8023DB5C() & 0xF) == 9) { if ((func_8023DB5C() & 0xF) == 9) {
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
} }
func_80328FB0(this, 7.0f); func_80328FB0(this, 7.0f);
if (func_8032CA80(this, (this->modelCacheIndex == 0xF2)? 0xD : 0)) { if (func_8032CA80(this, (this->modelCacheIndex == 0xF2)? 0xD : 0)) {

View File

@ -166,7 +166,7 @@ void func_8028B9A8(s32 arg0){
} }
void func_8028BA00(s32 arg0){ void func_8028BA00(s32 arg0){
func_802C3C88(func_8028B9A8, arg0); __spawnqueue_add_1(func_8028B9A8, arg0);
if(arg0); if(arg0);
} }

View File

@ -53,7 +53,7 @@ void func_802D0A38(Actor *this){
void func_802D0AB8(Actor *this) { void func_802D0AB8(Actor *this) {
func_80328B8C(this, 1, 0.0f, 0); func_80328B8C(this, 1, 0.0f, 0);
func_802D0A00(this); func_802D0A00(this);
func_80328CEC(this, (s32) this->yaw_moving, 0x87, 0xAF); func_80328CEC(this, (s32) this->yaw_ideal, 0x87, 0xAF);
this->unk38_31 = 0x1E; this->unk38_31 = 0x1E;
} }
@ -121,7 +121,7 @@ void func_802D0F30(ActorMarker *marker, ActorMarker *other_marker) {
this = marker_getActor(marker); this = marker_getActor(marker);
FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32736, this->position, 1250, 2500); FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32736, this->position, 1250, 2500);
func_802C3C88((GenMethod_1)func_802D0B24, reinterpret_cast(s32, this)); __spawnqueue_add_1((GenMethod_1)func_802D0B24, reinterpret_cast(s32, this));
func_802D0B54(this); func_802D0B54(this);
func_802D0CB4(this); func_802D0CB4(this);
func_802D0DDC(this, ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE, 2); func_802D0DDC(this, ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE, 2);
@ -172,7 +172,7 @@ void chshrapnel_update(Actor *this) {
break; break;
case 2: case 2:
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if (func_80329480(this)) { if (func_80329480(this)) {
if (250.0 > ABS(player_position[1] - this->unk1C[1])) { if (250.0 > ABS(player_position[1] - this->unk1C[1])) {
@ -185,7 +185,7 @@ void chshrapnel_update(Actor *this) {
break; break;
case 3: case 3:
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
func_80328FB0(this, this->unk28 / 2); func_80328FB0(this, this->unk28 / 2);
this->unk28 = MIN( 50.0, (this->unk28 + tick)); this->unk28 = MIN( 50.0, (this->unk28 + tick));
if ((250.0 <= ABS(player_position[1] - this->unk1C[1])) || !func_80329054(this, 0)) { if ((250.0 <= ABS(player_position[1] - this->unk1C[1])) || !func_80329054(this, 0)) {

View File

@ -1141,7 +1141,7 @@ void func_802D6264(f32 arg0, enum map_e arg1, s32 arg2, s32 arg3, s32 arg4, enum
D_803676A0 = 0; D_803676A0 = 0;
if(arg1 != D_80367694){ if(arg1 != D_80367694){
timedFunc_set_1(arg0, (TFQM1) func_802D61FC, arg1); timedFunc_set_1(arg0, (GenMethod_1) func_802D61FC, arg1);
} }
else{ else{
timedFunc_set_0(arg0, func_802D63D4); timedFunc_set_0(arg0, func_802D63D4);

View File

@ -144,7 +144,7 @@ void func_802D7C24(ActorMarker *marker, ActorMarker *other_marker) {
break; break;
} }
if (var_a3 != 0) { if (var_a3 != 0) {
timedFunc_set_1(0.5f, (TFQM1)func_802D7BE8, var_a3); timedFunc_set_1(0.5f, (GenMethod_1)func_802D7BE8, var_a3);
} }
func_8028F030(this->modelCacheIndex); func_8028F030(this->modelCacheIndex);
marker_despawn(marker); marker_despawn(marker);

View File

@ -89,5 +89,5 @@ void func_802D8B20(enum actor_e actor_id){
} }
void func_802D8BE4(bool gold_feather){ void func_802D8BE4(bool gold_feather){
func_802C3C88(func_802D8B20, (!gold_feather) ? 0x1FF : 0x200); __spawnqueue_add_1(func_802D8B20, (!gold_feather) ? 0x1FF : 0x200);
} }

View File

@ -79,7 +79,7 @@ void func_802D8C98(Actor *this, s32 arg1) {
//collectItem //collectItem
bool func_802D8D48(Actor* actor, u32 arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){ bool func_802D8D48(Actor* actor, u32 arg1, enum asset_e dialogId, enum comusic_e sfxId, enum item_e itemId, f32 arg5){
func_8025A6EC(sfxId,32000); func_8025A6EC(sfxId,32000);
timedFunc_set_1(0.75f, (TFQM1)func_8035644C, arg1); timedFunc_set_1(0.75f, (GenMethod_1)func_8035644C, arg1);
if(!func_802FADD4(0x1b)){ if(!func_802FADD4(0x1b)){
item_inc(itemId); item_inc(itemId);
} else { } else {

View File

@ -87,7 +87,7 @@ void func_802DAE40(Actor *this) {
func_80328A84(this, 2); func_80328A84(this, 2);
func_802DAE10(this); func_802DAE10(this);
func_80328CEC(this, (s32) this->yaw_moving, (s32) (this->yaw + 160.0f) % 360, (s32) (this->yaw + 200.0f) % 360); func_80328CEC(this, (s32) this->yaw_ideal, (s32) (this->yaw + 160.0f) % 360, (s32) (this->yaw + 200.0f) % 360);
this->unk38_31 = 0x5A; this->unk38_31 = 0x5A;
} }
@ -127,7 +127,7 @@ bool func_802DAFBC(Actor *this) {
if (temp_v0 & 4) { if (temp_v0 & 4) {
func_8032C9E0(sp38); func_8032C9E0(sp38);
sp34 = func_80257248(sp38, this->position); sp34 = func_80257248(sp38, this->position);
if (((func_8023DB5C() - local->unk38) == 0x1E) && ((sp34 - this->yaw_moving < 15.0f) && (sp34 - this->yaw_moving > -15.0f))) { if (((func_8023DB5C() - local->unk38) == 0x1E) && ((sp34 - this->yaw_ideal < 15.0f) && (sp34 - this->yaw_ideal > -15.0f))) {
func_802DAF2C(this->position, this->yaw, this->unk28); func_802DAF2C(this->position, this->yaw, this->unk28);
} else { } else {
func_80328CEC(this, (s32) sp34, 0, 0xF); func_80328CEC(this, (s32) sp34, 0, 0xF);
@ -139,13 +139,13 @@ bool func_802DAFBC(Actor *this) {
func_802DAE10(this); func_802DAE10(this);
this->unk38_31 = 0x5A; this->unk38_31 = 0x5A;
func_80328B8C(this, 2, sp44, 1); func_80328B8C(this, 2, sp44, 1);
func_80328CEC(this, (s32) this->yaw_moving, 0xB3, 0xB4); func_80328CEC(this, (s32) this->yaw_ideal, 0xB3, 0xB4);
this->unk38_0 = TRUE; this->unk38_0 = TRUE;
} else { } else {
func_802DAE10(this); func_802DAE10(this);
this->unk38_31 = 0x5A; this->unk38_31 = 0x5A;
func_80328B8C(this, 8, sp44, 1); func_80328B8C(this, 8, sp44, 1);
func_80328CEC(this, (s32) this->yaw_moving, 120, 180); func_80328CEC(this, (s32) this->yaw_ideal, 120, 180);
} }
return TRUE; return TRUE;
} }
@ -271,7 +271,7 @@ void func_802DB5A0(Actor *this) {
phi_f14 -= 1.0; phi_f14 -= 1.0;
} }
func_80328B8C(this, 2, phi_f14, 1); func_80328B8C(this, 2, phi_f14, 1);
this->yaw_moving = this->yaw; this->yaw_ideal = this->yaw;
func_802DAE10(this); func_802DAE10(this);
} }
break; break;
@ -281,13 +281,13 @@ void func_802DB5A0(Actor *this) {
func_802DB3B0(this); func_802DB3B0(this);
if (this->unk38_31 == 0) { if (this->unk38_31 == 0) {
if (!(func_8023DB5C() & 0xF)) { if (!(func_8023DB5C() & 0xF)) {
func_80328CEC(this, this->yaw_moving, 0xA, 0x14); func_80328CEC(this, this->yaw_ideal, 0xA, 0x14);
} }
if (!(func_8023DB5C() & 7)) { if (!(func_8023DB5C() & 7)) {
func_80328B38(this, 1, 0.02f); func_80328B38(this, 1, 0.02f);
} }
if( !(func_8023DB5C() & 0xF) if( !(func_8023DB5C() & 0xF)
&& func_80329078(this, (s32) this->yaw_moving, 0x96) && func_80329078(this, (s32) this->yaw_ideal, 0x96)
) { ) {
if (func_80328B38(this, 3, 0.13f) != 0) { if (func_80328B38(this, 3, 0.13f) != 0) {
this->unk28 = randf2((f32)local->unk8, (f32)local->unk9); this->unk28 = randf2((f32)local->unk8, (f32)local->unk9);
@ -300,7 +300,7 @@ void func_802DB5A0(Actor *this) {
case 6://L802DB8C0 case 6://L802DB8C0
func_802DB264(this); func_802DB264(this);
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
if (func_80329480(this)) { if (func_80329480(this)) {
this->unk10_12 = local->unkC_31; this->unk10_12 = local->unkC_31;
@ -323,7 +323,7 @@ void func_802DB5A0(Actor *this) {
if (this->unk10_12 < local->unkC_31) { if (this->unk10_12 < local->unkC_31) {
animctrl_setDuration(this->animctrl, this->unk18[4].duration - ((local->unkC_31 - this->unk10_12) * 0.1)); animctrl_setDuration(this->animctrl, this->unk18[4].duration - ((local->unkC_31 - this->unk10_12) * 0.1));
} }
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
if (!func_803294B4(this, 0x21)) { if (!func_803294B4(this, 0x21)) {
func_80328A84(this, 6); func_80328A84(this, 6);
} }
@ -348,7 +348,7 @@ void func_802DB5A0(Actor *this) {
case 7://L802DBB4C case 7://L802DBB4C
if (this->unk38_31 == 0) { if (this->unk38_31 == 0) {
if ((func_8023DB5C() & 0xF) == 9) { if ((func_8023DB5C() & 0xF) == 9) {
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
} }
} }
func_80328FB0(this, (f32)local->unkB); func_80328FB0(this, (f32)local->unkB);

View File

@ -209,7 +209,7 @@ void func_802E1168(Actor *this) {
case 3: //802E13AC case 3: //802E13AC
func_803297FC(this, &sp44, &sp40); func_803297FC(this, &sp44, &sp40);
this->yaw_moving = sp40; this->yaw_ideal = sp40;
this->unk6C = func_802E10F0(sp44); this->unk6C = func_802E10F0(sp44);
func_80328FB0(this, 4.0f); func_80328FB0(this, 4.0f);
func_80328FF0(this, 3.0f); func_80328FF0(this, 3.0f);
@ -221,7 +221,7 @@ void func_802E1168(Actor *this) {
case 4: //802E1424 case 4: //802E1424
func_803297FC(this, &sp44, &sp40); func_803297FC(this, &sp44, &sp40);
this->yaw_moving = sp40; this->yaw_ideal = sp40;
this->unk6C = func_802E10F0(sp44); this->unk6C = func_802E10F0(sp44);
func_80328FB0(this, this->unk28 / 2); func_80328FB0(this, this->unk28 / 2);
func_80328FF0(this, this->unk28 / 2); func_80328FF0(this, this->unk28 / 2);
@ -235,7 +235,7 @@ void func_802E1168(Actor *this) {
} }
if (actor_animationIsAt(this, 0.99f)) { if (actor_animationIsAt(this, 0.99f)) {
func_802E0CD0(this); func_802E0CD0(this);
func_80328CEC(this, (s32) this->yaw_moving, 0x87, 0xAF); func_80328CEC(this, (s32) this->yaw_ideal, 0x87, 0xAF);
this->unk38_31 = 0x78; this->unk38_31 = 0x78;
func_80328B8C(this, 2, 0.0f, 1); func_80328B8C(this, 2, 0.0f, 1);
actor_loopAnimation(this); actor_loopAnimation(this);

View File

@ -114,6 +114,7 @@ void func_802E28D0(Actor *this) {
marker_setCollisionScripts(this->marker, NULL, NULL, func_802E28A4); marker_setCollisionScripts(this->marker, NULL, NULL, func_802E28A4);
if(local->unk0 == 0){ if(local->unk0 == 0){
player_getPosition(this->unk1C); player_getPosition(this->unk1C);
local->unk0 = 1;
return; return;
} }
this->initialized = TRUE; this->initialized = TRUE;
@ -170,12 +171,12 @@ void func_802E28D0(Actor *this) {
break; break;
case 2: case 2:
this->marker->unk40_22 = NOT(func_8028F170()); this->marker->unk40_22 = NOT(func_8028F170());
this->velocity[0] += 0.7; this->velocity[0] *= 0.7;\
this->velocity[1] += 0.7; this->velocity[1] *= 0.7;\
this->velocity[2] += 0.7; this->velocity[2] *= 0.7;
this->position[0] += this->velocity[0]; this->position[0] = this->position[0] + this->velocity[0];
this->position[1] += this->velocity[1]; this->position[1] = this->position[1] + this->velocity[1];
this->position[2] += this->velocity[2]; this->position[2] = this->position[2] + this->velocity[2];
break; break;
} }
} }

View File

@ -133,7 +133,7 @@ void func_8028DE6C(enum actor_e actor_id){
func_802948F8(marker); func_802948F8(marker);
} }
else{ else{
func_802C3C88(func_8028DE0C, carriedObject_getActorID()); __spawnqueue_add_1(func_8028DE0C, carriedObject_getActorID());
} }
} }

View File

@ -7,6 +7,8 @@ typedef struct {
f32 unkC[3]; f32 unkC[3];
}Struct_core2_72060_0; }Struct_core2_72060_0;
extern f32 func_8024C788();
extern int func_8024DD34(f32, f32, f32);
extern void func_80251B5C(f32, f32, f32); extern void func_80251B5C(f32, f32, f32);
extern void func_80251F8C(f32); extern void func_80251F8C(f32);
extern void func_8025208C(f32); extern void func_8025208C(f32);
@ -75,7 +77,89 @@ void func_802F9134(s32 gfx){
} }
} }
#ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F919C.s") #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F919C.s")
#else
void func_802F919C(void) {
f32 temp_f20;
s32 sp68;
s32 var_v1;
s32 sp60;
struct4Ds *sp5C;
f32 sp58;
f32 sp4C[3];
f32 var_f20;
s32 sp44;
struct4Ds *sp40;
if (D_80369280 != NULL) {
if (func_802BEF64() != 0) {
D_80369284 = 0;
return;
}
temp_f20 = time_getDelta();
sp60 = (func_8023DB5C() & 1) * 2;
player_getPosition(D_80381040);
D_80369280->unkC[0] = D_80381040[0] - D_80369280->unk0[0];
D_80369280->unkC[1] = D_80381040[1] - D_80369280->unk0[1];
D_80369280->unkC[2] = D_80381040[2] - D_80369280->unk0[2];
D_80369280->unk0[0] = D_80381040[0];
D_80369280->unk0[1] = D_80381040[1];
D_80369280->unk0[2] = D_80381040[2];
D_8038104C = D_80381040[1] - 300.0f;
for(sp68 = 0; sp68 < D_80369284; sp68++){
sp5C = D_80369280->unk1C + sp68;
for(var_v1 = 0; var_v1 < 3; var_v1++){
sp5C->unk0[var_v1] += sp5C->unkC[var_v1] * temp_f20;
}
sp5C->unkC[sp60] += ((randf() * 30.0) - 15.0);
}
D_8036928C++;
if (D_8036928C < D_80369284) {
if (ml_vec3f_distance(D_80369280[0].unk1C[D_8036928C].unk0, D_80381040) > 1300.0f) {
func_802F9134(D_8036928C);
}
} else {
D_8036928C = 0;
}
if (D_80369280->unk18 == 1) {
if (D_80369284 < 100) {
sp40 = D_80369280->unk1C + D_80369284;
D_80369284++;
sp58 = randf2(100.0f, 1300.0f);
sp4C[0] = 0.0f;
sp4C[1] = randf() * 200.0f + 200.0f;
sp4C[2] = -sp58;
if ((D_80369280->unkC[0]*D_80369280->unkC[0] + D_80369280->unkC[1]*D_80369280->unkC[1] + D_80369280->unkC[2]*D_80369280->unkC[2]) < 25.0f) {
var_f20 = 100.0f;
} else {
var_f20 = 70.0f;
}
ml_vec3f_yaw_rotate_copy(sp4C, sp4C, func_8024C788() + randf2(-var_f20, var_f20));
sp4C[0] += D_80381040[0];
sp4C[1] += D_80381040[1];
sp4C[2] += D_80381040[2];
if (sp58 < 650.0) {
for(sp44 = 0; sp44 < 5 && func_8024DD34(sp4C[0], sp4C[1] - 10.0f, sp4C[2]) ; sp44++){
sp4C[1] += 200.0f;
}
}
sp40->unk0[0] = sp4C[0];
sp40->unk0[1] = sp4C[1];
sp40->unk0[2] = sp4C[2];
sp40->unkC[0] = 0.0f;
sp40->unkC[1] = randf2(-150.0f, -50.0f);
sp40->unkC[2] = 0.0f;
}
}
}
}
#endif
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F962C.s") #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_72060/func_802F962C.s")
// void func_802F962C(Gfx **gfx, Mtx **mtx, Vtx **vtx) { // void func_802F962C(Gfx **gfx, Mtx **mtx, Vtx **vtx) {

View File

@ -243,10 +243,10 @@ void func_802FE844(s32 arg0, struct8s *arg1){
func_803463D4(ITEM_13_EMPTY_HONEYCOMB, -6); func_803463D4(ITEM_13_EMPTY_HONEYCOMB, -6);
timedFunc_set_2(0.25f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000); timedFunc_set_2(0.25f, (TFQM2)func_8025A6EC, COMUSIC_2B_DING_B, 28000);
func_803463D4(ITEM_14_HEALTH, 0); func_803463D4(ITEM_14_HEALTH, 0);
timedFunc_set_1(1.25f, (TFQM1)item_inc, ITEM_15_HEALTH_TOTAL); timedFunc_set_1(1.25f, (GenMethod_1)item_inc, ITEM_15_HEALTH_TOTAL);
timedFunc_set_1(1.25f, (TFQM1)func_8030E484, SFX_3EA_UNKNOWN); timedFunc_set_1(1.25f, (GenMethod_1)func_8030E484, SFX_3EA_UNKNOWN);
timedFunc_set_2(1.25f, (TFQM2)item_set, ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL)+1); timedFunc_set_2(1.25f, (TFQM2)item_set, ITEM_14_HEALTH, item_getCount(ITEM_15_HEALTH_TOTAL)+1);
timedFunc_set_1(1.5f, (TFQM1)gcpausemenu_80314AC8, 1); timedFunc_set_1(1.5f, (GenMethod_1)gcpausemenu_80314AC8, 1);
} }
break; break;
case 2://L802FECD4 case 2://L802FECD4

View File

@ -787,7 +787,7 @@ Actor *actor_new(s32 (* position)[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
D_80383390->position_z = (f32)(*position)[2]; D_80383390->position_z = (f32)(*position)[2];
D_80383390->unkF4_8 = 0; D_80383390->unkF4_8 = 0;
D_80383390->yaw = (f32) yaw; D_80383390->yaw = (f32) yaw;
D_80383390->yaw_moving = (f32) yaw; D_80383390->yaw_ideal = (f32) yaw;
D_80383390->pitch = 0.0f; D_80383390->pitch = 0.0f;
D_80383390->roll = 0.0f; D_80383390->roll = 0.0f;
D_80383390->unk6C = 0.0f; D_80383390->unk6C = 0.0f;
@ -1335,7 +1335,7 @@ void func_80328C64(Actor * this, int arg1){
int retVal = arg1; int retVal = arg1;
while(retVal < 0) retVal += 0x168; while(retVal < 0) retVal += 0x168;
while(retVal >= 0x168) retVal -= 0x168; while(retVal >= 0x168) retVal -= 0x168;
this->yaw_moving = retVal; this->yaw_ideal = retVal;
} }
void func_80328CA8(Actor *arg0, s32 angle) { void func_80328CA8(Actor *arg0, s32 angle) {
@ -1395,7 +1395,7 @@ f32 func_80328DCC(Actor *this, f32 angle, f32 angle_ideal, s32 arg3) {
} }
void func_80328FB0(Actor *this, f32 arg1){ void func_80328FB0(Actor *this, f32 arg1){
this->yaw = func_80328DCC(this, this->yaw, this->yaw_moving, (s32)arg1); this->yaw = func_80328DCC(this, this->yaw, this->yaw_ideal, (s32)arg1);
} }
void func_80328FF0(Actor *arg0, f32 arg1) { void func_80328FF0(Actor *arg0, f32 arg1) {
@ -1502,14 +1502,14 @@ bool func_8032944C(Actor *this){
bool func_80329480(Actor *this){ bool func_80329480(Actor *this){
s32 v1; s32 v1;
v1 = this->yaw - this->yaw_moving; v1 = this->yaw - this->yaw_ideal;
return ((-3 <= v1) && (v1 <= 3)); return ((-3 <= v1) && (v1 <= 3));
} }
bool func_803294B4(Actor *this, s32 arg1){ bool func_803294B4(Actor *this, s32 arg1){
s32 v1; s32 v1;
v1 = this->yaw - this->yaw_moving; v1 = this->yaw - this->yaw_ideal;
return ((-arg1 <= v1) && (v1 <= arg1)); return ((-arg1 <= v1) && (v1 <= arg1));
} }
@ -1938,7 +1938,7 @@ void func_8032A88C(Actor *arg0) {
Actorlocal_Core2_9E370 *sp20; Actorlocal_Core2_9E370 *sp20;
sp20 = &arg0->local; sp20 = &arg0->local;
arg0->yaw_moving = (f32) func_803297C8(arg0, sp20->unk0); arg0->yaw_ideal = (f32) func_803297C8(arg0, sp20->unk0);
func_80328FB0(arg0, 6.0f); func_80328FB0(arg0, 6.0f);
func_80329030(arg0, 0); func_80329030(arg0, 0);
if ((((arg0->position[0] - sp20->unk0[0]) * (arg0->position[0] - sp20->unk0[0])) + ((arg0->position[2] - sp20->unk0[2]) * (arg0->position[2] - sp20->unk0[2]))) <= 144.0f) { if ((((arg0->position[0] - sp20->unk0[0]) * (arg0->position[0] - sp20->unk0[0])) + ((arg0->position[2] - sp20->unk0[2]) * (arg0->position[2] - sp20->unk0[2]))) <= 144.0f) {

View File

@ -773,7 +773,7 @@ s32 func_803422D4(Actor *arg0, Union_glspline *arg1, glspline_list *arg2) {
if (arg0->marker->unk14_20 == 0x12) { if (arg0->marker->unk14_20 == 0x12) {
arg0->yaw = (f32) func_80342244((s32) arg0->yaw); arg0->yaw = (f32) func_80342244((s32) arg0->yaw);
} }
arg0->yaw_moving = arg0->yaw; arg0->yaw_ideal = arg0->yaw;
} }
if (sp4C != -9999.0f) { if (sp4C != -9999.0f) {
arg0->pitch = sp4C; arg0->pitch = sp4C;
@ -932,7 +932,7 @@ s32 func_803422D4(Actor *arg0, Union_glspline *arg1, glspline_list *arg2) {
arg0->unk38_13 = func_80342244(arg0->unk38_13); arg0->unk38_13 = func_80342244(arg0->unk38_13);
arg0->unk38_21 = func_80342244(arg0->unk38_21); arg0->unk38_21 = func_80342244(arg0->unk38_21);
} }
arg0->yaw = arg0->yaw_moving = (f32) arg0->unk38_13; arg0->yaw = arg0->yaw_ideal = (f32) arg0->unk38_13;
arg0->pitch = arg0->unk6C = (f32) arg0->unk78_31; arg0->pitch = arg0->unk6C = (f32) arg0->unk78_31;
} }
if (arg1->t1.unk4.bit17 & 2) { if (arg1->t1.unk4.bit17 & 2) {
@ -942,9 +942,9 @@ s32 func_803422D4(Actor *arg0, Union_glspline *arg1, glspline_list *arg2) {
} }
if (!arg0->unk10_4) { if (!arg0->unk10_4) {
if (arg0->unk10_8) { if (arg0->unk10_8) {
arg0->yaw_moving = (f32)arg1->t1.unkC.bit31; arg0->yaw_ideal = (f32)arg1->t1.unkC.bit31;
if (arg0->marker->unk14_20 == 0x12) { if (arg0->marker->unk14_20 == 0x12) {
arg0->yaw_moving = (f32) func_80342244((s32) arg0->yaw_moving); arg0->yaw_ideal = (f32) func_80342244((s32) arg0->yaw_ideal);
} }
} }
if (arg0->unk10_7) { if (arg0->unk10_7) {
@ -960,7 +960,7 @@ void func_803430B4(Actor *arg0) {
f32 d_yaw; f32 d_yaw;
if ((arg0->marker->unk14_20 == 0x12) && (arg0->unk138_30 == 1)) { if ((arg0->marker->unk14_20 == 0x12) && (arg0->unk138_30 == 1)) {
d_yaw = arg0->yaw_moving - arg0->yaw; d_yaw = arg0->yaw_ideal - arg0->yaw;
while (d_yaw >= 360.0f) { d_yaw -= 360.0f; } while (d_yaw >= 360.0f) { d_yaw -= 360.0f; }
while (d_yaw < 0.0f) { d_yaw += 360.0f; } while (d_yaw < 0.0f) { d_yaw += 360.0f; }
@ -986,7 +986,7 @@ void func_803431D0(Actor *arg0, s32 arg1, s32 arg2, s32 arg3) {
func_8032417C(func_80342038(arg0->unk44_14), arg0->unk48, sp64, sp58); func_8032417C(func_80342038(arg0->unk44_14), arg0->unk48, sp64, sp58);
if (arg1 & 1) { if (arg1 & 1) {
if (arg1 & 0x100) { if (arg1 & 0x100) {
arg0->yaw_moving = sp58[1]; arg0->yaw_ideal = sp58[1];
} }
if (arg1 & 0x200) { if (arg1 & 0x200) {
arg0->unk6C = sp58[0]; arg0->unk6C = sp58[0];
@ -994,9 +994,9 @@ void func_803431D0(Actor *arg0, s32 arg1, s32 arg2, s32 arg3) {
} else { } else {
if (arg1 & 0x100) { if (arg1 & 0x100) {
if (sp58[1] >= 180.0f) { if (sp58[1] >= 180.0f) {
arg0->yaw_moving = sp58[1] - 180.0f; arg0->yaw_ideal = sp58[1] - 180.0f;
} else { } else {
arg0->yaw_moving = sp58[1] + 180.0f; arg0->yaw_ideal = sp58[1] + 180.0f;
} }
} }
if (arg1 & 0x200) { if (arg1 & 0x200) {
@ -1014,7 +1014,7 @@ void func_803431D0(Actor *arg0, s32 arg1, s32 arg2, s32 arg3) {
} }
sp40[0] = 360.0f - sp40[0]; sp40[0] = 360.0f - sp40[0];
} }
arg0->yaw_moving = sp40[1]; arg0->yaw_ideal = sp40[1];
arg0->unk6C = sp40[0]; arg0->unk6C = sp40[0];
} else { } else {
if ((arg0->unk70 <= arg0->unk48) && (arg0->unk48 < arg0->unk74)) { if ((arg0->unk70 <= arg0->unk48) && (arg0->unk48 < arg0->unk74)) {
@ -1024,7 +1024,7 @@ void func_803431D0(Actor *arg0, s32 arg1, s32 arg2, s32 arg3) {
var_f2 = mlDiffDegF(arg0->unk38_21, arg0->unk38_13) * sp3C + arg0->unk38_13; var_f2 = mlDiffDegF(arg0->unk38_21, arg0->unk38_13) * sp3C + arg0->unk38_13;
while (var_f2 >= 360.0f) { var_f2 -= 360.0f; } while (var_f2 >= 360.0f) { var_f2 -= 360.0f; }
while (var_f2 < 0.0f) { var_f2 += 360.0f; } while (var_f2 < 0.0f) { var_f2 += 360.0f; }
arg0->yaw_moving = var_f2; arg0->yaw_ideal = var_f2;
} }
if (arg1 & 0x1000) { if (arg1 & 0x1000) {
var_f2 = mlDiffDegF(arg0->unk78_22, arg0->unk78_31) * sp3C + arg0->unk78_31; var_f2 = mlDiffDegF(arg0->unk78_22, arg0->unk78_31) * sp3C + arg0->unk78_31;
@ -1133,7 +1133,7 @@ s32 func_803438E0(Actor *actor, s32 arg1, s32 arg2, s32 arg3) {
sp48 = func_803421A4(actor->unk44_14, actor->unk48); sp48 = func_803421A4(actor->unk44_14, actor->unk48);
if (!actor->unk44_1) { if (!actor->unk44_1) {
actor->unk44_1 = TRUE; actor->unk44_1 = TRUE;
actor->yaw = actor->yaw_moving; actor->yaw = actor->yaw_ideal;
actor->pitch = actor->unk6C; actor->pitch = actor->unk6C;
} }
if ((sp4C == sp48) && (sp44 == 0)) { if ((sp4C == sp48) && (sp44 == 0)) {

View File

@ -12,7 +12,7 @@ void func_80347B10(Struct81s *arg0){
} }
void func_80347B54(Struct81s *arg0){ void func_80347B54(Struct81s *arg0){
func_802C3C88((GenMethod_1)func_80347B10, reinterpret_cast(s32, arg0)); __spawnqueue_add_1((GenMethod_1)func_80347B10, reinterpret_cast(s32, arg0));
} }
void func_80347B80(Struct81s *arg0) { void func_80347B80(Struct81s *arg0) {

View File

@ -14,7 +14,7 @@ void func_80347C80(Struct81s *arg0){
} }
void func_80347CC8(Struct81s *arg0){ void func_80347CC8(Struct81s *arg0){
func_802C3C88((GenMethod_1)func_80347C80, reinterpret_cast(s32, arg0)); __spawnqueue_add_1((GenMethod_1)func_80347C80, reinterpret_cast(s32, arg0));
} }
void func_80347CF4(Struct81s *arg0) { void func_80347CF4(Struct81s *arg0) {

View File

@ -79,7 +79,7 @@ void func_80347DF0(Struct81s *arg0){
} }
void func_80347E34(Struct81s *arg0){ void func_80347E34(Struct81s *arg0){
func_802C3C88((GenMethod_1) func_80347DF0, reinterpret_cast(s32, arg0)); __spawnqueue_add_1((GenMethod_1) func_80347DF0, reinterpret_cast(s32, arg0));
} }
void func_80347E60(Struct81s *arg0) { void func_80347E60(Struct81s *arg0) {

View File

@ -212,7 +212,7 @@ void func_8035E84C(Actor *this) {
func_8035E0D0(this); func_8035E0D0(this);
} }
if (func_8034A6FC(0.73f, 0.76f) && func_80329078(this, (s32) this->yaw, 750) ) { if (func_8034A6FC(0.73f, 0.76f) && func_80329078(this, (s32) this->yaw, 750) ) {
this->yaw_moving = this->yaw; this->yaw_ideal = this->yaw;
this->velocity[0] = 35.0f; this->velocity[0] = 35.0f;
this->unk28 = 19.4444447f; this->unk28 = 19.4444447f;
this->unk38_31 = 0x3A; this->unk38_31 = 0x3A;

View File

@ -100,7 +100,7 @@ void func_8035EEC0(Actor *this){
} }
void func_8035EF00(Actor *this, f32 arg1){ void func_8035EF00(Actor *this, f32 arg1){
this->yaw_moving = (f32)func_80329784(this); this->yaw_ideal = (f32)func_80329784(this);
func_80328FB0(this, arg1); func_80328FB0(this, arg1);
} }
@ -248,7 +248,7 @@ void func_8035F138(Actor *this) {
break; break;
} }
this->yaw_moving = (f32)(s32)func_80257204(this->position[0], this->position[2], this->unk1C[0], this->unk1C[2]); this->yaw_ideal = (f32)(s32)func_80257204(this->position[0], this->position[2], this->unk1C[0], this->unk1C[2]);
func_80328FB0(this, 7.0f); func_80328FB0(this, 7.0f);
func_80329030(this, 2); func_80329030(this, 2);
break; break;
@ -270,7 +270,7 @@ void func_8035F138(Actor *this) {
func_8035EE48(this); func_8035EE48(this);
break; break;
} }
this->yaw_moving = this->velocity[0]; this->yaw_ideal = this->velocity[0];
func_80328FB0(this, 7.5f); func_80328FB0(this, 7.5f);
func_80329030(this, 2); func_80329030(this, 2);
break; break;

View File

@ -50,7 +50,7 @@ void func_8035FA48(Actor *this){
void func_8035FA74(Actor *this){ void func_8035FA74(Actor *this){
ActorLocal_Core2_D89E0 *local = (ActorLocal_Core2_D89E0 *)&this->local; ActorLocal_Core2_D89E0 *local = (ActorLocal_Core2_D89E0 *)&this->local;
this->yaw_moving = local->unk4; this->yaw_ideal = local->unk4;
func_80328A84(this, 5); func_80328A84(this, 5);
actor_loopAnimation(this); actor_loopAnimation(this);
} }
@ -197,7 +197,7 @@ void func_8035FFAC(Actor *this, f32 arg1){
void func_80360044(Actor *this) { void func_80360044(Actor *this) {
f32 var_f0; f32 var_f0;
var_f0 = this->yaw_moving - this->yaw; var_f0 = this->yaw_ideal - this->yaw;
if (var_f0 >= 180.0f) { if (var_f0 >= 180.0f) {
var_f0 -= 360.0f; var_f0 -= 360.0f;
} }
@ -308,7 +308,7 @@ f32 func_803603AC(Actor *this, s32 arg1, u8 arg2){
int func_803604E8(Actor *this){ int func_803604E8(Actor *this){
f32 tmp_f0; f32 tmp_f0;
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
tmp_f0 = func_803603AC(this, 170, 1); tmp_f0 = func_803603AC(this, 170, 1);
func_8035FFAC(this, tmp_f0); func_8035FFAC(this, tmp_f0);
if(!func_80360198(this)){ if(!func_80360198(this)){
@ -323,7 +323,7 @@ bool func_8036054C(Actor *this) {
s32 phi_s2; s32 phi_s2;
if (this->unk60 == 0.0f) { if (this->unk60 == 0.0f) {
this->yaw_moving = func_80257204(this->position[0], this->position[2], this->unk1C[0], this->unk1C[2]); this->yaw_ideal = func_80257204(this->position[0], this->position[2], this->unk1C[0], this->unk1C[2]);
func_8035FFAC(this, func_803603AC(this, -110, 2)); func_8035FFAC(this, func_803603AC(this, -110, 2));
} }
else{ else{
@ -341,16 +341,16 @@ bool func_8036054C(Actor *this) {
phi_s1 = 0; phi_s1 = 0;
do{ do{
if (this->unk38_0) { if (this->unk38_0) {
phi_v0 = func_80329140(this, (s32) this->yaw_moving, 0xC8); phi_v0 = func_80329140(this, (s32) this->yaw_ideal, 0xC8);
} else { } else {
phi_v0 = func_80329078(this, (s32) this->yaw_moving, 0xC8); phi_v0 = func_80329078(this, (s32) this->yaw_ideal, 0xC8);
} }
if(phi_v0 == 0){ if(phi_v0 == 0){
phi_s1++; phi_s1++;
this->yaw_moving += 30.0f; this->yaw_ideal += 30.0f;
if (this->yaw_moving >= 360.0f) { if (this->yaw_ideal >= 360.0f) {
this->yaw_moving -= 360.0f; this->yaw_ideal -= 360.0f;
} }
} }
} while ( phi_v0 == 0 && phi_s1 < 0xC); } while ( phi_v0 == 0 && phi_s1 < 0xC);

View File

@ -232,13 +232,13 @@ void gcparade_setState(enum parade_state_e next_state) {
break; break;
case PARADE_STATE_5_WAIT_ON_NAME: case PARADE_STATE_5_WAIT_ON_NAME:
if ((D_803830F0.parade_id == 1) && (D_803830F0.parade_element->exit >= 0)) { if ((D_803830F0.parade_id == 1) && (D_803830F0.parade_element->exit >= 0)) {
timedFunc_set_1(2.0f, (TFQM1)gcparade_setState, PARADE_STATE_6_NAME_DISAPPEAR);// queue state transition timedFunc_set_1(2.0f, (GenMethod_1)gcparade_setState, PARADE_STATE_6_NAME_DISAPPEAR);// queue state transition
} }
break; break;
case PARADE_STATE_7_GOTO_NEXT: case PARADE_STATE_7_GOTO_NEXT:
D_803830F0.indx++; D_803830F0.indx++;
D_803830F0.parade_element++; D_803830F0.parade_element++;
timedFunc_set_1(0.25f, (TFQM1)gcparade_setState, (D_803830F0.indx == D_803830F0.count) ? PARADE_STATE_8_END : PARADE_STATE_3_WARP); timedFunc_set_1(0.25f, (GenMethod_1)gcparade_setState, (D_803830F0.indx == D_803830F0.count) ? PARADE_STATE_8_END : PARADE_STATE_3_WARP);
break; break;
case PARADE_STATE_8_END: case PARADE_STATE_8_END:
func_803204E4(0x1F, 0); func_803204E4(0x1F, 0);
@ -294,13 +294,13 @@ void gcparade_update(void) {
sp34 = 0xA0; sp34 = 0xA0;
if (D_803830F0.parade_element->exit >= 0) if (D_803830F0.parade_element->exit >= 0)
sp34 = 0xA8; sp34 = 0xA8;
timedFunc_set_1(1.0f, (TFQM1)func_80311714, 0); timedFunc_set_1(1.0f, (GenMethod_1)func_80311714, 0);
func_80324DBC(1.0f, D_803830F0.indx + 0x11AF, sp34, NULL, NULL, gcparade_textCallback, NULL); func_80324DBC(1.0f, D_803830F0.indx + 0x11AF, sp34, NULL, NULL, gcparade_textCallback, NULL);
timedFunc_set_1(1.0f, (TFQM1)func_80311714, 1); timedFunc_set_1(1.0f, (GenMethod_1)func_80311714, 1);
} else if (D_803830F0.parade_element->exit >= 0) { } else if (D_803830F0.parade_element->exit >= 0) {
func_8028F918(2); func_8028F918(2);
} }
timedFunc_set_1(1.0f, (TFQM1)gcparade_setState, PARADE_STATE_4_NAME_APPEAR); timedFunc_set_1(1.0f, (GenMethod_1)gcparade_setState, PARADE_STATE_4_NAME_APPEAR);
D_803830F0.unk5 = 1; D_803830F0.unk5 = 1;
} }
} }

View File

@ -13,7 +13,7 @@ typedef struct timed_function_queue_s{
u8 pad5[3]; u8 pad5[3];
union { union {
TFQM0 func0; TFQM0 func0;
TFQM1 func1; GenMethod_1 func1;
TFQM2 func2; TFQM2 func2;
TFQM3 func3; TFQM3 func3;
TFQM4 func4; TFQM4 func4;
@ -174,7 +174,7 @@ void func_80324CFC(f32 time, s32 id, s32 volume){
} }
void func_80324D2C(f32 time, enum comusic_e arg0){ void func_80324D2C(f32 time, enum comusic_e arg0){
timedFunc_set_1(time, (TFQM1) func_80324A48, arg0); timedFunc_set_1(time, (GenMethod_1) func_80324A48, arg0);
} }
void func_80324D54(f32 time, enum sfx_e sfx_id, f32 arg2, s32 arg3, f32 position[3], f32 arg5, f32 arg6){ void func_80324D54(f32 time, enum sfx_e sfx_id, f32 arg2, s32 arg3, f32 position[3], f32 arg5, f32 arg6){
@ -212,11 +212,11 @@ void func_80324DBC(f32 time, enum asset_e text_id, s32 arg2, f32 position[3], Ac
void func_80324E38(f32 time, s32 arg0){ void func_80324E38(f32 time, s32 arg0){
timedFunc_set_1(time, (TFQM1) func_80324BA0, arg0); timedFunc_set_1(time, (GenMethod_1) func_80324BA0, arg0);
} }
void timed_setCameraToNode(f32 time, s32 arg0){ void timed_setCameraToNode(f32 time, s32 arg0){
timedFunc_set_1(time, (TFQM1) set_camera_to_node, arg0); timedFunc_set_1(time, (GenMethod_1) set_camera_to_node, arg0);
} }
void func_80324E88(f32 time){ void func_80324E88(f32 time){
@ -227,7 +227,7 @@ void timedFunc_set_0(f32 time, TFQM0 funcPtr){
__timedFuncQueue_insert(time, 0, (void *) funcPtr, 0, 0, 0, 0, 0); __timedFuncQueue_insert(time, 0, (void *) funcPtr, 0, 0, 0, 0, 0);
} }
void timedFunc_set_1(f32 time, TFQM1 funcPtr, s32 arg0){ void timedFunc_set_1(f32 time, GenMethod_1 funcPtr, s32 arg0){
__timedFuncQueue_insert(time, 1, (void *) funcPtr, arg0, 0, 0, 0, 0); __timedFuncQueue_insert(time, 1, (void *) funcPtr, arg0, 0, 0, 0, 0);
} }

View File

@ -24,25 +24,29 @@ ActorAnimationInfo D_80391810[] = {
}; };
ActorInfo D_80391840 = { ActorInfo D_80391840 = {
0x27B, 0x3A5, 0x3BC, 0x1, D_80391810, MARKER_27B_BOSS_JINJO_ORANGE, ACTOR_3A5_BOSS_JINJO_ORANGE, ASSET_3BC_MODEL_JINJO_ORANGE,
0x1, D_80391810,
func_8038C840, func_8038D014, func_80325888, func_8038C840, func_8038D014, func_80325888,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_80391864 = { ActorInfo D_80391864 = {
0x27C, 0x3A6, 0x3C2, 0x1, D_80391810, MARKER_27C_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN, ASSET_3C2_MODEL_JINJO_GREEN,
0x1, D_80391810,
func_8038C840, func_8038D014, func_80325888, func_8038C840, func_8038D014, func_80325888,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_80391888 = { ActorInfo D_80391888 = {
0x27D, 0x3A7, 0x3C1, 0x1, D_80391810, MARKER_27D_BOSS_JINJO_PINK, ACTOR_3A7_BOSS_JINJO_PINK, ASSET_3C1_MODEL_JINJO_PINK,
0x1, D_80391810,
func_8038C840, func_8038D014, func_80325888, func_8038C840, func_8038D014, func_80325888,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_803918AC = { ActorInfo D_803918AC = {
0x27E, 0x3A8, 0x3BB, 0x1, D_80391810, MARKER_27E_BOSS_JINJO_YELLOW, ACTOR_3A8_BOSS_JINJO_YELLOW, ASSET_3BB_MODEL_JINJO_YELLOW,
0x1, D_80391810,
func_8038C840, func_8038D014, func_80325888, func_8038C840, func_8038D014, func_80325888,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
@ -114,7 +118,7 @@ void func_8038C5BC(void){
func_80386654(1.0f, &D_80391948, &D_80391958); func_80386654(1.0f, &D_80391948, &D_80391958);
} }
void func_8038C5F0(Actor *this, enum asset_e arg1, enum asset_e arg2, f32 arg3){ void chbossjinjo_spawnParticles(Actor *this, enum asset_e arg1, enum asset_e arg2, f32 arg3){
f32 sp1C[3]; f32 sp1C[3];
func_8038C0DC(&sp1C); func_8038C0DC(&sp1C);
func_8038C2C0(this->position, 0x20, arg1, arg3); func_8038C2C0(this->position, 0x20, arg1, arg3);
@ -123,32 +127,32 @@ void func_8038C5F0(Actor *this, enum asset_e arg1, enum asset_e arg2, f32 arg3){
timedFunc_set_0(0.3f, func_8038C5BC); timedFunc_set_0(0.3f, func_8038C5BC);
} }
void func_8038C674(Actor *this){ void chbossjinjo_spawnAttackParticles(Actor *this){
s32 a1; s32 sparkle_sprite_id;
s32 a2; s32 smoke_sprite_id;
switch(this->marker->unk14_20){ switch(this->marker->unk14_20){
default: default:
a1 = ASSET_718_SPRITE_SPARKLE_WHITE_2; sparkle_sprite_id = ASSET_718_SPRITE_SPARKLE_WHITE_2;
a2 = ASSET_6C2_SPRITE_SMOKE_WHITE; smoke_sprite_id = ASSET_6C2_SPRITE_SMOKE_WHITE;
break; break;
case 0x27b: case MARKER_27B_BOSS_JINJO_ORANGE:
a1 = ASSET_71B_SPRITE_SPARKLE_ORANGE_2; sparkle_sprite_id = ASSET_71B_SPRITE_SPARKLE_ORANGE_2;
a2 = ASSET_6C5_SPRITE_SMOKE_ORANGE; smoke_sprite_id = ASSET_6C5_SPRITE_SMOKE_ORANGE;
break; break;
case 0x27c: case MARKER_27C_BOSS_JINJO_GREEN:
a1 = ASSET_719_SPRITE_SPARKLE_GREEN_2; sparkle_sprite_id = ASSET_719_SPRITE_SPARKLE_GREEN_2;
a2 = ASSET_6C3_SPRITE_SMOKE_GREEN; smoke_sprite_id = ASSET_6C3_SPRITE_SMOKE_GREEN;
break; break;
case 0x27d: case MARKER_27D_BOSS_JINJO_PINK:
a1 = ASSET_71A_SPRITE_SPARKLE_PINK_2; sparkle_sprite_id = ASSET_71A_SPRITE_SPARKLE_PINK_2;
a2 = ASSET_6C6_SPRITE_SMOKE_PINK; smoke_sprite_id = ASSET_6C6_SPRITE_SMOKE_PINK;
break; break;
case 0x27e: case MARKER_27E_BOSS_JINJO_YELLOW:
a1 = ASSET_717_SPRITE_SPARKLE_YELLOW_2; sparkle_sprite_id = ASSET_717_SPRITE_SPARKLE_YELLOW_2;
a2 = ASSET_6C4_SPRITE_SMOKE_YELLOW; smoke_sprite_id = ASSET_6C4_SPRITE_SMOKE_YELLOW;
break; break;
} }
func_8038C5F0(this, a1, a2, 1.0f); chbossjinjo_spawnParticles(this, sparkle_sprite_id, smoke_sprite_id, 1.0f);
} }
@ -313,7 +317,7 @@ void func_8038C840(Actor *this){
}//L8038CEC8 }//L8038CEC8
} }
void func_8038CED8(f32 arg0[3], s32 arg1, f32 arg2, f32 arg3){ void func_8038CED8(f32 arg0[3], enum asset_e model_id, f32 arg2, f32 arg3){
ParticleEmitter *s0 = partEmitList_pushNew(1); ParticleEmitter *s0 = partEmitList_pushNew(1);
f32 sp40[3]; f32 sp40[3];
f32 sp34[3]; f32 sp34[3];
@ -325,7 +329,7 @@ void func_8038CED8(f32 arg0[3], s32 arg1, f32 arg2, f32 arg3){
sp34[2] = sp40[2] - arg0[2]; sp34[2] = sp40[2] - arg0[2];
ml_vec3f_set_length(sp34, 20.0f); ml_vec3f_set_length(sp34, 20.0f);
particleEmitter_setModel(s0, arg1); particleEmitter_setModel(s0, model_id);
particleEmitter_setPosition(s0, arg0); particleEmitter_setPosition(s0, arg0);
particleEmitter_setParticleVelocityRange(s0, sp34[0], sp34[1], sp34[2], sp34[0], sp34[1], sp34[2]); particleEmitter_setParticleVelocityRange(s0, sp34[0], sp34[1], sp34[2], sp34[0], sp34[1], sp34[2]);
D_80391968.unk20 = arg3; D_80391968.unk20 = arg3;
@ -369,16 +373,16 @@ void func_8038D014(Actor *this){
marker_despawn(this->marker); marker_despawn(this->marker);
switch (this->marker->unk14_20) switch (this->marker->unk14_20)
{ {
case 0x27b: case MARKER_27B_BOSS_JINJO_ORANGE:
temp_a1 = 0x557; temp_a1 = 0x557;
break; break;
case 0x27c: case MARKER_27C_BOSS_JINJO_GREEN:
temp_a1 = 0x558; temp_a1 = 0x558;
break; break;
case 0x27d: case MARKER_27D_BOSS_JINJO_PINK:
temp_a1 = 0x559; temp_a1 = 0x559;
break; break;
case 0x27e: case MARKER_27E_BOSS_JINJO_YELLOW:
temp_a1 = 0x556; temp_a1 = 0x556;
break; break;
default: default:
@ -393,13 +397,13 @@ void func_8038D014(Actor *this){
} }
void func_8038D214(ActorMarker *marker){ void chbossjinjo_attack(ActorMarker *marker){
Actor *actor = marker_getActor(marker); Actor *actor = marker_getActor(marker);
func_8038C674(actor); chbossjinjo_spawnAttackParticles(actor);
FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor->position, 1000, 6500); FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, actor->position, 1000, 6500);
marker_despawn(actor->marker); marker_despawn(actor->marker);
} }
f32 func_8038D268(void){ f32 chbossjinjo_8038D268(void){
return 2.26f; return 2.26f;
} }

View File

@ -10,7 +10,8 @@ void func_8038D568(Actor *this);
/* .data */ /* .data */
ActorInfo D_80391990 = { ActorInfo D_80391990 = {
0x27A, 0x3A2, 0x543, 0x1, NULL, MARKER_27A_JINJO_STATUE_BASE, ACTOR_3A2_JINJO_STATUE_BASE, ASSET_543_MODEL_JINJO_STATUE_BASE,
0x1, NULL,
func_8038D568, func_80326224, func_80325888, func_8038D568, func_80326224, func_80325888,
0, 0x800, 0.0f, 0 0, 0x800, 0.0f, 0
}; };
@ -26,9 +27,9 @@ struct31s D_803919C0 = {
}; };
/* .code */ /* .code */
void func_8038D280(ActorMarker *arg0) { void chbossjinjobase_spawnStoneJinjo(ActorMarker *arg0) {
Actor *sp1C = marker_getActor(arg0); Actor *sp1C = marker_getActor(arg0);
Actor *temp_v0 = spawn_child_actor(0x3A1, &sp1C); Actor *temp_v0 = spawn_child_actor(ACTOR_3A1_STONE_JINJO, &sp1C);
temp_v0->unkF4_8 = sp1C->unkF4_8; temp_v0->unkF4_8 = sp1C->unkF4_8;
temp_v0->position_y = temp_v0->position_y + 172.0f; temp_v0->position_y = temp_v0->position_y + 172.0f;
@ -66,7 +67,7 @@ void func_8038D428(ActorMarker *arg0, ActorMarker *arg1) {
temp_v0->unk38_31++; temp_v0->unk38_31++;
if (temp_v0->unk38_31 >= 3) { if (temp_v0->unk38_31 >= 3) {
func_80328A84(temp_v0, 3); func_80328A84(temp_v0, 3);
func_8038DE98(temp_v0->unk100); chstonejinjo_breakOpen(temp_v0->unk100);
func_8038D3DC(temp_v0, 0x19A, -100.0f, 0.0f, 1.2f); 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); func_80324D54(1.2f, SFX_90_SWITCH_PRESS, 1.0f, 32000, temp_v0->position, 1000.0f, 2000.0f);
} }
@ -106,13 +107,13 @@ void func_8038D568(Actor *this){
actor_collisionOn(this); actor_collisionOn(this);
this->unk38_31 = 0; this->unk38_31 = 0;
this->unk44_31 = func_8030D90C(); this->unk44_31 = func_8030D90C();
sfxsource_setSfxId(this->unk44_31, 0x3f9); sfxsource_setSfxId(this->unk44_31, SFX_3F9_UNKNOWN);
func_8030DD14(this->unk44_31, 2); func_8030DD14(this->unk44_31, 2);
func_8030DBB4(this->unk44_31, 1.4f); func_8030DBB4(this->unk44_31, 1.4f);
sfxsource_setSampleRate(this->unk44_31, 32000); sfxsource_setSampleRate(this->unk44_31, 32000);
local->unk0 = func_8030D90C(); local->unk0 = func_8030D90C();
sfxsource_setSfxId(local->unk0, 0x405); sfxsource_setSfxId(local->unk0, SFX_405_UNKNOWN);
func_8030DD14(local->unk0, 2); func_8030DD14(local->unk0, 2);
func_8030DBB4(local->unk0, 0.7f); func_8030DBB4(local->unk0, 0.7f);
sfxsource_setSampleRate(local->unk0, 12000); sfxsource_setSampleRate(local->unk0, 12000);
@ -128,14 +129,14 @@ void func_8038D568(Actor *this){
func_802BB3DC(0, 8.0f, 0.92f); func_802BB3DC(0, 8.0f, 0.92f);
func_802C3F04((GenMethod_4)func_802C4140, 0x3ad, *(s32*)&this->unk1C[0], *(s32*)&this->unk1C[1], *(s32*)&this->unk1C[2]); func_802C3F04((GenMethod_4)func_802C4140, 0x3ad, *(s32*)&this->unk1C[0], *(s32*)&this->unk1C[1], *(s32*)&this->unk1C[2]);
func_8038D2EC(this->unk1C, 0x10); func_8038D2EC(this->unk1C, 0x10);
func_802C3C88((GenMethod_1)func_8038D280, reinterpret_cast(s32, this->marker)); SPAWNQUEUE_ADD_1(chbossjinjobase_spawnStoneJinjo, this->marker);
} }
else{//L8038D774 else{//L8038D774
if(this->state == 1){ if(this->state == 1){
other = marker_getActor(this->unk100); other = marker_getActor(this->unk100);
sp3C = this->velocity_y * sp48; sp3C = this->velocity_y * sp48;
if(this->position_y + sp3C < this->unk1C[1]){ if(this->position_y + sp3C < this->unk1C[1]){
if(!func_8031FF1C(0xd2) || this->unkF4_8 == 1){ if( !func_8031FF1C(BKPROG_D2_HAS_SPAWNED_A_JINJO_STATUE_IN_FINAL_FIGHT) || this->unkF4_8 == 1){
func_8030E2C4(this->unk44_31); func_8030E2C4(this->unk44_31);
func_8030E2C4(local->unk0); func_8030E2C4(local->unk0);
} }

30
src/fight/chbossshadow.c Normal file
View File

@ -0,0 +1,30 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
Actor *chbossshadow_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void chbossshadow_update(Actor *this);
/* .data */
ActorInfo D_80392090 = {
MARKER_288_GRUNTY_SHADOW, ACTOR_3AF_GRUNTY_SHADOW, ASSET_3BF_MODEL_PLAYER_SHADOW, 0x1, NULL,
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 = func_80325300(marker, sp34);
sp30 = this->scale * ml_map_f(this->unk1C[0], 0.0f, 1000.0f, 1.75f, 0.9f);
set_model_render_mode(2);
func_803391A4(gdl, mptr, this->position, sp34, sp30, NULL, func_80330B1C(marker));
return this;
}
void chbossshadow_update(Actor *this){
actor_collisionOff(this);
}

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@ extern void func_802F9E44(s32, f32, f32, f32, f32);
extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32); extern void func_80387470(Actor *, f32 [3], f32, f32, f32, f32, f32);
extern void func_8038C0DC(f32[3]); extern void func_8038C0DC(f32[3]);
extern void func_8038C5F0(Actor *, enum asset_e, enum asset_e, f32); extern void chbossjinjo_spawnParticles(Actor *, enum asset_e, enum asset_e, f32);
typedef struct{ typedef struct{
f32 unk0; f32 unk0;
@ -23,7 +23,7 @@ typedef struct{
s32 unk28; s32 unk28;
}ActorLocal_fight_9850; }ActorLocal_fight_9850;
void func_8039049C(Actor *this); void chjinjonator_update(Actor *this);
/* .data */ /* .data */
@ -45,13 +45,24 @@ ActorAnimationInfo D_80391FB0[] = {
}; };
ActorInfo D_80392018 = { ActorInfo D_80392018 = {
0x285, 0x3AC, 0x551, 0x1, D_80391FB0, MARKER_285_JINJONATOR, ACTOR_3AC_JINJONATOR, ASSET_551_MODEL_JINJONATOR,
func_8039049C, func_80326224, func_80325888, 0x1, D_80391FB0,
chjinjonator_update, func_80326224, func_80325888,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
s32 D_8039203C[] = {0xDC, 0x96, 0x82, 0xB4, 0xD2, 0xAA, 0xC8, 0x96, 0xB4}; s32 D_8039203C[] = {0xDC, 0x96, 0x82, 0xB4, 0xD2, 0xAA, 0xC8, 0x96, 0xB4};
s32 D_80392060[] = {0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2}; s32 D_80392060[] = {
COMUSIC_9A_JINJONATOR_HITS_GRUNTY_A,
COMUSIC_9B_JINJONATOR_HITS_GRUNTY_B,
COMUSIC_9C_JINJONATOR_HITS_GRUNTY_C,
COMUSIC_9D_JINJONATOR_HITS_GRUNTY_D,
COMUSIC_9E_JINJONATOR_HITS_GRUNTY_E,
COMUSIC_9F_JINJONATOR_HITS_GRUNTY_F,
COMUSIC_A0_JINJONATOR_HITS_GRUNTY_G,
COMUSIC_A1_JINJONATOR_HITS_GRUNTY_H,
COMUSIC_A2_JINJONATOR_HITS_GRUNTY_I
};
/* .bss */ /* .bss */
f32 D_80392720; f32 D_80392720;
@ -59,7 +70,7 @@ f32 D_80392724;
f32 D_80392920[3]; f32 D_80392920[3];
/* .code */ /* .code */
void func_80390130(f32 position[3], int count, enum asset_e sprite_id){ void chjinjonator_80390130(f32 position[3], int count, enum asset_e sprite_id){
ParticleEmitter *s0 = partEmitList_pushNew(count); ParticleEmitter *s0 = partEmitList_pushNew(count);
particleEmitter_setSprite(s0, sprite_id); particleEmitter_setSprite(s0, sprite_id);
particleEmitter_setStartingFrameRange(s0, 1, 6); particleEmitter_setStartingFrameRange(s0, 1, 6);
@ -76,18 +87,18 @@ void func_80390130(f32 position[3], int count, enum asset_e sprite_id){
particleEmitter_emitN(s0, count); particleEmitter_emitN(s0, count);
} }
void func_80390278(Actor *this){ void chjinjonator_80390278(Actor *this){
f32 sp34[3]; f32 sp34[3];
int i; int i;
for(i = 0; i < 4; i++){ for(i = 0; i < 4; i++){
if(randf() < 0.3){ if(randf() < 0.3){
func_8034A174(this->marker->unk44, i + 5, sp34); func_8034A174(this->marker->unk44, i + 5, sp34);
func_80390130(sp34, 1, ASSET_718_SPRITE_SPARKLE_WHITE_2); chjinjonator_80390130(sp34, 1, ASSET_718_SPRITE_SPARKLE_WHITE_2);
} }
} }
} }
void func_80390318(Actor *this, s32 arg1){ void chjinjonator_spawnAttackParticles(Actor *this, s32 arg1){
s32 sp1C; s32 sp1C;
s32 sp18; s32 sp18;
@ -118,16 +129,16 @@ void func_80390318(Actor *this, s32 arg1){
sp18 = ASSET_6C2_SPRITE_SMOKE_WHITE; sp18 = ASSET_6C2_SPRITE_SMOKE_WHITE;
break; break;
} }
func_8038C5F0(this, sp1C, sp18, 2.0f); chbossjinjo_spawnParticles(this, sp1C, sp18, 2.0f);
} }
void func_803903C4(Actor *this){ void chjinjonator_803903C4(Actor *this){
animctrl_setSmoothTransition(this->animctrl, FALSE); animctrl_setSmoothTransition(this->animctrl, FALSE);
func_80328B8C(this, 7, 0.001f, 1); func_80328B8C(this, 7, 0.001f, 1);
actor_loopAnimation(this); actor_loopAnimation(this);
} }
void func_8039040C(Actor *this){ void chjinjonator_8039040C(Actor *this){
ActorLocal_fight_9850 *local = (ActorLocal_fight_9850 *)&this->local; ActorLocal_fight_9850 *local = (ActorLocal_fight_9850 *)&this->local;
f32 tick = time_getDelta(); f32 tick = time_getDelta();
@ -137,7 +148,7 @@ void func_8039040C(Actor *this){
func_8030E2C4(this->unk44_31); func_8030E2C4(this->unk44_31);
} }
void func_8039049C(Actor *this){ void chjinjonator_update(Actor *this){
ActorLocal_fight_9850 *local = (ActorLocal_fight_9850 *)&this->local; ActorLocal_fight_9850 *local = (ActorLocal_fight_9850 *)&this->local;
f32 sp58; f32 sp58;
f32 sp54; f32 sp54;
@ -170,7 +181,7 @@ void func_8039049C(Actor *this){
switch(this->state){ switch(this->state){
case 1: //803905D4 case 1: //803905D4
func_8039040C(this); chjinjonator_8039040C(this);
animctrl_setAnimTimer(this->animctrl, 0.0f); animctrl_setAnimTimer(this->animctrl, 0.0f);
this->unk60 -= sp58; this->unk60 -= sp58;
if(this->unk60 < 0.0){ if(this->unk60 < 0.0){
@ -180,7 +191,7 @@ void func_8039049C(Actor *this){
break; break;
case 2: //80390648 case 2: //80390648
func_8039040C(this); chjinjonator_8039040C(this);
if(actor_animationIsAt(this, 0.27f)) if(actor_animationIsAt(this, 0.27f))
FUNC_8030E624(SFX_D0_GRIMLET_SQUEAK, 0.7f, 29000); FUNC_8030E624(SFX_D0_GRIMLET_SQUEAK, 0.7f, 29000);
@ -196,12 +207,12 @@ void func_8039049C(Actor *this){
func_8030DA44(this->unk44_31); func_8030DA44(this->unk44_31);
this->unk44_31 = 0; this->unk44_31 = 0;
local->unk0 = (320.0f - this->position_y) * 0.5; local->unk0 = (320.0f - this->position_y) * 0.5;
func_80324CFC(0.0f, 0x8c, 0x7d00); func_80324CFC(0.0f, COMUSIC_8C_JINJONATOR_POWERUP, 32000);
} }
break; break;
case 3: //8039073C case 3: //8039073C
func_80390278(this); chjinjonator_80390278(this);
if(this->position_y < 320.0f){ if(this->position_y < 320.0f){
this->position_y = MIN(320.0f, this->position_y + local->unk0*sp58); this->position_y = MIN(320.0f, this->position_y + local->unk0*sp58);
}//L803907A0 }//L803907A0
@ -214,13 +225,13 @@ void func_8039049C(Actor *this){
break; break;
case 4: //803907D4 case 4: //803907D4
func_80390278(this); chjinjonator_80390278(this);
func_80328B8C(this, 5, 0.001f, 1); func_80328B8C(this, 5, 0.001f, 1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
break; break;
case 5: //80390804 case 5: //80390804
func_80390278(this); chjinjonator_80390278(this);
if(actor_animationIsAt(this, 0.998f)){ if(actor_animationIsAt(this, 0.998f)){
animctrl_setSmoothTransition(this->animctrl, FALSE); animctrl_setSmoothTransition(this->animctrl, FALSE);
func_80328B8C(this, 6, 0.0001f, 1); func_80328B8C(this, 6, 0.0001f, 1);
@ -240,27 +251,27 @@ void func_8039049C(Actor *this){
case 6: //803908BC case 6: //803908BC
this->position[1] = MIN(1e+8f, this->position[1] + 80.0f*sp58); this->position[1] = MIN(1e+8f, this->position[1] + 80.0f*sp58);
animctrl_setDuration(this->animctrl, MAX(0.4, sp54 - (0.5*sp58))); animctrl_setDuration(this->animctrl, MAX(0.4, sp54 - (0.5*sp58)));
func_80390278(this); chjinjonator_80390278(this);
if(actor_animationIsAt(this, 0.25f) || actor_animationIsAt(this, 0.75f)){ if(actor_animationIsAt(this, 0.25f) || actor_animationIsAt(this, 0.75f)){
FUNC_8030E624(SFX_2_CLAW_SWIPE, local->unk1C, 26000); FUNC_8030E624(SFX_2_CLAW_SWIPE, local->unk1C, 26000);
local->unk1C += 0.04; local->unk1C += 0.04;
}//L80390A4C }//L80390A4C
func_8039040C(this); chjinjonator_8039040C(this);
if(actor_animationIsAt(this, 0.5f)){ if(actor_animationIsAt(this, 0.5f)){
if(--local->unk28 <= 0){ if(--local->unk28 <= 0){
func_803903C4(this); chjinjonator_803903C4(this);
FUNC_8030E8B4(SFX_135_CARTOONY_SPRING, 1.0f, 32000, this->position, 10000, 16000); FUNC_8030E8B4(SFX_135_CARTOONY_SPRING, 1.0f, 32000, this->position, 10000, 16000);
func_80324D54(0.1f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f); func_80324D54(0.1f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f);
if((u8)this->unk44_31){ if((u8)this->unk44_31){
func_8030E394(this->unk44_31); func_8030E394(this->unk44_31);
func_8030DA44(this->unk44_31); func_8030DA44(this->unk44_31);
this->unk44_31 = 0; this->unk44_31 = 0;
} }
func_80324D2C(0.0f, COMUSIC_8C_JINJONATOR_POWERUP); func_80324D2C(0.0f, COMUSIC_8C_JINJONATOR_POWERUP);
func_8034A174(this->marker->unk44, 0x1f, this->position); func_8034A174(this->marker->unk44, 0x1f, this->position);
this->velocity[0] = (this->position[0] - this->unk1C[0]) / sp58; this->velocity[0] = (this->position[0] - this->unk1C[0]) / sp58;
this->velocity[1] = (this->position[1] - this->unk1C[1]) / sp58; this->velocity[1] = (this->position[1] - this->unk1C[1]) / sp58;
this->velocity[2] = (this->position[2] - this->unk1C[2]) / sp58; this->velocity[2] = (this->position[2] - this->unk1C[2]) / sp58;
} }
}//L80390B60 }//L80390B60
@ -270,7 +281,7 @@ void func_8039049C(Actor *this){
break; break;
case 7: //80390B78 case 7: //80390B78
sp50 = local->unk24*0.11 + 1.0; sp50 = local->unk24*0.11 + 1.0;
func_80390278(this); chjinjonator_80390278(this);
func_8038C0DC(local->unk8); func_8038C0DC(local->unk8);
local->unk8[1] += 100.0f; local->unk8[1] += 100.0f;
func_80387470(this, local->unk8, sp50*2400.0f, sp50*2400.0f*4.2, 170.0f, sp50*2500.0f, 0.0f); func_80387470(this, local->unk8, sp50*2400.0f, sp50*2400.0f*4.2, 170.0f, sp50*2500.0f, 0.0f);
@ -281,7 +292,7 @@ void func_8039049C(Actor *this){
if(actor_animationIsAt(this, 0.999f)){ if(actor_animationIsAt(this, 0.999f)){
func_8034A174(this->marker->unk44, 0x1f, this->position); func_8034A174(this->marker->unk44, 0x1f, this->position);
func_803903C4(this); chjinjonator_803903C4(this);
FUNC_8030E8B4(SFX_135_CARTOONY_SPRING, 1.0f, 32000, this->position, 10000, 16000); FUNC_8030E8B4(SFX_135_CARTOONY_SPRING, 1.0f, 32000, this->position, 10000, 16000);
func_80324D54(0.1f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f); func_80324D54(0.1f, SFX_C1_BUZZBOMB_ATTACK, 0.85f, 32000, this->position, 5000.0f, 12000.0f);
this->velocity[2] = 0.0f; this->velocity[2] = 0.0f;
@ -346,7 +357,7 @@ void func_8039049C(Actor *this){
break; break;
case 12: //80390F7C case 12: //80390F7C
sp48 = local->unk24*0.11 + 1.0; sp48 = local->unk24*0.11 + 1.0;
func_80390278(this); chjinjonator_80390278(this);
func_8038C0DC(local->unk8); func_8038C0DC(local->unk8);
local->unk8[1] += 100.0f; local->unk8[1] += 100.0f;
func_80387470(this, local->unk8, sp48*2400.0f, sp48*2400.0f*4.2, 170.0f, sp48*2500.0f, 0.0f); func_80387470(this, local->unk8, sp48*2400.0f, sp48*2400.0f*4.2, 170.0f, sp48*2500.0f, 0.0f);
@ -355,7 +366,7 @@ void func_8039049C(Actor *this){
func_8034A174(this->marker->unk44, 0x1f, D_80392920); func_8034A174(this->marker->unk44, 0x1f, D_80392920);
} }
void func_80391070(ActorMarker *marker, s32 arg1, s32 arg2) { void chjinjonator_attack(ActorMarker *marker, s32 hit_count, bool mirrored) {
Actor *temp_s0; Actor *temp_s0;
ActorLocal_fight_9850 *local; ActorLocal_fight_9850 *local;
s32 pad; s32 pad;
@ -363,23 +374,23 @@ void func_80391070(ActorMarker *marker, s32 arg1, s32 arg2) {
temp_s0 = marker_getActor(marker); temp_s0 = marker_getActor(marker);
local = (ActorLocal_fight_9850 *)&temp_s0->local; local = (ActorLocal_fight_9850 *)&temp_s0->local;
func_8025A6EC(D_80392060[arg1-1], 20000); func_8025A6EC(D_80392060[hit_count-1], 20000);
func_80390318(temp_s0, arg1); chjinjonator_spawnAttackParticles(temp_s0, hit_count);
FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, temp_s0->position, 1000, 6500); FUNC_8030E8B4(SFX_1B_EXPLOSION_1, 1.0f, 32000, temp_s0->position, 1000, 6500);
temp_s0->velocity[2] = 0.0f; temp_s0->velocity[2] = 0.0f;
temp_s0->velocity[1] = 0.0f; temp_s0->velocity[1] = 0.0f;
temp_s0->velocity[0] = 0.0f; temp_s0->velocity[0] = 0.0f;
temp_s0->yaw = (f32)D_8039203C[arg1-1]; temp_s0->yaw = (f32)D_8039203C[hit_count-1];
if (arg2 != 0) { if (mirrored) {
temp_s0->yaw = (f32) (temp_s0->yaw + 180.0f); temp_s0->yaw = (f32) (temp_s0->yaw + 180.0f);
} }
local->unk24 = arg1; local->unk24 = hit_count;
animctrl_setSmoothTransition(temp_s0->animctrl, 1); animctrl_setSmoothTransition(temp_s0->animctrl, 1);
actor_playAnimationOnce(temp_s0); actor_playAnimationOnce(temp_s0);
if (&D_8039203C[arg1] >= D_80392060) { if (&D_8039203C[hit_count] >= D_80392060) {
func_80328B8C(temp_s0, 9, 0.001f, 1); func_80328B8C(temp_s0, 9, 0.001f, 1);
return; return;
} }
@ -387,33 +398,33 @@ void func_80391070(ActorMarker *marker, s32 arg1, s32 arg2) {
animctrl_setDuration(temp_s0->animctrl, (f32) (1.75 - 0.11 * local->unk24)); animctrl_setDuration(temp_s0->animctrl, (f32) (1.75 - 0.11 * local->unk24));
} }
void func_803911F8(ActorMarker *marker){ void chjinjonator_finalAttack(ActorMarker *marker){
Actor *actor = marker_getActor(marker); Actor *actor = marker_getActor(marker);
func_80390318(actor, 0xa); chjinjonator_spawnAttackParticles(actor, 0xa);
marker_despawn(actor->marker); marker_despawn(actor->marker);
} }
f32 func_80391234(void){ f32 chjinjonator_80391234(void){
return 3.3f; return 3.3f;
} }
f32 func_80391240(void){ f32 chjinjonator_80391240(void){
return 2.0; return 2.0;
} }
f32 func_80391250(void){ f32 chjinjonator_80391250(void){
return 4.62f; return 4.62f;
} }
s32 func_8039125C(ActorMarker *marker){ bool chjinjonator_8039125C(ActorMarker *marker){
u32 state = (u32) (marker_getActor(marker))->state; u32 state = (u32) (marker_getActor(marker))->state;
if (state == 0x7 || state == 0xC) { if (state == 0x7 || state == 0xC) {
return 1; return TRUE;
} }
return 0; return FALSE;
} }
void func_8039129C(f32 arg0[3]) { void chjinjonator_8039129C(f32 arg0[3]) {
arg0[0] = D_80392920[0]; arg0[0] = D_80392920[0];
arg0[1] = D_80392920[1]; arg0[1] = D_80392920[1];
arg0[2] = D_80392920[2]; arg0[2] = D_80392920[2];

View File

@ -6,12 +6,13 @@ typedef struct {
u8 unk0[4]; u8 unk0[4];
}ActorLocal_fight_7BE0; }ActorLocal_fight_7BE0;
void func_8038E2FC(Actor *); void chjinjonatorbase_update(Actor *);
/* .data */ /* .data */
ActorInfo D_80391A40 = { ActorInfo D_80391A40 = {
0x27F, 0x3A9, 0x544, 0x1, NULL, MARKER_27F_JINJONATOR_STATUE_BASE, ACTOR_3A9_JINJONATOR_STATUE_BASE, ASSET_544_MODEL_JINJONATOR_STATUE_BASE,
func_8038E2FC, func_80326224, func_80325888, 0x1, NULL,
chjinjonatorbase_update, func_80326224, func_80325888,
0, 0x800, 0.0f, 0 0, 0x800, 0.0f, 0
}; };
@ -33,15 +34,15 @@ struct42s D_80391A98 = {
}; };
/* .code */ /* .code */
void func_8038DFD0(ActorMarker *arg0) { void chjinjonatorbase_spawnStoneJinjo(ActorMarker *marker) {
Actor *sp1C; Actor *this;
Actor *temp_v0; Actor *stone_jinjo;
sp1C = marker_getActor(arg0); this = marker_getActor(marker);
temp_v0 = spawn_child_actor(0x3A1, &sp1C); stone_jinjo = spawn_child_actor(ACTOR_3A1_STONE_JINJO, &this);
temp_v0->unkF4_8 = sp1C->unkF4_8; stone_jinjo->unkF4_8 = this->unkF4_8;
temp_v0->position_y = temp_v0->position_y + 155.0f; stone_jinjo->position_y = stone_jinjo->position_y + 155.0f;
sp1C->unk100 = temp_v0->marker; this->unk100 = stone_jinjo->marker;
} }
void func_8038E03C(f32 arg0[3], u32 arg1) { void func_8038E03C(f32 arg0[3], u32 arg1) {
@ -86,7 +87,7 @@ void func_8038E120(ActorMarker * marker, ActorMarker *arg1){
if( remaining <= 0){ if( remaining <= 0){
func_8038C148(); func_8038C148();
func_80328A84(actor, 3); func_80328A84(actor, 3);
func_8038DE98(actor->unk100); chstonejinjo_breakOpen(actor->unk100);
} }
}//L8038E24C }//L8038E24C
} }
@ -104,7 +105,7 @@ void func_8038E2CC(ActorMarker *arg0) {
func_8032BB88(marker_getActor(arg0), -1, 0x7FFF); func_8032BB88(marker_getActor(arg0), -1, 0x7FFF);
} }
void func_8038E2FC(Actor *this){ void chjinjonatorbase_update(Actor *this){
ActorLocal_fight_7BE0 *local = (ActorLocal_fight_7BE0 *)&this->local; ActorLocal_fight_7BE0 *local = (ActorLocal_fight_7BE0 *)&this->local;
f32 sp58 = time_getDelta(); f32 sp58 = time_getDelta();
s32 temp_s1 = func_8023DB5C() & 0xf; s32 temp_s1 = func_8023DB5C() & 0xf;
@ -138,7 +139,7 @@ void func_8038E2FC(Actor *this){
func_802FA060(temp_s0, 17000, 17000, 0.0f); func_802FA060(temp_s0, 17000, 17000, 0.0f);
func_8025A6EC(JINGLE_MENACING_GRUNTILDA_A, 15000); func_8025A6EC(JINGLE_MENACING_GRUNTILDA_A, 15000);
func_8032BB88(this, 0, 0x7fff); func_8032BB88(this, 0, 0x7fff);
timedFunc_set_1(8.0f, (TFQM1)func_8038E2CC, (s32)this->marker); timedFunc_set_1(8.0f, (GenMethod_1)func_8038E2CC, reinterpret_cast(s32,this->marker));
this->unk1C[0] = this->position_x; this->unk1C[0] = this->position_x;
this->unk1C[1] = this->position_y; this->unk1C[1] = this->position_y;
this->unk1C[2] = this->position_z; this->unk1C[2] = this->position_z;
@ -149,11 +150,12 @@ void func_8038E2FC(Actor *this){
}else{ }else{
this->velocity_y = 100.0f; this->velocity_y = 100.0f;
} }
timedFunc_set_1(this->unk60* 0.05, (TFQM1)func_8038E260, (s32)this->marker); timedFunc_set_1(this->unk60* 0.05, (GenMethod_1)func_8038E260, reinterpret_cast(s32,this->marker));
timedFunc_set_1(this->unk60* 0.28, (TFQM1) func_8038E260, (s32)this->marker); timedFunc_set_1(this->unk60* 0.28, (GenMethod_1) func_8038E260, reinterpret_cast(s32,this->marker));
timedFunc_set_1(this->unk60* 0.46, (TFQM1) func_8038E260, (s32)this->marker); timedFunc_set_1(this->unk60* 0.46, (GenMethod_1) func_8038E260, reinterpret_cast(s32,this->marker));
timedFunc_set_1(this->unk60* 0.58, (TFQM1) func_8038E260, (s32)this->marker); timedFunc_set_1(this->unk60* 0.58, (GenMethod_1) func_8038E260, reinterpret_cast(s32,this->marker));
func_802C3C88((GenMethod_1)func_8038DFD0, reinterpret_cast(s32,this->marker)); SPAWNQUEUE_ADD_1(chjinjonatorbase_spawnStoneJinjo, this->marker);
} }
else{//L8038E5CC else{//L8038E5CC
if(this->state == 1){ if(this->state == 1){

View File

@ -3,7 +3,7 @@
#include "variables.h" #include "variables.h"
extern ActorMarker *func_8038A4E8(Actor*, f32); extern ActorMarker *chfinalboss_findCollidingJinjo(Actor*, f32);
void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]); void func_80386654(f32 arg0, f32 (*arg1)[4], f32 (*arg2)[4]);
typedef struct { typedef struct {
@ -23,12 +23,13 @@ typedef struct {
u8 unk10; u8 unk10;
} ActorLocal_fight_8390; } ActorLocal_fight_8390;
void func_8038E844(Actor *this); void chspellbarrier_update(Actor *this);
/* .data */ /* .data */
ActorInfo D_80391AD0 = { ActorInfo D_80391AD0 = {
0x284, 0x3AB, 0x546, 0x1, NULL, MARKER_284_GRUNTY_SPELL_BARRIER, ACTOR_3AB_GRUNTY_SPELL_BARRIER, ASSET_546_MODEL_GRUNTY_SPELL_BARRIER,
func_8038E844, func_80326224, func_80325888, 0x1, NULL,
chspellbarrier_update, func_80326224, func_80325888,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
@ -50,22 +51,22 @@ void func_8038E780(ActorMarker *arg0, ActorMarker *arg1) {
} }
void func_8038E7EC(Actor *arg0) { void func_8038E7EC(Actor *arg0) {
ActorLocal_fight_8390 *temp_v0 = (ActorLocal_fight_8390 *)&arg0->local; ActorLocal_fight_8390 *local = (ActorLocal_fight_8390 *)&arg0->local;
if ((u8)arg0->unk44_31) { if ((u8)arg0->unk44_31) {
func_8030DA44(arg0->unk44_31); func_8030DA44(arg0->unk44_31);
arg0->unk44_31 = 0; arg0->unk44_31 = 0;
} }
if (temp_v0->unk10 != 0) { if (local->unk10 != 0) {
func_8030DA44(temp_v0->unk10); func_8030DA44(local->unk10);
temp_v0->unk10 = (u8)0; local->unk10 = (u8)0;
} }
} }
void func_8038E844(Actor *this){ void chspellbarrier_update(Actor *this){
ActorLocal_fight_8390 *local = (ActorLocal_fight_8390 *)&this->local; ActorLocal_fight_8390 *local = (ActorLocal_fight_8390 *)&this->local;
f32 sp38 = time_getDelta(); f32 sp38 = time_getDelta();
ActorMarker *temp_v0; ActorMarker *jinjo_marker;
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
@ -85,11 +86,11 @@ void func_8038E844(Actor *this){
func_8030DBB4(local->unk10, 1.0f); func_8030DBB4(local->unk10, 1.0f);
FUNC_8030E8B4(SFX_416, 0.8f, 32000, this->position, 10000, 25000); FUNC_8030E8B4(SFX_416, 0.8f, 32000, this->position, 10000, 25000);
}//L8038E97C }//L8038E97C
temp_v0 = func_8038A4E8(this, 600.0f); jinjo_marker = chfinalboss_findCollidingJinjo(this, 600.0f);
if(temp_v0){ if(jinjo_marker){
if(temp_v0->unk14_20 == 0x285){ if(jinjo_marker->unk14_20 == MARKER_285_JINJONATOR){
marker_despawn(this->marker); marker_despawn(this->marker);
func_8038C100(); chfinalboss_spellBarrierInactive();
return; return;
} }
else{ else{

View File

@ -9,7 +9,7 @@ extern Actor *func_80325CAC(ActorMarker*, Gfx**, Mtx**, Vtx **);
bool func_80320C94(f32 [3], f32[3], f32, f32[3], s32, u32); bool func_80320C94(f32 [3], f32[3], f32, f32[3], s32, u32);
f32 func_8033229C(ActorMarker *); f32 func_8033229C(ActorMarker *);
void func_8038CED8(f32 [3], s32, f32, f32); void func_8038CED8(f32 [3], s32, f32, f32);
void func_8038C5F0(Actor *, s32, s32, f32); void chbossjinjo_spawnParticles(Actor *, s32, s32, f32);
typedef struct { typedef struct {
f32 unk0; f32 unk0;
@ -19,13 +19,15 @@ void func_8038F620(Actor *this);
/* .data */ /* .data */
ActorInfo D_80391B00 = { ActorInfo D_80391B00 = {
0x25C, 0x389, 0x541, 0x1, NULL, MARKER_25C_GRUNTY_SPELL_FIREBALL, ACTOR_389_GRUNTY_SPELL_FIREBALL, ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK,
0x1, NULL,
func_8038F620, func_80326224, func_80325888, func_8038F620, func_80326224, func_80325888,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
ActorInfo D_80391B24 = { ActorInfo D_80391B24 = {
0x280, 0x3AA, 0x6C9, 0x1, NULL, MARKER_280_GRUNTY_SPELL_GREEN_ATTACK, ACTOR_3AA_GRUNTY_SPELL_GREEN_ATTACK, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK,
0x1, NULL,
func_8038F620, func_80326224, func_80325CAC, func_8038F620, func_80326224, func_80325CAC,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
@ -83,10 +85,6 @@ u8 D_803928E2;
u8 D_803928E3; u8 D_803928E3;
u8 D_803928E4; u8 D_803928E4;
u8 D_803928E5; u8 D_803928E5;
f32 D_803928E8[3];
f32 D_803928F8[3];
f32 D_80392908[3];
extern f32 D_80392914;
/* .code */ /* .code */
void func_8038EB90(ActorMarker *arg0, f32 *arg1) { void func_8038EB90(ActorMarker *arg0, f32 *arg1) {
@ -168,6 +166,7 @@ void func_8038F050(void) {
} }
void func_8038F084(ActorMarker *marker){ void func_8038F084(ActorMarker *marker){
static f32 D_803928E8[3];
Actor *actor = marker_getActor(marker); Actor *actor = marker_getActor(marker);
ActorLocal_fight_87A0 *local = (ActorLocal_fight_87A0 *)&actor->local; ActorLocal_fight_87A0 *local = (ActorLocal_fight_87A0 *)&actor->local;
@ -183,7 +182,7 @@ void func_8038F084(ActorMarker *marker){
timedFunc_set_0(0.3f, func_8038F050); timedFunc_set_0(0.3f, func_8038F050);
actor->unk58_0 = 0; actor->unk58_0 = 0;
actor->scale *= 1.6; actor->scale *= 1.6;
if(actor->marker->unk14_20 != 0x280){ if(actor->marker->unk14_20 != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){
func_8038EBE0(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW, func_8038EBE0(actor->position, 4, ASSET_713_SPRITE_SPARKLE_YELLOW,
D_80391C0C, D_80391C24, D_80391C3C, D_80391C0C, D_80391C24, D_80391C3C,
D_80391C54, D_80391C64, D_80391C74 D_80391C54, D_80391C64, D_80391C74
@ -211,7 +210,7 @@ void func_8038F084(ActorMarker *marker){
func_8038EEFC(actor->position, 3, D_80391BFC); func_8038EEFC(actor->position, 3, D_80391BFC);
func_8038CED8(actor->position, 0x558, 0.15f, 0.5f); func_8038CED8(actor->position, 0x558, 0.15f, 0.5f);
actor->position_y += 260.0f; actor->position_y += 260.0f;
func_8038C5F0(actor, 0x712, ASSET_6C3_SPRITE_SMOKE_GREEN, 1.6f); chbossjinjo_spawnParticles(actor, 0x712, ASSET_6C3_SPRITE_SMOKE_GREEN, 1.6f);
} }
local->unk0 = 0.66f; local->unk0 = 0.66f;
func_80328A84(actor, 2); func_80328A84(actor, 2);
@ -268,9 +267,12 @@ void func_8038F5F8(Actor *arg0) {
} }
void func_8038F620(Actor *this){ void func_8038F620(Actor *this){
static f32 D_803928F8[3];
static f32 D_80392908[3];
static f32 D_80392914;
ActorLocal_fight_87A0 * local = (ActorLocal_fight_87A0 *)&this->local; ActorLocal_fight_87A0 * local = (ActorLocal_fight_87A0 *)&this->local;
f32 sp40 = time_getDelta(); f32 sp40 = time_getDelta();
static f32 D_80392914;
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
@ -279,7 +281,7 @@ void func_8038F620(Actor *this){
actor_collisionOn(this); actor_collisionOn(this);
this->unk60 = 8.0f; this->unk60 = 8.0f;
this->scale = 0.1f; this->scale = 0.1f;
if( this->marker->unk14_20 == 0x280){ if( this->marker->unk14_20 == MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){
actor_collisionOff(this); actor_collisionOff(this);
func_803300D8(this->marker, func_8038F5F8); func_803300D8(this->marker, func_8038F5F8);
func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 32000); func_80324CFC(0.0f, COMUSIC_43_ENTER_LEVEL_GLITTER, 32000);
@ -299,29 +301,24 @@ void func_8038F620(Actor *this){
); );
} }
}//L8038F79C }//L8038F79C
if(D_803928E5 && this->marker->unk14_20 == 0x280){ if(D_803928E5 && this->marker->unk14_20 == MARKER_280_GRUNTY_SPELL_GREEN_ATTACK){
func_802BAD08(this->position); func_802BAD08(this->position);
}//L8038F7D4 }//L8038F7D4
switch(this->state){ switch(this->state){
case 1://L8038F7F8 case 1://L8038F7F8
{ // TODO: get rid of f0, maybe D_80392914 is static? D_80392914 = sp40*1.4;
// f32 temp_f0; this->scale = (this->scale + D_80392914 < 1.0) ? this->scale + D_80392914 : 1.0f;
D_80392914 = sp40*1.4;
// temp_f0 = this->scale + D_80392914;
this->scale = (this->scale + D_80392914 < 1.0) ? this->scale + D_80392914 : 1.0f;
}
switch(this->marker->unk14_20){ switch(this->marker->unk14_20){
case 0x25C://L8038F8AC case MARKER_25C_GRUNTY_SPELL_FIREBALL://L8038F8AC
func_8038ED9C(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1, func_8038ED9C(this->position, ASSET_4A0_SPRITE_EXPLOSION, 1,
D_80391CEC, D_80391D34, D_80391CEC, D_80391D34,
D_80391CF4, D_80391D04, D_80391D14 D_80391CF4, D_80391D04, D_80391D14
); );
break; break;
case 0x280://L8038F8C8 case MARKER_280_GRUNTY_SPELL_GREEN_ATTACK://L8038F8C8
func_8038ED9C(this->position, ASSET_6C9_SPRITE_SMOKE_GREEN_BIG, 1, func_8038ED9C(this->position, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, 1,
D_80391CEC, D_80391D34, D_80391CEC, D_80391D34,
D_80391CF4, D_80391D1C, D_80391D2C D_80391CF4, D_80391D1C, D_80391D2C
); );
@ -360,7 +357,7 @@ void func_8038F620(Actor *this){
} }
} }
// L8038FABC // L8038FABC
if( this->marker->unk14_20 != 0x280 if( this->marker->unk14_20 != MARKER_280_GRUNTY_SPELL_GREEN_ATTACK
&& func_8028F25C() && func_8028F25C()
){ ){
func_8038F084(this->marker); func_8038F084(this->marker);

View File

@ -1,12 +1,13 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "fight.h"
extern Actor *func_80326EEC(); extern Actor *func_80326EEC();
extern void func_80328B8C(Actor*, s32, f32, s32); extern void func_80328B8C(Actor*, s32, f32, s32);
extern f32 func_8038D268(void); extern f32 chbossjinjo_8038D268(void);
void func_8038DA04(Actor *); void chstonejinjo_update(Actor *);
/* .data */ /* .data */
ActorAnimationInfo D_803919F0[] ={ ActorAnimationInfo D_803919F0[] ={
@ -15,31 +16,35 @@ ActorAnimationInfo D_803919F0[] ={
{0x265, 1e+8f}, {0x265, 1e+8f},
{0x265, 1e+8f}, {0x265, 1e+8f},
}; };
ActorInfo D_80391A10 = { 0x276, 0x3A1, 0x545, 0x1, D_803919F0, func_8038DA04, func_80326224, func_80325888, 0, 0x800, 1.0f, 0}; ActorInfo D_80391A10 = {
MARKER_276_STONE_JINJO, ACTOR_3A1_STONE_JINJO, ASSET_545_MODEL_STONE_JINJO,
0x1, D_803919F0,
chstonejinjo_update, func_80326224, func_80325888,
0, 0x800, 1.0f, 0
};
/* .code */ /* .code */
void func_8038D970(ActorMarker *arg0) { void chstonejinjo_spawnJinjo(ActorMarker *marker) {
Actor *temp_v0; Actor *this;
Actor *phi_v0; Actor *jinjo;
temp_v0 = marker_getActor(arg0); this = marker_getActor(marker);
if (temp_v0->unkF4_8 == 5) { if (this->unkF4_8 == BOSSJINJO_JINJONATOR) {
phi_v0 = spawn_child_actor(0x3AC, &temp_v0); jinjo = spawn_child_actor(ACTOR_3AC_JINJONATOR, &this);
} else { } else {
phi_v0 = spawn_child_actor((temp_v0->unkF4_8) + 0x3A4, &temp_v0); jinjo = spawn_child_actor((this->unkF4_8) + 0x3A4, &this);
} }
phi_v0->unkF4_8 = temp_v0->unkF4_8; jinjo->unkF4_8 = this->unkF4_8;
phi_v0->unk60 = temp_v0->unk1C[0]; jinjo->unk60 = this->unk1C[0];
phi_v0->scale = temp_v0->scale; jinjo->scale = this->scale;
} }
void func_8038DA04(Actor *this) { void chstonejinjo_update(Actor *this) {
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this); actor_collisionOff(this);
if (this->unkF4_8 == 5) { if (this->unkF4_8 == BOSSJINJO_JINJONATOR) {
this->marker->unk40_23 = TRUE; this->marker->unk40_23 = TRUE;
this->marker->unk40_20 = TRUE; this->marker->unk40_20 = TRUE;
this->unk1C[0] = 6.0f; this->unk1C[0] = 6.0f;
@ -54,7 +59,7 @@ void func_8038DA04(Actor *this) {
animctrl_setAnimTimer(this->animctrl, 0.0f); animctrl_setAnimTimer(this->animctrl, 0.0f);
break; break;
case 2: case 2:
if (this->unkF4_8 != 5) { if (this->unkF4_8 != BOSSJINJO_JINJONATOR) {
if (actor_animationIsAt(this, 0.001f)) { if (actor_animationIsAt(this, 0.001f)) {
FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.2f, 25000, this->position, 1000, 5000); FUNC_8030E8B4(SFX_D_EGGSHELL_BREAKING, 1.2f, 25000, this->position, 1000, 5000);
func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.6f, 0.8f), 20000, this->position, 1000.0f, 5000.0f); func_8030E878(SFX_80_YUMYUM_CLACK, randf2(0.6f, 0.8f), 20000, this->position, 1000.0f, 5000.0f);
@ -91,10 +96,10 @@ void func_8038DA04(Actor *this) {
|| actor_animationIsAt(this, 0.9f) || actor_animationIsAt(this, 0.9f)
|| actor_animationIsAt(this, 0.98f) || actor_animationIsAt(this, 0.98f)
) { ) {
func_8030E6A4(SFX_3_DULL_CANNON_SHOT, randf2(1.2f, 1.4f), 0x4E20); func_8030E6A4(SFX_3_DULL_CANNON_SHOT, randf2(1.2f, 1.4f), 20000);
} }
} }
if (actor_animationIsAt(this, 0.999f) != 0) { if (actor_animationIsAt(this, 0.999f)) {
func_80328B8C(this, 3, 0.99999f, 1); func_80328B8C(this, 3, 0.99999f, 1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
func_80326310(this); func_80326310(this);
@ -103,7 +108,7 @@ void func_8038DA04(Actor *this) {
} }
} }
void func_8038DE98(ActorMarker *marker){ void chstonejinjo_breakOpen(ActorMarker *marker){
Actor *actor = marker_getActor(marker); Actor *actor = marker_getActor(marker);
s32 sp38; s32 sp38;
f32 sp34; f32 sp34;
@ -114,10 +119,10 @@ void func_8038DE98(ActorMarker *marker){
func_80328B8C(actor, 2, 0.0f, 1); func_80328B8C(actor, 2, 0.0f, 1);
actor_playAnimationOnce(actor); actor_playAnimationOnce(actor);
animctrl_setDuration(actor->animctrl, actor->unk1C[0]); animctrl_setDuration(actor->animctrl, actor->unk1C[0]);
func_802C3C88((GenMethod_1)func_8038D970, reinterpret_cast(s32, actor->marker)); SPAWNQUEUE_ADD_1(chstonejinjo_spawnJinjo, actor->marker);
if(!func_8031FF1C(0xD1) && actor->unkF4_8 != 5){ if(!func_8031FF1C(BKPROG_D1_HAS_ACTIVATED_A_JINJO_STATUE_IN_FINAL_FIGHT) && actor->unkF4_8 != BOSSJINJO_JINJONATOR){
sp38 = 0x30 + actor->unkF4_8*2; sp38 = 0x30 + actor->unkF4_8*2;
sp34 = func_8038D268(); sp34 = chbossjinjo_8038D268();
sp30 = actor->unk1C[0] + sp34; sp30 = actor->unk1C[0] + sp34;
func_8038C0DC(&sp24); func_8038C0DC(&sp24);
func_8028F94C(2, &sp24); func_8028F94C(2, &sp24);
@ -130,5 +135,5 @@ void func_8038DE98(ActorMarker *marker){
} }
f32 func_8038DFA0(void) { f32 func_8038DFA0(void) {
return func_80326EEC(0x3A1)->unk1C_x; return func_80326EEC(ACTOR_3A1_STONE_JINJO)->unk1C_x;
} }

View File

@ -11,7 +11,8 @@ Actor *func_8038FC40(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
/* .data */ /* .data */
ActorInfo D_80391DC0 = { ActorInfo D_80391DC0 = {
0x25D, 0x38A, 0x6C7, 0x1, NULL, 0x25D, 0x38A, ASSET_6C7_SPRITE_SMOKE_GREEN_2,
0x1, NULL,
func_8038FE94, func_80326224, func_8038FC40, func_8038FE94, func_80326224, func_8038FC40,
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };

View File

@ -1,30 +0,0 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
Actor *func_803912C0(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3);
void func_80391360(Actor *this);
/* .data */
ActorInfo D_80392090 = {
0x288, 0x3AF, 0x3BF, 0x1, NULL,
func_80391360, func_80326224, func_803912C0,
0, 0, 0.0f, 0
};
/* .code */
Actor *func_803912C0(ActorMarker *marker, Gfx **gdl, Mtx **mptr, Vtx **arg3){
f32 sp34[3];
f32 sp30;
Actor *sp2C;
sp2C = func_80325300(marker, sp34);
sp30 = sp2C->scale * ml_map_f(sp2C->unk1C[0], 0.0f, 1000.0f, 1.75f, 0.9f);
set_model_render_mode(2);
func_803391A4(gdl, mptr, sp2C->position, sp34, sp30, NULL, func_80330B1C(marker));
return sp2C;
}
void func_80391360(Actor *this){
actor_collisionOff(this);
}

12
src/fight/fight.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef _FIGHT_INTERNAL_H_
#define _FIGHT_INTERNAL_H_
enum bossjinjo_e{
BOSSJINJO_ORANGE = 1,
BOSSJINJO_GREEN,
BOSSJINJO_PINK,
BOSSJINJO_YELLOW,
BOSSJINJO_JINJONATOR
};
#endif

View File

@ -415,13 +415,13 @@ void func_80386D78(Actor *this) {
} else { } else {
this->scale = (this->scale < 1.0) ? this->scale + 0.04 : 1.0; this->scale = (this->scale < 1.0) ? this->scale + 0.04 : 1.0;
if (this->scale < 1.0) { if (this->scale < 1.0) {
this->yaw_moving += 8.0; this->yaw_ideal += 8.0;
if (this->yaw_moving >= 360.0f) { if (this->yaw_ideal >= 360.0f) {
phi_f2 = this->yaw_moving - 360.0f; phi_f2 = this->yaw_ideal - 360.0f;
} else { } else {
phi_f2 = this->yaw_moving; phi_f2 = this->yaw_ideal;
} }
this->yaw_moving = phi_f2; this->yaw_ideal = phi_f2;
this->yaw = phi_f2; this->yaw = phi_f2;
} }
} }
@ -804,7 +804,7 @@ void func_803880BC(Actor *this)
this->position_y -= 51.f; this->position_y -= 51.f;
this->unk1C[0] = 0; this->unk1C[0] = 0;
func_802C3C88((GenMethod_1)func_80387E94, reinterpret_cast(s32, this->marker)); __spawnqueue_add_1((GenMethod_1)func_80387E94, reinterpret_cast(s32, this->marker));
if (func_803203FC(0xBC) && !func_8031FF1C(0x9A)) if (func_803203FC(0xBC) && !func_8031FF1C(0x9A))
FUNC_8030E624(SFX_3F6_UNKNOWN, 0.75f, 30000); FUNC_8030E624(SFX_3F6_UNKNOWN, 0.75f, 30000);
@ -1496,7 +1496,7 @@ void func_8038982C(Actor *this)
this->initialized = TRUE; this->initialized = TRUE;
if (!func_8031FF1C(BKPROG_9E_CRYPT_COFFIN_LID_OPEN)) if (!func_8031FF1C(BKPROG_9E_CRYPT_COFFIN_LID_OPEN))
func_802C3C88((GenMethod_1)func_803897D4, reinterpret_cast(s32, this->marker)); __spawnqueue_add_1((GenMethod_1)func_803897D4, reinterpret_cast(s32, this->marker));
} }
} }

View File

@ -378,7 +378,7 @@ void func_8038AE2C(Actor *this) {
if( func_8038ADF0(sp38, (s32) this->velocity[0]) if( func_8038ADF0(sp38, (s32) this->velocity[0])
|| func_8038ADF0((s32) this->velocity[0], sp38) || func_8038ADF0((s32) this->velocity[0], sp38)
) { ) {
this->yaw_moving = (f32) sp38; this->yaw_ideal = (f32) sp38;
} }
func_80328FB0(this, 3.0f); func_80328FB0(this, 3.0f);
if( actor_animationIsAt(this, 0.114f) if( actor_animationIsAt(this, 0.114f)

View File

@ -115,7 +115,7 @@ void func_8038BCF0(Actor *this) {
} }
func_8028E668(this->position, 280.0f, -40.0f, 160.0f); func_8028E668(this->position, 280.0f, -40.0f, 160.0f);
this->yaw_moving = (f32) func_80329784(this); this->yaw_ideal = (f32) func_80329784(this);
func_80328FB0(this, 3.0f); func_80328FB0(this, 3.0f);
func_8024E55C(0, sp78); func_8024E55C(0, sp78);
player_getPosition(sp64); player_getPosition(sp64);

View File

@ -511,7 +511,7 @@ void func_8038D1E4(void)
} }
if (cleanupDelay > 0.0) // f64 if (cleanupDelay > 0.0) // f64
timedFunc_set_1(cleanupDelay, (TFQM1)func_8038D670, FFA_4_UNK); timedFunc_set_1(cleanupDelay, (GenMethod_1)func_8038D670, FFA_4_UNK);
} }
void func_8038D394(void) void func_8038D394(void)

View File

@ -365,7 +365,7 @@ void func_8038F350(Actor *this, s32 next_state){
} else if (this->unkF4_8 == 0xA) { } else if (this->unkF4_8 == 0xA) {
func_80324DBC(1.0f, 0xFAC, 4, NULL, this->marker, func_8038F0C0, NULL); func_80324DBC(1.0f, 0xFAC, 4, NULL, this->marker, func_8038F0C0, NULL);
} }
timedFunc_set_1(2.0f, (TFQM1) func_8038EBEC, (s32) this->marker); timedFunc_set_1(2.0f, (GenMethod_1) func_8038EBEC, (s32) this->marker);
this->unk60 = 3.0f; this->unk60 = 3.0f;
break; break;
} }

Some files were not shown because too many files have changed in this diff Show More