Merge remote-tracking branch 'origin/master' into pal

This commit is contained in:
Banjo Kazooie
2024-09-07 21:13:37 -05:00
156 changed files with 1857 additions and 1784 deletions

View File

@@ -17,6 +17,11 @@ The following instructions should work on the following platforms:
- Linux (x86_64, ARM) - Linux (x86_64, ARM)
- macOS (x86_64, ARM) - macOS (x86_64, ARM)
Building Instructions Table Of Contents:
- [Local (Linux)](#local-linux)
- [Local (Docker - Linux/macOS)](#local-docker---linuxmacos)
- [Cloud (GitLab CI)](#cloud-gitlab-ci))
## Local (Linux) ## Local (Linux)
Works with Ubuntu 18.04 or higher. Works with Ubuntu 18.04 or higher.

View File

@@ -2246,7 +2246,7 @@ segments:
- [0x10AEBB0, c, chjinjonatorbase] #DONE - [0x10AEBB0, c, chjinjonatorbase] #DONE
- [0x10AF360, c, chspellbarrier] #DONE - [0x10AF360, c, chspellbarrier] #DONE
- [0x10AF770, c, chspellfireball] #DONE - [0x10AF770, c, chspellfireball] #DONE
- [0x10B0820, c, code_9850] #DONE - [0x10B0820, c, chgreenblast] #DONE
- [0x10B0D10, c, chjinjonator] #DONE - [0x10B0D10, c, chjinjonator] #DONE
- [0x10B1EA0, c, chbossshadow] #DONE - [0x10B1EA0, c, chbossshadow] #DONE
- [0x10B1F60, .data, chfinalboss] - [0x10B1F60, .data, chfinalboss]
@@ -2256,7 +2256,7 @@ segments:
- [0x10B2620, .data, chjinjonatorbase] - [0x10B2620, .data, chjinjonatorbase]
- [0x10B26B0, .data, chspellbarrier] - [0x10B26B0, .data, chspellbarrier]
- [0x10B26E0, .data, chspellfireball] - [0x10B26E0, .data, chspellfireball]
- [0x10B29A0, .data, code_9850] - [0x10B29A0, .data, chgreenblast]
- [0x10B2B90, .data, chjinjonator] - [0x10B2B90, .data, chjinjonator]
- [0x10B2C70, .data, chbossshadow] - [0x10B2C70, .data, chbossshadow]
- [0x10B2CA0, .rodata, chfinalboss] - [0x10B2CA0, .rodata, chfinalboss]
@@ -2266,7 +2266,7 @@ segments:
- [0x10B3160, .rodata, chjinjonatorbase] - [0x10B3160, .rodata, chjinjonatorbase]
- [0x10B3190, .rodata, chspellbarrier] - [0x10B3190, .rodata, chspellbarrier]
- [0x10B31A0, .rodata, chspellfireball] - [0x10B31A0, .rodata, chspellfireball]
- [0x10B31F0, .rodata, code_9850] - [0x10B31F0, .rodata, chgreenblast]
- [0x10B3200, .rodata, chjinjonator] - [0x10B3200, .rodata, chjinjonator]
- [0x10B3310, .rodata, chbossshadow] - [0x10B3310, .rodata, chbossshadow]
- [0x10B3320, .bss, code_0] - [0x10B3320, .bss, code_0]

View File

@@ -6,7 +6,7 @@
#define ACTOR_FLAG_UNKNOWN_1 (1 << 1) // 0x2 #define ACTOR_FLAG_UNKNOWN_1 (1 << 1) // 0x2
#define ACTOR_FLAG_UNKNOWN_2 (1 << 2) // 0x4 #define ACTOR_FLAG_UNKNOWN_2 (1 << 2) // 0x4
#define ACTOR_FLAG_UNKNOWN_3 (1 << 3) // 0x8 #define ACTOR_FLAG_UNKNOWN_3 (1 << 3) // 0x8
#define ACTOR_FLAG_UNKNOWN_4 (1 << 4) // 0x10 #define ACTOR_FLAG_UNKNOWN_4 (1 << 4) // 0x10 - only used by GV Jinxy Head 2
#define ACTOR_FLAG_UNKNOWN_5 (1 << 5) // 0x20 #define ACTOR_FLAG_UNKNOWN_5 (1 << 5) // 0x20
#define ACTOR_FLAG_UNKNOWN_6 (1 << 6) // 0x40 #define ACTOR_FLAG_UNKNOWN_6 (1 << 6) // 0x40
#define ACTOR_FLAG_UNKNOWN_7 (1 << 7) // 0x80 #define ACTOR_FLAG_UNKNOWN_7 (1 << 7) // 0x80
@@ -20,14 +20,15 @@
#define ACTOR_FLAG_UNKNOWN_15 (1 << 15) // 0x8000 #define ACTOR_FLAG_UNKNOWN_15 (1 << 15) // 0x8000
#define ACTOR_FLAG_UNKNOWN_16 (1 << 16) // 0x10000 #define ACTOR_FLAG_UNKNOWN_16 (1 << 16) // 0x10000
#define ACTOR_FLAG_UNKNOWN_17 (1 << 17) // 0x20000 #define ACTOR_FLAG_UNKNOWN_17 (1 << 17) // 0x20000
#define ACTOR_FLAG_UNKNOWN_18 (1 << 18) // 0x40000 #define ACTOR_FLAG_UNKNOWN_18 (1 << 18) // 0x40000 - never used?
#define ACTOR_FLAG_UNKNOWN_19 (1 << 19) // 0x80000 #define ACTOR_FLAG_UNKNOWN_19 (1 << 19) // 0x80000
#define ACTOR_FLAG_UNKNOWN_20 (1 << 20) // 0x100000 #define ACTOR_FLAG_UNKNOWN_20 (1 << 20) // 0x100000
#define ACTOR_FLAG_UNKNOWN_21 (1 << 21) // 0x200000 #define ACTOR_FLAG_UNKNOWN_21 (1 << 21) // 0x200000
#define ACTOR_FLAG_UNKNOWN_22 (1 << 22) // 0x400000 #define ACTOR_FLAG_UNKNOWN_22 (1 << 22) // 0x400000 - used by overlay texts
#define ACTOR_FLAG_UNKNOWN_23 (1 << 23) // 0x800000 #define ACTOR_FLAG_UNKNOWN_23 (1 << 23) // 0x800000
#define ACTOR_FLAG_UNKNOWN_24 (1 << 24) // 0x1000000 #define ACTOR_FLAG_UNKNOWN_24 (1 << 24) // 0x1000000
#define ACTOR_FLAG_UNKNOWN_25 (1 << 25) // 0x2000000 #define ACTOR_FLAG_UNKNOWN_25 (1 << 25) // 0x2000000
#define ACTOR_FLAG_UNKNOWN_26 (1 << 26) // 0x4000000 #define ACTOR_FLAG_UNKNOWN_26 (1 << 26) // 0x4000000
#define ACTOR_FLAG_UNKNOWN_27 (1 << 27) // 0x4000000
#endif // ACTOR_H #endif // ACTOR_H

View File

@@ -12,8 +12,10 @@
#define SPRITE_TYPE_RGBA32 (1 << 11) #define SPRITE_TYPE_RGBA32 (1 << 11)
enum file_progress_e{ enum file_progress_e{
FILEPROG_0_UNKNOWN,
FILEPROG_3_MUSIC_NOTE_TEXT = 0x3, FILEPROG_1_UNKNOWN,
FILEPROG_2_UNKNOWN,
FILEPROG_3_MUSIC_NOTE_TEXT,
FILEPROG_4_MUMBO_TOKEN_TEXT, FILEPROG_4_MUMBO_TOKEN_TEXT,
FILEPROG_5_BLUE_EGG_TEXT, FILEPROG_5_BLUE_EGG_TEXT,
FILEPROG_6_RED_FEATHER_TEXT, FILEPROG_6_RED_FEATHER_TEXT,
@@ -227,6 +229,10 @@ enum file_progress_e{
FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit
}; };
enum volatile_progress_e{
VOLAPROG_0_UNKNOWN
};
enum unkflags_1{ enum unkflags_1{
UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6, UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6,
UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME, UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME,
@@ -1988,13 +1994,13 @@ enum actor_e
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_389_GRUNTY_SPELL_FIREBALL,
ACTOR_38A_GREEN_BLAST,
ACTOR_38B_GRUNTILDA_FINAL_BOSS = 0x38B, ACTOR_38B_GRUNTILDA_FINAL_BOSS,
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_3A1_STONE_JINJO,
ACTOR_3A2_JINJO_STATUE_BASE = 0x3A2, ACTOR_3A2_JINJO_STATUE_BASE,
ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5, ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5,
ACTOR_3A6_BOSS_JINJO_GREEN, ACTOR_3A6_BOSS_JINJO_GREEN,
@@ -3692,7 +3698,7 @@ enum asset_e
ASSET_6C4_SPRITE_SMOKE_YELLOW, ASSET_6C4_SPRITE_SMOKE_YELLOW,
ASSET_6C5_SPRITE_SMOKE_ORANGE, ASSET_6C5_SPRITE_SMOKE_ORANGE,
ASSET_6C6_SPRITE_SMOKE_PINK, ASSET_6C6_SPRITE_SMOKE_PINK,
ASSET_6C7_SPRITE_SMOKE_GREEN_2, ASSET_6C7_GREEN_BLAST,
ASSET_6C8_SPRITE_SMOKE_BLUE, ASSET_6C8_SPRITE_SMOKE_BLUE,
ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK, ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK,
@@ -4306,7 +4312,8 @@ enum marker_e{
MARKER_4C_CLANKER_TOKEN_TOOTH_EXT, MARKER_4C_CLANKER_TOKEN_TOOTH_EXT,
MARKER_4D_CLANKER_JIGGY_TOOTH_EXT, MARKER_4D_CLANKER_JIGGY_TOOTH_EXT,
MARKER_51_MM_HUT = 0x51, MARKER_50_BEEHIVE = 0x50,
MARKER_51_MM_HUT,
MARKER_52_JIGGY, MARKER_52_JIGGY,
MARKER_53_EMPTY_HONEYCOMB, MARKER_53_EMPTY_HONEYCOMB,
@@ -4573,9 +4580,9 @@ enum marker_e{
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_25C_GRUNTY_SPELL_FIREBALL,
MARKER_25D_GREEN_BLAST,
MARKER_25E_GRUNTILDA_FINAL_BOSS = 0x25E, MARKER_25E_GRUNTILDA_FINAL_BOSS,
MARKER_25F_ICECUBE_B = 0x25F, MARKER_25F_ICECUBE_B,
MARKER_261_FIGHT_FLIGHT_PAD = 0x261, MARKER_261_FIGHT_FLIGHT_PAD = 0x261,

View File

@@ -238,7 +238,7 @@ void particleEmitter_setParticleFramerateRange(ParticleEmitter *, f32, f32);
void particleEmitter_setParticleSpawnPositionRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); void particleEmitter_setParticleSpawnPositionRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32);
void func_802EFB70(ParticleEmitter *, f32, f32); void func_802EFB70(ParticleEmitter *, f32, f32);
void func_802EFB84(ParticleEmitter *, f32, f32); void func_802EFB84(ParticleEmitter *, f32, f32);
void func_802EFB98(ParticleEmitter *, struct31s *); void particleEmitter_setScaleAndLifetimeRanges(ParticleEmitter *, ParticleScaleAndLifetimeRanges *);
void particleEmitter_setVelocityAndAccelerationRanges(ParticleEmitter *, struct41s *); void particleEmitter_setVelocityAndAccelerationRanges(ParticleEmitter *, struct41s *);
void particleEmitter_setPositionAndVelocityRanges(ParticleEmitter *this, struct42s *arg1); void particleEmitter_setPositionAndVelocityRanges(ParticleEmitter *this, struct42s *arg1);
void particleEmitter_setAngularVelocityRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32); void particleEmitter_setAngularVelocityRange(ParticleEmitter *, f32, f32, f32, f32, f32, f32);
@@ -552,4 +552,14 @@ extern void fxSparkle_chTreasure(s16[3]);
extern void actor_collisionOn(Actor *); extern void actor_collisionOn(Actor *);
extern void subaddie_set_state_forward(Actor *, s32); extern void subaddie_set_state_forward(Actor *, s32);
extern BKModelBin *marker_loadModelBin(ActorMarker *this);
extern Struct70s *func_8034C2C4(ActorMarker *marker, s32 arg1);
extern void func_80326310(Actor *this);
extern ActorMarker *marker_init(s32 *pos, MarkerDrawFunc draw_func, int arg2, int marker_id, int arg4);
extern s32 asset_getFlag(enum asset_e arg0);
extern void spawnableActorList_add(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32, ActorInfo *, u32), u32 arg2);
extern void spawnableActorList_addIfMapVisited(ActorInfo *arg0, Actor *(*arg1)(s32[3], s32, ActorInfo *, u32), u32 arg2, enum map_e arg3);
extern void marker_setActorUpdateFunc(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_setActorUpdate2Func(ActorMarker *marker, ActorUpdateFunc method);
#endif #endif

View File

@@ -75,18 +75,18 @@ typedef void (*ActorFreeFunc)(struct actor_s *);
typedef struct actorMarker_s{ typedef struct actorMarker_s{
ActorProp* propPtr; ActorProp* propPtr;
struct cude_s* cubePtr; struct cude_s* cubePtr;
MarkerDrawFunc unk8; MarkerDrawFunc drawFunc;
MarkerCollisionFunc unkC; //ow_func MarkerCollisionFunc collisionFunc; //ow_func
MarkerCollisionFunc unk10; MarkerCollisionFunc collision2Func;
u32 yaw:9; u32 yaw:9;
u32 unk14_22:1; u32 unk14_22:1;
u32 unk14_21:1; u32 unk14_21:1;
u32 unk14_20:10; //contains jingo_id for chjinjo u32 id:10; // marker_id
u32 unk14_10:11; //used in ch/jiggy u32 unk14_10:11; //used in ch/jiggy
Struct6Cs *unk18; Struct6Cs *unk18;
MarkerCollisionFunc unk1C; //die_func MarkerCollisionFunc dieFunc;
s32 unk20; s32 unk20;
ActorUpdateFunc unk24; ActorUpdateFunc actorUpdateFunc;
s32 unk28; s32 unk28;
u32 actrArrayIdx:11; //unk2C u32 actrArrayIdx:11; //unk2C
u32 pitch:9; u32 pitch:9;
@@ -94,8 +94,8 @@ typedef struct actorMarker_s{
u32 unk2C_2:1; u32 unk2C_2:1;
u32 unk2C_1:1; u32 unk2C_1:1;
u32 collidable:1; u32 collidable:1;
ActorFreeFunc unk30; //actor free method ActorFreeFunc actorFreeFunc;
s32 unk34; ActorUpdateFunc actorUpdate2Func;
s16 unk38[3]; s16 unk38[3];
u16 pad3E_15:1; u16 pad3E_15:1;
u16 modelId:13; u16 modelId:13;
@@ -179,9 +179,9 @@ typedef struct actor_s{
u32 modelCacheIndex:10; //modelCacheIndex u32 modelCacheIndex:10; //modelCacheIndex
s32 unk44_14:10; s32 unk44_14:10;
u32 despawn_flag:1; u32 despawn_flag:1;
u32 unk44_2:1; u32 unk44_2:1; // is set, when actors created inside Cube?
u32 unk44_1:1; u32 unk44_1:1; // only used by blubber?
u32 unk44_0:1; u32 unk44_0:1; // unused
f32 unk48; //used in chlmonkey (chimpy) f32 unk48; //used in chlmonkey (chimpy)
f32 unk4C; f32 unk4C;
/* 0x50 */ f32 yaw; //0x50 /* 0x50 */ f32 yaw; //0x50
@@ -192,7 +192,7 @@ typedef struct actor_s{
u32 unk58_1: 1; u32 unk58_1: 1;
u32 unk58_0: 1; u32 unk58_0: 1;
f32 unk5C; f32 unk5C;
f32 unk60; //0x60 f32 unk60; // actor lifetime?
f32 yaw_ideal; //0x64 f32 yaw_ideal; //0x64
f32 pitch;//0x68 f32 pitch;//0x68
f32 unk6C; f32 unk6C;
@@ -220,7 +220,7 @@ typedef struct actor_s{
f32 unkEC; //animCtrl??? f32 unkEC; //animCtrl???
f32 stored_animctrl_duration; //animCtrlDuration f32 stored_animctrl_duration; //animCtrlDuration
u32 unkF4_31:1; u32 unkF4_31:1;
u32 unkF4_30:1; u32 unkF4_30:1; // has something to do with vertices
u32 unkF4_29:1; u32 unkF4_29:1;
u32 unkF4_28:1; //saved marker->propPtr->unk8_3 u32 unkF4_28:1; //saved marker->propPtr->unk8_3
u32 unkF4_27:1; //saved marker->propPtr->unk8_2 u32 unkF4_27:1; //saved marker->propPtr->unk8_2
@@ -236,12 +236,12 @@ typedef struct actor_s{
ActorMarker *unk100; ActorMarker *unk100;
ActorMarker *unk104; ActorMarker *unk104;
Struct62s *unk108; Struct62s *unk108;
// void ( *unk108)(struct actorMarker_s *, s32); //saved from marker->unkC // void ( *unk108)(struct actorMarker_s *, s32); //saved from marker->collisionFunc
s32 unk10C; //saved marker->unk10 s32 unk10C; //saved marker->unk10
f32 roll;//110 f32 roll;//110
f32 sound_timer; f32 sound_timer;
TUPLE(f32, spawn_position); //0x118 TUPLE(f32, spawn_position); //0x118
u32 unk124_31:12; u32 unk124_31:12; // only used by GV Jinxy Head 2
u32 alpha_124_19:8; u32 alpha_124_19:8;
u32 unk124_11:2; //blend_mode? u32 unk124_11:2; //blend_mode?
u32 depth_mode:2; //render_mode (passed to modelRender_setDepthMode()) u32 depth_mode:2; //render_mode (passed to modelRender_setDepthMode())
@@ -253,7 +253,7 @@ typedef struct actor_s{
f32 scale; f32 scale;
/* 0x12C */ struct actor_info_s *actor_info; /* 0x12C */ struct actor_info_s *actor_info;
void (* unk130)(struct actor_s *); void (* unk130)(struct actor_s *);
vector(struct2s) **unk134; //vector<struct2s> //saved marker->unk1C vector(struct2s) **unk134; //vector<struct2s> //saved marker->dieFunc
u32 unk138_31:1; u32 unk138_31:1;
u32 unk138_30:1; u32 unk138_30:1;
u32 unk138_29:1; u32 unk138_29:1;
@@ -265,12 +265,12 @@ typedef struct actor_s{
u32 unk138_22:1; u32 unk138_22:1;
u32 unk138_21:1; u32 unk138_21:1;
u32 unk138_20:1; u32 unk138_20:1;
u32 unk138_19:10; //saved maker->unk14_20 u32 unk138_19:10; //saved maker->id
u32 unk138_9:1; u32 unk138_9:1;
u32 unk138_8:1; u32 unk138_8:1; // set to one by ACTOR_FLAG_UNKNOWN_18, which no actor seems to use
u32 unk138_7:4; u32 unk138_7:4;
u32 unk138_3:4; u32 unk138_3:4;
void (*unk13C)(struct actorMarker_s *);//saved marker->unk30 ActorFreeFunc backupFreeFunc; // saved marker->actorFreeFunc
f32 unk140; f32 unk140;
f32 unk144; f32 unk144;
SkeletalAnimation *unk148; SkeletalAnimation *unk148;
@@ -284,7 +284,7 @@ typedef struct actor_s{
s8 pad167[0x1]; s8 pad167[0x1];
s32 unk168; //saved marker->unk58 s32 unk168; //saved marker->unk58
u32 unk16C_31:27; //saved s1->marker->unk5C u32 unk16C_31:27; //saved s1->marker->unk5C
u32 unk16C_4:1; u32 unk16C_4:1; // initialization related?
u32 unk16C_3:1; u32 unk16C_3:1;
u32 unk16C_2:1; u32 unk16C_2:1;
u32 unk16C_1:1; u32 unk16C_1:1;

View File

@@ -374,14 +374,14 @@ typedef struct particle_emitter{
struct particle *pList_capacity_12C; //capacity_end_ptr; struct particle *pList_capacity_12C; //capacity_end_ptr;
} ParticleEmitter; } ParticleEmitter;
typedef struct struct_31_s{ typedef struct particle_scale_and_lifetime_ranges_s{
f32 unk0[2]; //particle_starting_scale_range f32 unk0[2]; //particle_starting_scale_range
f32 unk8[2]; //particle_starting_scale_range f32 unk8[2]; //particle_starting_scale_range
f32 unk10[2]; //particle_spawn_interval_range f32 unk10[2]; //particle_spawn_interval_range
f32 unk18[2]; //particle_lifetime_range f32 unk18[2]; //particle_lifetime_range
f32 unk20; //particle_fade_in f32 unk20; //particle_fade_in
f32 unk24; //particle_fade_in f32 unk24; //particle_fade_in
} struct31s; } ParticleScaleAndLifetimeRanges;
typedef struct struct_32_s{ typedef struct struct_32_s{
f32 unk0[3]; f32 unk0[3];
@@ -399,7 +399,7 @@ typedef struct struct_34_s{
} struct34s; } struct34s;
typedef struct struct_40_s{ typedef struct struct_40_s{
struct31s unk0; ParticleScaleAndLifetimeRanges unk0;
f32 unk28; f32 unk28;
f32 unk2C; f32 unk2C;
} struct40s; } struct40s;

View File

@@ -282,7 +282,7 @@ void func_80389080(Actor *this){
sp3C = time_getDelta(); sp3C = time_getDelta();
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->marker->unk30 = func_80388FC0; this->marker->actorFreeFunc = func_80388FC0;
marker_setCollisionScripts(this->marker, func_80388E44, NULL, NULL); marker_setCollisionScripts(this->marker, func_80388E44, NULL, NULL);
unqPtr->unk0 = 0; unqPtr->unk0 = 0;

View File

@@ -339,7 +339,7 @@ void chvile_update(Actor *this) {
local = (ActorLocal_MrVile *)&this->local; local = (ActorLocal_MrVile *)&this->local;
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = chvile_free; this->marker->actorFreeFunc = chvile_free;
local->unk0 = 0; local->unk0 = 0;
local->unk4 = assetcache_get(0x3F6); local->unk4 = assetcache_get(0x3F6);
local->game_marker = NULL; local->game_marker = NULL;

View File

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

View File

@@ -61,7 +61,7 @@ void func_803895D0(ActorMarker *marker, ActorMarker *other_marker){
} }
Actor *BGS_func_80389610(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) { Actor *BGS_func_80389610(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
func_8033A45C(4, marker->unk14_20 - 0x19A); func_8033A45C(4, marker->id - 0x19A);
return actor_draw(marker, gfx, mtx, vtx); return actor_draw(marker, gfx, mtx, vtx);
} }

View File

@@ -626,7 +626,7 @@ void chvilegame_update(Actor *this) {
local = (ActorLocal_BGS_3420 *)&this->local; local = (ActorLocal_BGS_3420 *)&this->local;
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = &chvilegame_free; this->marker->actorFreeFunc = &chvilegame_free;
local->game_pieces = vector_new(sizeof(struct vilegame_piece), 0x20); local->game_pieces = vector_new(sizeof(struct vilegame_piece), 0x20);
local->grumblie_model_bin = assetcache_get(0x3F7); local->grumblie_model_bin = assetcache_get(0x3F7);
local->unkC = 0; local->unkC = 0;

View File

@@ -101,7 +101,7 @@ void func_80386B28(Actor *this){
local->unk14 = 0.0f; local->unk14 = 0.0f;
player_getPosition(&local->unk4); player_getPosition(&local->unk4);
local->unk3 = 3; local->unk3 = 3;
marker->unk30 = func_80386AF8; marker->actorFreeFunc = func_80386AF8;
marker->propPtr->unk8_3 = 1; marker->propPtr->unk8_3 = 1;
this->position_x = 5700.0f; this->position_x = 5700.0f;
this->position_y = -2620.0f; this->position_y = -2620.0f;

View File

@@ -71,7 +71,7 @@ void CCW_func_80387A40(Actor *this) {
sp68 = time_getDelta(); sp68 = time_getDelta();
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = CCW_func_80387A20; this->marker->actorFreeFunc = CCW_func_80387A20;
local->unk4 = &D_8038EC00[0]; local->unk4 = &D_8038EC00[0];
while((local->unk4->unk0 != 0) && (map_get() != local->unk4->unk0)) { while((local->unk4->unk0 != 0) && (map_get() != local->unk4->unk0)) {
local->unk4++; local->unk4++;

View File

@@ -136,7 +136,7 @@ void chGobiCCW_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;
this->marker->unk30 = chGobiCCW_free; this->marker->actorFreeFunc = chGobiCCW_free;
this->unk138_24 = FALSE; this->unk138_24 = FALSE;
local->unk4 = skeletalAnim_new(); local->unk4 = skeletalAnim_new();
local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT); local->spit_model = assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT);

View File

@@ -40,7 +40,7 @@ ActorInfo D_8038EE4C = { 0x12C, 0x168, 0x4F8, 0x5, D_8038ED20, func_80388FD4, fu
/* .code */ /* .code */
s32 func_80388EF0(Actor *this){ s32 func_80388EF0(Actor *this){
switch(this->marker->unk14_20){ switch(this->marker->id){
case 0x133: //L80388F28 case 0x133: //L80388F28
case 0x132: //L80388F28 case 0x132: //L80388F28
return 0; return 0;

View File

@@ -45,22 +45,22 @@ void CCW_func_8038C16C(Actor *this, s32 next_state) {
} }
if (next_state == 2) { if (next_state == 2) {
if (this->marker->unk14_20 == 0x1CA) { if (this->marker->id == 0x1CA) {
skeletalAnim_set(this->unk148, 0x22E, 0.2f, 3.53f); skeletalAnim_set(this->unk148, 0x22E, 0.2f, 3.53f);
skeletalAnim_setCallback_1(this->unk148, 0.1f, func_8038C0E8, this->marker); skeletalAnim_setCallback_1(this->unk148, 0.1f, func_8038C0E8, this->marker);
} }
if (this->marker->unk14_20 == 0x1C7) { if (this->marker->id == 0x1C7) {
skeletalAnim_set(this->unk148, 0x230, 0.2f, 4.0f); skeletalAnim_set(this->unk148, 0x230, 0.2f, 4.0f);
} }
if (this->marker->unk14_20 == 0x1CB) { if (this->marker->id == 0x1CB) {
skeletalAnim_set(this->unk148, 0x1A2, 0.2f, 4.0f); skeletalAnim_set(this->unk148, 0x1A2, 0.2f, 4.0f);
skeletalAnim_setCallback_1(this->unk148, 0.3f, func_8038BFE0, this->marker); skeletalAnim_setCallback_1(this->unk148, 0.3f, func_8038BFE0, this->marker);
skeletalAnim_setCallback_1(this->unk148, 0.65f, func_8038C064, this->marker); skeletalAnim_setCallback_1(this->unk148, 0.65f, func_8038C064, this->marker);
} }
if (this->marker->unk14_20 == 0x1C8) { if (this->marker->id == 0x1C8) {
skeletalAnim_set(this->unk148, 0x231, 0.2f, 4.0f); skeletalAnim_set(this->unk148, 0x231, 0.2f, 4.0f);
} }
if ((this->marker->unk14_20 == 0x1C7) || (this->marker->unk14_20 == 0x1CB) || (this->marker->unk14_20 == 0x1C8)) { if ((this->marker->id == 0x1C7) || (this->marker->id == 0x1CB) || (this->marker->id == 0x1C8)) {
other = actorArray_findActorFromActorId(0x313); other = actorArray_findActorFromActorId(0x313);
if (other != 0) { if (other != 0) {
this->position[0] = other->position[0]; this->position[0] = other->position[0];
@@ -100,7 +100,7 @@ void func_8038C41C(Actor *this) {
if (this->state == 0) { if (this->state == 0) {
if( map_get() == MAP_60_CCW_AUTUMN_NABNUTS_HOUSE if( map_get() == MAP_60_CCW_AUTUMN_NABNUTS_HOUSE
&& !jiggyscore_isSpawned(JIGGY_4A_CCW_NABNUT) && !jiggyscore_isSpawned(JIGGY_4A_CCW_NABNUT)
&& (this->marker->unk14_20 == 0x1C6 || this->marker->unk14_20 == 0x1CA) && (this->marker->id == 0x1C6 || this->marker->id == 0x1CA)
){ ){
CCW_func_8038C16C(this, 1); CCW_func_8038C16C(this, 1);
} else { } else {
@@ -108,11 +108,11 @@ void func_8038C41C(Actor *this) {
} }
} }
if ((this->marker->unk14_20 == 0x1CA) && (this->state != 1)) { if ((this->marker->id == 0x1CA) && (this->state != 1)) {
func_8028E668(this->position, 300.0f, -50.0f, 120.0f); func_8028E668(this->position, 300.0f, -50.0f, 120.0f);
} }
if ((this->marker->unk14_20 == 0x1CB) && (this->state == 2)) { if ((this->marker->id == 0x1CB) && (this->state == 2)) {
player_getPosition(sp2C); player_getPosition(sp2C);
if (!this->unk138_24 && (ml_distance_vec3f(this->position, sp2C) < 400.0f)) { if (!this->unk138_24 && (ml_distance_vec3f(this->position, sp2C) < 400.0f)) {
this->unk138_24 = TRUE; this->unk138_24 = TRUE;

View File

@@ -1,8 +1,8 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
#include "actor.h"
extern void func_802D3D54(Actor *); extern void func_802D3D54(Actor *);
extern void func_802D3D74(Actor *); extern void func_802D3D74(Actor *);
@@ -101,55 +101,55 @@ void CCW_func_8038DB0C(Actor *this){
void CCW_func_8038DB6C(void) void CCW_func_8038DB6C(void)
{ {
spawnableActorList_add(&D_8038EB50, actor_new, 0X80); spawnableActorList_add(&D_8038EB50, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038EB74, actor_new, 0X80); spawnableActorList_add(&D_8038EB74, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038EBA0, actor_new, 0X180); spawnableActorList_add(&D_8038EBA0, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038EBD0, actor_new, 0X200080C); spawnableActorList_add(&D_8038EBD0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038EC14, actor_new, 0X888); spawnableActorList_add(&D_8038EC14, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038EC70, actor_new, 0X94C88); spawnableActorList_add(&D_8038EC70, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_14 | ACTOR_FLAG_UNKNOWN_16 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_8038ECA0, actor_new, 0X84C88); spawnableActorList_add(&D_8038ECA0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_14 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_8038ECE8, actor_new, 0X809A8); spawnableActorList_add(&D_8038ECE8, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_8038EE70, actor_new, 0XC80); spawnableActorList_add(&D_8038EE70, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F130, actor_new, 0X84C2A); spawnableActorList_add(&D_8038F130, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_14 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&chCaterpillar, actor_new, 0X881); spawnableActorList_add(&chCaterpillar, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F190, actor_new, 0X80D80); spawnableActorList_add(&D_8038F190, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_8038F230, actor_new, 0XD80); spawnableActorList_add(&D_8038F230, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F6F0, actor_new, 0X804); spawnableActorList_add(&D_8038F6F0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038ED50, actor_new, 0X400); spawnableActorList_add(&D_8038ED50, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038ED98, actor_new, 0X400); spawnableActorList_add(&D_8038ED98, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038EDE0, actor_new, 0X400); spawnableActorList_add(&D_8038EDE0, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038EE28, actor_new, 0X400); spawnableActorList_add(&D_8038EE28, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038ED74, actor_new, 0); spawnableActorList_add(&D_8038ED74, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038EDBC, actor_new, 0); spawnableActorList_add(&D_8038EDBC, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038EE04, actor_new, 0); spawnableActorList_add(&D_8038EE04, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038EE4C, actor_new, 0); spawnableActorList_add(&D_8038EE4C, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038F270, actor_new, 0X989); spawnableActorList_add(&D_8038F270, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F300, actor_new, 0X989); spawnableActorList_add(&D_8038F300, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F35C, actor_new, 0X909); spawnableActorList_add(&D_8038F35C, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F380, actor_new, 0X80); spawnableActorList_add(&D_8038F380, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038F3A4, actor_new, 0X888); spawnableActorList_add(&D_8038F3A4, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F3C8, actor_new, 0X888); spawnableActorList_add(&D_8038F3C8, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F3EC, actor_new, 0X80); spawnableActorList_add(&D_8038F3EC, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038F410, actor_new, 0X988); spawnableActorList_add(&D_8038F410, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F434, actor_new, 0X888); spawnableActorList_add(&D_8038F434, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F460, actor_new, 0X880); spawnableActorList_add(&D_8038F460, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F4A8, actor_new, 0X98A); spawnableActorList_add(&D_8038F4A8, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F4D0, actor_new, 0X988); spawnableActorList_add(&D_8038F4D0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F614, actor_new, 0X988); spawnableActorList_add(&D_8038F614, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_8038F640, actor_new, 0X80); spawnableActorList_add(&D_8038F640, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038F908, actor_new, 8); spawnableActorList_add(&D_8038F908, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_8038F8C0, actor_new, 8); spawnableActorList_add(&D_8038F8C0, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_8038F720, actor_new, 0); spawnableActorList_add(&D_8038F720, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038F744, actor_new, 0); spawnableActorList_add(&D_8038F744, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038F768, actor_new, 0); spawnableActorList_add(&D_8038F768, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038F78C, actor_new, 0); spawnableActorList_add(&D_8038F78C, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&chGrublinHood, actor_new, 0X2010121); spawnableActorList_add(&chGrublinHood, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_16 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&gChVacationTextTrigger, actor_new, 0); spawnableActorList_add(&gChVacationTextTrigger, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038F7D4, actor_new, 0X400); spawnableActorList_add(&D_8038F7D4, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038F7B0, actor_new, 0X400); spawnableActorList_add(&D_8038F7B0, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038F888, actor_new, 0X80); spawnableActorList_add(&D_8038F888, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038F7F8, actor_new, 0X400); spawnableActorList_add(&D_8038F7F8, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038F81C, actor_new, 0X400); spawnableActorList_add(&D_8038F81C, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038F840, actor_new, 0X400); spawnableActorList_add(&D_8038F840, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038F864, actor_new, 0X400); spawnableActorList_add(&D_8038F864, actor_new, ACTOR_FLAG_UNKNOWN_10);
} }

View File

@@ -112,7 +112,7 @@ void chwasp_update(Actor *this) {
local = (ActorLocal_CCW_950 *)&this->local; local = (ActorLocal_CCW_950 *)&this->local;
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = func_8038717C; this->marker->actorFreeFunc = func_8038717C;
local->unk0 = func_8030D90C(); local->unk0 = func_8030D90C();
local->unk4 = 0; local->unk4 = 0;
local->unk14 = 1000.0f; local->unk14 = 1000.0f;

View File

@@ -88,7 +88,7 @@ void func_8038A384(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = FALSE; this->marker->propPtr->unk8_3 = FALSE;
switch(this->marker->unk14_20){ switch(this->marker->id){
case MARKER_1FA_POLAR_BEAR_CUB_BLUE://L8038A404 case MARKER_1FA_POLAR_BEAR_CUB_BLUE://L8038A404
this->unk1C[0] = 1.0f; this->unk1C[0] = 1.0f;
this->unk1C[1] = 1.2f; this->unk1C[1] = 1.2f;
@@ -139,7 +139,7 @@ void func_8038A384(Actor *this){
}//L8038A648 }//L8038A648
switch(this->marker->unk14_20){ switch(this->marker->id){
case MARKER_1FA_POLAR_BEAR_CUB_BLUE: case MARKER_1FA_POLAR_BEAR_CUB_BLUE:
sp3C = 0; sp3C = 0;
break; break;

View File

@@ -230,7 +230,7 @@ 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 s32 D_80391D24[3] = {0xc8, 0xc8, 0xe6};
static struct31s D_80391D30 = { static ParticleScaleAndLifetimeRanges D_80391D30 = {
{0.2f, 0.4f}, {0.2f, 0.4f},
{1.2f, 1.6f}, {1.2f, 1.6f},
{0.0f, 0.001f}, {0.0f, 0.001f},
@@ -244,7 +244,7 @@ void func_80388EE8(ParticleEmitter *pCtrl){
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);
func_802EFB98(pCtrl, &D_80391D30); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80391D30);
particleEmitter_manualFree(pCtrl); particleEmitter_manualFree(pCtrl);
} }

View File

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

View File

@@ -3,7 +3,6 @@
#include "variables.h" #include "variables.h"
extern Actor *func_802EBAE0(UNK_TYPE(s32), f32 position[3], f32 rotation[3], f32 scale, UNK_TYPE(s32), UNK_TYPE(s32), UNK_TYPE(s32), f32, UNK_TYPE(s32)); extern Actor *func_802EBAE0(UNK_TYPE(s32), f32 position[3], f32 rotation[3], f32 scale, UNK_TYPE(s32), UNK_TYPE(s32), UNK_TYPE(s32), f32, UNK_TYPE(s32));
extern Struct70s *func_8034C2C4(ActorMarker *marker, s32 arg1);
Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3); Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3);
Actor *func_8038C1F8(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx); Actor *func_8038C1F8(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
@@ -61,7 +60,7 @@ s32 D_803920B0[4] = {0xFF, 0xFF, 0xFF, 0x00};
/* .code */ /* .code */
Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3){ Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3){
UNK_TYPE(s32) sp5C = func_8033A12C(func_80330B1C(marker)); UNK_TYPE(s32) sp5C = func_8033A12C(marker_loadModelBin(marker));
Actor *this = marker_getActor(marker); Actor *this = marker_getActor(marker);
f32 sp4C[3]; f32 sp4C[3];
f32 sp40[3]; f32 sp40[3];
@@ -253,7 +252,7 @@ void func_8038C9A0(Actor *this){
Actor *other; //sp34 Actor *other; //sp34
void * sp30; void * sp30;
if(this->marker->unk14_20 == 0x200){ if(this->marker->id == 0x200){
sp30 = func_8034C2C4(this->marker, 0x190); sp30 = func_8034C2C4(this->marker, 0x190);
} }
other = marker_getActor(this->unk100); other = marker_getActor(this->unk100);
@@ -279,7 +278,7 @@ void func_8038C9A0(Actor *this){
}//L8038CA9C }//L8038CA9C
if(1.0f == other->unk1C[1]){ if(1.0f == other->unk1C[1]){
func_8038C398(this->position, this->marker->unk14_20); func_8038C398(this->position, this->marker->id);
FUNC_8030E8B4(SFX_7B_ICE_BREAKING_1, 1.0f, 32000, this->position, 0x6d6, 0xdac);\ FUNC_8030E8B4(SFX_7B_ICE_BREAKING_1, 1.0f, 32000, this->position, 0x6d6, 0xdac);\
marker_despawn(this->marker); marker_despawn(this->marker);
return; return;

View File

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

View File

@@ -78,7 +78,7 @@ Actor *func_8038DF34(Actor *this){
if(prop && prop->unk8_0){ if(prop && prop->unk8_0){
other = marker_getActor(prop->marker); other = marker_getActor(prop->marker);
marker_id = other->marker->unk14_20; marker_id = other->marker->id;
if( marker_id == MARKER_200_TWINKLY_BLUE if( marker_id == MARKER_200_TWINKLY_BLUE
|| marker_id == MARKER_201_TWINKLY_GREEN || marker_id == MARKER_201_TWINKLY_GREEN
|| marker_id == MARKER_202_TWINKLY_ORANGE || marker_id == MARKER_202_TWINKLY_ORANGE
@@ -168,7 +168,7 @@ void func_8038E094(Actor *this){
sp38 = func_8038DF34(this); sp38 = func_8038DF34(this);
if(sp38){ if(sp38){
func_8038DE40(this); func_8038DE40(this);
this->unk38_31 = sp38->marker->unk14_20; this->unk38_31 = sp38->marker->id;
break; break;
} }
@@ -187,16 +187,16 @@ void func_8038E094(Actor *this){
sp38 = func_8038DF34(this); sp38 = func_8038DF34(this);
if(sp38){ if(sp38){
func_8038DE40(this); func_8038DE40(this);
this->unk38_31 = sp38->marker->unk14_20; this->unk38_31 = sp38->marker->id;
} }
break; break;
case 4: //L8038E4F0 case 4: //L8038E4F0
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
sp38 = func_8038DF34(this); sp38 = func_8038DF34(this);
if(sp38 && sp38->marker->unk14_20 == this->unk38_31){ if(sp38 && sp38->marker->id == this->unk38_31){
if(actor_animationIsAt(this, 0.23)){ if(actor_animationIsAt(this, 0.23)){
func_8038C398(sp38->position, sp38->marker->unk14_20); func_8038C398(sp38->position, sp38->marker->id);
FUNC_8030E8B4(SFX_110_TWINKLY_DEATH, 1.0f, 32000, this->position, 1250, 2500); FUNC_8030E8B4(SFX_110_TWINKLY_DEATH, 1.0f, 32000, this->position, 1250, 2500);
FUNC_8030E8B4(SFX_27_JINJO_HI, 1.6f, 32000, this->position, 1250, 2500); FUNC_8030E8B4(SFX_27_JINJO_HI, 1.6f, 32000, this->position, 1250, 2500);
func_80324D54(0.35f, SFX_110_TWINKLY_DEATH, 1.0f, 32000, this->position, 1250.0f, 2500.0f); func_80324D54(0.35f, SFX_110_TWINKLY_DEATH, 1.0f, 32000, this->position, 1250.0f, 2500.0f);

View File

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

View File

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

View File

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

View File

@@ -1,9 +1,9 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
#include "SnS.h" #include "SnS.h"
#include "actor.h"
extern ActorInfo D_80367FE0; extern ActorInfo D_80367FE0;
@@ -91,7 +91,7 @@ void func_80391040(Actor *this){
if(randf() < 0.5){ if(randf() < 0.5){
a1 = 8; a1 = 8;
switch(this->marker->unk14_20){ switch(this->marker->id){
case 0x247://L80391128 case 0x247://L80391128
sp2C = 0x710; sp2C = 0x710;
break; break;
@@ -126,7 +126,7 @@ void func_80391180(Actor *this){
} }
this->unk58_0 = func_8038DD14() ? 0 : 1; this->unk58_0 = func_8038DD14() ? 0 : 1;
if(this->marker->unk14_20 == 0x21F){ if(this->marker->id == 0x21F){
this->marker->unk40_22 = subaddie_playerIsWithinSphere(this, 2000) ? 1 : 0; this->marker->unk40_22 = subaddie_playerIsWithinSphere(this, 2000) ? 1 : 0;
} }
} }
@@ -135,10 +135,10 @@ void FP_func_80391254(Actor *this){
func_802D3D74(this); func_802D3D74(this);
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if(this->marker->unk14_20 == 0x221 || this->marker->unk14_20 == 0x223){ if(this->marker->id == 0x221 || this->marker->id == 0x223){
this->pitch = 3.0f; this->pitch = 3.0f;
} }
if(this->marker->unk14_20 == 0x222){ if(this->marker->id == 0x222){
this->pitch = 2.0f; this->pitch = 2.0f;
} }
} }
@@ -154,54 +154,54 @@ void func_803912EC(Actor *this){
void FP_func_80391324(void) void FP_func_80391324(void)
{ {
spawnableActorList_add(&FP_D_80391AB0, actor_new, 0X600); spawnableActorList_add(&FP_D_80391AB0, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80391BB0, actor_new, 0X2A); spawnableActorList_add(&D_80391BB0, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5);
spawnableActorList_add(&D_80391C18, actor_new, 0X180084); spawnableActorList_add(&D_80391C18, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_19 | ACTOR_FLAG_UNKNOWN_20);
spawnableActorList_add(&D_80391C58, actor_new, 0X180084); spawnableActorList_add(&D_80391C58, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_19 | ACTOR_FLAG_UNKNOWN_20);
spawnableActorList_add(&D_80391CE8, actor_new, 0X2002E); spawnableActorList_add(&D_80391CE8, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80391E08, actor_new, 0X100); spawnableActorList_add(&D_80391E08, actor_new, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&FP_D_80391E2C, actor_new, 0X100); spawnableActorList_add(&FP_D_80391E2C, actor_new, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_80391E50, actor_new, 0X100); spawnableActorList_add(&D_80391E50, actor_new, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_80391F88, actor_new, 0X2100C); spawnableActorList_add(&D_80391F88, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_12 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80391FAC, actor_new, 0X2100C); spawnableActorList_add(&D_80391FAC, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_12 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80391FD0, actor_new, 0X2100C); spawnableActorList_add(&D_80391FD0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_12 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80391FF4, actor_new, 0X2100C); spawnableActorList_add(&D_80391FF4, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_12 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_803920E8, actor_new, 0X408); spawnableActorList_add(&D_803920E8, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803923D0, actor_new, 0X100006C); spawnableActorList_add(&D_803923D0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_24);
spawnableActorList_add(&chXmasTree, actor_new, 0X20400); spawnableActorList_add(&chXmasTree, actor_new, ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80392420, actor_new, 4); spawnableActorList_add(&D_80392420, actor_new, ACTOR_FLAG_UNKNOWN_2);
spawnableActorList_add(&D_80392470, actor_new, 0X444); spawnableActorList_add(&D_80392470, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803924B0, actor_new, 8); spawnableActorList_add(&D_803924B0, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_803924D4, actor_new, 8); spawnableActorList_add(&D_803924D4, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_803924F8, actor_new, 8); spawnableActorList_add(&D_803924F8, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&chScarfSled, actor_new, 0); spawnableActorList_add(&chScarfSled, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&chRaceSled, actor_new, 0X20); spawnableActorList_add(&chRaceSled, actor_new, ACTOR_FLAG_UNKNOWN_5);
spawnableActorList_add(&D_80392588, actor_new, 0X80108); spawnableActorList_add(&D_80392588, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_80392628, actor_new, 0X44); spawnableActorList_add(&D_80392628, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_80392690, actor_new, 0XA8); spawnableActorList_add(&D_80392690, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_803926C0, actor_new, 0X8000400); spawnableActorList_add(&D_803926C0, actor_new, ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_27);
spawnableActorList_add(&D_80392700, actor_new, 0X108); spawnableActorList_add(&D_80392700, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&FP_D_80392840, actor_new, 0); spawnableActorList_add(&FP_D_80392840, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_80392730, actor_new, 0X20000); spawnableActorList_add(&D_80392730, actor_new, ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80367FE0, actor_new, 0); spawnableActorList_add(&D_80367FE0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&FP_D_803928E0, actor_new, 0X40); spawnableActorList_add(&FP_D_803928E0, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_80392904, actor_new, 0X40); spawnableActorList_add(&D_80392904, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_80392928, actor_new, 0X40); spawnableActorList_add(&D_80392928, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_8039294C, actor_new, 0X40); spawnableActorList_add(&D_8039294C, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_80392B20, actor_new, 0X400); spawnableActorList_add(&D_80392B20, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392B44, actor_new, 0X400); spawnableActorList_add(&D_80392B44, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392970, actor_new, 0X400); spawnableActorList_add(&D_80392970, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392994, actor_new, 0X400); spawnableActorList_add(&D_80392994, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803929B8, actor_new, 0X404); spawnableActorList_add(&D_803929B8, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803929DC, actor_new, 0X404); spawnableActorList_add(&D_803929DC, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392A00, actor_new, 0X404); spawnableActorList_add(&D_80392A00, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392A24, actor_new, 0X20004); spawnableActorList_add(&D_80392A24, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80392A48, actor_new, 4); spawnableActorList_add(&D_80392A48, actor_new, ACTOR_FLAG_UNKNOWN_2);
spawnableActorList_add(&D_80392A6C, actor_new, 0X20004); spawnableActorList_add(&D_80392A6C, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80392A90, actor_new, 0X20004); spawnableActorList_add(&D_80392A90, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80392AB4, actor_new, 0X400); spawnableActorList_add(&D_80392AB4, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392AD8, actor_new, 0X400); spawnableActorList_add(&D_80392AD8, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80392AFC, actor_new, 0X400); spawnableActorList_add(&D_80392AFC, actor_new, ACTOR_FLAG_UNKNOWN_10);
} }

View File

@@ -116,7 +116,7 @@ void chGobi1_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
marker_setCollisionScripts(this->marker, func_803873B0, NULL, NULL); marker_setCollisionScripts(this->marker, func_803873B0, NULL, NULL);
marker->unk30 = func_8038736C; marker->actorFreeFunc = func_8038736C;
marker->propPtr->unk8_3 = TRUE; marker->propPtr->unk8_3 = TRUE;
marker->collidable = TRUE; marker->collidable = TRUE;
GV_D_80391A40.unk0 = 0; GV_D_80391A40.unk0 = 0;
@@ -203,7 +203,7 @@ void chGobi1_update(Actor *this){
if(this->state == 4){ if(this->state == 4){
func_80326224(this); func_80326224(this);
tmp_s1 = func_8033A12C(func_80330B1C(this->marker)); tmp_s1 = func_8033A12C(marker_loadModelBin(this->marker));
if(tmp_s1){ if(tmp_s1){
player_getPosition(sp54); player_getPosition(sp54);
sp54[1] += 50.0f; sp54[1] += 50.0f;

View File

@@ -132,7 +132,7 @@ Actor *chGobi2_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
sp3C[2] = this->roll; sp3C[2] = this->roll;
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148)); modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148));
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this); modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, func_80330B1C(this_marker)); modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, marker_loadModelBin(this_marker));
if(this->state == 4){ if(this->state == 4){
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(local->unk4)); modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(local->unk4));
@@ -173,7 +173,7 @@ void chGobi2_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
marker_setCollisionScripts(this->marker, __chGobi2_ow, NULL, NULL); marker_setCollisionScripts(this->marker, __chGobi2_ow, NULL, NULL);
sp34->unk30 = __chGobi2_80387EFC; sp34->actorFreeFunc = __chGobi2_80387EFC;
local->unk4 = skeletalAnim_new(); local->unk4 = skeletalAnim_new();
local->unk8 = (BKModelBin*) assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT); local->unk8 = (BKModelBin*) assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT);
D_80391A50 = 0; D_80391A50 = 0;

View File

@@ -71,7 +71,7 @@ Actor *chGobiRock_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx
sp3C[2] = this->roll; sp3C[2] = this->roll;
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32) this); modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32) this);
func_8033A450(func_80329934()); func_8033A450(func_80329934());
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL,func_80330B1C(this_marker)); modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL,marker_loadModelBin(this_marker));
func_8034A174(func_80329934(), 5, local->unk0); func_8034A174(func_80329934(), 5, local->unk0);
return this; return this;
@@ -99,7 +99,7 @@ void chGobiRock_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
sp34->unk30 = chGobiRock_free; sp34->actorFreeFunc = chGobiRock_free;
sp34->propPtr->unk8_3 = TRUE; sp34->propPtr->unk8_3 = TRUE;
marker_setCollisionScripts(this->marker, NULL, NULL, __chGobiRock_destroy); marker_setCollisionScripts(this->marker, NULL, NULL, __chGobiRock_destroy);
local->unkC = particleEmitter_new(20); local->unkC = particleEmitter_new(20);

View File

@@ -152,7 +152,7 @@ void chMazeCtrl_update(Actor *this){
sp34 = time_getDelta(); sp34 = time_getDelta();
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = __chMazeCtrl_8038F5E4; this->marker->actorFreeFunc = __chMazeCtrl_8038F5E4;
if(this->state == 2){ if(this->state == 2){
comusic_8025AB44(COMUSIC_26_GV_SANDYBUTT_DANGER, 30000, 30000); comusic_8025AB44(COMUSIC_26_GV_SANDYBUTT_DANGER, 30000, 30000);
item_set(ITEM_6_HOURGLASS, TRUE); item_set(ITEM_6_HOURGLASS, TRUE);

View File

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

View File

@@ -141,7 +141,7 @@ void func_8038A31C(Actor *this){
}//L8038A6A4 }//L8038A6A4
this->unk124_11 = 0x3; this->unk124_11 = 0x3;
this->pitch = 0.0f; this->pitch = 0.0f;
if(this->unk100 && sp24 && this->unk100->unk14_20 == MARKER_AF_MAGIC_CARPET_SHADOW){ if(this->unk100 && sp24 && this->unk100->id == MARKER_AF_MAGIC_CARPET_SHADOW){
sp24->position_x = this->position_x; sp24->position_x = this->position_x;
sp24->position_y = func_80309724(this->position) + 60.0f; sp24->position_y = func_80309724(this->position) + 60.0f;
sp24->position_z = this->position_z; sp24->position_z = this->position_z;

View File

@@ -101,7 +101,7 @@ void GV_func_8038A9C0(Actor *this){
} }
this->unk1C[2] = this->unk1C[1]; this->unk1C[2] = this->unk1C[1];
this->unk1C[1] = this->unk48; this->unk1C[1] = this->unk48;
if(this->unk100 != NULL && sp24 != NULL && this->unk100->unk14_20 == MARKER_AF_MAGIC_CARPET_SHADOW){ if(this->unk100 != NULL && sp24 != NULL && this->unk100->id == MARKER_AF_MAGIC_CARPET_SHADOW){
sp24->unk1C[0] = func_8038A860(sp24, this); sp24->unk1C[0] = func_8038A860(sp24, this);
} }
} }

View File

@@ -160,7 +160,7 @@ void func_8038CC98(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
sp7C = fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2); sp7C = fileProgressFlag_getN(FILEPROG_F8_KING_SANDYBUTT_PYRAMID_STATE, 2);
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = func_8038C880; this->marker->actorFreeFunc = func_8038C880;
local->unk8 = &D_803911F0[this->modelCacheIndex - 0x285]; local->unk8 = &D_803911F0[this->modelCacheIndex - 0x285];
local->unk10 = 0; local->unk10 = 0;
local->unk14 = 0; local->unk14 = 0;

View File

@@ -13,6 +13,7 @@ ActorAnimationInfo D_80391340[] ={
{0xF0, 1.6f}, {0xF0, 1.6f},
}; };
// 0x121 - Big Jinxy Head, 0x3E6 - GV Jinxy Head 2
ActorInfo D_80391358 = { 0xAE, 0x121, 0x3E6, ActorInfo D_80391358 = { 0xAE, 0x121, 0x3E6,
0x1, D_80391340, 0x1, D_80391340,
func_8038E1A0, func_8038E1A8, actor_draw, func_8038E1A0, func_8038E1A8, actor_draw,

View File

@@ -1,8 +1,8 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "SnS.h" #include "SnS.h"
#include "actor.h"
extern void func_80244BB0(s32, s32, s32, f32); extern void func_80244BB0(s32, s32, s32, f32);
extern void func_802D3D54(Actor *this); extern void func_802D3D54(Actor *this);
@@ -467,47 +467,47 @@ void func_8038F130(UNK_TYPE(s32) arg0, ActorMarker *arg1){
void GV_func_8038F154(void) void GV_func_8038F154(void)
{ {
spawnableActorList_add(&chToots, actor_new, 0X180); spawnableActorList_add(&chToots, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&chAncientOne, actor_new, 0X58A); spawnableActorList_add(&chAncientOne, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&Gobi1, actor_new, 0X9A8); spawnableActorList_add(&Gobi1, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&chGobiRope, actor_new, 0X880); spawnableActorList_add(&chGobiRope, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&chGobiRock, actor_new, 0X80); spawnableActorList_add(&chGobiRock, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&chGobi2, actor_new, 0XDA8); spawnableActorList_add(&chGobi2, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&chGobi3, actor_new, 0X9A8); spawnableActorList_add(&chGobi3, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&chTrunker, actor_new, 0XD80); spawnableActorList_add(&chTrunker, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&GV_D_80390DD0, actor_new, 0X4004); spawnableActorList_add(&GV_D_80390DD0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&chSarcophagus, actor_new, 0X448); spawnableActorList_add(&chSarcophagus, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&chSNSSarcophagus, actor_new, 0X48); spawnableActorList_add(&chSNSSarcophagus, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_80390ED0, actor_new, 0X180); spawnableActorList_add(&D_80390ED0, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_80390F00, actor_new, 0X80); spawnableActorList_add(&D_80390F00, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390FD0, actor_new, 0X4048); spawnableActorList_add(&D_80390FD0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80391010, actor_new, 0X4048); spawnableActorList_add(&D_80391010, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80391098, actor_new, 0X10069); spawnableActorList_add(&D_80391098, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_16);
spawnableActorList_add(&D_80391158, actor_new, 0X48); spawnableActorList_add(&D_80391158, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_803911C0, actor_new, 8); spawnableActorList_add(&D_803911C0, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_803911F4, actor_new, 0X80988); spawnableActorList_add(&D_803911F4, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_80391218, actor_new, 0X80988); spawnableActorList_add(&D_80391218, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_8039123C, actor_new, 0X80988); spawnableActorList_add(&D_8039123C, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_19);
spawnableActorList_add(&D_80391260, actor_new, 0X80); spawnableActorList_add(&D_80391260, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80391318, actor_new, 0X78A); spawnableActorList_add(&D_80391318, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80391358, actor_new, 0X518); spawnableActorList_add(&D_80391358, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_4 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10); // Big Jinxy Head ?
spawnableActorList_add(&D_803912B8, actor_new, 0X500); spawnableActorList_add(&D_803912B8, actor_new, ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&GV_D_80391390, actor_new, 0X500); spawnableActorList_add(&GV_D_80391390, actor_new, ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803913B4, actor_new, 0X500); spawnableActorList_add(&D_803913B4, actor_new, ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80390F40, actor_new, 0); spawnableActorList_add(&D_80390F40, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_80391494, actor_new, 0X408); spawnableActorList_add(&D_80391494, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&chMazeCtrl, actor_new, 0); spawnableActorList_add(&chMazeCtrl, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&chBuriedPyramid, actor_new, 0X400); spawnableActorList_add(&chBuriedPyramid, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803914B8, actor_new, 0X400); spawnableActorList_add(&D_803914B8, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803914DC, actor_new, 0X400); spawnableActorList_add(&D_803914DC, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&GV_D_80391500, actor_new, 0X400); spawnableActorList_add(&GV_D_80391500, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&GV_D_80391524, actor_new, 0X400); spawnableActorList_add(&GV_D_80391524, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8039156C, actor_new, 0X400); spawnableActorList_add(&D_8039156C, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80391428, actor_new, 8); spawnableActorList_add(&D_80391428, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_8039144C, actor_new, 8); spawnableActorList_add(&D_8039144C, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_80391470, actor_new, 8); spawnableActorList_add(&D_80391470, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_80391548, actor_new, 0X400); spawnableActorList_add(&D_80391548, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80391590, actor_new, 0X400); spawnableActorList_add(&D_80391590, actor_new, ACTOR_FLAG_UNKNOWN_10);
} }
s32 func_8038F4C0(Actor *arg0, s32 arg1){ s32 func_8038F4C0(Actor *arg0, s32 arg1){

View File

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

View File

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

View File

@@ -31,7 +31,7 @@ Actor *func_80387AA0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
void func_80387B14(Actor *this, s32 next_state){ void func_80387B14(Actor *this, s32 next_state){
ActorLocal_PortraitChompa *local = (ActorLocal_PortraitChompa *) &this->local; ActorLocal_PortraitChompa *local = (ActorLocal_PortraitChompa *) &this->local;
f32 tmp = 2.5f; f32 tmp = 2.5f;
this->marker->unk14_20 = 0x1d1; this->marker->id = 0x1d1;
if(next_state == 1 || next_state == 2){ if(next_state == 1 || next_state == 2){
skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f); skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f);
@@ -54,7 +54,7 @@ void func_80387B14(Actor *this, s32 next_state){
} }
if(next_state == 4){ if(next_state == 4){
this->marker->unk14_20 = MARKER_254_PORTRAIT_CHOMPA_A; this->marker->id = MARKER_254_PORTRAIT_CHOMPA_A;
skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f); skeletalAnim_set(this->unk148, 0x23e, 0.0f, 2.5f);
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE); skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE);
if(this->unk100){ if(this->unk100){
@@ -117,7 +117,7 @@ void func_80387D48(ActorMarker *marker){
void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) { void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) {
static s32 D_8038BAF4[3] = {0xB4, 0xFF, 0x8C}; static s32 D_8038BAF4[3] = {0xB4, 0xFF, 0x8C};
static struct31s D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f}; static ParticleScaleAndLifetimeRanges D_8038BB00 = {{0.2f, 0.4f}, {1.8f, 2.8f}, {0.0f, 0.15f}, {0.7f, 1.2f}, 0.0f, 0.01f};
static struct43s D_8038BB28 = { static struct43s D_8038BB28 = {
{{-150.0f, 250.0f, -150.0f}, {150.0f, 300.0f, 150.0f}}, {{-150.0f, 250.0f, -150.0f}, {150.0f, 300.0f, 150.0f}},
{{ 0.0f, -600.0f, 0.0f}, { 0.0f, -600.0f, 0.0f}}, {{ 0.0f, -600.0f, 0.0f}, { 0.0f, -600.0f, 0.0f}},
@@ -130,12 +130,12 @@ void func_80387DF8(f32 position[3], s32 count, enum asset_e sprite_id) {
particleEmitter_setSprite(pCtrl, sprite_id); particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position); particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB28); particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8038BB28);
func_802EFB98(pCtrl, &D_8038BB00); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038BB00);
particleEmitter_emitN(pCtrl, count); particleEmitter_emitN(pCtrl, count);
} }
void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) { void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) {
static struct31s D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f}; static ParticleScaleAndLifetimeRanges D_8038BB70 = {{1.0f, 1.0f}, {1.0f, 1.0f}, {0.0f, 0.0f}, {3.2f, 3.2f}, 0.0f, 0.45f};
static struct43s D_8038BB98 = { static struct43s D_8038BB98 = {
{{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}}, {{-90.0f, 300.0f, -90.0f}, {90.0f, 660.0f, 90.0f}},
{{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}}, {{ 0.0f, -1200.0f, 0.0f}, { 0.0f, -1200.0f, 0.0f}},
@@ -153,7 +153,7 @@ void func_80387E84(f32 position[3], s32 count, enum asset_e model_id) {
func_802EFA20(pCtrl, 1.0f, 1.3f); func_802EFA20(pCtrl, 1.0f, 1.3f);
particleEmitter_setSfx(pCtrl, SFX_2F_ORANGE_SPLAT, 16000); particleEmitter_setSfx(pCtrl, SFX_2F_ORANGE_SPLAT, 16000);
particleEmitter_setDrawMode(pCtrl, 2); particleEmitter_setDrawMode(pCtrl, 2);
func_802EFB98(pCtrl, &D_8038BB70); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038BB70);
particleEmitter_emitN(pCtrl, count); particleEmitter_emitN(pCtrl, count);
} }
@@ -222,7 +222,7 @@ void func_80388028(Actor *this){
if(this->state == 4){ if(this->state == 4){
skeletalAnim_getProgressRange(this->unk148, &sp44, &sp40); skeletalAnim_getProgressRange(this->unk148, &sp44, &sp40);
if(sp44 < 0.56 && 0.56 <= sp40){ if(sp44 < 0.56 && 0.56 <= sp40){
this->marker->unk14_20 = 0x1d1; this->marker->id = 0x1d1;
} }
if(sp44 < 0.5 && 0.5 <= sp40){ if(sp44 < 0.5 && 0.5 <= sp40){

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "SnS.h" #include "SnS.h"
#include "actor.h"
extern ActorInfo D_8038BC28; extern ActorInfo D_8038BC28;
extern ActorInfo D_8038BCDC; extern ActorInfo D_8038BCDC;
@@ -207,7 +208,7 @@ bool func_80388670(ActorMarker * this_marker, ActorMarker * other_marker){
f32 sp20[3]; f32 sp20[3];
player_getPosition(sp20); player_getPosition(sp20);
switch(this->marker->unk14_20){ switch(this->marker->id){
case 0x9f: //L803886D0 case 0x9f: //L803886D0
return (-335.0f < sp20[0] && sp20[0] < -200.0f) && (-2730.0f < sp20[2] && sp20[2] < -2400.0f); return (-335.0f < sp20[0] && sp20[0] < -200.0f) && (-2730.0f < sp20[2] && sp20[2] < -2400.0f);
@@ -228,7 +229,7 @@ void func_803888B8(Actor *this){
this->unk60 = 0.0f; this->unk60 = 0.0f;
switch(this->state){ switch(this->state){
case 4: case 4:
switch(this->marker->unk14_20){ switch(this->marker->id){
case 0x9F: case 0x9F:
this->roll = MMM_func_80388430(this, 0, -1, this->roll); this->roll = MMM_func_80388430(this, 0, -1, this->roll);
break; break;
@@ -391,31 +392,31 @@ void func_803890B8(Actor *this) {
} }
void MMM_func_803890E0(void){ void MMM_func_803890E0(void){
spawnableActorList_add(&D_8038BC28, actor_new, 0); spawnableActorList_add(&D_8038BC28, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BCDC, actor_new, 0); spawnableActorList_add(&D_8038BCDC, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BC4C, actor_new, 0); spawnableActorList_add(&D_8038BC4C, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BDB4, actor_new, 0x40); spawnableActorList_add(&D_8038BDB4, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_8038BDD8, actor_new, 0x40); spawnableActorList_add(&D_8038BDD8, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_8038BDFC, actor_new, 0x440); spawnableActorList_add(&D_8038BDFC, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038BC94, actor_new, 0); spawnableActorList_add(&D_8038BC94, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BC70, actor_new, 0); spawnableActorList_add(&D_8038BC70, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BD00, actor_new, 0); spawnableActorList_add(&D_8038BD00, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BD24, actor_new, 0x8600); spawnableActorList_add(&D_8038BD24, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BD48, actor_new, 0x8600); spawnableActorList_add(&D_8038BD48, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BD6C, actor_new, 0x8600); spawnableActorList_add(&D_8038BD6C, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BCB8, actor_new, 0x8600); spawnableActorList_add(&D_8038BCB8, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BD90, actor_new, 8); spawnableActorList_add(&D_8038BD90, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&chNapper, actor_new, 0x18A0); spawnableActorList_add(&chNapper, actor_new, ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_12);
spawnableActorList_add(&D_8038BA68, actor_new, 0x100); spawnableActorList_add(&D_8038BA68, actor_new, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&chMotzhand, actor_new, 0x20880); spawnableActorList_add(&chMotzhand, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80367E70, actor_new, 0); spawnableActorList_add(&D_80367E70, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&chLoggo, actor_new, 0x108); spawnableActorList_add(&chLoggo, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038BAD0, actor_new, 0x2800960); spawnableActorList_add(&D_8038BAD0, actor_new, ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_23 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038BE48, actor_new, 0x800040); spawnableActorList_add(&D_8038BE48, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BE6C, actor_new, 0x800040); spawnableActorList_add(&D_8038BE6C, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BE90, actor_new, 0x800040); spawnableActorList_add(&D_8038BE90, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BEB4, actor_new, 0x800040); spawnableActorList_add(&D_8038BEB4, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BED8, actor_new, 0x800040); spawnableActorList_add(&D_8038BED8, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BEFC, actor_new, 0x800040); spawnableActorList_add(&D_8038BEFC, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_80372C3C, actor_new, 0xA11A9); spawnableActorList_add(&D_80372C3C, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_12 | ACTOR_FLAG_UNKNOWN_17 | ACTOR_FLAG_UNKNOWN_19);
} }

View File

@@ -5,7 +5,6 @@
extern void actor_predrawMethod(Actor *); extern void actor_predrawMethod(Actor *);
extern void actor_postdrawMethod(ActorMarker *); extern void actor_postdrawMethod(ActorMarker *);
extern void func_8030E394(u8); extern void func_8030E394(u8);
extern void func_80326310(Actor *);
extern int func_803342AC(f32 (*)[3], f32(*)[3], f32); extern int func_803342AC(f32 (*)[3], f32(*)[3], f32);
extern void particleEmitter_setModel(ParticleEmitter *, s32); extern void particleEmitter_setModel(ParticleEmitter *, s32);
@@ -446,7 +445,7 @@ void func_8038D5BC(ActorMarker *marker, s32 arg1){
} }
void func_8038D608(ActorMarker *marker, ActorMarker *other){ void func_8038D608(ActorMarker *marker, ActorMarker *other){
func_8038D7E8(marker, other->unk14_20 == 1); func_8038D7E8(marker, other->id == 1);
} }
Actor *func_8038D638(ActorMarker *marker, Gfx **gdl, Mtx ** mptr, s32 arg3){ Actor *func_8038D638(ActorMarker *marker, Gfx **gdl, Mtx ** mptr, s32 arg3){
@@ -466,7 +465,7 @@ Actor *func_8038D638(ActorMarker *marker, Gfx **gdl, Mtx ** mptr, s32 arg3){
} }
modelRender_preDraw( (GenFunction_1)actor_predrawMethod, (s32)actor); modelRender_preDraw( (GenFunction_1)actor_predrawMethod, (s32)actor);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker); modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gdl, mptr, actor->position, sp3C, actor->scale, NULL, func_80330B1C(marker)); modelRender_draw(gdl, mptr, actor->position, sp3C, actor->scale, NULL, marker_loadModelBin(marker));
return actor; return actor;
} }
@@ -505,7 +504,7 @@ void func_8038D8BC(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
local->unk0 = &D_80390B70[this->marker->unk14_20 - 0x1A1]; local->unk0 = &D_80390B70[this->marker->id - 0x1A1];
local->unk4 = 0; local->unk4 = 0;
local->unk20 = 0; local->unk20 = 0;

View File

@@ -48,7 +48,7 @@ void func_80388C20(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
actor_collisionOff(this); actor_collisionOff(this);
this->marker->propPtr->unk8_3 = 1; this->marker->propPtr->unk8_3 = 1;
this->marker->unk30 = func_80388BE8; this->marker->actorFreeFunc = func_80388BE8;
this->unk16C_4 = 1; this->unk16C_4 = 1;
if(this->modelCacheIndex == 0x17B){ if(this->modelCacheIndex == 0x17B){
local->sfxsource_index = func_8030D90C(); local->sfxsource_index = func_8030D90C();

View File

@@ -81,7 +81,7 @@ Actor *chPropellorSwitch_draw(ActorMarker *marker, Gfx **gdl, Mtx **mptr, s32 ar
modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, local->unk4); modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, local->unk4);
} }
else{ else{
modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, func_80330B1C(marker)); modelRender_draw(gdl, mptr, &actor->position, NULL, 1.0f, NULL, marker_loadModelBin(marker));
} }
return actor; return actor;
} }
@@ -96,7 +96,7 @@ void chPropellorSwitch_update(Actor *this){
ActorLocal_RBB_3CB0 *local = (ActorLocal_RBB_3CB0 *)&this->local; ActorLocal_RBB_3CB0 *local = (ActorLocal_RBB_3CB0 *)&this->local;
if(!this->unk16C_4){ if(!this->unk16C_4){
this->marker->propPtr->unk8_3 = 1; this->marker->propPtr->unk8_3 = 1;
this->marker->unk30 = chPropellorSwitch_free; this->marker->actorFreeFunc = chPropellorSwitch_free;
this->unk16C_4 = 1; this->unk16C_4 = 1;
local->unk0 = &D_80390720[((this->unk78_13 == 2) ? 0:1)]; local->unk0 = &D_80390720[((this->unk78_13 == 2) ? 0:1)];
if(local->unk0->unk6 == 0) if(local->unk0->unk6 == 0)

View File

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

View File

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

View File

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

View File

@@ -1,8 +1,8 @@
#include <ultra64.h> #include <ultra64.h>
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
#include "actor.h"
extern ActorInfo D_80390D20; extern ActorInfo D_80390D20;
extern ActorInfo D_80390050; extern ActorInfo D_80390050;
@@ -169,56 +169,56 @@ void func_80386BF8(Actor *arg0){
} }
void RBB_func_80386C48(void){ void RBB_func_80386C48(void){
spawnableActorList_add(&D_80390D20, actor_new, 0x4880); spawnableActorList_add(&D_80390D20, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80390050, actor_new, 0); spawnableActorList_add(&D_80390050, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_80390200, actor_new, 0x80); spawnableActorList_add(&D_80390200, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390270, actor_new, 0x80); spawnableActorList_add(&D_80390270, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390D50, actor_new, 0x8004480); spawnableActorList_add(&D_80390D50, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_14 | ACTOR_FLAG_UNKNOWN_27);
spawnableActorList_add(&D_803906E0, actor_new, 0x80); spawnableActorList_add(&D_803906E0, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390738, actor_new, 0x80); spawnableActorList_add(&D_80390738, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_803907D0, actor_new, 0x6488); spawnableActorList_add(&D_803907D0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_803907F4, actor_new, 0x6488); spawnableActorList_add(&D_803907F4, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80390818, actor_new, 0x6488); spawnableActorList_add(&D_80390818, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_8039083C, actor_new, 0x6488); spawnableActorList_add(&D_8039083C, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_803904C0, actor_new, 0x6408); spawnableActorList_add(&D_803904C0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_803904E4, actor_new, 0x6408); spawnableActorList_add(&D_803904E4, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80390508, actor_new, 0x6408); spawnableActorList_add(&D_80390508, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_803903B0, actor_new, 0x6408); spawnableActorList_add(&D_803903B0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_803903D4, actor_new, 0x6408); spawnableActorList_add(&D_803903D4, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_803903F8, actor_new, 0x6408); spawnableActorList_add(&D_803903F8, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_13 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80390640, actor_new, 0x400); spawnableActorList_add(&D_80390640, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80390664, actor_new, 0x400); spawnableActorList_add(&D_80390664, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80390688, actor_new, 0x400); spawnableActorList_add(&D_80390688, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803906B0, actor_new, 0); spawnableActorList_add(&D_803906B0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_803908C0, actor_new, 0x80); spawnableActorList_add(&D_803908C0, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_803908E4, actor_new, 0x80); spawnableActorList_add(&D_803908E4, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390908, actor_new, 0x80); spawnableActorList_add(&D_80390908, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_803909B0, actor_new, 0x880); spawnableActorList_add(&D_803909B0, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_803909D4, actor_new, 0x880); spawnableActorList_add(&D_803909D4, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&RBB_D_803909F8, actor_new, 0x880); spawnableActorList_add(&RBB_D_803909F8, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_80390A50, actor_new, 0x80); spawnableActorList_add(&D_80390A50, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390380, actor_new, 0x9aa); spawnableActorList_add(&D_80390380, actor_new, ACTOR_FLAG_UNKNOWN_1 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_80390A80, actor_new, 0x80); //anchorswitch spawnableActorList_add(&D_80390A80, actor_new, ACTOR_FLAG_UNKNOWN_7); //anchorswitch
spawnableActorList_add(&RBB_D_80390AB0, actor_new, 0x8C8); //dolphin spawnableActorList_add(&RBB_D_80390AB0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11); //dolphin
spawnableActorList_add(&RBB_D_80390AE0, actor_new, 0xC80); //anchor spawnableActorList_add(&RBB_D_80390AE0, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11); //anchor
spawnableActorList_add(&RBB_D_80390B10, actor_new, 0x80); spawnableActorList_add(&RBB_D_80390B10, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390B40, actor_new, 0x880); //rarewareflag spawnableActorList_add(&D_80390B40, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11); //rarewareflag
spawnableActorList_add(&RBB_D_80390BD0, actor_new, 0xc2c); spawnableActorList_add(&RBB_D_80390BD0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_80390BF4, actor_new, 0xc2c); spawnableActorList_add(&D_80390BF4, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&D_80390C18, actor_new, 0xc2c); spawnableActorList_add(&D_80390C18, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&RBB_D_80390C3C, actor_new, 0xc2c); spawnableActorList_add(&RBB_D_80390C3C, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&RBB_D_80390CF0, actor_new, 0x80); spawnableActorList_add(&RBB_D_80390CF0, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390D88, actor_new, 0x2000889); spawnableActorList_add(&D_80390D88, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_80390DAC, actor_new, 0x2000889); spawnableActorList_add(&D_80390DAC, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&RBB_D_80390E00, actor_new, 0x80); spawnableActorList_add(&RBB_D_80390E00, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390E34, actor_new, 0x80); spawnableActorList_add(&D_80390E34, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390E58, actor_new, 0x80); spawnableActorList_add(&D_80390E58, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_803900E0, actor_new, 0); spawnableActorList_add(&D_803900E0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_80390104, actor_new, 0x8600); //captcabinwooddoor spawnableActorList_add(&D_80390104, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15); //captcabinwooddoor
spawnableActorList_add(&D_80390128, actor_new, 0); spawnableActorList_add(&D_80390128, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8039014C, actor_new, 0); spawnableActorList_add(&D_8039014C, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_803901B8, actor_new, 0x8600); spawnableActorList_add(&D_803901B8, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_803901DC, actor_new, 0x8600); spawnableActorList_add(&D_803901DC, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_80390170, actor_new, 0x8600); //skylight spawnableActorList_add(&D_80390170, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15); //skylight
spawnableActorList_add(&D_80390194, actor_new, 0x8); //honeycombswitch spawnableActorList_add(&D_80390194, actor_new, ACTOR_FLAG_UNKNOWN_3); //honeycombswitch
} }

View File

@@ -38,7 +38,7 @@ void func_8038FC48(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
actor_collisionOff(this); actor_collisionOff(this);
local->unk4 = RBB_D_80390E30 + (this->marker->unk14_20 - 0x1d2); local->unk4 = RBB_D_80390E30 + (this->marker->id - 0x1d2);
local->unk8 = NULL; local->unk8 = NULL;
local->unk0 = func_802F9AA8(0x400); local->unk0 = func_802F9AA8(0x400);

View File

@@ -200,7 +200,7 @@ void func_80387890(Actor *this){
void func_803878B0(Actor *this){ void func_803878B0(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->marker->unk30 = func_80387890; this->marker->actorFreeFunc = func_80387890;
marker_setCollisionScripts(this->marker, 0, func_80387850, 0); marker_setCollisionScripts(this->marker, 0, func_80387850, 0);
func_8032AA58(this, 1.1f); func_8032AA58(this, 1.1f);
func_8038756C(this, 1); func_8038756C(this, 1);

View File

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

View File

@@ -142,7 +142,7 @@ void func_80388FA0(Actor *this, s32 arg1){
case 4: case 4:
other = subaddie_getLinkedActor(this); other = subaddie_getLinkedActor(this);
myOther = this->unk100; myOther = this->unk100;
if(myOther && other && myOther->unk14_20 == 0xB8) if(myOther && other && myOther->id == 0xB8)
subaddie_set_state_with_direction(other, 3, 0.0001f, 1); subaddie_set_state_with_direction(other, 3, 0.0001f, 1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
this->unk44_31 = func_8030D90C(); this->unk44_31 = func_8030D90C();
@@ -166,7 +166,7 @@ void func_80388FA0(Actor *this, s32 arg1){
case 2: case 2:
other = subaddie_getLinkedActor(this); other = subaddie_getLinkedActor(this);
myOther = this->unk100; myOther = this->unk100;
if(myOther && other && myOther->unk14_20 == 0xB8) if(myOther && other && myOther->id == 0xB8)
subaddie_set_state_with_direction(other, 2, 0.0001f, 1); subaddie_set_state_with_direction(other, 2, 0.0001f, 1);
animctrl_setSmoothTransition(this->animctrl, 1); animctrl_setSmoothTransition(this->animctrl, 1);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);

View File

@@ -50,7 +50,7 @@ ActorInfo D_8038B080 ={
/* .code */ /* .code */
void func_8038A3B0(Actor *this){ void func_8038A3B0(Actor *this){
s32 sp24 = this->marker->unk14_20 - 0xe1; s32 sp24 = this->marker->id - 0xe1;
if(this->marker->unk14_21) if(this->marker->unk14_21)
func_8034A174(this->marker->unk44, 0x1f, D_80365E04[sp24]); func_8034A174(this->marker->unk44, 0x1f, D_80365E04[sp24]);

View File

@@ -2,6 +2,7 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
#include "actor.h"
int ability_hasLearned(s32); int ability_hasLearned(s32);
@@ -139,20 +140,20 @@ bool SM_CRCs_are_valid(void){
void SM_func_80386810(void) void SM_func_80386810(void)
{ {
spawnableActorList_add(&D_8038AB00, actor_new, 0X2000180); spawnableActorList_add(&D_8038AB00, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038ABF0, actor_new, 0X80); spawnableActorList_add(&D_8038ABF0, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038AC20, actor_new, 0); spawnableActorList_add(&D_8038AC20, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038AC78, actor_new, 0X2000121); spawnableActorList_add(&D_8038AC78, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038ACE8, actor_new, 0X2000121); spawnableActorList_add(&D_8038ACE8, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038AD58, actor_new, 0X2200121); spawnableActorList_add(&D_8038AD58, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_21 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038AC9C, actor_new, 0X2000121); spawnableActorList_add(&D_8038AC9C, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038AD0C, actor_new, 0X2000121); spawnableActorList_add(&D_8038AD0C, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038AD7C, actor_new, 0X2200121); spawnableActorList_add(&D_8038AD7C, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_21 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&chSmMole, actor_new, 0X100); spawnableActorList_add(&chSmMole, actor_new, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038B0B0, actor_new, 0); spawnableActorList_add(&D_8038B0B0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038B0E0, actor_new, 0); spawnableActorList_add(&D_8038B0E0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038B008, actor_new, 0X6C8); spawnableActorList_add(&D_8038B008, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038B044, actor_new, 0X6C8); spawnableActorList_add(&D_8038B044, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038B080, actor_new, 0X6C8); spawnableActorList_add(&D_8038B080, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038AB24, actor_new, 0X400); spawnableActorList_add(&D_8038AB24, actor_new, ACTOR_FLAG_UNKNOWN_10);
} }

View File

@@ -197,7 +197,7 @@ void __chClam_emitSmallShellParticles(f32 position[3], s32 count){
} }
void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite_id, s32 count){ void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite_id, s32 count){
static struct31s D_8038C484 = { static ParticleScaleAndLifetimeRanges D_8038C484 = {
{0.2f, 0.35f}, {0.2f, 0.35f},
{0.0f, 0.0f}, {0.0f, 0.0f},
{0.0f, 0.01f}, {0.0f, 0.01f},
@@ -217,7 +217,7 @@ void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite
particleEmitter_setStartingFrameRange(pCtrl, 1, 6); particleEmitter_setStartingFrameRange(pCtrl, 1, 6);
particleEmitter_setPosition(pCtrl, position); particleEmitter_setPosition(pCtrl, position);
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C4AC); particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C4AC);
func_802EFB98(pCtrl, &D_8038C484); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038C484);
particleEmitter_emitN(pCtrl, count); particleEmitter_emitN(pCtrl, count);
} }
@@ -279,7 +279,7 @@ void chClam_update(Actor *this){
if(this->state != 3){ if(this->state != 3){
sp48 = func_80309724(this->position); sp48 = func_80309724(this->position);
if(sp4C != NULL){ if(sp4C != NULL){
sp44 = sp4C->marker->unk14_20; sp44 = sp4C->marker->id;
} }
if(sp44 == MARKER_60_BLUE_EGG_COLLECTIBLE || sp44 == MARKER_B5_RED_FEATHER_COLLECTIBLE){ if(sp44 == MARKER_60_BLUE_EGG_COLLECTIBLE || sp44 == MARKER_B5_RED_FEATHER_COLLECTIBLE){

View File

@@ -30,7 +30,7 @@ ActorInfo D_8038C580 = {
/* .code */ /* .code */
void func_80387DC0(f32 *position, s32 count) { void func_80387DC0(f32 *position, s32 count) {
static s32 D_8038C5A4[3] = {180, 180, 180}; static s32 D_8038C5A4[3] = {180, 180, 180};
static struct31s D_8038C5B0 = { static ParticleScaleAndLifetimeRanges D_8038C5B0 = {
{0.1f, 0.5f}, {0.1f, 0.5f},
{1.4f, 2.8f}, {1.4f, 2.8f},
{0.0f, 0.01f}, {0.0f, 0.01f},
@@ -53,7 +53,7 @@ void func_80387DC0(f32 *position, s32 count) {
-40.0f, 10.0f, -40.0f, -40.0f, 10.0f, -40.0f,
40.0f, 40.0f, 40.0f 40.0f, 40.0f, 40.0f
); );
func_802EFB98(pCtrl, &D_8038C5B0); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038C5B0);
particleEmitter_emitN(pCtrl, count); particleEmitter_emitN(pCtrl, count);
} }
@@ -153,10 +153,10 @@ void func_80388178(ActorMarker *this_marker, ActorMarker *other_marker) {
bool func_803882E4(ActorMarker * this_marker, ActorMarker * other_marker){ bool func_803882E4(ActorMarker * this_marker, ActorMarker * other_marker){
if(this_marker->unk40_31 == 1){ if(this_marker->unk40_31 == 1){
this_marker->unk14_20 = 0x16C; this_marker->id = 0x16C;
} }
else{ else{
this_marker->unk14_20 = MARKER_A5_NIPPER; this_marker->id = MARKER_A5_NIPPER;
} }
return TRUE; return TRUE;
} }
@@ -164,7 +164,7 @@ bool func_803882E4(ActorMarker * this_marker, ActorMarker * other_marker){
void func_80388344(ActorMarker * this_marker, ActorMarker *other_marker){ void func_80388344(ActorMarker * this_marker, ActorMarker *other_marker){
Actor *this; Actor *this;
if(other_marker->unk14_20 == 1){ if(other_marker->id == 1){
this = marker_getActor(this_marker); this = marker_getActor(this_marker);
if( !mapSpecificFlags_get(7) if( !mapSpecificFlags_get(7)
&& this->unk138_24 && this->unk138_24

View File

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

View File

@@ -3,6 +3,7 @@
#include "variables.h" #include "variables.h"
#include "prop.h" #include "prop.h"
#include "SnS.h" #include "SnS.h"
#include "actor.h"
extern ActorInfo chClam; extern ActorInfo chClam;
extern ActorInfo TTC_D_8038C510; extern ActorInfo TTC_D_8038C510;
@@ -90,25 +91,25 @@ ActorInfo D_8038C6DC = {
/* .code */ /* .code */
void TTC_func_80388AC0(void) void TTC_func_80388AC0(void)
{ {
spawnableActorList_add(&D_8038C5E0, actor_new, 0); spawnableActorList_add(&D_8038C5E0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038C604, actor_new, 0); spawnableActorList_add(&D_8038C604, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038C580, actor_new, 0X4100168); spawnableActorList_add(&D_8038C580, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_20 | ACTOR_FLAG_UNKNOWN_26);
spawnableActorList_add(&TTC_D_8038C510, actor_new, 0X4000101); spawnableActorList_add(&TTC_D_8038C510, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_26);
spawnableActorList_add(&D_8038C718, actor_new, 0X188); spawnableActorList_add(&D_8038C718, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038C790, actor_new, 0X148); spawnableActorList_add(&D_8038C790, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038C7B4, actor_new, 0X148); spawnableActorList_add(&D_8038C7B4, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038C7D8, actor_new, 0X148); spawnableActorList_add(&D_8038C7D8, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038C8B0, actor_new, 0X400); spawnableActorList_add(&D_8038C8B0, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038C8D4, actor_new, 0X400); spawnableActorList_add(&D_8038C8D4, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038C8F8, actor_new, 0X400); spawnableActorList_add(&D_8038C8F8, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&gChTreasureInfo, actor_new, 0X2000048); spawnableActorList_add(&gChTreasureInfo, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038C628, actor_new, 0X8680); spawnableActorList_add(&D_8038C628, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038C64C, actor_new, 0X400); spawnableActorList_add(&D_8038C64C, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038C670, actor_new, 0X20404); spawnableActorList_add(&D_8038C670, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_8038C694, actor_new, 0X400); spawnableActorList_add(&D_8038C694, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038C6B8, actor_new, 0X400); spawnableActorList_add(&D_8038C6B8, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038C6DC, actor_new, 0X400); spawnableActorList_add(&D_8038C6DC, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&chClam, actor_new, 0X2000041); spawnableActorList_add(&chClam, actor_new, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_25);
} }
void TTC_func_80388C78(Actor *this){ void TTC_func_80388C78(Actor *this){

View File

@@ -5,7 +5,7 @@
#include "gc/gctransition.h" #include "gc/gctransition.h"
void func_8023E00C(enum map_e); void setBootMap(enum map_e);
void func_8023DFF0(s32); void func_8023DFF0(s32);
#if VERSION == VERSION_PAL #if VERSION == VERSION_PAL
@@ -29,8 +29,8 @@ u8 pad_8027A138[0x400];
u64 D_8027A538; u64 D_8027A538;
u8 pad_8027A540[0x17F8]; u8 pad_8027A540[0x17F8];
OSThread s_MainThread; OSThread s_MainThread;
s32 D_8027BEE8; s32 gBootMap;
s32 D_8027BEEC; s32 gDisableInput;
u64 D_8027BEF0; u64 D_8027BEF0;
extern u8 core2_TEXT_START[]; extern u8 core2_TEXT_START[];
@@ -62,12 +62,12 @@ void func_8023DA9C(s32 arg0){
func_8023DA74(); func_8023DA74();
D_8027A130 = arg0; D_8027A130 = arg0;
if (D_8027A130 == 3){ if (D_8027A130 == 3){
func_802E4214(D_8027BEE8); func_802E4214(gBootMap);
} }
if (D_8027A130 == 4){ if (D_8027A130 == 4){
func_802E35D0(); dummy_func_802E35D0();
} }
func_80255CD8(); dummy_func_80255CD8();
} }
u32 globalTimer_getTimeMasked(u32 mask){ u32 globalTimer_getTimeMasked(u32 mask){
@@ -82,21 +82,21 @@ void globalTimer_reset(void){
gGlobalTimer = 0; gGlobalTimer = 0;
} }
s32 func_8023DB74(void){ enum map_e getSpecialBootMap(void){
return (DEBUG_use_special_bootmap())? MAP_80_GL_FF_ENTRANCE : MAP_91_FILE_SELECT; return (DEBUG_use_special_bootmap())? MAP_80_GL_FF_ENTRANCE : MAP_91_FILE_SELECT;
} }
s32 func_8023DBA4(void){ enum map_e getDefaultBootMap(void){
return MAP_1F_CS_START_RAREWARE; return MAP_1F_CS_START_RAREWARE;
} }
void func_8023DBAC(void){ void func_8023DBAC(void){
func_8023E00C(func_8023DBA4()); setBootMap(getDefaultBootMap());
func_8023DFF0(3); func_8023DFF0(3);
} }
void func_8023DBDC(void){ void func_8023DBDC(void){
func_8023E00C(func_8023DB74()); setBootMap(getSpecialBootMap());
func_8023DFF0(3); func_8023DFF0(3);
} }
@@ -105,20 +105,20 @@ void core1_init(void){
osTvType = 0; osTvType = 0;
#endif #endif
func_80255C30(); func_80255C30();
func_8023E00C(func_8023DBA4()); setBootMap(getDefaultBootMap());
rarezip_init(); //initialize decompressor's huft table rarezip_init(); //initialize decompressor's huft table
func_8024BE30(); func_8024BE30();
overlayManagerloadCore2(); overlayManagerloadCore2();
D_8027BEF0 = D_8027A538; D_8027BEF0 = D_8027A538;
heap_init(); heap_init();
func_80254028(); func_80254028();
func_8025AFB0(); dummy_func_8025AFB0();
func_8033EF58(); allocUnusedBlock();
assetCache_init(); assetCache_init();
pfsManager_init(); pfsManager_init();
rumbleManager_init(); rumbleManager_init();
audioManager_init(); audioManager_init();
func_8025425C(); graphicsCache_init();
ml_init(); ml_init();
gctransition_reset(); gctransition_reset();
D_8027A130 = 0; D_8027A130 = 0;
@@ -148,9 +148,10 @@ void mainLoop(void){
if(D_8027A130 != 3 || getGameMode() != GAME_MODE_4_PAUSED) if(D_8027A130 != 3 || getGameMode() != GAME_MODE_4_PAUSED)
globalTimer_incTimer(); globalTimer_incTimer();
if(!D_8027BEEC) if(!gDisableInput)
pfsManager_update(); pfsManager_update();
D_8027BEEC = 0; gDisableInput = 0;
rumbleManager_80250C08(); rumbleManager_80250C08();
if(!mapSpecificFlags_validateCRC1()){ if(!mapSpecificFlags_validateCRC1()){
@@ -166,7 +167,7 @@ void mainLoop(void){
func_80255ACC(); func_80255ACC();
spawnQueue_func_802C3A18(); spawnQueue_func_802C3A18();
if(func_802E4424()) if(func_802E4424())
func_802E3F8C(0); game_draw(0);
spawnQueue_flush(); spawnQueue_flush();
break; break;
}//L8023DE34 }//L8023DE34
@@ -216,8 +217,8 @@ s32 func_8023E000(void){
return D_8027A130; return D_8027A130;
} }
void func_8023E00C(enum map_e map_id){ void setBootMap(enum map_e map_id){
D_8027BEE8 = map_id; gBootMap = map_id;
} }
void mainThread_create(void){ void mainThread_create(void){
@@ -230,6 +231,6 @@ OSThread *mainThread_get(void){
return &s_MainThread; return &s_MainThread;
} }
void func_8023E06C(void){ void disableInput_set(void){
D_8027BEEC = 1; gDisableInput = 1;
} }

View File

@@ -3,9 +3,9 @@
#include "variables.h" #include "variables.h"
struct { struct {
u16 *unk0; u16 *data;
int unk4; int unk4;
} D_80282FE0; } gzBuffer;
extern u8 D_8000E800; extern u8 D_8000E800;
extern u16 D_803A5D00[2][0xF660]; extern u16 D_803A5D00[2][0xF660];
@@ -13,14 +13,14 @@ extern u16 D_803A5D00[2][0xF660];
void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer); void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer);
void func_80253190(Gfx **gdl){ void func_80253190(Gfx **gdl){
func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, D_803A5D00[func_8024BDA0()]); func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, D_803A5D00[getActiveFramebuffer()]);
} }
void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer){ void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer){
if( D_80282FE0.unk0 != NULL && (getGameMode() != GAME_MODE_4_PAUSED || func_80335134())){ if( gzBuffer.data != NULL && (getGameMode() != GAME_MODE_4_PAUSED || func_80335134())){
//draw z_buffer //draw z_buffer
gDPPipeSync((*gdl)++); gDPPipeSync((*gdl)++);
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(D_80282FE0.unk0)); gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(gzBuffer.data));
gDPSetCycleType((*gdl)++, G_CYC_FILL); gDPSetCycleType((*gdl)++, G_CYC_FILL);
gDPSetRenderMode((*gdl)++, G_RM_NOOP, G_RM_NOOP2); gDPSetRenderMode((*gdl)++, G_RM_NOOP, G_RM_NOOP2);
gDPSetFillColor((*gdl)++, 0xFFFCFFFC); gDPSetFillColor((*gdl)++, 0xFFFCFFFC);
@@ -33,44 +33,42 @@ void func_80253208(Gfx **gdl, s32 x, s32 y, s32 w, s32 h, void *color_buffer){
} }
int func_80253400(void){ int func_80253400(void){
return D_80282FE0.unk4; return gzBuffer.unk4;
} }
int func_8025340C(void){ int func_8025340C(void){
return D_80282FE0.unk0 != NULL; return gzBuffer.data != NULL;
} }
void func_80253420(void){} void dummy_func_80253420(void){}
void func_80253428(int arg0) { void func_80253428(int arg0) {
u16 *var_v0; u16 *var_v0;
int new_var; int new_var;
if (arg0) { if (arg0) {
var_v0 = (D_80282FE0.unk0 = &D_8000E800); var_v0 = (gzBuffer.data = &D_8000E800);
while (((s32) D_80282FE0.unk0) % 0x40) {\ while (((s32) gzBuffer.data) % 0x40) {\
var_v0 = (D_80282FE0.unk0 = var_v0 + 1); var_v0 = (gzBuffer.data = var_v0 + 1);
} }
do { } while ((&D_8000E800 && 1) * 0); //remove this do { } while ((&D_8000E800 && 1) * 0); //remove this
}else{ }else{
D_80282FE0.unk0 = 0; gzBuffer.data = 0;
} }
D_80282FE0.unk4 = 0; gzBuffer.unk4 = 0;
} }
void func_802534A8(int arg0){ void func_802534A8(int arg0){
D_80282FE0.unk4 = (D_80282FE0.unk0 != NULL && arg0); gzBuffer.unk4 = (gzBuffer.data != NULL && arg0);
} }
//zBuffer_set void zBuffer_set(Gfx **gdl){
void func_802534CC(Gfx **gdl){ if(gzBuffer.data && getGameMode() != GAME_MODE_4_PAUSED){
if(D_80282FE0.unk0 && getGameMode() != GAME_MODE_4_PAUSED){
gDPPipeSync((*gdl)++); gDPPipeSync((*gdl)++);
gDPSetDepthImage((*gdl)++, D_80282FE0.unk0); gDPSetDepthImage((*gdl)++, gzBuffer.data);
} }
} }
//zBuffer_get void *zBuffer_get(void){
void *func_80253540(void){ return gzBuffer.data;
return D_80282FE0.unk0;
} }

View File

@@ -14,28 +14,28 @@ typedef struct {
extern u8 D_803A5D00[2][0x1ecc0]; extern u8 D_803A5D00[2][0x1ecc0];
/* .data */ /* .data */
Gfx *D_80276580[2] = {NULL, NULL}; Gfx *gGfxStack[2] = {NULL, NULL};
s32 framebuffer_width = 292; s32 framebuffer_width = 292;
s32 framebuffer_height = 216; s32 framebuffer_height = 216;
/* .bss */ /* .bss */
Mtx *D_80282FF0[2]; Mtx *gMtxStack[2];
Vtx *D_80282FF8[2]; Vtx *gVtxStack[2];
s32 D_80283000; s32 gStackSelector;
s32 D_80283004; s32 gTextureFilterPoint;
Struct_Core1_15B30 D_80283008[20]; Struct_Core1_15B30 D_80283008[20];
s32 D_802831E8; s32 D_802831E8;
OSMesgQueue D_802831F0; OSMesgQueue D_802831F0;
OSMesg D_80283208; OSMesg D_80283208;
u16 D_8028320C; u16 gScissorBoxLeft;
u16 D_8028320E; u16 gScissorBoxRight;
u16 D_80283210; u16 gScissorBoxTop;
u16 D_80283212; u16 gScissorBoxBottom;
Gfx *D_80283214; Gfx *D_80283214;
/* .h */ /* .h */
void func_80254348(void); void scissorBox_setDefault(void);
void func_80254464(void); void dummy_func_80254464(void);
/* .code */ /* .code */
void func_80253550(void){ void func_80253550(void){
@@ -71,13 +71,13 @@ void func_80253640(Gfx ** gdl, void *arg1){
gDPPipelineMode((*gdl)++, G_PM_NPRIMITIVE); gDPPipelineMode((*gdl)++, G_PM_NPRIMITIVE);
gDPSetAlphaCompare((*gdl)++, G_AC_NONE); gDPSetAlphaCompare((*gdl)++, G_AC_NONE);
gDPSetColorDither((*gdl)++, G_CD_MAGICSQ); gDPSetColorDither((*gdl)++, G_CD_MAGICSQ);
gDPSetScissor((*gdl)++, G_SC_NON_INTERLACE, D_8028320C, D_8028320E, D_80283210, D_80283212); gDPSetScissor((*gdl)++, G_SC_NON_INTERLACE, gScissorBoxLeft, gScissorBoxRight, gScissorBoxTop, gScissorBoxBottom);
func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, arg1); func_80253208(gdl, 0, 0, framebuffer_width, framebuffer_height, arg1);
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(arg1)); gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(arg1));
gDPSetCycleType((*gdl)++, G_CYC_1CYCLE); gDPSetCycleType((*gdl)++, G_CYC_1CYCLE);
gDPSetTextureConvert((*gdl)++, G_TC_FILT); gDPSetTextureConvert((*gdl)++, G_TC_FILT);
gDPSetTextureDetail((*gdl)++, G_TD_CLAMP); gDPSetTextureDetail((*gdl)++, G_TD_CLAMP);
if(D_80283004){ if(gTextureFilterPoint){
gDPSetTextureFilter((*gdl)++, G_TF_POINT); gDPSetTextureFilter((*gdl)++, G_TF_POINT);
}else{ }else{
gDPSetTextureFilter((*gdl)++, G_TF_BILERP); gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
@@ -85,24 +85,24 @@ void func_80253640(Gfx ** gdl, void *arg1){
gDPSetTextureLOD((*gdl)++, G_TL_TILE); gDPSetTextureLOD((*gdl)++, G_TL_TILE);
gDPSetTextureLUT((*gdl)++, G_TT_NONE); gDPSetTextureLUT((*gdl)++, G_TT_NONE);
gDPSetTexturePersp((*gdl)++, G_TP_PERSP); gDPSetTexturePersp((*gdl)++, G_TP_PERSP);
func_802534CC(gdl); zBuffer_set(gdl);
} }
void func_802539AC(Gfx **gdl, s32 arg1){ void scissorBox_SetForGameMode(Gfx **gdl, s32 framebuffer_idx) {
if(getGameMode() == GAME_MODE_8_BOTTLES_BONUS || getGameMode() == GAME_MODE_A_SNS_PICTURE) if(getGameMode() == GAME_MODE_8_BOTTLES_BONUS || getGameMode() == GAME_MODE_A_SNS_PICTURE)
{ {
func_8030C710(); scissorBox_setSmall();
func_80253640(gdl, func_8030C704()); func_80253640(gdl, func_8030C704());
} }
else{ else{
func_80254348(); scissorBox_setDefault();
func_80253640(gdl, D_803A5D00[arg1]); func_80253640(gdl, D_803A5D00[framebuffer_idx]);
} }
} }
void func_80253A58(Gfx **gfx, s32 arg1){ void setupScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_address){
gSPSegment((*gfx)++, 0x00, 0x00000000); gSPSegment((*gfx)++, 0x00, 0x00000000);
gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(arg1)); gDPSetColorImage((*gfx)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_PHYSICAL_TO_K0(framebuffer_address));
gSPClearGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH); gSPClearGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH);
gSPTexture((*gfx)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF); gSPTexture((*gfx)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH); gSPSetGeometryMode((*gfx)++, G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH);
@@ -113,20 +113,20 @@ void func_80253A58(Gfx **gfx, s32 arg1){
gDPSetColorDither((*gfx)++, G_CD_DISABLE); gDPSetColorDither((*gfx)++, G_CD_DISABLE);
gDPSetRenderMode((*gfx)++, G_RM_AA_ZB_XLU_LINE, G_RM_AA_ZB_XLU_LINE2); gDPSetRenderMode((*gfx)++, G_RM_AA_ZB_XLU_LINE, G_RM_AA_ZB_XLU_LINE2);
gSPClipRatio((*gfx)++, FRUSTRATIO_1); gSPClipRatio((*gfx)++, FRUSTRATIO_1);
gDPSetScissor((*gfx)++, G_SC_NON_INTERLACE, D_8028320C, D_8028320E, D_80283210, D_80283212); gDPSetScissor((*gfx)++, G_SC_NON_INTERLACE, gScissorBoxLeft, gScissorBoxRight, gScissorBoxTop, gScissorBoxBottom);
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
} }
void func_80253D60(Gfx **gfx, s32 arg1){ void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx){
func_80254348(); scissorBox_setDefault();
func_80253A58(gfx, D_803A5D00[arg1]); setupScissorBoxAndFramebuffer(gfx, D_803A5D00[framebuffer_idx]);
} }
void func_80253DC0(Gfx **gfx){ void func_80253DC0(Gfx **gfx){
func_802476EC(gfx); func_802476EC(gfx);
} }
void func_80253DE0(Gfx **gdl) { void finishFrame(Gfx **gdl) {
gDPFullSync((*gdl)++); gDPFullSync((*gdl)++);
gSPEndDisplayList((*gdl)++); gSPEndDisplayList((*gdl)++);
} }
@@ -174,11 +174,11 @@ void func_80253F94(Gfx **arg0, Gfx **arg1){
func_80253EE4(arg0, arg1, 0x40000000); func_80253EE4(arg0, arg1, 0x40000000);
} }
void func_80253FB4(u32 *arg0, u32 *arg1, u32 *arg2, u32 *arg3){ void scissorBox_get(u32 *left, u32 *top, u32 *right, u32 *bottom){
*arg0 = D_8028320C; *left = gScissorBoxLeft;
*arg1 = D_80283210; *top = gScissorBoxTop;
*arg2 = D_8028320E; *right = gScissorBoxRight;
*arg3 = D_80283212; *bottom = gScissorBoxBottom;
} }
void func_80253FE8(void){ void func_80253FE8(void){
@@ -194,10 +194,10 @@ void func_80254028(void){
osCreateMesgQueue(&D_802831F0, &D_80283208, 1); osCreateMesgQueue(&D_802831F0, &D_80283208, 1);
osSendMesg(&D_802831F0, NULL, 1); osSendMesg(&D_802831F0, NULL, 1);
func_80247560(); func_80247560();
func_80254348(); scissorBox_setDefault();
} }
void func_80254084(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){ void drawRectangle2D(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE); gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
gDPSetCycleType((*gfx)++, G_CYC_FILL); gDPSetCycleType((*gfx)++, G_CYC_FILL);
@@ -206,45 +206,45 @@ void func_80254084(Gfx **gfx, s32 x, s32 y, s32 w, s32 h, s32 r, s32 g, s32 b){
gDPScisFillRectangle((*gfx)++, x, y, x + w -1, y + h -1); gDPScisFillRectangle((*gfx)++, x, y, x + w -1, y + h -1);
} }
void func_802541E8(void){ void graphicsCache_release(void){
if(D_80276580[0]){ if(gGfxStack[0]){
free(D_80276580[0]); free(gGfxStack[0]);
free(D_80276580[1]); free(gGfxStack[1]);
free(D_80282FF0[0]); free(gMtxStack[0]);
free(D_80282FF0[1]); free(gMtxStack[1]);
free(D_80282FF8[0]); free(gVtxStack[0]);
free(D_80282FF8[1]); free(gVtxStack[1]);
D_80276580[0] = NULL; gGfxStack[0] = NULL;
} }
} }
void func_8025425C(void){ void graphicsCache_init(void){
if(D_80276580[0] == NULL){ if(gGfxStack[0] == NULL){
D_80276580[0] = (Gfx *)malloc(29600); gGfxStack[0] = (Gfx *)malloc(29600); // 3700 dlist commands
D_80276580[1] = (Gfx *)malloc(29600); gGfxStack[1] = (Gfx *)malloc(29600);
D_80282FF0[0] = (Mtx *)malloc(44800); gMtxStack[0] = (Mtx *)malloc(44800); // 700 matrices
D_80282FF0[1] = (Mtx *)malloc(44800); gMtxStack[1] = (Mtx *)malloc(44800);
D_80282FF8[0] = (Vtx *)malloc(6880); gVtxStack[0] = (Vtx *)malloc(6880); // 430 vertices
D_80282FF8[1] = (Vtx *)malloc(6880); gVtxStack[1] = (Vtx *)malloc(6880);
func_80254464(); dummy_func_80254464();
} }
D_80283000 = 0; gStackSelector = 0;
D_80283004 = 0; gTextureFilterPoint = 0;
} }
void func_802542F4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom) {
D_8028320C = arg0; gScissorBoxLeft = left;
D_80283210 = arg1; gScissorBoxTop = top;
D_8028320E = arg2; gScissorBoxRight = right;
D_80283212 = arg3; gScissorBoxBottom = bottom;
framebuffer_width = arg1 - arg0; framebuffer_width = top - left;
framebuffer_height = arg3 - arg2; framebuffer_height = bottom - right;
func_8024CC5C(); func_8024CC5C();
} }
void func_80254348(void){ void scissorBox_setDefault(void){
func_802542F4(0, 0x124, 0, 0xd8); scissorBox_set(0, 292, 0, 216);
} }
void func_80254374(s32 arg0) { void func_80254374(s32 arg0) {
@@ -259,16 +259,16 @@ void func_80254374(s32 arg0) {
func_80246670(sp1C); func_80246670(sp1C);
} }
void func_802543EC(void){ void toggleTextureFilterPoint(void){
u32 ret_val = D_80283004; u32 ret_val = gTextureFilterPoint;
D_80283004 = ret_val < 1; gTextureFilterPoint = ret_val < 1;
} }
void func_80254404(Gfx **gfx, Mtx **mtx, Vtx **vtx){ void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx){
D_80283000 = (1 - D_80283000); gStackSelector = (1 - gStackSelector);
*gfx = D_80276580[D_80283000]; *gfx = gGfxStack[gStackSelector];
*mtx = D_80282FF0[D_80283000]; *mtx = gMtxStack[gStackSelector];
*vtx = D_80282FF8[D_80283000]; *vtx = gVtxStack[gStackSelector];
} }
void func_80254464(void){} void dummy_func_80254464(void){}

View File

@@ -18,7 +18,7 @@ void func_80255C30(void) {
} }
} }
void func_80255CD8(void){} void dummy_func_80255CD8(void){}
void func_80255CE0(void){ void func_80255CE0(void){
osPiReadIo(0, NULL); osPiReadIo(0, NULL);

View File

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

View File

@@ -3,13 +3,13 @@
#include "variables.h" #include "variables.h"
void func_8025AFB0(void) {} void dummy_func_8025AFB0(void) {}
void func_8025AFB8(void) {} void dummy_func_8025AFB8(void) {}
void func_8025AFC0(Gfx **arg0, Mtx **arg1, Vtx **arg2) {} void dummy_func_8025AFC0(Gfx **arg0, Mtx **arg1, Vtx **arg2) {}
s32 func_8025AFD0(void) s32 dummy_func_8025AFD0(void)
{ {
return 0; return 0;
} }

View File

@@ -245,7 +245,7 @@ void func_80246D78(void){
osDpSetStatus(DPC_CLR_FREEZE); osDpSetStatus(DPC_CLR_FREEZE);
D_8027FC14 = D_8027FC18; D_8027FC14 = D_8027FC18;
func_8025AFB8(); dummy_func_8025AFB8();
if(D_8027FC14 & 1){ if(D_8027FC14 & 1){
D_80275998 = 0x1E; D_80275998 = 0x1E;

View File

@@ -77,7 +77,7 @@ OSViMode D_PAL_80275CD0 = {
// C3A68832 DDC3A724 00000000 00000000 // C3A68832 DDC3A724 00000000 00000000
u32 D_80280720; u32 gActiveFramebuffer;
u32 D_80280724; u32 D_80280724;
u32 D_80280728; u32 D_80280728;
struct1 D_80280730[8]; struct1 D_80280730[8];
@@ -101,15 +101,15 @@ void func_8024C428(void);
/* .code */ /* .code */
bool func_8024BD80(void){ bool func_8024BD80(void){
sizeof(OSThread); sizeof(OSThread);
return NOT(D_80280720); return NOT(gActiveFramebuffer);
} }
s32 func_8024BD94(void){ s32 func_8024BD94(void){
return D_80280724; return D_80280724;
} }
s32 func_8024BDA0(void){ s32 getActiveFramebuffer(void){
return D_80280720; return gActiveFramebuffer;
} }
void func_8024BDAC(OSMesgQueue *mq, OSMesg msg){ void func_8024BDAC(OSMesgQueue *mq, OSMesg msg){
@@ -128,7 +128,7 @@ void func_8024BE30(void){
s32 i; s32 i;
func_8024C428(); func_8024C428();
osCreateViManager(0xfe); osCreateViManager(OS_PRIORITY_VIMGR);
#if VERSION == VERSION_USA_1_0 #if VERSION == VERSION_USA_1_0
if(osTvType != OS_TV_NTSC) if(osTvType != OS_TV_NTSC)
osViSetMode(&D_80275CD0); //PAL osViSetMode(&D_80275CD0); //PAL
@@ -144,7 +144,7 @@ void func_8024BE30(void){
osCreateMesgQueue(&D_802807B0, D_802807C8, 1); osCreateMesgQueue(&D_802807B0, D_802807C8, 1);
osCreateMesgQueue(&D_802807D0, D_802807E8, FRAMERATE); osCreateMesgQueue(&D_802807D0, D_802807E8, FRAMERATE);
osViSetEvent(&D_80280770,NULL,1); osViSetEvent(&D_80280770,NULL,1);
D_80280720 = 0; gActiveFramebuffer = 0;
D_80280724 = 1; D_80280724 = 1;
D_80280728 = 0; D_80280728 = 0;
for(i = 0; i<8; i++){ for(i = 0; i<8; i++){
@@ -186,7 +186,7 @@ void func_8024BFD8(s32 arg0){
osRecvMesg(&D_802807D0, NULL, OS_MESG_NOBLOCK); osRecvMesg(&D_802807D0, NULL, OS_MESG_NOBLOCK);
} }
osViSwapBuffer(D_803A5D00[D_80280720 = func_8024BD80()]); osViSwapBuffer(D_803A5D00[gActiveFramebuffer = func_8024BD80()]);
D_80280E90 = 0; D_80280E90 = 0;
while(!(osDpGetStatus() & 2) && osViGetCurrentFramebuffer() != osViGetNextFramebuffer()){ while(!(osDpGetStatus() & 2) && osViGetCurrentFramebuffer() != osViGetNextFramebuffer()){
osRecvMesg(&D_802807D0, NULL, OS_MESG_BLOCK); osRecvMesg(&D_802807D0, NULL, OS_MESG_BLOCK);
@@ -201,7 +201,7 @@ void func_8024BFD8(s32 arg0){
void func_8024C1B4(void){ void func_8024C1B4(void){
func_8024BFD8(0); func_8024BFD8(0);
func_8025AFB8(); dummy_func_8025AFB8();
} }
void func_8024C1DC(void){ void func_8024C1DC(void){
@@ -219,8 +219,8 @@ void func_8024C1FC(OSMesgQueue *mq, OSMesg msg){
} }
void func_8024C2A0(s32 arg0) { void func_8024C2A0(s32 arg0) {
D_80280720 = arg0; gActiveFramebuffer = arg0;
osViSwapBuffer(D_803A5D00[D_80280720]); osViSwapBuffer(D_803A5D00[gActiveFramebuffer]);
} }
void func_8024C2F8(void *arg0){ void func_8024C2F8(void *arg0){

View File

@@ -807,7 +807,7 @@ void func_80255A3C(void){
if(!func_802559A0()){ if(!func_802559A0()){
ml_defrag(); ml_defrag();
func_80254464(); dummy_func_80254464();
} }
} }

View File

@@ -270,7 +270,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(func_8033D410(playerMarker, marker)) if(func_8033D410(playerMarker, marker))
return; return;
switch(marker->unk14_20){ switch(marker->id){
case 0x125: //L8028BE88 case 0x125: //L8028BE88
case 0x126: //L8028BE88 case 0x126: //L8028BE88
obj_collision_type = 1; obj_collision_type = 1;

View File

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

View File

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

View File

@@ -118,9 +118,9 @@ void func_802C6240(Actor *this){
if(!this->initialized){ if(!this->initialized){
this->marker->unk1C = func_802C61C0; this->marker->dieFunc = func_802C61C0;
this->marker->unkC = func_802C60AC; this->marker->collisionFunc = func_802C60AC;
this->marker->unk10 = func_802C6150; this->marker->collision2Func = func_802C6150;
this->unk138_24 = 0; this->unk138_24 = 0;
this->unk16C_0 = 1; this->unk16C_0 = 1;
this->initialized = TRUE; this->initialized = TRUE;
@@ -314,11 +314,11 @@ void func_802C6240(Actor *this){
break; break;
}//L802C6D1C }//L802C6D1C
if(this->state == 0xe){ if(this->state == 0xe){
if(this->marker->unk14_20 != 0x29e) if(this->marker->id != 0x29e)
this->marker->unk14_20 = 0x29e; this->marker->id = 0x29e;
}else{//L802C6D60 }else{//L802C6D60
if(this->marker->unk14_20 != 3) if(this->marker->id != 3)
this->marker->unk14_20 = 3; this->marker->id = 3;
} }
} }

View File

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

View File

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

View File

@@ -52,7 +52,7 @@ void func_80357264(Actor *this, s32 next_state){
f32 sp38; f32 sp38;
s32 pad34; s32 pad34;
this->marker->unk14_20 = MARKER_1D0_CLUCKER_B; this->marker->id = MARKER_1D0_CLUCKER_B;
actor_collisionOff(this); actor_collisionOff(this);
if(next_state == 1 || next_state == 2){ if(next_state == 1 || next_state == 2){
skeletalAnim_set(this->unk148, ASSET_184_ANIM_CLUCKER_ATTACK_SHORT, 0.0f, 2.5f); skeletalAnim_set(this->unk148, ASSET_184_ANIM_CLUCKER_ATTACK_SHORT, 0.0f, 2.5f);
@@ -78,7 +78,7 @@ void func_80357264(Actor *this, s32 next_state){
local->unk4 = 0.2f; local->unk4 = 0.2f;
if(next_state == 4){ if(next_state == 4){
this->marker->unk14_20 = MARKER_1B2_CLUCKER_A; this->marker->id = MARKER_1B2_CLUCKER_A;
actor_collisionOn(this); actor_collisionOn(this);
local->unk0 = (local->unk0 + 1) % 3; local->unk0 = (local->unk0 + 1) % 3;
if(local->unk0 < 2) if(local->unk0 < 2)
@@ -177,7 +177,7 @@ void func_8035765C(Actor *this){
skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48); skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48);
if(skeletalAnim_getAnimId(this->unk148) == 0x185){ if(skeletalAnim_getAnimId(this->unk148) == 0x185){
if(sp4C < 0.58 && 0.58 <= sp48){ if(sp4C < 0.58 && 0.58 <= sp48){
this->marker->unk14_20 = MARKER_1D0_CLUCKER_B; this->marker->id = MARKER_1D0_CLUCKER_B;
} }
if(sp4C < 0.05 && 0.05 <= sp48){ if(sp4C < 0.05 && 0.05 <= sp48){
FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000); FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000);
@@ -194,7 +194,7 @@ void func_8035765C(Actor *this){
} }
else{//L803579F0 else{//L803579F0
if(sp4C < 0.63 && 0.63 <= sp48){ if(sp4C < 0.63 && 0.63 <= sp48){
this->marker->unk14_20 = MARKER_1D0_CLUCKER_B; this->marker->id = MARKER_1D0_CLUCKER_B;
} }
if(sp4C < 0.1 && 0.1 <= sp48){ if(sp4C < 0.1 && 0.1 <= sp48){
FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000); FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000);

View File

@@ -22,7 +22,7 @@ ActorInfo D_80372840 = {
void func_803569F0(Actor *this, s32 next_state){ void func_803569F0(Actor *this, s32 next_state){
ActorLocal_Core2_CFA60 *local = (ActorLocal_Core2_CFA60 *)&this->local; ActorLocal_Core2_CFA60 *local = (ActorLocal_Core2_CFA60 *)&this->local;
this->marker->unk14_20 = 0x1cf; this->marker->id = 0x1cf;
actor_collisionOff(this); actor_collisionOff(this);
if(next_state == 1 || next_state == 2){ if(next_state == 1 || next_state == 2){
skeletalAnim_set(this->unk148, ASSET_15A_ANIM_GRILL_CHOMPA_ATTACK, 0, 2.5f); skeletalAnim_set(this->unk148, ASSET_15A_ANIM_GRILL_CHOMPA_ATTACK, 0, 2.5f);
@@ -42,7 +42,7 @@ void func_803569F0(Actor *this, s32 next_state){
local->unk0 = 0.2f; local->unk0 = 0.2f;
} }
if(next_state == 4){ if(next_state == 4){
this->marker->unk14_20 = 0x29; this->marker->id = 0x29;
actor_collisionOn(this); actor_collisionOn(this);
skeletalAnim_set(this->unk148, ASSET_15A_ANIM_GRILL_CHOMPA_ATTACK, 0, randf2(2.3f, 2.7f)); skeletalAnim_set(this->unk148, ASSET_15A_ANIM_GRILL_CHOMPA_ATTACK, 0, randf2(2.3f, 2.7f));
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE); skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE);
@@ -123,7 +123,7 @@ void func_80356CCC(Actor *this){
if(this->state == 4){ if(this->state == 4){
skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48); skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48);
if(sp4C < 0.59 && 0.59 <= sp48){ if(sp4C < 0.59 && 0.59 <= sp48){
this->marker->unk14_20 = 0x1cf; this->marker->id = 0x1cf;
} }
if(sp4C < 0.5 && 0.5 <= sp48){ if(sp4C < 0.5 && 0.5 <= sp48){
func_8030E760(SFX_2_CLAW_SWIPE, 0.9f, 32000); func_8030E760(SFX_2_CLAW_SWIPE, 0.9f, 32000);

View File

@@ -53,7 +53,7 @@ void chCollectible_setState(Actor *arg0, s32 next_state){
void func_802D8C98(Actor *this, s32 arg1) { void func_802D8C98(Actor *this, s32 arg1) {
s32 phi_v0; s32 phi_v0;
switch (this->marker->unk14_20) switch (this->marker->id)
{ {
case MARKER_60_BLUE_EGG_COLLECTIBLE: case MARKER_60_BLUE_EGG_COLLECTIBLE:
phi_v0 = TRUE; phi_v0 = TRUE;
@@ -143,7 +143,7 @@ void chCollectible_update(Actor *this) {
u32 temp_v0; u32 temp_v0;
if (!this->initialized) { if (!this->initialized) {
if (this->marker->unk14_20 != 0x60) { if (this->marker->id != 0x60) {
func_8032AA58(this, 0.56f); func_8032AA58(this, 0.56f);
} }
this->unk10_12 = -1; this->unk10_12 = -1;

View File

@@ -81,13 +81,13 @@ void __chCrab_ow(ActorMarker *marker, ActorMarker *other) {
this->unk60 = 3.0f; this->unk60 = 3.0f;
subaddie_set_state(this, 6); subaddie_set_state(this, 6);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
if (marker->unk14_20 == MARKER_13_SNIPPET) { if (marker->id == MARKER_13_SNIPPET) {
FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900); FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
marker->unk14_20 = MARKER_16B_SNIPPET_UPSIDEDOWN; marker->id = MARKER_16B_SNIPPET_UPSIDEDOWN;
} }
if (marker->unk14_20 == MARKER_DD_BLACK_SNIPPET) { if (marker->id == MARKER_DD_BLACK_SNIPPET) {
FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900); FUNC_8030E8B4(SFX_6E_VILE_EGH, 2.0f, 26000, this->position, 950, 1900);
marker->unk14_20 = MARKER_DE_BLACK_SNIPPET_UPSIDEDOWN; marker->id = MARKER_DE_BLACK_SNIPPET_UPSIDEDOWN;
} }
} }
@@ -357,11 +357,11 @@ void chCrab_update(Actor *this) {
if (this->unk60 == 0.0f) { if (this->unk60 == 0.0f) {
subaddie_set_state(this, 7); subaddie_set_state(this, 7);
actor_playAnimationOnce(this); actor_playAnimationOnce(this);
if (this->marker->unk14_20 == 0x16B) { if (this->marker->id == 0x16B) {
this->marker->unk14_20 = MARKER_13_SNIPPET; this->marker->id = MARKER_13_SNIPPET;
} }
if (this->marker->unk14_20 == 0xDE) { if (this->marker->id == 0xDE) {
this->marker->unk14_20 = MARKER_DD_BLACK_SNIPPET; this->marker->id = MARKER_DD_BLACK_SNIPPET;
} }
} }
break; break;

View File

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

View File

@@ -29,7 +29,7 @@ ActorInfo D_80372C80 = {
0, 0, 1.0f, 0 0, 0, 1.0f, 0
}; };
struct31s D_80372CA4 = { ParticleScaleAndLifetimeRanges D_80372CA4 = {
{1.0f, 1.2f}, {1.0f, 1.2f},
{1.6f, 2.0f}, {1.6f, 2.0f},
{0.05f, 0.05f}, {0.05f, 0.05f},
@@ -183,7 +183,7 @@ void func_8035C080(Actor *this, s32 next_state){
particleEmitter_setStartingFrameRange(local->pCtrl_8, 0, 7); particleEmitter_setStartingFrameRange(local->pCtrl_8, 0, 7);
particleEmitter_setPosition(local->pCtrl_8, this->position); particleEmitter_setPosition(local->pCtrl_8, this->position);
particleEmitter_setPositionVelocityAndAccelerationRanges(local->pCtrl_8, &D_80372CCC); particleEmitter_setPositionVelocityAndAccelerationRanges(local->pCtrl_8, &D_80372CCC);
func_802EFB98(local->pCtrl_8, &D_80372CA4); particleEmitter_setScaleAndLifetimeRanges(local->pCtrl_8, &D_80372CA4);
particleEmitter_setSpawnInterval(local->pCtrl_8, 4); particleEmitter_setSpawnInterval(local->pCtrl_8, 4);
}//L8035C698 }//L8035C698
@@ -259,7 +259,7 @@ void func_8035C8F4(Actor *this){
sp34 = time_getDelta(); sp34 = time_getDelta();
if(this->state == 0){ if(this->state == 0){
this->marker->unk14_21 = FALSE; this->marker->unk14_21 = FALSE;
this->marker->unk30 = func_8035C8C8; this->marker->actorFreeFunc = func_8035C8C8;
marker_setCollisionScripts(this->marker, func_8035C6C4, func_8035C6C4, func_8035C6F0); marker_setCollisionScripts(this->marker, func_8035C6C4, func_8035C6C4, func_8035C6F0);
local->unk4 = func_80309724(this->position); local->unk4 = func_80309724(this->position);
local->pCtrl_8 = NULL; local->pCtrl_8 = NULL;

View File

@@ -114,7 +114,7 @@ f32 D_8037DD34;
/* .code */ /* .code */
Actor *func_802C4360(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){ Actor *func_802C4360(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
s32 sp1C = marker->unk14_20 - 0xe4; s32 sp1C = marker->id - 0xe4;
func_8033A45C(3, sp1C); func_8033A45C(3, sp1C);
func_8033A45C(1, 1); func_8033A45C(1, 1);
func_8033A45C(4, 1); func_8033A45C(4, 1);
@@ -284,7 +284,7 @@ void func_802C4BB4(ActorMarker *marker){
s32 sp20; s32 sp20;
Actor *other; Actor *other;
f32 sp18; f32 sp18;
sp20 = marker->unk14_20 - 0xe4; sp20 = marker->id - 0xe4;
this = marker_getActor(marker); this = marker_getActor(marker);
sp18 = this->scale; sp18 = this->scale;
other = func_8032813C(sp20 + 0x198, this->position, (s32)this->yaw); other = func_8032813C(sp20 + 0x198, this->position, (s32)this->yaw);
@@ -308,7 +308,7 @@ void func_802C4C14(Actor *this){
s32 tmp_a2_2; s32 tmp_a2_2;
f32 sp34[3]; f32 sp34[3];
sp84 = this->marker->unk14_20 - 0xe4; sp84 = this->marker->id - 0xe4;
sp80 = (sp84 == D_80365E00); sp80 = (sp84 == D_80365E00);
sp50 = time_getDelta(); sp50 = time_getDelta();
if(chGameSelectBottomZoombox == NULL) if(chGameSelectBottomZoombox == NULL)

View File

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

View File

@@ -5,7 +5,6 @@
extern void subaddie_set_state_with_direction(Actor *, s32, f32 , s32); extern void subaddie_set_state_with_direction(Actor *, s32, f32 , s32);
extern f32 func_80309B24(f32*); extern f32 func_80309B24(f32*);
extern void func_80329904(ActorMarker*, s32, f32*); extern void func_80329904(ActorMarker*, s32, f32*);
extern void func_80326310(Actor *);
extern void func_8032BB88(Actor *, s32, s32); extern void func_8032BB88(Actor *, s32, s32);
void chJinjo_update(Actor *this); void chJinjo_update(Actor *this);
@@ -47,11 +46,11 @@ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){
if(actorPtr->state < 5){ if(actorPtr->state < 5){
if(!fileProgressFlag_get(FILEPROG_E_JINJO_TEXT)){ if(!fileProgressFlag_get(FILEPROG_E_JINJO_TEXT)){
func_80311480(__chJinjo_getMeetDialogId(actorPtr->marker->unk14_20), 4, 0, 0, 0, 0); func_80311480(__chJinjo_getMeetDialogId(actorPtr->marker->id), 4, 0, 0, 0, 0);
fileProgressFlag_set(FILEPROG_E_JINJO_TEXT, 1); fileProgressFlag_set(FILEPROG_E_JINJO_TEXT, 1);
} }
subaddie_set_state_with_direction(actorPtr, 6, 0.0f , -1); subaddie_set_state_with_direction(actorPtr, 6, 0.0f , -1);
if(item_adjustByDiffWithHud(ITEM_12_JINJOS, 1 << (this->unk14_20 + 6) ) == 0x1f) if(item_adjustByDiffWithHud(ITEM_12_JINJOS, 1 << (this->id + 6) ) == 0x1f)
localPtr->unk4 = 1; localPtr->unk4 = 1;
actor_loopAnimation(actorPtr); actor_loopAnimation(actorPtr);
this->collidable = 0; this->collidable = 0;
@@ -109,7 +108,7 @@ void chJinjo_update(Actor * this){
local->unk0 = 1; local->unk0 = 1;
local->unk4 = 0; local->unk4 = 0;
local->unk8 = (this->position_y < func_80309B24(this->position)); local->unk8 = (this->position_y < func_80309B24(this->position));
this->marker->unkC = __chJinjo_802CDBA8; this->marker->collisionFunc = __chJinjo_802CDBA8;
marker_setFreeMethod(this->marker, __chJinjo_802CDD3C); marker_setFreeMethod(this->marker, __chJinjo_802CDD3C);
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){ if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
marker_despawn(this->marker); marker_despawn(this->marker);

View File

@@ -123,7 +123,7 @@ Actor *func_802D94B4(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
void func_802D9530(Actor *this){ void func_802D9530(Actor *this){
Actor *other = subaddie_getLinkedActor(this); Actor *other = subaddie_getLinkedActor(this);
if(this->unk100 && other){ if(this->unk100 && other){
if(this->unk100->unk14_20 == 0xB8) if(this->unk100->id == 0xB8)
subaddie_set_state_with_direction(other, 3, 0.0001f, 1); subaddie_set_state_with_direction(other, 3, 0.0001f, 1);
} }
subaddie_set_state_with_direction(this, 4, 0.0001f, 1); subaddie_set_state_with_direction(this, 4, 0.0001f, 1);
@@ -248,7 +248,7 @@ int chmole_learnAbility(Actor *this){
void func_802D9ADC(Actor *this){ void func_802D9ADC(Actor *this){
Actor *other = subaddie_getLinkedActor(this); Actor *other = subaddie_getLinkedActor(this);
if(this->unk100 && other && this->unk100->unk14_20 == 0xB8){ if(this->unk100 && other && this->unk100->id == 0xB8){
subaddie_set_state_with_direction(other, 2, 0.0001f, 1); subaddie_set_state_with_direction(other, 2, 0.0001f, 1);
} }
this->marker->propPtr->unk8_3 = 1; this->marker->propPtr->unk8_3 = 1;
@@ -339,7 +339,7 @@ void chmole_update(Actor *this){
this->unk100 = (other) ? other->marker : NULL; this->unk100 = (other) ? other->marker : NULL;
if(this->unk100){ if(this->unk100){
other = subaddie_getLinkedActor(this); other = subaddie_getLinkedActor(this);
if(other && this->unk100->unk14_20 == 0xB8){ if(other && this->unk100->id == 0xB8){
subaddie_set_state(other, 1); subaddie_set_state(other, 1);
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

@@ -104,7 +104,7 @@ void __chSnowman_spawnHat(ActorMarker *marker){
} }
void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){ void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){
static struct31s D_80368694 = { static ParticleScaleAndLifetimeRanges D_80368694 = {
{0.4f, 1.55f}, {0.4f, 1.55f},
{0.0f, 0.0f}, {0.0f, 0.0f},
{0.0f, 0.01f}, {0.0f, 0.01f},
@@ -127,7 +127,7 @@ void __chSnowman_spawnSnowballParticles(f32 position[3], s32 count){
func_802EFA18(particleSpawner, 3); func_802EFA18(particleSpawner, 3);
func_802EFA20(particleSpawner, 1.0f, 1.3f); func_802EFA20(particleSpawner, 1.0f, 1.3f);
particleEmitter_setSfx(particleSpawner, SFX_2F_ORANGE_SPLAT, 16000); particleEmitter_setSfx(particleSpawner, SFX_2F_ORANGE_SPLAT, 16000);
func_802EFB98(particleSpawner, &D_80368694); particleEmitter_setScaleAndLifetimeRanges(particleSpawner, &D_80368694);
particleEmitter_emitN(particleSpawner, count); particleEmitter_emitN(particleSpawner, count);
} }
@@ -172,10 +172,10 @@ int __chSnowman_isPlayerInAttackRange(Actor *this, s32 min_distance, s32 max_dis
int __chSnowman_func_802E1F70(ActorMarker *marker, s32 arg1){ int __chSnowman_func_802E1F70(ActorMarker *marker, s32 arg1){
if(marker->unk40_31 == 0xB){ if(marker->unk40_31 == 0xB){
marker->unk14_20 = 0x287; marker->id = 0x287;
} }
else{ else{
marker->unk14_20 = MARKER_B1_SIR_SLUSH; marker->id = MARKER_B1_SIR_SLUSH;
} }
return TRUE; return TRUE;
} }

View File

@@ -80,7 +80,7 @@ void func_802D07C8(Actor *this){
f32 sp28; f32 sp28;
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = 1; this->unk16C_4 = 1;
this->marker->unk30 = func_802D07A8; this->marker->actorFreeFunc = func_802D07A8;
func_802D05A0(this, 1); func_802D05A0(this, 1);
} }
player_getPosition(sp2C); player_getPosition(sp2C);

View File

@@ -33,7 +33,7 @@ void func_802C5A60(Actor *this){
// Spawns a sparkle sprite when touching turbo trainers or wading boots // Spawns a sparkle sprite when touching turbo trainers or wading boots
ActorLocal_Core2_3EAD0 *local = (ActorLocal_Core2_3EAD0*)&this->local; ActorLocal_Core2_3EAD0 *local = (ActorLocal_Core2_3EAD0*)&this->local;
if(!this->initialized){ if(!this->initialized){
switch(this->marker->unk14_20){ switch(this->marker->id){
case 0x58: case 0x58:
func_8032AA58(this, 0.35f); func_8032AA58(this, 0.35f);
break; break;

View File

@@ -100,7 +100,7 @@ void chHoneycomb_update(Actor *this){
if(!this->initialized){ if(!this->initialized){
this->unk60 = (randf() < 0.5) ? 200.0 : -200.0; this->unk60 = (randf() < 0.5) ? 200.0 : -200.0;
this->initialized = TRUE; this->initialized = TRUE;
if( this->marker->unk14_20 == MARKER_53_EMPTY_HONEYCOMB){ if( this->marker->id == MARKER_53_EMPTY_HONEYCOMB){
if(local->uid == 0) if(local->uid == 0)
local->uid = (!this->unk44_2)? D_8037DDC0 : func_802C9C40(this); local->uid = (!this->unk44_2)? D_8037DDC0 : func_802C9C40(this);
if( honeycombscore_get(local->uid) if( honeycombscore_get(local->uid)
@@ -115,7 +115,7 @@ void chHoneycomb_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if( this->marker->unk14_20 == MARKER_55_HONEYCOMB if( this->marker->id == MARKER_55_HONEYCOMB
&& !this->unk44_2 && !this->unk44_2
){ ){
marker_setFreeMethod(this->marker, __chHoneycomb_free); marker_setFreeMethod(this->marker, __chHoneycomb_free);

View File

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

View File

@@ -2,34 +2,34 @@
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
void func_802CA9D0(Actor *this); void chShockJump_update(Actor *this);
void func_802CAA44(Actor *this); void chFlightPad_update(Actor *this);
void func_802CAB70(Actor *this); void chFightFlightPad_update(Actor *this);
/* .data */ /* .data */
extern ActorInfo D_80366F20 = { extern ActorInfo chShockJump = {
0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD, 0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD,
0, NULL, 0, NULL,
func_802CA9D0, func_80326224, actor_draw, chShockJump_update, func_80326224, actor_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_80366F44 = { extern ActorInfo chFlightPad = {
MARKER_45_FLIGHT_PAD, ACTOR_E4_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD, MARKER_45_FLIGHT_PAD, ACTOR_E4_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD,
0, NULL, 0, NULL,
func_802CAA44, func_80326224, actor_draw, chFlightPad_update, func_80326224, actor_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern ActorInfo D_80366F68 = { extern ActorInfo chFightFlightPad = {
MARKER_261_FIGHT_FLIGHT_PAD, ACTOR_39F_FIGHT_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD, MARKER_261_FIGHT_FLIGHT_PAD, ACTOR_39F_FIGHT_FLIGHT_PAD, ASSET_48A_MODEL_FLIGHT_PAD,
0, NULL, 0, NULL,
func_802CAB70, func_80326224, actor_draw, chFightFlightPad_update, func_80326224, actor_draw,
0, 0, 0.0f, 0 0, 0, 0.0f, 0
}; };
extern struct31s D_80366F8C = { extern ParticleScaleAndLifetimeRanges chFightFlightPad_D_80366F8C = {
{0.4f, 0.4f}, {0.4f, 0.4f},
{0.0f, 0.0f}, {0.0f, 0.0f},
{0.0f, 0.01f}, {0.0f, 0.01f},
@@ -38,14 +38,14 @@ extern struct31s D_80366F8C = {
}; };
extern struct43s D_80366FB4 = { extern struct43s chFightFlightPad_D_80366FB4 = {
{{-360.0f, 360.0f, -360.0}, {360.0f, 660.0f, 360.0f}}, {{-360.0f, 360.0f, -360.0}, {360.0f, 660.0f, 360.0f}},
{{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}}, {{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}},
{{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}} {{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}}
}; };
/* .code */ /* .code */
void func_802CA9D0(Actor *this){ void chShockJump_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){ if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){
ability_unlock(ABILITY_D_SHOCK_JUMP); ability_unlock(ABILITY_D_SHOCK_JUMP);
@@ -59,7 +59,7 @@ void func_802CA9D0(Actor *this){
} }
} }
void func_802CAA44(Actor *this){ void chFlightPad_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){ if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){
ability_unlock(ABILITY_9_FLIGHT); ability_unlock(ABILITY_9_FLIGHT);
@@ -80,20 +80,20 @@ void func_802CAA44(Actor *this){
} }
} }
void func_802CAAF0(f32 position[3]){ void chFightFlightPad_emitSparklesAtPosition(f32 position[3]){
ParticleEmitter *pCtrl = partEmitMgr_newEmitter(0x18); ParticleEmitter *pCtrl = partEmitMgr_newEmitter(0x18);
particleEmitter_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED); particleEmitter_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED);
particleEmitter_setPosition(pCtrl, position); particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80366FB4); particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &chFightFlightPad_D_80366FB4);
func_802EFB98(pCtrl, &D_80366F8C); particleEmitter_setScaleAndLifetimeRanges(pCtrl, &chFightFlightPad_D_80366F8C);
func_802EFA78(pCtrl, 1); func_802EFA78(pCtrl, 1);
particleEmitter_emitN(pCtrl, 0x18); particleEmitter_emitN(pCtrl, 0x18);
} }
void func_802CAB70(Actor *this){ void chFightFlightPad_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
func_802CAAF0(this->position); chFightFlightPad_emitSparklesAtPosition(this->position);
FUNC_8030E8B4(SFX_113_PAD_APPEARS, 1.0f, 32000, this->position, 5000, 12000); FUNC_8030E8B4(SFX_113_PAD_APPEARS, 1.0f, 32000, this->position, 5000, 12000);
} }
this->marker->propPtr->unk8_3 = TRUE; this->marker->propPtr->unk8_3 = TRUE;

View File

@@ -304,7 +304,7 @@ void func_802CCC5C(Actor *this) {
local = (ActorLocal_Core2_45310 * )&this->local; local = (ActorLocal_Core2_45310 * )&this->local;
if (!this->unk16C_4) { if (!this->unk16C_4) {
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
this->marker->unk30 = func_802CCBC8; this->marker->actorFreeFunc = func_802CCBC8;
local->unk38 = 0; local->unk38 = 0;
local->unk39 = 0; local->unk39 = 0;
local->unk3A = 0; local->unk3A = 0;

View File

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

View File

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

View File

@@ -138,7 +138,7 @@ void func_802D2FB0(Actor *this, s32 arg1, s32 arg2, s32 arg3, f32 arg4, s32 arg5
} }
void func_802D3138(ActorMarker *marker, ActorMarker *other_marker){ void func_802D3138(ActorMarker *marker, ActorMarker *other_marker){
if(marker->unk14_20 == 0x224 || marker->unk14_20 == 0x225){ if(marker->id == 0x224 || marker->id == 0x225){
func_8025A70C(COMUSIC_2B_DING_B); func_8025A70C(COMUSIC_2B_DING_B);
} }
} }
@@ -153,7 +153,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
sp2C = marker_getActor(arg0); sp2C = marker_getActor(arg0);
arg0->collidable = FALSE; arg0->collidable = FALSE;
switch (arg0->unk14_20) { switch (arg0->id) {
case 0x9F: case 0x9F:
case 0xA0: case 0xA0:
case 0xFF: case 0xFF:
@@ -215,16 +215,16 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0xEA: case 0xEA:
case 0x108: case 0x108:
case 0x263: case 0x263:
if ((arg0->unk14_20 == 0x9D) || (arg0->unk14_20 == 0xE7)) { if ((arg0->id == 0x9D) || (arg0->id == 0xE7)) {
levelSpecificFlags_set(0x2E, 1); levelSpecificFlags_set(0x2E, 1);
} }
if (arg0->unk14_20 == 0x263) { if (arg0->id == 0x263) {
levelSpecificFlags_set(0x38, 1); levelSpecificFlags_set(0x38, 1);
} }
func_802D2FB0(sp2C, 5, -0x28, 0xC8, 0.85f, 0xDC, 0x3C, 0x64); func_802D2FB0(sp2C, 5, -0x28, 0xC8, 0.85f, 0xDC, 0x3C, 0x64);
func_8030E540(SFX_D_EGGSHELL_BREAKING); func_8030E540(SFX_D_EGGSHELL_BREAKING);
func_8030E540(SFX_11_WOOD_BREAKING_1); func_8030E540(SFX_11_WOOD_BREAKING_1);
switch (arg0->unk14_20) { switch (arg0->id) {
case 0x9E: case 0x9E:
func_802EE278(sp2C, 0xD, 9, 0x82, 0.34f, 1.0f); func_802EE278(sp2C, 0xD, 9, 0x82, 0.34f, 1.0f);
break; break;
@@ -304,7 +304,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x239: case 0x239:
func_8030E540(SFX_13A_GLASS_BREAKING_7); func_8030E540(SFX_13A_GLASS_BREAKING_7);
func_802EE278(sp2C, 4, 0x2D, 0x82, 1.0f, 1.0f); func_802EE278(sp2C, 4, 0x2D, 0x82, 1.0f, 1.0f);
if (arg0->unk14_20 == 0x1F3) { if (arg0->id == 0x1F3) {
func_802EE278(sp2C, 4, 0x2D, 0x104, 1.0f, 1.0f); func_802EE278(sp2C, 4, 0x2D, 0x104, 1.0f, 1.0f);
} }
marker_despawn(arg0); marker_despawn(arg0);

View File

@@ -55,7 +55,7 @@ ActorInfo D_80367C10 = {
/* .code */ /* .code */
void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_e sprite_id) { void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_e sprite_id) {
static struct31s D_80367C34 = {{0.2f, 0.4f}, {0.1f, 0.1f}, {0.0f, 0.01f}, {3.0f, 3.5f}, 0.1f, 0.1f}; static ParticleScaleAndLifetimeRanges D_80367C34 = {{0.2f, 0.4f}, {0.1f, 0.1f}, {0.0f, 0.01f}, {3.0f, 3.5f}, 0.1f, 0.1f};
ParticleEmitter *p_emitter; ParticleEmitter *p_emitter;
p_emitter = partEmitMgr_newEmitter(1); p_emitter = partEmitMgr_newEmitter(1);
@@ -64,7 +64,7 @@ void __chLevelCollectible_presentReturnEmitSparkles(f32 position[3], enum asset_
particleEmitter_setPosition(p_emitter, position); particleEmitter_setPosition(p_emitter, position);
particleEmitter_setParticleSpawnPositionRange(p_emitter, -40.0f, 0.0f, -40.0f, 40.0f, 60.0f, 40.0f); particleEmitter_setParticleSpawnPositionRange(p_emitter, -40.0f, 0.0f, -40.0f, 40.0f, 60.0f, 40.0f);
particleEmitter_setParticleAccelerationRange(p_emitter, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f); particleEmitter_setParticleAccelerationRange(p_emitter, 0.0f, -1000.0f, 0.0f, 0.0f, -1000.0f, 0.0f);
func_802EFB98(p_emitter, &D_80367C34); particleEmitter_setScaleAndLifetimeRanges(p_emitter, &D_80367C34);
particleEmitter_emitN(p_emitter, 1); particleEmitter_emitN(p_emitter, 1);
} }
@@ -105,7 +105,7 @@ void __chLevelCollectible_collide(ActorMarker *marker, ActorMarker *other_marker
sp18[0] = this->position[0]; sp18[0] = this->position[0];
sp18[1] = this->position[1]; sp18[1] = this->position[1];
sp18[2] = this->position[2]; sp18[2] = this->position[2];
switch (marker->unk14_20) { switch (marker->id) {
case MARKER_36_ORANGE_COLLECTIBLE: case MARKER_36_ORANGE_COLLECTIBLE:
if (mapSpecificFlags_get(1)) if (mapSpecificFlags_get(1))
return; return;
@@ -160,7 +160,7 @@ void func_802D7DE8(ActorMarker *marker, f32 arg1[3]) {
f32 var_f14; f32 var_f14;
f32 var_f18; f32 var_f18;
sp4C = marker->unk14_20; sp4C = marker->id;
this = marker_getActor(marker); this = marker_getActor(marker);
ml_vec3f_to_vec3w(sp50, arg1); ml_vec3f_to_vec3w(sp50, arg1);
if (sp4C == MARKER_37_GOLD_BULLION) { if (sp4C == MARKER_37_GOLD_BULLION) {
@@ -195,7 +195,7 @@ void func_802D8030(Actor *this){
local = (s32*)&this->local; local = (s32*)&this->local;
*local = 1; *local = 1;
this->marker->unkC = __chLevelCollectible_collide; this->marker->collisionFunc = __chLevelCollectible_collide;
subaddie_set_state(this, 2); subaddie_set_state(this, 2);
} }
@@ -204,7 +204,7 @@ void __chLevelCollectible_returnObj(Actor *this) {
f32 sp20; f32 sp20;
local = (s32*)&this->local; local = (s32*)&this->local;
if( (this->marker->unk14_20 != MARKER_36_ORANGE_COLLECTIBLE) if( (this->marker->id != MARKER_36_ORANGE_COLLECTIBLE)
|| (this->unk78_13 == 0) || (this->unk78_13 == 0)
) { ) {
this->position[0] += this->velocity[0]; this->position[0] += this->velocity[0];
@@ -224,13 +224,13 @@ void __chLevelCollectible_returnObj(Actor *this) {
} }
} }
this->position[1] = sp20; this->position[1] = sp20;
if (this->marker->unk14_20 != MARKER_36_ORANGE_COLLECTIBLE) { if (this->marker->id != MARKER_36_ORANGE_COLLECTIBLE) {
FUNC_8030E8B4(SFX_21_EGG_BOUNCE_1, 0.76f, 25000, this->position, 1000, 2000); FUNC_8030E8B4(SFX_21_EGG_BOUNCE_1, 0.76f, 25000, this->position, 1000, 2000);
} else { } else {
FUNC_8030E8B4(SFX_B3_ORANGE_TALKING, 1.0f, 25000, this->position, 1000, 2000); FUNC_8030E8B4(SFX_B3_ORANGE_TALKING, 1.0f, 25000, this->position, 1000, 2000);
} }
if (this->state == 4) { if (this->state == 4) {
switch (this->marker->unk14_20) { switch (this->marker->id) {
case MARKER_37_GOLD_BULLION: case MARKER_37_GOLD_BULLION:
break; break;
case MARKER_36_ORANGE_COLLECTIBLE: case MARKER_36_ORANGE_COLLECTIBLE:
@@ -254,7 +254,7 @@ void __chLevelCollectible_returnObj(Actor *this) {
this->unk138_22 = this->unk138_21 = 0; this->unk138_22 = this->unk138_21 = 0;
subaddie_set_state(this, 2); subaddie_set_state(this, 2);
} }
switch (this->marker->unk14_20) { switch (this->marker->id) {
case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE: case MARKER_1FD_BLUE_PRESENT_COLLECTIBLE:
__chLevelCollectible_presentReturnEmitSparkles(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE); __chLevelCollectible_presentReturnEmitSparkles(this->position, ASSET_711_SPRITE_SPARKLE_DARK_BLUE);
break; break;
@@ -316,9 +316,9 @@ void chLevelCollectible_update(Actor *this){
if(!this->unk16C_4){ if(!this->unk16C_4){
this->unk16C_4 = TRUE; this->unk16C_4 = TRUE;
if( this->marker->unk14_20 == MARKER_1FD_BLUE_PRESENT_COLLECTIBLE if( this->marker->id == MARKER_1FD_BLUE_PRESENT_COLLECTIBLE
|| this->marker->unk14_20 == MARKER_1FE_GREEN_PRESENT_COLLECTIBLE || this->marker->id == MARKER_1FE_GREEN_PRESENT_COLLECTIBLE
|| this->marker->unk14_20 == MARKER_1FF_RED_PRESENT_COLLECTIBLE || this->marker->id == MARKER_1FF_RED_PRESENT_COLLECTIBLE
){ ){
if(jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)){ if(jiggyscore_isCollected(JIGGY_2E_FP_PRESENTS)){
marker_despawn(this->marker); marker_despawn(this->marker);
@@ -355,9 +355,9 @@ void chLevelCollectible_update(Actor *this){
break; break;
} }
marker_id = this->marker->unk14_20; marker_id = this->marker->id;
switch(this->marker->unk14_20){ switch(this->marker->id){
case MARKER_37_GOLD_BULLION: //L802D86CC case MARKER_37_GOLD_BULLION: //L802D86CC
func_802D83EC(this); func_802D83EC(this);

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