Link RumbleMgr.cpp

This commit is contained in:
HeartPiece 2023-09-17 12:58:28 +10:00
parent 104b89b6e0
commit ed62842737
8 changed files with 298 additions and 2016 deletions

View File

@ -1,881 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
.obj lbl_80484868, local
.asciz "246-RumbleMgr"
.endobj lbl_80484868
.balign 4
.obj lbl_80484878, local
.asciz "RumbleMgr"
.endobj lbl_80484878
.balign 4
.obj lbl_80484884, local
.asciz "RumbleParms"
.endobj lbl_80484884
.balign 4
.obj lbl_80484890, local
.asciz "Max Distance"
.endobj lbl_80484890
.balign 4
.obj lbl_804848A0, local
.asciz "/user/Nishimura/Rumble/rumbleParms.txt"
.endobj lbl_804848A0
.balign 4
.obj lbl_804848C8, local
.asciz "/user/Nishimura/Rumble/rumbleData.txt"
.endobj lbl_804848C8
.balign 4
.obj lbl_804848F0, local
.asciz "RumbleMgr.cpp"
.endobj lbl_804848F0
.balign 4
.obj lbl_80484900, local
.asciz "not zukan mode\n"
.endobj lbl_80484900
.balign 4
.obj lbl_80484910, local
.asciz "rumble parameter none\n"
.endobj lbl_80484910
.balign 4
.obj lbl_80484928, local
.asciz "rumble data none\n"
.endobj lbl_80484928
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.obj __vt__Q24Game9RumbleMgr, weak
.4byte 0
.4byte 0
.4byte __dt__Q24Game9RumbleMgrFv
.4byte getChildCount__5CNodeFv
.endobj __vt__Q24Game9RumbleMgr
.section .sbss # 0x80514D80 - 0x80516360
.balign 8
.obj rumbleMgr__4Game, global
.skip 0x4
.endobj rumbleMgr__4Game
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.balign 8
.obj lbl_8051A978, local
.float 750.0
.endobj lbl_8051A978
.obj lbl_8051A97C, local
.float 0.0
.endobj lbl_8051A97C
.obj lbl_8051A980, local
.float 1000.0
.endobj lbl_8051A980
.obj lbl_8051A984, local
.float 2.0
.endobj lbl_8051A984
.obj lbl_8051A988, local
.float 1.0
.endobj lbl_8051A988
.section .text, "ax" # 0x800056C0 - 0x80472F00
.fn __ct__Q24Game9RumbleMgrFv, global
/* 80253304 00250244 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80253308 00250248 7C 08 02 A6 */ mflr r0
/* 8025330C 0025024C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80253310 00250250 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80253314 00250254 7C 7F 1B 78 */ mr r31, r3
/* 80253318 00250258 48 1B E0 79 */ bl __ct__5CNodeFv
/* 8025331C 0025025C 3C 60 80 4C */ lis r3, __vt__Q24Game9RumbleMgr@ha
/* 80253320 00250260 3C 80 80 48 */ lis r4, lbl_80484878@ha
/* 80253324 00250264 38 03 1B F8 */ addi r0, r3, __vt__Q24Game9RumbleMgr@l
/* 80253328 00250268 7F E3 FB 78 */ mr r3, r31
/* 8025332C 0025026C 90 1F 00 00 */ stw r0, 0(r31)
/* 80253330 00250270 38 04 48 78 */ addi r0, r4, lbl_80484878@l
/* 80253334 00250274 90 1F 00 14 */ stw r0, 0x14(r31)
/* 80253338 00250278 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8025333C 0025027C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80253340 00250280 7C 08 03 A6 */ mtlr r0
/* 80253344 00250284 38 21 00 10 */ addi r1, r1, 0x10
/* 80253348 00250288 4E 80 00 20 */ blr
.endfn __ct__Q24Game9RumbleMgrFv
.fn loadResource__Q24Game9RumbleMgrFv, global
/* 8025334C 0025028C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80253350 00250290 7C 08 02 A6 */ mflr r0
/* 80253354 00250294 3C 80 80 48 */ lis r4, lbl_80484868@ha
/* 80253358 00250298 90 01 00 24 */ stw r0, 0x24(r1)
/* 8025335C 0025029C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80253360 002502A0 7C 7F 1B 78 */ mr r31, r3
/* 80253364 002502A4 38 60 00 38 */ li r3, 0x38
/* 80253368 002502A8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8025336C 002502AC 3B C4 48 68 */ addi r30, r4, lbl_80484868@l
/* 80253370 002502B0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80253374 002502B4 93 81 00 10 */ stw r28, 0x10(r1)
/* 80253378 002502B8 4B DD 0B 2D */ bl __nw__FUl
/* 8025337C 002502BC 7C 7D 1B 79 */ or. r29, r3, r3
/* 80253380 002502C0 41 82 00 58 */ beq .L_802533D8
/* 80253384 002502C4 38 1D 00 34 */ addi r0, r29, 0x34
/* 80253388 002502C8 3C A0 72 72 */ lis r5, 0x7272646D@ha
/* 8025338C 002502CC 90 1D 00 00 */ stw r0, 0(r29)
/* 80253390 002502D0 38 60 00 00 */ li r3, 0
/* 80253394 002502D4 38 1E 00 1C */ addi r0, r30, 0x1c
/* 80253398 002502D8 7F A4 EB 78 */ mr r4, r29
/* 8025339C 002502DC 90 7D 00 04 */ stw r3, 4(r29)
/* 802533A0 002502E0 38 7D 00 0C */ addi r3, r29, 0xc
/* 802533A4 002502E4 38 A5 64 6D */ addi r5, r5, 0x7272646D@l
/* 802533A8 002502E8 38 DE 00 28 */ addi r6, r30, 0x28
/* 802533AC 002502EC 90 1D 00 08 */ stw r0, 8(r29)
/* 802533B0 002502F0 48 1C 02 A9 */ bl __ct__8BaseParmFP10ParametersUlPc
/* 802533B4 002502F4 3C 60 80 4B */ lis r3, "__vt__7Parm<f>"@ha
/* 802533B8 002502F8 C0 42 C6 18 */ lfs f2, lbl_8051A978@sda21(r2)
/* 802533BC 002502FC 38 03 AC BC */ addi r0, r3, "__vt__7Parm<f>"@l
/* 802533C0 00250300 C0 22 C6 1C */ lfs f1, lbl_8051A97C@sda21(r2)
/* 802533C4 00250304 90 1D 00 0C */ stw r0, 0xc(r29)
/* 802533C8 00250308 C0 02 C6 20 */ lfs f0, lbl_8051A980@sda21(r2)
/* 802533CC 0025030C D0 5D 00 24 */ stfs f2, 0x24(r29)
/* 802533D0 00250310 D0 3D 00 2C */ stfs f1, 0x2c(r29)
/* 802533D4 00250314 D0 1D 00 30 */ stfs f0, 0x30(r29)
.L_802533D8:
/* 802533D8 00250318 93 BF 00 24 */ stw r29, 0x24(r31)
/* 802533DC 0025031C 7F E3 FB 78 */ mr r3, r31
/* 802533E0 00250320 38 9E 00 38 */ addi r4, r30, 0x38
/* 802533E4 00250324 48 00 08 55 */ bl readRumbleParms__Q24Game9RumbleMgrFPc
/* 802533E8 00250328 38 60 00 08 */ li r3, 8
/* 802533EC 0025032C 4B DD 0A B9 */ bl __nw__FUl
/* 802533F0 00250330 7C 60 1B 79 */ or. r0, r3, r3
/* 802533F4 00250334 41 82 00 0C */ beq .L_80253400
/* 802533F8 00250338 48 00 DF D5 */ bl __ct__Q24Game13RumbleDataMgrFv
/* 802533FC 0025033C 7C 60 1B 78 */ mr r0, r3
.L_80253400:
/* 80253400 00250340 90 1F 00 28 */ stw r0, 0x28(r31)
/* 80253404 00250344 7F E3 FB 78 */ mr r3, r31
/* 80253408 00250348 38 9E 00 60 */ addi r4, r30, 0x60
/* 8025340C 0025034C 48 00 08 ED */ bl readRumbleData__Q24Game9RumbleMgrFPc
/* 80253410 00250350 38 00 00 01 */ li r0, 1
/* 80253414 00250354 38 60 00 08 */ li r3, 8
/* 80253418 00250358 98 1F 00 18 */ stb r0, 0x18(r31)
/* 8025341C 0025035C 4B DD 0B 91 */ bl __nwa__FUl
/* 80253420 00250360 90 7F 00 20 */ stw r3, 0x20(r31)
/* 80253424 00250364 38 60 00 08 */ li r3, 8
/* 80253428 00250368 4B DD 0B 85 */ bl __nwa__FUl
/* 8025342C 0025036C 90 7F 00 1C */ stw r3, 0x1c(r31)
/* 80253430 00250370 3B C0 00 00 */ li r30, 0
/* 80253434 00250374 7F DD F3 78 */ mr r29, r30
/* 80253438 00250378 3B 80 00 00 */ li r28, 0
/* 8025343C 0025037C 93 DF 00 2C */ stw r30, 0x2c(r31)
/* 80253440 00250380 93 DF 00 30 */ stw r30, 0x30(r31)
.L_80253444:
/* 80253444 00250384 38 60 00 20 */ li r3, 0x20
/* 80253448 00250388 4B DD 0A 5D */ bl __nw__FUl
/* 8025344C 0025038C 7C 60 1B 79 */ or. r0, r3, r3
/* 80253450 00250390 41 82 00 14 */ beq .L_80253464
/* 80253454 00250394 7F 84 E3 78 */ mr r4, r28
/* 80253458 00250398 38 A0 00 08 */ li r5, 8
/* 8025345C 0025039C 4B FF F6 C5 */ bl __ct__Q24Game10ContRumbleFii
/* 80253460 002503A0 7C 60 1B 78 */ mr r0, r3
.L_80253464:
/* 80253464 002503A4 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253468 002503A8 3B 9C 00 01 */ addi r28, r28, 1
/* 8025346C 002503AC 2C 1C 00 02 */ cmpwi r28, 2
/* 80253470 002503B0 7C 03 E9 2E */ stwx r0, r3, r29
/* 80253474 002503B4 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 80253478 002503B8 7F C3 E9 2E */ stwx r30, r3, r29
/* 8025347C 002503BC 3B BD 00 04 */ addi r29, r29, 4
/* 80253480 002503C0 41 80 FF C4 */ blt .L_80253444
/* 80253484 002503C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80253488 002503C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8025348C 002503CC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80253490 002503D0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80253494 002503D4 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80253498 002503D8 7C 08 03 A6 */ mtlr r0
/* 8025349C 002503DC 38 21 00 20 */ addi r1, r1, 0x20
/* 802534A0 002503E0 4E 80 00 20 */ blr
.endfn loadResource__Q24Game9RumbleMgrFv
.fn init__Q24Game9RumbleMgrFv, global
/* 802534A4 002503E4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802534A8 002503E8 7C 08 02 A6 */ mflr r0
/* 802534AC 002503EC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802534B0 002503F0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802534B4 002503F4 7C 7F 1B 78 */ mr r31, r3
/* 802534B8 002503F8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802534BC 002503FC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802534C0 00250400 93 81 00 10 */ stw r28, 0x10(r1)
/* 802534C4 00250404 80 8D 9A EC */ lwz r4, sys@sda21(r13)
/* 802534C8 00250408 80 64 00 60 */ lwz r3, 0x60(r4)
/* 802534CC 0025040C 28 03 00 00 */ cmplwi r3, 0
/* 802534D0 00250410 41 82 00 1C */ beq .L_802534EC
/* 802534D4 00250414 88 63 00 3B */ lbz r3, 0x3b(r3)
/* 802534D8 00250418 7C 03 00 D0 */ neg r0, r3
/* 802534DC 0025041C 7C 00 1B 78 */ or r0, r0, r3
/* 802534E0 00250420 54 00 0F FE */ srwi r0, r0, 0x1f
/* 802534E4 00250424 98 1F 00 18 */ stb r0, 0x18(r31)
/* 802534E8 00250428 48 00 00 0C */ b .L_802534F4
.L_802534EC:
/* 802534EC 0025042C 38 00 00 01 */ li r0, 1
/* 802534F0 00250430 98 1F 00 18 */ stb r0, 0x18(r31)
.L_802534F4:
/* 802534F4 00250434 3B C0 00 00 */ li r30, 0
/* 802534F8 00250438 3B 80 00 00 */ li r28, 0
/* 802534FC 0025043C 93 DF 00 2C */ stw r30, 0x2c(r31)
/* 80253500 00250440 7F DD F3 78 */ mr r29, r30
/* 80253504 00250444 93 DF 00 30 */ stw r30, 0x30(r31)
.L_80253508:
/* 80253508 00250448 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 8025350C 0025044C 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 80253510 00250450 7C 63 E8 2E */ lwzx r3, r3, r29
/* 80253514 00250454 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80253518 00250458 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 8025351C 0025045C 7C 63 E8 2E */ lwzx r3, r3, r29
/* 80253520 00250460 4B FF F7 59 */ bl init__Q24Game10ContRumbleFv
/* 80253524 00250464 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 80253528 00250468 3B 9C 00 01 */ addi r28, r28, 1
/* 8025352C 0025046C 2C 1C 00 02 */ cmpwi r28, 2
/* 80253530 00250470 7F C3 E9 2E */ stwx r30, r3, r29
/* 80253534 00250474 3B BD 00 04 */ addi r29, r29, 4
/* 80253538 00250478 41 80 FF D0 */ blt .L_80253508
/* 8025353C 0025047C 80 6D 93 E8 */ lwz r3, gameSystem__4Game@sda21(r13)
/* 80253540 00250480 28 03 00 00 */ cmplwi r3, 0
/* 80253544 00250484 41 82 00 48 */ beq .L_8025358C
/* 80253548 00250488 80 03 00 44 */ lwz r0, 0x44(r3)
/* 8025354C 0025048C 2C 00 00 04 */ cmpwi r0, 4
/* 80253550 00250490 41 82 00 3C */ beq .L_8025358C
/* 80253554 00250494 3B 80 00 00 */ li r28, 0
/* 80253558 00250498 3B A0 00 00 */ li r29, 0
.L_8025355C:
/* 8025355C 0025049C 80 6D 92 E0 */ lwz r3, naviMgr__4Game@sda21(r13)
/* 80253560 002504A0 7F 84 E3 78 */ mr r4, r28
/* 80253564 002504A4 81 83 00 00 */ lwz r12, 0(r3)
/* 80253568 002504A8 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8025356C 002504AC 7D 89 03 A6 */ mtctr r12
/* 80253570 002504B0 4E 80 04 21 */ bctrl
/* 80253574 002504B4 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80253578 002504B8 3B 9C 00 01 */ addi r28, r28, 1
/* 8025357C 002504BC 2C 1C 00 02 */ cmpwi r28, 2
/* 80253580 002504C0 7C 64 E9 2E */ stwx r3, r4, r29
/* 80253584 002504C4 3B BD 00 04 */ addi r29, r29, 4
/* 80253588 002504C8 41 80 FF D4 */ blt .L_8025355C
.L_8025358C:
/* 8025358C 002504CC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80253590 002504D0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80253594 002504D4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80253598 002504D8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8025359C 002504DC 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802535A0 002504E0 7C 08 03 A6 */ mtlr r0
/* 802535A4 002504E4 38 21 00 20 */ addi r1, r1, 0x20
/* 802535A8 002504E8 4E 80 00 20 */ blr
.endfn init__Q24Game9RumbleMgrFv
.fn update__Q24Game9RumbleMgrFv, global
/* 802535AC 002504EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802535B0 002504F0 7C 08 02 A6 */ mflr r0
/* 802535B4 002504F4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802535B8 002504F8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802535BC 002504FC 7C 7F 1B 78 */ mr r31, r3
/* 802535C0 00250500 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802535C4 00250504 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802535C8 00250508 93 81 00 10 */ stw r28, 0x10(r1)
/* 802535CC 0025050C 48 00 05 2D */ bl isRumbleUpdateOn__Q24Game9RumbleMgrFv
/* 802535D0 00250510 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802535D4 00250514 41 82 01 8C */ beq .L_80253760
/* 802535D8 00250518 80 6D 93 E8 */ lwz r3, gameSystem__4Game@sda21(r13)
/* 802535DC 0025051C 28 03 00 00 */ cmplwi r3, 0
/* 802535E0 00250520 41 82 01 00 */ beq .L_802536E0
/* 802535E4 00250524 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802535E8 00250528 38 00 00 00 */ li r0, 0
/* 802535EC 0025052C 2C 03 00 01 */ cmpwi r3, 1
/* 802535F0 00250530 41 82 00 0C */ beq .L_802535FC
/* 802535F4 00250534 2C 03 00 03 */ cmpwi r3, 3
/* 802535F8 00250538 40 82 00 08 */ bne .L_80253600
.L_802535FC:
/* 802535FC 0025053C 38 00 00 01 */ li r0, 1
.L_80253600:
/* 80253600 00250540 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80253604 00250544 40 82 00 DC */ bne .L_802536E0
/* 80253608 00250548 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 8025360C 0025054C 28 00 00 00 */ cmplwi r0, 0
/* 80253610 00250550 41 82 00 38 */ beq .L_80253648
/* 80253614 00250554 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253618 00250558 38 80 00 01 */ li r4, 1
/* 8025361C 0025055C 80 63 00 00 */ lwz r3, 0(r3)
/* 80253620 00250560 4B FF F9 75 */ bl setController__Q24Game10ContRumbleFb
/* 80253624 00250564 80 9F 00 2C */ lwz r4, 0x2c(r31)
/* 80253628 00250568 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 8025362C 0025056C A8 04 00 7C */ lha r0, 0x7c(r4)
/* 80253630 00250570 80 63 00 00 */ lwz r3, 0(r3)
/* 80253634 00250574 90 03 00 04 */ stw r0, 4(r3)
/* 80253638 00250578 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 8025363C 0025057C 80 63 00 00 */ lwz r3, 0(r3)
/* 80253640 00250580 4B FF F6 C5 */ bl update__Q24Game10ContRumbleFv
/* 80253644 00250584 48 00 01 1C */ b .L_80253760
.L_80253648:
/* 80253648 00250588 80 6D 92 E0 */ lwz r3, naviMgr__4Game@sda21(r13)
/* 8025364C 0025058C 4B F0 75 D5 */ bl getActiveNavi__Q24Game7NaviMgrFv
/* 80253650 00250590 7C 7E 1B 78 */ mr r30, r3
/* 80253654 00250594 3B 80 00 00 */ li r28, 0
/* 80253658 00250598 3B A0 00 00 */ li r29, 0
.L_8025365C:
/* 8025365C 0025059C 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 80253660 002505A0 7C 63 E8 2E */ lwzx r3, r3, r29
/* 80253664 002505A4 28 03 00 00 */ cmplwi r3, 0
/* 80253668 002505A8 41 82 00 48 */ beq .L_802536B0
/* 8025366C 002505AC 80 03 02 78 */ lwz r0, 0x278(r3)
/* 80253670 002505B0 28 00 00 00 */ cmplwi r0, 0
/* 80253674 002505B4 41 82 00 3C */ beq .L_802536B0
/* 80253678 002505B8 7C 03 F0 40 */ cmplw r3, r30
/* 8025367C 002505BC 40 82 00 34 */ bne .L_802536B0
/* 80253680 002505C0 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253684 002505C4 38 80 00 01 */ li r4, 1
/* 80253688 002505C8 7C 63 E8 2E */ lwzx r3, r3, r29
/* 8025368C 002505CC 4B FF F9 09 */ bl setController__Q24Game10ContRumbleFb
/* 80253690 002505D0 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80253694 002505D4 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253698 002505D8 7C 84 E8 2E */ lwzx r4, r4, r29
/* 8025369C 002505DC 7C 63 E8 2E */ lwzx r3, r3, r29
/* 802536A0 002505E0 80 84 02 78 */ lwz r4, 0x278(r4)
/* 802536A4 002505E4 A8 04 00 7C */ lha r0, 0x7c(r4)
/* 802536A8 002505E8 90 03 00 04 */ stw r0, 4(r3)
/* 802536AC 002505EC 48 00 00 14 */ b .L_802536C0
.L_802536B0:
/* 802536B0 002505F0 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802536B4 002505F4 38 80 00 00 */ li r4, 0
/* 802536B8 002505F8 7C 63 E8 2E */ lwzx r3, r3, r29
/* 802536BC 002505FC 4B FF F8 D9 */ bl setController__Q24Game10ContRumbleFb
.L_802536C0:
/* 802536C0 00250600 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802536C4 00250604 7C 63 E8 2E */ lwzx r3, r3, r29
/* 802536C8 00250608 4B FF F6 3D */ bl update__Q24Game10ContRumbleFv
/* 802536CC 0025060C 3B 9C 00 01 */ addi r28, r28, 1
/* 802536D0 00250610 3B BD 00 04 */ addi r29, r29, 4
/* 802536D4 00250614 2C 1C 00 02 */ cmpwi r28, 2
/* 802536D8 00250618 41 80 FF 84 */ blt .L_8025365C
/* 802536DC 0025061C 48 00 00 84 */ b .L_80253760
.L_802536E0:
/* 802536E0 00250620 3B 80 00 00 */ li r28, 0
/* 802536E4 00250624 3B A0 00 00 */ li r29, 0
.L_802536E8:
/* 802536E8 00250628 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 802536EC 0025062C 7C 63 E8 2E */ lwzx r3, r3, r29
/* 802536F0 00250630 28 03 00 00 */ cmplwi r3, 0
/* 802536F4 00250634 41 82 00 40 */ beq .L_80253734
/* 802536F8 00250638 80 03 02 78 */ lwz r0, 0x278(r3)
/* 802536FC 0025063C 28 00 00 00 */ cmplwi r0, 0
/* 80253700 00250640 41 82 00 34 */ beq .L_80253734
/* 80253704 00250644 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253708 00250648 38 80 00 01 */ li r4, 1
/* 8025370C 0025064C 7C 63 E8 2E */ lwzx r3, r3, r29
/* 80253710 00250650 4B FF F8 85 */ bl setController__Q24Game10ContRumbleFb
/* 80253714 00250654 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80253718 00250658 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 8025371C 0025065C 7C 84 E8 2E */ lwzx r4, r4, r29
/* 80253720 00250660 7C 63 E8 2E */ lwzx r3, r3, r29
/* 80253724 00250664 80 84 02 78 */ lwz r4, 0x278(r4)
/* 80253728 00250668 A8 04 00 7C */ lha r0, 0x7c(r4)
/* 8025372C 0025066C 90 03 00 04 */ stw r0, 4(r3)
/* 80253730 00250670 48 00 00 14 */ b .L_80253744
.L_80253734:
/* 80253734 00250674 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253738 00250678 38 80 00 00 */ li r4, 0
/* 8025373C 0025067C 7C 63 E8 2E */ lwzx r3, r3, r29
/* 80253740 00250680 4B FF F8 55 */ bl setController__Q24Game10ContRumbleFb
.L_80253744:
/* 80253744 00250684 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 80253748 00250688 7C 63 E8 2E */ lwzx r3, r3, r29
/* 8025374C 0025068C 4B FF F5 B9 */ bl update__Q24Game10ContRumbleFv
/* 80253750 00250690 3B 9C 00 01 */ addi r28, r28, 1
/* 80253754 00250694 3B BD 00 04 */ addi r29, r29, 4
/* 80253758 00250698 2C 1C 00 02 */ cmpwi r28, 2
/* 8025375C 0025069C 41 80 FF 8C */ blt .L_802536E8
.L_80253760:
/* 80253760 002506A0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80253764 002506A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80253768 002506A8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8025376C 002506AC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80253770 002506B0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80253774 002506B4 7C 08 03 A6 */ mtlr r0
/* 80253778 002506B8 38 21 00 20 */ addi r1, r1, 0x20
/* 8025377C 002506BC 4E 80 00 20 */ blr
.endfn update__Q24Game9RumbleMgrFv
.fn "startRumble__Q24Game9RumbleMgrFiR10Vector3<f>i", global
/* 80253780 002506C0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80253784 002506C4 7C 08 02 A6 */ mflr r0
/* 80253788 002506C8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8025378C 002506CC BF 61 00 2C */ stmw r27, 0x2c(r1)
/* 80253790 002506D0 7C 7B 1B 78 */ mr r27, r3
/* 80253794 002506D4 7C 9C 23 78 */ mr r28, r4
/* 80253798 002506D8 7C BD 2B 78 */ mr r29, r5
/* 8025379C 002506DC 88 03 00 18 */ lbz r0, 0x18(r3)
/* 802537A0 002506E0 28 00 00 00 */ cmplwi r0, 0
/* 802537A4 002506E4 41 82 01 6C */ beq .L_80253910
/* 802537A8 002506E8 80 9B 00 30 */ lwz r4, 0x30(r27)
/* 802537AC 002506EC 28 04 00 00 */ cmplwi r4, 0
/* 802537B0 002506F0 41 82 00 88 */ beq .L_80253838
/* 802537B4 002506F4 C0 24 00 04 */ lfs f1, 4(r4)
/* 802537B8 002506F8 C0 1D 00 04 */ lfs f0, 4(r29)
/* 802537BC 002506FC C0 64 00 00 */ lfs f3, 0(r4)
/* 802537C0 00250700 EC 81 00 28 */ fsubs f4, f1, f0
/* 802537C4 00250704 C0 5D 00 00 */ lfs f2, 0(r29)
/* 802537C8 00250708 C0 24 00 08 */ lfs f1, 8(r4)
/* 802537CC 0025070C C0 1D 00 08 */ lfs f0, 8(r29)
/* 802537D0 00250710 EC 63 10 28 */ fsubs f3, f3, f2
/* 802537D4 00250714 EC 84 01 32 */ fmuls f4, f4, f4
/* 802537D8 00250718 EC 41 00 28 */ fsubs f2, f1, f0
/* 802537DC 0025071C C0 02 C6 1C */ lfs f0, lbl_8051A97C@sda21(r2)
/* 802537E0 00250720 EC 23 20 FA */ fmadds f1, f3, f3, f4
/* 802537E4 00250724 EC 42 00 B2 */ fmuls f2, f2, f2
/* 802537E8 00250728 EC 22 08 2A */ fadds f1, f2, f1
/* 802537EC 0025072C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802537F0 00250730 40 81 00 14 */ ble .L_80253804
/* 802537F4 00250734 40 81 00 14 */ ble .L_80253808
/* 802537F8 00250738 FC 00 08 34 */ frsqrte f0, f1
/* 802537FC 0025073C EC 20 00 72 */ fmuls f1, f0, f1
/* 80253800 00250740 48 00 00 08 */ b .L_80253808
.L_80253804:
/* 80253804 00250744 FC 20 00 90 */ fmr f1, f0
.L_80253808:
/* 80253808 00250748 C0 42 C6 20 */ lfs f2, lbl_8051A980@sda21(r2)
/* 8025380C 0025074C FC 01 10 40 */ fcmpo cr0, f1, f2
/* 80253810 00250750 40 80 01 00 */ bge .L_80253910
/* 80253814 00250754 EC 02 08 28 */ fsubs f0, f2, f1
/* 80253818 00250758 80 7B 00 20 */ lwz r3, 0x20(r27)
/* 8025381C 0025075C C0 22 C6 24 */ lfs f1, lbl_8051A984@sda21(r2)
/* 80253820 00250760 7F 84 E3 78 */ mr r4, r28
/* 80253824 00250764 80 63 00 00 */ lwz r3, 0(r3)
/* 80253828 00250768 EC 00 10 24 */ fdivs f0, f0, f2
/* 8025382C 0025076C EC 21 00 32 */ fmuls f1, f1, f0
/* 80253830 00250770 4B FF F7 BD */ bl startRumble__Q24Game10ContRumbleFif
/* 80253834 00250774 48 00 00 DC */ b .L_80253910
.L_80253838:
/* 80253838 00250778 7C C5 33 78 */ mr r5, r6
/* 8025383C 0025077C 38 81 00 08 */ addi r4, r1, 8
/* 80253840 00250780 48 00 03 91 */ bl isStartAndEnd__Q24Game9RumbleMgrFPii
/* 80253844 00250784 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80253848 00250788 41 82 00 C8 */ beq .L_80253910
/* 8025384C 0025078C 80 01 00 08 */ lwz r0, 8(r1)
/* 80253850 00250790 7C 1E 03 78 */ mr r30, r0
/* 80253854 00250794 54 1F 10 3A */ slwi r31, r0, 2
/* 80253858 00250798 48 00 00 AC */ b .L_80253904
.L_8025385C:
/* 8025385C 0025079C 80 7B 00 1C */ lwz r3, 0x1c(r27)
/* 80253860 002507A0 7C 83 F8 2E */ lwzx r4, r3, r31
/* 80253864 002507A4 28 04 00 00 */ cmplwi r4, 0
/* 80253868 002507A8 41 82 00 94 */ beq .L_802538FC
/* 8025386C 002507AC 81 84 00 00 */ lwz r12, 0(r4)
/* 80253870 002507B0 38 61 00 10 */ addi r3, r1, 0x10
/* 80253874 002507B4 81 8C 00 08 */ lwz r12, 8(r12)
/* 80253878 002507B8 7D 89 03 A6 */ mtctr r12
/* 8025387C 002507BC 4E 80 04 21 */ bctrl
/* 80253880 002507C0 C0 3D 00 04 */ lfs f1, 4(r29)
/* 80253884 002507C4 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 80253888 002507C8 C0 7D 00 00 */ lfs f3, 0(r29)
/* 8025388C 002507CC EC 81 00 28 */ fsubs f4, f1, f0
/* 80253890 002507D0 C0 41 00 10 */ lfs f2, 0x10(r1)
/* 80253894 002507D4 C0 3D 00 08 */ lfs f1, 8(r29)
/* 80253898 002507D8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8025389C 002507DC EC 63 10 28 */ fsubs f3, f3, f2
/* 802538A0 002507E0 EC 84 01 32 */ fmuls f4, f4, f4
/* 802538A4 002507E4 EC 41 00 28 */ fsubs f2, f1, f0
/* 802538A8 002507E8 C0 02 C6 1C */ lfs f0, lbl_8051A97C@sda21(r2)
/* 802538AC 002507EC EC 23 20 FA */ fmadds f1, f3, f3, f4
/* 802538B0 002507F0 EC 42 00 B2 */ fmuls f2, f2, f2
/* 802538B4 002507F4 EC 22 08 2A */ fadds f1, f2, f1
/* 802538B8 002507F8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802538BC 002507FC 40 81 00 14 */ ble .L_802538D0
/* 802538C0 00250800 40 81 00 14 */ ble .L_802538D4
/* 802538C4 00250804 FC 00 08 34 */ frsqrte f0, f1
/* 802538C8 00250808 EC 20 00 72 */ fmuls f1, f0, f1
/* 802538CC 0025080C 48 00 00 08 */ b .L_802538D4
.L_802538D0:
/* 802538D0 00250810 FC 20 00 90 */ fmr f1, f0
.L_802538D4:
/* 802538D4 00250814 80 7B 00 24 */ lwz r3, 0x24(r27)
/* 802538D8 00250818 C0 43 00 24 */ lfs f2, 0x24(r3)
/* 802538DC 0025081C FC 01 10 40 */ fcmpo cr0, f1, f2
/* 802538E0 00250820 40 80 00 1C */ bge .L_802538FC
/* 802538E4 00250824 EC 02 08 28 */ fsubs f0, f2, f1
/* 802538E8 00250828 80 7B 00 20 */ lwz r3, 0x20(r27)
/* 802538EC 0025082C 7F 84 E3 78 */ mr r4, r28
/* 802538F0 00250830 7C 63 F8 2E */ lwzx r3, r3, r31
/* 802538F4 00250834 EC 20 10 24 */ fdivs f1, f0, f2
/* 802538F8 00250838 4B FF F6 F5 */ bl startRumble__Q24Game10ContRumbleFif
.L_802538FC:
/* 802538FC 0025083C 3B FF 00 04 */ addi r31, r31, 4
/* 80253900 00250840 3B DE 00 01 */ addi r30, r30, 1
.L_80253904:
/* 80253904 00250844 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80253908 00250848 7C 1E 00 00 */ cmpw r30, r0
/* 8025390C 0025084C 41 80 FF 50 */ blt .L_8025385C
.L_80253910:
/* 80253910 00250850 BB 61 00 2C */ lmw r27, 0x2c(r1)
/* 80253914 00250854 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80253918 00250858 7C 08 03 A6 */ mtlr r0
/* 8025391C 0025085C 38 21 00 40 */ addi r1, r1, 0x40
/* 80253920 00250860 4E 80 00 20 */ blr
.endfn "startRumble__Q24Game9RumbleMgrFiR10Vector3<f>i"
.fn startRumble__Q24Game9RumbleMgrFii, global
/* 80253924 00250864 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80253928 00250868 7C 08 02 A6 */ mflr r0
/* 8025392C 0025086C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80253930 00250870 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80253934 00250874 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80253938 00250878 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8025393C 0025087C 7C 9D 23 78 */ mr r29, r4
/* 80253940 00250880 93 81 00 10 */ stw r28, 0x10(r1)
/* 80253944 00250884 7C 7C 1B 78 */ mr r28, r3
/* 80253948 00250888 88 03 00 18 */ lbz r0, 0x18(r3)
/* 8025394C 0025088C 28 00 00 00 */ cmplwi r0, 0
/* 80253950 00250890 41 82 00 6C */ beq .L_802539BC
/* 80253954 00250894 80 1C 00 30 */ lwz r0, 0x30(r28)
/* 80253958 00250898 28 00 00 00 */ cmplwi r0, 0
/* 8025395C 0025089C 41 82 00 18 */ beq .L_80253974
/* 80253960 002508A0 80 7C 00 20 */ lwz r3, 0x20(r28)
/* 80253964 002508A4 C0 22 C6 28 */ lfs f1, lbl_8051A988@sda21(r2)
/* 80253968 002508A8 80 63 00 00 */ lwz r3, 0(r3)
/* 8025396C 002508AC 4B FF F6 81 */ bl startRumble__Q24Game10ContRumbleFif
/* 80253970 002508B0 48 00 00 4C */ b .L_802539BC
.L_80253974:
/* 80253974 002508B4 38 81 00 08 */ addi r4, r1, 8
/* 80253978 002508B8 48 00 02 59 */ bl isStartAndEnd__Q24Game9RumbleMgrFPii
/* 8025397C 002508BC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80253980 002508C0 41 82 00 3C */ beq .L_802539BC
/* 80253984 002508C4 80 01 00 08 */ lwz r0, 8(r1)
/* 80253988 002508C8 7C 1E 03 78 */ mr r30, r0
/* 8025398C 002508CC 54 1F 10 3A */ slwi r31, r0, 2
/* 80253990 002508D0 48 00 00 20 */ b .L_802539B0
.L_80253994:
/* 80253994 002508D4 80 7C 00 20 */ lwz r3, 0x20(r28)
/* 80253998 002508D8 7F A4 EB 78 */ mr r4, r29
/* 8025399C 002508DC C0 22 C6 28 */ lfs f1, lbl_8051A988@sda21(r2)
/* 802539A0 002508E0 7C 63 F8 2E */ lwzx r3, r3, r31
/* 802539A4 002508E4 4B FF F6 49 */ bl startRumble__Q24Game10ContRumbleFif
/* 802539A8 002508E8 3B FF 00 04 */ addi r31, r31, 4
/* 802539AC 002508EC 3B DE 00 01 */ addi r30, r30, 1
.L_802539B0:
/* 802539B0 002508F0 80 01 00 0C */ lwz r0, 0xc(r1)
/* 802539B4 002508F4 7C 1E 00 00 */ cmpw r30, r0
/* 802539B8 002508F8 41 80 FF DC */ blt .L_80253994
.L_802539BC:
/* 802539BC 002508FC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802539C0 00250900 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802539C4 00250904 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802539C8 00250908 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802539CC 0025090C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802539D0 00250910 7C 08 03 A6 */ mtlr r0
/* 802539D4 00250914 38 21 00 20 */ addi r1, r1, 0x20
/* 802539D8 00250918 4E 80 00 20 */ blr
.endfn startRumble__Q24Game9RumbleMgrFii
.fn stopRumble__Q24Game9RumbleMgrFii, global
/* 802539DC 0025091C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802539E0 00250920 7C 08 02 A6 */ mflr r0
/* 802539E4 00250924 90 01 00 24 */ stw r0, 0x24(r1)
/* 802539E8 00250928 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802539EC 0025092C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802539F0 00250930 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802539F4 00250934 7C 9D 23 78 */ mr r29, r4
/* 802539F8 00250938 93 81 00 10 */ stw r28, 0x10(r1)
/* 802539FC 0025093C 7C 7C 1B 78 */ mr r28, r3
/* 80253A00 00250940 88 03 00 18 */ lbz r0, 0x18(r3)
/* 80253A04 00250944 28 00 00 00 */ cmplwi r0, 0
/* 80253A08 00250948 41 82 00 48 */ beq .L_80253A50
/* 80253A0C 0025094C 38 81 00 08 */ addi r4, r1, 8
/* 80253A10 00250950 48 00 01 C1 */ bl isStartAndEnd__Q24Game9RumbleMgrFPii
/* 80253A14 00250954 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80253A18 00250958 41 82 00 38 */ beq .L_80253A50
/* 80253A1C 0025095C 80 01 00 08 */ lwz r0, 8(r1)
/* 80253A20 00250960 7C 1E 03 78 */ mr r30, r0
/* 80253A24 00250964 54 1F 10 3A */ slwi r31, r0, 2
/* 80253A28 00250968 48 00 00 1C */ b .L_80253A44
.L_80253A2C:
/* 80253A2C 0025096C 80 7C 00 20 */ lwz r3, 0x20(r28)
/* 80253A30 00250970 7F A4 EB 78 */ mr r4, r29
/* 80253A34 00250974 7C 63 F8 2E */ lwzx r3, r3, r31
/* 80253A38 00250978 4B FF F7 41 */ bl rumbleStop__Q24Game10ContRumbleFi
/* 80253A3C 0025097C 3B FF 00 04 */ addi r31, r31, 4
/* 80253A40 00250980 3B DE 00 01 */ addi r30, r30, 1
.L_80253A44:
/* 80253A44 00250984 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80253A48 00250988 7C 1E 00 00 */ cmpw r30, r0
/* 80253A4C 0025098C 41 80 FF E0 */ blt .L_80253A2C
.L_80253A50:
/* 80253A50 00250990 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80253A54 00250994 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80253A58 00250998 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80253A5C 0025099C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80253A60 002509A0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80253A64 002509A4 7C 08 03 A6 */ mtlr r0
/* 80253A68 002509A8 38 21 00 20 */ addi r1, r1, 0x20
/* 80253A6C 002509AC 4E 80 00 20 */ blr
.endfn stopRumble__Q24Game9RumbleMgrFii
.fn stopRumble__Q24Game9RumbleMgrFi, global
/* 80253A70 002509B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80253A74 002509B4 7C 08 02 A6 */ mflr r0
/* 80253A78 002509B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80253A7C 002509BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80253A80 002509C0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80253A84 002509C4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80253A88 002509C8 7C 7D 1B 78 */ mr r29, r3
/* 80253A8C 002509CC 88 03 00 18 */ lbz r0, 0x18(r3)
/* 80253A90 002509D0 28 00 00 00 */ cmplwi r0, 0
/* 80253A94 002509D4 41 82 00 48 */ beq .L_80253ADC
/* 80253A98 002509D8 7C 85 23 78 */ mr r5, r4
/* 80253A9C 002509DC 38 81 00 08 */ addi r4, r1, 8
/* 80253AA0 002509E0 48 00 01 31 */ bl isStartAndEnd__Q24Game9RumbleMgrFPii
/* 80253AA4 002509E4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80253AA8 002509E8 41 82 00 34 */ beq .L_80253ADC
/* 80253AAC 002509EC 80 01 00 08 */ lwz r0, 8(r1)
/* 80253AB0 002509F0 7C 1E 03 78 */ mr r30, r0
/* 80253AB4 002509F4 54 1F 10 3A */ slwi r31, r0, 2
/* 80253AB8 002509F8 48 00 00 18 */ b .L_80253AD0
.L_80253ABC:
/* 80253ABC 002509FC 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 80253AC0 00250A00 7C 63 F8 2E */ lwzx r3, r3, r31
/* 80253AC4 00250A04 4B FF F6 2D */ bl rumbleStop__Q24Game10ContRumbleFv
/* 80253AC8 00250A08 3B FF 00 04 */ addi r31, r31, 4
/* 80253ACC 00250A0C 3B DE 00 01 */ addi r30, r30, 1
.L_80253AD0:
/* 80253AD0 00250A10 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80253AD4 00250A14 7C 1E 00 00 */ cmpw r30, r0
/* 80253AD8 00250A18 41 80 FF E4 */ blt .L_80253ABC
.L_80253ADC:
/* 80253ADC 00250A1C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80253AE0 00250A20 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80253AE4 00250A24 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80253AE8 00250A28 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80253AEC 00250A2C 7C 08 03 A6 */ mtlr r0
/* 80253AF0 00250A30 38 21 00 20 */ addi r1, r1, 0x20
/* 80253AF4 00250A34 4E 80 00 20 */ blr
.endfn stopRumble__Q24Game9RumbleMgrFi
.fn isRumbleUpdateOn__Q24Game9RumbleMgrFv, global
/* 80253AF8 00250A38 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80253AFC 00250A3C 7C 08 02 A6 */ mflr r0
/* 80253B00 00250A40 90 01 00 14 */ stw r0, 0x14(r1)
/* 80253B04 00250A44 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80253B08 00250A48 88 03 00 18 */ lbz r0, 0x18(r3)
/* 80253B0C 00250A4C 28 00 00 00 */ cmplwi r0, 0
/* 80253B10 00250A50 41 82 00 30 */ beq .L_80253B40
/* 80253B14 00250A54 80 6D 93 E8 */ lwz r3, gameSystem__4Game@sda21(r13)
/* 80253B18 00250A58 28 03 00 00 */ cmplwi r3, 0
/* 80253B1C 00250A5C 41 82 00 24 */ beq .L_80253B40
/* 80253B20 00250A60 88 03 00 4A */ lbz r0, 0x4a(r3)
/* 80253B24 00250A64 28 00 00 00 */ cmplwi r0, 0
/* 80253B28 00250A68 40 82 00 18 */ bne .L_80253B40
/* 80253B2C 00250A6C 4B F6 14 9D */ bl paused__Q24Game10GameSystemFv
/* 80253B30 00250A70 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80253B34 00250A74 40 82 00 0C */ bne .L_80253B40
/* 80253B38 00250A78 38 60 00 01 */ li r3, 1
/* 80253B3C 00250A7C 48 00 00 24 */ b .L_80253B60
.L_80253B40:
/* 80253B40 00250A80 3B E0 00 00 */ li r31, 0
.L_80253B44:
/* 80253B44 00250A84 7F E3 FB 78 */ mr r3, r31
/* 80253B48 00250A88 38 80 00 02 */ li r4, 2
/* 80253B4C 00250A8C 4B EA 08 E1 */ bl PADControlMotor
/* 80253B50 00250A90 3B FF 00 01 */ addi r31, r31, 1
/* 80253B54 00250A94 2C 1F 00 04 */ cmpwi r31, 4
/* 80253B58 00250A98 41 80 FF EC */ blt .L_80253B44
/* 80253B5C 00250A9C 38 60 00 00 */ li r3, 0
.L_80253B60:
/* 80253B60 00250AA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80253B64 00250AA4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80253B68 00250AA8 7C 08 03 A6 */ mtlr r0
/* 80253B6C 00250AAC 38 21 00 10 */ addi r1, r1, 0x10
/* 80253B70 00250AB0 4E 80 00 20 */ blr
.endfn isRumbleUpdateOn__Q24Game9RumbleMgrFv
.fn "setZukanRumble__Q24Game9RumbleMgrFP10ControllerP10Vector3<f>", global
/* 80253B74 00250AB4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80253B78 00250AB8 7C 08 02 A6 */ mflr r0
/* 80253B7C 00250ABC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80253B80 00250AC0 80 CD 93 E8 */ lwz r6, gameSystem__4Game@sda21(r13)
/* 80253B84 00250AC4 28 06 00 00 */ cmplwi r6, 0
/* 80253B88 00250AC8 41 82 00 1C */ beq .L_80253BA4
/* 80253B8C 00250ACC 80 06 00 44 */ lwz r0, 0x44(r6)
/* 80253B90 00250AD0 2C 00 00 04 */ cmpwi r0, 4
/* 80253B94 00250AD4 40 82 00 10 */ bne .L_80253BA4
/* 80253B98 00250AD8 90 83 00 2C */ stw r4, 0x2c(r3)
/* 80253B9C 00250ADC 90 A3 00 30 */ stw r5, 0x30(r3)
/* 80253BA0 00250AE0 48 00 00 20 */ b .L_80253BC0
.L_80253BA4:
/* 80253BA4 00250AE4 3C 60 80 48 */ lis r3, lbl_804848F0@ha
/* 80253BA8 00250AE8 3C A0 80 48 */ lis r5, lbl_80484900@ha
/* 80253BAC 00250AEC 38 63 48 F0 */ addi r3, r3, lbl_804848F0@l
/* 80253BB0 00250AF0 38 80 01 5E */ li r4, 0x15e
/* 80253BB4 00250AF4 38 A5 49 00 */ addi r5, r5, lbl_80484900@l
/* 80253BB8 00250AF8 4C C6 31 82 */ crclr 6
/* 80253BBC 00250AFC 4B DD 6A 85 */ bl panic_f__12JUTExceptionFPCciPCce
.L_80253BC0:
/* 80253BC0 00250B00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80253BC4 00250B04 7C 08 03 A6 */ mtlr r0
/* 80253BC8 00250B08 38 21 00 10 */ addi r1, r1, 0x10
/* 80253BCC 00250B0C 4E 80 00 20 */ blr
.endfn "setZukanRumble__Q24Game9RumbleMgrFP10ControllerP10Vector3<f>"
.fn isStartAndEnd__Q24Game9RumbleMgrFPii, global
/* 80253BD0 00250B10 2C 05 00 02 */ cmpwi r5, 2
/* 80253BD4 00250B14 40 82 00 1C */ bne .L_80253BF0
/* 80253BD8 00250B18 38 60 00 00 */ li r3, 0
/* 80253BDC 00250B1C 38 00 00 02 */ li r0, 2
/* 80253BE0 00250B20 90 64 00 00 */ stw r3, 0(r4)
/* 80253BE4 00250B24 38 60 00 01 */ li r3, 1
/* 80253BE8 00250B28 90 04 00 04 */ stw r0, 4(r4)
/* 80253BEC 00250B2C 4E 80 00 20 */ blr
.L_80253BF0:
/* 80253BF0 00250B30 2C 05 00 00 */ cmpwi r5, 0
/* 80253BF4 00250B34 40 82 00 1C */ bne .L_80253C10
/* 80253BF8 00250B38 38 60 00 00 */ li r3, 0
/* 80253BFC 00250B3C 38 00 00 01 */ li r0, 1
/* 80253C00 00250B40 90 64 00 00 */ stw r3, 0(r4)
/* 80253C04 00250B44 38 60 00 01 */ li r3, 1
/* 80253C08 00250B48 90 04 00 04 */ stw r0, 4(r4)
/* 80253C0C 00250B4C 4E 80 00 20 */ blr
.L_80253C10:
/* 80253C10 00250B50 2C 05 00 01 */ cmpwi r5, 1
/* 80253C14 00250B54 40 82 00 1C */ bne .L_80253C30
/* 80253C18 00250B58 38 60 00 01 */ li r3, 1
/* 80253C1C 00250B5C 38 00 00 02 */ li r0, 2
/* 80253C20 00250B60 90 64 00 00 */ stw r3, 0(r4)
/* 80253C24 00250B64 38 60 00 01 */ li r3, 1
/* 80253C28 00250B68 90 04 00 04 */ stw r0, 4(r4)
/* 80253C2C 00250B6C 4E 80 00 20 */ blr
.L_80253C30:
/* 80253C30 00250B70 38 60 00 00 */ li r3, 0
/* 80253C34 00250B74 4E 80 00 20 */ blr
.endfn isStartAndEnd__Q24Game9RumbleMgrFPii
.fn readRumbleParms__Q24Game9RumbleMgrFPc, global
/* 80253C38 00250B78 94 21 FB C0 */ stwu r1, -0x440(r1)
/* 80253C3C 00250B7C 7C 08 02 A6 */ mflr r0
/* 80253C40 00250B80 38 A0 00 00 */ li r5, 0
/* 80253C44 00250B84 38 C0 00 00 */ li r6, 0
/* 80253C48 00250B88 90 01 04 44 */ stw r0, 0x444(r1)
/* 80253C4C 00250B8C 38 00 00 00 */ li r0, 0
/* 80253C50 00250B90 38 E0 00 00 */ li r7, 0
/* 80253C54 00250B94 39 00 00 02 */ li r8, 2
/* 80253C58 00250B98 93 E1 04 3C */ stw r31, 0x43c(r1)
/* 80253C5C 00250B9C 39 20 00 00 */ li r9, 0
/* 80253C60 00250BA0 39 40 00 00 */ li r10, 0
/* 80253C64 00250BA4 93 C1 04 38 */ stw r30, 0x438(r1)
/* 80253C68 00250BA8 7C 7E 1B 78 */ mr r30, r3
/* 80253C6C 00250BAC 7C 83 23 78 */ mr r3, r4
/* 80253C70 00250BB0 38 80 00 00 */ li r4, 0
/* 80253C74 00250BB4 90 01 00 08 */ stw r0, 8(r1)
/* 80253C78 00250BB8 4B DC B5 11 */ bl loadToMainRAM__12JKRDvdRipperFPCcPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl
/* 80253C7C 00250BBC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80253C80 00250BC0 41 82 00 44 */ beq .L_80253CC4
/* 80253C84 00250BC4 7F E4 FB 78 */ mr r4, r31
/* 80253C88 00250BC8 38 61 00 10 */ addi r3, r1, 0x10
/* 80253C8C 00250BCC 38 A0 FF FF */ li r5, -1
/* 80253C90 00250BD0 48 1C 1C 69 */ bl __ct__9RamStreamFPvi
/* 80253C94 00250BD4 38 00 00 01 */ li r0, 1
/* 80253C98 00250BD8 2C 00 00 01 */ cmpwi r0, 1
/* 80253C9C 00250BDC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80253CA0 00250BE0 40 82 00 0C */ bne .L_80253CAC
/* 80253CA4 00250BE4 38 00 00 00 */ li r0, 0
/* 80253CA8 00250BE8 90 01 04 24 */ stw r0, 0x424(r1)
.L_80253CAC:
/* 80253CAC 00250BEC 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 80253CB0 00250BF0 38 81 00 10 */ addi r4, r1, 0x10
/* 80253CB4 00250BF4 48 1B FB 41 */ bl read__10ParametersFR6Stream
/* 80253CB8 00250BF8 7F E3 FB 78 */ mr r3, r31
/* 80253CBC 00250BFC 4B DD 04 1D */ bl __dla__FPv
/* 80253CC0 00250C00 48 00 00 20 */ b .L_80253CE0
.L_80253CC4:
/* 80253CC4 00250C04 3C 60 80 48 */ lis r3, lbl_804848F0@ha
/* 80253CC8 00250C08 3C A0 80 48 */ lis r5, lbl_80484910@ha
/* 80253CCC 00250C0C 38 63 48 F0 */ addi r3, r3, lbl_804848F0@l
/* 80253CD0 00250C10 38 80 01 99 */ li r4, 0x199
/* 80253CD4 00250C14 38 A5 49 10 */ addi r5, r5, lbl_80484910@l
/* 80253CD8 00250C18 4C C6 31 82 */ crclr 6
/* 80253CDC 00250C1C 4B DD 69 65 */ bl panic_f__12JUTExceptionFPCciPCce
.L_80253CE0:
/* 80253CE0 00250C20 80 01 04 44 */ lwz r0, 0x444(r1)
/* 80253CE4 00250C24 83 E1 04 3C */ lwz r31, 0x43c(r1)
/* 80253CE8 00250C28 83 C1 04 38 */ lwz r30, 0x438(r1)
/* 80253CEC 00250C2C 7C 08 03 A6 */ mtlr r0
/* 80253CF0 00250C30 38 21 04 40 */ addi r1, r1, 0x440
/* 80253CF4 00250C34 4E 80 00 20 */ blr
.endfn readRumbleParms__Q24Game9RumbleMgrFPc
.fn readRumbleData__Q24Game9RumbleMgrFPc, global
/* 80253CF8 00250C38 94 21 FB C0 */ stwu r1, -0x440(r1)
/* 80253CFC 00250C3C 7C 08 02 A6 */ mflr r0
/* 80253D00 00250C40 38 A0 00 00 */ li r5, 0
/* 80253D04 00250C44 38 C0 00 00 */ li r6, 0
/* 80253D08 00250C48 90 01 04 44 */ stw r0, 0x444(r1)
/* 80253D0C 00250C4C 38 00 00 00 */ li r0, 0
/* 80253D10 00250C50 38 E0 00 00 */ li r7, 0
/* 80253D14 00250C54 39 00 00 02 */ li r8, 2
/* 80253D18 00250C58 93 E1 04 3C */ stw r31, 0x43c(r1)
/* 80253D1C 00250C5C 39 20 00 00 */ li r9, 0
/* 80253D20 00250C60 39 40 00 00 */ li r10, 0
/* 80253D24 00250C64 93 C1 04 38 */ stw r30, 0x438(r1)
/* 80253D28 00250C68 7C 7E 1B 78 */ mr r30, r3
/* 80253D2C 00250C6C 7C 83 23 78 */ mr r3, r4
/* 80253D30 00250C70 38 80 00 00 */ li r4, 0
/* 80253D34 00250C74 90 01 00 08 */ stw r0, 8(r1)
/* 80253D38 00250C78 4B DC B4 51 */ bl loadToMainRAM__12JKRDvdRipperFPCcPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl
/* 80253D3C 00250C7C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80253D40 00250C80 41 82 00 44 */ beq .L_80253D84
/* 80253D44 00250C84 7F E4 FB 78 */ mr r4, r31
/* 80253D48 00250C88 38 61 00 10 */ addi r3, r1, 0x10
/* 80253D4C 00250C8C 38 A0 FF FF */ li r5, -1
/* 80253D50 00250C90 48 1C 1B A9 */ bl __ct__9RamStreamFPvi
/* 80253D54 00250C94 38 00 00 01 */ li r0, 1
/* 80253D58 00250C98 2C 00 00 01 */ cmpwi r0, 1
/* 80253D5C 00250C9C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80253D60 00250CA0 40 82 00 0C */ bne .L_80253D6C
/* 80253D64 00250CA4 38 00 00 00 */ li r0, 0
/* 80253D68 00250CA8 90 01 04 24 */ stw r0, 0x424(r1)
.L_80253D6C:
/* 80253D6C 00250CAC 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80253D70 00250CB0 38 81 00 10 */ addi r4, r1, 0x10
/* 80253D74 00250CB4 48 00 D6 91 */ bl read__Q24Game13RumbleDataMgrFR6Stream
/* 80253D78 00250CB8 7F E3 FB 78 */ mr r3, r31
/* 80253D7C 00250CBC 4B DD 03 5D */ bl __dla__FPv
/* 80253D80 00250CC0 48 00 00 20 */ b .L_80253DA0
.L_80253D84:
/* 80253D84 00250CC4 3C 60 80 48 */ lis r3, lbl_804848F0@ha
/* 80253D88 00250CC8 3C A0 80 48 */ lis r5, lbl_80484928@ha
/* 80253D8C 00250CCC 38 63 48 F0 */ addi r3, r3, lbl_804848F0@l
/* 80253D90 00250CD0 38 80 01 B8 */ li r4, 0x1b8
/* 80253D94 00250CD4 38 A5 49 28 */ addi r5, r5, lbl_80484928@l
/* 80253D98 00250CD8 4C C6 31 82 */ crclr 6
/* 80253D9C 00250CDC 4B DD 68 A5 */ bl panic_f__12JUTExceptionFPCciPCce
.L_80253DA0:
/* 80253DA0 00250CE0 80 01 04 44 */ lwz r0, 0x444(r1)
/* 80253DA4 00250CE4 83 E1 04 3C */ lwz r31, 0x43c(r1)
/* 80253DA8 00250CE8 83 C1 04 38 */ lwz r30, 0x438(r1)
/* 80253DAC 00250CEC 7C 08 03 A6 */ mtlr r0
/* 80253DB0 00250CF0 38 21 04 40 */ addi r1, r1, 0x440
/* 80253DB4 00250CF4 4E 80 00 20 */ blr
.endfn readRumbleData__Q24Game9RumbleMgrFPc
.fn __dt__Q24Game9RumbleMgrFv, weak
/* 80253DB8 00250CF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80253DBC 00250CFC 7C 08 02 A6 */ mflr r0
/* 80253DC0 00250D00 90 01 00 14 */ stw r0, 0x14(r1)
/* 80253DC4 00250D04 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80253DC8 00250D08 7C 9F 23 78 */ mr r31, r4
/* 80253DCC 00250D0C 93 C1 00 08 */ stw r30, 8(r1)
/* 80253DD0 00250D10 7C 7E 1B 79 */ or. r30, r3, r3
/* 80253DD4 00250D14 41 82 00 28 */ beq .L_80253DFC
/* 80253DD8 00250D18 3C A0 80 4C */ lis r5, __vt__Q24Game9RumbleMgr@ha
/* 80253DDC 00250D1C 38 80 00 00 */ li r4, 0
/* 80253DE0 00250D20 38 05 1B F8 */ addi r0, r5, __vt__Q24Game9RumbleMgr@l
/* 80253DE4 00250D24 90 1E 00 00 */ stw r0, 0(r30)
/* 80253DE8 00250D28 48 1B D7 A1 */ bl __dt__5CNodeFv
/* 80253DEC 00250D2C 7F E0 07 35 */ extsh. r0, r31
/* 80253DF0 00250D30 40 81 00 0C */ ble .L_80253DFC
/* 80253DF4 00250D34 7F C3 F3 78 */ mr r3, r30
/* 80253DF8 00250D38 4B DD 02 BD */ bl __dl__FPv
.L_80253DFC:
/* 80253DFC 00250D3C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80253E00 00250D40 7F C3 F3 78 */ mr r3, r30
/* 80253E04 00250D44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80253E08 00250D48 83 C1 00 08 */ lwz r30, 8(r1)
/* 80253E0C 00250D4C 7C 08 03 A6 */ mtlr r0
/* 80253E10 00250D50 38 21 00 10 */ addi r1, r1, 0x10
/* 80253E14 00250D54 4E 80 00 20 */ blr
.endfn __dt__Q24Game9RumbleMgrFv

View File

@ -1051,7 +1051,7 @@ LIBS = [
["plugProjectNishimuraU/ObjectLayout", True],
["plugProjectNishimuraU/CameraMgr", True],
"plugProjectNishimuraU/ContRumble",
"plugProjectNishimuraU/RumbleMgr",
["plugProjectNishimuraU/RumbleMgr", True],
["plugProjectNishimuraU/PomAnimator", True],
["plugProjectNishimuraU/PomMgr", True],
["plugProjectNishimuraU/Pom", True],

View File

@ -132,24 +132,24 @@
### <section id="plugProjectNishimuraU">plugProjectNishimuraU</section>
| File | Size (bytes) | File | Size (bytes) |
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/nslibmath.cpp">nslibmath.cpp</a> | 4592 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TyreShadow.cpp">TyreShadow.cpp</a> | 7234 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MaroFrog.cpp">MaroFrog.cpp</a> | 7314 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UmimushiShadow.cpp">UmimushiShadow.cpp</a> | 7565 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ContRumble.cpp">ContRumble.cpp</a> | 9005 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeJointMgr.cpp">SnakeJointMgr.cpp</a> | 10097 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/nslibmath.cpp">nslibmath.cpp</a> | 4592 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ContRumble.cpp">ContRumble.cpp</a> | 6771 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TyreShadow.cpp">TyreShadow.cpp</a> | 7234 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MaroFrog.cpp">MaroFrog.cpp</a> | 7314 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UmimushiShadow.cpp">UmimushiShadow.cpp</a> | 7565 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeJointMgr.cpp">SnakeJointMgr.cpp</a> | 10097 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KumaChappy.cpp">KumaChappy.cpp</a> | 11401 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Kabuto.cpp">Kabuto.cpp</a> | 12291 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BabyState.cpp">BabyState.cpp</a> | 12869 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Tank.cpp">Tank.cpp</a> | 13339 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Kogane.cpp">Kogane.cpp</a> | 14614 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/JointShadowBase.cpp">JointShadowBase.cpp</a> | 14958 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecBugState.cpp">ElecBugState.cpp</a> | 15715 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RandMapMgr.cpp">RandMapMgr.cpp</a> | 17083 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TadpoleState.cpp">TadpoleState.cpp</a> | 17490 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeWholeShadow.cpp">SnakeWholeShadow.cpp</a> | 19376 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeCrowShadow.cpp">SnakeCrowShadow.cpp</a> | 19385 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ImomushiState.cpp">ImomushiState.cpp</a> | 19876 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjiaState.cpp">UjiaState.cpp</a> | 20924 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RumbleMgr.cpp">RumbleMgr.cpp</a> | 21534 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Rock.cpp">Rock.cpp</a> | 21671 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecHiba.cpp">ElecHiba.cpp</a> | 21849 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Frog.cpp">Frog.cpp</a> | 22143 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/QueenState.cpp">QueenState.cpp</a> | 22713 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Ujia.cpp">Ujia.cpp</a> | 22966 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Ujib.cpp">Ujib.cpp</a> | 23602 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Queen.cpp">Queen.cpp</a> | 23624 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecBug.cpp">ElecBug.cpp</a> | 24345 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ArmorState.cpp">ArmorState.cpp</a> | 24714 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SaraiState.cpp">SaraiState.cpp</a> | 24836 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TobiState.cpp">TobiState.cpp</a> | 24962 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjibState.cpp">UjibState.cpp</a> | 25505 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Armor.cpp">Armor.cpp</a> | 25780 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Tobi.cpp">Tobi.cpp</a> | 25937 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TankState.cpp">TankState.cpp</a> | 29293 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjiaState.cpp">UjiaState.cpp</a> | 20924 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Rock.cpp">Rock.cpp</a> | 21671 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecHiba.cpp">ElecHiba.cpp</a> | 21849 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Frog.cpp">Frog.cpp</a> | 22143 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/QueenState.cpp">QueenState.cpp</a> | 22713 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Ujia.cpp">Ujia.cpp</a> | 22966 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Ujib.cpp">Ujib.cpp</a> | 23602 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Queen.cpp">Queen.cpp</a> | 23624 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecBug.cpp">ElecBug.cpp</a> | 24345 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ArmorState.cpp">ArmorState.cpp</a> | 24714 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SaraiState.cpp">SaraiState.cpp</a> | 24836 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TobiState.cpp">TobiState.cpp</a> | 24962 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjibState.cpp">UjibState.cpp</a> | 25505 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Armor.cpp">Armor.cpp</a> | 25780 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Tobi.cpp">Tobi.cpp</a> | 25937 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TankState.cpp">TankState.cpp</a> | 29293 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RandItemUnit.cpp">RandItemUnit.cpp</a> | 29622 |
### <section id="plugProjectOgawaU">plugProjectOgawaU</section>
| File | Size (bytes) | File | Size (bytes) |

View File

@ -11,6 +11,14 @@
struct Controller;
namespace Game {
struct Navi;
enum RumbleID {
RUMBLEID_Navi0 = 0,
RUMBLEID_Navi1 = 1,
RUMBLEID_Both = 2,
};
struct RumbleData {
RumbleData();
@ -21,37 +29,37 @@ struct RumbleData {
return;
}
mIntensityThresholds = new f32[mCount];
mIntensityValues = new f32[mCount];
mTimes = new f32[mCount];
mIntensities = new f32[mCount];
for (int j = 0; j < mCount; j++) {
mIntensityThresholds[j] = stream.readFloat();
mTimes[j] = stream.readFloat();
}
for (int j = 0; j < mCount; j++) {
mIntensityValues[j] = stream.readFloat();
mIntensities[j] = stream.readFloat();
}
}
s32 mCount; // _00
f32* mIntensityThresholds; // _04
f32* mIntensityValues; // _08
int mCount; // _00
f32* mTimes; // _04, times at which to change intensity
f32* mIntensities; // _08, values to set intensity to
};
struct RumbleDataMgr {
RumbleDataMgr();
RumbleData* getRumbleData(int);
RumbleData* getRumbleData(int idx);
void read(Stream& stream);
s32 mDataCnt; // _00
int mDataCnt; // _00
RumbleData* mDataArr; // _04
};
struct RumbleNode : public CNode {
inline RumbleNode()
: CNode()
, _18(-1)
, mNodeIdx(-1)
, mCurrentIntensity(0.0f)
, mDefaultIntensity(0.0f)
, mRumbleTimer(0.0f)
@ -60,11 +68,21 @@ struct RumbleNode : public CNode {
{
}
virtual ~RumbleNode(); // _08 (weak)
virtual ~RumbleNode() { } // _08 (weak)
inline void setParameters(int idx, f32 curIntensity, f32 defIntensity, f32 timer, f32 p1, RumbleData* data)
{
mNodeIdx = idx;
mCurrentIntensity = curIntensity;
mDefaultIntensity = defIntensity;
mRumbleTimer = timer;
_28 = p1;
mRumbleData = data;
}
// _00 = VTBL
// _00-_18 = CNode
int _18; // _18
int mNodeIdx; // _18
f32 mCurrentIntensity; // _1C
f32 mDefaultIntensity; // _20
f32 mRumbleTimer; // _24
@ -73,15 +91,15 @@ struct RumbleNode : public CNode {
};
struct ContRumble {
ContRumble(int, int);
ContRumble(int padChannel, int nodeCount);
void init();
void update();
void setController(bool);
void startRumble(int, f32);
void startRumble(int idx, f32 intensity);
void rumbleStop();
void rumbleStop(int);
void getRumbleParameter(int, f32&, f32&);
void rumbleStop(int idx);
void getRumbleParameter(int idx, f32& intensity, f32& p1);
bool mIsActive; // _00
int mPadChannel; // _04
@ -95,38 +113,41 @@ struct ContRumble {
struct RumbleMgr : public CNode {
struct Parms : public Parameters {
Parm<f32> mMaxDistance; // _0C
u32 mEnd; // _34
inline Parms()
: Parameters(nullptr, "RumbleParms")
, mMaxDistance(this, 'rrdm', "Max Distance", 750.0f, 0.0f, 1000.0f)
{
}
Parm<f32> mMaxDistance; // _0C, rrdm
};
RumbleMgr();
virtual ~RumbleMgr(); // _08 (weak)
virtual ~RumbleMgr() { } // _08 (weak)
void loadResource();
void init();
void update();
void startRumble(int, Vector3f&, int);
void startRumble(int, int);
void stopRumble(int, int);
void stopRumble(int);
void startRumble(int type, Vector3f& pos, int rumbleID);
void startRumble(int type, int rumbleID);
void stopRumble(int type, int rumbleID);
void stopRumble(int rumbleID);
bool isRumbleUpdateOn();
void setZukanRumble(Controller*, Vector3f*);
bool isStartAndEnd(int*, int);
void readRumbleParms(char*);
void readRumbleData(char*);
void setZukanRumble(Controller* controller, Vector3f* zukanPos);
bool isStartAndEnd(int* startEndData, int rumbleID);
void readRumbleParms(char* fileName);
void readRumbleData(char* fileName);
u8 _18; // _18
// ptr to unknown array with 2 elements
void* _1C; // _1C
// ptr to array of two pointers to ContRumble
ContRumble** mContRumble; // _20
// _00 = VTBL
// _00-_18 = CNode
bool mIsRumbleActive; // _18
Navi** mNavis; // _1C, array of size 2, one for each captain
ContRumble** mContRumble; // _20, array of size 2, one for each captain
Parms* mParms; // _24
RumbleDataMgr* mDataMgr; // _28
Controller* mController; // _2C
Vector3f* _30; // _30
Vector3f* mZukanPosition; // _30, position to use in Piklopedia in place of captain position
};
extern RumbleMgr* rumbleMgr;

View File

@ -1,44 +1,6 @@
#include "Dolphin/pad.h"
#include "System.h"
#include "Game/rumble.h"
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_80484850
lbl_80484850:
.4byte 0x3ECCCCCD
.4byte 0x3F0CCCCD
.float 1.0
.global lbl_8048485C
lbl_8048485C:
.4byte 0x3E4CCCCD
.4byte 0x3EB33333
.float 0.5
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q24Game10RumbleNode
__vt__Q24Game10RumbleNode:
.4byte 0
.4byte 0
.4byte __dt__Q24Game10RumbleNodeFv
.4byte getChildCount__5CNodeFv
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.global lbl_8051A968
lbl_8051A968:
.4byte 0x00000000
.global lbl_8051A96C
lbl_8051A96C:
.float 1.0
.global lbl_8051A970
lbl_8051A970:
.4byte 0x40400000
.global lbl_8051A974
lbl_8051A974:
.4byte 0x41F00000
*/
namespace Game {
@ -47,16 +9,16 @@ namespace Game {
* Address: 80252B20
* Size: 000158
*/
ContRumble::ContRumble(int p1, int p2)
ContRumble::ContRumble(int padChannel, int nodeCount)
: mIsActive(true)
, mPadChannel(p1)
, mPadChannel(padChannel)
, mTotalIntensity(0.0f)
, mRumbleTimer(0.0f)
, mRumbleTimeoutTimer(0.0f)
, mParentNode(new RumbleNode())
, mActiveNodes(new RumbleNode())
{
for (int i = 0; i < p2; i++) {
for (int i = 0; i < nodeCount; i++) {
mActiveNodes->add(new RumbleNode());
}
mDataMgr = nullptr;
@ -103,8 +65,8 @@ void ContRumble::update()
int currentSegment;
for (currentSegment = 0; currentSegment < numRumbleSegments; currentSegment++) {
float* segmentThresholds = &rumbleData->mIntensityThresholds[currentSegment];
float currentTime = currentNode->mRumbleTimer;
f32* segmentThresholds = &rumbleData->mTimes[currentSegment];
f32 currentTime = currentNode->mRumbleTimer;
if (currentTime < segmentThresholds[currentSegment]) {
continue;
@ -112,14 +74,13 @@ void ContRumble::update()
}
if (currentSegment < numRumbleSegments) {
double t
= (currentNode->mRumbleTimer - rumbleData->mIntensityThresholds[4 * currentSegment])
/ (rumbleData->mIntensityThresholds[4 * (currentSegment + 1)] - rumbleData->mIntensityThresholds[4 * currentSegment]);
double t = (currentNode->mRumbleTimer - rumbleData->mTimes[4 * currentSegment])
/ (rumbleData->mTimes[4 * (currentSegment + 1)] - rumbleData->mTimes[4 * currentSegment]);
currentNode->mCurrentIntensity = ((1.0 - t) * rumbleData->mIntensityValues[4 * currentSegment])
+ (t * rumbleData->mIntensityValues[4 * (currentSegment + 1)]);
currentNode->mCurrentIntensity
= ((1.0 - t) * rumbleData->mIntensities[4 * currentSegment]) + (t * rumbleData->mIntensities[4 * (currentSegment + 1)]);
} else {
currentNode->mCurrentIntensity = rumbleData->mIntensityValues[4 * numRumbleSegments];
currentNode->mCurrentIntensity = rumbleData->mIntensities[4 * numRumbleSegments];
}
} else {
currentNode->mCurrentIntensity = currentNode->mDefaultIntensity;
@ -136,7 +97,7 @@ void ContRumble::update()
bool shouldAddToActiveNodes;
if (limitData) {
if (limitData->mCount > 0 && currentNode->mRumbleTimer < limitData->mIntensityThresholds[limitData->mCount - 1]) {
if (limitData->mCount > 0 && currentNode->mRumbleTimer < limitData->mTimes[limitData->mCount - 1]) {
shouldAddToActiveNodes = false;
}
} else if (currentNode->mRumbleTimer < currentNode->_28) {
@ -201,33 +162,21 @@ void ContRumble::setController(bool isActive)
* Size: 000104
* TODO
*/
void ContRumble::startRumble(int x, float y)
void ContRumble::startRumble(int idx, f32 intensity)
{
if (mActiveNodes->mChild && mDataMgr && mRumbleTimer < 30.0f) {
RumbleData* data = mDataMgr->getRumbleData(x);
RumbleData* data = mDataMgr->getRumbleData(idx);
RumbleNode* node = (RumbleNode*)mActiveNodes->mChild;
node->del();
if (data) {
f32 v8 = y;
node->_18 = x;
node->mCurrentIntensity = 0.0;
node->mDefaultIntensity = v8;
node->mRumbleTimer = 0.0;
node->_28 = 0.0;
node->mRumbleData = data;
node->setParameters(idx, 0.0f, intensity, 0.0f, 0.0f, data);
} else {
float z = 0.0;
getRumbleParameter(x, y, z);
f32 v9 = z;
node->_18 = x;
node->mCurrentIntensity = 0.0;
node->mDefaultIntensity = 0.0;
node->mRumbleTimer = 0.0;
node->_28 = v9; // WTF?
node->mRumbleData = 0;
f32 z = 0.0f;
getRumbleParameter(idx, intensity, z);
node->setParameters(idx, 0.0f, intensity, 0.0f, z, data);
}
mParentNode->add(node);
@ -242,14 +191,19 @@ void ContRumble::startRumble(int x, float y)
*/
void ContRumble::rumbleStop()
{
RumbleNode* child = (RumbleNode*)mParentNode->mChild;
for (RumbleNode* i = child; i; i = (RumbleNode*)i->mNext) {
i->del();
mActiveNodes->add(i);
RumbleNode* child = static_cast<RumbleNode*>(mParentNode->mChild);
RumbleNode* next;
RumbleNode* node = child;
while (node) {
next = static_cast<RumbleNode*>(node->mNext);
node->del();
mActiveNodes->add(node);
node = next;
}
if (child) {
PADControlMotor(mPadChannel, 2);
PADControlMotor(mPadChannel, PAD_MOTOR_STOP_HARD);
}
}
@ -258,54 +212,26 @@ void ContRumble::rumbleStop()
* Address: 80253178
* Size: 000090
*/
void ContRumble::rumbleStop(int)
void ContRumble::rumbleStop(int idx)
{
/*
stwu r1, -0x20(r1)
mflr r0
stw r0, 0x24(r1)
stmw r27, 0xc(r1)
mr r27, r3
mr r28, r4
lwz r3, 0x14(r3)
lwz r31, 0x10(r3)
mr r29, r31
b lbl_802531C8
RumbleNode* child = static_cast<RumbleNode*>(mParentNode->mChild);
RumbleNode* next;
RumbleNode* node = child;
lbl_802531A0:
lwz r0, 0x18(r29)
lwz r30, 4(r29)
cmpw r0, r28
bne lbl_802531C4
mr r3, r29
bl del__5CNodeFv
lwz r3, 0x18(r27)
mr r4, r29
bl add__5CNodeFP5CNode
while (node) {
next = static_cast<RumbleNode*>(node->mNext);
if (node->mNodeIdx == idx) {
node->del();
mActiveNodes->add(node);
}
node = next;
}
lbl_802531C4:
mr r29, r30
lbl_802531C8:
cmplwi r29, 0
bne lbl_802531A0
cmplwi r31, 0
beq lbl_802531F4
lwz r3, 0x14(r27)
lwz r0, 0x10(r3)
cmplwi r0, 0
beq lbl_802531F4
lwz r3, 4(r27)
li r4, 2
bl PADControlMotor
lbl_802531F4:
lmw r27, 0xc(r1)
lwz r0, 0x24(r1)
mtlr r0
addi r1, r1, 0x20
blr
*/
if (child) {
if (mParentNode->mChild) { // why. WHY.
PADControlMotor(mPadChannel, PAD_MOTOR_STOP_HARD);
}
}
}
/*
@ -313,8 +239,13 @@ lbl_802531F4:
* Address: 80253208
* Size: 00009C
*/
void ContRumble::getRumbleParameter(int, float&, float&)
void ContRumble::getRumbleParameter(int idx, f32& x, f32& y)
{
f32 parm1[3] = { 0.4f, 0.55f, 1.0f };
f32 parm2[3] = { 0.2f, 0.35f, 0.5f };
x = parm1[idx % 3] * x;
y = parm2[idx % 3];
/*
stwu r1, -0x30(r1)
lis r3, 0x55555556@ha
@ -357,41 +288,4 @@ void ContRumble::getRumbleParameter(int, float&, float&)
blr
*/
}
/*
* --INFO--
* Address: 802532A4
* Size: 000060
*/
RumbleNode::~RumbleNode()
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
or. r30, r3, r3
beq lbl_802532E8
lis r5, __vt__Q24Game10RumbleNode@ha
li r4, 0
addi r0, r5, __vt__Q24Game10RumbleNode@l
stw r0, 0(r30)
bl __dt__5CNodeFv
extsh. r0, r31
ble lbl_802532E8
mr r3, r30
bl __dl__FPv
lbl_802532E8:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
} // namespace Game

View File

@ -22,7 +22,7 @@ NISHIMURA_FILES:=\
$(BUILD_DIR)/src/plugProjectNishimuraU/ObjectLayout.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/CameraMgr.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/ContRumble.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/RumbleMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/RumbleMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/PomAnimator.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/PomMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/Pom.o\

File diff suppressed because it is too large Load Diff

View File

@ -545,3 +545,5 @@ You have 2641 out of 10000 Pokos and 80 out of 201 treasures.",2023-09-15 20:22:
You have 2658 out of 10000 Pokos and 81 out of 201 treasures.",2023-09-16 16:24:54.198503
2661,1238080,0.2661191586535155,81,288544,0.40477179121730056,"
You have 2661 out of 10000 Pokos and 81 out of 201 treasures.",2023-09-17 10:57:02.628081
2667,1240916,0.26672874279504216,81,288781,0.405104256680171,"
You have 2667 out of 10000 Pokos and 81 out of 201 treasures.",2023-09-17 12:29:30.729811

1 code_count_in_pokos code_completion_in_bytes code_completion_in_percentage data_count_in_treasures data_completion_in_bytes data_completion_in_percentage sentence created_at
545
546
547
548
549