diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AEE8.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AEE8.s deleted file mode 100644 index 01554873e5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AEE8.s +++ /dev/null @@ -1,105 +0,0 @@ -glabel func_8097AEE8 -/* 025B8 8097AEE8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 025BC 8097AEEC AFA5003C */ sw $a1, 0x003C($sp) -/* 025C0 8097AEF0 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000 -/* 025C4 8097AEF4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 025C8 8097AEF8 AFA40038 */ sw $a0, 0x0038($sp) -/* 025CC 8097AEFC 84840032 */ lh $a0, 0x0032($a0) ## 00000032 -/* 025D0 8097AF00 AFA50038 */ sw $a1, 0x0038($sp) -/* 025D4 8097AF04 0C01DE0D */ jal Math_CosS - ## coss? -/* 025D8 8097AF08 A7A40022 */ sh $a0, 0x0022($sp) -/* 025DC 8097AF0C 87A40022 */ lh $a0, 0x0022($sp) -/* 025E0 8097AF10 0C01DE1C */ jal Math_SinS - ## sins? -/* 025E4 8097AF14 E7A0001C */ swc1 $f0, 0x001C($sp) -/* 025E8 8097AF18 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 025EC 8097AF1C C7B2001C */ lwc1 $f18, 0x001C($sp) -/* 025F0 8097AF20 44812000 */ mtc1 $at, $f4 ## $f4 = 20.00 -/* 025F4 8097AF24 8FA50038 */ lw $a1, 0x0038($sp) -/* 025F8 8097AF28 3C01C1A0 */ lui $at, 0xC1A0 ## $at = C1A00000 -/* 025FC 8097AF2C 46122082 */ mul.s $f2, $f4, $f18 -/* 02600 8097AF30 44813000 */ mtc1 $at, $f6 ## $f6 = -20.00 -/* 02604 8097AF34 24A20024 */ addiu $v0, $a1, 0x0024 ## $v0 = 00000024 -/* 02608 8097AF38 C4480008 */ lwc1 $f8, 0x0008($v0) ## 0000002C -/* 0260C 8097AF3C 46003302 */ mul.s $f12, $f6, $f0 -/* 02610 8097AF40 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 02614 8097AF44 24A30184 */ addiu $v1, $a1, 0x0184 ## $v1 = 00000184 -/* 02618 8097AF48 24A401D0 */ addiu $a0, $a1, 0x01D0 ## $a0 = 000001D0 -/* 0261C 8097AF4C 24A6021C */ addiu $a2, $a1, 0x021C ## $a2 = 0000021C -/* 02620 8097AF50 46024280 */ add.s $f10, $f8, $f2 -/* 02624 8097AF54 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00 -/* 02628 8097AF58 3C01C1A0 */ lui $at, 0xC1A0 ## $at = C1A00000 -/* 0262C 8097AF5C 460C5101 */ sub.s $f4, $f10, $f12 -/* 02630 8097AF60 46004382 */ mul.s $f14, $f8, $f0 -/* 02634 8097AF64 44815000 */ mtc1 $at, $f10 ## $f10 = -20.00 -/* 02638 8097AF68 3C01C270 */ lui $at, 0xC270 ## $at = C2700000 -/* 0263C 8097AF6C 46125402 */ mul.s $f16, $f10, $f18 -/* 02640 8097AF70 4600218D */ trunc.w.s $f6, $f4 -/* 02644 8097AF74 440F3000 */ mfc1 $t7, $f6 -/* 02648 8097AF78 00000000 */ nop -/* 0264C 8097AF7C A46F004A */ sh $t7, 0x004A($v1) ## 000001CE -/* 02650 8097AF80 C4440000 */ lwc1 $f4, 0x0000($v0) ## 00000024 -/* 02654 8097AF84 460E2180 */ add.s $f6, $f4, $f14 -/* 02658 8097AF88 46103200 */ add.s $f8, $f6, $f16 -/* 0265C 8097AF8C 4600428D */ trunc.w.s $f10, $f8 -/* 02660 8097AF90 44195000 */ mfc1 $t9, $f10 -/* 02664 8097AF94 00000000 */ nop -/* 02668 8097AF98 A4790046 */ sh $t9, 0x0046($v1) ## 000001CA -/* 0266C 8097AF9C C4440004 */ lwc1 $f4, 0x0004($v0) ## 00000028 -/* 02670 8097AFA0 4600218D */ trunc.w.s $f6, $f4 -/* 02674 8097AFA4 44093000 */ mfc1 $t1, $f6 -/* 02678 8097AFA8 00000000 */ nop -/* 0267C 8097AFAC A4690048 */ sh $t1, 0x0048($v1) ## 000001CC -/* 02680 8097AFB0 C4480008 */ lwc1 $f8, 0x0008($v0) ## 0000002C -/* 02684 8097AFB4 46104280 */ add.s $f10, $f8, $f16 -/* 02688 8097AFB8 460E5101 */ sub.s $f4, $f10, $f14 -/* 0268C 8097AFBC 4600218D */ trunc.w.s $f6, $f4 -/* 02690 8097AFC0 440B3000 */ mfc1 $t3, $f6 -/* 02694 8097AFC4 00000000 */ nop -/* 02698 8097AFC8 A48B004A */ sh $t3, 0x004A($a0) ## 0000021A -/* 0269C 8097AFCC C4480000 */ lwc1 $f8, 0x0000($v0) ## 00000024 -/* 026A0 8097AFD0 460C4280 */ add.s $f10, $f8, $f12 -/* 026A4 8097AFD4 46025100 */ add.s $f4, $f10, $f2 -/* 026A8 8097AFD8 4600218D */ trunc.w.s $f6, $f4 -/* 026AC 8097AFDC 440D3000 */ mfc1 $t5, $f6 -/* 026B0 8097AFE0 44813000 */ mtc1 $at, $f6 ## $f6 = -60.00 -/* 026B4 8097AFE4 3C014270 */ lui $at, 0x4270 ## $at = 42700000 -/* 026B8 8097AFE8 A48D0046 */ sh $t5, 0x0046($a0) ## 00000216 -/* 026BC 8097AFEC C4480004 */ lwc1 $f8, 0x0004($v0) ## 00000028 -/* 026C0 8097AFF0 4600428D */ trunc.w.s $f10, $f8 -/* 026C4 8097AFF4 46123202 */ mul.s $f8, $f6, $f18 -/* 026C8 8097AFF8 44813000 */ mtc1 $at, $f6 ## $f6 = 60.00 -/* 026CC 8097AFFC 3C01C270 */ lui $at, 0xC270 ## $at = C2700000 -/* 026D0 8097B000 440F5000 */ mfc1 $t7, $f10 -/* 026D4 8097B004 00000000 */ nop -/* 026D8 8097B008 A48F0048 */ sh $t7, 0x0048($a0) ## 00000218 -/* 026DC 8097B00C C4440008 */ lwc1 $f4, 0x0008($v0) ## 0000002C -/* 026E0 8097B010 46082280 */ add.s $f10, $f4, $f8 -/* 026E4 8097B014 46003102 */ mul.s $f4, $f6, $f0 -/* 026E8 8097B018 46045201 */ sub.s $f8, $f10, $f4 -/* 026EC 8097B01C 44812000 */ mtc1 $at, $f4 ## $f4 = -60.00 -/* 026F0 8097B020 3C014270 */ lui $at, 0x4270 ## $at = 42700000 -/* 026F4 8097B024 4600418D */ trunc.w.s $f6, $f8 -/* 026F8 8097B028 46002202 */ mul.s $f8, $f4, $f0 -/* 026FC 8097B02C 44812000 */ mtc1 $at, $f4 ## $f4 = 60.00 -/* 02700 8097B030 44193000 */ mfc1 $t9, $f6 -/* 02704 8097B034 00000000 */ nop -/* 02708 8097B038 A4D9004A */ sh $t9, 0x004A($a2) ## 00000266 -/* 0270C 8097B03C C44A0000 */ lwc1 $f10, 0x0000($v0) ## 00000024 -/* 02710 8097B040 46085180 */ add.s $f6, $f10, $f8 -/* 02714 8097B044 46122282 */ mul.s $f10, $f4, $f18 -/* 02718 8097B048 460A3200 */ add.s $f8, $f6, $f10 -/* 0271C 8097B04C 4600410D */ trunc.w.s $f4, $f8 -/* 02720 8097B050 44092000 */ mfc1 $t1, $f4 -/* 02724 8097B054 00000000 */ nop -/* 02728 8097B058 A4C90046 */ sh $t1, 0x0046($a2) ## 00000262 -/* 0272C 8097B05C C4460004 */ lwc1 $f6, 0x0004($v0) ## 00000028 -/* 02730 8097B060 4600328D */ trunc.w.s $f10, $f6 -/* 02734 8097B064 440B5000 */ mfc1 $t3, $f10 -/* 02738 8097B068 00000000 */ nop -/* 0273C 8097B06C A4CB0048 */ sh $t3, 0x0048($a2) ## 00000264 -/* 02740 8097B070 8FBF0014 */ lw $ra, 0x0014($sp) -/* 02744 8097B074 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 02748 8097B078 03E00008 */ jr $ra -/* 0274C 8097B07C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097B450.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097B450.s deleted file mode 100644 index ee2723be5a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097B450.s +++ /dev/null @@ -1,88 +0,0 @@ -glabel func_8097B450 -/* 02B20 8097B450 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 02B24 8097B454 AFA5003C */ sw $a1, 0x003C($sp) -/* 02B28 8097B458 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000 -/* 02B2C 8097B45C AFBF0014 */ sw $ra, 0x0014($sp) -/* 02B30 8097B460 AFA40038 */ sw $a0, 0x0038($sp) -/* 02B34 8097B464 84840032 */ lh $a0, 0x0032($a0) ## 00000032 -/* 02B38 8097B468 AFA50038 */ sw $a1, 0x0038($sp) -/* 02B3C 8097B46C 0C01DE0D */ jal Math_CosS - ## coss? -/* 02B40 8097B470 A7A40022 */ sh $a0, 0x0022($sp) -/* 02B44 8097B474 87A40022 */ lh $a0, 0x0022($sp) -/* 02B48 8097B478 0C01DE1C */ jal Math_SinS - ## sins? -/* 02B4C 8097B47C E7A0001C */ swc1 $f0, 0x001C($sp) -/* 02B50 8097B480 3C01420C */ lui $at, 0x420C ## $at = 420C0000 -/* 02B54 8097B484 44816000 */ mtc1 $at, $f12 ## $f12 = 35.00 -/* 02B58 8097B488 8FA50038 */ lw $a1, 0x0038($sp) -/* 02B5C 8097B48C C7A2001C */ lwc1 $f2, 0x001C($sp) -/* 02B60 8097B490 46006182 */ mul.s $f6, $f12, $f0 -/* 02B64 8097B494 24A20024 */ addiu $v0, $a1, 0x0024 ## $v0 = 00000024 -/* 02B68 8097B498 C4440008 */ lwc1 $f4, 0x0008($v0) ## 0000002C -/* 02B6C 8097B49C 24A30184 */ addiu $v1, $a1, 0x0184 ## $v1 = 00000184 -/* 02B70 8097B4A0 3C01C120 */ lui $at, 0xC120 ## $at = C1200000 -/* 02B74 8097B4A4 44817000 */ mtc1 $at, $f14 ## $f14 = -10.00 -/* 02B78 8097B4A8 24A401D0 */ addiu $a0, $a1, 0x01D0 ## $a0 = 000001D0 -/* 02B7C 8097B4AC 46062201 */ sub.s $f8, $f4, $f6 -/* 02B80 8097B4B0 46026102 */ mul.s $f4, $f12, $f2 -/* 02B84 8097B4B4 3C01C25C */ lui $at, 0xC25C ## $at = C25C0000 -/* 02B88 8097B4B8 44818000 */ mtc1 $at, $f16 ## $f16 = -55.00 -/* 02B8C 8097B4BC 24A6021C */ addiu $a2, $a1, 0x021C ## $a2 = 0000021C -/* 02B90 8097B4C0 4600428D */ trunc.w.s $f10, $f8 -/* 02B94 8097B4C4 440F5000 */ mfc1 $t7, $f10 -/* 02B98 8097B4C8 00000000 */ nop -/* 02B9C 8097B4CC A46F004A */ sh $t7, 0x004A($v1) ## 000001CE -/* 02BA0 8097B4D0 C4520000 */ lwc1 $f18, 0x0000($v0) ## 00000024 -/* 02BA4 8097B4D4 46049180 */ add.s $f6, $f18, $f4 -/* 02BA8 8097B4D8 4600320D */ trunc.w.s $f8, $f6 -/* 02BAC 8097B4DC 46007182 */ mul.s $f6, $f14, $f0 -/* 02BB0 8097B4E0 44194000 */ mfc1 $t9, $f8 -/* 02BB4 8097B4E4 00000000 */ nop -/* 02BB8 8097B4E8 A4790046 */ sh $t9, 0x0046($v1) ## 000001CA -/* 02BBC 8097B4EC C44A0004 */ lwc1 $f10, 0x0004($v0) ## 00000028 -/* 02BC0 8097B4F0 4600548D */ trunc.w.s $f18, $f10 -/* 02BC4 8097B4F4 44099000 */ mfc1 $t1, $f18 -/* 02BC8 8097B4F8 00000000 */ nop -/* 02BCC 8097B4FC A4690048 */ sh $t1, 0x0048($v1) ## 000001CC -/* 02BD0 8097B500 C4440008 */ lwc1 $f4, 0x0008($v0) ## 0000002C -/* 02BD4 8097B504 46062201 */ sub.s $f8, $f4, $f6 -/* 02BD8 8097B508 46027102 */ mul.s $f4, $f14, $f2 -/* 02BDC 8097B50C 4600428D */ trunc.w.s $f10, $f8 -/* 02BE0 8097B510 440B5000 */ mfc1 $t3, $f10 -/* 02BE4 8097B514 00000000 */ nop -/* 02BE8 8097B518 A48B004A */ sh $t3, 0x004A($a0) ## 0000021A -/* 02BEC 8097B51C C4520000 */ lwc1 $f18, 0x0000($v0) ## 00000024 -/* 02BF0 8097B520 46049180 */ add.s $f6, $f18, $f4 -/* 02BF4 8097B524 4600320D */ trunc.w.s $f8, $f6 -/* 02BF8 8097B528 46008182 */ mul.s $f6, $f16, $f0 -/* 02BFC 8097B52C 440D4000 */ mfc1 $t5, $f8 -/* 02C00 8097B530 00000000 */ nop -/* 02C04 8097B534 A48D0046 */ sh $t5, 0x0046($a0) ## 00000216 -/* 02C08 8097B538 C44A0004 */ lwc1 $f10, 0x0004($v0) ## 00000028 -/* 02C0C 8097B53C 4600548D */ trunc.w.s $f18, $f10 -/* 02C10 8097B540 440F9000 */ mfc1 $t7, $f18 -/* 02C14 8097B544 00000000 */ nop -/* 02C18 8097B548 A48F0048 */ sh $t7, 0x0048($a0) ## 00000218 -/* 02C1C 8097B54C C4440008 */ lwc1 $f4, 0x0008($v0) ## 0000002C -/* 02C20 8097B550 46062201 */ sub.s $f8, $f4, $f6 -/* 02C24 8097B554 46028102 */ mul.s $f4, $f16, $f2 -/* 02C28 8097B558 4600428D */ trunc.w.s $f10, $f8 -/* 02C2C 8097B55C 44195000 */ mfc1 $t9, $f10 -/* 02C30 8097B560 00000000 */ nop -/* 02C34 8097B564 A4D9004A */ sh $t9, 0x004A($a2) ## 00000266 -/* 02C38 8097B568 C4520000 */ lwc1 $f18, 0x0000($v0) ## 00000024 -/* 02C3C 8097B56C 46049180 */ add.s $f6, $f18, $f4 -/* 02C40 8097B570 4600320D */ trunc.w.s $f8, $f6 -/* 02C44 8097B574 44094000 */ mfc1 $t1, $f8 -/* 02C48 8097B578 00000000 */ nop -/* 02C4C 8097B57C A4C90046 */ sh $t1, 0x0046($a2) ## 00000262 -/* 02C50 8097B580 C44A0004 */ lwc1 $f10, 0x0004($v0) ## 00000028 -/* 02C54 8097B584 4600548D */ trunc.w.s $f18, $f10 -/* 02C58 8097B588 440B9000 */ mfc1 $t3, $f18 -/* 02C5C 8097B58C 00000000 */ nop -/* 02C60 8097B590 A4CB0048 */ sh $t3, 0x0048($a2) ## 00000264 -/* 02C64 8097B594 8FBF0014 */ lw $ra, 0x0014($sp) -/* 02C68 8097B598 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 02C6C 8097B59C 03E00008 */ jr $ra -/* 02C70 8097B5A0 00000000 */ nop diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index bf879737d0..4651c97694 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -293,19 +293,19 @@ void func_809789D8(DemoGj* this, GlobalContext* globalCtx) { switch (temp_v0) { case 0x10: - Collider_DestroyCylinder(globalCtx, &this->unk_184); - Collider_DestroyCylinder(globalCtx, &this->unk_1D0); - Collider_DestroyCylinder(globalCtx, &this->unk_21C); + Collider_DestroyCylinder(globalCtx, &this->unk_184[0]); + Collider_DestroyCylinder(globalCtx, &this->unk_184[1]); + Collider_DestroyCylinder(globalCtx, &this->unk_184[2]); break; case 0x11: - Collider_DestroyCylinder(globalCtx, &this->unk_184); - Collider_DestroyCylinder(globalCtx, &this->unk_1D0); - Collider_DestroyCylinder(globalCtx, &this->unk_21C); + Collider_DestroyCylinder(globalCtx, &this->unk_184[0]); + Collider_DestroyCylinder(globalCtx, &this->unk_184[1]); + Collider_DestroyCylinder(globalCtx, &this->unk_184[2]); return; case 0x16: - Collider_DestroyCylinder(globalCtx, &this->unk_184); + Collider_DestroyCylinder(globalCtx, &this->unk_184[0]); return; default: @@ -1211,70 +1211,55 @@ void func_8097AE38(DemoGj *this, GlobalContext *globalCtx) { void func_8097AE5C(DemoGj *this, GlobalContext *globalCtx) { func_80978FCC(this, globalCtx, 0xF, 0, NULL); - func_8097895C(this, globalCtx, &this->unk_184, &D_8097BDE0); - func_8097895C(this, globalCtx, &this->unk_1D0, &D_8097BDE0); - func_8097895C(this, globalCtx, &this->unk_21C, &D_8097BDE0); + func_8097895C(this, globalCtx, &this->unk_184[0], &D_8097BDE0); + func_8097895C(this, globalCtx, &this->unk_184[1], &D_8097BDE0); + func_8097895C(this, globalCtx, &this->unk_184[2], &D_8097BDE0); } void func_8097AEDC(DemoGj *this, GlobalContext *globalCtx) { } -void func_8097AEE8(DemoGj *this, GlobalContext *globalCtx); -/* -void *func_8097AEE8(void *arg0, ? arg1) { - s16 sp22; - f32 sp1C; - f32 temp_f0; - f32 temp_f12; - f32 temp_f14; - f32 temp_f16; - f32 temp_f2; - s16 temp_a0; - void *temp_a0_2; - void *temp_a2; - void *temp_v0; - void *temp_v1; +void func_8097AEE8(DemoGj *this, GlobalContext *globalCtx) { + ColliderCylinder *cylinder0 = &this->unk_184[0]; + ColliderCylinder *cylinder1 = &this->unk_184[1]; + ColliderCylinder *cylinder2 = &this->unk_184[2]; + PosRot *actorPosRot = &this->dyna.actor.world; - temp_a0 = arg0->unk32; - arg0 = arg0; - sp22 = temp_a0; - sp1C = Math_CosS(temp_a0); - temp_f0 = Math_SinS(temp_a0); - temp_f2 = 20.0f * sp1C; - temp_v0 = arg0 + 0x24; - temp_f12 = -20.0f * temp_f0; - temp_v1 = arg0 + 0x184; - temp_a0_2 = arg0 + 0x1D0; - temp_a2 = arg0 + 0x21C; - temp_f14 = 20.0f * temp_f0; - temp_f16 = -20.0f * sp1C; - temp_v1->unk4A = (s16) (s32) ((temp_v0->unk8 + temp_f2) - temp_f12); - temp_v1->unk46 = (s16) (s32) (temp_v0->unk0 + temp_f14 + temp_f16); - temp_v1->unk48 = (s16) (s32) temp_v0->unk4; - temp_a0_2->unk4A = (s16) (s32) ((temp_v0->unk8 + temp_f16) - temp_f14); - temp_a0_2->unk46 = (s16) (s32) (temp_v0->unk0 + temp_f12 + temp_f2); - temp_a0_2->unk48 = (s16) (s32) temp_v0->unk4; - temp_a2->unk4A = (s16) (s32) ((temp_v0->unk8 + (-60.0f * sp1C)) - (60.0f * temp_f0)); - temp_a2->unk46 = (s16) (s32) (temp_v0->unk0 + (-60.0f * temp_f0) + (60.0f * sp1C)); - temp_a2->unk48 = (s16) (s32) temp_v0->unk4; - return temp_v0; + s32 pad; + + s16 theta = actorPosRot->rot.y; + f32 cos_theta; + f32 sin_theta; + + cos_theta = Math_CosS(theta); + sin_theta = Math_SinS(theta); + + cylinder0->dim.pos.z = actorPosRot->pos.z + (20.0f * cos_theta) - (-20.0f * sin_theta); + cylinder0->dim.pos.x = actorPosRot->pos.x + (20.0f * sin_theta) + (-20.0f * cos_theta); + cylinder0->dim.pos.y = actorPosRot->pos.y; + + cylinder1->dim.pos.z = actorPosRot->pos.z + (-20.0f * cos_theta) - (20.0f * sin_theta); + cylinder1->dim.pos.x = actorPosRot->pos.x + (-20.0f * sin_theta) + (20.0f * cos_theta); + cylinder1->dim.pos.y = actorPosRot->pos.y; + + cylinder2->dim.pos.z = actorPosRot->pos.z + (-60.0f * cos_theta) - (60.0f * sin_theta); + cylinder2->dim.pos.x = actorPosRot->pos.x + (-60.0f * sin_theta) + (60.0f * cos_theta); + cylinder2->dim.pos.y = actorPosRot->pos.y; } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AEE8.s") void func_8097B080(DemoGj *this, GlobalContext *globalCtx) { CollisionCheckContext *temp_a1; GlobalContext* glbCtx = globalCtx; - Collider* unk_184 = &this->unk_184.base; - Collider* unk_1D0 = &this->unk_1D0.base; - Collider* unk_21C = &this->unk_21C.base; + Collider* unk_184_0= &this->unk_184[0].base; + Collider* unk_184_1 = &this->unk_184[1].base; + Collider* unk_184_2 = &this->unk_184[2].base; s32 pad[3]; temp_a1 = &glbCtx->colChkCtx; - CollisionCheck_SetAC(glbCtx, temp_a1, unk_184); - CollisionCheck_SetAC(glbCtx, temp_a1, unk_1D0); - CollisionCheck_SetAC(glbCtx, temp_a1, unk_21C); + CollisionCheck_SetAC(glbCtx, temp_a1, unk_184_0); + CollisionCheck_SetAC(glbCtx, temp_a1, unk_184_1); + CollisionCheck_SetAC(glbCtx, temp_a1, unk_184_2); } void func_8097B0EC(DemoGj *this, GlobalContext *globalCtx, Vec3f *arg2) { @@ -1301,13 +1286,13 @@ void func_8097B128(DemoGj *this, GlobalContext *globalCtx) { } s32 func_8097B1B4(DemoGj *this, GlobalContext *globalCtx) { - if (func_809789A4(this, globalCtx, &this->unk_184.base) != 0) { + if (func_809789A4(this, globalCtx, &this->unk_184[0].base) != 0) { return 1; } - if (func_809789A4(this, globalCtx, &this->unk_1D0.base) != 0) { + if (func_809789A4(this, globalCtx, &this->unk_184[1].base) != 0) { return 1; } - if (func_809789A4(this, globalCtx, &this->unk_21C.base) != 0) { + if (func_809789A4(this, globalCtx, &this->unk_184[2].base) != 0) { return 1; } return 0; @@ -1360,74 +1345,67 @@ void func_8097B3A0(DemoGj *this, GlobalContext *globalCtx) { void func_8097B3C4(DemoGj *this, GlobalContext *globalCtx) { func_80978FCC(this, globalCtx, 0x10, 0, NULL); - func_8097895C(this, globalCtx, &this->unk_184, &D_8097BE0C); - func_8097895C(this, globalCtx, &this->unk_1D0, &D_8097BE0C); - func_8097895C(this, globalCtx, &this->unk_21C, &D_8097BE0C); + func_8097895C(this, globalCtx, &this->unk_184[0], &D_8097BE0C); + func_8097895C(this, globalCtx, &this->unk_184[1], &D_8097BE0C); + func_8097895C(this, globalCtx, &this->unk_184[2], &D_8097BE0C); } void func_8097B444(DemoGj *this, GlobalContext *globalCtx) { } -void func_8097B450(DemoGj *this, GlobalContext *globalCtx); -/* -void *func_8097B450(void *arg0, ? arg1) { - s16 sp22; - f32 sp1C; - f32 temp_f0; - s16 temp_a0; - void *temp_a0_2; - void *temp_a2; - void *temp_v0; - void *temp_v1; +void func_8097B450(DemoGj *this, GlobalContext *globalCtx) { + ColliderCylinder *cylinder0 = &this->unk_184[0]; + ColliderCylinder *cylinder1 = &this->unk_184[1]; + ColliderCylinder *cylinder2 = &this->unk_184[2]; + PosRot *actorPosRot = &this->dyna.actor.world; - temp_a0 = arg0->unk32; - arg0 = arg0; - sp22 = temp_a0; - sp1C = Math_CosS(temp_a0); - temp_f0 = Math_SinS(temp_a0); - temp_v0 = arg0 + 0x24; - temp_v1 = arg0 + 0x184; - temp_a0_2 = arg0 + 0x1D0; - temp_a2 = arg0 + 0x21C; - temp_v1->unk4A = (s16) (s32) (temp_v0->unk8 - (35.0f * temp_f0)); - temp_v1->unk46 = (s16) (s32) (temp_v0->unk0 + (35.0f * sp1C)); - temp_v1->unk48 = (s16) (s32) temp_v0->unk4; - temp_a0_2->unk4A = (s16) (s32) (temp_v0->unk8 - (-10.0f * temp_f0)); - temp_a0_2->unk46 = (s16) (s32) (temp_v0->unk0 + (-10.0f * sp1C)); - temp_a0_2->unk48 = (s16) (s32) temp_v0->unk4; - temp_a2->unk4A = (s16) (s32) (temp_v0->unk8 - (-55.0f * temp_f0)); - temp_a2->unk46 = (s16) (s32) (temp_v0->unk0 + (-55.0f * sp1C)); - temp_a2->unk48 = (s16) (s32) temp_v0->unk4; - return temp_v0; + s32 pad; + + s16 theta = actorPosRot->rot.y; + f32 cos_theta; + f32 sin_theta; + + cos_theta = Math_CosS(theta); + sin_theta = Math_SinS(theta); + + cylinder0->dim.pos.z = actorPosRot->pos.z - (35.0f * sin_theta); + cylinder0->dim.pos.x = actorPosRot->pos.x + (35.0f * cos_theta); + cylinder0->dim.pos.y = actorPosRot->pos.y; + + cylinder1->dim.pos.z = actorPosRot->pos.z - (-10.0f * sin_theta); + cylinder1->dim.pos.x = actorPosRot->pos.x + (-10.0f * cos_theta); + cylinder1->dim.pos.y = actorPosRot->pos.y; + + cylinder2->dim.pos.z = actorPosRot->pos.z - (-55.0f * sin_theta); + cylinder2->dim.pos.x = actorPosRot->pos.x + (-55.0f * cos_theta); + cylinder2->dim.pos.y = actorPosRot->pos.y; } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097B450.s") void func_8097B5A4(DemoGj *this, GlobalContext *globalCtx) { CollisionCheckContext *temp_a1; GlobalContext* glbCtx = globalCtx; - Collider* unk_184 = &this->unk_184.base; - Collider* unk_1D0 = &this->unk_1D0.base; - Collider* unk_21C = &this->unk_21C.base; + Collider* unk_184_0 = &this->unk_184[0].base; + Collider* unk_184_1 = &this->unk_184[1].base; + Collider* unk_184_2 = &this->unk_184[2].base; s32 pad[3]; glbCtx = globalCtx; temp_a1 = &glbCtx->colChkCtx; - CollisionCheck_SetAC(glbCtx, temp_a1, unk_184); - CollisionCheck_SetAC(glbCtx, temp_a1, unk_1D0); - CollisionCheck_SetAC(glbCtx, temp_a1, unk_21C); + CollisionCheck_SetAC(glbCtx, temp_a1, unk_184_0); + CollisionCheck_SetAC(glbCtx, temp_a1, unk_184_1); + CollisionCheck_SetAC(glbCtx, temp_a1, unk_184_2); } s32 func_8097B610(DemoGj *this, GlobalContext *globalCtx) { - if (func_809789A4(this, globalCtx, &this->unk_184.base) != 0) { + if (func_809789A4(this, globalCtx, &this->unk_184[0].base) != 0) { return 1; } - if (func_809789A4(this, globalCtx, &this->unk_1D0.base) != 0) { + if (func_809789A4(this, globalCtx, &this->unk_184[1].base) != 0) { return 1; } - if (func_809789A4(this, globalCtx, &this->unk_21C.base) != 0) { + if (func_809789A4(this, globalCtx, &this->unk_184[2].base) != 0) { return 1; } return 0; @@ -1503,7 +1481,7 @@ void func_8097B8C4(DemoGj *this, GlobalContext *globalCtx) { void func_8097B8E8(DemoGj *this, GlobalContext *globalCtx) { func_80978FCC(this, globalCtx, 0x11, 0, NULL); - func_8097895C(this, globalCtx, &this->unk_184, &D_8097BE38); + func_8097895C(this, globalCtx, &this->unk_184[0], &D_8097BE38); } void func_8097B930(DemoGj *this, GlobalContext *globalCtx) { @@ -1538,7 +1516,7 @@ void func_8097B9BC(DemoGj *this, GlobalContext *globalCtx) { void func_8097BA48(DemoGj *this, GlobalContext *globalCtx) { Actor* actor = &this->dyna.actor; - ColliderCylinder *colCylinder = &this->unk_184; + ColliderCylinder *colCylinder = &this->unk_184[0]; Collider *collider = &colCylinder->base; CollisionCheckContext* colChkCtx = &globalCtx->colChkCtx; diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.h b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.h index 70613115cf..63cc84652e 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.h +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.h @@ -15,9 +15,7 @@ typedef struct DemoGj { /* 0x0178 */ Actor* ganon; /* 0x017C */ s32 unk_17C; /* 0x0180 */ s32 unk_180; - /* 0x0184 */ ColliderCylinder unk_184; - /* 0x01D0 */ ColliderCylinder unk_1D0; - /* 0x021C */ ColliderCylinder unk_21C; + /* 0x0184 */ ColliderCylinder unk_184[3]; /* 0x0268 */ s32 unk_268; /* 0x026C */ Vec3f unk_26C; } DemoGj; // size = 0x0278