From 52298c1ffafb077b11f04a40a41f3f7089fe27e2 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 18 Jan 2021 00:28:20 -0300 Subject: [PATCH] void EffDust_UpdateFunc_8099DD74(EffDust *this, GlobalContext *globalCtx) Signed-off-by: angie --- .../actors/ovl_Eff_Dust/func_8099DD74.s | 167 ------------------ src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c | 35 +++- 2 files changed, 32 insertions(+), 170 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DD74.s diff --git a/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DD74.s b/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DD74.s deleted file mode 100644 index 6f3c772649..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DD74.s +++ /dev/null @@ -1,167 +0,0 @@ -.late_rodata -glabel D_8099EC04 - .float 0.03 - -.text -glabel func_8099DD74 -/* 004A4 8099DD74 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90 -/* 004A8 8099DD78 F7B60020 */ sdc1 $f22, 0x0020($sp) -/* 004AC 8099DD7C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 004B0 8099DD80 4481B000 */ mtc1 $at, $f22 ## $f22 = 1.00 -/* 004B4 8099DD84 AFB60060 */ sw $s6, 0x0060($sp) -/* 004B8 8099DD88 AFB30054 */ sw $s3, 0x0054($sp) -/* 004BC 8099DD8C 3C01809A */ lui $at, %hi(D_8099EC04) ## $at = 809A0000 -/* 004C0 8099DD90 0080B025 */ or $s6, $a0, $zero ## $s6 = 00000000 -/* 004C4 8099DD94 AFBF006C */ sw $ra, 0x006C($sp) -/* 004C8 8099DD98 AFBE0068 */ sw $s8, 0x0068($sp) -/* 004CC 8099DD9C AFB70064 */ sw $s7, 0x0064($sp) -/* 004D0 8099DDA0 AFB5005C */ sw $s5, 0x005C($sp) -/* 004D4 8099DDA4 AFB40058 */ sw $s4, 0x0058($sp) -/* 004D8 8099DDA8 AFB20050 */ sw $s2, 0x0050($sp) -/* 004DC 8099DDAC AFB1004C */ sw $s1, 0x004C($sp) -/* 004E0 8099DDB0 AFB00048 */ sw $s0, 0x0048($sp) -/* 004E4 8099DDB4 F7BE0040 */ sdc1 $f30, 0x0040($sp) -/* 004E8 8099DDB8 F7BC0038 */ sdc1 $f28, 0x0038($sp) -/* 004EC 8099DDBC F7BA0030 */ sdc1 $f26, 0x0030($sp) -/* 004F0 8099DDC0 F7B80028 */ sdc1 $f24, 0x0028($sp) -/* 004F4 8099DDC4 F7B40018 */ sdc1 $f20, 0x0018($sp) -/* 004F8 8099DDC8 AFA50074 */ sw $a1, 0x0074($sp) -/* 004FC 8099DDCC 2482014C */ addiu $v0, $a0, 0x014C ## $v0 = 0000014C -/* 00500 8099DDD0 C422EC04 */ lwc1 $f2, %lo(D_8099EC04)($at) -/* 00504 8099DDD4 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000 -/* 00508 8099DDD8 24030040 */ addiu $v1, $zero, 0x0040 ## $v1 = 00000040 -.L8099DDDC: -/* 0050C 8099DDDC C4400000 */ lwc1 $f0, 0x0000($v0) ## 0000014C -/* 00510 8099DDE0 26730004 */ addiu $s3, $s3, 0x0004 ## $s3 = 00000004 -/* 00514 8099DDE4 4616003C */ c.lt.s $f0, $f22 -/* 00518 8099DDE8 00000000 */ nop -/* 0051C 8099DDEC 45020004 */ bc1fl .L8099DE00 -/* 00520 8099DDF0 C4400004 */ lwc1 $f0, 0x0004($v0) ## 00000150 -/* 00524 8099DDF4 46020100 */ add.s $f4, $f0, $f2 -/* 00528 8099DDF8 E4440000 */ swc1 $f4, 0x0000($v0) ## 0000014C -/* 0052C 8099DDFC C4400004 */ lwc1 $f0, 0x0004($v0) ## 00000150 -.L8099DE00: -/* 00530 8099DE00 24420004 */ addiu $v0, $v0, 0x0004 ## $v0 = 00000150 -/* 00534 8099DE04 4616003C */ c.lt.s $f0, $f22 -/* 00538 8099DE08 00000000 */ nop -/* 0053C 8099DE0C 45020004 */ bc1fl .L8099DE20 -/* 00540 8099DE10 C4400004 */ lwc1 $f0, 0x0004($v0) ## 00000154 -/* 00544 8099DE14 46020180 */ add.s $f6, $f0, $f2 -/* 00548 8099DE18 E4460000 */ swc1 $f6, 0x0000($v0) ## 00000150 -/* 0054C 8099DE1C C4400004 */ lwc1 $f0, 0x0004($v0) ## 00000154 -.L8099DE20: -/* 00550 8099DE20 24420004 */ addiu $v0, $v0, 0x0004 ## $v0 = 00000154 -/* 00554 8099DE24 4616003C */ c.lt.s $f0, $f22 -/* 00558 8099DE28 00000000 */ nop -/* 0055C 8099DE2C 45020004 */ bc1fl .L8099DE40 -/* 00560 8099DE30 C4400004 */ lwc1 $f0, 0x0004($v0) ## 00000158 -/* 00564 8099DE34 46020200 */ add.s $f8, $f0, $f2 -/* 00568 8099DE38 E4480000 */ swc1 $f8, 0x0000($v0) ## 00000154 -/* 0056C 8099DE3C C4400004 */ lwc1 $f0, 0x0004($v0) ## 00000158 -.L8099DE40: -/* 00570 8099DE40 24420004 */ addiu $v0, $v0, 0x0004 ## $v0 = 00000158 -/* 00574 8099DE44 4616003C */ c.lt.s $f0, $f22 -/* 00578 8099DE48 00000000 */ nop -/* 0057C 8099DE4C 45000003 */ bc1f .L8099DE5C -/* 00580 8099DE50 00000000 */ nop -/* 00584 8099DE54 46020280 */ add.s $f10, $f0, $f2 -/* 00588 8099DE58 E44A0000 */ swc1 $f10, 0x0000($v0) ## 00000158 -.L8099DE5C: -/* 0058C 8099DE5C 1663FFDF */ bne $s3, $v1, .L8099DDDC -/* 00590 8099DE60 24420004 */ addiu $v0, $v0, 0x0004 ## $v0 = 0000015C -/* 00594 8099DE64 3C014600 */ lui $at, 0x4600 ## $at = 46000000 -/* 00598 8099DE68 4481E000 */ mtc1 $at, $f28 ## $f28 = 8192.00 -/* 0059C 8099DE6C 3C014780 */ lui $at, 0x4780 ## $at = 47800000 -/* 005A0 8099DE70 4481D000 */ mtc1 $at, $f26 ## $f26 = 65536.00 -/* 005A4 8099DE74 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000 -/* 005A8 8099DE78 4481C000 */ mtc1 $at, $f24 ## $f24 = 400.00 -/* 005AC 8099DE7C 4480F000 */ mtc1 $zero, $f30 ## $f30 = 0.00 -/* 005B0 8099DE80 0000A825 */ or $s5, $zero, $zero ## $s5 = 00000000 -/* 005B4 8099DE84 241E0002 */ addiu $s8, $zero, 0x0002 ## $s8 = 00000002 -/* 005B8 8099DE88 2417000C */ addiu $s7, $zero, 0x000C ## $s7 = 0000000C -/* 005BC 8099DE8C 92D3054C */ lbu $s3, 0x054C($s6) ## 0000054C -.L8099DE90: -/* 005C0 8099DE90 3273003F */ andi $s3, $s3, 0x003F ## $s3 = 00000004 -/* 005C4 8099DE94 00137080 */ sll $t6, $s3, 2 -/* 005C8 8099DE98 02CEA021 */ addu $s4, $s6, $t6 -/* 005CC 8099DE9C C690014C */ lwc1 $f16, 0x014C($s4) ## 0000014C -/* 005D0 8099DEA0 4610B03E */ c.le.s $f22, $f16 -/* 005D4 8099DEA4 00000000 */ nop -/* 005D8 8099DEA8 45020031 */ bc1fl .L8099DF70 -/* 005DC 8099DEAC 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000001 -/* 005E0 8099DEB0 0C00CFC8 */ jal Rand_CenteredFloat - -/* 005E4 8099DEB4 4600D306 */ mov.s $f12, $f26 -/* 005E8 8099DEB8 4600048D */ trunc.w.s $f18, $f0 -/* 005EC 8099DEBC 4600E306 */ mov.s $f12, $f28 -/* 005F0 8099DEC0 44129000 */ mfc1 $s2, $f18 -/* 005F4 8099DEC4 00000000 */ nop -/* 005F8 8099DEC8 00129400 */ sll $s2, $s2, 16 -/* 005FC 8099DECC 0C00CFBE */ jal Rand_ZeroFloat - -/* 00600 8099DED0 00129403 */ sra $s2, $s2, 16 -/* 00604 8099DED4 4600010D */ trunc.w.s $f4, $f0 -/* 00608 8099DED8 00122400 */ sll $a0, $s2, 16 -/* 0060C 8099DEDC 00042403 */ sra $a0, $a0, 16 -/* 00610 8099DEE0 44102000 */ mfc1 $s0, $f4 -/* 00614 8099DEE4 00000000 */ nop -/* 00618 8099DEE8 00108400 */ sll $s0, $s0, 16 -/* 0061C 8099DEEC 0C01DE0D */ jal Math_CosS - ## coss? -/* 00620 8099DEF0 00108403 */ sra $s0, $s0, 16 -/* 00624 8099DEF4 00102400 */ sll $a0, $s0, 16 -/* 00628 8099DEF8 00042403 */ sra $a0, $a0, 16 -/* 0062C 8099DEFC 0C01DE0D */ jal Math_CosS - ## coss? -/* 00630 8099DF00 46000506 */ mov.s $f20, $f0 -/* 00634 8099DF04 4614C182 */ mul.s $f6, $f24, $f20 -/* 00638 8099DF08 00102400 */ sll $a0, $s0, 16 -/* 0063C 8099DF0C 02770019 */ multu $s3, $s7 -/* 00640 8099DF10 00042403 */ sra $a0, $a0, 16 -/* 00644 8099DF14 46060202 */ mul.s $f8, $f0, $f6 -/* 00648 8099DF18 0000C812 */ mflo $t9 -/* 0064C 8099DF1C 02D98821 */ addu $s1, $s6, $t9 -/* 00650 8099DF20 0C01DE1C */ jal Math_SinS - ## sins? -/* 00654 8099DF24 E628024C */ swc1 $f8, 0x024C($s1) ## 0000024C -/* 00658 8099DF28 46180282 */ mul.s $f10, $f0, $f24 -/* 0065C 8099DF2C 00122400 */ sll $a0, $s2, 16 -/* 00660 8099DF30 00042403 */ sra $a0, $a0, 16 -/* 00664 8099DF34 0C01DE1C */ jal Math_SinS - ## sins? -/* 00668 8099DF38 E62A0250 */ swc1 $f10, 0x0250($s1) ## 00000250 -/* 0066C 8099DF3C 00102400 */ sll $a0, $s0, 16 -/* 00670 8099DF40 00042403 */ sra $a0, $a0, 16 -/* 00674 8099DF44 0C01DE0D */ jal Math_CosS - ## coss? -/* 00678 8099DF48 46000506 */ mov.s $f20, $f0 -/* 0067C 8099DF4C 4614C402 */ mul.s $f16, $f24, $f20 -/* 00680 8099DF50 00000000 */ nop -/* 00684 8099DF54 46100482 */ mul.s $f18, $f0, $f16 -/* 00688 8099DF58 E6320254 */ swc1 $f18, 0x0254($s1) ## 00000254 -/* 0068C 8099DF5C E69E014C */ swc1 $f30, 0x014C($s4) ## 0000014C -/* 00690 8099DF60 92C8054C */ lbu $t0, 0x054C($s6) ## 0000054C -/* 00694 8099DF64 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001 -/* 00698 8099DF68 A2C9054C */ sb $t1, 0x054C($s6) ## 0000054C -/* 0069C 8099DF6C 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000002 -.L8099DF70: -/* 006A0 8099DF70 56BEFFC7 */ bnel $s5, $s8, .L8099DE90 -/* 006A4 8099DF74 92D3054C */ lbu $s3, 0x054C($s6) ## 0000054C -/* 006A8 8099DF78 8FBF006C */ lw $ra, 0x006C($sp) -/* 006AC 8099DF7C D7B40018 */ ldc1 $f20, 0x0018($sp) -/* 006B0 8099DF80 D7B60020 */ ldc1 $f22, 0x0020($sp) -/* 006B4 8099DF84 D7B80028 */ ldc1 $f24, 0x0028($sp) -/* 006B8 8099DF88 D7BA0030 */ ldc1 $f26, 0x0030($sp) -/* 006BC 8099DF8C D7BC0038 */ ldc1 $f28, 0x0038($sp) -/* 006C0 8099DF90 D7BE0040 */ ldc1 $f30, 0x0040($sp) -/* 006C4 8099DF94 8FB00048 */ lw $s0, 0x0048($sp) -/* 006C8 8099DF98 8FB1004C */ lw $s1, 0x004C($sp) -/* 006CC 8099DF9C 8FB20050 */ lw $s2, 0x0050($sp) -/* 006D0 8099DFA0 8FB30054 */ lw $s3, 0x0054($sp) -/* 006D4 8099DFA4 8FB40058 */ lw $s4, 0x0058($sp) -/* 006D8 8099DFA8 8FB5005C */ lw $s5, 0x005C($sp) -/* 006DC 8099DFAC 8FB60060 */ lw $s6, 0x0060($sp) -/* 006E0 8099DFB0 8FB70064 */ lw $s7, 0x0064($sp) -/* 006E4 8099DFB4 8FBE0068 */ lw $s8, 0x0068($sp) -/* 006E8 8099DFB8 03E00008 */ jr $ra -/* 006EC 8099DFBC 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000 diff --git a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c index 910621145c..ba61d73b46 100644 --- a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c +++ b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c @@ -12,7 +12,7 @@ void EffDust_Draw(Actor* thisx, GlobalContext* globalCtx); void func_8099D8E0(EffDust* this); void EffDust_UpdateFunc_8099DB28(EffDust* this, GlobalContext* globalCtx); -void func_8099DD74(EffDust* this, GlobalContext* globalCtx); +void EffDust_UpdateFunc_8099DD74(EffDust* this, GlobalContext* globalCtx); void func_8099DFC0(EffDust* this, GlobalContext* globalCtx); void func_8099E4F4(EffDust* this, GlobalContext* globalCtx); void func_8099E784(EffDust* this, GlobalContext* globalCtx); @@ -79,7 +79,7 @@ void EffDust_Init(Actor *thisx, GlobalContext *globalCtx) { break; case 1: - EffDust_setUpdateFunc(this, func_8099DD74); + EffDust_setUpdateFunc(this, EffDust_UpdateFunc_8099DD74); EffDust_setDrawFunc(this, func_8099E4F4); this->unk_0550 = 0.8f; this->unk_0558 = 0.8f; @@ -155,7 +155,36 @@ void EffDust_UpdateFunc_8099DB28(EffDust *this, GlobalContext *globalCtx) { } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DD74.s") +void EffDust_UpdateFunc_8099DD74(EffDust *this, GlobalContext *globalCtx) { + s16 theta; + s16 fi; + + f32 *unk_014C; + + s32 i; + s32 j; + + unk_014C = this->unk_014C; + for (i = 0; i < 0x40; i++) { + if ((*unk_014C) < 1.0f) { + *unk_014C += 0.03f; + } + unk_014C++; + } + + for (j = 0; j < 2; j++){ + i = this->unk_054C & 0x3F; + if (this->unk_014C[i] >= 1.0f) { + fi = Rand_CenteredFloat(65536.0f); + theta = Rand_ZeroFloat(8192.0f); + this->unk_024C[i].x = 400.0f * Math_CosS(fi) * Math_CosS(theta); + this->unk_024C[i].y = 400.0f * Math_SinS(theta); + this->unk_024C[i].z = 400.0f * Math_SinS(fi) * Math_CosS(theta); + this->unk_014C[i] = 0.0f; + this->unk_054C += 1; + } + } +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Eff_Dust/func_8099DFC0.s")