The first commit
This commit is contained in:
98
src/CCW/code_50D0.c
Normal file
98
src/CCW/code_50D0.c
Normal file
@@ -0,0 +1,98 @@
|
||||
#include <ultra64.h>
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
void func_8038B87C(Actor *this);
|
||||
|
||||
/* .data */
|
||||
ActorInfo D_8038F300 = {
|
||||
0x1BA, 0x2A7, 0x503,
|
||||
0x0, NULL,
|
||||
func_8038B87C, NULL, func_80325888,
|
||||
0, 0, 2.0f, 0
|
||||
};
|
||||
|
||||
s32 D_8038F324[] = {
|
||||
SFX_97_BLUBBER_BURPS,
|
||||
SFX_3E_POOP_NOISE,
|
||||
SFX_F6_BLUBBER_TALKING_2,
|
||||
SFX_F7_BLUBBER_TALKING_3,
|
||||
SFX_F8_BLUBBER_TALKING_4,
|
||||
SFX_F5_BLUBBER_TALKING_1,
|
||||
0
|
||||
};
|
||||
|
||||
/* .code */
|
||||
void func_8038B4C0(ActorMarker *marker) {
|
||||
Actor *this;
|
||||
static s32 D_8038F340 = 0;
|
||||
|
||||
this = marker_getActor(marker);
|
||||
func_8030E878(D_8038F324[D_8038F340], randf2(1.1f, 1.2f), (s32) randf2(31000.0f, 32000.0f), this->position, 500.0f, 2500.0f);
|
||||
D_8038F340++;
|
||||
if (D_8038F324[D_8038F340] == 0) {
|
||||
D_8038F340 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8038B58C(ActorMarker* marker) {
|
||||
Actor* actor = marker_getActor(marker);
|
||||
|
||||
func_8030E878(0x81, randf2(1.0f, 1.1f), (s32) randf2(31000.0f, 32000.0f), actor->position, 500.0f, 2500.0f);
|
||||
}
|
||||
|
||||
void func_8038B610(ActorMarker* marker) {
|
||||
Actor* actor;
|
||||
s32 temp_s0;
|
||||
f32 sp24;
|
||||
s32 sp20;
|
||||
|
||||
actor = marker_getActor(marker);
|
||||
temp_s0 = func_802F9AA8(SFX_12B_BOILING_AND_BUBBLING);
|
||||
sp24 = randf2(1.0f, 1.0f);
|
||||
sp20 = randf2(29000.0f, 32000.0f);
|
||||
func_802F9DB8(temp_s0, sp24, sp24, 0.0f);
|
||||
func_802F9EC4(temp_s0, actor->position, 0xC8, 0x7D0);
|
||||
func_802F9F80(temp_s0, 0.05f, 0.2f, 0.3f);
|
||||
func_802FA060(temp_s0, sp20, sp20, 0.0f);
|
||||
}
|
||||
|
||||
void func_8038B6DC(ActorMarker *marker) {
|
||||
Actor *this;
|
||||
f32 phi_f20;
|
||||
int i;
|
||||
|
||||
this = marker_getActor(marker);
|
||||
func_80335650(this->unk148);
|
||||
phi_f20 = randf2(0.1f, 0.3f);
|
||||
for(i = 0; i < 3; i++){
|
||||
func_80335800(this->unk148, phi_f20, func_8038B610, this->marker);
|
||||
phi_f20 += randf2(0.15f, 0.3f);
|
||||
if(0.85 < phi_f20)
|
||||
break;
|
||||
}
|
||||
func_80335800(this->unk148, 0.35f, func_8038B4C0, this->marker);
|
||||
func_80335800(this->unk148, 0.63f, func_8038B58C, this->marker);
|
||||
func_80335800(this->unk148, 0.9f, func_8038B6DC, this->marker);
|
||||
}
|
||||
|
||||
void func_8038B814(Actor *this, s32 next_state) {
|
||||
if (next_state == 1) {
|
||||
func_80335924(this->unk148, 0x22B, 0.2f, 11.0f);
|
||||
func_8038B6DC(this->marker);
|
||||
}
|
||||
this->state = next_state;
|
||||
}
|
||||
|
||||
void func_8038B87C(Actor *this) {
|
||||
if (!this->unk16C_4) {
|
||||
this->unk16C_4 = TRUE;
|
||||
this->unk138_24 = FALSE;
|
||||
func_8038B814(this, 1);
|
||||
}
|
||||
if (!this->unk138_24 && func_803292E0(this)) {
|
||||
this->unk138_24 = TRUE;
|
||||
func_80311480(0xCC9, 0, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
func_8028E668(this->position, 300.0f, -50.0f, 120.0f);
|
||||
}
|
Reference in New Issue
Block a user