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)
- 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)
Works with Ubuntu 18.04 or higher.

View File

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

View File

@@ -6,7 +6,7 @@
#define ACTOR_FLAG_UNKNOWN_1 (1 << 1) // 0x2
#define ACTOR_FLAG_UNKNOWN_2 (1 << 2) // 0x4
#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_6 (1 << 6) // 0x40
#define ACTOR_FLAG_UNKNOWN_7 (1 << 7) // 0x80
@@ -20,14 +20,15 @@
#define ACTOR_FLAG_UNKNOWN_15 (1 << 15) // 0x8000
#define ACTOR_FLAG_UNKNOWN_16 (1 << 16) // 0x10000
#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_20 (1 << 20) // 0x100000
#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_24 (1 << 24) // 0x1000000
#define ACTOR_FLAG_UNKNOWN_25 (1 << 25) // 0x2000000
#define ACTOR_FLAG_UNKNOWN_26 (1 << 26) // 0x4000000
#define ACTOR_FLAG_UNKNOWN_27 (1 << 27) // 0x4000000
#endif // ACTOR_H

View File

@@ -12,8 +12,10 @@
#define SPRITE_TYPE_RGBA32 (1 << 11)
enum file_progress_e{
FILEPROG_3_MUSIC_NOTE_TEXT = 0x3,
FILEPROG_0_UNKNOWN,
FILEPROG_1_UNKNOWN,
FILEPROG_2_UNKNOWN,
FILEPROG_3_MUSIC_NOTE_TEXT,
FILEPROG_4_MUMBO_TOKEN_TEXT,
FILEPROG_5_BLUE_EGG_TEXT,
FILEPROG_6_RED_FEATHER_TEXT,
@@ -227,6 +229,10 @@ enum file_progress_e{
FILEPROG_FD_BANNED_CHEATCODES_ENTERED //2 bit
};
enum volatile_progress_e{
VOLAPROG_0_UNKNOWN
};
enum unkflags_1{
UNKFLAGS1_6_HAS_SEEN_BOSS_BOOM_BOX_FF_MINIGAME = 0x6,
UNKFLAGS1_7_HAS_SEEN_VILE_FF_MINIGAME,
@@ -1988,13 +1994,13 @@ enum actor_e
ACTOR_387_PORTRAIT_OF_TEEHEE,
ACTOR_388_PORTRAIT_OF_MINION,
ACTOR_389_GRUNTY_SPELL_FIREBALL,
ACTOR_38B_GRUNTILDA_FINAL_BOSS = 0x38B,
ACTOR_38A_GREEN_BLAST,
ACTOR_38B_GRUNTILDA_FINAL_BOSS,
ACTOR_39F_FIGHT_FLIGHT_PAD = 0x39F,
ACTOR_3A0_ICECUBE_B,
ACTOR_3A1_STONE_JINJO = 0x3A1,
ACTOR_3A2_JINJO_STATUE_BASE = 0x3A2,
ACTOR_3A1_STONE_JINJO,
ACTOR_3A2_JINJO_STATUE_BASE,
ACTOR_3A5_BOSS_JINJO_ORANGE = 0x3A5,
ACTOR_3A6_BOSS_JINJO_GREEN,
@@ -3692,7 +3698,7 @@ enum asset_e
ASSET_6C4_SPRITE_SMOKE_YELLOW,
ASSET_6C5_SPRITE_SMOKE_ORANGE,
ASSET_6C6_SPRITE_SMOKE_PINK,
ASSET_6C7_SPRITE_SMOKE_GREEN_2,
ASSET_6C7_GREEN_BLAST,
ASSET_6C8_SPRITE_SMOKE_BLUE,
ASSET_6C9_SPRITE_GREEN_SPELL_ATTACK,
@@ -4305,8 +4311,9 @@ enum marker_e{
MARKER_4B_CC_SCREW,
MARKER_4C_CLANKER_TOKEN_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_53_EMPTY_HONEYCOMB,
@@ -4573,9 +4580,9 @@ enum marker_e{
MARKER_25A_PORTRAIT_OF_TEEHEE,
MARKER_25B_PORTRAIT_OF_MINION,
MARKER_25C_GRUNTY_SPELL_FIREBALL,
MARKER_25E_GRUNTILDA_FINAL_BOSS = 0x25E,
MARKER_25F_ICECUBE_B = 0x25F,
MARKER_25D_GREEN_BLAST,
MARKER_25E_GRUNTILDA_FINAL_BOSS,
MARKER_25F_ICECUBE_B,
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 func_802EFB70(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_setPositionAndVelocityRanges(ParticleEmitter *this, struct42s *arg1);
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 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

View File

@@ -73,20 +73,20 @@ typedef void (*ActorUpdateFunc)(struct actor_s *);
typedef void (*ActorFreeFunc)(struct actor_s *);
typedef struct actorMarker_s{
ActorProp* propPtr;
struct cude_s* cubePtr;
MarkerDrawFunc unk8;
MarkerCollisionFunc unkC; //ow_func
MarkerCollisionFunc unk10;
ActorProp* propPtr;
struct cude_s* cubePtr;
MarkerDrawFunc drawFunc;
MarkerCollisionFunc collisionFunc; //ow_func
MarkerCollisionFunc collision2Func;
u32 yaw:9;
u32 unk14_22: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
Struct6Cs *unk18;
MarkerCollisionFunc unk1C; //die_func
MarkerCollisionFunc dieFunc;
s32 unk20;
ActorUpdateFunc unk24;
ActorUpdateFunc actorUpdateFunc;
s32 unk28;
u32 actrArrayIdx:11; //unk2C
u32 pitch:9;
@@ -94,8 +94,8 @@ typedef struct actorMarker_s{
u32 unk2C_2:1;
u32 unk2C_1:1;
u32 collidable:1;
ActorFreeFunc unk30; //actor free method
s32 unk34;
ActorFreeFunc actorFreeFunc;
ActorUpdateFunc actorUpdate2Func;
s16 unk38[3];
u16 pad3E_15:1;
u16 modelId:13;
@@ -179,9 +179,9 @@ typedef struct actor_s{
u32 modelCacheIndex:10; //modelCacheIndex
s32 unk44_14:10;
u32 despawn_flag:1;
u32 unk44_2:1;
u32 unk44_1:1;
u32 unk44_0:1;
u32 unk44_2:1; // is set, when actors created inside Cube?
u32 unk44_1:1; // only used by blubber?
u32 unk44_0:1; // unused
f32 unk48; //used in chlmonkey (chimpy)
f32 unk4C;
/* 0x50 */ f32 yaw; //0x50
@@ -192,7 +192,7 @@ typedef struct actor_s{
u32 unk58_1: 1;
u32 unk58_0: 1;
f32 unk5C;
f32 unk60; //0x60
f32 unk60; // actor lifetime?
f32 yaw_ideal; //0x64
f32 pitch;//0x68
f32 unk6C;
@@ -220,7 +220,7 @@ typedef struct actor_s{
f32 unkEC; //animCtrl???
f32 stored_animctrl_duration; //animCtrlDuration
u32 unkF4_31:1;
u32 unkF4_30:1;
u32 unkF4_30:1; // has something to do with vertices
u32 unkF4_29:1;
u32 unkF4_28:1; //saved marker->propPtr->unk8_3
u32 unkF4_27:1; //saved marker->propPtr->unk8_2
@@ -236,12 +236,12 @@ typedef struct actor_s{
ActorMarker *unk100;
ActorMarker *unk104;
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
f32 roll;//110
f32 sound_timer;
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 unk124_11:2; //blend_mode?
u32 depth_mode:2; //render_mode (passed to modelRender_setDepthMode())
@@ -253,7 +253,7 @@ typedef struct actor_s{
f32 scale;
/* 0x12C */ struct actor_info_s *actor_info;
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_30:1;
u32 unk138_29:1;
@@ -265,12 +265,12 @@ typedef struct actor_s{
u32 unk138_22:1;
u32 unk138_21: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_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_3:4;
void (*unk13C)(struct actorMarker_s *);//saved marker->unk30
ActorFreeFunc backupFreeFunc; // saved marker->actorFreeFunc
f32 unk140;
f32 unk144;
SkeletalAnimation *unk148;
@@ -284,7 +284,7 @@ typedef struct actor_s{
s8 pad167[0x1];
s32 unk168; //saved marker->unk58
u32 unk16C_31:27; //saved s1->marker->unk5C
u32 unk16C_4:1;
u32 unk16C_4:1; // initialization related?
u32 unk16C_3:1;
u32 unk16C_2:1;
u32 unk16C_1:1;

View File

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

View File

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

View File

@@ -339,7 +339,7 @@ void chvile_update(Actor *this) {
local = (ActorLocal_MrVile *)&this->local;
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
this->marker->unk30 = chvile_free;
this->marker->actorFreeFunc = chvile_free;
local->unk0 = 0;
local->unk4 = assetcache_get(0x3F6);
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));
}
else{
modelRender_draw(gfx, mtx, sp44, sp38, 1.0f, NULL, func_80330B1C(this));
modelRender_draw(gfx, mtx, sp44, sp38, 1.0f, NULL, marker_loadModelBin(this));
}
return thisActor;
}

View File

@@ -61,7 +61,7 @@ void func_803895D0(ActorMarker *marker, ActorMarker *other_marker){
}
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);
}

View File

@@ -626,7 +626,7 @@ void chvilegame_update(Actor *this) {
local = (ActorLocal_BGS_3420 *)&this->local;
if (!this->unk16C_4) {
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->grumblie_model_bin = assetcache_get(0x3F7);
local->unkC = 0;

View File

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

View File

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

View File

@@ -136,7 +136,7 @@ void chGobiCCW_update(Actor *this) {
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
this->marker->propPtr->unk8_3 = TRUE;
this->marker->unk30 = chGobiCCW_free;
this->marker->actorFreeFunc = chGobiCCW_free;
this->unk138_24 = FALSE;
local->unk4 = skeletalAnim_new();
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 */
s32 func_80388EF0(Actor *this){
switch(this->marker->unk14_20){
switch(this->marker->id){
case 0x133: //L80388F28
case 0x132: //L80388F28
return 0;

View File

@@ -45,22 +45,22 @@ void CCW_func_8038C16C(Actor *this, s32 next_state) {
}
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_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);
}
if (this->marker->unk14_20 == 0x1CB) {
if (this->marker->id == 0x1CB) {
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.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);
}
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);
if (other != 0) {
this->position[0] = other->position[0];
@@ -100,7 +100,7 @@ void func_8038C41C(Actor *this) {
if (this->state == 0) {
if( map_get() == MAP_60_CCW_AUTUMN_NABNUTS_HOUSE
&& !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);
} 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);
}
if ((this->marker->unk14_20 == 0x1CB) && (this->state == 2)) {
if ((this->marker->id == 0x1CB) && (this->state == 2)) {
player_getPosition(sp2C);
if (!this->unk138_24 && (ml_distance_vec3f(this->position, sp2C) < 400.0f)) {
this->unk138_24 = TRUE;

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,7 +3,6 @@
#include "variables.h"
extern Actor *func_802EBAE0(UNK_TYPE(s32), f32 position[3], f32 rotation[3], f32 scale, UNK_TYPE(s32), UNK_TYPE(s32), UNK_TYPE(s32), f32, UNK_TYPE(s32));
extern Struct70s *func_8034C2C4(ActorMarker *marker, s32 arg1);
Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3);
Actor *func_8038C1F8(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
@@ -61,7 +60,7 @@ s32 D_803920B0[4] = {0xFF, 0xFF, 0xFF, 0x00};
/* .code */
Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE(s32) arg3){
UNK_TYPE(s32) sp5C = func_8033A12C(func_80330B1C(marker));
UNK_TYPE(s32) sp5C = func_8033A12C(marker_loadModelBin(marker));
Actor *this = marker_getActor(marker);
f32 sp4C[3];
f32 sp40[3];
@@ -253,7 +252,7 @@ void func_8038C9A0(Actor *this){
Actor *other; //sp34
void * sp30;
if(this->marker->unk14_20 == 0x200){
if(this->marker->id == 0x200){
sp30 = func_8034C2C4(this->marker, 0x190);
}
other = marker_getActor(this->unk100);
@@ -279,7 +278,7 @@ void func_8038C9A0(Actor *this){
}//L8038CA9C
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);\
marker_despawn(this->marker);
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){
static struct31s D_8039210C = {
static ParticleScaleAndLifetimeRanges D_8039210C = {
{ 0.4f, 0.8f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
@@ -57,14 +57,14 @@ void func_8038CF54(f32 position[3], s32 count, enum asset_e model_id){
100.0f, 100.0f, 100.0f,
200.0f, 200.0f, 200.0f
);
func_802EFB98(pCtrl, &D_8039210C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039210C);
func_802EF9F8(pCtrl, 0.6f);
func_802EFA18(pCtrl, 3);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_8039217C = {
static ParticleScaleAndLifetimeRanges D_8039217C = {
{0.8f, 1.2f },
{1.4f, 2.0f },
{0.0f, 0.01f},
@@ -86,12 +86,12 @@ void func_8038D01C(f32 position[3], s32 count, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_803921B0);
func_802EFB98(pCtrl, &D_8039217C);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8039217C);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
static struct31s D_803921F8 = {
static ParticleScaleAndLifetimeRanges D_803921F8 = {
{ 0.2f, 0.3f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
@@ -114,14 +114,14 @@ void func_8038D0A8(f32 position[3], s32 count, enum asset_e model_id){
200.0f, 200.0f, 200.0f,
300.0f, 300.0f, 300.0f
);
func_802EFB98(pCtrl, &D_803921F8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803921F8);
func_802EF9F8(pCtrl, 0.2f);
func_802EFA18(pCtrl, 2);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_80392268 ={
static ParticleScaleAndLifetimeRanges D_80392268 ={
{ 0.4f, 0.6f },
{-1.0f, -1.0f },
{ 0.0f, 0.02f},
@@ -140,14 +140,14 @@ void func_8038D170(f32 position[3], s32 count, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80392290);
func_802EFB98(pCtrl, &D_80392268);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_80392268);
func_802EF9F8(pCtrl, 0.2f);
func_802EFA18(pCtrl, 2);
particleEmitter_emitN(pCtrl, count);
}
void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
static struct31s D_803922D8 = {
static ParticleScaleAndLifetimeRanges D_803922D8 = {
{0.5f, 0.7f },
{1.4f, 1.7f },
{0.0f, 0.01f},
@@ -167,7 +167,7 @@ void func_8038D208(f32 position[3], s32 count, enum asset_e sprite_id){
particleEmitter_setSprite(pCtrl, sprite_id);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_8039230C);
func_802EFB98(pCtrl, &D_803922D8);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_803922D8);
particleEmitter_emitN(pCtrl, count);
}

View File

@@ -78,7 +78,7 @@ Actor *func_8038DF34(Actor *this){
if(prop && prop->unk8_0){
other = marker_getActor(prop->marker);
marker_id = other->marker->unk14_20;
marker_id = other->marker->id;
if( marker_id == MARKER_200_TWINKLY_BLUE
|| marker_id == MARKER_201_TWINKLY_GREEN
|| marker_id == MARKER_202_TWINKLY_ORANGE
@@ -168,7 +168,7 @@ void func_8038E094(Actor *this){
sp38 = func_8038DF34(this);
if(sp38){
func_8038DE40(this);
this->unk38_31 = sp38->marker->unk14_20;
this->unk38_31 = sp38->marker->id;
break;
}
@@ -187,16 +187,16 @@ void func_8038E094(Actor *this){
sp38 = func_8038DF34(this);
if(sp38){
func_8038DE40(this);
this->unk38_31 = sp38->marker->unk14_20;
this->unk38_31 = sp38->marker->id;
}
break;
case 4: //L8038E4F0
this->marker->propPtr->unk8_3 = TRUE;
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)){
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_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);

View File

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

View File

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

View File

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

View File

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

View File

@@ -132,7 +132,7 @@ Actor *chGobi2_draw(ActorMarker *this_marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
sp3C[2] = this->roll;
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(this->unk148));
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, func_80330B1C(this_marker));
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL, marker_loadModelBin(this_marker));
if(this->state == 4){
modelRender_setBoneTransformList(skeletalAnim_getBoneTransformList(local->unk4));
@@ -173,7 +173,7 @@ void chGobi2_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
marker_setCollisionScripts(this->marker, __chGobi2_ow, NULL, NULL);
sp34->unk30 = __chGobi2_80387EFC;
sp34->actorFreeFunc = __chGobi2_80387EFC;
local->unk4 = skeletalAnim_new();
local->unk8 = (BKModelBin*) assetcache_get(ASSET_3F3_MODEL_GOBI_SPIT);
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;
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32) this);
func_8033A450(func_80329934());
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL,func_80330B1C(this_marker));
modelRender_draw(gfx, mtx, this->position, sp3C, 1.0f, NULL,marker_loadModelBin(this_marker));
func_8034A174(func_80329934(), 5, local->unk0);
return this;
@@ -99,7 +99,7 @@ void chGobiRock_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
sp34->unk30 = chGobiRock_free;
sp34->actorFreeFunc = chGobiRock_free;
sp34->propPtr->unk8_3 = TRUE;
marker_setCollisionScripts(this->marker, NULL, NULL, __chGobiRock_destroy);
local->unkC = particleEmitter_new(20);

View File

@@ -152,7 +152,7 @@ void chMazeCtrl_update(Actor *this){
sp34 = time_getDelta();
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
this->marker->unk30 = __chMazeCtrl_8038F5E4;
this->marker->actorFreeFunc = __chMazeCtrl_8038F5E4;
if(this->state == 2){
comusic_8025AB44(COMUSIC_26_GV_SANDYBUTT_DANGER, 30000, 30000);
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[1] += 8.0f;
modelRender_preDraw((GenFunction_1)actor_predrawMethod, (s32)this);
modelRender_draw(gfx, mtx, position, rotation, this->unk1C[0], NULL, func_80330B1C(this_marker));
modelRender_draw(gfx, mtx, position, rotation, this->unk1C[0], NULL, marker_loadModelBin(this_marker));
}
return this;
}

View File

@@ -141,7 +141,7 @@ void func_8038A31C(Actor *this){
}//L8038A6A4
this->unk124_11 = 0x3;
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_y = func_80309724(this->position) + 60.0f;
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[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);
}
}

View File

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

View File

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

View File

@@ -1,8 +1,8 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "SnS.h"
#include "actor.h"
extern void func_80244BB0(s32, s32, s32, f32);
extern void func_802D3D54(Actor *this);
@@ -467,47 +467,47 @@ void func_8038F130(UNK_TYPE(s32) arg0, ActorMarker *arg1){
void GV_func_8038F154(void)
{
spawnableActorList_add(&chToots, actor_new, 0X180);
spawnableActorList_add(&chAncientOne, actor_new, 0X58A);
spawnableActorList_add(&Gobi1, actor_new, 0X9A8);
spawnableActorList_add(&chGobiRope, actor_new, 0X880);
spawnableActorList_add(&chGobiRock, actor_new, 0X80);
spawnableActorList_add(&chGobi2, actor_new, 0XDA8);
spawnableActorList_add(&chGobi3, actor_new, 0X9A8);
spawnableActorList_add(&chTrunker, actor_new, 0XD80);
spawnableActorList_add(&GV_D_80390DD0, actor_new, 0X4004);
spawnableActorList_add(&chSarcophagus, actor_new, 0X448);
spawnableActorList_add(&chSNSSarcophagus, actor_new, 0X48);
spawnableActorList_add(&D_80390ED0, actor_new, 0X180);
spawnableActorList_add(&D_80390F00, actor_new, 0X80);
spawnableActorList_add(&D_80390FD0, actor_new, 0X4048);
spawnableActorList_add(&D_80391010, actor_new, 0X4048);
spawnableActorList_add(&D_80391098, actor_new, 0X10069);
spawnableActorList_add(&D_80391158, actor_new, 0X48);
spawnableActorList_add(&D_803911C0, actor_new, 8);
spawnableActorList_add(&D_803911F4, actor_new, 0X80988);
spawnableActorList_add(&D_80391218, actor_new, 0X80988);
spawnableActorList_add(&D_8039123C, actor_new, 0X80988);
spawnableActorList_add(&D_80391260, actor_new, 0X80);
spawnableActorList_add(&D_80391318, actor_new, 0X78A);
spawnableActorList_add(&D_80391358, actor_new, 0X518);
spawnableActorList_add(&D_803912B8, actor_new, 0X500);
spawnableActorList_add(&GV_D_80391390, actor_new, 0X500);
spawnableActorList_add(&D_803913B4, actor_new, 0X500);
spawnableActorList_add(&D_80390F40, actor_new, 0);
spawnableActorList_add(&D_80391494, actor_new, 0X408);
spawnableActorList_add(&chMazeCtrl, actor_new, 0);
spawnableActorList_add(&chBuriedPyramid, actor_new, 0X400);
spawnableActorList_add(&D_803914B8, actor_new, 0X400);
spawnableActorList_add(&D_803914DC, actor_new, 0X400);
spawnableActorList_add(&GV_D_80391500, actor_new, 0X400);
spawnableActorList_add(&GV_D_80391524, actor_new, 0X400);
spawnableActorList_add(&D_8039156C, actor_new, 0X400);
spawnableActorList_add(&D_80391428, actor_new, 8);
spawnableActorList_add(&D_8039144C, actor_new, 8);
spawnableActorList_add(&D_80391470, actor_new, 8);
spawnableActorList_add(&D_80391548, actor_new, 0X400);
spawnableActorList_add(&D_80391590, actor_new, 0X400);
spawnableActorList_add(&chToots, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
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, 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, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&chGobiRock, actor_new, ACTOR_FLAG_UNKNOWN_7);
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, 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, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_11);
spawnableActorList_add(&GV_D_80390DD0, actor_new, ACTOR_FLAG_UNKNOWN_2 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&chSarcophagus, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&chSNSSarcophagus, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_80390ED0, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_80390F00, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_80390FD0, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_14);
spawnableActorList_add(&D_80391010, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_14);
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, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_803911C0, actor_new, ACTOR_FLAG_UNKNOWN_3);
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, 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, 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, ACTOR_FLAG_UNKNOWN_7);
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, 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, ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&GV_D_80391390, actor_new, ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803913B4, actor_new, ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80390F40, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_80391494, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&chMazeCtrl, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&chBuriedPyramid, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803914B8, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_803914DC, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&GV_D_80391500, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&GV_D_80391524, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8039156C, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80391428, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_8039144C, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_80391470, actor_new, ACTOR_FLAG_UNKNOWN_3);
spawnableActorList_add(&D_80391548, actor_new, ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_80391590, actor_new, ACTOR_FLAG_UNKNOWN_10);
}
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;
if(jujuPtr->unk0 != 2){
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
modelRender_draw(dl, mPtr, actorPtr->position, sp34, jujuPtr->unk14, NULL, func_80330B1C(this));
modelRender_draw(dl, mPtr, actorPtr->position, sp34, jujuPtr->unk14, NULL, marker_loadModelBin(this));
}
return actorPtr;
}

View File

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

View File

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

View File

@@ -2,6 +2,7 @@
#include "functions.h"
#include "variables.h"
#include "SnS.h"
#include "actor.h"
extern ActorInfo D_8038BC28;
extern ActorInfo D_8038BCDC;
@@ -207,7 +208,7 @@ bool func_80388670(ActorMarker * this_marker, ActorMarker * other_marker){
f32 sp20[3];
player_getPosition(sp20);
switch(this->marker->unk14_20){
switch(this->marker->id){
case 0x9f: //L803886D0
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;
switch(this->state){
case 4:
switch(this->marker->unk14_20){
switch(this->marker->id){
case 0x9F:
this->roll = MMM_func_80388430(this, 0, -1, this->roll);
break;
@@ -391,31 +392,31 @@ void func_803890B8(Actor *this) {
}
void MMM_func_803890E0(void){
spawnableActorList_add(&D_8038BC28, actor_new, 0);
spawnableActorList_add(&D_8038BCDC, actor_new, 0);
spawnableActorList_add(&D_8038BC4C, actor_new, 0);
spawnableActorList_add(&D_8038BDB4, actor_new, 0x40);
spawnableActorList_add(&D_8038BDD8, actor_new, 0x40);
spawnableActorList_add(&D_8038BDFC, actor_new, 0x440);
spawnableActorList_add(&D_8038BC94, actor_new, 0);
spawnableActorList_add(&D_8038BC70, actor_new, 0);
spawnableActorList_add(&D_8038BD00, actor_new, 0);
spawnableActorList_add(&D_8038BD24, actor_new, 0x8600);
spawnableActorList_add(&D_8038BD48, actor_new, 0x8600);
spawnableActorList_add(&D_8038BD6C, actor_new, 0x8600);
spawnableActorList_add(&D_8038BCB8, actor_new, 0x8600);
spawnableActorList_add(&D_8038BD90, actor_new, 8);
spawnableActorList_add(&chNapper, actor_new, 0x18A0);
spawnableActorList_add(&D_8038BA68, actor_new, 0x100);
spawnableActorList_add(&chMotzhand, actor_new, 0x20880);
spawnableActorList_add(&D_80367E70, actor_new, 0);
spawnableActorList_add(&chLoggo, actor_new, 0x108);
spawnableActorList_add(&D_8038BAD0, actor_new, 0x2800960);
spawnableActorList_add(&D_8038BE48, actor_new, 0x800040);
spawnableActorList_add(&D_8038BE6C, actor_new, 0x800040);
spawnableActorList_add(&D_8038BE90, actor_new, 0x800040);
spawnableActorList_add(&D_8038BEB4, actor_new, 0x800040);
spawnableActorList_add(&D_8038BED8, actor_new, 0x800040);
spawnableActorList_add(&D_8038BEFC, actor_new, 0x800040);
spawnableActorList_add(&D_80372C3C, actor_new, 0xA11A9);
spawnableActorList_add(&D_8038BC28, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BCDC, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BC4C, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BDB4, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_8038BDD8, actor_new, ACTOR_FLAG_UNKNOWN_6);
spawnableActorList_add(&D_8038BDFC, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_10);
spawnableActorList_add(&D_8038BC94, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BC70, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BD00, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038BD24, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BD48, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BD6C, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BCB8, actor_new, ACTOR_FLAG_UNKNOWN_9 | ACTOR_FLAG_UNKNOWN_10 | ACTOR_FLAG_UNKNOWN_15);
spawnableActorList_add(&D_8038BD90, actor_new, ACTOR_FLAG_UNKNOWN_3);
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, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&chMotzhand, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_11 | ACTOR_FLAG_UNKNOWN_17);
spawnableActorList_add(&D_80367E70, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&chLoggo, actor_new, ACTOR_FLAG_UNKNOWN_3 | ACTOR_FLAG_UNKNOWN_8);
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, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BE6C, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BE90, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BEB4, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BED8, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
spawnableActorList_add(&D_8038BEFC, actor_new, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_23);
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_postdrawMethod(ActorMarker *);
extern void func_8030E394(u8);
extern void func_80326310(Actor *);
extern int func_803342AC(f32 (*)[3], f32(*)[3], f32);
extern void particleEmitter_setModel(ParticleEmitter *, s32);
@@ -446,7 +445,7 @@ void func_8038D5BC(ActorMarker *marker, s32 arg1){
}
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){
@@ -466,7 +465,7 @@ Actor *func_8038D638(ActorMarker *marker, Gfx **gdl, Mtx ** mptr, s32 arg3){
}
modelRender_preDraw( (GenFunction_1)actor_predrawMethod, (s32)actor);
modelRender_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gdl, mptr, actor->position, sp3C, actor->scale, NULL, func_80330B1C(marker));
modelRender_draw(gdl, mptr, actor->position, sp3C, actor->scale, NULL, marker_loadModelBin(marker));
return actor;
}
@@ -505,7 +504,7 @@ void func_8038D8BC(Actor *this){
if(!this->unk16C_4){
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->unk20 = 0;

View File

@@ -48,7 +48,7 @@ void func_80388C20(Actor *this){
if(!this->unk16C_4){
actor_collisionOff(this);
this->marker->propPtr->unk8_3 = 1;
this->marker->unk30 = func_80388BE8;
this->marker->actorFreeFunc = func_80388BE8;
this->unk16C_4 = 1;
if(this->modelCacheIndex == 0x17B){
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);
}
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;
}
@@ -96,7 +96,7 @@ void chPropellorSwitch_update(Actor *this){
ActorLocal_RBB_3CB0 *local = (ActorLocal_RBB_3CB0 *)&this->local;
if(!this->unk16C_4){
this->marker->propPtr->unk8_3 = 1;
this->marker->unk30 = chPropellorSwitch_free;
this->marker->actorFreeFunc = chPropellorSwitch_free;
this->unk16C_4 = 1;
local->unk0 = &D_80390720[((this->unk78_13 == 2) ? 0:1)];
if(local->unk0->unk6 == 0)

View File

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

View File

@@ -69,7 +69,7 @@ void func_8038AC18(Actor *this, s32 new_state){
local->unk8 = 0.0f;
if(new_state == 2){
func_8030E6D4(SFX_90_SWITCH_PRESS);
local->unkC = vtxList_clone(model_getVtxList(func_80330B1C(this->marker)));
local->unkC = vtxList_clone(model_getVtxList(marker_loadModelBin(this->marker)));
mapSpecificFlags_set(local->unk4->unk10, TRUE);
this->position_y -= 30.0f;
@@ -113,7 +113,7 @@ Actor *func_8038AD9C(ActorMarker *marker, Gfx **gdl, Mtx **mptr, s32 arg3){
if( actor->state == 2
&& local->unk0 != 0
){
temp_v0 = func_80330B1C(marker);
temp_v0 = marker_loadModelBin(marker);
sp1C = (local->unk0 == 2) ? &D_80390938 : &D_8039092C;
vtxList_tint(local->unkC, sp1C,
(local->unk4->unk4[1] - actor->position_y)/30.0,
@@ -132,7 +132,7 @@ void func_8038AEB8(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 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);
local->unk4 = RBB_func_8038ABC0(this);
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_803902EC[3] = {4000.0f, -600.0f, 0.0f};
f32 D_803902F8[3] = {4500.0f, 0.0f, 500.0f};
struct31s D_80390304 = {
ParticleScaleAndLifetimeRanges D_80390304 = {
{ 5.0f, 5.0f},
{ 5.0f, 5.0f},
{ 0.0f, 0.01f},
@@ -142,7 +142,7 @@ void func_80387D80(void){
ParticleEmitter *actor = partEmitMgr_newEmitter(3);
particleEmitter_setSprite(actor, ASSET_70E_SPRITE_SMOKE_2);
particleEmitter_setStartingFrameRange(actor, 0, 7);
func_802EFB98(actor, &D_80390304);
particleEmitter_setScaleAndLifetimeRanges(actor, &D_80390304);
particleEmitter_setParticleVelocityRange(actor, 0.0f, 100.0f, 0.0f, 0.0f, 200.0f ,0.0f);
particleEmitter_emitInVolume(actor, &D_803902EC, &D_803902F8, 3);
}

View File

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

View File

@@ -38,7 +38,7 @@ void func_8038FC48(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = 1;
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->unk0 = func_802F9AA8(0x400);

View File

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

View File

@@ -142,7 +142,7 @@ void func_80388FA0(Actor *this, s32 arg1){
case 4:
other = subaddie_getLinkedActor(this);
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);
actor_playAnimationOnce(this);
this->unk44_31 = func_8030D90C();
@@ -166,7 +166,7 @@ void func_80388FA0(Actor *this, s32 arg1){
case 2:
other = subaddie_getLinkedActor(this);
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);
animctrl_setSmoothTransition(this->animctrl, 1);
actor_playAnimationOnce(this);

View File

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

View File

@@ -2,6 +2,7 @@
#include "functions.h"
#include "variables.h"
#include "prop.h"
#include "actor.h"
int ability_hasLearned(s32);
@@ -139,20 +140,20 @@ bool SM_CRCs_are_valid(void){
void SM_func_80386810(void)
{
spawnableActorList_add(&D_8038AB00, actor_new, 0X2000180);
spawnableActorList_add(&D_8038ABF0, actor_new, 0X80);
spawnableActorList_add(&D_8038AC20, actor_new, 0);
spawnableActorList_add(&D_8038AC78, actor_new, 0X2000121);
spawnableActorList_add(&D_8038ACE8, actor_new, 0X2000121);
spawnableActorList_add(&D_8038AD58, actor_new, 0X2200121);
spawnableActorList_add(&D_8038AC9C, actor_new, 0X2000121);
spawnableActorList_add(&D_8038AD0C, actor_new, 0X2000121);
spawnableActorList_add(&D_8038AD7C, actor_new, 0X2200121);
spawnableActorList_add(&chSmMole, actor_new, 0X100);
spawnableActorList_add(&D_8038B0B0, actor_new, 0);
spawnableActorList_add(&D_8038B0E0, actor_new, 0);
spawnableActorList_add(&D_8038B008, actor_new, 0X6C8);
spawnableActorList_add(&D_8038B044, actor_new, 0X6C8);
spawnableActorList_add(&D_8038B080, actor_new, 0X6C8);
spawnableActorList_add(&D_8038AB24, actor_new, 0X400);
spawnableActorList_add(&D_8038AB00, actor_new, ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
spawnableActorList_add(&D_8038ABF0, actor_new, ACTOR_FLAG_UNKNOWN_7);
spawnableActorList_add(&D_8038AC20, actor_new, ACTOR_FLAG_NONE);
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, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
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, ACTOR_FLAG_UNKNOWN_0 | ACTOR_FLAG_UNKNOWN_5 | ACTOR_FLAG_UNKNOWN_8 | ACTOR_FLAG_UNKNOWN_25);
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, 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, ACTOR_FLAG_UNKNOWN_8);
spawnableActorList_add(&D_8038B0B0, actor_new, ACTOR_FLAG_NONE);
spawnableActorList_add(&D_8038B0E0, actor_new, ACTOR_FLAG_NONE);
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, 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, 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, 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){
static struct31s D_8038C484 = {
static ParticleScaleAndLifetimeRanges D_8038C484 = {
{0.2f, 0.35f},
{0.0f, 0.0f},
{0.0f, 0.01f},
@@ -217,7 +217,7 @@ void __chClam_emitEatencollectibleParticles(f32 position[3], enum asset_e sprite
particleEmitter_setStartingFrameRange(pCtrl, 1, 6);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setVelocityAndAccelerationRanges(pCtrl, &D_8038C4AC);
func_802EFB98(pCtrl, &D_8038C484);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &D_8038C484);
particleEmitter_emitN(pCtrl, count);
}
@@ -279,7 +279,7 @@ void chClam_update(Actor *this){
if(this->state != 3){
sp48 = func_80309724(this->position);
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){

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,9 +3,9 @@
#include "variables.h"
struct {
u16 *unk0;
u16 *data;
int unk4;
} D_80282FE0;
} gzBuffer;
extern u8 D_8000E800;
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_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){
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
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);
gDPSetRenderMode((*gdl)++, G_RM_NOOP, G_RM_NOOP2);
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){
return D_80282FE0.unk4;
return gzBuffer.unk4;
}
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) {
u16 *var_v0;
int new_var;
if (arg0) {
var_v0 = (D_80282FE0.unk0 = &D_8000E800);
while (((s32) D_80282FE0.unk0) % 0x40) {\
var_v0 = (D_80282FE0.unk0 = var_v0 + 1);
var_v0 = (gzBuffer.data = &D_8000E800);
while (((s32) gzBuffer.data) % 0x40) {\
var_v0 = (gzBuffer.data = var_v0 + 1);
}
do { } while ((&D_8000E800 && 1) * 0); //remove this
}else{
D_80282FE0.unk0 = 0;
gzBuffer.data = 0;
}
D_80282FE0.unk4 = 0;
gzBuffer.unk4 = 0;
}
void func_802534A8(int arg0){
D_80282FE0.unk4 = (D_80282FE0.unk0 != NULL && arg0);
gzBuffer.unk4 = (gzBuffer.data != NULL && arg0);
}
//zBuffer_set
void func_802534CC(Gfx **gdl){
if(D_80282FE0.unk0 && getGameMode() != GAME_MODE_4_PAUSED){
void zBuffer_set(Gfx **gdl){
if(gzBuffer.data && getGameMode() != GAME_MODE_4_PAUSED){
gDPPipeSync((*gdl)++);
gDPSetDepthImage((*gdl)++, D_80282FE0.unk0);
gDPSetDepthImage((*gdl)++, gzBuffer.data);
}
}
//zBuffer_get
void *func_80253540(void){
return D_80282FE0.unk0;
void *zBuffer_get(void){
return gzBuffer.data;
}

View File

@@ -14,28 +14,28 @@ typedef struct {
extern u8 D_803A5D00[2][0x1ecc0];
/* .data */
Gfx *D_80276580[2] = {NULL, NULL};
Gfx *gGfxStack[2] = {NULL, NULL};
s32 framebuffer_width = 292;
s32 framebuffer_height = 216;
/* .bss */
Mtx *D_80282FF0[2];
Vtx *D_80282FF8[2];
s32 D_80283000;
s32 D_80283004;
Mtx *gMtxStack[2];
Vtx *gVtxStack[2];
s32 gStackSelector;
s32 gTextureFilterPoint;
Struct_Core1_15B30 D_80283008[20];
s32 D_802831E8;
OSMesgQueue D_802831F0;
OSMesg D_80283208;
u16 D_8028320C;
u16 D_8028320E;
u16 D_80283210;
u16 D_80283212;
u16 gScissorBoxLeft;
u16 gScissorBoxRight;
u16 gScissorBoxTop;
u16 gScissorBoxBottom;
Gfx *D_80283214;
/* .h */
void func_80254348(void);
void func_80254464(void);
void scissorBox_setDefault(void);
void dummy_func_80254464(void);
/* .code */
void func_80253550(void){
@@ -71,13 +71,13 @@ void func_80253640(Gfx ** gdl, void *arg1){
gDPPipelineMode((*gdl)++, G_PM_NPRIMITIVE);
gDPSetAlphaCompare((*gdl)++, G_AC_NONE);
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);
gDPSetColorImage((*gdl)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, framebuffer_width, OS_K0_TO_PHYSICAL(arg1));
gDPSetCycleType((*gdl)++, G_CYC_1CYCLE);
gDPSetTextureConvert((*gdl)++, G_TC_FILT);
gDPSetTextureDetail((*gdl)++, G_TD_CLAMP);
if(D_80283004){
if(gTextureFilterPoint){
gDPSetTextureFilter((*gdl)++, G_TF_POINT);
}else{
gDPSetTextureFilter((*gdl)++, G_TF_BILERP);
@@ -85,24 +85,24 @@ void func_80253640(Gfx ** gdl, void *arg1){
gDPSetTextureLOD((*gdl)++, G_TL_TILE);
gDPSetTextureLUT((*gdl)++, G_TT_NONE);
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)
{
func_8030C710();
scissorBox_setSmall();
func_80253640(gdl, func_8030C704());
}
else{
func_80254348();
func_80253640(gdl, D_803A5D00[arg1]);
scissorBox_setDefault();
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);
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);
gSPTexture((*gfx)++, 0, 0, 0, G_TX_RENDERTILE, G_OFF);
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);
gDPSetRenderMode((*gfx)++, G_RM_AA_ZB_XLU_LINE, G_RM_AA_ZB_XLU_LINE2);
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)++);
}
void func_80253D60(Gfx **gfx, s32 arg1){
func_80254348();
func_80253A58(gfx, D_803A5D00[arg1]);
void setupDefaultScissorBoxAndFramebuffer(Gfx **gfx, s32 framebuffer_idx){
scissorBox_setDefault();
setupScissorBoxAndFramebuffer(gfx, D_803A5D00[framebuffer_idx]);
}
void func_80253DC0(Gfx **gfx){
func_802476EC(gfx);
}
void func_80253DE0(Gfx **gdl) {
void finishFrame(Gfx **gdl) {
gDPFullSync((*gdl)++);
gSPEndDisplayList((*gdl)++);
}
@@ -174,11 +174,11 @@ void func_80253F94(Gfx **arg0, Gfx **arg1){
func_80253EE4(arg0, arg1, 0x40000000);
}
void func_80253FB4(u32 *arg0, u32 *arg1, u32 *arg2, u32 *arg3){
*arg0 = D_8028320C;
*arg1 = D_80283210;
*arg2 = D_8028320E;
*arg3 = D_80283212;
void scissorBox_get(u32 *left, u32 *top, u32 *right, u32 *bottom){
*left = gScissorBoxLeft;
*top = gScissorBoxTop;
*right = gScissorBoxRight;
*bottom = gScissorBoxBottom;
}
void func_80253FE8(void){
@@ -194,10 +194,10 @@ void func_80254028(void){
osCreateMesgQueue(&D_802831F0, &D_80283208, 1);
osSendMesg(&D_802831F0, NULL, 1);
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)++);
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
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);
}
void func_802541E8(void){
if(D_80276580[0]){
free(D_80276580[0]);
free(D_80276580[1]);
free(D_80282FF0[0]);
free(D_80282FF0[1]);
free(D_80282FF8[0]);
free(D_80282FF8[1]);
D_80276580[0] = NULL;
void graphicsCache_release(void){
if(gGfxStack[0]){
free(gGfxStack[0]);
free(gGfxStack[1]);
free(gMtxStack[0]);
free(gMtxStack[1]);
free(gVtxStack[0]);
free(gVtxStack[1]);
gGfxStack[0] = NULL;
}
}
void func_8025425C(void){
if(D_80276580[0] == NULL){
D_80276580[0] = (Gfx *)malloc(29600);
D_80276580[1] = (Gfx *)malloc(29600);
D_80282FF0[0] = (Mtx *)malloc(44800);
D_80282FF0[1] = (Mtx *)malloc(44800);
D_80282FF8[0] = (Vtx *)malloc(6880);
D_80282FF8[1] = (Vtx *)malloc(6880);
func_80254464();
void graphicsCache_init(void){
if(gGfxStack[0] == NULL){
gGfxStack[0] = (Gfx *)malloc(29600); // 3700 dlist commands
gGfxStack[1] = (Gfx *)malloc(29600);
gMtxStack[0] = (Mtx *)malloc(44800); // 700 matrices
gMtxStack[1] = (Mtx *)malloc(44800);
gVtxStack[0] = (Vtx *)malloc(6880); // 430 vertices
gVtxStack[1] = (Vtx *)malloc(6880);
dummy_func_80254464();
}
D_80283000 = 0;
D_80283004 = 0;
gStackSelector = 0;
gTextureFilterPoint = 0;
}
void func_802542F4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
D_8028320C = arg0;
D_80283210 = arg1;
D_8028320E = arg2;
D_80283212 = arg3;
framebuffer_width = arg1 - arg0;
framebuffer_height = arg3 - arg2;
void scissorBox_set(s32 left, s32 top, s32 right, s32 bottom) {
gScissorBoxLeft = left;
gScissorBoxTop = top;
gScissorBoxRight = right;
gScissorBoxBottom = bottom;
framebuffer_width = top - left;
framebuffer_height = bottom - right;
func_8024CC5C();
}
void func_80254348(void){
func_802542F4(0, 0x124, 0, 0xd8);
void scissorBox_setDefault(void){
scissorBox_set(0, 292, 0, 216);
}
void func_80254374(s32 arg0) {
@@ -259,16 +259,16 @@ void func_80254374(s32 arg0) {
func_80246670(sp1C);
}
void func_802543EC(void){
u32 ret_val = D_80283004;
D_80283004 = ret_val < 1;
void toggleTextureFilterPoint(void){
u32 ret_val = gTextureFilterPoint;
gTextureFilterPoint = ret_val < 1;
}
void func_80254404(Gfx **gfx, Mtx **mtx, Vtx **vtx){
D_80283000 = (1 - D_80283000);
*gfx = D_80276580[D_80283000];
*mtx = D_80282FF0[D_80283000];
*vtx = D_80282FF8[D_80283000];
void getGraphicsStacks(Gfx **gfx, Mtx **mtx, Vtx **vtx){
gStackSelector = (1 - gStackSelector);
*gfx = gGfxStack[gStackSelector];
*mtx = gMtxStack[gStackSelector];
*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){
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));
}
f32 ml_map_f(f32 a, f32 b, f32 c, f32 d, f32 e)
f32 ml_map_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max)
{
f32 val;
f32 result;
if (c != b)
if (in_max != in_min)
{
if (d < e)
if (out_min < out_max)
{
val = (((a - b) / (c - b)) * (e - d)) + d;
result = (((val - in_min) / (in_max - in_min)) * (out_max - out_min)) + out_min;
if (val > e)
return e;
if (result > out_max)
return out_max;
if (val < d)
return d;
if (result < out_min)
return out_min;
}
else
{
val = (((a - b) / (c - b)) * (e - d)) + d;
result = (((val - in_min) / (in_max - in_min)) * (out_max - out_min)) + out_min;
if (val < e)
return e;
if (result < out_max)
return out_max;
if (val > d)
return d;
if (result > out_min)
return out_min;
}
return val;
return result;
}
return e;
return out_max;
}
f32 ml_mapRange_f(f32 val, f32 in_min, f32 in_max, f32 out_min, f32 out_max)

View File

@@ -3,13 +3,13 @@
#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;
}

View File

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

View File

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

View File

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

View File

@@ -270,7 +270,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(func_8033D410(playerMarker, marker))
return;
switch(marker->unk14_20){
switch(marker->id){
case 0x125: //L8028BE88
case 0x126: //L8028BE88
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);
sp40 = ml_map_f(this->unk28, 0.0f , 800.0f, 0.53f, 0.18f)*this->unk1C[1];
modelRender_setDepthMode(MODEL_RENDER_DEPTH_COMPARE);
modelRender_draw(gfx, mtx, this->position, sp44, sp40, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, sp44, sp40, NULL, marker_loadModelBin(marker));
return this;
}

View File

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

View File

@@ -118,9 +118,9 @@ void func_802C6240(Actor *this){
if(!this->initialized){
this->marker->unk1C = func_802C61C0;
this->marker->unkC = func_802C60AC;
this->marker->unk10 = func_802C6150;
this->marker->dieFunc = func_802C61C0;
this->marker->collisionFunc = func_802C60AC;
this->marker->collision2Func = func_802C6150;
this->unk138_24 = 0;
this->unk16C_0 = 1;
this->initialized = TRUE;
@@ -314,11 +314,11 @@ void func_802C6240(Actor *this){
break;
}//L802C6D1C
if(this->state == 0xe){
if(this->marker->unk14_20 != 0x29e)
this->marker->unk14_20 = 0x29e;
if(this->marker->id != 0x29e)
this->marker->id = 0x29e;
}else{//L802C6D60
if(this->marker->unk14_20 != 3)
this->marker->unk14_20 = 3;
if(this->marker->id != 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_postDraw((GenFunction_1)actor_postdrawMethod, (s32)marker);
modelRender_draw(gfx, mtx, sp60, NULL, D_80368250, sp54, func_80330B1C(marker));
modelRender_draw(gfx, mtx, sp60, NULL, D_80368250, sp54, marker_loadModelBin(marker));
gDPSetTextureFilter((*gfx)++, G_TF_BILERP);
gDPSetColorDither((*gfx)++, G_CD_MAGICSQ);
chBottlesBonusCursor_draw(gfx, mtx, vtx);
@@ -226,7 +226,7 @@ f32 *chBottlesBonus_func_802DD584(s32 arg0){
// temp_f0 = D_80376F48;
sizeof(BKAnimationList);
temp_v1 = (BKAnimation*)(model_getAnimationList(func_80330B1C(chBottlesBonusMarker)) + 1);
temp_v1 = (BKAnimation*)(model_getAnimationList(marker_loadModelBin(chBottlesBonusMarker)) + 1);
D_8037DF70[0] = temp_v1[5 + arg0].unk0[0] * 0.01;
D_8037DF70[1] = temp_v1[5 + arg0].unk0[1] * 0.01;
D_8037DF70[2] = temp_v1[5 + arg0].unk0[2] * 0.01;

View File

@@ -154,9 +154,9 @@ void chBottlesBonusCursor_draw(Gfx **gfx, Mtx **mtx, Vtx **vtx) {
func_80253208(gfx,
(s32)(D_8037E5C0.unk18[0] - sp3C/2), (s32)(D_8037E5C0.unk18[1] - sp3C/2),
(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);
if (this->state == 1) {
D_8037E5C0.unk10[0] -= 24.0f;

View File

@@ -52,7 +52,7 @@ void func_80357264(Actor *this, s32 next_state){
f32 sp38;
s32 pad34;
this->marker->unk14_20 = MARKER_1D0_CLUCKER_B;
this->marker->id = MARKER_1D0_CLUCKER_B;
actor_collisionOff(this);
if(next_state == 1 || next_state == 2){
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;
if(next_state == 4){
this->marker->unk14_20 = MARKER_1B2_CLUCKER_A;
this->marker->id = MARKER_1B2_CLUCKER_A;
actor_collisionOn(this);
local->unk0 = (local->unk0 + 1) % 3;
if(local->unk0 < 2)
@@ -177,7 +177,7 @@ void func_8035765C(Actor *this){
skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48);
if(skeletalAnim_getAnimId(this->unk148) == 0x185){
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){
FUNC_8030E624(SFX_2_CLAW_SWIPE, 0.9f, 32000);
@@ -194,7 +194,7 @@ void func_8035765C(Actor *this){
}
else{//L803579F0
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){
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){
ActorLocal_Core2_CFA60 *local = (ActorLocal_Core2_CFA60 *)&this->local;
this->marker->unk14_20 = 0x1cf;
this->marker->id = 0x1cf;
actor_collisionOff(this);
if(next_state == 1 || next_state == 2){
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;
}
if(next_state == 4){
this->marker->unk14_20 = 0x29;
this->marker->id = 0x29;
actor_collisionOn(this);
skeletalAnim_set(this->unk148, ASSET_15A_ANIM_GRILL_CHOMPA_ATTACK, 0, randf2(2.3f, 2.7f));
skeletalAnim_setBehavior(this->unk148, SKELETAL_ANIM_2_ONCE);
@@ -123,7 +123,7 @@ void func_80356CCC(Actor *this){
if(this->state == 4){
skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48);
if(sp4C < 0.59 && 0.59 <= sp48){
this->marker->unk14_20 = 0x1cf;
this->marker->id = 0x1cf;
}
if(sp4C < 0.5 && 0.5 <= sp48){
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) {
s32 phi_v0;
switch (this->marker->unk14_20)
switch (this->marker->id)
{
case MARKER_60_BLUE_EGG_COLLECTIBLE:
phi_v0 = TRUE;
@@ -143,7 +143,7 @@ void chCollectible_update(Actor *this) {
u32 temp_v0;
if (!this->initialized) {
if (this->marker->unk14_20 != 0x60) {
if (this->marker->id != 0x60) {
func_8032AA58(this, 0.56f);
}
this->unk10_12 = -1;

View File

@@ -81,13 +81,13 @@ void __chCrab_ow(ActorMarker *marker, ActorMarker *other) {
this->unk60 = 3.0f;
subaddie_set_state(this, 6);
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);
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);
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) {
subaddie_set_state(this, 7);
actor_playAnimationOnce(this);
if (this->marker->unk14_20 == 0x16B) {
this->marker->unk14_20 = MARKER_13_SNIPPET;
if (this->marker->id == 0x16B) {
this->marker->id = MARKER_13_SNIPPET;
}
if (this->marker->unk14_20 == 0xDE) {
this->marker->unk14_20 = MARKER_DD_BLACK_SNIPPET;
if (this->marker->id == 0xDE) {
this->marker->id = MARKER_DD_BLACK_SNIPPET;
}
}
break;

View File

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

View File

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

View File

@@ -114,7 +114,7 @@ f32 D_8037DD34;
/* .code */
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(1, 1);
func_8033A45C(4, 1);
@@ -284,7 +284,7 @@ void func_802C4BB4(ActorMarker *marker){
s32 sp20;
Actor *other;
f32 sp18;
sp20 = marker->unk14_20 - 0xe4;
sp20 = marker->id - 0xe4;
this = marker_getActor(marker);
sp18 = this->scale;
other = func_8032813C(sp20 + 0x198, this->position, (s32)this->yaw);
@@ -308,7 +308,7 @@ void func_802C4C14(Actor *this){
s32 tmp_a2_2;
f32 sp34[3];
sp84 = this->marker->unk14_20 - 0xe4;
sp84 = this->marker->id - 0xe4;
sp80 = (sp84 == D_80365E00);
sp50 = time_getDelta();
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) {
static s32 D_80373014[3] = {0xAA, 0xAA, 0xAA};
static struct31s D_80373020 = {{0.4f, 0.8f}, {1.4f, 2.0f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01};
static ParticleScaleAndLifetimeRanges D_80373020 = {{0.4f, 0.8f}, {1.4f, 2.0f}, {0.0f, 0.01f}, {1.2f, 1.8f}, 0.0f, 0.01};
static struct43s D_80373048 = {
{{-200.0f, -200.0f, -200.0f}, { 200.0f, 200.0f, 200.0f}},
{{ 0.0f, -10.0f, 0.0f}, { 0.0f, -10.0f, 0.0f}},
@@ -83,7 +83,7 @@ void func_8035EDB0(f32 position[3], s32 count, enum asset_e sprite) {
particleEmitter_setSprite(p_ctrl, sprite);
particleEmitter_setPosition(p_ctrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(p_ctrl, &D_80373048);
func_802EFB98(p_ctrl, &D_80373020);
particleEmitter_setScaleAndLifetimeRanges(p_ctrl, &D_80373020);
particleEmitter_setDrawMode(p_ctrl, PART_EMIT_NO_DEPTH);
particleEmitter_emitN(p_ctrl, count);
}

View File

@@ -5,7 +5,6 @@
extern void subaddie_set_state_with_direction(Actor *, s32, f32 , s32);
extern f32 func_80309B24(f32*);
extern void func_80329904(ActorMarker*, s32, f32*);
extern void func_80326310(Actor *);
extern void func_8032BB88(Actor *, s32, s32);
void chJinjo_update(Actor *this);
@@ -47,11 +46,11 @@ void __chJinjo_802CDBA8(ActorMarker *this, ActorMarker *other){
if(actorPtr->state < 5){
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);
}
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;
actor_loopAnimation(actorPtr);
this->collidable = 0;
@@ -109,7 +108,7 @@ void chJinjo_update(Actor * this){
local->unk0 = 1;
local->unk4 = 0;
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);
if(func_803203FC(UNKFLAGS1_C1_IN_FINAL_CHARACTER_PARADE)){
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){
Actor *other = subaddie_getLinkedActor(this);
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(this, 4, 0.0001f, 1);
@@ -248,7 +248,7 @@ int chmole_learnAbility(Actor *this){
void func_802D9ADC(Actor *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);
}
this->marker->propPtr->unk8_3 = 1;
@@ -339,7 +339,7 @@ void chmole_update(Actor *this){
this->unk100 = (other) ? other->marker : NULL;
if(this->unk100){
other = subaddie_getLinkedActor(this);
if(other && this->unk100->unk14_20 == 0xB8){
if(other && this->unk100->id == 0xB8){
subaddie_set_state(other, 1);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -80,7 +80,7 @@ void func_802D07C8(Actor *this){
f32 sp28;
if(!this->unk16C_4){
this->unk16C_4 = 1;
this->marker->unk30 = func_802D07A8;
this->marker->actorFreeFunc = func_802D07A8;
func_802D05A0(this, 1);
}
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
ActorLocal_Core2_3EAD0 *local = (ActorLocal_Core2_3EAD0*)&this->local;
if(!this->initialized){
switch(this->marker->unk14_20){
switch(this->marker->id){
case 0x58:
func_8032AA58(this, 0.35f);
break;

View File

@@ -100,7 +100,7 @@ void chHoneycomb_update(Actor *this){
if(!this->initialized){
this->unk60 = (randf() < 0.5) ? 200.0 : -200.0;
this->initialized = TRUE;
if( this->marker->unk14_20 == MARKER_53_EMPTY_HONEYCOMB){
if( this->marker->id == MARKER_53_EMPTY_HONEYCOMB){
if(local->uid == 0)
local->uid = (!this->unk44_2)? D_8037DDC0 : func_802C9C40(this);
if( honeycombscore_get(local->uid)
@@ -115,7 +115,7 @@ void chHoneycomb_update(Actor *this){
if(!this->unk16C_4){
this->unk16C_4 = TRUE;
if( this->marker->unk14_20 == MARKER_55_HONEYCOMB
if( this->marker->id == MARKER_55_HONEYCOMB
&& !this->unk44_2
){
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;
sp44 = ml_map_f(sp54[1] - sp40, 0.0f, 300.0f, 0.43f, 0.28f);
modelRender_preDraw((GenFunction_1)func_802CA790, (s32)this);
modelRender_draw(gfx, mtx, this->position, rotation, sp44, NULL, func_80330B1C(marker));
modelRender_draw(gfx, mtx, this->position, rotation, sp44, NULL, marker_loadModelBin(marker));
return this;
}

View File

@@ -2,34 +2,34 @@
#include "functions.h"
#include "variables.h"
void func_802CA9D0(Actor *this);
void func_802CAA44(Actor *this);
void func_802CAB70(Actor *this);
void chShockJump_update(Actor *this);
void chFlightPad_update(Actor *this);
void chFightFlightPad_update(Actor *this);
/* .data */
extern ActorInfo D_80366F20 = {
extern ActorInfo chShockJump = {
0x0D4, ACTOR_B_SHOCKSPRING_PAD, ASSET_489_MODEL_SHOCKSPRING_PAD,
0, NULL,
func_802CA9D0, func_80326224, actor_draw,
chShockJump_update, func_80326224, actor_draw,
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,
0, NULL,
func_802CAA44, func_80326224, actor_draw,
chFlightPad_update, func_80326224, actor_draw,
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,
0, NULL,
func_802CAB70, func_80326224, actor_draw,
chFightFlightPad_update, func_80326224, actor_draw,
0, 0, 0.0f, 0
};
extern struct31s D_80366F8C = {
extern ParticleScaleAndLifetimeRanges chFightFlightPad_D_80366F8C = {
{0.4f, 0.4f},
{0.0f, 0.0f},
{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}},
{{0.0f, -1200.0f, 0.0f}, {0.0f, -1200.0f, 0.0f}},
{{0.0f, 0.0f, 0.0f}, {0.0f, 40.0f, 0.0f}}
};
/* .code */
void func_802CA9D0(Actor *this){
void chShockJump_update(Actor *this){
this->marker->propPtr->unk8_3 = TRUE;
if(func_803203FC(UNKFLAGS1_86_SANDCASTLE_SHOCKSPRING_JUMP_UNLOCKED)){
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;
if(func_803203FC(UNKFLAGS1_8A_SANDCASTLE_FLIGHT_UNLOCKED)){
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_setSprite(pCtrl, ASSET_715_SPRITE_SPARKLE_RED);
particleEmitter_setPosition(pCtrl, position);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &D_80366FB4);
func_802EFB98(pCtrl, &D_80366F8C);
particleEmitter_setPositionVelocityAndAccelerationRanges(pCtrl, &chFightFlightPad_D_80366FB4);
particleEmitter_setScaleAndLifetimeRanges(pCtrl, &chFightFlightPad_D_80366F8C);
func_802EFA78(pCtrl, 1);
particleEmitter_emitN(pCtrl, 0x18);
}
void func_802CAB70(Actor *this){
void chFightFlightPad_update(Actor *this){
if(!this->unk16C_4){
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);
}
this->marker->propPtr->unk8_3 = TRUE;

View File

@@ -304,7 +304,7 @@ void func_802CCC5C(Actor *this) {
local = (ActorLocal_Core2_45310 * )&this->local;
if (!this->unk16C_4) {
this->unk16C_4 = TRUE;
this->marker->unk30 = func_802CCBC8;
this->marker->actorFreeFunc = func_802CCBC8;
local->unk38 = 0;
local->unk39 = 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);
local = (ActorLocal_core2_47BD0 *)&this->local;
phi_fp = func_80330B1C(marker);
phi_fp = marker_loadModelBin(marker);
for(phi_s2 = 0, phi_s0 = local->unk8; phi_s2 < local->unk0; phi_s2++){
sp80[0] = 0.0f;
sp80[1] = phi_s0->unk24[1] - 90.0f;

View File

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

View File

@@ -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){
if(marker->unk14_20 == 0x224 || marker->unk14_20 == 0x225){
if(marker->id == 0x224 || marker->id == 0x225){
func_8025A70C(COMUSIC_2B_DING_B);
}
}
@@ -153,7 +153,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
sp2C = marker_getActor(arg0);
arg0->collidable = FALSE;
switch (arg0->unk14_20) {
switch (arg0->id) {
case 0x9F:
case 0xA0:
case 0xFF:
@@ -215,16 +215,16 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0xEA:
case 0x108:
case 0x263:
if ((arg0->unk14_20 == 0x9D) || (arg0->unk14_20 == 0xE7)) {
if ((arg0->id == 0x9D) || (arg0->id == 0xE7)) {
levelSpecificFlags_set(0x2E, 1);
}
if (arg0->unk14_20 == 0x263) {
if (arg0->id == 0x263) {
levelSpecificFlags_set(0x38, 1);
}
func_802D2FB0(sp2C, 5, -0x28, 0xC8, 0.85f, 0xDC, 0x3C, 0x64);
func_8030E540(SFX_D_EGGSHELL_BREAKING);
func_8030E540(SFX_11_WOOD_BREAKING_1);
switch (arg0->unk14_20) {
switch (arg0->id) {
case 0x9E:
func_802EE278(sp2C, 0xD, 9, 0x82, 0.34f, 1.0f);
break;
@@ -304,7 +304,7 @@ void func_802D31AC(ActorMarker *arg0, ActorMarker * arg1) {
case 0x239:
func_8030E540(SFX_13A_GLASS_BREAKING_7);
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);
}
marker_despawn(arg0);

View File

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

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