label FP files

This commit is contained in:
Banjo Kazooie
2023-01-31 17:32:35 -06:00
parent 2f858b790b
commit 96317e7239
29 changed files with 297 additions and 311 deletions

View File

@@ -1676,7 +1676,7 @@ segments:
- [0x1052450, c, code_6370] #DONE - [0x1052450, c, code_6370] #DONE
- [0x1053060, c, code_6F80] #DONE - [0x1053060, c, code_6F80] #DONE
- [0x1053140, c, code_7060] #DONE - [0x1053140, c, code_7060] #DONE
- [0x1053610, c, code_7530] #DONE - [0x1053610, c, ch/histup] #DONE
- [0x1053E30, c, code_7D50] #DONE - [0x1053E30, c, code_7D50] #DONE
- [0x1053E90, c, code_7DB0] #DONE - [0x1053E90, c, code_7DB0] #DONE
- [0x10540A0, c, code_7FC0] #DONE - [0x10540A0, c, code_7FC0] #DONE
@@ -1686,7 +1686,7 @@ segments:
- [0x1055C50, c, code_9B70] #DONE - [0x1055C50, c, code_9B70] #DONE
- [0x1055CF0, c, code_9C10] #DONE - [0x1055CF0, c, code_9C10] #DONE
- [0x1055E90, c, matchinggame] #DONE - [0x1055E90, c, matchinggame] #DONE
- [0x1056570, c, code_A490] #DONE - [0x1056570, c, waterctrl] #DONE
- [0x10568C0, .data, ch/toots] - [0x10568C0, .data, ch/toots]
- [0x1056910, .data, ch/ancientone] - [0x1056910, .data, ch/ancientone]
- [0x1056970, .data, ch/gobi1] - [0x1056970, .data, ch/gobi1]
@@ -1709,7 +1709,7 @@ segments:
- [0x1056EE0, .data, code_6370] - [0x1056EE0, .data, code_6370]
- [0x1056F50, .data, code_6F80] - [0x1056F50, .data, code_6F80]
- [0x1056F80, .data, code_7060] - [0x1056F80, .data, code_7060]
- [0x1056FD0, .data, code_7530] - [0x1056FD0, .data, ch/histup]
- [0x1057030, .data, code_7DB0] - [0x1057030, .data, code_7DB0]
- [0x1057070, .data, code_7FC0] - [0x1057070, .data, code_7FC0]
- [0x10570D0, .data, code_7FF0] - [0x10570D0, .data, code_7FF0]
@@ -1729,12 +1729,12 @@ segments:
- [0x1057530, .rodata, code_5570] - [0x1057530, .rodata, code_5570]
- [0x1057580, .rodata, code_6370] - [0x1057580, .rodata, code_6370]
- [0x10575E0, .rodata, code_7060] - [0x10575E0, .rodata, code_7060]
- [0x1057600, .rodata, code_7530] - [0x1057600, .rodata, ch/histup]
- [0x1057630, .rodata, code_7FF0] - [0x1057630, .rodata, code_7FF0]
- [0x1057690, .rodata, ch/mazectrl] - [0x1057690, .rodata, ch/mazectrl]
- [0x10576B0, .rodata, ch/buriedpyramid] - [0x10576B0, .rodata, ch/buriedpyramid]
- [0x10576F0, .rodata, matchinggame] - [0x10576F0, .rodata, matchinggame]
- [0x1057700, .rodata, code_A490] - [0x1057700, .rodata, waterctrl]
- [0x1057710, .bss, bss_pad] - [0x1057710, .bss, bss_pad]
- [0x1057710, .bss, ch/toots] - [0x1057710, .bss, ch/toots]
- [0x1057710, .bss, ch/gobi1] - [0x1057710, .bss, ch/gobi1]
@@ -1748,7 +1748,7 @@ segments:
- [0x1057710, .bss, code_7FF0] - [0x1057710, .bss, code_7FF0]
- [0x1057710, .bss, code_9C10] - [0x1057710, .bss, code_9C10]
- [0x1057710, .bss, matchinggame] - [0x1057710, .bss, matchinggame]
- [0x1057710, .bss, code_A490] - [0x1057710, .bss, waterctrl]
- name: MMM - name: MMM
dir: MMM dir: MMM
type: code type: code
@@ -2029,80 +2029,80 @@ segments:
follows_vram: core2 follows_vram: core2
exclusive_ram_id: overlay exclusive_ram_id: overlay
subsegments: subsegments:
- [0x107E030, c, code_0] #DONE - [0x107E030, c, ch/scarfsled] #DONE
- [0x107E500, c, code_4D0] #DONE - [0x107E500, c, ch/racesled] #DONE
- [0x107E7C0, c, code_790] #DONE - [0x107E7C0, c, ch/snowmanbutton] #DONE
- [0x107EA70, c, code_A40] #DONE - [0x107EA70, c, ch/xmastree] #DONE
- [0x107F220, c, code_11F0] #DONE - [0x107F220, c, ch/boggy1] #DONE
- [0x107FA10, c, code_19E0] #DONE - [0x107FA10, c, code_19E0] #DONE
- [0x1080020, c, code_1FF0] #DONE - [0x1080020, c, code_1FF0] #DONE
- [0x1080380, c, code_2350] #DONE - [0x1080380, c, ch/boggy2] #DONE
- [0x1081E30, c, code_3E00] #DONE - [0x1081E30, c, ch/bearcub] #DONE
- [0x1082430, c, code_4400] #DONE - [0x1082430, c, sirslushgame] #DONE
- [0x1082600, c, code_45D0] #DONE - [0x1082600, c, snowmanbuttongame] #DONE
- [0x10827A0, c, code_4770] #DONE - [0x10827A0, c, racectrl] #DONE
- [0x1083CF0, c, code_5CC0] - [0x1083CF0, c, ch/twinkly]
- [0x1084B10, c, code_6AE0] #DONE - [0x1084B10, c, ch/twinklybox] #DONE
- [0x10859B0, c, code_7980] #DONE - [0x10859B0, c, ch/twinklymuncher] #DONE
- [0x1086360, c, code_8330] #DONE - [0x1086360, c, ch/xmastreeswitch] #DONE
- [0x1086810, c, code_87E0] #DONE - [0x1086810, c, ch/xmastreestar] #DONE
- [0x1086D30, c, code_8D00] #DONE - [0x1086D30, c, ch/present] #DONE
- [0x1086E50, c, code_8E20] #DONE - [0x1086E50, c, ch/wozza] #DONE
- [0x1087B40, c, ch/wozzasjig] #DONE - [0x1087B40, c, ch/wozzasjig] #DONE
- [0x1087ED0, c, code_9EA0] #DONE - [0x1087ED0, c, ch/boggy3] #DONE
- [0x10881F0, c, code_A1C0] #DONE - [0x10881F0, c, code_A1C0] #DONE
- [0x1088270, c, code_A240] #DONE - [0x1088270, c, ch/cavewozza] #DONE
- [0x1088530, c, code_A500] #DONE - [0x1088530, c, ch/xmastreeice] #DONE
- [0x10888B0, c, code_A880] #DONE - [0x10888B0, c, ch/xmastreeeggtoll] #DONE
- [0x1088C00, c, code_ABD0] #DONE - [0x1088C00, c, code_ABD0] #DONE
- [0x1089500, c, code_B4D0] #DONE - [0x1089500, c, code_B4D0] #DONE
- [0x1089630, .data, code_0] - [0x1089630, .data, ch/scarfsled]
- [0x1089680, .data, code_4D0] - [0x1089680, .data, ch/racesled]
- [0x10896D0, .data, code_790] - [0x10896D0, .data, ch/snowmanbutton]
- [0x1089790, .data, code_A40] - [0x1089790, .data, ch/xmastree]
- [0x10897C0, .data, code_11F0] - [0x10897C0, .data, ch/boggy1]
- [0x1089840, .data, code_19E0] - [0x1089840, .data, code_19E0]
- [0x1089880, .data, code_1FF0] - [0x1089880, .data, code_1FF0]
- [0x10898C0, .data, code_2350] - [0x10898C0, .data, ch/boggy2]
- [0x1089A30, .data, code_3E00] - [0x1089A30, .data, ch/bearcub]
- [0x1089AF0, .data, code_4400] - [0x1089AF0, .data, sirslushgame]
- [0x1089B00, .data, code_45D0] - [0x1089B00, .data, snowmanbuttongame]
- [0x1089B10, .data, code_4770] - [0x1089B10, .data, racectrl]
- [0x1089B90, .data, code_5CC0] - [0x1089B90, .data, ch/twinkly]
- [0x1089D00, .data, code_6AE0] - [0x1089D00, .data, ch/twinklybox]
- [0x1089FD0, .data, code_7980] - [0x1089FD0, .data, ch/twinklymuncher]
- [0x108A040, .data, code_8330] - [0x108A040, .data, ch/xmastreeswitch]
- [0x108A0B0, .data, code_87E0] - [0x108A0B0, .data, ch/xmastreestar]
- [0x108A0E0, .data, code_8D00] - [0x108A0E0, .data, ch/present]
- [0x108A160, .data, code_8E20] - [0x108A160, .data, ch/wozza]
- [0x108A200, .data, ch/wozzasjig] - [0x108A200, .data, ch/wozzasjig]
- [0x108A2C0, .data, code_9EA0] - [0x108A2C0, .data, ch/boggy3]
- [0x108A300, .data, code_A1C0] - [0x108A300, .data, code_A1C0]
- [0x108A330, .data, code_A240] - [0x108A330, .data, ch/cavewozza]
- [0x108A370, .data, code_A500] - [0x108A370, .data, ch/xmastreeice]
- [0x108A480, .data, code_A880] - [0x108A480, .data, ch/xmastreeeggtoll]
- [0x108A520, .data, code_ABD0] - [0x108A520, .data, code_ABD0]
- [0x108A7C0, .rodata, code_0] - [0x108A7C0, .rodata, ch/scarfsled]
- [0x108A7D0, .rodata, code_A40] - [0x108A7D0, .rodata, ch/xmastree]
- [0x108A830, .rodata, code_11F0] - [0x108A830, .rodata, ch/boggy1]
- [0x108A850, .rodata, code_19E0] - [0x108A850, .rodata, code_19E0]
- [0x108A860, .rodata, code_1FF0] - [0x108A860, .rodata, code_1FF0]
- [0x108A870, .rodata, code_2350] - [0x108A870, .rodata, ch/boggy2]
- [0x108A950, .rodata, code_3E00] - [0x108A950, .rodata, ch/bearcub]
- [0x108A970, .rodata, code_4770] - [0x108A970, .rodata, racectrl]
- [0x108A9C0, .rodata, code_5CC0] - [0x108A9C0, .rodata, ch/twinkly]
- [0x108AA40, .rodata, code_6AE0] - [0x108AA40, .rodata, ch/twinklybox]
- [0x108AA80, .rodata, code_7980] - [0x108AA80, .rodata, ch/twinklymuncher]
- [0x108AAB0, .rodata, code_87E0] - [0x108AAB0, .rodata, ch/xmastreestar]
- [0x108AAC0, .rodata, code_8E20] - [0x108AAC0, .rodata, ch/wozza]
- [0x108AB10, .rodata, ch/wozzasjig] - [0x108AB10, .rodata, ch/wozzasjig]
- [0x108AB30, .rodata, code_A500] - [0x108AB30, .rodata, ch/xmastreeice]
- [0x108AB40, .rodata, code_A880] - [0x108AB40, .rodata, ch/xmastreeeggtoll]
- [0x108AB50, .bss, bss_pad] - [0x108AB50, .bss, bss_pad]
- [0x108AB50, .bss, code_2350] - [0x108AB50, .bss, ch/boggy2]
- [0x108AB50, .bss, code_4400] - [0x108AB50, .bss, sirslushgame]
- [0x108AB50, .bss, code_45D0] - [0x108AB50, .bss, snowmanbuttongame]
- [0x108AB50, .bss, code_4770] - [0x108AB50, .bss, racectrl]
- [0x108AB50, .bss, bss_end_pad] - [0x108AB50, .bss, bss_end_pad]
- name: SM - name: SM
dir: SM dir: SM

View File

@@ -3802,6 +3802,7 @@ enum marker_e{
MARKER_95_CHIMPY_STUMP = 0x95, MARKER_95_CHIMPY_STUMP = 0x95,
MARKER_96_RIPPER, MARKER_96_RIPPER,
MARKER_97_BOGGY_2,
MARKER_99_TEEHEE = 0x99, MARKER_99_TEEHEE = 0x99,

View File

@@ -45,40 +45,11 @@ ActorAnimationInfo D_80391C80[] = {
{0x150, 0.6f} {0x150, 0.6f}
}; };
ActorInfo D_80391CE8 = { 0x97, ACTOR_C8_BOGGY_2, ASSET_38A_MODEL_BOGGY_1, ActorInfo D_80391CE8 = { MARKER_97_BOGGY_2, ACTOR_C8_BOGGY_2, ASSET_38A_MODEL_BOGGY_1,
0x1, D_80391C80, 0x1, D_80391C80,
FP_func_80388F4C, func_803896FC, func_80388740, FP_func_80388F4C, func_803896FC, func_80388740,
0, 0, 1.4f, 0 0, 0, 1.4f, 0
}; };
f32 D_80391D0C[3] = {1842.0f, 658.0f, 5758.0f};
f32 D_80391D18[3] = {1463.0f, 635.0f, 5193.0f};
s32 D_80391D24[3] = {0xc8, 0xc8, 0xe6};
struct31s D_80391D30 = {
{0.2f, 0.4f},
{1.2f, 1.6f},
{0.0f, 0.001f},
{0.3f, 0.45f},
0.0f, 0.01f
};
struct42s D_80391D58 = {
{{-10.0f, 10.0f, -10.0f}, {10.0f, 240.0f, 10.0f}},
{{0.0f, 0.0f, 0.0f}, {0.0f, 20.0f, 0.0f}}
};
f32 D_80391D88[3] = { 1592.0f, 673.0f, 5895.0f};
f32 FP_D_80391D94[3] = {0.0f, 0.0f, 0.0f};
s32 D_80391DA0[3] = {0x5F5, 0x292, 0x1539};
s32 D_80391DAC[3] = {-0x11F8, 0x637, -0x1816};
Struct_FP_2350 D_80391DB8[7]={
{0x361, 0x35D},
{0x365, 0x35D},
{0x362, 0x360},
{0x366, 0x35D},
{0x37B, 0x35D},
{0x363, 0x35F},
{0x364, 0x35E}
};
/* .bss */ /* .bss */
s32 D_80392F20[3]; s32 D_80392F20[3];
@@ -117,6 +88,8 @@ Actor *func_80388740(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
} }
void FP_func_803888E4(Actor *this){ void FP_func_803888E4(Actor *this){
static f32 D_80391D0C[3] = {1842.0f, 658.0f, 5758.0f};
static f32 D_80391D18[3] = {1463.0f, 635.0f, 5193.0f};
func_80328B8C(this, 0xC, 0.0001f, 1); func_80328B8C(this, 0xC, 0.0001f, 1);
if(!jiggyscore_isSpawned(JIGGY_30_FP_BOGGY_2)){ if(!jiggyscore_isSpawned(JIGGY_30_FP_BOGGY_2)){
if(mapSpecificFlags_get(5)){ if(mapSpecificFlags_get(5)){
@@ -255,6 +228,18 @@ void func_80388D70(ActorMarker *caller, enum asset_e text_id, s32 arg2){
} }
void func_80388EE8(ParticleEmitter *pCtrl){ void func_80388EE8(ParticleEmitter *pCtrl){
static s32 D_80391D24[3] = {0xc8, 0xc8, 0xe6};
static struct31s D_80391D30 = {
{0.2f, 0.4f},
{1.2f, 1.6f},
{0.0f, 0.001f},
{0.3f, 0.45f},
0.0f, 0.01f
};
static struct42s D_80391D58 = {
{{-10.0f, 10.0f, -10.0f}, {10.0f, 240.0f, 10.0f}}, /*position*/
{{0.0f, 0.0f, 0.0f}, {0.0f, 20.0f, 0.0f}} /*velocity*/
};
particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST); particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST);
particleEmitter_setRGB(pCtrl, D_80391D24); particleEmitter_setRGB(pCtrl, D_80391D24);
particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_80391D58); particleEmitter_setPositionAndVelocityRanges(pCtrl, &D_80391D58);
@@ -265,6 +250,8 @@ void func_80388EE8(ParticleEmitter *pCtrl){
void FP_func_80388F4C(Actor *this){} void FP_func_80388F4C(Actor *this){}
void func_80388F54(ActorMarker *marker){ void func_80388F54(ActorMarker *marker){
static f32 D_80391D88[3] = { 1592.0f, 673.0f, 5895.0f};
static f32 FP_D_80391D94[3] = {0.0f, 0.0f, 0.0f};
Actor *other = func_80328230(ACTOR_C8_BOGGY_2, D_80391D88, FP_D_80391D94); Actor *other = func_80328230(ACTOR_C8_BOGGY_2, D_80391D88, FP_D_80391D94);
func_80343DEC(other); func_80343DEC(other);
} }
@@ -374,6 +361,17 @@ void func_803893E4(Actor *this, f32 arg1, u8 arg2){
} }
void func_803895E0(void){ void func_803895E0(void){
static s32 D_80391DA0[3] = {0x5F5, 0x292, 0x1539};
static s32 D_80391DAC[3] = {-0x11F8, 0x637, -0x1816};
static Struct_FP_2350 D_80391DB8[7]={
{0x361, 0x35D},
{0x365, 0x35D},
{0x362, 0x360},
{0x366, 0x35D},
{0x37B, 0x35D},
{0x363, 0x35F},
{0x364, 0x35E}
};
int i; int i;
NodeProp *s0; NodeProp *s0;
f32 sp64[3]; f32 sp64[3];

View File

@@ -2,26 +2,26 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
Actor *func_803868C0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *chRaceSled_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_80386AA4(Actor *this); void chRaceSled_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo FP_D_80391A40 []= { ActorAnimationInfo chRaceSledAnimations []= {
{ ASSET_1A1_ANIM_SLED, 1.0f}, { ASSET_1A1_ANIM_SLED, 1.0f},
{ ASSET_1A1_ANIM_SLED, 1.0f}, { ASSET_1A1_ANIM_SLED, 1.0f},
{ ASSET_1A1_ANIM_SLED, 1.0f}, { ASSET_1A1_ANIM_SLED, 1.0f},
{ ASSET_1A1_ANIM_SLED, 1.0f} { ASSET_1A1_ANIM_SLED, 1.0f}
}; };
ActorInfo FP_D_80391A60 = { ActorInfo chRaceSled = {
MARKER_3C_RACE_SLED, ACTOR_182_RACE_SLED, ASSET_352_MODEL_SLED, MARKER_3C_RACE_SLED, ACTOR_182_RACE_SLED, ASSET_352_MODEL_SLED,
0x0, FP_D_80391A40, 0x0, chRaceSledAnimations,
func_80386AA4, NULL, func_803868C0, chRaceSled_update, NULL, chRaceSled_draw,
1000, 0, 0.0f, 0 1000, 0, 0.0f, 0
}; };
/* .code */ /* .code */
Actor *func_803868C0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *chRaceSled_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
if(this->unk10_12 == FALSE){ if(this->unk10_12 == FALSE){
return func_80325888(marker, gfx, mtx, vtx); return func_80325888(marker, gfx, mtx, vtx);
@@ -29,7 +29,7 @@ Actor *func_803868C0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
return this; return this;
} }
void FP_func_80386920(Actor *this, s32 next_state){ void __chRaceSled_setState(Actor *this, s32 next_state){
if(this->state != 1 || next_state != 1){ if(this->state != 1 || next_state != 1){
func_80328A84(this, next_state); func_80328A84(this, next_state);
switch(next_state){ switch(next_state){
@@ -49,7 +49,7 @@ void FP_func_80386920(Actor *this, s32 next_state){
} }
} }
void func_803869FC(ActorMarker *this_marker, ActorMarker *other_marker){ void __chRaceSled_touch(ActorMarker *this_marker, ActorMarker *other_marker){
Actor *this = marker_getActor(this_marker); Actor *this = marker_getActor(this_marker);
f32 plyr_pos[3]; f32 plyr_pos[3];
@@ -60,33 +60,33 @@ void func_803869FC(ActorMarker *this_marker, ActorMarker *other_marker){
&& player_getTransformation() == TRANSFORM_4_WALRUS && player_getTransformation() == TRANSFORM_4_WALRUS
&& func_8028F68C(BS_INTR_27_WALRUS_SLED, this->marker) && func_8028F68C(BS_INTR_27_WALRUS_SLED, this->marker)
){ ){
FP_func_80386920(this, 3); //start_race __chRaceSled_setState(this, 3); //start_race
} }
} }
} }
void func_80386AA4(Actor *this){ void chRaceSled_update(Actor *this){
s32 sp24; s32 sp24;
if(!this->initialized){ if(!this->initialized){
this->initialized = TRUE; this->initialized = TRUE;
marker_setCollisionScripts(this->marker, func_803869FC, NULL, NULL); marker_setCollisionScripts(this->marker, __chRaceSled_touch, NULL, NULL);
FP_func_80386920(this, 1); __chRaceSled_setState(this, 1);
} }
sp24 = mapSpecificFlags_get(4); sp24 = mapSpecificFlags_get(4);
if(sp24 == 0){ if(sp24 == 0){
FP_func_80386920(this, 1); __chRaceSled_setState(this, 1);
} }
switch (this->state){ switch (this->state){
case 1://L80386B38 case 1://L80386B38
if(sp24){ if(sp24){
FP_func_80386920(this, 2); __chRaceSled_setState(this, 2);
} }
break; break;
case 3://L80386B50 case 3://L80386B50
if(func_8028ECAC() != BSGROUP_C_WALRUS_SLED){ if(func_8028ECAC() != BSGROUP_C_WALRUS_SLED){
FP_func_80386920(this, 2); __chRaceSled_setState(this, 2);
} }
break; break;
} }

View File

@@ -2,25 +2,25 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
void func_803867BC(Actor *this); void chScarfSled_update(Actor *this);
/* .data */ /* .data */
ActorAnimationInfo FP_D_803919F0[] ={ ActorAnimationInfo chScarfSledAnimations[] ={
{ASSET_1A1_ANIM_SLED, 1.0f}, {ASSET_1A1_ANIM_SLED, 1.0f},
{ASSET_1A1_ANIM_SLED, 1.0f}, {ASSET_1A1_ANIM_SLED, 1.0f},
{ASSET_1A1_ANIM_SLED, 1.0f}, {ASSET_1A1_ANIM_SLED, 1.0f},
{ASSET_1A1_ANIM_SLED, 1.0f} {ASSET_1A1_ANIM_SLED, 1.0f}
}; };
ActorInfo FP_D_80391A10 = { ActorInfo chScarfSled = {
MARKER_3B_SCARF_SLED, ACTOR_181_SCARF_SLED, ASSET_352_MODEL_SLED, MARKER_3B_SCARF_SLED, ACTOR_181_SCARF_SLED, ASSET_352_MODEL_SLED,
0, FP_D_803919F0, 0, chScarfSledAnimations,
NULL, func_803867BC, func_80325888, NULL, chScarfSled_update, func_80325888,
1000, 0, 0.0f, 0 1000, 0, 0.0f, 0
}; };
/* .code */ /* .code */
void FP_func_803863F0(Actor *this, s32 next_state){ void __chScarfSled_setState(Actor *this, s32 next_state){
func_80328A84(this, next_state); func_80328A84(this, next_state);
if(next_state == 2){ if(next_state == 2){
@@ -40,17 +40,17 @@ void FP_func_803863F0(Actor *this, s32 next_state){
} }
} }
void func_803864F4(ActorMarker *this_marker, ActorMarker *other_marker){ void __chScarfSled_touch(ActorMarker *this_marker, ActorMarker *other_marker){
Actor * this = marker_getActor(this_marker); Actor * this = marker_getActor(this_marker);
if(this->state != 1) return; if(this->state != 1) return;
if(player_getTransformation() != TRANSFORM_1_BANJO) return; if(player_getTransformation() != TRANSFORM_1_BANJO) return;
if(func_8028F68C(BS_INTR_27_BANJO_SLED, this->marker)) if(func_8028F68C(BS_INTR_27_BANJO_SLED, this->marker))
FP_func_803863F0(this, 2); __chScarfSled_setState(this, 2);
} }
void func_8038655C(Actor *this){ void __chScarfSled_func_8038655C(Actor *this){
int tmp_bool; int tmp_bool;
int tmp; int tmp;
tmp_bool = (mlAbsF(this->position_y - this->velocity_y) < 100.0f); tmp_bool = (mlAbsF(this->position_y - this->velocity_y) < 100.0f);
@@ -71,7 +71,7 @@ void func_8038655C(Actor *this){
} }
} }
void func_80386630(Actor *this){ void __chScarfSled_func_80386630(Actor *this){
f32 sp7C[3]; f32 sp7C[3];
f32 sp70[3]; f32 sp70[3];
f32 sp64[3]; f32 sp64[3];
@@ -79,7 +79,7 @@ void func_80386630(Actor *this){
func_80343DEC(this); func_80343DEC(this);
mapSpecificFlags_set(9, 1); mapSpecificFlags_set(9, 1);
func_8038655C(this); __chScarfSled_func_8038655C(this);
if(this->unk138_20){ if(this->unk138_20){
this->yaw = 0.0f; this->yaw = 0.0f;
@@ -121,14 +121,14 @@ void func_80386630(Actor *this){
}//L803867AC }//L803867AC
} }
void func_803867BC(Actor *this){ void chScarfSled_update(Actor *this){
if(!this->initialized){ if(!this->initialized){
this->initialized = TRUE; this->initialized = TRUE;
marker_setCollisionScripts(this->marker, func_803864F4, NULL, NULL); marker_setCollisionScripts(this->marker, __chScarfSled_touch, NULL, NULL);
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
this->unk10_12 = 0; this->unk10_12 = 0;
ml_vec3f_clear(this->velocity); ml_vec3f_clear(this->velocity);
FP_func_803863F0(this, 1); __chScarfSled_setState(this, 1);
} }
if(!this->unk16C_4){ if(!this->unk16C_4){
@@ -143,6 +143,6 @@ void func_803867BC(Actor *this){
this->velocity_y = func_80309724(this->position); this->velocity_y = func_80309724(this->position);
this->velocity_z = this->position_z; this->velocity_z = this->position_z;
if(this->state == 2){ if(this->state == 2){
func_80386630(this); __chScarfSled_func_80386630(this);
} }
} }

View File

@@ -54,7 +54,7 @@ void FP_func_80386BEC(Actor *this){
actor_collisionOff(this); actor_collisionOff(this);
func_8025A6EC(COMUSIC_2B_DING_B, 28000); func_8025A6EC(COMUSIC_2B_DING_B, 28000);
FUNC_8030E624(SFX_90_SWITCH_PRESS, 1.0f, 32000); FUNC_8030E624(SFX_90_SWITCH_PRESS, 1.0f, 32000);
func_8038AB40(); fp_snowmanButtonGame_decRemaining();
particleEmitter_setRGB(pCtrl, D_80391B44); particleEmitter_setRGB(pCtrl, D_80391B44);
particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST); particleEmitter_setSprite(pCtrl, ASSET_700_SPRITE_DUST);
particleEmitter_setPosition(pCtrl, plyr_pos); particleEmitter_setPosition(pCtrl, plyr_pos);
@@ -84,7 +84,7 @@ void FP_func_80386CF8(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if(this->state == 3){ if(this->state == 3){
func_8038AB40(); fp_snowmanButtonGame_decRemaining();
} }
} }

View File

@@ -23,97 +23,6 @@ ActorInfo D_803920E8 = { 0x204, 0x336, 0x442,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
struct31s D_8039210C = {
{ 0.4f, 0.8f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
{ 1.8f, 2.2f },
0.0f,
0.7f
};
struct43s D_80392134 = {
{{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
{{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}
};
struct31s D_8039217C = {
{0.8f, 1.2f },
{1.4f, 2.0f },
{0.0f, 0.01f},
{1.2f, 1.8f },
0.0f,
0.01f
};
s32 D_803921A4[3] = { 0xDC, 0xDC, 0xE6};
struct43s D_803921B0 = {
{{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}},
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}},
{{-50.0f, 0.0f, -50.0f}, {50.0f, 200.0f, 50.0f}}
};
struct31s D_803921F8 = {
{ 0.2f, 0.3f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
{ 2.0f, 2.5f },
0.0f, 0.3f
};
struct43s D_80392220 = {
{{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
{{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
};
struct31s D_80392268 ={
{ 0.4f, 0.6f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
{ 2.0f, 2.5f },
0.0f,
0.3f
};
struct43s D_80392290 = {
{{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
{{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
};
struct31s D_803922D8 = {
{0.5f, 0.7f },
{1.4f, 1.7f },
{0.0f, 0.01f},
{0.6f, 0.9f },
0.0f, 0.01f
};
s32 D_80392300[3] = { 0xDC, 0xDC, 0xE6};
struct43s D_8039230C = {
{{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}},
{{0.0f, -10.0f, 0.0f}, {0.0f, -10.0f, 0.0f}},
{{-80.0f, 0.0f, -80.0f}, {50.0f, 200.0f, 80.0f}}
};
f32 D_80392354[3] = {-4165.0f, 73.0f, 4483.0f};
f32 D_80392360[3] = {-4292.0f, 73.0f, 5054.0f};
enum actor_e D_8039236C[4] = {
ACTOR_332_TWINKLY_BLUE,
ACTOR_333_TWINKLY_GREEN,
ACTOR_334_TWINKLY_ORANGE,
ACTOR_335_TWINKLY_RED,
};
f32 D_8039237C[3] = {-3940.0f, 69.0f, 3570.0f};
/* .code */ /* .code */
Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
@@ -125,6 +34,19 @@ Actor *FP_func_8038CED0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
} }
void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
static struct31s D_8039210C = {
{ 0.4f, 0.8f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
{ 1.8f, 2.2f },
0.0f,
0.7f
};
static struct43s D_80392134 = {
{{-200.0f, 200.0f, -200.0f}, {200.0f, 400.0f, 200.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
{{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}}
};
ParticleEmitter *pCtrl; ParticleEmitter *pCtrl;
pCtrl = partEmitMgr_newEmitter(count); pCtrl = partEmitMgr_newEmitter(count);
@@ -142,6 +64,21 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
} }
void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_8039217C = {
{0.8f, 1.2f },
{1.4f, 2.0f },
{0.0f, 0.01f},
{1.2f, 1.8f },
0.0f,
0.01f
};
static s32 D_803921A4[3] = { 0xDC, 0xDC, 0xE6};
static struct43s D_803921B0 = {
{{-200.0f, 0.0f, -200.0f}, {200.0f, 200.0f, 200.0f}},
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}},
{{-50.0f, 0.0f, -50.0f}, {50.0f, 200.0f, 50.0f}}
};
ParticleEmitter *pCtrl; ParticleEmitter *pCtrl;
pCtrl = partEmitMgr_newEmitter(count); pCtrl = partEmitMgr_newEmitter(count);
@@ -154,6 +91,19 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
} }
void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
static struct31s D_803921F8 = {
{ 0.2f, 0.3f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
{ 2.0f, 2.5f },
0.0f, 0.3f
};
static struct43s D_80392220 = {
{{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
{{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
};
ParticleEmitter *pCtrl; ParticleEmitter *pCtrl;
pCtrl = partEmitMgr_newEmitter(count); pCtrl = partEmitMgr_newEmitter(count);
@@ -171,6 +121,19 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
} }
void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_80392268 ={
{ 0.4f, 0.6f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
{ 2.0f, 2.5f },
0.0f,
0.3f
};
static struct43s D_80392290 = {
{{-300.0f, 400.0f, -300.0f}, {300.0f, 800.0f, 300.0f}},
{{ 0.0f, -800.0f, 0.0f}, { 0.0f, -800.0f, 0.0f}},
{{-80.0f, 80.0f, -80.0f}, {80.0f, 80.0f, 80.0f}}
};
ParticleEmitter *pCtrl; ParticleEmitter *pCtrl;
pCtrl = partEmitMgr_newEmitter(count); pCtrl = partEmitMgr_newEmitter(count);
@@ -184,6 +147,19 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
} }
void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_803922D8 = {
{0.5f, 0.7f },
{1.4f, 1.7f },
{0.0f, 0.01f},
{0.6f, 0.9f },
0.0f, 0.01f
};
static s32 D_80392300[3] = { 0xDC, 0xDC, 0xE6};
static struct43s D_8039230C = {
{{-100.0f, 0.0f, -100.0f}, {100.0f, 100.0f, 100.0f}},
{{0.0f, -10.0f, 0.0f}, {0.0f, -10.0f, 0.0f}},
{{-80.0f, 0.0f, -80.0f}, {50.0f, 200.0f, 80.0f}}
};
ParticleEmitter *pCtrl; ParticleEmitter *pCtrl;
pCtrl = partEmitMgr_newEmitter(count); pCtrl = partEmitMgr_newEmitter(count);
@@ -227,6 +203,8 @@ void func_8038D3D8(void){
} }
void func_8038D41C(ActorMarker *marker){ void func_8038D41C(ActorMarker *marker){
static f32 D_80392354[3] = {-4165.0f, 73.0f, 4483.0f};
static f32 D_80392360[3] = {-4292.0f, 73.0f, 5054.0f};
s32 pad[2]; s32 pad[2];
ActorMarker *_marker = reinterpret_cast(ActorMarker *, marker); ActorMarker *_marker = reinterpret_cast(ActorMarker *, marker);
Actor *actor; Actor *actor;
@@ -239,6 +217,13 @@ void func_8038D41C(ActorMarker *marker){
} }
void func_8038D474(ActorMarker *marker){ void func_8038D474(ActorMarker *marker){
static enum actor_e D_8039236C[4] = {
ACTOR_332_TWINKLY_BLUE,
ACTOR_333_TWINKLY_GREEN,
ACTOR_334_TWINKLY_ORANGE,
ACTOR_335_TWINKLY_RED,
};
Actor *actor = marker_getActor(reinterpret_cast(ActorMarker*, marker)); Actor *actor = marker_getActor(reinterpret_cast(ActorMarker*, marker));
Actor *child; Actor *child;
s32 pad; s32 pad;
@@ -266,6 +251,8 @@ void func_8038D51C(ActorMarker *marker){
} }
void func_8038D5C8(ActorMarker *this_marker, ActorMarker *other_marker){ void func_8038D5C8(ActorMarker *this_marker, ActorMarker *other_marker){
static f32 D_8039237C[3] = {-3940.0f, 69.0f, 3570.0f};
Actor *this = marker_getActor(this_marker); Actor *this = marker_getActor(this_marker);
if(this->state == 1 || this->state == 2){ if(this->state == 1 || this->state == 2){

View File

@@ -2,28 +2,27 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
Actor *FP_func_80386E30(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chXmasTree_update(Actor *this); void chXmasTree_update(Actor *this);
/* .data */ /* .data */
ActorInfo D_80391B50 = { ActorInfo chXmasTree = {
MARKER_BA_XMAS_TREE, ACTOR_15F_XMAS_TREE, ASSET_488_MODEL_XMAS_TREE, MARKER_BA_XMAS_TREE, ACTOR_15F_XMAS_TREE, ASSET_488_MODEL_XMAS_TREE,
0x1, NULL, 0x1, NULL,
chXmasTree_update, func_80326224, FP_func_80386E30, chXmasTree_update, func_80326224, chXmasTree_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
s32 chXmasTree_switch_spawn_position[3] = {-0x1220, 0x6A, 0x1945};
/* .code */ /* .code */
Actor *FP_func_80386E30(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *chXmasTree_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
func_8033A45C(5, this->unk38_31); func_8033A45C(5, this->unk38_31);
func_8033A45C(6, func_8031FF1C(0x13) && !func_8033A0F0(5)); func_8033A45C(6, func_8031FF1C(0x13) && !func_8033A0F0(5));
return func_80325888(marker, gfx, mtx, vtx); return func_80325888(marker, gfx, mtx, vtx);
} }
void func_80386EAC(Actor *this){ void __chXmasTree_free(Actor *this){
u8 tmp_a0; u8 tmp_a0;
item_set(ITEM_6_HOURGLASS, FALSE); item_set(ITEM_6_HOURGLASS, FALSE);
@@ -34,29 +33,30 @@ void func_80386EAC(Actor *this){
} }
} }
void FP_func_80386EF4(Actor *this, int arg1){ void __chXmasTree_80386EF4(Actor *this, int arg1){
this->unk38_31 = arg1; this->unk38_31 = arg1;
mapSpecificFlags_set(0, this->unk38_31); mapSpecificFlags_set(0, this->unk38_31);
} }
void func_80386F3C(void){ void __chXmasTree_80386F3C(void){
levelSpecificFlags_set(0x29, TRUE); levelSpecificFlags_set(0x29, TRUE);
func_803228D8(); func_803228D8();
func_803204E4(0xe, 1); func_803204E4(0xe, 1);
func_802E4078(MAP_53_FP_CHRISTMAS_TREE, 1, 0); func_802E4078(MAP_53_FP_CHRISTMAS_TREE, 1, 0);
} }
void func_80386F84(Actor * this){ void __chXmasTree_80386F84(Actor * this){
func_80328A84(this, 2); func_80328A84(this, 2);
FP_func_80386EF4(this, 0); __chXmasTree_80386EF4(this, 0);
} }
void func_80386FB4(void){ void __chXmasTree_spawnSwitch(void){
static s32 chXmasTree_switch_spawn_position[3] = {-0x1220, 0x6A, 0x1945};
func_8032811C(ACTOR_338_XMAS_TREE_SWITCH, chXmasTree_switch_spawn_position, 350); func_8032811C(ACTOR_338_XMAS_TREE_SWITCH, chXmasTree_switch_spawn_position, 350);
} }
void FP_func_80386FE0(void *marker){ void __chXmasTree_spawnStar(void *marker){
Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker)); Actor *this = marker_getActor(reinterpret_cast(ActorMarker *, marker));
Actor *child = spawn_child_actor(0x339, &this); Actor *child = spawn_child_actor(0x339, &this);
s32 pad; s32 pad;
@@ -65,22 +65,22 @@ void FP_func_80386FE0(void *marker){
child->position_z += 25.0f; child->position_z += 25.0f;
} }
void func_80387038(Actor *this){ void __chXmasTree_80387038(Actor *this){
if(func_8030E3FC(this->unk44_31)) if(func_8030E3FC(this->unk44_31))
func_8030E394(this->unk44_31); func_8030E394(this->unk44_31);
func_8030DBB4(this->unk44_31, randf2(0.9f, 1.1f)); func_8030DBB4(this->unk44_31, randf2(0.9f, 1.1f));
func_8030E2C4(this->unk44_31); func_8030E2C4(this->unk44_31);
} }
void func_8038709C(Actor *this){ void __chXmasTree_8038709C(Actor *this){
if(this->state == 5){ if(this->state == 5){
if(!mapSpecificFlags_get(0)) if(!mapSpecificFlags_get(0))
func_80387038(this); __chXmasTree_80387038(this);
return; return;
} }
if(mapSpecificFlags_get(0) && !func_8030E3FC(this->unk44_31)) if(mapSpecificFlags_get(0) && !func_8030E3FC(this->unk44_31))
func_80387038(this); __chXmasTree_80387038(this);
} }
void chXmasTree_update(Actor *this){ void chXmasTree_update(Actor *this){
@@ -91,32 +91,32 @@ void chXmasTree_update(Actor *this){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
this->marker->collidable = FALSE; this->marker->collidable = FALSE;
marker_setFreeMethod(this->marker, func_80386EAC); marker_setFreeMethod(this->marker, __chXmasTree_free);
if(this->unk44_31 == 0){ if(this->unk44_31 == 0){
this->unk44_31 = func_8030D90C(); this->unk44_31 = func_8030D90C();
sfxsource_setSfxId(this->unk44_31, SFX_415_UNKNOWN); sfxsource_setSfxId(this->unk44_31, SFX_415_UNKNOWN);
func_8030DD14(this->unk44_31, 3); func_8030DD14(this->unk44_31, 3);
sfxsource_setSampleRate(this->unk44_31, 28000); sfxsource_setSampleRate(this->unk44_31, 28000);
} }
__spawnQueue_add_0(func_80386FB4); __spawnQueue_add_0(__chXmasTree_spawnSwitch);
__spawnQueue_add_1((GenMethod_1)FP_func_80386FE0, reinterpret_cast(s32, this->marker)); __spawnQueue_add_1((GenMethod_1)__chXmasTree_spawnStar, reinterpret_cast(s32, this->marker));
if(func_8031FF1C(0x13)){ if(func_8031FF1C(0x13)){
func_80386F84(this); __chXmasTree_80386F84(this);
mapSpecificFlags_set(2, FALSE); mapSpecificFlags_set(2, FALSE);
} }
} }
this->depth_mode = 1; this->depth_mode = 1;
if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){ if(jiggyscore_isCollected(JIGGY_2F_FP_XMAS_TREE) || levelSpecificFlags_get(0x29)){
FP_func_80386EF4(this, 1); __chXmasTree_80386EF4(this, 1);
return; return;
} }
switch(this->state){ switch(this->state){
case 1: // L80387268 case 1: // L80387268
FP_func_80386EF4(this, 0); __chXmasTree_80386EF4(this, 0);
if(func_8031FF1C(0x13)){ if(func_8031FF1C(0x13)){
func_80386F84(this); __chXmasTree_80386F84(this);
} }
break; break;
@@ -133,15 +133,15 @@ void chXmasTree_update(Actor *this){
case 3: // L803872F0 case 3: // L803872F0
if(0.0 <= this->unk60){ if(0.0 <= this->unk60){
if( 1.8 < this->unk60){ if( 1.8 < this->unk60){
FP_func_80386EF4(this, 0); __chXmasTree_80386EF4(this, 0);
} }
else if(this->unk60 < 0.2){//L80387340 else if(this->unk60 < 0.2){//L80387340
FP_func_80386EF4(this, 1); __chXmasTree_80386EF4(this, 1);
} }
else{ else{
if(randf() < 0.2){ if(randf() < 0.2){
FP_func_80386EF4(this, this->unk38_31 ^ 1); __chXmasTree_80386EF4(this, this->unk38_31 ^ 1);
func_8038709C(this); __chXmasTree_8038709C(this);
} }
}//L803873AC }//L803873AC
this->unk60 -= sp2C; this->unk60 -= sp2C;
@@ -149,7 +149,7 @@ void chXmasTree_update(Actor *this){
else{//L803873BC else{//L803873BC
if(func_802BB270()){ if(func_802BB270()){
func_80328A84(this, 4); func_80328A84(this, 4);
FP_func_80386EF4(this, 1); __chXmasTree_80386EF4(this, 1);
item_set(ITEM_0_HOURGLASS_TIMER, 3600 - 1); item_set(ITEM_0_HOURGLASS_TIMER, 3600 - 1);
item_set(ITEM_6_HOURGLASS, TRUE); item_set(ITEM_6_HOURGLASS, TRUE);
@@ -160,7 +160,7 @@ void chXmasTree_update(Actor *this){
case 4: // L80387400 case 4: // L80387400
if(mapSpecificFlags_get(3)){ if(mapSpecificFlags_get(3)){
func_80328A84(this, 6); func_80328A84(this, 6);
FP_func_80386EF4(this, 1); __chXmasTree_80386EF4(this, 1);
item_set(ITEM_6_HOURGLASS, FALSE); item_set(ITEM_6_HOURGLASS, FALSE);
tmp_a0 = this->unk44_31; tmp_a0 = this->unk44_31;
if(tmp_a0){ if(tmp_a0){
@@ -168,7 +168,7 @@ void chXmasTree_update(Actor *this){
this->unk44_31 = 0; this->unk44_31 = 0;
} }
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timedFunc_set_0(0.5f, func_80386F3C); timedFunc_set_0(0.5f, __chXmasTree_80386F3C);
} }
else{//L80387470 else{//L80387470
if(item_empty(ITEM_6_HOURGLASS)){ if(item_empty(ITEM_6_HOURGLASS)){
@@ -189,21 +189,21 @@ void chXmasTree_update(Actor *this){
case 5: // L803874EC case 5: // L803874EC
if(0.0 <= this->unk60){ if(0.0 <= this->unk60){
if( 1.8 < this->unk60){ if( 1.8 < this->unk60){
FP_func_80386EF4(this, 1); __chXmasTree_80386EF4(this, 1);
} }
else if(this->unk60 < 0.2){ else if(this->unk60 < 0.2){
FP_func_80386EF4(this, 0); __chXmasTree_80386EF4(this, 0);
} }
else{ else{
if(randf() < 0.2){ if(randf() < 0.2){
FP_func_80386EF4(this, this->unk38_31 ^ 1); __chXmasTree_80386EF4(this, this->unk38_31 ^ 1);
func_8038709C(this); __chXmasTree_8038709C(this);
} }
} }
this->unk60 -= sp2C; this->unk60 -= sp2C;
} }
else{ else{
func_80386F84(this); __chXmasTree_80386F84(this);
} }
break; break;
} }

View File

@@ -7,10 +7,10 @@
extern ActorInfo D_80367FE0; extern ActorInfo D_80367FE0;
extern ActorInfo FP_D_80391A10; extern ActorInfo chScarfSled;
extern ActorInfo FP_D_80391A60; extern ActorInfo chRaceSled;
extern ActorInfo FP_D_80391AB0; extern ActorInfo FP_D_80391AB0;
extern ActorInfo D_80391B50; extern ActorInfo chXmasTree;
extern ActorInfo D_80391BB0; extern ActorInfo D_80391BB0;
extern ActorInfo D_80391C18; extern ActorInfo D_80391C18;
extern ActorInfo D_80391C58; extern ActorInfo D_80391C58;
@@ -168,14 +168,14 @@ void FP_func_80391324(void)
spawnableActorList_add(&D_80391FF4, actor_new, 0X2100C); spawnableActorList_add(&D_80391FF4, actor_new, 0X2100C);
spawnableActorList_add(&D_803920E8, actor_new, 0X408); spawnableActorList_add(&D_803920E8, actor_new, 0X408);
spawnableActorList_add(&D_803923D0, actor_new, 0X100006C); spawnableActorList_add(&D_803923D0, actor_new, 0X100006C);
spawnableActorList_add(&D_80391B50, actor_new, 0X20400); spawnableActorList_add(&chXmasTree, actor_new, 0X20400);
spawnableActorList_add(&D_80392420, actor_new, 4); spawnableActorList_add(&D_80392420, actor_new, 4);
spawnableActorList_add(&D_80392470, actor_new, 0X444); spawnableActorList_add(&D_80392470, actor_new, 0X444);
spawnableActorList_add(&D_803924B0, actor_new, 8); spawnableActorList_add(&D_803924B0, actor_new, 8);
spawnableActorList_add(&D_803924D4, actor_new, 8); spawnableActorList_add(&D_803924D4, actor_new, 8);
spawnableActorList_add(&D_803924F8, actor_new, 8); spawnableActorList_add(&D_803924F8, actor_new, 8);
spawnableActorList_add(&FP_D_80391A10, actor_new, 0); spawnableActorList_add(&chScarfSled, actor_new, 0);
spawnableActorList_add(&FP_D_80391A60, actor_new, 0X20); spawnableActorList_add(&chRaceSled, actor_new, 0X20);
spawnableActorList_add(&D_80392588, actor_new, 0X80108); spawnableActorList_add(&D_80392588, actor_new, 0X80108);
spawnableActorList_add(&D_80392628, actor_new, 0X44); spawnableActorList_add(&D_80392628, actor_new, 0X44);
spawnableActorList_add(&D_80392690, actor_new, 0XA8); spawnableActorList_add(&D_80392690, actor_new, 0XA8);

View File

@@ -6,21 +6,21 @@
f32 D_80391EB0[3] = {-625.0f, 8840.0f, -111.0f}; f32 D_80391EB0[3] = {-625.0f, 8840.0f, -111.0f};
/* .bss */ /* .bss */
struct { struct {
u8 unk0; u8 state;
s32 unk4; s32 remaining;
s32 unk8; s32 total;
s32 unkC; s32 unkC;
f32 spawn_pos[3]; f32 spawn_pos[3];
u8 unk1C; u8 unk1C;
} D_80392F30; } D_80392F30;
/* .code */ /* .code */
void func_8038A7F0(void){ void fp_sirslushgame_init(void){
if( map_get() != MAP_27_FP_FREEZEEZY_PEAK if( map_get() != MAP_27_FP_FREEZEEZY_PEAK
|| jiggyscore_isCollected(JIGGY_31_FP_SIR_SLUSH) || jiggyscore_isCollected(JIGGY_31_FP_SIR_SLUSH)
|| jiggyscore_isSpawned(JIGGY_31_FP_SIR_SLUSH) || jiggyscore_isSpawned(JIGGY_31_FP_SIR_SLUSH)
){ ){
D_80392F30.unk0 = 0; D_80392F30.state = 0;
return; return;
} }
@@ -28,23 +28,23 @@ void func_8038A7F0(void){
if(nodeProp_findPositionFromActorId(0x128, D_80392F30.spawn_pos)){ if(nodeProp_findPositionFromActorId(0x128, D_80392F30.spawn_pos)){
D_80392F30.unk1C = 1; D_80392F30.unk1C = 1;
} }
D_80392F30.unk0 = 1; D_80392F30.state = 1;
D_80392F30.unk4 = 0; D_80392F30.remaining = 0;
D_80392F30.unk8 = 0; D_80392F30.total = 0;
} }
void func_8038A888(void){} void fp_sirslushgame_end(void){}
void func_8038A890(void){ void fp_sirslushgame_update(void){
switch(D_80392F30.unk0){ switch(D_80392F30.state){
case 0: case 0:
break; break;
case 1://L8038A8CC case 1://L8038A8CC
if(D_80392F30.unk4) break; if(D_80392F30.remaining) break;
if(!D_80392F30.unk8) break; if(!D_80392F30.total) break;
D_80392F30.unk0 = 2; D_80392F30.state = 2;
D_80392F30.unkC = 0; D_80392F30.unkC = 0;
break; break;
@@ -60,7 +60,7 @@ void func_8038A890(void){
reinterpret_cast(s32, D_80392F30.spawn_pos[2]) reinterpret_cast(s32, D_80392F30.spawn_pos[2])
); );
} }
D_80392F30.unk0 = 3; D_80392F30.state = 3;
} }
else{ else{
D_80392F30.unkC++; D_80392F30.unkC++;
@@ -72,11 +72,11 @@ void func_8038A890(void){
} }
} }
void func_8038A978(void){ void fp_sirslushgame_decRemaining(void){
D_80392F30.unk4--; D_80392F30.remaining--;
} }
void func_8038A990(void){ void fp_sirslushgame_incTotal(void){
D_80392F30.unk8++; D_80392F30.total++;
D_80392F30.unk4++; D_80392F30.remaining++;
} }

View File

@@ -17,7 +17,7 @@ f32 D_80391EC0[3] ={-625.0f, 466.0f, -111.0f};
Struct_FP_45D0_0 D_80392F50; Struct_FP_45D0_0 D_80392F50;
/* .code */ /* .code */
void FP_func_8038A9C0(void){ void fp_snowmanButtonGame_init(void){
if( map_get() != MAP_27_FP_FREEZEEZY_PEAK if( map_get() != MAP_27_FP_FREEZEEZY_PEAK
|| jiggyscore_isCollected(JIGGY_2D_FP_SNOWMAN_BUTTONS) || jiggyscore_isCollected(JIGGY_2D_FP_SNOWMAN_BUTTONS)
|| jiggyscore_isSpawned(JIGGY_2D_FP_SNOWMAN_BUTTONS) || jiggyscore_isSpawned(JIGGY_2D_FP_SNOWMAN_BUTTONS)
@@ -34,9 +34,9 @@ void FP_func_8038A9C0(void){
D_80392F50.unk4 = 3; D_80392F50.unk4 = 3;
} }
void func_8038AA58(void){} void fp_snowmanButtonGame_end(void){}
void func_8038AA60(void){ void fp_snowmanButtonGame_update(void){
switch(D_80392F50.unk0){ switch(D_80392F50.unk0){
case 1: case 1:
if(D_80392F50.unk4 <= 0){ if(D_80392F50.unk4 <= 0){
@@ -70,6 +70,6 @@ void func_8038AA60(void){
} }
} }
void func_8038AB40(void){ void fp_snowmanButtonGame_decRemaining(void){
D_80392F50.unk4--; D_80392F50.unk4--;
} }

View File

@@ -4,7 +4,7 @@
/* .bss */ /* .bss */
struct { struct {
u8 unk0; u8 state;
f32 unk4; f32 unk4;
}GV_D_80391B00; }GV_D_80391B00;
@@ -18,10 +18,10 @@ void func_80390880(void){
} }
} }
void func_803908C4(s32 arg0){ void __waterCtrl_setState(s32 arg0){
void *tmp_v0; void *tmp_v0;
GV_D_80391B00.unk0 = arg0; GV_D_80391B00.state = arg0;
if(GV_D_80391B00.unk0 == 2){ if(GV_D_80391B00.state == 2){
func_80324E38(0.0f, 3); func_80324E38(0.0f, 3);
timed_setCameraToNode(0.0f, 0); timed_setCameraToNode(0.0f, 0);
timedFunc_set_0(3.0f, func_80390880); timedFunc_set_0(3.0f, func_80390880);
@@ -36,7 +36,7 @@ void func_803908C4(s32 arg0){
} }
} }
if(GV_D_80391B00.unk0 == 3){ if(GV_D_80391B00.state == 3){
levelSpecificFlags_set(6, TRUE); levelSpecificFlags_set(6, TRUE);
func_803228D8(); func_803228D8();
func_803204E4(0xe, 1); func_803204E4(0xe, 1);
@@ -44,14 +44,14 @@ void func_803908C4(s32 arg0){
} }
} }
void func_803909EC(void){} void gv_waterCtrl_end(void){}
void func_803909F4(void){ void gv_waterCtrl_init(void){
void *tmp_v0; void *tmp_v0;
void *tmp_v0_2; void *tmp_v0_2;
GV_D_80391B00.unk0 = 0; GV_D_80391B00.state = 0;
if(map_get() != MAP_15_GV_WATER_PYRAMID) return; if(map_get() != MAP_15_GV_WATER_PYRAMID) return;
if(jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID)){ if(jiggyscore_isCollected(JIGGY_42_GV_WATER_PYRAMID)){
@@ -65,23 +65,23 @@ void func_803909F4(void){
} }
else{ else{
GV_D_80391B00.unk4 = 0.0f; GV_D_80391B00.unk4 = 0.0f;
func_803908C4(1); __waterCtrl_setState(1);
} }
} }
void func_80390A94(void){ void gv_waterCtrl_update(void){
f32 time_delta; f32 time_delta;
void *tmp_v0; void *tmp_v0;
time_delta = time_getDelta(); time_delta = time_getDelta();
if(!GV_D_80391B00.unk0) return; if(GV_D_80391B00.state == 0) return;
if(GV_D_80391B00.unk0 == 1){ if(GV_D_80391B00.state == 1){
if(0.0f < GV_D_80391B00.unk4){ if(0.0f < GV_D_80391B00.unk4){
GV_D_80391B00.unk4 -= time_delta; GV_D_80391B00.unk4 -= time_delta;
if(GV_D_80391B00.unk4 <= 0.0f){ if(GV_D_80391B00.unk4 <= 0.0f){
func_803908C4(2); __waterCtrl_setState(2);
} }
} }
else{ else{
@@ -91,7 +91,7 @@ void func_80390A94(void){
} }
}//L80390B34 }//L80390B34
if(GV_D_80391B00.unk0 == 2){ if(GV_D_80391B00.state == 2){
tmp_v0 = func_8034C528(0x190); tmp_v0 = func_8034C528(0x190);
if(tmp_v0 && func_8034DC78(tmp_v0) == 1){ if(tmp_v0 && func_8034DC78(tmp_v0) == 1){
func_8030E760(SFX_7F_HEAVYDOOR_SLAM, 0.8f, 0x7fd0); func_8030E760(SFX_7F_HEAVYDOOR_SLAM, 0.8f, 0x7fd0);
@@ -100,6 +100,6 @@ void func_80390A94(void){
func_8034E264(tmp_v0, 2); func_8034E264(tmp_v0, 2);
} }
if(timedFuncQueue_is_empty()) if(timedFuncQueue_is_empty())
func_803908C4(3); __waterCtrl_setState(3);
} }
} }

View File

@@ -188,7 +188,7 @@ void __chSnowman_deathCallback(ActorMarker *marker, ActorMarker *other_marker){
__spawnQueue_add_1((GenMethod_1)__chSnowman_spawnHat, (s32)actor->marker); __spawnQueue_add_1((GenMethod_1)__chSnowman_spawnHat, (s32)actor->marker);
if(map_get() == MAP_27_FP_FREEZEEZY_PEAK) if(map_get() == MAP_27_FP_FREEZEEZY_PEAK)
func_8038A978(); fp_sirslushgame_decRemaining();
__chSnowman_spawnSnowballParticles(actor->position, 0xC); __chSnowman_spawnSnowballParticles(actor->position, 0xC);
marker_despawn(actor->marker); marker_despawn(actor->marker);
} }
@@ -225,7 +225,7 @@ void chSnowman_update(Actor *this){
func_8032BC18(this); func_8032BC18(this);
if(map_get() == MAP_27_FP_FREEZEEZY_PEAK){ if(map_get() == MAP_27_FP_FREEZEEZY_PEAK){
local->unk0 = actorArray_findActorFromActorId(0x336)->marker; local->unk0 = actorArray_findActorFromActorId(0x336)->marker;
func_8038A990(); fp_sirslushgame_incTotal();
} }
}//L802E21D8 }//L802E21D8
if(map_get() == MAP_27_FP_FREEZEEZY_PEAK){ if(map_get() == MAP_27_FP_FREEZEEZY_PEAK){

View File

@@ -316,7 +316,7 @@ void func_802E4048(s32 map, s32 exit, s32 transition){
} }
//take me there //take me there
extern void func_802E4078(enum map_e map, s32 exit, s32 transition){ void func_802E4078(enum map_e map, s32 exit, s32 transition){
func_802E40D0(map, exit); func_802E40D0(map, exit);
func_802E40E8(transition); func_802E40E8(transition);
func_802E40C4(1); func_802E40C4(1);

View File

@@ -186,21 +186,21 @@ void func_80322A94(void){
func_8038FF60(); func_8038FF60();
func_803900F8(); func_803900F8();
gv_matchingGame_reset(); //gv_matchingGame_reset gv_matchingGame_reset(); //gv_matchingGame_reset
func_803909EC(); gv_waterCtrl_end();
} }
void func_80322ACC(void){ void func_80322ACC(void){
func_8038FF68(); func_8038FF68();
func_80390100(); func_80390100();
gv_matchingGame_init(); //gv_matchingGame_init gv_matchingGame_init(); //gv_matchingGame_init
func_803909F4(); gv_waterCtrl_init();
} }
void __overlay_gv_update(void){ void __overlay_gv_update(void){
func_8038FFF4(); func_8038FFF4();
func_80390138(); func_80390138();
gv_matchingGame_update(); //gv_matchingGame_update gv_matchingGame_update(); //gv_matchingGame_update
func_80390A94(); gv_waterCtrl_update();
} }
void func_80322B3C(s32 arg0, s32 arg1){ return; } void func_80322B3C(s32 arg0, s32 arg1){ return; }
@@ -300,22 +300,22 @@ void func_80322D94(s32 arg0, s32 arg1){ return; }
void __overlay_fp_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){ return; } void __overlay_fp_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx){ return; }
void func_80322DB0(void){ void func_80322DB0(void){
func_8038A888(); fp_sirslushgame_end();
func_8038AA58(); fp_snowmanButtonGame_end();
func_8038B8A8(); func_8038B8A8();
func_8039195C(); func_8039195C();
} }
void func_80322DE8(void){ void func_80322DE8(void){
func_8038A7F0(); fp_sirslushgame_init();
FP_func_8038A9C0(); fp_snowmanButtonGame_init();
func_8038B7A4(); func_8038B7A4();
func_803918C0(); func_803918C0();
} }
void __overlay_fp_update(void){ void __overlay_fp_update(void){
func_8038A890(); fp_sirslushgame_update();
func_8038AA60(); fp_snowmanButtonGame_update();
func_8038B544(); func_8038B544();
func_80391994(); func_80391994();
} }