1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-09 05:44:26 +00:00

void EffDust_Init(Actor *thisx, GlobalContext *globalCtx)

Signed-off-by: angie <angheloalf95@gmail.com>
This commit is contained in:
angie 2021-01-17 17:16:16 -03:00
parent ef7ca54add
commit c57b9e2946
No known key found for this signature in database
GPG key ID: E5212BA1B6FEA700
4 changed files with 76 additions and 37 deletions

View file

@ -1,20 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel Eff_Dust_InitVars
.word 0x01010400, 0x00000030, 0x00010000, 0x00000568
.word EffDust_Init
.word EffDust_Destroy
.word EffDust_Update
.word EffDust_Draw
glabel D_8099EB60
.word 0xDF000000, 0x00000000, 0x00000000, 0x00000000

1
spec
View file

@ -1612,7 +1612,6 @@ endseg
beginseg
name "ovl_Eff_Dust"
include "build/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.o"
include "build/data/overlays/actors/z_eff_dust.data.o"
include "build/data/overlays/actors/z_eff_dust.reloc.o"
endseg

View file

@ -9,9 +9,16 @@ void EffDust_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EffDust_Update(Actor* thisx, GlobalContext* globalCtx);
void EffDust_Draw(Actor* thisx, GlobalContext* globalCtx);
s32 func_8099D8E0(EffDust* this);
f32 func_8099DB28(EffDust* this, GlobalContext* globalCtx);
f32 func_8099DD74(EffDust* this, GlobalContext* globalCtx);
f32 func_8099DFC0(EffDust* this, GlobalContext* globalCtx);
f32 func_8099E4F4(EffDust* this, GlobalContext* globalCtx);
f32 func_8099E784(EffDust* this, GlobalContext* globalCtx);
extern UNK_TYPE D_04037880;
/*
const ActorInit Eff_Dust_InitVars = {
ACTOR_EFF_DUST,
ACTORTYPE_NPC,
@ -23,9 +30,10 @@ const ActorInit Eff_Dust_InitVars = {
(ActorFunc)EffDust_Update,
(ActorFunc)EffDust_Draw,
};
*/
extern Gfx D_8099EB60[];
static Gfx *D_8099EB60[] = {
0xDF000000, 0x00000000, 0x00000000, 0x00000000
};
//#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099D8D0.s")
@ -43,9 +51,65 @@ void func_8099D8D8(EffDust* this, EffDustActionFunc callback) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099D8E0.s")
s32 func_8099D8E0(EffDust* this);
//#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/EffDust_Init.s")
void EffDust_Init(Actor *thisx, GlobalContext *globalCtx) {
EffDust *this = THIS;
u32 sp20;
sp20 = this->actor.params;
func_8099D8E0(this);
switch(sp20){
case 0:
func_8099D8D0(this, func_8099DB28);
func_8099D8D8(this, func_8099E4F4);
this->unk_0554 = 0.8f;
this->unk_0558 = 0.8f;
this->unk_0550 = 1.0f;
this->unk_055C = 0.1f;
break;
case 1:
func_8099D8D0(this, func_8099DD74);
func_8099D8D8(this, func_8099E4F4);
this->unk_0550 = 0.8f;
this->unk_0558 = 0.8f;
this->unk_0554 = 1.0f;
this->unk_055C = 0.5f;
break;
case 2:
func_8099D8D0(this, func_8099DFC0);
func_8099D8D8(this, func_8099E784);
this->unk_0550 = 0.5f;
this->unk_055C = 15.0f;
break;
case 3:
func_8099D8D0(this, func_8099DFC0);
func_8099D8D8(this, func_8099E784);
this->unk_0550 = 0.5f;
this->unk_055C = 10.0f;
break;
case 4:
func_8099D8D0(this, func_8099DFC0);
func_8099D8D8(this, func_8099E784);
this->actor.room = -1;
this->unk_0550 = 0.5f;
this->unk_055C = 20.0f;
break;
default:
SystemArena_FreeDebug(this, "../z_eff_dust.c", 0xCA);
break;
}
this->unk_054D = 0xA;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/EffDust_Init.s")
//#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/EffDust_Destroy.s")
@ -56,24 +120,14 @@ void EffDust_Destroy(Actor *thisx, GlobalContext *globalCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DB28.s")
f32 func_8099DB28(EffDust* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DD74.s")
f32 func_8099DD74(EffDust* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DFC0.s")
f32 func_8099DFC0(EffDust* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/EffDust_Update.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E4F4.s")
f32 func_8099E4F4(EffDust* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099E784.s")
f32 func_8099E784(EffDust* this, GlobalContext* globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/EffDust_Draw.s")

View file

@ -10,7 +10,13 @@ typedef f32 (*EffDustActionFunc)(struct EffDust *, GlobalContext *);
typedef struct EffDust {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x414];
/* 0x014C */ char unk_14C[0x401];
/* 0x054D */ u8 unk_054D;
/* 0x054E */ char unk_54E[0x02];
/* 0x0550 */ f32 unk_0550;
/* 0x0554 */ f32 unk_0554;
/* 0x0558 */ f32 unk_0558;
/* 0x055C */ f32 unk_055C;
/* 0x0560 */ EffDustActionFunc unk_0560;
/* 0x0560 */ EffDustActionFunc unk_0564;
} EffDust; // size = 0x0568