diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_809789A4.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_809789A4.s deleted file mode 100644 index 4a3b994e04..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_809789A4.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_809789A4 -/* 00074 809789A4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00078 809789A8 AFA40018 */ sw $a0, 0x0018($sp) -/* 0007C 809789AC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00080 809789B0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00084 809789B4 0C00CD90 */ jal Actor_GetCollidedExplosive -/* 00088 809789B8 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 0008C 809789BC 10400003 */ beq $v0, $zero, .L809789CC -/* 00090 809789C0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00094 809789C4 10000002 */ beq $zero, $zero, .L809789D0 -/* 00098 809789C8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -.L809789CC: -/* 0009C 809789CC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L809789D0: -/* 000A0 809789D0 03E00008 */ jr $ra -/* 000A4 809789D4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979818.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979818.s deleted file mode 100644 index 499249453a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979818.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel func_80979818 -/* 00EE8 80979818 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00EEC 8097981C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00EF0 80979820 AFA5001C */ sw $a1, 0x001C($sp) -/* 00EF4 80979824 0C25E5F9 */ jal func_809797E4 -/* 00EF8 80979828 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 00EFC 8097982C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00F00 80979830 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00F04 80979834 03E00008 */ jr $ra -/* 00F08 80979838 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097983C.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097983C.s deleted file mode 100644 index 23bf25d683..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097983C.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel func_8097983C -/* 00F0C 8097983C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00F10 80979840 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00F14 80979844 AFA5001C */ sw $a1, 0x001C($sp) -/* 00F18 80979848 0C25E5F9 */ jal func_809797E4 -/* 00F1C 8097984C 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002 -/* 00F20 80979850 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00F24 80979854 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00F28 80979858 03E00008 */ jr $ra -/* 00F2C 8097985C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979F9C.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979F9C.s deleted file mode 100644 index 8f2e88f36d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979F9C.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_80979F9C -/* 0166C 80979F9C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01670 80979FA0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01674 80979FA4 AFA40018 */ sw $a0, 0x0018($sp) -/* 01678 80979FA8 0C25E5F9 */ jal func_809797E4 -/* 0167C 80979FAC 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 01680 80979FB0 10400003 */ beq $v0, $zero, .L80979FC0 -/* 01684 80979FB4 8FAF0018 */ lw $t7, 0x0018($sp) -/* 01688 80979FB8 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 0168C 80979FBC ADEE017C */ sw $t6, 0x017C($t7) ## 0000017C -.L80979FC0: -/* 01690 80979FC0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01694 80979FC4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01698 80979FC8 03E00008 */ jr $ra -/* 0169C 80979FCC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A0E4.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A0E4.s deleted file mode 100644 index 8442ad453e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A0E4.s +++ /dev/null @@ -1,21 +0,0 @@ -glabel func_8097A0E4 -/* 017B4 8097A0E4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 017B8 8097A0E8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 017BC 8097A0EC AFA40018 */ sw $a0, 0x0018($sp) -/* 017C0 8097A0F0 0C25E606 */ jal func_80979818 -/* 017C4 8097A0F4 AFA5001C */ sw $a1, 0x001C($sp) -/* 017C8 8097A0F8 10400009 */ beq $v0, $zero, .L8097A120 -/* 017CC 8097A0FC 8FA40018 */ lw $a0, 0x0018($sp) -/* 017D0 8097A100 0C25E618 */ jal func_80979860 -/* 017D4 8097A104 8FA5001C */ lw $a1, 0x001C($sp) -/* 017D8 8097A108 8FAF0018 */ lw $t7, 0x0018($sp) -/* 017DC 8097A10C 240E0008 */ addiu $t6, $zero, 0x0008 ## $t6 = 00000008 -/* 017E0 8097A110 24180009 */ addiu $t8, $zero, 0x0009 ## $t8 = 00000009 -/* 017E4 8097A114 ADEE0164 */ sw $t6, 0x0164($t7) ## 00000164 -/* 017E8 8097A118 8FB90018 */ lw $t9, 0x0018($sp) -/* 017EC 8097A11C AF380168 */ sw $t8, 0x0168($t9) ## 00000168 -.L8097A120: -/* 017F0 8097A120 8FBF0014 */ lw $ra, 0x0014($sp) -/* 017F4 8097A124 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 017F8 8097A128 03E00008 */ jr $ra -/* 017FC 8097A12C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A130.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A130.s deleted file mode 100644 index a4e9b31039..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A130.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097A130 -/* 01800 8097A130 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01804 8097A134 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01808 8097A138 0C25E60F */ jal func_8097983C -/* 0180C 8097A13C AFA40018 */ sw $a0, 0x0018($sp) -/* 01810 8097A140 50400004 */ beql $v0, $zero, .L8097A154 -/* 01814 8097A144 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01818 8097A148 0C00B55C */ jal Actor_Kill - -/* 0181C 8097A14C 8FA40018 */ lw $a0, 0x0018($sp) -/* 01820 8097A150 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097A154: -/* 01824 8097A154 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01828 8097A158 03E00008 */ jr $ra -/* 0182C 8097A15C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A36C.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A36C.s deleted file mode 100644 index 5570097964..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A36C.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097A36C -/* 01A3C 8097A36C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01A40 8097A370 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01A44 8097A374 0C25E60F */ jal func_8097983C -/* 01A48 8097A378 AFA40018 */ sw $a0, 0x0018($sp) -/* 01A4C 8097A37C 50400004 */ beql $v0, $zero, .L8097A390 -/* 01A50 8097A380 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01A54 8097A384 0C00B55C */ jal Actor_Kill - -/* 01A58 8097A388 8FA40018 */ lw $a0, 0x0018($sp) -/* 01A5C 8097A38C 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097A390: -/* 01A60 8097A390 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01A64 8097A394 03E00008 */ jr $ra -/* 01A68 8097A398 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A53C.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A53C.s deleted file mode 100644 index c00de61761..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A53C.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097A53C -/* 01C0C 8097A53C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01C10 8097A540 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01C14 8097A544 0C25E60F */ jal func_8097983C -/* 01C18 8097A548 AFA40018 */ sw $a0, 0x0018($sp) -/* 01C1C 8097A54C 50400004 */ beql $v0, $zero, .L8097A560 -/* 01C20 8097A550 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01C24 8097A554 0C00B55C */ jal Actor_Kill - -/* 01C28 8097A558 8FA40018 */ lw $a0, 0x0018($sp) -/* 01C2C 8097A55C 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097A560: -/* 01C30 8097A560 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01C34 8097A564 03E00008 */ jr $ra -/* 01C38 8097A568 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A70C.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A70C.s deleted file mode 100644 index f6d5bed47e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A70C.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097A70C -/* 01DDC 8097A70C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01DE0 8097A710 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01DE4 8097A714 0C25E60F */ jal func_8097983C -/* 01DE8 8097A718 AFA40018 */ sw $a0, 0x0018($sp) -/* 01DEC 8097A71C 50400004 */ beql $v0, $zero, .L8097A730 -/* 01DF0 8097A720 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01DF4 8097A724 0C00B55C */ jal Actor_Kill - -/* 01DF8 8097A728 8FA40018 */ lw $a0, 0x0018($sp) -/* 01DFC 8097A72C 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097A730: -/* 01E00 8097A730 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01E04 8097A734 03E00008 */ jr $ra -/* 01E08 8097A738 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A8DC.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A8DC.s deleted file mode 100644 index 35cc4db6f2..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A8DC.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097A8DC -/* 01FAC 8097A8DC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 01FB0 8097A8E0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 01FB4 8097A8E4 0C25E60F */ jal func_8097983C -/* 01FB8 8097A8E8 AFA40018 */ sw $a0, 0x0018($sp) -/* 01FBC 8097A8EC 50400004 */ beql $v0, $zero, .L8097A900 -/* 01FC0 8097A8F0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01FC4 8097A8F4 0C00B55C */ jal Actor_Kill - -/* 01FC8 8097A8F8 8FA40018 */ lw $a0, 0x0018($sp) -/* 01FCC 8097A8FC 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097A900: -/* 01FD0 8097A900 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 01FD4 8097A904 03E00008 */ jr $ra -/* 01FD8 8097A908 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AAAC.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AAAC.s deleted file mode 100644 index ceac2fb1dd..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AAAC.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097AAAC -/* 0217C 8097AAAC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 02180 8097AAB0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 02184 8097AAB4 0C25E60F */ jal func_8097983C -/* 02188 8097AAB8 AFA40018 */ sw $a0, 0x0018($sp) -/* 0218C 8097AABC 50400004 */ beql $v0, $zero, .L8097AAD0 -/* 02190 8097AAC0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 02194 8097AAC4 0C00B55C */ jal Actor_Kill - -/* 02198 8097AAC8 8FA40018 */ lw $a0, 0x0018($sp) -/* 0219C 8097AACC 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097AAD0: -/* 021A0 8097AAD0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 021A4 8097AAD4 03E00008 */ jr $ra -/* 021A8 8097AAD8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097ACE8.s b/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097ACE8.s deleted file mode 100644 index 2e21554c35..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097ACE8.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8097ACE8 -/* 023B8 8097ACE8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 023BC 8097ACEC AFBF0014 */ sw $ra, 0x0014($sp) -/* 023C0 8097ACF0 0C25E60F */ jal func_8097983C -/* 023C4 8097ACF4 AFA40018 */ sw $a0, 0x0018($sp) -/* 023C8 8097ACF8 50400004 */ beql $v0, $zero, .L8097AD0C -/* 023CC 8097ACFC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 023D0 8097AD00 0C00B55C */ jal Actor_Kill - -/* 023D4 8097AD04 8FA40018 */ lw $a0, 0x0018($sp) -/* 023D8 8097AD08 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097AD0C: -/* 023DC 8097AD0C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 023E0 8097AD10 03E00008 */ jr $ra -/* 023E4 8097AD14 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 4df5831e6d..c88f13035b 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -238,17 +238,12 @@ void func_8097895C(DemoGj* this, GlobalContext* globalCtx, ColliderCylinder* arg Collider_SetCylinderType1(globalCtx, arg2, &this->dyna.actor, arg3); } -#ifdef NON_MATCHING -/*s32 func_809789A4(s32 arg0, GlobalContext* globalCtx, Collider* collider) { +s32 func_809789A4(s32 arg0, GlobalContext* globalCtx, Collider* collider) { if (Actor_GetCollidedExplosive(globalCtx, collider) != 0) { return 1; } return 0; -}*/ -#else -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_809789A4.s") -#endif - +} void func_809789D8(DemoGj* this, GlobalContext* globalCtx) { s32 temp_v0; @@ -537,43 +532,169 @@ void func_8097923C(DemoGj *this, GlobalContext *globalCtx) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097923C.s") #endif -/* -s32 func_809797E4(void* arg0, s32 arg1) { - void *temp_v0; - temp_v0 = this->arg0; - if ((temp_v0 != 0) && ((arg1 & 0xFF) == arg0->unk314)) { +s32 func_809797E4(DemoGj *this, s32 arg1); +#if NON_MATCHING +s32 func_809797E4(DemoGj *this, s32 arg1) { + BossGanon2 *ganon = this->ganon; + arg1 &= 0xFF; + + //if ((ganon != 0) && ((arg1 & 0xFF) == ganon->unk314)) { + if ((ganon != NULL) && (arg1 == *((u8 *)ganon + 0x314))) { return 1; } return 0; } -*/ +#else #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_809797E4.s") +#endif -/* -s32 func_80979818(? arg1) { - func_809797E4(1); +s32 func_80979818(DemoGj *this, GlobalContext* globalCtx) { + return func_809797E4(this, 1); } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979818.s") -/* -s32 func_8097983C(? arg1) { - func_809797E4(2); +s32 func_8097983C(DemoGj *this, GlobalContext* globalCtx) { + return func_809797E4(this, 2); } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097983C.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979860.s") +void func_80979860(DemoGj *this, GlobalContext *globalCtx); +#ifdef NON_MATCHING +void func_80979860(DemoGj *this, GlobalContext *globalCtx) { + f32 sp24; + f32 sp20; + Actor *temp_v0; + Actor *temp_v1_8; + PosRot *temp_v0_2; + Vec3s *temp_v1; + Vec3s *temp_v1_2; + Vec3s *temp_v1_3; + Vec3s *temp_v1_4; + Vec3s *temp_v1_5; + Vec3s *temp_v1_6; + Vec3s *temp_v1_7; + f32 temp_f10; + f32 temp_f12; + f32 temp_f12_2; + f32 temp_f14; + f32 temp_f14_2; + f32 temp_f4; + f32 temp_f6; + f32 temp_f8; + u32 temp_t6; -/* -void func_80979F9C(void *arg0) { - if (func_809797E4(3) != 0) { - arg0->unk17C = 1; + temp_v0 = this->ganon; + if (temp_v0 != 0) { + temp_f4 = this->dyna.actor.world.pos.x; + temp_f6 = temp_v0->world.pos.x; + temp_f8 = this->dyna.actor.world.pos.z; + temp_f10 = temp_v0->world.pos.z; + temp_f12 = temp_f4 - temp_f6; + temp_f14 = temp_f8 - temp_f10; + sp24 = temp_f12; + sp20 = temp_f14; + temp_t6 = func_80978950(this) - 8; + switch (temp_t6) { + case 0: + temp_v1 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2608] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2609] + 40.0f; + temp_v1->x = gGameInfo->data[2610]; + temp_v1->y = gGameInfo->data[2611] + 0x3E8; + temp_v1->z = gGameInfo->data[2612] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2613] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2614] * 0.01f) + -5.0f; + break; + case 1: + temp_v1_2 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2621] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2622] + 40.0f; + temp_v1_2->x = gGameInfo->data[2623]; + temp_v1_2->y = gGameInfo->data[2624] + 0x3E8; + temp_v1_2->z = gGameInfo->data[2625] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2626] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2627] * 0.01f) + -5.0f; + break; + case 2: + temp_v1_3 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2634] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2635] + 40.0f; + temp_v1_3->x = gGameInfo->data[2636]; + temp_v1_3->y = gGameInfo->data[2637] + 0x3E8; + temp_v1_3->z = gGameInfo->data[2638] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2639] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2640] * 0.01f) + -5.0f; + break; + case 3: + temp_v1_4 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2647] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2648] + 40.0f; + temp_v1_4->x = gGameInfo->data[2649]; + temp_v1_4->y = gGameInfo->data[2650] + 0x3E8; + temp_v1_4->z = gGameInfo->data[2651] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2652] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2653] * 0.01f) + -5.0f; + break; + case 4: + temp_v1_5 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2660] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2661] + 40.0f; + temp_v1_5->x = gGameInfo->data[2662]; + temp_v1_5->y = gGameInfo->data[2663] + 0x3E8; + temp_v1_5->z = gGameInfo->data[2664] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2665] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2666] * 0.01f) + -5.0f; + break; + case 5: + temp_v1_6 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2673] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2674] + 40.0f; + temp_v1_6->x = gGameInfo->data[2675]; + temp_v1_6->y = gGameInfo->data[2676] + 0x3E8; + temp_v1_6->z = gGameInfo->data[2677] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2678] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2679] * 0.01f) + -5.0f; + break; + case 6: + temp_v1_7 = &this->unk_172; + this->dyna.actor.speedXZ = (f32) gGameInfo->data[2686] + 10.0f; + this->dyna.actor.velocity.y = (f32) gGameInfo->data[2687] + 70.0f; + temp_v1_7->x = gGameInfo->data[2607]; + temp_v1_7->y = gGameInfo->data[2606] + 0x3E8; + temp_v1_7->z = gGameInfo->data[2605] + 0xBB8; + this->dyna.actor.minVelocityY = ((f32) gGameInfo->data[2604] * 0.01f) + -29.0f; + this->dyna.actor.gravity = ((f32) gGameInfo->data[2603] * 0.01f) + -5.0f; + break; + default: + sp20 = temp_f14; + sp24 = temp_f12; + osSyncPrintf((const char *) "\x1b[31mDemo_Gj_Setup_Move_common : そんなarg_dataには対応していない = %d\n\x1b[m", this->dyna.actor.params); + break; + } + + if (((temp_f4 - temp_f6) == 0.0f) && ((temp_f8 - temp_f10) == 0.0f)) { + temp_v1_8 = globalCtx->actorCtx.actorLists[2].head; + temp_v0_2 = &this->dyna.actor.world; + temp_f12_2 = temp_v1_8->world.pos.x - temp_v0_2->pos.x; + temp_f14_2 = temp_v1_8->world.pos.z - temp_v0_2->pos.z; + if (temp_f12_2 != 0.0f || temp_f14_2 != 0.0f) { + this->dyna.actor.world.rot.y = (s16) (s32) (Math_FAtan2F(temp_f12_2, temp_f14_2) * 10430.378f); + return; + } + } else { + this->dyna.actor.world.rot.y = (s16) (s32) (Math_FAtan2F(temp_f4 - temp_f6, temp_f8 - temp_f10) * 10430.378f); + } } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979F9C.s") +#else +#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_80979860.s") +#endif + +void func_80979F9C(DemoGj* this){ + if (func_809797E4(this, 3) != 0) { + this->unk_17C = 1; + } + +} void func_80979FD0(DemoGj* this, GlobalContext* globalCtx) { func_80978FCC(this, globalCtx, 1, 2, &D_06001F70); @@ -616,30 +737,19 @@ void func_8097A07C(DemoGj *this, GlobalContext *globalCtx) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A07C.s") -void func_8097A0E4(DemoGj *this, GlobalContext *globalCtx); -//#ifdef NON_MATCHING -/* void func_8097A0E4(DemoGj *this, GlobalContext *globalCtx) { - if (func_80979818() != 0) { + if (func_80979818(this, globalCtx) != 0) { func_80979860(this, globalCtx); this->unk_164 = 8; this->unk_168 = 9; } } -*/ -//#else -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A0E4.s") -//#endif -void func_8097A130(DemoGj* this, GlobalContext* globalCtx); -/* -void func_8097A130(DemoGj *this) { - if (func_8097983C() != 0) { +void func_8097A130(DemoGj *this, GlobalContext* globalCtx) { + if (func_8097983C(this, globalCtx) != 0) { Actor_Kill(&this->dyna.actor); } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A130.s") void func_8097A160(DemoGj* this, GlobalContext* globalCtx) { func_80978EE4(this, globalCtx); @@ -697,8 +807,8 @@ s32 func_8097A2B4(void *arg0, GlobalContext* globalCtx) { void func_8097A320(DemoGj* this, GlobalContext* globalCtx); /* -void func_8097A320(DemoGj* this, s32 arg1) { - if (func_80979818() != 0) { +void func_8097A320(DemoGj* this, GlobalContext* globalCtx) { + if (func_80979818(this, globalCtx) != 0) { func_80979860(this, arg1); this->unk_164 = 9; this->unk_168 = 0xA; @@ -707,14 +817,11 @@ void func_8097A320(DemoGj* this, s32 arg1) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A320.s") -void func_8097A36C(DemoGj* this, GlobalContext* globalCtx); -/* void func_8097A36C(DemoGj* this, GlobalContext* globalCtx) { - if (func_8097983C() != 0) { + if (func_8097983C(this, globalCtx) != 0) { Actor_Kill(&this->dyna.actor); } -}*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A36C.s") +} void func_8097A39C(DemoGj* this, GlobalContext* globalCtx) { func_80978EE4(this, globalCtx); @@ -763,15 +870,11 @@ void func_8097A4F0(DemoGj* this, s32 arg1) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A4F0.s") -void func_8097A53C(DemoGj* this, GlobalContext* globalCtx); -/* -void func_8097A53C(DemoGj* this) { - if (func_8097983C() != 0) { +void func_8097A53C(DemoGj* this, GlobalContext* globalCtx) { + if (func_8097983C(this, globalCtx) != 0) { Actor_Kill(&this->dyna.actor); } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A53C.s") void func_8097A56C(DemoGj* this, GlobalContext* globalCtx) { func_80978EE4(this, globalCtx); @@ -820,15 +923,11 @@ void func_8097A6C0(DemoGj* this, s32 arg1) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A6C0.s") -void func_8097A70C(DemoGj* this, GlobalContext* globalCtx); -/* -void func_8097A70C(DemoGj* this, s32 arg1) { - if (func_8097983C() != 0) { +void func_8097A70C(DemoGj* this, GlobalContext* globalCtx) { + if (func_8097983C(this, globalCtx) != 0) { Actor_Kill(&this->dyna.actor); } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A70C.s") void func_8097A73C(DemoGj* this, GlobalContext* globalCtx) { func_80978EE4(this, globalCtx); @@ -877,15 +976,11 @@ void func_8097A890(DemoGj *this, GlobalContext *globalCtx) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A890.s") -void func_8097A8DC(DemoGj *this, GlobalContext *globalCtx); -/* void func_8097A8DC(DemoGj *this, GlobalContext *globalCtx) { - if (func_8097983C() != 0) { - Actor_Kill((Actor *) this); + if (func_8097983C(this, globalCtx) != 0) { + Actor_Kill(&this->dyna.actor); } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097A8DC.s") void func_8097A90C(DemoGj *this, GlobalContext *globalCtx) { func_80978EE4(this, globalCtx); @@ -912,7 +1007,7 @@ void func_8097A9B4(DemoGj *this, GlobalContext *globalCtx) { void func_8097A9E4(DemoGj *this, GlobalContext *globalCtx); /* void func_8097A9E4(DemoGj *this, GlobalContext *globalCtx) { - Actor_MoveForward((Actor *) this); + Actor_MoveForward(&this->dyna.actor); this->unk_16C.x = this->unk_16C.x + gGameInfo->data[2675]; this->unk_16C.y = this->unk_16C.y + (gGameInfo->data[2676] + 0x3E8); this->unk_16C.z = this->unk_16C.z + (gGameInfo->data[2677] + 0xBB8); @@ -933,15 +1028,11 @@ void func_8097AA60(DemoGj *this, GlobalContext *globalCtx) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AA60.s") -void func_8097AAAC(DemoGj *this, GlobalContext *globalCtx); -/* void func_8097AAAC(DemoGj *this, GlobalContext *globalCtx) { - if (func_8097983C() != 0) { - Actor_Kill((Actor *) this); + if (func_8097983C(this, globalCtx) != 0) { + Actor_Kill(&this->dyna.actor); } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AAAC.s") void func_8097AADC(DemoGj *this, GlobalContext *globalCtx) { func_80978EE4(this, globalCtx); @@ -968,7 +1059,7 @@ void func_8097AB84(DemoGj *this, GlobalContext *globalCtx) { void func_8097ABB4(DemoGj *this, GlobalContext *globalCtx); /* void func_8097ABB4(DemoGj *this, GlobalContext *globalCtx) { - Actor_MoveForward((Actor *) this); + Actor_MoveForward(&this->dyna.actor); this->unk_16C.x = this->unk_16C.x + gGameInfo->data[2607]; this->unk_16C.y = this->unk_16C.y + (gGameInfo->data[2606] + 0x3E8); this->unk_16C.z = this->unk_16C.z + (gGameInfo->data[2605] + 0xBB8); @@ -1002,15 +1093,11 @@ void func_8097AC9C(DemoGj *this, GlobalContext *globalCtx) { */ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097AC9C.s") -void func_8097ACE8(DemoGj *this, GlobalContext *globalCtx); -/* void func_8097ACE8(DemoGj *this, GlobalContext *globalCtx) { - if (func_8097983C() != 0) { - Actor_Kill((Actor *) this); + if (func_8097983C(this, globalCtx) != 0) { + Actor_Kill(&this->dyna.actor); } } -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gj/func_8097ACE8.s") void func_8097AD18(DemoGj *this, GlobalContext *globalCtx) { func_80978EE4(this, globalCtx); @@ -1068,7 +1155,7 @@ void func_8097B128(DemoGj *this, GlobalContext *globalCtx) { Vec3f *temp_v0; temp_a0 = this; - if (func_8097983C() != 0) { + if (func_8097983C(this, globalCtx) != 0) { this = temp_a0; func_80978F60(temp_a0, globalCtx, &D_06001F70); this->unk_164 = 0x12; @@ -1092,14 +1179,14 @@ void func_8097B22C(DemoGj *this, GlobalContext *globalCtx) { ? sp24; if (func_809797E4(4) != 0) { - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); } else if (func_8097B1B4(this, globalCtx) != 0) { sp30.unk0 = (s32) D_8097BEAC.unk0; sp30.unk4 = (s32) D_8097BEAC.unk4; sp30.unk8 = (s32) D_8097BEAC.unk8; func_80978B90(this, globalCtx); func_8097B0EC(this, globalCtx, &sp30); - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); } else if (this->unk_268 != 0) { sp24.unk0 = (s32) this->unk26C; sp24.unk4 = (s32) this->unk270; @@ -1107,7 +1194,7 @@ void func_8097B22C(DemoGj *this, GlobalContext *globalCtx) { sp28 = 0.0f; func_80978B90(this, globalCtx); func_8097B0EC(this, globalCtx, &sp24); - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); } func_8097AEE8(this, globalCtx); func_8097B080(this, globalCtx); @@ -1154,7 +1241,7 @@ void func_8097B6C4(DemoGj *this, GlobalContext *globalCtx) { Vec3f *temp_v0; temp_a0 = this; - if (func_8097983C() != 0) { + if (func_8097983C(this, globalCtx) != 0) { this = temp_a0; func_80978F60(temp_a0, globalCtx, &D_06002448); this->unk_164 = 0x13; @@ -1176,14 +1263,14 @@ void func_8097B750(DemoGj *this, GlobalContext *globalCtx) { ? sp24; if (func_809797E4(4) != 0) { - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); } else if (func_8097B610(this, globalCtx) != 0) { sp30.unk0 = (s32) D_8097BEB8.unk0; sp30.unk4 = (s32) D_8097BEB8.unk4; sp30.unk8 = (s32) D_8097BEB8.unk8; func_80978B90(this, globalCtx); func_8097B688(this, globalCtx, &sp30); - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); } else if (this->unk_268 != 0) { sp24.unk0 = (s32) this->unk26C; sp24.unk4 = (s32) this->unk270; @@ -1191,7 +1278,7 @@ void func_8097B750(DemoGj *this, GlobalContext *globalCtx) { sp28 = 0.0f; func_80978B90(this, globalCtx); func_8097B688(this, globalCtx, &sp24); - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); } func_8097B450(this, globalCtx); func_8097B5A4(this, globalCtx); @@ -1230,7 +1317,7 @@ void func_8097B9BC(DemoGj *this, GlobalContext *globalCtx) { Vec3f *temp_v0; temp_a0 = this; - if (func_8097983C() != 0) { + if (func_8097983C(this, globalCtx) != 0) { this = temp_a0; func_80978F60(temp_a0, globalCtx, (CollisionHeader *) &D_06003AF0); this->unk_164 = 0x14; @@ -1254,7 +1341,7 @@ void func_8097BA48(DemoGj *this, GlobalContext *globalCtx) { ColliderCylinder *phi_s2; if (func_809797E4(4) != 0) { - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); phi_s2 = &this->unk_184; } else { temp_s2 = &this->unk_184; @@ -1264,7 +1351,7 @@ void func_8097BA48(DemoGj *this, GlobalContext *globalCtx) { sp3C.unk8 = (s32) D_8097BEC4.unk8; func_80978B90(this, globalCtx); func_8097B93C(this, globalCtx, &sp3C); - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); phi_s2 = temp_s2; } else { phi_s2 = temp_s2; @@ -1275,12 +1362,12 @@ void func_8097BA48(DemoGj *this, GlobalContext *globalCtx) { sp34 = 0.0f; func_80978B90(this, globalCtx); func_8097B93C(this, globalCtx, &sp30); - Actor_Kill((Actor *) this); + Actor_Kill(&this->dyna.actor); phi_s2 = temp_s2; } } } - Collider_UpdateCylinder((Actor *) this, phi_s2); + Collider_UpdateCylinder(&this->dyna.actor, phi_s2); CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, (Collider *) phi_s2); } */ 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 90d16c01e4..4470388ff1 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.h +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.h @@ -13,7 +13,7 @@ typedef struct DemoGj { /* 0x016C */ Vec3s unk_16C; // x,y,z? /* 0x0172 */ Vec3s unk_172; /* 0x0178 */ Actor* ganon; - /* 0x017C */ char unk_17C[0x04]; + /* 0x017C */ s32 unk_17C; /* 0x0180 */ s32 unk_180; /* 0x0184 */ ColliderCylinder unk_184; /* 0x01D0 */ ColliderCylinder unk_1D0;