diff --git a/asm/melee/it/items/itlgun.s b/asm/melee/it/items/itlgun.s deleted file mode 100644 index 880e65dff7..0000000000 --- a/asm/melee/it/items/itlgun.s +++ /dev/null @@ -1,399 +0,0 @@ -.include "macros.inc" - -.section .text - -.global it_8028E738 -it_8028E738: -/* 8028E738 0028B318 7C 08 02 A6 */ mflr r0 -/* 8028E73C 0028B31C 90 01 00 04 */ stw r0, 4(r1) -/* 8028E740 0028B320 38 00 00 00 */ li r0, 0 -/* 8028E744 0028B324 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E748 0028B328 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 8028E74C 0028B32C 80 85 00 C4 */ lwz r4, 0xc4(r5) -/* 8028E750 0028B330 80 84 00 04 */ lwz r4, 4(r4) -/* 8028E754 0028B334 80 84 00 00 */ lwz r4, 0(r4) -/* 8028E758 0028B338 90 85 0D 4C */ stw r4, 0xd4c(r5) -/* 8028E75C 0028B33C 90 05 0D D4 */ stw r0, 0xdd4(r5) -/* 8028E760 0028B340 48 00 01 01 */ bl it_8028E860 -/* 8028E764 0028B344 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E768 0028B348 38 21 00 08 */ addi r1, r1, 8 -/* 8028E76C 0028B34C 7C 08 03 A6 */ mtlr r0 -/* 8028E770 0028B350 4E 80 00 20 */ blr - -.global it_8028E774 -it_8028E774: -/* 8028E774 0028B354 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 8028E778 0028B358 80 63 00 C4 */ lwz r3, 0xc4(r3) -/* 8028E77C 0028B35C 80 63 00 04 */ lwz r3, 4(r3) -/* 8028E780 0028B360 C0 03 00 04 */ lfs f0, 4(r3) -/* 8028E784 0028B364 D0 04 00 00 */ stfs f0, 0(r4) -/* 8028E788 0028B368 C0 03 00 08 */ lfs f0, 8(r3) -/* 8028E78C 0028B36C D0 04 00 04 */ stfs f0, 4(r4) -/* 8028E790 0028B370 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8028E794 0028B374 D0 04 00 08 */ stfs f0, 8(r4) -/* 8028E798 0028B378 4E 80 00 20 */ blr - -.global it_8028E79C -it_8028E79C: -/* 8028E79C 0028B37C 7C 08 02 A6 */ mflr r0 -/* 8028E7A0 0028B380 90 01 00 04 */ stw r0, 4(r1) -/* 8028E7A4 0028B384 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E7A8 0028B388 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 8028E7AC 0028B38C 80 65 0D 4C */ lwz r3, 0xd4c(r5) -/* 8028E7B0 0028B390 2C 03 00 00 */ cmpwi r3, 0 -/* 8028E7B4 0028B394 40 81 00 0C */ ble .L_8028E7C0 -/* 8028E7B8 0028B398 38 03 FF FF */ addi r0, r3, -1 -/* 8028E7BC 0028B39C 90 05 0D 4C */ stw r0, 0xd4c(r5) -.L_8028E7C0: -/* 8028E7C0 0028B3A0 80 65 05 18 */ lwz r3, 0x518(r5) -/* 8028E7C4 0028B3A4 48 00 99 A5 */ bl it_80298168 -/* 8028E7C8 0028B3A8 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E7CC 0028B3AC 38 21 00 08 */ addi r1, r1, 8 -/* 8028E7D0 0028B3B0 7C 08 03 A6 */ mtlr r0 -/* 8028E7D4 0028B3B4 4E 80 00 20 */ blr - -.global it_8028E7D8 -it_8028E7D8: -/* 8028E7D8 0028B3B8 7C 08 02 A6 */ mflr r0 -/* 8028E7DC 0028B3BC 90 01 00 04 */ stw r0, 4(r1) -/* 8028E7E0 0028B3C0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8028E7E4 0028B3C4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8028E7E8 0028B3C8 7C 7F 1B 78 */ mr r31, r3 -/* 8028E7EC 0028B3CC C0 02 D0 88 */ lfs f0, it_804DCA68@sda21(r2) -/* 8028E7F0 0028B3D0 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 8028E7F4 0028B3D4 D0 04 00 48 */ stfs f0, 0x48(r4) -/* 8028E7F8 0028B3D8 D0 04 00 44 */ stfs f0, 0x44(r4) -/* 8028E7FC 0028B3DC D0 04 00 40 */ stfs f0, 0x40(r4) -/* 8028E800 0028B3E0 4B FD CB 91 */ bl it_8026B390 -/* 8028E804 0028B3E4 38 7F 00 00 */ addi r3, r31, 0 -/* 8028E808 0028B3E8 38 80 00 00 */ li r4, 0 -/* 8028E80C 0028B3EC 38 A0 00 02 */ li r5, 2 -/* 8028E810 0028B3F0 4B FD A6 4D */ bl Item_80268E5C -/* 8028E814 0028B3F4 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8028E818 0028B3F8 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8028E81C 0028B3FC 38 21 00 18 */ addi r1, r1, 0x18 -/* 8028E820 0028B400 7C 08 03 A6 */ mtlr r0 -/* 8028E824 0028B404 4E 80 00 20 */ blr -.global it_8028E828 -it_8028E828: -/* 8028E828 0028B408 38 60 00 00 */ li r3, 0 -/* 8028E82C 0028B40C 4E 80 00 20 */ blr -.global it_8028E830 -it_8028E830: -/* 8028E830 0028B410 4E 80 00 20 */ blr -.global it_8028E834 -it_8028E834: -/* 8028E834 0028B414 7C 08 02 A6 */ mflr r0 -/* 8028E838 0028B418 3C 80 80 29 */ lis r4, it_8028E860@ha -/* 8028E83C 0028B41C 90 01 00 04 */ stw r0, 4(r1) -/* 8028E840 0028B420 38 84 E8 60 */ addi r4, r4, it_8028E860@l -/* 8028E844 0028B424 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E848 0028B428 4B FD ED E5 */ bl it_8026D62C -/* 8028E84C 0028B42C 38 60 00 00 */ li r3, 0 -/* 8028E850 0028B430 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E854 0028B434 38 21 00 08 */ addi r1, r1, 8 -/* 8028E858 0028B438 7C 08 03 A6 */ mtlr r0 -/* 8028E85C 0028B43C 4E 80 00 20 */ blr - -.global it_8028E860 -it_8028E860: -/* 8028E860 0028B440 7C 08 02 A6 */ mflr r0 -/* 8028E864 0028B444 38 80 00 01 */ li r4, 1 -/* 8028E868 0028B448 90 01 00 04 */ stw r0, 4(r1) -/* 8028E86C 0028B44C 38 A0 00 02 */ li r5, 2 -/* 8028E870 0028B450 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E874 0028B454 4B FD A5 E9 */ bl Item_80268E5C -/* 8028E878 0028B458 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E87C 0028B45C 38 21 00 08 */ addi r1, r1, 8 -/* 8028E880 0028B460 7C 08 03 A6 */ mtlr r0 -/* 8028E884 0028B464 4E 80 00 20 */ blr -.global it_8028E888 -it_8028E888: -/* 8028E888 0028B468 38 60 00 00 */ li r3, 0 -/* 8028E88C 0028B46C 4E 80 00 20 */ blr -.global it_8028E890 -it_8028E890: -/* 8028E890 0028B470 7C 08 02 A6 */ mflr r0 -/* 8028E894 0028B474 90 01 00 04 */ stw r0, 4(r1) -/* 8028E898 0028B478 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E89C 0028B47C 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 8028E8A0 0028B480 80 84 00 CC */ lwz r4, 0xcc(r4) -/* 8028E8A4 0028B484 C0 24 00 10 */ lfs f1, 0x10(r4) -/* 8028E8A8 0028B488 C0 44 00 14 */ lfs f2, 0x14(r4) -/* 8028E8AC 0028B48C 4B FE 3F B5 */ bl it_80272860 -/* 8028E8B0 0028B490 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E8B4 0028B494 38 21 00 08 */ addi r1, r1, 8 -/* 8028E8B8 0028B498 7C 08 03 A6 */ mtlr r0 -/* 8028E8BC 0028B49C 4E 80 00 20 */ blr -.global it_8028E8C0 -it_8028E8C0: -/* 8028E8C0 0028B4A0 7C 08 02 A6 */ mflr r0 -/* 8028E8C4 0028B4A4 90 01 00 04 */ stw r0, 4(r1) -/* 8028E8C8 0028B4A8 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E8CC 0028B4AC 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 8028E8D0 0028B4B0 80 04 0D 4C */ lwz r0, 0xd4c(r4) -/* 8028E8D4 0028B4B4 2C 00 00 00 */ cmpwi r0, 0 -/* 8028E8D8 0028B4B8 41 82 00 18 */ beq .L_8028E8F0 -/* 8028E8DC 0028B4BC 3C 80 80 29 */ lis r4, it_8028E7D8@ha -/* 8028E8E0 0028B4C0 38 84 E7 D8 */ addi r4, r4, it_8028E7D8@l -/* 8028E8E4 0028B4C4 4B FD F8 79 */ bl it_8026E15C -/* 8028E8E8 0028B4C8 38 60 00 00 */ li r3, 0 -/* 8028E8EC 0028B4CC 48 00 00 08 */ b .L_8028E8F4 -.L_8028E8F0: -/* 8028E8F0 0028B4D0 4B FD F6 45 */ bl it_8026DF34 -.L_8028E8F4: -/* 8028E8F4 0028B4D4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E8F8 0028B4D8 38 21 00 08 */ addi r1, r1, 8 -/* 8028E8FC 0028B4DC 7C 08 03 A6 */ mtlr r0 -/* 8028E900 0028B4E0 4E 80 00 20 */ blr - -.global it_8028E904 -it_8028E904: -/* 8028E904 0028B4E4 7C 08 02 A6 */ mflr r0 -/* 8028E908 0028B4E8 38 80 00 02 */ li r4, 2 -/* 8028E90C 0028B4EC 90 01 00 04 */ stw r0, 4(r1) -/* 8028E910 0028B4F0 38 A0 00 02 */ li r5, 2 -/* 8028E914 0028B4F4 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E918 0028B4F8 4B FD A5 45 */ bl Item_80268E5C -/* 8028E91C 0028B4FC 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E920 0028B500 38 21 00 08 */ addi r1, r1, 8 -/* 8028E924 0028B504 7C 08 03 A6 */ mtlr r0 -/* 8028E928 0028B508 4E 80 00 20 */ blr -.global it_8028E92C -it_8028E92C: -/* 8028E92C 0028B50C 38 60 00 00 */ li r3, 0 -/* 8028E930 0028B510 4E 80 00 20 */ blr -.global it_8028E934 -it_8028E934: -/* 8028E934 0028B514 4E 80 00 20 */ blr - -.global it_8028E938 -it_8028E938: -/* 8028E938 0028B518 7C 08 02 A6 */ mflr r0 -/* 8028E93C 0028B51C 38 A0 00 02 */ li r5, 2 -/* 8028E940 0028B520 90 01 00 04 */ stw r0, 4(r1) -/* 8028E944 0028B524 38 00 00 28 */ li r0, 0x28 -/* 8028E948 0028B528 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E94C 0028B52C 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 8028E950 0028B530 90 04 0D D4 */ stw r0, 0xdd4(r4) -/* 8028E954 0028B534 38 80 00 03 */ li r4, 3 -/* 8028E958 0028B538 4B FD A5 05 */ bl Item_80268E5C -/* 8028E95C 0028B53C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E960 0028B540 38 21 00 08 */ addi r1, r1, 8 -/* 8028E964 0028B544 7C 08 03 A6 */ mtlr r0 -/* 8028E968 0028B548 4E 80 00 20 */ blr -.global it_8028E96C -it_8028E96C: -/* 8028E96C 0028B54C 7C 08 02 A6 */ mflr r0 -/* 8028E970 0028B550 90 01 00 04 */ stw r0, 4(r1) -/* 8028E974 0028B554 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E978 0028B558 80 A3 00 2C */ lwz r5, 0x2c(r3) -/* 8028E97C 0028B55C 80 85 0D D4 */ lwz r4, 0xdd4(r5) -/* 8028E980 0028B560 38 04 FF FF */ addi r0, r4, -1 -/* 8028E984 0028B564 90 05 0D D4 */ stw r0, 0xdd4(r5) -/* 8028E988 0028B568 80 05 0D D4 */ lwz r0, 0xdd4(r5) -/* 8028E98C 0028B56C 2C 00 00 00 */ cmpwi r0, 0 -/* 8028E990 0028B570 41 81 00 10 */ bgt .L_8028E9A0 -/* 8028E994 0028B574 38 80 00 02 */ li r4, 2 -/* 8028E998 0028B578 38 A0 00 02 */ li r5, 2 -/* 8028E99C 0028B57C 4B FD A4 C1 */ bl Item_80268E5C -.L_8028E9A0: -/* 8028E9A0 0028B580 38 60 00 00 */ li r3, 0 -/* 8028E9A4 0028B584 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E9A8 0028B588 38 21 00 08 */ addi r1, r1, 8 -/* 8028E9AC 0028B58C 7C 08 03 A6 */ mtlr r0 -/* 8028E9B0 0028B590 4E 80 00 20 */ blr -.global it_8028E9B4 -it_8028E9B4: -/* 8028E9B4 0028B594 4E 80 00 20 */ blr - -.global it_8028E9B8 -it_8028E9B8: -/* 8028E9B8 0028B598 7C 08 02 A6 */ mflr r0 -/* 8028E9BC 0028B59C 38 80 00 04 */ li r4, 4 -/* 8028E9C0 0028B5A0 90 01 00 04 */ stw r0, 4(r1) -/* 8028E9C4 0028B5A4 38 A0 00 06 */ li r5, 6 -/* 8028E9C8 0028B5A8 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E9CC 0028B5AC 4B FD A4 91 */ bl Item_80268E5C -/* 8028E9D0 0028B5B0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E9D4 0028B5B4 38 21 00 08 */ addi r1, r1, 8 -/* 8028E9D8 0028B5B8 7C 08 03 A6 */ mtlr r0 -/* 8028E9DC 0028B5BC 4E 80 00 20 */ blr - -.global it_8028E9E0 -it_8028E9E0: -/* 8028E9E0 0028B5C0 7C 08 02 A6 */ mflr r0 -/* 8028E9E4 0028B5C4 38 80 00 04 */ li r4, 4 -/* 8028E9E8 0028B5C8 90 01 00 04 */ stw r0, 4(r1) -/* 8028E9EC 0028B5CC 38 A0 00 06 */ li r5, 6 -/* 8028E9F0 0028B5D0 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028E9F4 0028B5D4 4B FD A4 69 */ bl Item_80268E5C -/* 8028E9F8 0028B5D8 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028E9FC 0028B5DC 38 21 00 08 */ addi r1, r1, 8 -/* 8028EA00 0028B5E0 7C 08 03 A6 */ mtlr r0 -/* 8028EA04 0028B5E4 4E 80 00 20 */ blr -.global it_8028EA08 -it_8028EA08: -/* 8028EA08 0028B5E8 7C 08 02 A6 */ mflr r0 -/* 8028EA0C 0028B5EC 90 01 00 04 */ stw r0, 4(r1) -/* 8028EA10 0028B5F0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8028EA14 0028B5F4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8028EA18 0028B5F8 7C 7F 1B 78 */ mr r31, r3 -/* 8028EA1C 0028B5FC 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 8028EA20 0028B600 80 84 00 CC */ lwz r4, 0xcc(r4) -/* 8028EA24 0028B604 C0 24 00 10 */ lfs f1, 0x10(r4) -/* 8028EA28 0028B608 C0 44 00 14 */ lfs f2, 0x14(r4) -/* 8028EA2C 0028B60C 4B FE 3E 35 */ bl it_80272860 -/* 8028EA30 0028B610 80 8D B6 88 */ lwz r4, it_804D6D28@sda21(r13) -/* 8028EA34 0028B614 7F E3 FB 78 */ mr r3, r31 -/* 8028EA38 0028B618 C0 24 00 68 */ lfs f1, 0x68(r4) -/* 8028EA3C 0028B61C 4B FE 5C 1D */ bl it_80274658 -/* 8028EA40 0028B620 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8028EA44 0028B624 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8028EA48 0028B628 38 21 00 18 */ addi r1, r1, 0x18 -/* 8028EA4C 0028B62C 7C 08 03 A6 */ mtlr r0 -/* 8028EA50 0028B630 4E 80 00 20 */ blr - -.global it_8028EA54 -it_8028EA54: -/* 8028EA54 0028B634 7C 08 02 A6 */ mflr r0 -/* 8028EA58 0028B638 90 01 00 04 */ stw r0, 4(r1) -/* 8028EA5C 0028B63C 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EA60 0028B640 4B FE 43 51 */ bl itColl_BounceOffVictim -/* 8028EA64 0028B644 38 60 00 00 */ li r3, 0 -/* 8028EA68 0028B648 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EA6C 0028B64C 38 21 00 08 */ addi r1, r1, 8 -/* 8028EA70 0028B650 7C 08 03 A6 */ mtlr r0 -/* 8028EA74 0028B654 4E 80 00 20 */ blr - -.global it_8028EA78 -it_8028EA78: -/* 8028EA78 0028B658 7C 08 02 A6 */ mflr r0 -/* 8028EA7C 0028B65C 90 01 00 04 */ stw r0, 4(r1) -/* 8028EA80 0028B660 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EA84 0028B664 4B FE 43 2D */ bl itColl_BounceOffVictim -/* 8028EA88 0028B668 38 60 00 00 */ li r3, 0 -/* 8028EA8C 0028B66C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EA90 0028B670 38 21 00 08 */ addi r1, r1, 8 -/* 8028EA94 0028B674 7C 08 03 A6 */ mtlr r0 -/* 8028EA98 0028B678 4E 80 00 20 */ blr - -.global it_8028EA9C -it_8028EA9C: -/* 8028EA9C 0028B67C 7C 08 02 A6 */ mflr r0 -/* 8028EAA0 0028B680 90 01 00 04 */ stw r0, 4(r1) -/* 8028EAA4 0028B684 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EAA8 0028B688 4B FE 43 09 */ bl itColl_BounceOffVictim -/* 8028EAAC 0028B68C 38 60 00 00 */ li r3, 0 -/* 8028EAB0 0028B690 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EAB4 0028B694 38 21 00 08 */ addi r1, r1, 8 -/* 8028EAB8 0028B698 7C 08 03 A6 */ mtlr r0 -/* 8028EABC 0028B69C 4E 80 00 20 */ blr - -.global it_8028EAC0 -it_8028EAC0: -/* 8028EAC0 0028B6A0 7C 08 02 A6 */ mflr r0 -/* 8028EAC4 0028B6A4 90 01 00 04 */ stw r0, 4(r1) -/* 8028EAC8 0028B6A8 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EACC 0028B6AC 4B FE 45 65 */ bl it_80273030 -/* 8028EAD0 0028B6B0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EAD4 0028B6B4 38 21 00 08 */ addi r1, r1, 8 -/* 8028EAD8 0028B6B8 7C 08 03 A6 */ mtlr r0 -/* 8028EADC 0028B6BC 4E 80 00 20 */ blr - -.global it_8028EAE0 -it_8028EAE0: -/* 8028EAE0 0028B6C0 7C 08 02 A6 */ mflr r0 -/* 8028EAE4 0028B6C4 90 01 00 04 */ stw r0, 4(r1) -/* 8028EAE8 0028B6C8 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EAEC 0028B6CC 4B FE 45 8D */ bl itColl_BounceOffShield -/* 8028EAF0 0028B6D0 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EAF4 0028B6D4 38 21 00 08 */ addi r1, r1, 8 -/* 8028EAF8 0028B6D8 7C 08 03 A6 */ mtlr r0 -/* 8028EAFC 0028B6DC 4E 80 00 20 */ blr - -.global it_8028EB00 -it_8028EB00: -/* 8028EB00 0028B6E0 7C 08 02 A6 */ mflr r0 -/* 8028EB04 0028B6E4 38 80 00 05 */ li r4, 5 -/* 8028EB08 0028B6E8 90 01 00 04 */ stw r0, 4(r1) -/* 8028EB0C 0028B6EC 38 A0 00 02 */ li r5, 2 -/* 8028EB10 0028B6F0 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EB14 0028B6F4 4B FD A3 49 */ bl Item_80268E5C -/* 8028EB18 0028B6F8 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EB1C 0028B6FC 38 21 00 08 */ addi r1, r1, 8 -/* 8028EB20 0028B700 7C 08 03 A6 */ mtlr r0 -/* 8028EB24 0028B704 4E 80 00 20 */ blr - -.global it_8028EB28 -it_8028EB28: -/* 8028EB28 0028B708 38 60 00 00 */ li r3, 0 -/* 8028EB2C 0028B70C 4E 80 00 20 */ blr - -.global it_8028EB30 -it_8028EB30: -/* 8028EB30 0028B710 4E 80 00 20 */ blr - -.global it_8028EB34 -it_8028EB34: -/* 8028EB34 0028B714 7C 08 02 A6 */ mflr r0 -/* 8028EB38 0028B718 3C 80 80 29 */ lis r4, it_8028E7D8@ha -/* 8028EB3C 0028B71C 90 01 00 04 */ stw r0, 4(r1) -/* 8028EB40 0028B720 3C A0 80 29 */ lis r5, it_8028E860@ha -/* 8028EB44 0028B724 38 84 E7 D8 */ addi r4, r4, it_8028E7D8@l -/* 8028EB48 0028B728 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EB4C 0028B72C 38 A5 E8 60 */ addi r5, r5, it_8028E860@l -/* 8028EB50 0028B730 4B FD FD 75 */ bl it_8026E8C4 -/* 8028EB54 0028B734 38 60 00 00 */ li r3, 0 -/* 8028EB58 0028B738 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EB5C 0028B73C 38 21 00 08 */ addi r1, r1, 8 -/* 8028EB60 0028B740 7C 08 03 A6 */ mtlr r0 -/* 8028EB64 0028B744 4E 80 00 20 */ blr - -.global it_8028EB68 -it_8028EB68: -/* 8028EB68 0028B748 7C 08 02 A6 */ mflr r0 -/* 8028EB6C 0028B74C 90 01 00 04 */ stw r0, 4(r1) -/* 8028EB70 0028B750 94 21 FF F8 */ stwu r1, -8(r1) -/* 8028EB74 0028B754 4B FD CD 21 */ bl it_8026B894 -/* 8028EB78 0028B758 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8028EB7C 0028B75C 38 21 00 08 */ addi r1, r1, 8 -/* 8028EB80 0028B760 7C 08 03 A6 */ mtlr r0 -/* 8028EB84 0028B764 4E 80 00 20 */ blr - - -.section .data - .balign 8 -.global it_803F5CC8 -it_803F5CC8: - .4byte -1 - .4byte it_8028E828 - .4byte it_8028E830 - .4byte it_8028E834 - .4byte -1 - .4byte it_8028E888 - .4byte it_8028E890 - .4byte it_8028E8C0 - .4byte -1 - .4byte it_8028E92C - .4byte it_8028E934 - .4byte NULL - .4byte 0 - .4byte it_8028E96C - .4byte it_8028E9B4 - .4byte NULL - .4byte 1 - .4byte it_8028E888 - .4byte it_8028EA08 - .4byte it_8028E8C0 - .4byte -1 - .4byte it_8028EB28 - .4byte it_8028EB30 - .4byte it_8028EB34 - - -.section .sdata2 - .balign 8 -.global it_804DCA68 -it_804DCA68: - .4byte 0x00000000 diff --git a/asm/melee/it/items/itlgunray.s b/asm/melee/it/items/itlgunray.s deleted file mode 100644 index de9f50527f..0000000000 --- a/asm/melee/it/items/itlgunray.s +++ /dev/null @@ -1,678 +0,0 @@ -.include "macros.inc" -.file "itlgunray.c" - -# 0x80298168..0x802988E4 | size: 0x77C -.text -.balign 4 - -# .text:0x0 | 0x80298168 | size: 0x144 -.fn it_80298168, global -/* 80298168 00294D48 7C 08 02 A6 */ mflr r0 -/* 8029816C 00294D4C 90 01 00 04 */ stw r0, 0x4(r1) -/* 80298170 00294D50 38 00 00 23 */ li r0, 0x23 -/* 80298174 00294D54 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80298178 00294D58 DB E1 00 78 */ stfd f31, 0x78(r1) -/* 8029817C 00294D5C FF E0 08 90 */ fmr f31, f1 -/* 80298180 00294D60 38 C1 00 2C */ addi r6, r1, 0x2c -/* 80298184 00294D64 93 E1 00 74 */ stw r31, 0x74(r1) -/* 80298188 00294D68 93 C1 00 70 */ stw r30, 0x70(r1) -/* 8029818C 00294D6C 93 A1 00 6C */ stw r29, 0x6c(r1) -/* 80298190 00294D70 93 81 00 68 */ stw r28, 0x68(r1) -/* 80298194 00294D74 7C 7C 1B 78 */ mr r28, r3 -/* 80298198 00294D78 90 01 00 20 */ stw r0, 0x20(r1) -/* 8029819C 00294D7C C0 02 D1 F0 */ lfs f0, it_804DCBD0@sda21(r0) -/* 802981A0 00294D80 80 A4 00 00 */ lwz r5, 0x0(r4) -/* 802981A4 00294D84 80 04 00 04 */ lwz r0, 0x4(r4) -/* 802981A8 00294D88 90 A1 00 38 */ stw r5, 0x38(r1) -/* 802981AC 00294D8C 90 01 00 3C */ stw r0, 0x3c(r1) -/* 802981B0 00294D90 80 04 00 08 */ lwz r0, 0x8(r4) -/* 802981B4 00294D94 7C C4 33 78 */ mr r4, r6 -/* 802981B8 00294D98 90 01 00 40 */ stw r0, 0x40(r1) -/* 802981BC 00294D9C D0 01 00 40 */ stfs f0, 0x40(r1) -/* 802981C0 00294DA0 4B FD 39 A9 */ bl it_8026BB68 -/* 802981C4 00294DA4 D3 E1 00 50 */ stfs f31, 0x50(r1) -/* 802981C8 00294DA8 38 A0 00 00 */ li r5, 0x0 -/* 802981CC 00294DAC C0 02 D1 F0 */ lfs f0, it_804DCBD0@sda21(r0) -/* 802981D0 00294DB0 38 80 00 01 */ li r4, 0x1 -/* 802981D4 00294DB4 B0 A1 00 54 */ sth r5, 0x54(r1) -/* 802981D8 00294DB8 38 61 00 18 */ addi r3, r1, 0x18 -/* 802981DC 00294DBC D0 01 00 4C */ stfs f0, 0x4c(r1) -/* 802981E0 00294DC0 D0 01 00 48 */ stfs f0, 0x48(r1) -/* 802981E4 00294DC4 D0 01 00 44 */ stfs f0, 0x44(r1) -/* 802981E8 00294DC8 93 81 00 18 */ stw r28, 0x18(r1) -/* 802981EC 00294DCC 80 01 00 18 */ lwz r0, 0x18(r1) -/* 802981F0 00294DD0 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802981F4 00294DD4 88 01 00 5C */ lbz r0, 0x5c(r1) -/* 802981F8 00294DD8 50 80 3E 30 */ rlwimi r0, r4, 7, 24, 24 -/* 802981FC 00294DDC 98 01 00 5C */ stb r0, 0x5c(r1) -/* 80298200 00294DE0 90 A1 00 58 */ stw r5, 0x58(r1) -/* 80298204 00294DE4 4B FD 09 15 */ bl Item_80268B18 -/* 80298208 00294DE8 7C 7F 1B 79 */ mr. r31, r3 -/* 8029820C 00294DEC 41 82 00 7C */ beq .L_80298288 -/* 80298210 00294DF0 83 DF 00 2C */ lwz r30, 0x2c(r31) -/* 80298214 00294DF4 38 7F 00 00 */ addi r3, r31, 0x0 -/* 80298218 00294DF8 38 9C 00 00 */ addi r4, r28, 0x0 -/* 8029821C 00294DFC 80 BE 00 C4 */ lwz r5, 0xc4(r30) -/* 80298220 00294E00 83 A5 00 04 */ lwz r29, 0x4(r5) -/* 80298224 00294E04 48 00 00 89 */ bl it_802982AC -/* 80298228 00294E08 C0 42 D1 F0 */ lfs f2, it_804DCBD0@sda21(r0) -/* 8029822C 00294E0C D0 5E 0D D4 */ stfs f2, 0xdd4(r30) -/* 80298230 00294E10 C0 22 D1 F4 */ lfs f1, it_804DCBD4@sda21(r0) -/* 80298234 00294E14 C0 1E 00 2C */ lfs f0, 0x2c(r30) -/* 80298238 00294E18 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8029823C 00294E1C 40 82 00 08 */ bne .L_80298244 -/* 80298240 00294E20 48 00 00 08 */ b .L_80298248 -.L_80298244: -/* 80298244 00294E24 C0 42 D1 F8 */ lfs f2, it_804DCBD8@sda21(r0) -.L_80298248: -/* 80298248 00294E28 D0 5E 0D D8 */ stfs f2, 0xdd8(r30) -/* 8029824C 00294E2C 38 7F 00 00 */ addi r3, r31, 0x0 -/* 80298250 00294E30 38 9C 00 00 */ addi r4, r28, 0x0 -/* 80298254 00294E34 C0 1D 00 00 */ lfs f0, 0x0(r29) -/* 80298258 00294E38 D0 1E 0D DC */ stfs f0, 0xddc(r30) -/* 8029825C 00294E3C 80 A1 00 2C */ lwz r5, 0x2c(r1) -/* 80298260 00294E40 80 01 00 30 */ lwz r0, 0x30(r1) -/* 80298264 00294E44 90 BE 0D E0 */ stw r5, 0xde0(r30) -/* 80298268 00294E48 90 1E 0D E4 */ stw r0, 0xde4(r30) -/* 8029826C 00294E4C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80298270 00294E50 90 1E 0D E8 */ stw r0, 0xde8(r30) -/* 80298274 00294E54 C0 3D 00 00 */ lfs f1, 0x0(r29) -/* 80298278 00294E58 C0 1E 00 2C */ lfs f0, 0x2c(r30) -/* 8029827C 00294E5C EC 01 00 32 */ fmuls f0, f1, f0 -/* 80298280 00294E60 D0 1E 00 40 */ stfs f0, 0x40(r30) -/* 80298284 00294E64 4B F8 DB 55 */ bl db_80225DD8 -.L_80298288: -/* 80298288 00294E68 80 01 00 84 */ lwz r0, 0x84(r1) -/* 8029828C 00294E6C CB E1 00 78 */ lfd f31, 0x78(r1) -/* 80298290 00294E70 83 E1 00 74 */ lwz r31, 0x74(r1) -/* 80298294 00294E74 83 C1 00 70 */ lwz r30, 0x70(r1) -/* 80298298 00294E78 83 A1 00 6C */ lwz r29, 0x6c(r1) -/* 8029829C 00294E7C 83 81 00 68 */ lwz r28, 0x68(r1) -/* 802982A0 00294E80 38 21 00 80 */ addi r1, r1, 0x80 -/* 802982A4 00294E84 7C 08 03 A6 */ mtlr r0 -/* 802982A8 00294E88 4E 80 00 20 */ blr -.endfn it_80298168 - -# .text:0x144 | 0x802982AC | size: 0x54 -.fn it_802982AC, global -/* 802982AC 00294E8C 7C 08 02 A6 */ mflr r0 -/* 802982B0 00294E90 90 01 00 04 */ stw r0, 0x4(r1) -/* 802982B4 00294E94 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802982B8 00294E98 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802982BC 00294E9C 7C 7F 1B 78 */ mr r31, r3 -/* 802982C0 00294EA0 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 802982C4 00294EA4 80 84 00 C4 */ lwz r4, 0xc4(r4) -/* 802982C8 00294EA8 80 84 00 04 */ lwz r4, 0x4(r4) -/* 802982CC 00294EAC C0 24 00 04 */ lfs f1, 0x4(r4) -/* 802982D0 00294EB0 4B FD CE 89 */ bl it_80275158 -/* 802982D4 00294EB4 7F E3 FB 78 */ mr r3, r31 -/* 802982D8 00294EB8 4B FD 30 D1 */ bl it_8026B3A8 -/* 802982DC 00294EBC 38 7F 00 00 */ addi r3, r31, 0x0 -/* 802982E0 00294EC0 38 80 00 00 */ li r4, 0x0 -/* 802982E4 00294EC4 38 A0 00 02 */ li r5, 0x2 -/* 802982E8 00294EC8 4B FD 0B 75 */ bl Item_80268E5C -/* 802982EC 00294ECC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802982F0 00294ED0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802982F4 00294ED4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802982F8 00294ED8 7C 08 03 A6 */ mtlr r0 -/* 802982FC 00294EDC 4E 80 00 20 */ blr -.endfn it_802982AC - -# .text:0x198 | 0x80298300 | size: 0x2D8 -.fn it_80298300, global -/* 80298300 00294EE0 7C 08 02 A6 */ mflr r0 -/* 80298304 00294EE4 90 01 00 04 */ stw r0, 0x4(r1) -/* 80298308 00294EE8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8029830C 00294EEC DB E1 00 28 */ stfd f31, 0x28(r1) -/* 80298310 00294EF0 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80298314 00294EF4 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80298318 00294EF8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 8029831C 00294EFC 93 81 00 18 */ stw r28, 0x18(r1) -/* 80298320 00294F00 7C 7C 1B 78 */ mr r28, r3 -/* 80298324 00294F04 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 80298328 00294F08 83 A3 00 28 */ lwz r29, 0x28(r3) -/* 8029832C 00294F0C 80 7F 00 C4 */ lwz r3, 0xc4(r31) -/* 80298330 00294F10 C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 80298334 00294F14 83 C3 00 04 */ lwz r30, 0x4(r3) -/* 80298338 00294F18 48 08 DF 09 */ bl cosf -/* 8029833C 00294F1C C0 1F 0D DC */ lfs f0, 0xddc(r31) -/* 80298340 00294F20 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80298344 00294F24 D0 1F 00 40 */ stfs f0, 0x40(r31) -/* 80298348 00294F28 C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 8029834C 00294F2C 48 08 E0 89 */ bl sinf -/* 80298350 00294F30 C0 1F 0D DC */ lfs f0, 0xddc(r31) -/* 80298354 00294F34 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80298358 00294F38 D0 1F 00 44 */ stfs f0, 0x44(r31) -/* 8029835C 00294F3C C0 22 D1 F0 */ lfs f1, it_804DCBD0@sda21(r0) -/* 80298360 00294F40 D0 3F 00 48 */ stfs f1, 0x48(r31) -/* 80298364 00294F44 C0 1F 00 40 */ lfs f0, 0x40(r31) -/* 80298368 00294F48 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8029836C 00294F4C 40 81 00 0C */ ble .L_80298378 -/* 80298370 00294F50 C0 02 D1 F4 */ lfs f0, it_804DCBD4@sda21(r0) -/* 80298374 00294F54 48 00 00 08 */ b .L_8029837C -.L_80298378: -/* 80298378 00294F58 C0 02 D1 FC */ lfs f0, it_804DCBDC@sda21(r0) -.L_8029837C: -/* 8029837C 00294F5C D0 1F 00 2C */ stfs f0, 0x2c(r31) -/* 80298380 00294F60 28 1D 00 00 */ cmplwi r29, 0x0 -/* 80298384 00294F64 C8 22 D2 00 */ lfd f1, it_804DCBE0@sda21(r0) -/* 80298388 00294F68 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 8029838C 00294F6C FF E1 00 32 */ fmul f31, f1, f0 -/* 80298390 00294F70 FF E0 F8 18 */ frsp f31, f31 -/* 80298394 00294F74 40 82 00 14 */ bne .L_802983A8 -/* 80298398 00294F78 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 8029839C 00294F7C 38 80 02 94 */ li r4, 0x294 -/* 802983A0 00294F80 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 802983A4 00294F84 48 0E FE 7D */ bl __assert -.L_802983A8: -/* 802983A8 00294F88 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802983AC 00294F8C 54 00 03 9D */ rlwinm. r0, r0, 0, 14, 14 -/* 802983B0 00294F90 41 82 00 18 */ beq .L_802983C8 -/* 802983B4 00294F94 3C 60 80 3F */ lis r3, it_803F6508@ha -/* 802983B8 00294F98 38 A3 65 08 */ addi r5, r3, it_803F6508@l -/* 802983BC 00294F9C 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 802983C0 00294FA0 38 80 02 95 */ li r4, 0x295 -/* 802983C4 00294FA4 48 0E FE 5D */ bl __assert -.L_802983C8: -/* 802983C8 00294FA8 D3 FD 00 20 */ stfs f31, 0x20(r29) -/* 802983CC 00294FAC 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 802983D0 00294FB0 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802983D4 00294FB4 40 82 00 4C */ bne .L_80298420 -/* 802983D8 00294FB8 28 1D 00 00 */ cmplwi r29, 0x0 -/* 802983DC 00294FBC 41 82 00 44 */ beq .L_80298420 -/* 802983E0 00294FC0 40 82 00 14 */ bne .L_802983F4 -/* 802983E4 00294FC4 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 802983E8 00294FC8 38 80 02 34 */ li r4, 0x234 -/* 802983EC 00294FCC 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 802983F0 00294FD0 48 0E FE 31 */ bl __assert -.L_802983F4: -/* 802983F4 00294FD4 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 802983F8 00294FD8 38 60 00 00 */ li r3, 0x0 -/* 802983FC 00294FDC 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 80298400 00294FE0 40 82 00 10 */ bne .L_80298410 -/* 80298404 00294FE4 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 80298408 00294FE8 41 82 00 08 */ beq .L_80298410 -/* 8029840C 00294FEC 38 60 00 01 */ li r3, 0x1 -.L_80298410: -/* 80298410 00294FF0 2C 03 00 00 */ cmpwi r3, 0x0 -/* 80298414 00294FF4 40 82 00 0C */ bne .L_80298420 -/* 80298418 00294FF8 7F A3 EB 78 */ mr r3, r29 -/* 8029841C 00294FFC 48 0D AE CD */ bl HSD_JObjSetMtxDirtySub -.L_80298420: -/* 80298420 00295000 C0 22 D1 F4 */ lfs f1, it_804DCBD4@sda21(r0) -/* 80298424 00295004 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 80298428 00295008 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8029842C 0029500C 40 82 00 10 */ bne .L_8029843C -/* 80298430 00295010 C0 1F 00 40 */ lfs f0, 0x40(r31) -/* 80298434 00295014 FC 40 00 50 */ fneg f2, f0 -/* 80298438 00295018 48 00 00 08 */ b .L_80298440 -.L_8029843C: -/* 8029843C 0029501C C0 5F 00 40 */ lfs f2, 0x40(r31) -.L_80298440: -/* 80298440 00295020 C0 3F 00 44 */ lfs f1, 0x44(r31) -/* 80298444 00295024 4B D8 A7 ED */ bl atan2f -/* 80298448 00295028 C8 02 D2 08 */ lfd f0, it_804DCBE8@sda21(r0) -/* 8029844C 0029502C 28 1D 00 00 */ cmplwi r29, 0x0 -/* 80298450 00295030 FF E0 08 2A */ fadd f31, f0, f1 -/* 80298454 00295034 FF E0 F8 18 */ frsp f31, f31 -/* 80298458 00295038 40 82 00 14 */ bne .L_8029846C -/* 8029845C 0029503C 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 80298460 00295040 38 80 02 7F */ li r4, 0x27f -/* 80298464 00295044 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 80298468 00295048 48 0E FD B9 */ bl __assert -.L_8029846C: -/* 8029846C 0029504C 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 80298470 00295050 54 00 03 9D */ rlwinm. r0, r0, 0, 14, 14 -/* 80298474 00295054 41 82 00 18 */ beq .L_8029848C -/* 80298478 00295058 3C 60 80 3F */ lis r3, it_803F6508@ha -/* 8029847C 0029505C 38 A3 65 08 */ addi r5, r3, it_803F6508@l -/* 80298480 00295060 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 80298484 00295064 38 80 02 80 */ li r4, 0x280 -/* 80298488 00295068 48 0E FD 99 */ bl __assert -.L_8029848C: -/* 8029848C 0029506C D3 FD 00 1C */ stfs f31, 0x1c(r29) -/* 80298490 00295070 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 80298494 00295074 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 80298498 00295078 40 82 00 4C */ bne .L_802984E4 -/* 8029849C 0029507C 28 1D 00 00 */ cmplwi r29, 0x0 -/* 802984A0 00295080 41 82 00 44 */ beq .L_802984E4 -/* 802984A4 00295084 40 82 00 14 */ bne .L_802984B8 -/* 802984A8 00295088 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 802984AC 0029508C 38 80 02 34 */ li r4, 0x234 -/* 802984B0 00295090 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 802984B4 00295094 48 0E FD 6D */ bl __assert -.L_802984B8: -/* 802984B8 00295098 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 802984BC 0029509C 38 60 00 00 */ li r3, 0x0 -/* 802984C0 002950A0 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 802984C4 002950A4 40 82 00 10 */ bne .L_802984D4 -/* 802984C8 002950A8 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 802984CC 002950AC 41 82 00 08 */ beq .L_802984D4 -/* 802984D0 002950B0 38 60 00 01 */ li r3, 0x1 -.L_802984D4: -/* 802984D4 002950B4 2C 03 00 00 */ cmpwi r3, 0x0 -/* 802984D8 002950B8 40 82 00 0C */ bne .L_802984E4 -/* 802984DC 002950BC 7F A3 EB 78 */ mr r3, r29 -/* 802984E0 002950C0 48 0D AE 09 */ bl HSD_JObjSetMtxDirtySub -.L_802984E4: -/* 802984E4 002950C4 C0 5F 0D DC */ lfs f2, 0xddc(r31) -/* 802984E8 002950C8 C0 02 D1 F0 */ lfs f0, it_804DCBD0@sda21(r0) -/* 802984EC 002950CC FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 802984F0 002950D0 40 80 00 08 */ bge .L_802984F8 -/* 802984F4 002950D4 FC 40 10 50 */ fneg f2, f2 -.L_802984F8: -/* 802984F8 002950D8 C0 02 D2 10 */ lfs f0, it_804DCBF0@sda21(r0) -/* 802984FC 002950DC C0 3F 0D D4 */ lfs f1, 0xdd4(r31) -/* 80298500 002950E0 EC 02 00 24 */ fdivs f0, f2, f0 -/* 80298504 002950E4 EC 01 00 2A */ fadds f0, f1, f0 -/* 80298508 002950E8 D0 1F 0D D4 */ stfs f0, 0xdd4(r31) -/* 8029850C 002950EC C0 1F 0D D4 */ lfs f0, 0xdd4(r31) -/* 80298510 002950F0 C0 3E 00 08 */ lfs f1, 0x8(r30) -/* 80298514 002950F4 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80298518 002950F8 40 81 00 08 */ ble .L_80298520 -/* 8029851C 002950FC D0 3F 0D D4 */ stfs f1, 0xdd4(r31) -.L_80298520: -/* 80298520 00295100 C0 3F 0D D4 */ lfs f1, 0xdd4(r31) -/* 80298524 00295104 C0 02 D2 14 */ lfs f0, it_804DCBF4@sda21(r0) -/* 80298528 00295108 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8029852C 0029510C 40 80 00 0C */ bge .L_80298538 -/* 80298530 00295110 C0 02 D2 18 */ lfs f0, it_804DCBF8@sda21(r0) -/* 80298534 00295114 D0 1F 0D D4 */ stfs f0, 0xdd4(r31) -.L_80298538: -/* 80298538 00295118 28 1D 00 00 */ cmplwi r29, 0x0 -/* 8029853C 0029511C C3 FF 0D D4 */ lfs f31, 0xdd4(r31) -/* 80298540 00295120 40 82 00 14 */ bne .L_80298554 -/* 80298544 00295124 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 80298548 00295128 38 80 03 26 */ li r4, 0x326 -/* 8029854C 0029512C 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 80298550 00295130 48 0E FC D1 */ bl __assert -.L_80298554: -/* 80298554 00295134 D3 FD 00 34 */ stfs f31, 0x34(r29) -/* 80298558 00295138 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 8029855C 0029513C 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 80298560 00295140 40 82 00 4C */ bne .L_802985AC -/* 80298564 00295144 28 1D 00 00 */ cmplwi r29, 0x0 -/* 80298568 00295148 41 82 00 44 */ beq .L_802985AC -/* 8029856C 0029514C 40 82 00 14 */ bne .L_80298580 -/* 80298570 00295150 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 80298574 00295154 38 80 02 34 */ li r4, 0x234 -/* 80298578 00295158 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 8029857C 0029515C 48 0E FC A5 */ bl __assert -.L_80298580: -/* 80298580 00295160 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 80298584 00295164 38 60 00 00 */ li r3, 0x0 -/* 80298588 00295168 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 8029858C 0029516C 40 82 00 10 */ bne .L_8029859C -/* 80298590 00295170 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 80298594 00295174 41 82 00 08 */ beq .L_8029859C -/* 80298598 00295178 38 60 00 01 */ li r3, 0x1 -.L_8029859C: -/* 8029859C 0029517C 2C 03 00 00 */ cmpwi r3, 0x0 -/* 802985A0 00295180 40 82 00 0C */ bne .L_802985AC -/* 802985A4 00295184 7F A3 EB 78 */ mr r3, r29 -/* 802985A8 00295188 48 0D AD 41 */ bl HSD_JObjSetMtxDirtySub -.L_802985AC: -/* 802985AC 0029518C 7F 83 E3 78 */ mr r3, r28 -/* 802985B0 00295190 4B FD AB 81 */ bl it_80273130 -/* 802985B4 00295194 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802985B8 00295198 CB E1 00 28 */ lfd f31, 0x28(r1) -/* 802985BC 0029519C 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 802985C0 002951A0 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 802985C4 002951A4 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 802985C8 002951A8 83 81 00 18 */ lwz r28, 0x18(r1) -/* 802985CC 002951AC 38 21 00 30 */ addi r1, r1, 0x30 -/* 802985D0 002951B0 7C 08 03 A6 */ mtlr r0 -/* 802985D4 002951B4 4E 80 00 20 */ blr -.endfn it_80298300 - -# .text:0x470 | 0x802985D8 | size: 0x20 -.fn it_802985D8, global -/* 802985D8 002951B8 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 802985DC 002951BC 80 64 00 4C */ lwz r3, 0x4c(r4) -/* 802985E0 002951C0 80 04 00 50 */ lwz r0, 0x50(r4) -/* 802985E4 002951C4 90 64 0D E0 */ stw r3, 0xde0(r4) -/* 802985E8 002951C8 90 04 0D E4 */ stw r0, 0xde4(r4) -/* 802985EC 002951CC 80 04 00 54 */ lwz r0, 0x54(r4) -/* 802985F0 002951D0 90 04 0D E8 */ stw r0, 0xde8(r4) -/* 802985F4 002951D4 4E 80 00 20 */ blr -.endfn it_802985D8 - -# .text:0x490 | 0x802985F8 | size: 0x3C -.fn it_802985F8, global -/* 802985F8 002951D8 7C 08 02 A6 */ mflr r0 -/* 802985FC 002951DC 90 01 00 04 */ stw r0, 0x4(r1) -/* 80298600 002951E0 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 80298604 002951E4 80 83 00 2C */ lwz r4, 0x2c(r3) -/* 80298608 002951E8 38 84 03 78 */ addi r4, r4, 0x378 -/* 8029860C 002951EC 48 00 3E C9 */ bl it_8029C4D4 -/* 80298610 002951F0 2C 03 00 00 */ cmpwi r3, 0x0 -/* 80298614 002951F4 41 82 00 0C */ beq .L_80298620 -/* 80298618 002951F8 38 60 00 01 */ li r3, 0x1 -/* 8029861C 002951FC 48 00 00 08 */ b .L_80298624 -.L_80298620: -/* 80298620 00295200 38 60 00 00 */ li r3, 0x0 -.L_80298624: -/* 80298624 00295204 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80298628 00295208 38 21 00 08 */ addi r1, r1, 0x8 -/* 8029862C 0029520C 7C 08 03 A6 */ mtlr r0 -/* 80298630 00295210 4E 80 00 20 */ blr -.endfn it_802985F8 - -# .text:0x4CC | 0x80298634 | size: 0x8 -.fn it_80298634, global -/* 80298634 00295214 38 60 00 01 */ li r3, 0x1 -/* 80298638 00295218 4E 80 00 20 */ blr -.endfn it_80298634 - -# .text:0x4D4 | 0x8029863C | size: 0x8 -.fn it_8029863C, global -/* 8029863C 0029521C 38 60 00 01 */ li r3, 0x1 -/* 80298640 00295220 4E 80 00 20 */ blr -.endfn it_8029863C - -# .text:0x4DC | 0x80298644 | size: 0x8 -.fn it_80298644, global -/* 80298644 00295224 38 60 00 01 */ li r3, 0x1 -/* 80298648 00295228 4E 80 00 20 */ blr -.endfn it_80298644 - -# .text:0x4E4 | 0x8029864C | size: 0x8 -.fn it_8029864C, global -/* 8029864C 0029522C 38 60 00 01 */ li r3, 0x1 -/* 80298650 00295230 4E 80 00 20 */ blr -.endfn it_8029864C - -# .text:0x4EC | 0x80298654 | size: 0x1D4 -.fn it_80298654, global -/* 80298654 00295234 7C 08 02 A6 */ mflr r0 -/* 80298658 00295238 90 01 00 04 */ stw r0, 0x4(r1) -/* 8029865C 0029523C 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 80298660 00295240 DB E1 00 20 */ stfd f31, 0x20(r1) -/* 80298664 00295244 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80298668 00295248 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8029866C 0029524C 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 80298670 00295250 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 80298674 00295254 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 80298678 00295258 28 1E 00 00 */ cmplwi r30, 0x0 -/* 8029867C 0029525C FC 00 00 50 */ fneg f0, f0 -/* 80298680 00295260 D0 1F 00 2C */ stfs f0, 0x2c(r31) -/* 80298684 00295264 C8 22 D2 00 */ lfd f1, it_804DCBE0@sda21(r0) -/* 80298688 00295268 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 8029868C 0029526C FF E1 00 32 */ fmul f31, f1, f0 -/* 80298690 00295270 FF E0 F8 18 */ frsp f31, f31 -/* 80298694 00295274 40 82 00 14 */ bne .L_802986A8 -/* 80298698 00295278 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 8029869C 0029527C 38 80 02 94 */ li r4, 0x294 -/* 802986A0 00295280 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 802986A4 00295284 48 0E FB 7D */ bl __assert -.L_802986A8: -/* 802986A8 00295288 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802986AC 0029528C 54 00 03 9D */ rlwinm. r0, r0, 0, 14, 14 -/* 802986B0 00295290 41 82 00 18 */ beq .L_802986C8 -/* 802986B4 00295294 3C 60 80 3F */ lis r3, it_803F6508@ha -/* 802986B8 00295298 38 A3 65 08 */ addi r5, r3, it_803F6508@l -/* 802986BC 0029529C 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 802986C0 002952A0 38 80 02 95 */ li r4, 0x295 -/* 802986C4 002952A4 48 0E FB 5D */ bl __assert -.L_802986C8: -/* 802986C8 002952A8 D3 FE 00 20 */ stfs f31, 0x20(r30) -/* 802986CC 002952AC 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802986D0 002952B0 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 802986D4 002952B4 40 82 00 4C */ bne .L_80298720 -/* 802986D8 002952B8 28 1E 00 00 */ cmplwi r30, 0x0 -/* 802986DC 002952BC 41 82 00 44 */ beq .L_80298720 -/* 802986E0 002952C0 40 82 00 14 */ bne .L_802986F4 -/* 802986E4 002952C4 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 802986E8 002952C8 38 80 02 34 */ li r4, 0x234 -/* 802986EC 002952CC 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 802986F0 002952D0 48 0E FB 31 */ bl __assert -.L_802986F4: -/* 802986F4 002952D4 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 802986F8 002952D8 38 60 00 00 */ li r3, 0x0 -/* 802986FC 002952DC 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 80298700 002952E0 40 82 00 10 */ bne .L_80298710 -/* 80298704 002952E4 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 80298708 002952E8 41 82 00 08 */ beq .L_80298710 -/* 8029870C 002952EC 38 60 00 01 */ li r3, 0x1 -.L_80298710: -/* 80298710 002952F0 2C 03 00 00 */ cmpwi r3, 0x0 -/* 80298714 002952F4 40 82 00 0C */ bne .L_80298720 -/* 80298718 002952F8 7F C3 F3 78 */ mr r3, r30 -/* 8029871C 002952FC 48 0D AB CD */ bl HSD_JObjSetMtxDirtySub -.L_80298720: -/* 80298720 00295300 C0 3F 0D DC */ lfs f1, 0xddc(r31) -/* 80298724 00295304 28 1E 00 00 */ cmplwi r30, 0x0 -/* 80298728 00295308 C0 1F 0C 70 */ lfs f0, 0xc70(r31) -/* 8029872C 0029530C EC 01 00 32 */ fmuls f0, f1, f0 -/* 80298730 00295310 D0 1F 0D DC */ stfs f0, 0xddc(r31) -/* 80298734 00295314 C3 E2 D2 18 */ lfs f31, it_804DCBF8@sda21(r0) -/* 80298738 00295318 D3 FF 0D D4 */ stfs f31, 0xdd4(r31) -/* 8029873C 0029531C 40 82 00 14 */ bne .L_80298750 -/* 80298740 00295320 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 80298744 00295324 38 80 03 26 */ li r4, 0x326 -/* 80298748 00295328 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 8029874C 0029532C 48 0E FA D5 */ bl __assert -.L_80298750: -/* 80298750 00295330 D3 FE 00 34 */ stfs f31, 0x34(r30) -/* 80298754 00295334 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 80298758 00295338 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8029875C 0029533C 40 82 00 4C */ bne .L_802987A8 -/* 80298760 00295340 28 1E 00 00 */ cmplwi r30, 0x0 -/* 80298764 00295344 41 82 00 44 */ beq .L_802987A8 -/* 80298768 00295348 40 82 00 14 */ bne .L_8029877C -/* 8029876C 0029534C 38 6D 9C 60 */ li r3, it_804D5300@sda21 -/* 80298770 00295350 38 80 02 34 */ li r4, 0x234 -/* 80298774 00295354 38 AD 9C 68 */ li r5, it_804D5308@sda21 -/* 80298778 00295358 48 0E FA A9 */ bl __assert -.L_8029877C: -/* 8029877C 0029535C 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 80298780 00295360 38 60 00 00 */ li r3, 0x0 -/* 80298784 00295364 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 80298788 00295368 40 82 00 10 */ bne .L_80298798 -/* 8029878C 0029536C 54 80 06 73 */ rlwinm. r0, r4, 0, 25, 25 -/* 80298790 00295370 41 82 00 08 */ beq .L_80298798 -/* 80298794 00295374 38 60 00 01 */ li r3, 0x1 -.L_80298798: -/* 80298798 00295378 2C 03 00 00 */ cmpwi r3, 0x0 -/* 8029879C 0029537C 40 82 00 0C */ bne .L_802987A8 -/* 802987A0 00295380 7F C3 F3 78 */ mr r3, r30 -/* 802987A4 00295384 48 0D AB 45 */ bl HSD_JObjSetMtxDirtySub -.L_802987A8: -/* 802987A8 00295388 C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 802987AC 0029538C C8 02 D2 08 */ lfd f0, it_804DCBE8@sda21(r0) -/* 802987B0 00295390 FC 01 00 2A */ fadd f0, f1, f0 -/* 802987B4 00295394 FC 00 00 18 */ frsp f0, f0 -/* 802987B8 00295398 D0 1F 0D D8 */ stfs f0, 0xdd8(r31) -/* 802987BC 0029539C C8 42 D2 20 */ lfd f2, it_804DCC00@sda21(r0) -/* 802987C0 002953A0 C0 02 D1 F0 */ lfs f0, it_804DCBD0@sda21(r0) -/* 802987C4 002953A4 48 00 00 14 */ b .L_802987D8 -.L_802987C8: -/* 802987C8 002953A8 C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 802987CC 002953AC FC 21 10 2A */ fadd f1, f1, f2 -/* 802987D0 002953B0 FC 20 08 18 */ frsp f1, f1 -/* 802987D4 002953B4 D0 3F 0D D8 */ stfs f1, 0xdd8(r31) -.L_802987D8: -/* 802987D8 002953B8 C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 802987DC 002953BC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802987E0 002953C0 41 80 FF E8 */ blt .L_802987C8 -/* 802987E4 002953C4 C8 22 D2 20 */ lfd f1, it_804DCC00@sda21(r0) -/* 802987E8 002953C8 48 00 00 14 */ b .L_802987FC -.L_802987EC: -/* 802987EC 002953CC C0 1F 0D D8 */ lfs f0, 0xdd8(r31) -/* 802987F0 002953D0 FC 00 08 28 */ fsub f0, f0, f1 -/* 802987F4 002953D4 FC 00 00 18 */ frsp f0, f0 -/* 802987F8 002953D8 D0 1F 0D D8 */ stfs f0, 0xdd8(r31) -.L_802987FC: -/* 802987FC 002953DC C0 1F 0D D8 */ lfs f0, 0xdd8(r31) -/* 80298800 002953E0 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80298804 002953E4 41 81 FF E8 */ bgt .L_802987EC -/* 80298808 002953E8 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8029880C 002953EC 38 60 00 00 */ li r3, 0x0 -/* 80298810 002953F0 CB E1 00 20 */ lfd f31, 0x20(r1) -/* 80298814 002953F4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80298818 002953F8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8029881C 002953FC 38 21 00 28 */ addi r1, r1, 0x28 -/* 80298820 00295400 7C 08 03 A6 */ mtlr r0 -/* 80298824 00295404 4E 80 00 20 */ blr -.endfn it_80298654 - -# .text:0x6C0 | 0x80298828 | size: 0x9C -.fn it_80298828, global -/* 80298828 00295408 7C 08 02 A6 */ mflr r0 -/* 8029882C 0029540C 90 01 00 04 */ stw r0, 0x4(r1) -/* 80298830 00295410 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80298834 00295414 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80298838 00295418 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 8029883C 0029541C 38 7F 00 40 */ addi r3, r31, 0x40 -/* 80298840 00295420 38 9F 0C 58 */ addi r4, r31, 0xc58 -/* 80298844 00295424 4B D7 54 29 */ bl lbVector_Mirror -/* 80298848 00295428 C0 02 D2 18 */ lfs f0, it_804DCBF8@sda21(r0) -/* 8029884C 0029542C D0 1F 0D D4 */ stfs f0, 0xdd4(r31) -/* 80298850 00295430 C0 3F 00 44 */ lfs f1, 0x44(r31) -/* 80298854 00295434 C0 5F 00 40 */ lfs f2, 0x40(r31) -/* 80298858 00295438 4B D8 A3 D9 */ bl atan2f -/* 8029885C 0029543C D0 3F 0D D8 */ stfs f1, 0xdd8(r31) -/* 80298860 00295440 C8 42 D2 20 */ lfd f2, it_804DCC00@sda21(r0) -/* 80298864 00295444 C0 02 D1 F0 */ lfs f0, it_804DCBD0@sda21(r0) -/* 80298868 00295448 48 00 00 14 */ b .L_8029887C -.L_8029886C: -/* 8029886C 0029544C C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 80298870 00295450 FC 21 10 2A */ fadd f1, f1, f2 -/* 80298874 00295454 FC 20 08 18 */ frsp f1, f1 -/* 80298878 00295458 D0 3F 0D D8 */ stfs f1, 0xdd8(r31) -.L_8029887C: -/* 8029887C 0029545C C0 3F 0D D8 */ lfs f1, 0xdd8(r31) -/* 80298880 00295460 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80298884 00295464 41 80 FF E8 */ blt .L_8029886C -/* 80298888 00295468 C8 22 D2 20 */ lfd f1, it_804DCC00@sda21(r0) -/* 8029888C 0029546C 48 00 00 14 */ b .L_802988A0 -.L_80298890: -/* 80298890 00295470 C0 1F 0D D8 */ lfs f0, 0xdd8(r31) -/* 80298894 00295474 FC 00 08 28 */ fsub f0, f0, f1 -/* 80298898 00295478 FC 00 00 18 */ frsp f0, f0 -/* 8029889C 0029547C D0 1F 0D D8 */ stfs f0, 0xdd8(r31) -.L_802988A0: -/* 802988A0 00295480 C0 1F 0D D8 */ lfs f0, 0xdd8(r31) -/* 802988A4 00295484 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 802988A8 00295488 41 81 FF E8 */ bgt .L_80298890 -/* 802988AC 0029548C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802988B0 00295490 38 60 00 00 */ li r3, 0x0 -/* 802988B4 00295494 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802988B8 00295498 38 21 00 20 */ addi r1, r1, 0x20 -/* 802988BC 0029549C 7C 08 03 A6 */ mtlr r0 -/* 802988C0 002954A0 4E 80 00 20 */ blr -.endfn it_80298828 - -# .text:0x75C | 0x802988C4 | size: 0x20 -.fn it_802988C4, global -/* 802988C4 002954A4 7C 08 02 A6 */ mflr r0 -/* 802988C8 002954A8 90 01 00 04 */ stw r0, 0x4(r1) -/* 802988CC 002954AC 94 21 FF F8 */ stwu r1, -0x8(r1) -/* 802988D0 002954B0 4B FD 2F C5 */ bl it_8026B894 -/* 802988D4 002954B4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802988D8 002954B8 38 21 00 08 */ addi r1, r1, 0x8 -/* 802988DC 002954BC 7C 08 03 A6 */ mtlr r0 -/* 802988E0 002954C0 4E 80 00 20 */ blr -.endfn it_802988C4 - -# 0x803F64F8..0x803F6530 | size: 0x38 -.data -.balign 8 - -# .data:0x0 | 0x803F64F8 | size: 0x10 -.obj it_803F64F8, global - .4byte 0x00000000 - .4byte it_80298300 - .4byte it_802985D8 - .4byte it_802985F8 -.endobj it_803F64F8 - -# .data:0x10 | 0x803F6508 | size: 0x28 -.obj it_803F6508, global - .4byte 0x21286A6F - .4byte 0x626A2D3E - .4byte 0x666C6167 - .4byte 0x73202620 - .4byte 0x4A4F424A - .4byte 0x5F555345 - .4byte 0x5F515541 - .4byte 0x5445524E - .4byte 0x494F4E29 - .4byte 0x00000000 -.endobj it_803F6508 - -# 0x804D5300..0x804D5310 | size: 0x10 -.section .sdata, "wa" -.balign 8 - -# .sdata:0x0 | 0x804D5300 | size: 0x8 -.obj it_804D5300, global - .4byte 0x6A6F626A - .4byte 0x2E680000 -.endobj it_804D5300 - -# .sdata:0x8 | 0x804D5308 | size: 0x8 -.obj it_804D5308, global - .4byte 0x6A6F626A - .4byte 0x00000000 -.endobj it_804D5308 - -# 0x804DCBD0..0x804DCC08 | size: 0x38 -.section .sdata2, "a" -.balign 8 - -# .sdata2:0x0 | 0x804DCBD0 | size: 0x4 -.obj it_804DCBD0, global - .float 0 -.endobj it_804DCBD0 - -# .sdata2:0x4 | 0x804DCBD4 | size: 0x4 -.obj it_804DCBD4, global - .float 1 -.endobj it_804DCBD4 - -# .sdata2:0x8 | 0x804DCBD8 | size: 0x4 -.obj it_804DCBD8, global - .float 3.1415927 -.endobj it_804DCBD8 - -# .sdata2:0xC | 0x804DCBDC | size: 0x4 -.obj it_804DCBDC, global - .float -1 -.endobj it_804DCBDC - -# .sdata2:0x10 | 0x804DCBE0 | size: 0x8 -.obj it_804DCBE0, global - .double 1.5707963267948966 -.endobj it_804DCBE0 - -# .sdata2:0x18 | 0x804DCBE8 | size: 0x8 -.obj it_804DCBE8, global - .double 3.141592653589793 -.endobj it_804DCBE8 - -# .sdata2:0x20 | 0x804DCBF0 | size: 0x4 -.obj it_804DCBF0, global - .float 7 -.endobj it_804DCBF0 - -# .sdata2:0x24 | 0x804DCBF4 | size: 0x4 -.obj it_804DCBF4, global - .float 0.00001 -.endobj it_804DCBF4 - -# .sdata2:0x28 | 0x804DCBF8 | size: 0x4 -.obj it_804DCBF8, global - .float 0.001 -.endobj it_804DCBF8 - -# .sdata2:0x2C | 0x804DCBFC | size: 0x4 -.obj gap_11_804DCBFC_sdata2, global -.hidden gap_11_804DCBFC_sdata2 - .4byte 0x00000000 -.endobj gap_11_804DCBFC_sdata2 - -# .sdata2:0x30 | 0x804DCC00 | size: 0x8 -.obj it_804DCC00, global - .double 6.283185307179586 -.endobj it_804DCC00 diff --git a/config/GALE01/splits.txt b/config/GALE01/splits.txt index aec26a1d37..d51bdd4832 100644 --- a/config/GALE01/splits.txt +++ b/config/GALE01/splits.txt @@ -2434,7 +2434,7 @@ melee/it/items/itrshell.c: melee/it/items/itlgun.c: .text start:0x8028E738 end:0x8028EB88 .data start:0x803F5CC8 end:0x803F5D28 - .sdata2 start:0x804DCA68 end:0x804DCA70 + .sdata2 start:0x804DCA68 end:0x804DCA6C melee/it/items/itfreeze.c: .text start:0x8028EB88 end:0x8028F9D8 @@ -2541,8 +2541,8 @@ melee/it/items/itmball.c: melee/it/items/itlgunray.c: .text start:0x80298168 end:0x802988E4 - .data start:0x803F64F8 end:0x803F6530 - .sdata start:0x804D5300 end:0x804D5310 + .data start:0x803F64F8 end:0x803F652D + .sdata start:0x804D5300 end:0x804D530D .sdata2 start:0x804DCBD0 end:0x804DCC08 melee/it/items/itstarrodstar.c: diff --git a/config/GALE01/symbols.txt b/config/GALE01/symbols.txt index bdd845d177..de47fd4e8c 100644 --- a/config/GALE01/symbols.txt +++ b/config/GALE01/symbols.txt @@ -14034,31 +14034,31 @@ it_8028E738 = .text:0x8028E738; // type:function size:0x3C scope:global it_8028E774 = .text:0x8028E774; // type:function size:0x28 scope:global it_8028E79C = .text:0x8028E79C; // type:function size:0x3C scope:global it_8028E7D8 = .text:0x8028E7D8; // type:function size:0x50 scope:global -it_8028E828 = .text:0x8028E828; // type:function size:0x8 scope:global -it_8028E830 = .text:0x8028E830; // type:function size:0x4 scope:global -it_8028E834 = .text:0x8028E834; // type:function size:0x2C scope:global -it_8028E860 = .text:0x8028E860; // type:function size:0x28 scope:global -it_8028E888 = .text:0x8028E888; // type:function size:0x8 scope:global -it_8028E890 = .text:0x8028E890; // type:function size:0x30 scope:global -it_8028E8C0 = .text:0x8028E8C0; // type:function size:0x44 scope:global +it_8028E828 = .text:0x8028E828; // type:function size:0x8 scope:local +it_8028E830 = .text:0x8028E830; // type:function size:0x4 scope:local +it_8028E834 = .text:0x8028E834; // type:function size:0x2C scope:local +it_8028E860 = .text:0x8028E860; // type:function size:0x28 scope:local +it_8028E888 = .text:0x8028E888; // type:function size:0x8 scope:local +it_8028E890 = .text:0x8028E890; // type:function size:0x30 scope:local +it_8028E8C0 = .text:0x8028E8C0; // type:function size:0x44 scope:local it_8028E904 = .text:0x8028E904; // type:function size:0x28 scope:global -it_8028E92C = .text:0x8028E92C; // type:function size:0x8 scope:global -it_8028E934 = .text:0x8028E934; // type:function size:0x4 scope:global +it_8028E92C = .text:0x8028E92C; // type:function size:0x8 scope:local +it_8028E934 = .text:0x8028E934; // type:function size:0x4 scope:local it_8028E938 = .text:0x8028E938; // type:function size:0x34 scope:global -it_8028E96C = .text:0x8028E96C; // type:function size:0x48 scope:global -it_8028E9B4 = .text:0x8028E9B4; // type:function size:0x4 scope:global +it_8028E96C = .text:0x8028E96C; // type:function size:0x48 scope:local +it_8028E9B4 = .text:0x8028E9B4; // type:function size:0x4 scope:local it_8028E9B8 = .text:0x8028E9B8; // type:function size:0x28 scope:global it_8028E9E0 = .text:0x8028E9E0; // type:function size:0x28 scope:global -it_8028EA08 = .text:0x8028EA08; // type:function size:0x4C scope:global +it_8028EA08 = .text:0x8028EA08; // type:function size:0x4C scope:local it_8028EA54 = .text:0x8028EA54; // type:function size:0x24 scope:global it_8028EA78 = .text:0x8028EA78; // type:function size:0x24 scope:global it_8028EA9C = .text:0x8028EA9C; // type:function size:0x24 scope:global it_8028EAC0 = .text:0x8028EAC0; // type:function size:0x20 scope:global it_8028EAE0 = .text:0x8028EAE0; // type:function size:0x20 scope:global it_8028EB00 = .text:0x8028EB00; // type:function size:0x28 scope:global -it_8028EB28 = .text:0x8028EB28; // type:function size:0x8 scope:global -it_8028EB30 = .text:0x8028EB30; // type:function size:0x4 scope:global -it_8028EB34 = .text:0x8028EB34; // type:function size:0x34 scope:global +it_8028EB28 = .text:0x8028EB28; // type:function size:0x8 scope:local +it_8028EB30 = .text:0x8028EB30; // type:function size:0x4 scope:local +it_8028EB34 = .text:0x8028EB34; // type:function size:0x34 scope:local it_8028EB68 = .text:0x8028EB68; // type:function size:0x20 scope:global it_8028EB88 = .text:0x8028EB88; // type:function size:0x110 scope:global it_8028EC98 = .text:0x8028EC98; // type:function size:0x48 scope:global @@ -14584,10 +14584,10 @@ it_802980D4 = .text:0x802980D4; // type:function size:0x40 scope:global it_80298114 = .text:0x80298114; // type:function size:0x34 scope:global it_80298148 = .text:0x80298148; // type:function size:0x20 scope:global it_80298168 = .text:0x80298168; // type:function size:0x144 scope:global -it_802982AC = .text:0x802982AC; // type:function size:0x54 scope:global -it_80298300 = .text:0x80298300; // type:function size:0x2D8 scope:global -it_802985D8 = .text:0x802985D8; // type:function size:0x20 scope:global -it_802985F8 = .text:0x802985F8; // type:function size:0x3C scope:global +it_802982AC = .text:0x802982AC; // type:function size:0x54 scope:local +it_80298300 = .text:0x80298300; // type:function size:0x2D8 scope:local +it_802985D8 = .text:0x802985D8; // type:function size:0x20 scope:local +it_802985F8 = .text:0x802985F8; // type:function size:0x3C scope:local it_80298634 = .text:0x80298634; // type:function size:0x8 scope:global it_8029863C = .text:0x8029863C; // type:function size:0x8 scope:global it_80298644 = .text:0x80298644; // type:function size:0x8 scope:global @@ -23118,8 +23118,8 @@ it_803F6370 = .data:0x803F6370; // type:object size:0x50 scope:global it_803F63C0 = .data:0x803F63C0; // type:object size:0xA0 scope:global it_803F6460 = .data:0x803F6460; // type:object size:0x28 scope:global it_803F6488 = .data:0x803F6488; // type:object size:0x70 scope:global -it_803F64F8 = .data:0x803F64F8; // type:object size:0x10 scope:global -it_803F6508 = .data:0x803F6508; // type:object size:0x28 scope:global +it_803F64F8 = .data:0x803F64F8; // type:object size:0x10 scope:local +@263 = .data:0x803F6508; // type:object size:0x25 scope:local data:string it_803F6530 = .data:0x803F6530; // type:object size:0x10 scope:global it_803F6540 = .data:0x803F6540; // type:object size:0x28 scope:global it_803F6568 = .data:0x803F6568; // type:object size:0xA0 scope:global @@ -26326,8 +26326,8 @@ it_804D52E0 = .sdata:0x804D52E0; // type:object size:0x8 scope:global it_804D52E8 = .sdata:0x804D52E8; // type:object size:0x8 scope:global it_804D52F0 = .sdata:0x804D52F0; // type:object size:0x8 scope:global it_804D52F8 = .sdata:0x804D52F8; // type:object size:0x8 scope:global -it_804D5300 = .sdata:0x804D5300; // type:object size:0x8 scope:global -it_804D5308 = .sdata:0x804D5308; // type:object size:0x8 scope:global +@261 = .sdata:0x804D5300; // type:object size:0x7 scope:local data:string +@262 = .sdata:0x804D5308; // type:object size:0x5 scope:local data:string it_804D5310 = .sdata:0x804D5310; // type:object size:0x8 scope:global it_804D5318 = .sdata:0x804D5318; // type:object size:0x8 scope:global it_804D5320 = .sdata:0x804D5320; // type:object size:0x8 scope:global @@ -32187,7 +32187,7 @@ it_804DCA50 = .sdata2:0x804DCA50; // type:object size:0x4 scope:global data:floa it_804DCA54 = .sdata2:0x804DCA54; // type:object size:0x4 scope:global data:float it_804DCA58 = .sdata2:0x804DCA58; // type:object size:0x8 scope:global data:double it_804DCA60 = .sdata2:0x804DCA60; // type:object size:0x8 scope:global data:double -it_804DCA68 = .sdata2:0x804DCA68; // type:object size:0x4 scope:global data:float +@187 = .sdata2:0x804DCA68; // type:object size:0x4 scope:local data:float it_804DCA70 = .sdata2:0x804DCA70; // type:object size:0x4 scope:global data:float it_804DCA78 = .sdata2:0x804DCA78; // type:object size:0x8 scope:global data:double it_804DCA80 = .sdata2:0x804DCA80; // type:object size:0x4 scope:global data:float @@ -32257,16 +32257,16 @@ it_804DCBBC = .sdata2:0x804DCBBC; // type:object size:0x4 scope:global data:floa it_804DCBC0 = .sdata2:0x804DCBC0; // type:object size:0x4 scope:global data:float it_804DCBC4 = .sdata2:0x804DCBC4; // type:object size:0x4 scope:global data:float it_804DCBC8 = .sdata2:0x804DCBC8; // type:object size:0x4 scope:global data:float -it_804DCBD0 = .sdata2:0x804DCBD0; // type:object size:0x4 scope:global data:float -it_804DCBD4 = .sdata2:0x804DCBD4; // type:object size:0x4 scope:global data:float -it_804DCBD8 = .sdata2:0x804DCBD8; // type:object size:0x4 scope:global data:float -it_804DCBDC = .sdata2:0x804DCBDC; // type:object size:0x4 scope:global data:float -it_804DCBE0 = .sdata2:0x804DCBE0; // type:object size:0x8 scope:global data:double -it_804DCBE8 = .sdata2:0x804DCBE8; // type:object size:0x8 scope:global data:double -it_804DCBF0 = .sdata2:0x804DCBF0; // type:object size:0x4 scope:global data:float -it_804DCBF4 = .sdata2:0x804DCBF4; // type:object size:0x4 scope:global data:float -it_804DCBF8 = .sdata2:0x804DCBF8; // type:object size:0x4 scope:global data:float -it_804DCC00 = .sdata2:0x804DCC00; // type:object size:0x8 scope:global data:double +@199 = .sdata2:0x804DCBD0; // type:object size:0x4 scope:local data:float +@200 = .sdata2:0x804DCBD4; // type:object size:0x4 scope:local data:float +@201 = .sdata2:0x804DCBD8; // type:object size:0x4 scope:local data:float +@259 = .sdata2:0x804DCBDC; // type:object size:0x4 scope:local data:float +@260 = .sdata2:0x804DCBE0; // type:object size:0x8 scope:local data:double +@264 = .sdata2:0x804DCBE8; // type:object size:0x8 scope:local data:double +@265 = .sdata2:0x804DCBF0; // type:object size:0x4 scope:local data:float +@266 = .sdata2:0x804DCBF4; // type:object size:0x4 scope:local data:float +@267 = .sdata2:0x804DCBF8; // type:object size:0x4 scope:local data:float +@312 = .sdata2:0x804DCC00; // type:object size:0x8 scope:local data:double it_804DCC08 = .sdata2:0x804DCC08; // type:object size:0x4 scope:global data:float it_804DCC0C = .sdata2:0x804DCC0C; // type:object size:0x4 scope:global data:float it_804DCC10 = .sdata2:0x804DCC10; // type:object size:0x4 scope:global data:float diff --git a/configure.py b/configure.py index 2d7f3e5dd5..080549ae49 100755 --- a/configure.py +++ b/configure.py @@ -970,7 +970,7 @@ def RuntimeLib(lib_name: str, objects: Objects) -> Library: Object(Matching, "melee/it/items/itparasol.c"), Object(NonMatching, "melee/it/items/itgshell.c"), Object(NonMatching, "melee/it/items/itrshell.c"), - Object(NonMatching, "melee/it/items/itlgun.c"), + Object(Matching, "melee/it/items/itlgun.c"), Object(NonMatching, "melee/it/items/itfreeze.c"), Object(NonMatching, "melee/it/items/itfoods.c"), Object(NonMatching, "melee/it/items/itmsbomb.c"), @@ -990,7 +990,7 @@ def RuntimeLib(lib_name: str, objects: Objects) -> Library: Object(Matching, "melee/it/items/itspycloak.c"), Object(NonMatching, "melee/it/items/ittarucann.c"), Object(NonMatching, "melee/it/items/itmball.c"), - Object(NonMatching, "melee/it/items/itlgunray.c"), + Object(Matching, "melee/it/items/itlgunray.c"), Object(NonMatching, "melee/it/items/itstarrodstar.c"), Object(NonMatching, "melee/it/items/itsscopebeam.c"), Object(NonMatching, "melee/it/items/itlgunbeam.c"), @@ -1489,14 +1489,17 @@ def RuntimeLib(lib_name: str, objects: Objects) -> Library: ), ] -# Optional extra categories for progress tracking -# Adjust as desired for your project -config.progress_categories = [ - ProgressCategory("game", "Game Code"), - ProgressCategory("hsd", "HSD Code"), - ProgressCategory("sdk", "Dolphin SDK Code"), - ProgressCategory("runtime", "Gekko Runtime Code"), -] +# Extra categories for progress tracking +config.progress_categories = ( + [ + ProgressCategory("game", "Game Code"), + ProgressCategory("hsd", "HSD Code"), + ProgressCategory("sdk", "Dolphin SDK Code"), + ProgressCategory("runtime", "Gekko Runtime Code"), + ] + if args.verbose + else [] +) config.progress_all = False config.progress_each_module = args.verbose diff --git a/obj_files.mk b/obj_files.mk index d065224b3e..f768ec4d3a 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -576,7 +576,7 @@ TEXT_O_FILES +=\ $(BUILD_DIR)/src/melee/it/items/itparasol.c.o\ $(BUILD_DIR)/asm/melee/it/items/itgshell.s.o\ $(BUILD_DIR)/asm/melee/it/items/itrshell.s.o\ - $(BUILD_DIR)/asm/melee/it/items/itlgun.s.o\ + $(BUILD_DIR)/src/melee/it/items/itlgun.c.o\ $(BUILD_DIR)/asm/melee/it/items/itfreeze.s.o\ $(BUILD_DIR)/asm/melee/it/items/itfoods.s.o\ $(BUILD_DIR)/asm/melee/it/items/itmsbomb.s.o\ @@ -596,7 +596,7 @@ TEXT_O_FILES +=\ $(BUILD_DIR)/src/melee/it/items/itspycloak.c.o\ $(BUILD_DIR)/asm/melee/it/items/ittarucann.s.o\ $(BUILD_DIR)/asm/melee/it/items/itmball.s.o\ - $(BUILD_DIR)/asm/melee/it/items/itlgunray.s.o\ + $(BUILD_DIR)/src/melee/it/items/itlgunray.c.o\ $(BUILD_DIR)/asm/melee/it/items/itstarrodstar.s.o\ $(BUILD_DIR)/asm/melee/it/items/itsscopebeam.s.o\ $(BUILD_DIR)/asm/melee/it/items/itlgunbeam.s.o\ diff --git a/src/melee/ft/ft_0CDD.c b/src/melee/ft/ft_0CDD.c index a8eaf703a7..1ed4656d58 100644 --- a/src/melee/ft/ft_0CDD.c +++ b/src/melee/ft/ft_0CDD.c @@ -263,7 +263,7 @@ void ftCo_800CE1D4(HSD_GObj* fighter_gobj) it_8026B594((Item_GObj*) fighter->item_gobj); if (fighter->item_gobj != NULL) { - it_8028E79C((Item_GObj*) fighter->item_gobj, + it_8028E79C((Item_GObj*) fighter->item_gobj, &pos1, fighter->facing_dir); // it_8028E79C((Item_GObj* ) fighter->item_gobj, &pos2, // fighter->facing_dir); efSync_Spawn(1073, fighter_gobj, pos2, diff --git a/src/melee/it/itCommonItems.h b/src/melee/it/itCommonItems.h index 185240f37e..6b9aa66918 100644 --- a/src/melee/it/itCommonItems.h +++ b/src/melee/it/itCommonItems.h @@ -150,17 +150,17 @@ typedef struct ItLGunBeamVars { } ItLGunBeamVars; typedef struct ItLGunRayAttr { - float x0; // speed? - float x4; // lifetime? + float speed; + float lifetime; float x8; float xC; -} ItLGunRayAttr; // Not sure if this struct size is correct or type of vars +} ItLGunRayAttr; typedef struct ItLGunRayVars { - float x0; // scale? - float x4; // angle? - float x8; // speed? - Vec3 xC; + /* ip+DD4 */ float scale; + /* ip+DD8 */ float angle; + /* ip+DDC */ float speed; + /* ip+DE0 */ Vec3 xC; } ItLGunRayVars; /// Eggs spawned on Yoshi stages / by Chansey diff --git a/src/melee/it/items/itfoxlaser.c b/src/melee/it/items/itfoxlaser.c index 5d506969f6..e53556fe8a 100644 --- a/src/melee/it/items/itfoxlaser.c +++ b/src/melee/it/items/itfoxlaser.c @@ -1,3 +1,5 @@ +#include "lb/forward.h" + #include "itfoxlaser.h" #include "it/inlines.h" @@ -5,6 +7,7 @@ #include "it/types.h" #include +#include #include #include #include @@ -25,7 +28,7 @@ inline void* getFoxLaser(Item* item) return &item->xDD4_itemVar; } -bool it_8029C4D4(Item_GObj* item_gobj) +bool it_8029C4D4(Item_GObj* item_gobj, CollData* arg1) { Item* item = GET_ITEM(item_gobj); return it_8026E9A4(item_gobj, &item->xDD4_itemVar.foxlaser.xDE0, @@ -150,11 +153,11 @@ void it_8029C9CC(Item_GObj* item_gobj) bool it_8029C9EC(Item_GObj* item_gobj) { Item* item = GET_ITEM(item_gobj); - Vec3 sp18 = item->pos; - u8 _[4] = { 0 }; - if (it_8029C4D4(item_gobj)) { + Vec3 pos = item->pos; + PAD_STACK(4); + if (it_8029C4D4(item_gobj, NULL)) { it_80275158(item_gobj, 1.0F); - item->pos = sp18; + item->pos = pos; } return false; } diff --git a/src/melee/it/items/itfoxlaser.h b/src/melee/it/items/itfoxlaser.h index d7c8f0bb37..cc51f0220c 100644 --- a/src/melee/it/items/itfoxlaser.h +++ b/src/melee/it/items/itfoxlaser.h @@ -3,12 +3,13 @@ #include #include "it/forward.h" +#include "lb/forward.h" #include #include #include "it/items/types.h" -/* 29C4D4 */ bool it_8029C4D4(Item_GObj*); +/* 29C4D4 */ bool it_8029C4D4(Item_GObj*, CollData*); /* 29C504 */ void it_8029C504(HSD_GObj* parent, Vec3* pos, enum_t msid, int kind, f32 angle, f32 arg9); /* 29C6A4 */ void it_8029C6A4(f32 angle, f32 vel, HSD_GObj* parent, Vec3* vec, diff --git a/src/melee/it/items/itlgun.c b/src/melee/it/items/itlgun.c index 80a8e5311b..cad6f42257 100644 --- a/src/melee/it/items/itlgun.c +++ b/src/melee/it/items/itlgun.c @@ -1,5 +1,8 @@ #include "itlgun.h" +#include "itlgunray.h" + +#include "it/inlines.h" #include "it/it_266F.h" #include "it/it_26B1.h" #include "it/types.h" @@ -9,236 +12,200 @@ #include #include -// void it_80298168(s32); /* extern */ -void it_80298168(HSD_GObj*); /* extern */ -int it_8028E828(HSD_GObj*); /* static */ -void it_8028E830(HSD_GObj*); /* static */ -int it_8028E834(HSD_GObj*); /* static */ -// void it_8028E860(s32 arg0, Item*); /* static */ -void it_8028E860(HSD_GObj*); /* static */ -int it_8028E888(HSD_GObj*); /* static */ -void it_8028E890(HSD_GObj*); /* static */ -int it_8028E8C0(HSD_GObj*); /* static */ -int it_8028E92C(HSD_GObj*); /* static */ -void it_8028E934(HSD_GObj*); /* static */ -int it_8028E96C(HSD_GObj*); /* static */ -void it_8028E9B4(HSD_GObj*); /* static */ -void it_8028EA08(HSD_GObj*); /* static */ -int it_8028EB28(HSD_GObj*); /* static */ -void it_8028EB30(HSD_GObj*); /* static */ -int it_8028EB34(HSD_GObj*); /* static */ +/* 28E7D8 */ static void it_8028E7D8(Item_GObj*); +/* 28E828 */ static bool it_8028E828(Item_GObj*); +/* 28E830 */ static void it_8028E830(Item_GObj*); +/* 28E834 */ static bool it_8028E834(Item_GObj*); +/* 28E860 */ static void it_8028E860(Item_GObj*); +/* 28E888 */ static bool it_8028E888(Item_GObj*); +/* 28E890 */ static void it_8028E890(Item_GObj*); +/* 28E8C0 */ static bool it_8028E8C0(Item_GObj*); +/* 28E92C */ static bool it_8028E92C(Item_GObj*); +/* 28E934 */ static void it_8028E934(Item_GObj*); +/* 28E96C */ static bool it_8028E96C(Item_GObj*); +/* 28E9B4 */ static void it_8028E9B4(Item_GObj*); +/* 28EA08 */ static void it_8028EA08(Item_GObj*); +/* 28EB28 */ static bool it_8028EB28(Item_GObj*); +/* 28EB30 */ static void it_8028EB30(Item_GObj*); +/* 28EB34 */ static bool it_8028EB34(Item_GObj*); ItemStateTable it_803F5CC8[] = { { -1, it_8028E828, it_8028E830, it_8028E834 }, { -1, it_8028E888, it_8028E890, it_8028E8C0 }, { -1, it_8028E92C, it_8028E934, NULL }, { 0, it_8028E96C, it_8028E9B4, NULL }, - { 1, it_8028E888, it_8028EA08, it_8028E8C0 }, + { +1, it_8028E888, it_8028EA08, it_8028E8C0 }, { -1, it_8028EB28, it_8028EB30, it_8028EB34 }, }; -void it_8028E738(Item_GObj* item_gobj) +void it_8028E738(Item_GObj* gobj) { - Item* item; - ItLGunAttr* item_spec_attr; - - item = item_gobj->user_data; - item_spec_attr = item->xC4_article_data->x4_specialAttributes; - item->xD4C = item_spec_attr->x0; - item->xDD4_itemVar.capsule.x0 = 0; - // it_8028E860(item_spec_attr->x0_float, item); - it_8028E860((HSD_GObj*) item_gobj); + Item* ip = gobj->user_data; + ItLGunAttr* item_spec_attr = ip->xC4_article_data->x4_specialAttributes; + ip->xD4C = item_spec_attr->x0; + ip->xDD4_itemVar.capsule.x0 = false; + it_8028E860(gobj); } -// void it_8028E774(void* item_gobj, void* arg1) { -// void it_8028E774(Item_GObj* item_gobj, itUnkAttributes* arg1) { -void it_8028E774(Item_GObj* item_gobj, Vec3* arg1) +void it_8028E774(Item_GObj* gobj, Vec3* arg1) { - ItLGunAttr* item_spec_attr; - - item_spec_attr = - ((Item*) item_gobj->user_data)->xC4_article_data->x4_specialAttributes; - // arg1->unk0 = (f32) item_spec_attr->x4_float; - // arg1->x0_float = item_spec_attr->x4; - arg1->x = item_spec_attr->x4; - // arg1->unk4 = (f32) item_spec_attr->x8; - // arg1->x4_float = item_spec_attr->x8; - arg1->y = item_spec_attr->x8; - // arg1->unk8 = (f32) item_spec_attr->xC; - // arg1->x8 = item_spec_attr->xC; - arg1->z = item_spec_attr->xC; + ItLGunAttr* da = GET_ITEM(gobj)->xC4_article_data->x4_specialAttributes; + arg1->x = da->x4; + arg1->y = da->x8; + arg1->z = da->xC; } -// void it_8028E79C(void* item_gobj) { -// void it_8028E79C(Item_GObj* item_gobj) { -void it_8028E79C(Item_GObj* item_gobj, f32 dir) +void it_8028E79C(Item_GObj* gobj, Vec3* pos, f32 facing_dir) { - Item* item; - - item = item_gobj->user_data; - if (item->xD4C > 0) { - item->xD4C -= 1; + Item* ip = GET_ITEM(gobj); + if (ip->xD4C > 0) { + --ip->xD4C; } - it_80298168(item->owner); + it_80298168(ip->owner, pos, facing_dir); } -void it_8028E7D8(HSD_GObj* item_gobj) +void it_8028E7D8(Item_GObj* gobj) { - Item* item; - - item = item_gobj->user_data; - item->x40_vel.z = 0.0f; - item->x40_vel.y = 0.0f; - item->x40_vel.x = 0.0f; - it_8026B390((Item_GObj*) item_gobj); - Item_80268E5C((Item_GObj*) item_gobj, 0, ITEM_ANIM_UPDATE); + Item* ip = GET_ITEM(gobj); + ip->x40_vel.x = ip->x40_vel.y = ip->x40_vel.z = 0.0f; + it_8026B390(gobj); + Item_80268E5C(gobj, 0, ITEM_ANIM_UPDATE); } -int it_8028E828(HSD_GObj* item_gobj) +bool it_8028E828(Item_GObj* gobj) { - return 0; + return false; } -void it_8028E830(HSD_GObj* item_gobj) {} +void it_8028E830(Item_GObj* gobj) {} -int it_8028E834(HSD_GObj* item_gobj) +bool it_8028E834(Item_GObj* gobj) { - it_8026D62C((Item_GObj*) item_gobj, it_8028E860); - return 0; + it_8026D62C(gobj, it_8028E860); + return false; } -// void it_8028E860(s32 arg0, Item* item) { -void it_8028E860(HSD_GObj* item_gobj) +void it_8028E860(Item_GObj* gobj) { - Item_80268E5C((Item_GObj*) item_gobj, 1, ITEM_ANIM_UPDATE); + Item_80268E5C(gobj, 1, ITEM_ANIM_UPDATE); } -int it_8028E888(HSD_GObj* item_gobj) +bool it_8028E888(HSD_GObj* gobj) { - return 0; + return false; } -void it_8028E890(HSD_GObj* item_gobj) +void it_8028E890(Item_GObj* gobj) { - ItemAttr* item_comm_attr; - - item_comm_attr = ((Item*) item_gobj->user_data)->xCC_item_attr; - it_80272860((Item_GObj*) item_gobj, item_comm_attr->x10_fall_speed, + ItemAttr* item_comm_attr = GET_ITEM(gobj)->xCC_item_attr; + it_80272860(gobj, item_comm_attr->x10_fall_speed, item_comm_attr->x14_fall_speed_max); } -int it_8028E8C0(HSD_GObj* item_gobj) +bool it_8028E8C0(HSD_GObj* gobj) { - if (((Item*) item_gobj->user_data)->xD4C != 0) { - it_8026E15C((Item_GObj*) item_gobj, it_8028E7D8); - return 0; + if (GET_ITEM(gobj)->xD4C != 0) { + it_8026E15C(gobj, it_8028E7D8); + return false; } - return it_8026DF34((Item_GObj*) item_gobj); + return it_8026DF34(gobj); } -void it_8028E904(Item_GObj* item_gobj) +void it_8028E904(Item_GObj* gobj) { - Item_80268E5C(item_gobj, 2, ITEM_ANIM_UPDATE); + Item_80268E5C(gobj, 2, ITEM_ANIM_UPDATE); } -int it_8028E92C(HSD_GObj* item_gobj) +bool it_8028E92C(HSD_GObj* gobj) { - return 0; + return false; } -void it_8028E934(HSD_GObj* item_gobj) {} +void it_8028E934(HSD_GObj* gobj) {} -// void it_8028E938(HSD_GObj* item_gobj) { -void it_8028E938(Item_GObj* item_gobj) +void it_8028E938(Item_GObj* gobj) { - ((Item*) item_gobj->user_data)->xDD4_itemVar.lgun.x0 = 0x28; - Item_80268E5C(item_gobj, 3, ITEM_ANIM_UPDATE); + GET_ITEM(gobj)->xDD4_itemVar.lgun.x0 = 40; + Item_80268E5C(gobj, 3, ITEM_ANIM_UPDATE); } -// s32 it_8028E96C(HSD_GObj* item_gobj) { -int it_8028E96C(HSD_GObj* item_gobj) +bool it_8028E96C(Item_GObj* gobj) { - Item* item; - - item = item_gobj->user_data; - item->xDD4_itemVar.lgun.x0 -= 1; - if ((int) item->xDD4_itemVar.lgun.x0 <= 0) { - Item_80268E5C((Item_GObj*) item_gobj, 2, ITEM_ANIM_UPDATE); + Item* ip = GET_ITEM(gobj); + --ip->xDD4_itemVar.lgun.x0; + if (ip->xDD4_itemVar.lgun.x0 <= 0) { + Item_80268E5C(gobj, 2, ITEM_ANIM_UPDATE); } - return 0; + return false; } -void it_8028E9B4(HSD_GObj* item_gobj) {} +void it_8028E9B4(Item_GObj* gobj) {} -void it_8028E9B8(Item_GObj* item_gobj) +void it_8028E9B8(Item_GObj* gobj) { - Item_80268E5C(item_gobj, 4, 6); + Item_80268E5C(gobj, 4, 6); } -void it_8028E9E0(Item_GObj* item_gobj) +void it_8028E9E0(Item_GObj* gobj) { - Item_80268E5C(item_gobj, 4, 6); + Item_80268E5C(gobj, 4, 6); } -void it_8028EA08(HSD_GObj* item_gobj) +void it_8028EA08(Item_GObj* gobj) { - ItemAttr* item_comm_attr; - - item_comm_attr = ((Item*) item_gobj->user_data)->xCC_item_attr; - it_80272860((Item_GObj*) item_gobj, item_comm_attr->x10_fall_speed, + ItemAttr* item_comm_attr = GET_ITEM(gobj)->xCC_item_attr; + it_80272860(gobj, item_comm_attr->x10_fall_speed, item_comm_attr->x14_fall_speed_max); - it_80274658((HSD_GObj*) item_gobj, it_804D6D28->x68_float); + it_80274658(gobj, it_804D6D28->x68_float); } -int it_8028EA54(Item_GObj* item_gobj) +bool it_8028EA54(Item_GObj* gobj) { - itColl_BounceOffVictim(item_gobj); - return 0; + itColl_BounceOffVictim(gobj); + return false; } -int it_8028EA78(Item_GObj* item_gobj) +bool it_8028EA78(Item_GObj* gobj) { - itColl_BounceOffVictim((Item_GObj*) item_gobj); - return 0; + itColl_BounceOffVictim((Item_GObj*) gobj); + return false; } -int it_8028EA9C(Item_GObj* item_gobj) +bool it_8028EA9C(Item_GObj* gobj) { - itColl_BounceOffVictim(item_gobj); - return 0; + itColl_BounceOffVictim(gobj); + return false; } -int it_8028EAC0(Item_GObj* item_gobj) +bool it_8028EAC0(Item_GObj* gobj) { - return it_80273030(item_gobj); + return it_80273030(gobj); } -int it_8028EAE0(Item_GObj* item_gobj) +bool it_8028EAE0(Item_GObj* gobj) { - return itColl_BounceOffShield(item_gobj); + return itColl_BounceOffShield(gobj); } -void it_8028EB00(Item_GObj* item_gobj) +void it_8028EB00(Item_GObj* gobj) { - Item_80268E5C(item_gobj, 5, ITEM_ANIM_UPDATE); + Item_80268E5C(gobj, 5, ITEM_ANIM_UPDATE); } -int it_8028EB28(HSD_GObj* item_gobj) +bool it_8028EB28(Item_GObj* gobj) { - return 0; + return false; } -void it_8028EB30(HSD_GObj* item_gobj) {} +void it_8028EB30(Item_GObj* gobj) {} -int it_8028EB34(HSD_GObj* item_gobj) +bool it_8028EB34(Item_GObj* gobj) { - it_8026E8C4((Item_GObj*) item_gobj, (void (*)(HSD_GObj*)) it_8028E7D8, - it_8028E860); - return 0; + it_8026E8C4(gobj, it_8028E7D8, it_8028E860); + return false; } -// void it_8028EB68(Item_GObj* item_gobj_1, Item_GObj* item_gobj_2) { -void it_8028EB68(Item_GObj* item_gobj, HSD_GObj* ref_gobj) +void it_8028EB68(Item_GObj* gobj, HSD_GObj* ref_gobj) { - it_8026B894(item_gobj, ref_gobj); + it_8026B894(gobj, ref_gobj); } diff --git a/src/melee/it/items/itlgun.h b/src/melee/it/items/itlgun.h index 90b829ebd1..dabd84c186 100644 --- a/src/melee/it/items/itlgun.h +++ b/src/melee/it/items/itlgun.h @@ -21,7 +21,8 @@ /* 28EB68 */ void it_8028EB68(Item_GObj*, Item_GObj*); /* 3F5CC8 */ extern ItemStateTable it_803F5CC8[]; +void it_8028E938(Item_GObj*); void it_8028E774(Item_GObj*, Vec3*); -void it_8028E79C(Item_GObj* item_gobj, f32 dir); +void it_8028E79C(Item_GObj* gobj, Vec3* pos, f32 facing_dir); #endif diff --git a/src/melee/it/items/itlgunray.c b/src/melee/it/items/itlgunray.c index 9c0fe5c6da..7d35ff965a 100644 --- a/src/melee/it/items/itlgunray.c +++ b/src/melee/it/items/itlgunray.c @@ -1,6 +1,7 @@ #include "itlgunray.h" #include "db/db_2253.h" +#include "it/inlines.h" #include "it/it_266F.h" #include "it/it_26B1.h" #include "it/items/itfoxlaser.h" @@ -8,253 +9,168 @@ #include "lb/lbvector.h" #include +#include #include #include #include #include -// void it_802982AC(HSD_GObj); /* static */ -void it_802982AC(Item_GObj*, Item_GObj*, Article*); /* static */ -int it_80298300(HSD_GObj*); /* static */ -void it_802985D8(HSD_GObj*); /* static */ -int it_802985F8(HSD_GObj*); /* static */ -static s8 it_803F6508[0x25] = "!(jobj->flags & JOBJ_USE_QUATERNION)"; -static s8 it_804D5300[7] = "jobj.h"; -static s8 it_804D5308[5] = "jobj"; +/* 298300 */ static bool it_80298300(Item_GObj*); +/* 2983AC */ static void it_802982AC(Item_GObj*, Item_GObj*, Article*); +/* 2985D8 */ static void it_802985D8(Item_GObj*); +/* 2985F8 */ static bool it_802985F8(Item_GObj*); -static f32 it_804DCBD0 = 0.0f; -static f32 it_804DCBD4 = 1.0f; -static f32 it_804DCBD8 = 3.14159f; -static f32 it_804DCBDC = -1.0f; -static double it_804DCBE0 = M_PI_2; -static double it_804DCBE8 = M_PI; -static f32 it_804DCBF0 = 7.0f; -static f32 it_804DCBF4 = 0.00001f; -static f32 it_804DCBF8 = 0.001f; -static double it_804DCC00 = 2 * M_PI; +static float const scale = 1e-3f; -ItemStateTable it_803F64F8[1] = { +ItemStateTable it_803F64F8[] = { { 0, it_80298300, it_802985D8, it_802985F8 }, }; -// void it_80298168(HSD_GObj* owner_gobj, Vec3* arg1, f32 facing_dir) { -void it_80298168(HSD_GObj* owner_gobj, Vec3* pos, f32 dir) +void it_80298168(HSD_GObj* owner_gobj, Vec3* pos, f32 facing_dir) { - Article* article; - Item* item; - Item_GObj* item_gobj; SpawnItem spawn; - s32 unused; - - f32 var_f2; - ItLGunRayAttr* item_spec_attr; - - spawn.kind = 0x23; // type: LGunRay + spawn.kind = It_Kind_L_Gun_Ray; spawn.prev_pos = *pos; spawn.prev_pos.z = 0.0f; - it_8026BB68((Item_GObj*) owner_gobj, &spawn.pos); - spawn.facing_dir = dir; + it_8026BB68(owner_gobj, &spawn.pos); + spawn.facing_dir = facing_dir; spawn.x3C_damage = 0; - spawn.vel.z = 0.0f; - spawn.vel.y = 0.0f; - spawn.vel.x = 0.0f; + spawn.vel.x = spawn.vel.y = spawn.vel.z = 0.0f; spawn.x0_parent_gobj = owner_gobj; spawn.x4_parent_gobj2 = spawn.x0_parent_gobj; - spawn.x44_flag.bits.b0 = 1; // Not sure if this is the right bit + spawn.x44_flag.bits.b0 = true; spawn.x40 = 0; - item_gobj = Item_80268B18(&spawn); - if (item_gobj != NULL) { - item = item_gobj->user_data; - article = item->xC4_article_data; - item_spec_attr = article->x4_specialAttributes; - it_802982AC(item_gobj, (Item_GObj*) owner_gobj, article); - var_f2 = 0.0f; - item->xDD4_itemVar.lgunray.x0 = 0.0f; - if (item->facing_dir == 1.0f) { - // item->xDD4_itemVar.lgunray.x4 = 0.0f; - } else { - var_f2 = 3.1415927f; // Pi + { + Item_GObj* gobj = Item_80268B18(&spawn); + if (gobj != NULL) { + Item* ip = GET_ITEM(gobj); + Article* article = ip->xC4_article_data; + ItLGunRayAttr* item_spec_attr = article->x4_specialAttributes; + it_802982AC(gobj, owner_gobj, article); + ip->xDD4_itemVar.lgunray.scale = 0.0f; + ip->xDD4_itemVar.lgunray.angle = + ip->facing_dir == +1 ? 0 : (float) M_PI; + ip->xDD4_itemVar.lgunray.speed = item_spec_attr->speed; + ip->xDD4_itemVar.lgunray.xC = spawn.pos; + ip->x40_vel.x = item_spec_attr->speed * ip->facing_dir; + db_80225DD8(gobj, owner_gobj); } - item->xDD4_itemVar.lgunray.x4 = var_f2; - item->xDD4_itemVar.lgunray.x8 = item_spec_attr->x0; - item->xDD4_itemVar.lgunray.xC = spawn.pos; - item->x40_vel.x = item_spec_attr->x0 * item->facing_dir; - db_80225DD8(item_gobj, (Fighter_GObj*) owner_gobj); } } -// void it_802982AC(HSD_GObj* item_gobj) { -void it_802982AC(Item_GObj* item_gobj, Item_GObj* owner_gobj, Article* article) +void it_802982AC(Item_GObj* gobj, Item_GObj* owner_gobj, Article* article) { - it_80275158((HSD_GObj*) item_gobj, - ((ItLGunRayAttr*) ((Item*) item_gobj->user_data) - ->xC4_article_data->x4_specialAttributes) - ->x4); - it_8026B3A8((Item_GObj*) item_gobj); - Item_80268E5C((HSD_GObj*) item_gobj, 0, ITEM_ANIM_UPDATE); + ItLGunRayAttr* da = GET_ITEM(gobj)->xC4_article_data->x4_specialAttributes; + it_80275158(gobj, da->lifetime); + it_8026B3A8(gobj); + Item_80268E5C(gobj, 0, ITEM_ANIM_UPDATE); } -int it_80298300(HSD_GObj* item_gobj) +int it_80298300(HSD_GObj* gobj) { - HSD_JObj* item_jobj; - Item* item; - // f32 rot_y; - // f32 rot_x; - // f32 scale_z; - f32 dir; - f32 var_f2; - ItLGunRayAttr* item_spec_attr; - - item = item_gobj->user_data; - item_jobj = item_gobj->hsd_obj; - item_spec_attr = item->xC4_article_data->x4_specialAttributes; - item->x40_vel.x = - item->xDD4_itemVar.lgunray.x8 * cosf(item->xDD4_itemVar.lgunray.x4); - item->x40_vel.y = - item->xDD4_itemVar.lgunray.x8 * sinf(item->xDD4_itemVar.lgunray.x4); - item->x40_vel.z = 0.0f; - if (item->x40_vel.x > 0.0f) { - dir = 1.0f; - } else { - dir = -1.0f; + Item* ip = GET_ITEM(gobj); + ItLGunRayAttr* item_spec_attr = ip->xC4_article_data->x4_specialAttributes; + HSD_JObj* jobj = GET_JOBJ(gobj); + + ip->x40_vel.x = + ip->xDD4_itemVar.lgunray.speed * cosf(ip->xDD4_itemVar.lgunray.angle); + ip->x40_vel.y = + ip->xDD4_itemVar.lgunray.speed * sinf(ip->xDD4_itemVar.lgunray.angle); + ip->x40_vel.z = 0.0f; + ip->facing_dir = ip->x40_vel.x > 0.0f ? +1.0F : -1.0F; + + HSD_JObjSetRotationY(jobj, M_PI_2 * ip->facing_dir); + + HSD_JObjSetRotationX(jobj, + M_PI + atan2f(ip->x40_vel.y, ip->facing_dir == 1.0f + ? -ip->x40_vel.x + : +ip->x40_vel.x)); + + ip->xDD4_itemVar.lgunray.scale += + ABS(ip->xDD4_itemVar.lgunray.speed) / 7.0f; + if (ip->xDD4_itemVar.lgunray.scale > item_spec_attr->x8) { + ip->xDD4_itemVar.lgunray.scale = item_spec_attr->x8; } - item->facing_dir = dir; - // rot_y = 1.5707963267948966 * item->facing_dir; // half-pi - if (item_jobj == NULL) { - HSD_JObjSetRotationY(item_jobj, - (1.5707963267948966 * item->facing_dir)); - // } - - if (item->facing_dir == 1.0f) { - // var_f2 = -1 * item->x40_vel.x; - var_f2 = -item->x40_vel.x; - } else { - var_f2 = item->x40_vel.x; - } - // rot_x = 3.141592653589793 + atan2f(item->x40_vel.y, var_f2); - // if (item_jobj == NULL) { - HSD_JObjSetRotationX( - item_jobj, (3.141592653589793 + atan2f(item->x40_vel.y, var_f2))); - // } - var_f2 = item->xDD4_itemVar.lgunray.x8; - if (item->xDD4_itemVar.lgunray.x8 < 0.0f) { // Get abs. value - // var_f2 *= -1; - var_f2 = -var_f2; - } - item->xDD4_itemVar.lgunray.x0 += var_f2 / 7.0f; - if (item->xDD4_itemVar.lgunray.x0 > item_spec_attr->x8) { - item->xDD4_itemVar.lgunray.x0 = item_spec_attr->x8; - } - if (item->xDD4_itemVar.lgunray.x0 < 0.00001f) { - item->xDD4_itemVar.lgunray.x0 = 0.001f; - } - // scale_z = item->xDD4_itemVar.lgunray.x0; - // if (item_jobj == NULL) { - HSD_JObjSetScaleZ(item_jobj, item->xDD4_itemVar.lgunray.x0); - - it_80273130((Item_GObj*) item_gobj); + if (ip->xDD4_itemVar.lgunray.scale < 1e-5f) { + ip->xDD4_itemVar.lgunray.scale = scale; } + HSD_JObjSetScaleZ(jobj, ip->xDD4_itemVar.lgunray.scale); -#ifdef BUGFIX - return 0; -#endif + return it_80273130(gobj); } -void it_802985D8(HSD_GObj* item_gobj) +void it_802985D8(HSD_GObj* gobj) { - Item* item; - item = item_gobj->user_data; - item->xDD4_itemVar.lgunray.xC = item->pos; + Item* ip = GET_ITEM(gobj); + ip->xDD4_itemVar.lgunray.xC = ip->pos; } -int it_802985F8(HSD_GObj* item_gobj) +int it_802985F8(HSD_GObj* gobj) { - CollData item_coll = ((Item*) item_gobj->user_data) - ->x378_itemColl; // Not sure how this is used - if (it_8029C4D4((Item_GObj*) item_gobj) != 0) { // Fox laser function - return 1; + Item* ip = GET_ITEM(gobj); + if (it_8029C4D4(gobj, &ip->x378_itemColl)) { + return true; } - return 0; + return false; } -int it_80298634(Item_GObj* item_gobj) +bool it_80298634(Item_GObj* gobj) { - return 1; + return true; } -int it_8029863C(Item_GObj* item_gobj) +bool it_8029863C(Item_GObj* gobj) { - return 1; + return true; } -int it_80298644(Item_GObj* item_gobj) +bool it_80298644(Item_GObj* gobj) { - return 1; + return true; } -int it_8029864C(Item_GObj* item_gobj) +bool it_8029864C(Item_GObj* gobj) { - return 1; + return true; } -int it_80298654(Item_GObj* item_gobj) +bool it_80298654(Item_GObj* gobj) { - HSD_JObj* item_jobj; - Item* item; - - item = item_gobj->user_data; - item_jobj = item_gobj->hsd_obj; - // item->facing_dir *= -1; - item->facing_dir = -item->facing_dir; - if (item_jobj == NULL) { - HSD_JObjSetRotationY(item_jobj, - (1.5707963267948966 * item->facing_dir)); - // } - item->xDD4_itemVar.lgunray.x8 *= item->xC70; - item->xDD4_itemVar.lgunray.x0 = 0.001f; - // if (item_jobj == NULL) { - HSD_JObjSetScaleZ(item_jobj, 0.001f); - // } - item->xDD4_itemVar.lgunray.x4 += 3.141592653589793; - } -loop_26: - if (item->xDD4_itemVar.lgunray.x4 < 0.0f) { - item->xDD4_itemVar.lgunray.x4 += 6.283185307179586; - goto loop_26; + Item* ip = GET_ITEM(gobj); + HSD_JObj* jobj = GET_JOBJ(gobj); + ip->facing_dir = -ip->facing_dir; + HSD_JObjSetRotationY(jobj, M_PI_2 * ip->facing_dir); + ip->xDD4_itemVar.lgunray.speed *= ip->xC70; + HSD_JObjSetScaleZ(jobj, ip->xDD4_itemVar.lgunray.scale = scale); + ip->xDD4_itemVar.lgunray.angle += M_PI; + + while (ip->xDD4_itemVar.lgunray.angle < 0.0f) { + ip->xDD4_itemVar.lgunray.angle += 2 * M_PI; } -loop_29: - if (item->xDD4_itemVar.lgunray.x4 > 6.283185307179586) { - item->xDD4_itemVar.lgunray.x4 -= 6.283185307179586; - goto loop_29; + while (ip->xDD4_itemVar.lgunray.angle > 2 * M_PI) { + ip->xDD4_itemVar.lgunray.angle -= 2 * M_PI; } - return 0; + return false; } -int it_80298828(Item_GObj* item_gobj) +bool it_80298828(Item_GObj* gobj) { - Item* item; - f32 unused1; - f32 unused2; - - item = item_gobj->user_data; - lbVector_Mirror(&item->x40_vel, &item->xC58); - item->xDD4_itemVar.lgunray.x0 = 0.001f; - item->xDD4_itemVar.lgunray.x4 = atan2f(item->x40_vel.y, item->x40_vel.x); -loop_2: - if (item->xDD4_itemVar.lgunray.x4 < 0.0f) { - item->xDD4_itemVar.lgunray.x4 += 6.283185307179586; - goto loop_2; + Item* ip = GET_ITEM(gobj); + PAD_STACK(4); + lbVector_Mirror(&ip->x40_vel, &ip->xC58); + ip->xDD4_itemVar.lgunray.scale = scale; + ip->xDD4_itemVar.lgunray.angle = atan2f(ip->x40_vel.y, ip->x40_vel.x); + while (ip->xDD4_itemVar.lgunray.angle < 0.0f) { + ip->xDD4_itemVar.lgunray.angle += 2 * M_PI; } -loop_5: - if (item->xDD4_itemVar.lgunray.x4 > 6.283185307179586) { - item->xDD4_itemVar.lgunray.x4 -= 6.283185307179586; - goto loop_5; + while (ip->xDD4_itemVar.lgunray.angle > 2 * M_PI) { + ip->xDD4_itemVar.lgunray.angle -= 2 * M_PI; } - return 0; + return false; } -void it_802988C4(Item_GObj* item_gobj, HSD_GObj* ref_gobj) +void it_802988C4(Item_GObj* gobj, HSD_GObj* ref_gobj) { - it_8026B894(item_gobj, ref_gobj); + it_8026B894(gobj, ref_gobj); } diff --git a/src/melee/it/items/itlgunray.h b/src/melee/it/items/itlgunray.h index 5c10494030..a7e23c3429 100644 --- a/src/melee/it/items/itlgunray.h +++ b/src/melee/it/items/itlgunray.h @@ -3,9 +3,11 @@ #include #include "it/forward.h" +#include #include "it/items/types.h" +/* 298168 */ void it_80298168(HSD_GObj* owner_gobj, Vec3* pos, f32 facing_dir); /* 298634 */ bool it_80298634(Item_GObj*); /* 29863C */ bool it_8029863C(Item_GObj*); /* 298644 */ bool it_80298644(Item_GObj*); diff --git a/tools/convert_hex.py b/tools/convert_hex.py deleted file mode 100755 index 67178f3643..0000000000 --- a/tools/convert_hex.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import re -import sys -from typing import Optional - - -def convert_hex(content: str) -> str: - return re.sub( - r"\b0x([0-9a-fA-F]{1,7})U?\b", - lambda x: str(int(x.group(1), 16)), - content, - ) - - -def process_input(input_file: Optional[str]) -> None: - if input_file == "-" or not input_file: - content = sys.stdin.read() - sys.stdout.write(convert_hex(content)) - else: - with open(input_file, "r") as f: - content = f.read() - - content = convert_hex(content) - - with open(input_file, "w") as f: - f.write(content) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="Convert hexadecimal numbers to decimal in a text file" - ) - parser.add_argument( - "input_file", - metavar="INPUT_FILE", - nargs="?", - default="", - help='input file to process (use "-" for stdin)', - ) - args = parser.parse_args() - - process_input(args.input_file) diff --git a/tools/fix.py b/tools/fix.py new file mode 100755 index 0000000000..8389aaaf97 --- /dev/null +++ b/tools/fix.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 + +import argparse +import re +import sys +from collections.abc import Callable +from typing import TextIO, cast + + +def convert_hex(content: str) -> str: + return re.sub( + r"\b0x([0-9a-fA-F]{1,7})U?\b", + lambda m: str(int(m.group(1), 16)), + content, + ) + + +def fix_bool(content: str) -> str: + def replace(m: re.Match[str]) -> str: + match (s := m.group(0)): + case "0": + return "false" + case "1": + return "true" + case "0U" | "0u": + return "NULL" + case "int": + return "bool" + case _: + assert False, f'Unknown regex match "{s}"' + + return re.sub( + r"(? str: + return re.sub( + r"\s*\([\w*]+\)\s*", + "", + content, + ) + + +def process_input(input: str, func: Callable[[str], str]) -> None: + def write(in_fp: Callable[[], TextIO], out_fp: Callable[[], TextIO]): + with in_fp() as fp: + content = fp.read() + content = func(content) + with out_fp() as fp: + _ = fp.write(content) + + if input == "-": + write(lambda: sys.stdin, lambda: sys.stdout) + else: + write(lambda: open(input, "r"), lambda: open(input, "w")) + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Fix various issues with source code", + ) + _ = parser.add_argument( + "mode", + type=str.lower, + metavar="MODE", + choices=[ + "bool", + "cast", + "hex", + ], + default="-", + help="which action to take", + ) + _ = parser.add_argument( + "input", + type=str, + metavar="INPUT", + nargs="?", + default="-", + help='input file to process (use "-" for stdin)', + ) + args = parser.parse_args() + + # TODO subparser instead of mode switch (for help messages) + def choose_action(mode: str) -> Callable[[str], str]: + match mode: + case "bool": + return fix_bool + case "cast": + return remove_cast + case "hex": + return convert_hex + case _: + assert False, f'Unknown mode "{mode}"' + + process_input( + cast(str, args.input), + choose_action(cast(str, args.mode)), + ) + + +if __name__ == "__main__": + main()