Match + link remaining 6 Otakara mgrs

BombOtakaraMgr.cpp, ElecOtakaraMgr.cpp, FireOtakaraMgr.cpp, GasOtakaraMgr.cpp, OtakaraBaseMgr.cpp, WaterOtakaraMgr.cpp
This commit is contained in:
HeartPiece 2022-10-21 13:42:38 +11:00
parent 8a86b92294
commit 698c2d8d66
22 changed files with 279 additions and 5233 deletions

View File

@ -1,339 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
lbl_8048D3D8:
.asciz "/enemy/data/BombOtakara/otakara_bomb_s3tc.bti"
.balign 4
lbl_8048D408: # Shift-JIS
.4byte 0x836F834E
.4byte 0x835F8393
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.balign 4
lbl_8048D428:
.asciz "BombOtakaraMgr.cpp"
.balign 4
lbl_8048D43C:
.asciz "P2Assert"
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.global __vt__Q34Game11BombOtakara3Mgr
__vt__Q34Game11BombOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11BombOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11BombOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game11BombOtakara3MgrFi
.4byte getEnemy__Q34Game11BombOtakara3MgrFi
.4byte doAlloc__Q34Game11BombOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game11BombOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game11BombOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game11BombOtakara3MgrFv
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
"cOtakaraChangeTexName__Q34Game11BombOtakara28@unnamed@BombOtakaraMgr_cpp@": # local object
.4byte lbl_8048D3D8
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __ct__Q34Game11BombOtakara3MgrFiUc
__ct__Q34Game11BombOtakara3MgrFiUc:
/* 802F92D0 002F6210 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F92D4 002F6214 7C 08 02 A6 */ mflr r0
/* 802F92D8 002F6218 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F92DC 002F621C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F92E0 002F6220 7C 7F 1B 78 */ mr r31, r3
/* 802F92E4 002F6224 4B FB CB B5 */ bl __ct__Q34Game11OtakaraBase3MgrFiUc
/* 802F92E8 002F6228 3C 60 80 4D */ lis r3, __vt__Q34Game11BombOtakara3Mgr@ha
/* 802F92EC 002F622C 3C 80 80 49 */ lis r4, lbl_8048D408@ha
/* 802F92F0 002F6230 38 A3 5A 20 */ addi r5, r3, __vt__Q34Game11BombOtakara3Mgr@l
/* 802F92F4 002F6234 7F E3 FB 78 */ mr r3, r31
/* 802F92F8 002F6238 90 BF 00 00 */ stw r5, 0(r31)
/* 802F92FC 002F623C 38 A5 00 38 */ addi r5, r5, 0x38
/* 802F9300 002F6240 38 04 D4 08 */ addi r0, r4, lbl_8048D408@l
/* 802F9304 002F6244 90 BF 00 04 */ stw r5, 4(r31)
/* 802F9308 002F6248 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802F930C 002F624C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F9310 002F6250 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F9314 002F6254 7C 08 03 A6 */ mtlr r0
/* 802F9318 002F6258 38 21 00 10 */ addi r1, r1, 0x10
/* 802F931C 002F625C 4E 80 00 20 */ blr
.global doAlloc__Q34Game11BombOtakara3MgrFv
doAlloc__Q34Game11BombOtakara3MgrFv:
/* 802F9320 002F6260 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F9324 002F6264 7C 08 02 A6 */ mflr r0
/* 802F9328 002F6268 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F932C 002F626C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F9330 002F6270 7C 7F 1B 78 */ mr r31, r3
/* 802F9334 002F6274 38 60 08 A8 */ li r3, 0x8a8
/* 802F9338 002F6278 4B D2 AB 6D */ bl __nw__FUl
/* 802F933C 002F627C 7C 64 1B 79 */ or. r4, r3, r3
/* 802F9340 002F6280 41 82 00 0C */ beq lbl_802F934C
/* 802F9344 002F6284 4B FB EA 21 */ bl __ct__Q34Game11OtakaraBase5ParmsFv
/* 802F9348 002F6288 7C 64 1B 78 */ mr r4, r3
lbl_802F934C:
/* 802F934C 002F628C 7F E3 FB 78 */ mr r3, r31
/* 802F9350 002F6290 4B E3 65 4D */ bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
/* 802F9354 002F6294 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F9358 002F6298 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F935C 002F629C 7C 08 03 A6 */ mtlr r0
/* 802F9360 002F62A0 38 21 00 10 */ addi r1, r1, 0x10
/* 802F9364 002F62A4 4E 80 00 20 */ blr
.global createObj__Q34Game11BombOtakara3MgrFi
createObj__Q34Game11BombOtakara3MgrFi:
/* 802F9368 002F62A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F936C 002F62AC 7C 08 02 A6 */ mflr r0
/* 802F9370 002F62B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F9374 002F62B4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F9378 002F62B8 7C 9F 23 78 */ mr r31, r4
/* 802F937C 002F62BC 93 C1 00 08 */ stw r30, 8(r1)
/* 802F9380 002F62C0 7C 7E 1B 78 */ mr r30, r3
/* 802F9384 002F62C4 1C 7F 03 04 */ mulli r3, r31, 0x304
/* 802F9388 002F62C8 38 63 00 10 */ addi r3, r3, 0x10
/* 802F938C 002F62CC 4B D2 AC 21 */ bl __nwa__FUl
/* 802F9390 002F62D0 3C 80 80 30 */ lis r4, __ct__Q34Game11BombOtakara3ObjFv@ha
/* 802F9394 002F62D4 3C A0 80 30 */ lis r5, __dt__Q34Game11BombOtakara3ObjFv@ha
/* 802F9398 002F62D8 38 84 96 24 */ addi r4, r4, __ct__Q34Game11BombOtakara3ObjFv@l
/* 802F939C 002F62DC 7F E7 FB 78 */ mr r7, r31
/* 802F93A0 002F62E0 38 A5 93 C8 */ addi r5, r5, __dt__Q34Game11BombOtakara3ObjFv@l
/* 802F93A4 002F62E4 38 C0 03 04 */ li r6, 0x304
/* 802F93A8 002F62E8 4B DC 86 49 */ bl __construct_new_array
/* 802F93AC 002F62EC 90 7E 00 48 */ stw r3, 0x48(r30)
/* 802F93B0 002F62F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F93B4 002F62F4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F93B8 002F62F8 83 C1 00 08 */ lwz r30, 8(r1)
/* 802F93BC 002F62FC 7C 08 03 A6 */ mtlr r0
/* 802F93C0 002F6300 38 21 00 10 */ addi r1, r1, 0x10
/* 802F93C4 002F6304 4E 80 00 20 */ blr
.global __dt__Q34Game11BombOtakara3ObjFv
__dt__Q34Game11BombOtakara3ObjFv:
/* 802F93C8 002F6308 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F93CC 002F630C 7C 08 02 A6 */ mflr r0
/* 802F93D0 002F6310 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F93D4 002F6314 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F93D8 002F6318 7C 9F 23 78 */ mr r31, r4
/* 802F93DC 002F631C 93 C1 00 08 */ stw r30, 8(r1)
/* 802F93E0 002F6320 7C 7E 1B 79 */ or. r30, r3, r3
/* 802F93E4 002F6324 41 82 00 B4 */ beq lbl_802F9498
/* 802F93E8 002F6328 3C 60 80 4D */ lis r3, __vt__Q34Game11BombOtakara3Obj@ha
/* 802F93EC 002F632C 38 BE 02 F4 */ addi r5, r30, 0x2f4
/* 802F93F0 002F6330 38 83 5B 08 */ addi r4, r3, __vt__Q34Game11BombOtakara3Obj@l
/* 802F93F4 002F6334 90 9E 00 00 */ stw r4, 0(r30)
/* 802F93F8 002F6338 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802F93FC 002F633C 38 04 03 24 */ addi r0, r4, 0x324
/* 802F9400 002F6340 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802F9404 002F6344 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802F9408 002F6348 90 03 00 00 */ stw r0, 0(r3)
/* 802F940C 002F634C 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802F9410 002F6350 7C 03 28 50 */ subf r0, r3, r5
/* 802F9414 002F6354 90 03 00 0C */ stw r0, 0xc(r3)
/* 802F9418 002F6358 41 82 00 70 */ beq lbl_802F9488
/* 802F941C 002F635C 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
/* 802F9420 002F6360 38 83 F0 84 */ addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
/* 802F9424 002F6364 90 9E 00 00 */ stw r4, 0(r30)
/* 802F9428 002F6368 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802F942C 002F636C 38 04 03 24 */ addi r0, r4, 0x324
/* 802F9430 002F6370 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802F9434 002F6374 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802F9438 002F6378 90 03 00 00 */ stw r0, 0(r3)
/* 802F943C 002F637C 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802F9440 002F6380 7C 03 28 50 */ subf r0, r3, r5
/* 802F9444 002F6384 90 03 00 0C */ stw r0, 0xc(r3)
/* 802F9448 002F6388 41 82 00 40 */ beq lbl_802F9488
/* 802F944C 002F638C 3C 60 80 4B */ lis r3, __vt__Q24Game9EnemyBase@ha
/* 802F9450 002F6390 38 1E 02 BC */ addi r0, r30, 0x2bc
/* 802F9454 002F6394 38 83 A3 24 */ addi r4, r3, __vt__Q24Game9EnemyBase@l
/* 802F9458 002F6398 38 7E 02 90 */ addi r3, r30, 0x290
/* 802F945C 002F639C 90 9E 00 00 */ stw r4, 0(r30)
/* 802F9460 002F63A0 38 A4 01 B0 */ addi r5, r4, 0x1b0
/* 802F9464 002F63A4 38 C4 02 F8 */ addi r6, r4, 0x2f8
/* 802F9468 002F63A8 38 80 FF FF */ li r4, -1
/* 802F946C 002F63AC 90 BE 01 78 */ stw r5, 0x178(r30)
/* 802F9470 002F63B0 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802F9474 002F63B4 90 C5 00 00 */ stw r6, 0(r5)
/* 802F9478 002F63B8 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802F947C 002F63BC 7C 05 00 50 */ subf r0, r5, r0
/* 802F9480 002F63C0 90 05 00 0C */ stw r0, 0xc(r5)
/* 802F9484 002F63C4 48 11 81 05 */ bl __dt__5CNodeFv
lbl_802F9488:
/* 802F9488 002F63C8 7F E0 07 35 */ extsh. r0, r31
/* 802F948C 002F63CC 40 81 00 0C */ ble lbl_802F9498
/* 802F9490 002F63D0 7F C3 F3 78 */ mr r3, r30
/* 802F9494 002F63D4 4B D2 AC 21 */ bl __dl__FPv
lbl_802F9498:
/* 802F9498 002F63D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F949C 002F63DC 7F C3 F3 78 */ mr r3, r30
/* 802F94A0 002F63E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F94A4 002F63E4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802F94A8 002F63E8 7C 08 03 A6 */ mtlr r0
/* 802F94AC 002F63EC 38 21 00 10 */ addi r1, r1, 0x10
/* 802F94B0 002F63F0 4E 80 00 20 */ blr
.global getEnemy__Q34Game11BombOtakara3MgrFi
getEnemy__Q34Game11BombOtakara3MgrFi:
/* 802F94B4 002F63F4 1C 04 03 04 */ mulli r0, r4, 0x304
/* 802F94B8 002F63F8 80 63 00 48 */ lwz r3, 0x48(r3)
/* 802F94BC 002F63FC 7C 63 02 14 */ add r3, r3, r0
/* 802F94C0 002F6400 4E 80 00 20 */ blr
.global loadTexData__Q34Game11BombOtakara3MgrFv
loadTexData__Q34Game11BombOtakara3MgrFv:
/* 802F94C4 002F6404 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802F94C8 002F6408 7C 08 02 A6 */ mflr r0
/* 802F94CC 002F640C 90 01 00 44 */ stw r0, 0x44(r1)
/* 802F94D0 002F6410 38 00 00 00 */ li r0, 0
/* 802F94D4 002F6414 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802F94D8 002F6418 7C 7F 1B 78 */ mr r31, r3
/* 802F94DC 002F641C 90 03 00 44 */ stw r0, 0x44(r3)
/* 802F94E0 002F6420 38 61 00 08 */ addi r3, r1, 8
/* 802F94E4 002F6424 80 8D 85 08 */ lwz r4, "cOtakaraChangeTexName__Q34Game11BombOtakara28@unnamed@BombOtakaraMgr_cpp@"@sda21(r13)
/* 802F94E8 002F6428 48 15 30 F1 */ bl __ct__Q212LoadResource3ArgFPCc
/* 802F94EC 002F642C 80 6D 9C 28 */ lwz r3, gLoadResourceMgr@sda21(r13)
/* 802F94F0 002F6430 38 81 00 08 */ addi r4, r1, 8
/* 802F94F4 002F6434 48 15 32 AD */ bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
/* 802F94F8 002F6438 28 03 00 00 */ cmplwi r3, 0
/* 802F94FC 002F643C 41 82 00 0C */ beq lbl_802F9508
/* 802F9500 002F6440 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802F9504 002F6444 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_802F9508:
/* 802F9508 002F6448 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 802F950C 002F644C 28 00 00 00 */ cmplwi r0, 0
/* 802F9510 002F6450 40 82 00 20 */ bne lbl_802F9530
/* 802F9514 002F6454 3C 60 80 49 */ lis r3, lbl_8048D428@ha
/* 802F9518 002F6458 3C A0 80 49 */ lis r5, lbl_8048D43C@ha
/* 802F951C 002F645C 38 63 D4 28 */ addi r3, r3, lbl_8048D428@l
/* 802F9520 002F6460 38 80 00 53 */ li r4, 0x53
/* 802F9524 002F6464 38 A5 D4 3C */ addi r5, r5, lbl_8048D43C@l
/* 802F9528 002F6468 4C C6 31 82 */ crclr 6
/* 802F952C 002F646C 4B D3 11 15 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802F9530:
/* 802F9530 002F6470 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802F9534 002F6474 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802F9538 002F6478 7C 08 03 A6 */ mtlr r0
/* 802F953C 002F647C 38 21 00 40 */ addi r1, r1, 0x40
/* 802F9540 002F6480 4E 80 00 20 */ blr
.global __dt__Q34Game11BombOtakara3MgrFv
__dt__Q34Game11BombOtakara3MgrFv:
/* 802F9544 002F6484 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F9548 002F6488 7C 08 02 A6 */ mflr r0
/* 802F954C 002F648C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F9550 002F6490 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F9554 002F6494 7C 9F 23 78 */ mr r31, r4
/* 802F9558 002F6498 93 C1 00 08 */ stw r30, 8(r1)
/* 802F955C 002F649C 7C 7E 1B 79 */ or. r30, r3, r3
/* 802F9560 002F64A0 41 82 00 90 */ beq lbl_802F95F0
/* 802F9564 002F64A4 3C 60 80 4D */ lis r3, __vt__Q34Game11BombOtakara3Mgr@ha
/* 802F9568 002F64A8 38 63 5A 20 */ addi r3, r3, __vt__Q34Game11BombOtakara3Mgr@l
/* 802F956C 002F64AC 90 7E 00 00 */ stw r3, 0(r30)
/* 802F9570 002F64B0 38 03 00 38 */ addi r0, r3, 0x38
/* 802F9574 002F64B4 90 1E 00 04 */ stw r0, 4(r30)
/* 802F9578 002F64B8 41 82 00 68 */ beq lbl_802F95E0
/* 802F957C 002F64BC 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802F9580 002F64C0 38 63 EF 90 */ addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802F9584 002F64C4 90 7E 00 00 */ stw r3, 0(r30)
/* 802F9588 002F64C8 38 03 00 38 */ addi r0, r3, 0x38
/* 802F958C 002F64CC 90 1E 00 04 */ stw r0, 4(r30)
/* 802F9590 002F64D0 41 82 00 50 */ beq lbl_802F95E0
/* 802F9594 002F64D4 3C 60 80 4B */ lis r3, __vt__Q24Game12EnemyMgrBase@ha
/* 802F9598 002F64D8 38 63 F8 A0 */ addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
/* 802F959C 002F64DC 90 7E 00 00 */ stw r3, 0(r30)
/* 802F95A0 002F64E0 38 03 00 38 */ addi r0, r3, 0x38
/* 802F95A4 002F64E4 90 1E 00 04 */ stw r0, 4(r30)
/* 802F95A8 002F64E8 41 82 00 38 */ beq lbl_802F95E0
/* 802F95AC 002F64EC 3C 60 80 4B */ lis r3, __vt__Q24Game13IEnemyMgrBase@ha
/* 802F95B0 002F64F0 34 1E 00 04 */ addic. r0, r30, 4
/* 802F95B4 002F64F4 38 63 AC FC */ addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
/* 802F95B8 002F64F8 90 7E 00 00 */ stw r3, 0(r30)
/* 802F95BC 002F64FC 38 03 00 38 */ addi r0, r3, 0x38
/* 802F95C0 002F6500 90 1E 00 04 */ stw r0, 4(r30)
/* 802F95C4 002F6504 41 82 00 1C */ beq lbl_802F95E0
/* 802F95C8 002F6508 3C 80 80 4B */ lis r4, __vt__16GenericContainer@ha
/* 802F95CC 002F650C 38 7E 00 04 */ addi r3, r30, 4
/* 802F95D0 002F6510 38 04 AC DC */ addi r0, r4, __vt__16GenericContainer@l
/* 802F95D4 002F6514 38 80 00 00 */ li r4, 0
/* 802F95D8 002F6518 90 1E 00 04 */ stw r0, 4(r30)
/* 802F95DC 002F651C 48 11 7F AD */ bl __dt__5CNodeFv
lbl_802F95E0:
/* 802F95E0 002F6520 7F E0 07 35 */ extsh. r0, r31
/* 802F95E4 002F6524 40 81 00 0C */ ble lbl_802F95F0
/* 802F95E8 002F6528 7F C3 F3 78 */ mr r3, r30
/* 802F95EC 002F652C 4B D2 AA C9 */ bl __dl__FPv
lbl_802F95F0:
/* 802F95F0 002F6530 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F95F4 002F6534 7F C3 F3 78 */ mr r3, r30
/* 802F95F8 002F6538 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F95FC 002F653C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802F9600 002F6540 7C 08 03 A6 */ mtlr r0
/* 802F9604 002F6544 38 21 00 10 */ addi r1, r1, 0x10
/* 802F9608 002F6548 4E 80 00 20 */ blr
.global getEnemyTypeID__Q34Game11BombOtakara3MgrFv
getEnemyTypeID__Q34Game11BombOtakara3MgrFv:
/* 802F960C 002F654C 38 60 00 5D */ li r3, 0x5d
/* 802F9610 002F6550 4E 80 00 20 */ blr
.global getChangeTexture__Q34Game11BombOtakara3MgrFv
getChangeTexture__Q34Game11BombOtakara3MgrFv:
/* 802F9614 002F6554 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802F9618 002F6558 4E 80 00 20 */ blr
.global "@4@__dt__Q34Game11BombOtakara3MgrFv"
"@4@__dt__Q34Game11BombOtakara3MgrFv":
/* 802F961C 002F655C 38 63 FF FC */ addi r3, r3, -4
/* 802F9620 002F6560 4B FF FF 24 */ b __dt__Q34Game11BombOtakara3MgrFv

View File

@ -1,344 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
.global lbl_8048A840
lbl_8048A840:
.asciz "/enemy/data/ElecOtakara/otakara_yellow_s3tc.bti"
.global lbl_8048A870
lbl_8048A870:
.4byte 0x93648B43
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.global lbl_8048A88C
lbl_8048A88C:
.asciz "ElecOtakaraMgr.cpp"
.skip 1
.global lbl_8048A8A0
lbl_8048A8A0:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.global __vt__Q34Game11ElecOtakara3Mgr
__vt__Q34Game11ElecOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11ElecOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11ElecOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game11ElecOtakara3MgrFi
.4byte getEnemy__Q34Game11ElecOtakara3MgrFi
.4byte doAlloc__Q34Game11ElecOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game11ElecOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game11ElecOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game11ElecOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
.global "cOtakaraChangeTexName__Q34Game11ElecOtakara28@unnamed@ElecOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game11ElecOtakara28@unnamed@ElecOtakaraMgr_cpp@":
.4byte lbl_8048A840
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __ct__Q34Game11ElecOtakara3MgrFiUc
__ct__Q34Game11ElecOtakara3MgrFiUc:
/* 802B9780 002B66C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B9784 002B66C4 7C 08 02 A6 */ mflr r0
/* 802B9788 002B66C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B978C 002B66CC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B9790 002B66D0 7C 7F 1B 78 */ mr r31, r3
/* 802B9794 002B66D4 4B FF C7 05 */ bl __ct__Q34Game11OtakaraBase3MgrFiUc
/* 802B9798 002B66D8 3C 60 80 4D */ lis r3, __vt__Q34Game11ElecOtakara3Mgr@ha
/* 802B979C 002B66DC 3C 80 80 49 */ lis r4, lbl_8048A870@ha
/* 802B97A0 002B66E0 38 A3 01 30 */ addi r5, r3, __vt__Q34Game11ElecOtakara3Mgr@l
/* 802B97A4 002B66E4 7F E3 FB 78 */ mr r3, r31
/* 802B97A8 002B66E8 90 BF 00 00 */ stw r5, 0(r31)
/* 802B97AC 002B66EC 38 A5 00 38 */ addi r5, r5, 0x38
/* 802B97B0 002B66F0 38 04 A8 70 */ addi r0, r4, lbl_8048A870@l
/* 802B97B4 002B66F4 90 BF 00 04 */ stw r5, 4(r31)
/* 802B97B8 002B66F8 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802B97BC 002B66FC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B97C0 002B6700 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B97C4 002B6704 7C 08 03 A6 */ mtlr r0
/* 802B97C8 002B6708 38 21 00 10 */ addi r1, r1, 0x10
/* 802B97CC 002B670C 4E 80 00 20 */ blr
.global doAlloc__Q34Game11ElecOtakara3MgrFv
doAlloc__Q34Game11ElecOtakara3MgrFv:
/* 802B97D0 002B6710 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B97D4 002B6714 7C 08 02 A6 */ mflr r0
/* 802B97D8 002B6718 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B97DC 002B671C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B97E0 002B6720 7C 7F 1B 78 */ mr r31, r3
/* 802B97E4 002B6724 38 60 08 A8 */ li r3, 0x8a8
/* 802B97E8 002B6728 4B D6 A6 BD */ bl __nw__FUl
/* 802B97EC 002B672C 7C 64 1B 79 */ or. r4, r3, r3
/* 802B97F0 002B6730 41 82 00 0C */ beq lbl_802B97FC
/* 802B97F4 002B6734 4B FF E5 71 */ bl __ct__Q34Game11OtakaraBase5ParmsFv
/* 802B97F8 002B6738 7C 64 1B 78 */ mr r4, r3
lbl_802B97FC:
/* 802B97FC 002B673C 7F E3 FB 78 */ mr r3, r31
/* 802B9800 002B6740 4B E7 60 9D */ bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
/* 802B9804 002B6744 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9808 002B6748 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B980C 002B674C 7C 08 03 A6 */ mtlr r0
/* 802B9810 002B6750 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9814 002B6754 4E 80 00 20 */ blr
.global createObj__Q34Game11ElecOtakara3MgrFi
createObj__Q34Game11ElecOtakara3MgrFi:
/* 802B9818 002B6758 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B981C 002B675C 7C 08 02 A6 */ mflr r0
/* 802B9820 002B6760 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B9824 002B6764 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B9828 002B6768 7C 9F 23 78 */ mr r31, r4
/* 802B982C 002B676C 93 C1 00 08 */ stw r30, 8(r1)
/* 802B9830 002B6770 7C 7E 1B 78 */ mr r30, r3
/* 802B9834 002B6774 1C 7F 03 08 */ mulli r3, r31, 0x308
/* 802B9838 002B6778 38 63 00 10 */ addi r3, r3, 0x10
/* 802B983C 002B677C 4B D6 A7 71 */ bl __nwa__FUl
/* 802B9840 002B6780 3C 80 80 2C */ lis r4, __ct__Q34Game11ElecOtakara3ObjFv@ha
/* 802B9844 002B6784 3C A0 80 2C */ lis r5, __dt__Q34Game11ElecOtakara3ObjFv@ha
/* 802B9848 002B6788 38 84 9A D8 */ addi r4, r4, __ct__Q34Game11ElecOtakara3ObjFv@l
/* 802B984C 002B678C 7F E7 FB 78 */ mr r7, r31
/* 802B9850 002B6790 38 A5 98 78 */ addi r5, r5, __dt__Q34Game11ElecOtakara3ObjFv@l
/* 802B9854 002B6794 38 C0 03 08 */ li r6, 0x308
/* 802B9858 002B6798 4B E0 81 99 */ bl __construct_new_array
/* 802B985C 002B679C 90 7E 00 48 */ stw r3, 0x48(r30)
/* 802B9860 002B67A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9864 002B67A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B9868 002B67A8 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B986C 002B67AC 7C 08 03 A6 */ mtlr r0
/* 802B9870 002B67B0 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9874 002B67B4 4E 80 00 20 */ blr
.global __dt__Q34Game11ElecOtakara3ObjFv
__dt__Q34Game11ElecOtakara3ObjFv:
/* 802B9878 002B67B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B987C 002B67BC 7C 08 02 A6 */ mflr r0
/* 802B9880 002B67C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B9884 002B67C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B9888 002B67C8 7C 9F 23 78 */ mr r31, r4
/* 802B988C 002B67CC 93 C1 00 08 */ stw r30, 8(r1)
/* 802B9890 002B67D0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B9894 002B67D4 41 82 00 B8 */ beq lbl_802B994C
/* 802B9898 002B67D8 3C 60 80 4D */ lis r3, __vt__Q34Game11ElecOtakara3Obj@ha
/* 802B989C 002B67DC 38 1E 02 F8 */ addi r0, r30, 0x2f8
/* 802B98A0 002B67E0 38 83 02 48 */ addi r4, r3, __vt__Q34Game11ElecOtakara3Obj@l
/* 802B98A4 002B67E4 90 9E 00 00 */ stw r4, 0(r30)
/* 802B98A8 002B67E8 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B98AC 002B67EC 38 84 03 24 */ addi r4, r4, 0x324
/* 802B98B0 002B67F0 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B98B4 002B67F4 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B98B8 002B67F8 90 83 00 00 */ stw r4, 0(r3)
/* 802B98BC 002B67FC 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B98C0 002B6800 7C 03 00 50 */ subf r0, r3, r0
/* 802B98C4 002B6804 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B98C8 002B6808 41 82 00 74 */ beq lbl_802B993C
/* 802B98CC 002B680C 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
/* 802B98D0 002B6810 38 1E 02 F4 */ addi r0, r30, 0x2f4
/* 802B98D4 002B6814 38 83 F0 84 */ addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
/* 802B98D8 002B6818 90 9E 00 00 */ stw r4, 0(r30)
/* 802B98DC 002B681C 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B98E0 002B6820 38 84 03 24 */ addi r4, r4, 0x324
/* 802B98E4 002B6824 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B98E8 002B6828 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B98EC 002B682C 90 83 00 00 */ stw r4, 0(r3)
/* 802B98F0 002B6830 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B98F4 002B6834 7C 03 00 50 */ subf r0, r3, r0
/* 802B98F8 002B6838 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B98FC 002B683C 41 82 00 40 */ beq lbl_802B993C
/* 802B9900 002B6840 3C 60 80 4B */ lis r3, __vt__Q24Game9EnemyBase@ha
/* 802B9904 002B6844 38 1E 02 BC */ addi r0, r30, 0x2bc
/* 802B9908 002B6848 38 83 A3 24 */ addi r4, r3, __vt__Q24Game9EnemyBase@l
/* 802B990C 002B684C 38 7E 02 90 */ addi r3, r30, 0x290
/* 802B9910 002B6850 90 9E 00 00 */ stw r4, 0(r30)
/* 802B9914 002B6854 38 A4 01 B0 */ addi r5, r4, 0x1b0
/* 802B9918 002B6858 38 C4 02 F8 */ addi r6, r4, 0x2f8
/* 802B991C 002B685C 38 80 FF FF */ li r4, -1
/* 802B9920 002B6860 90 BE 01 78 */ stw r5, 0x178(r30)
/* 802B9924 002B6864 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B9928 002B6868 90 C5 00 00 */ stw r6, 0(r5)
/* 802B992C 002B686C 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B9930 002B6870 7C 05 00 50 */ subf r0, r5, r0
/* 802B9934 002B6874 90 05 00 0C */ stw r0, 0xc(r5)
/* 802B9938 002B6878 48 15 7C 51 */ bl __dt__5CNodeFv
lbl_802B993C:
/* 802B993C 002B687C 7F E0 07 35 */ extsh. r0, r31
/* 802B9940 002B6880 40 81 00 0C */ ble lbl_802B994C
/* 802B9944 002B6884 7F C3 F3 78 */ mr r3, r30
/* 802B9948 002B6888 4B D6 A7 6D */ bl __dl__FPv
lbl_802B994C:
/* 802B994C 002B688C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9950 002B6890 7F C3 F3 78 */ mr r3, r30
/* 802B9954 002B6894 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B9958 002B6898 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B995C 002B689C 7C 08 03 A6 */ mtlr r0
/* 802B9960 002B68A0 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9964 002B68A4 4E 80 00 20 */ blr
.global getEnemy__Q34Game11ElecOtakara3MgrFi
getEnemy__Q34Game11ElecOtakara3MgrFi:
/* 802B9968 002B68A8 1C 04 03 08 */ mulli r0, r4, 0x308
/* 802B996C 002B68AC 80 63 00 48 */ lwz r3, 0x48(r3)
/* 802B9970 002B68B0 7C 63 02 14 */ add r3, r3, r0
/* 802B9974 002B68B4 4E 80 00 20 */ blr
.global loadTexData__Q34Game11ElecOtakara3MgrFv
loadTexData__Q34Game11ElecOtakara3MgrFv:
/* 802B9978 002B68B8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802B997C 002B68BC 7C 08 02 A6 */ mflr r0
/* 802B9980 002B68C0 90 01 00 44 */ stw r0, 0x44(r1)
/* 802B9984 002B68C4 38 00 00 00 */ li r0, 0
/* 802B9988 002B68C8 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802B998C 002B68CC 7C 7F 1B 78 */ mr r31, r3
/* 802B9990 002B68D0 90 03 00 44 */ stw r0, 0x44(r3)
/* 802B9994 002B68D4 38 61 00 08 */ addi r3, r1, 8
/* 802B9998 002B68D8 80 8D 84 F8 */ lwz r4, "cOtakaraChangeTexName__Q34Game11ElecOtakara28@unnamed@ElecOtakaraMgr_cpp@"@sda21(r13)
/* 802B999C 002B68DC 48 19 2C 3D */ bl __ct__Q212LoadResource3ArgFPCc
/* 802B99A0 002B68E0 80 6D 9C 28 */ lwz r3, gLoadResourceMgr@sda21(r13)
/* 802B99A4 002B68E4 38 81 00 08 */ addi r4, r1, 8
/* 802B99A8 002B68E8 48 19 2D F9 */ bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
/* 802B99AC 002B68EC 28 03 00 00 */ cmplwi r3, 0
/* 802B99B0 002B68F0 41 82 00 0C */ beq lbl_802B99BC
/* 802B99B4 002B68F4 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802B99B8 002B68F8 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_802B99BC:
/* 802B99BC 002B68FC 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 802B99C0 002B6900 28 00 00 00 */ cmplwi r0, 0
/* 802B99C4 002B6904 40 82 00 20 */ bne lbl_802B99E4
/* 802B99C8 002B6908 3C 60 80 49 */ lis r3, lbl_8048A88C@ha
/* 802B99CC 002B690C 3C A0 80 49 */ lis r5, lbl_8048A8A0@ha
/* 802B99D0 002B6910 38 63 A8 8C */ addi r3, r3, lbl_8048A88C@l
/* 802B99D4 002B6914 38 80 00 53 */ li r4, 0x53
/* 802B99D8 002B6918 38 A5 A8 A0 */ addi r5, r5, lbl_8048A8A0@l
/* 802B99DC 002B691C 4C C6 31 82 */ crclr 6
/* 802B99E0 002B6920 4B D7 0C 61 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802B99E4:
/* 802B99E4 002B6924 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802B99E8 002B6928 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802B99EC 002B692C 7C 08 03 A6 */ mtlr r0
/* 802B99F0 002B6930 38 21 00 40 */ addi r1, r1, 0x40
/* 802B99F4 002B6934 4E 80 00 20 */ blr
.global __dt__Q34Game11ElecOtakara3MgrFv
__dt__Q34Game11ElecOtakara3MgrFv:
/* 802B99F8 002B6938 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B99FC 002B693C 7C 08 02 A6 */ mflr r0
/* 802B9A00 002B6940 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B9A04 002B6944 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B9A08 002B6948 7C 9F 23 78 */ mr r31, r4
/* 802B9A0C 002B694C 93 C1 00 08 */ stw r30, 8(r1)
/* 802B9A10 002B6950 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B9A14 002B6954 41 82 00 90 */ beq lbl_802B9AA4
/* 802B9A18 002B6958 3C 60 80 4D */ lis r3, __vt__Q34Game11ElecOtakara3Mgr@ha
/* 802B9A1C 002B695C 38 63 01 30 */ addi r3, r3, __vt__Q34Game11ElecOtakara3Mgr@l
/* 802B9A20 002B6960 90 7E 00 00 */ stw r3, 0(r30)
/* 802B9A24 002B6964 38 03 00 38 */ addi r0, r3, 0x38
/* 802B9A28 002B6968 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9A2C 002B696C 41 82 00 68 */ beq lbl_802B9A94
/* 802B9A30 002B6970 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802B9A34 002B6974 38 63 EF 90 */ addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802B9A38 002B6978 90 7E 00 00 */ stw r3, 0(r30)
/* 802B9A3C 002B697C 38 03 00 38 */ addi r0, r3, 0x38
/* 802B9A40 002B6980 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9A44 002B6984 41 82 00 50 */ beq lbl_802B9A94
/* 802B9A48 002B6988 3C 60 80 4B */ lis r3, __vt__Q24Game12EnemyMgrBase@ha
/* 802B9A4C 002B698C 38 63 F8 A0 */ addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
/* 802B9A50 002B6990 90 7E 00 00 */ stw r3, 0(r30)
/* 802B9A54 002B6994 38 03 00 38 */ addi r0, r3, 0x38
/* 802B9A58 002B6998 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9A5C 002B699C 41 82 00 38 */ beq lbl_802B9A94
/* 802B9A60 002B69A0 3C 60 80 4B */ lis r3, __vt__Q24Game13IEnemyMgrBase@ha
/* 802B9A64 002B69A4 34 1E 00 04 */ addic. r0, r30, 4
/* 802B9A68 002B69A8 38 63 AC FC */ addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
/* 802B9A6C 002B69AC 90 7E 00 00 */ stw r3, 0(r30)
/* 802B9A70 002B69B0 38 03 00 38 */ addi r0, r3, 0x38
/* 802B9A74 002B69B4 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9A78 002B69B8 41 82 00 1C */ beq lbl_802B9A94
/* 802B9A7C 002B69BC 3C 80 80 4B */ lis r4, __vt__16GenericContainer@ha
/* 802B9A80 002B69C0 38 7E 00 04 */ addi r3, r30, 4
/* 802B9A84 002B69C4 38 04 AC DC */ addi r0, r4, __vt__16GenericContainer@l
/* 802B9A88 002B69C8 38 80 00 00 */ li r4, 0
/* 802B9A8C 002B69CC 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9A90 002B69D0 48 15 7A F9 */ bl __dt__5CNodeFv
lbl_802B9A94:
/* 802B9A94 002B69D4 7F E0 07 35 */ extsh. r0, r31
/* 802B9A98 002B69D8 40 81 00 0C */ ble lbl_802B9AA4
/* 802B9A9C 002B69DC 7F C3 F3 78 */ mr r3, r30
/* 802B9AA0 002B69E0 4B D6 A6 15 */ bl __dl__FPv
lbl_802B9AA4:
/* 802B9AA4 002B69E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9AA8 002B69E8 7F C3 F3 78 */ mr r3, r30
/* 802B9AAC 002B69EC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B9AB0 002B69F0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B9AB4 002B69F4 7C 08 03 A6 */ mtlr r0
/* 802B9AB8 002B69F8 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9ABC 002B69FC 4E 80 00 20 */ blr
.global getEnemyTypeID__Q34Game11ElecOtakara3MgrFv
getEnemyTypeID__Q34Game11ElecOtakara3MgrFv:
/* 802B9AC0 002B6A00 38 60 00 3E */ li r3, 0x3e
/* 802B9AC4 002B6A04 4E 80 00 20 */ blr
.global getChangeTexture__Q34Game11ElecOtakara3MgrFv
getChangeTexture__Q34Game11ElecOtakara3MgrFv:
/* 802B9AC8 002B6A08 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802B9ACC 002B6A0C 4E 80 00 20 */ blr
.global "@4@__dt__Q34Game11ElecOtakara3MgrFv"
"@4@__dt__Q34Game11ElecOtakara3MgrFv":
/* 802B9AD0 002B6A10 38 63 FF FC */ addi r3, r3, -4
/* 802B9AD4 002B6A14 4B FF FF 24 */ b __dt__Q34Game11ElecOtakara3MgrFv

View File

@ -1,691 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
.global lbl_8048A3B8
lbl_8048A3B8:
.asciz "246-FireOtakaraMgr"
.skip 1
.global lbl_8048A3CC
lbl_8048A3CC:
.asciz "/enemy/data/FireOtakara/otakara_red_s3tc.bti"
.skip 3
.global lbl_8048A3FC
lbl_8048A3FC:
.4byte 0x89CE8349
.4byte 0x835E834A
.4byte 0x83898380
.4byte 0x8356837D
.4byte 0x836C815B
.4byte 0x83578383
.4byte 0x00000000
.4byte 0x4F74616B
.4byte 0x61726142
.4byte 0x61736550
.4byte 0x61726D73
.4byte 0x00000000
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83898343
.4byte 0x83740000
.4byte 0x836D815B
.4byte 0x837D838B
.4byte 0x8341835E
.4byte 0x8362834E
.4byte 0x00000000
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x8341835E
.4byte 0x8362834E
.4byte 0x00000000
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x834C8383
.4byte 0x83628360
.4byte 0x00000000
.4byte 0x43726561
.4byte 0x74757265
.4byte 0x3A3A5072
.4byte 0x6F706572
.4byte 0x74790000
.4byte 0x66726963
.4byte 0x74696F6E
.4byte 0x286E6F74
.4byte 0x20757365
.4byte 0x64290000
.4byte 0x77616C6C
.4byte 0x5265666C
.4byte 0x65637469
.4byte 0x6F6E0000
.4byte 0x66616365
.4byte 0x44697241
.4byte 0x646A7573
.4byte 0x74000000
.4byte 0x626F756E
.4byte 0x63654661
.4byte 0x63746F72
.4byte 0x00000000
.4byte 0x456E656D
.4byte 0x79506172
.4byte 0x6D734261
.4byte 0x73650000
.4byte 0x83898343
.4byte 0x837482CC
.4byte 0x8D8282B3
.4byte 0x00000000
.4byte 0x83898343
.4byte 0x837489F1
.4byte 0x959C97A6
.4byte 0x00000000
.4byte 0x8C7889FA
.4byte 0x83898343
.4byte 0x83740000
.4byte 0x837D8362
.4byte 0x837682C6
.4byte 0x82CC9396
.4byte 0x82E80000
.4byte 0x837D8362
.4byte 0x837682C6
.4byte 0x82CC82A0
.4byte 0x82BD82E8
.4byte 0x837C838A
.4byte 0x83538393
.4byte 0x82CC9149
.4byte 0x92E80000
.4byte 0x8373834E
.4byte 0x837E8393
.4byte 0x82C682CC
.4byte 0x82A082BD
.4byte 0x82E80000
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x83588350
.4byte 0x815B838B
.4byte 0x585A0000
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x83588350
.4byte 0x815B838B
.4byte 0x59000000
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x8374838C
.4byte 0x815B8380
.4byte 0x00000000
.4byte 0x89F1935D
.4byte 0x91AC9378
.4byte 0x97A60000
.4byte 0x89F1935D
.4byte 0x8DC591E5
.4byte 0x91AC9378
.4byte 0x00000000
.4byte 0x8365838A
.4byte 0x8367838A
.4byte 0x815B0000
.4byte 0x837A815B
.4byte 0x838094CD
.4byte 0x88CD0000
.4byte 0x83768389
.4byte 0x83438378
.4byte 0x815B8367
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x8E8B8A45
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x8E8B8A45
.4byte 0x8A709378
.4byte 0x00000000
.4byte 0x92548DF5
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x92548DF5
.4byte 0x8A709378
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x97CD0000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x94CD88CD
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x97A60000
.4byte 0x8D558C82
.4byte 0x89C2945C
.4byte 0x94CD88CD
.4byte 0x00000000
.4byte 0x8D558C82
.4byte 0x89C2945C
.4byte 0x8A709378
.4byte 0x00000000
.4byte 0x8D558C82
.4byte 0x83718362
.4byte 0x836794CD
.4byte 0x88CD0000
.4byte 0x8D558C82
.4byte 0x83718362
.4byte 0x83678A70
.4byte 0x93780000
.4byte 0x8C7889FA
.4byte 0x8E9E8AD4
.4byte 0x00000000
.4byte 0x90CE89BB
.4byte 0x8E9E8AD4
.4byte 0x00000000
.4byte 0x83718362
.4byte 0x83768368
.4byte 0x838D8362
.4byte 0x8376835F
.4byte 0x8381815B
.4byte 0x83570000
.4byte 0x926E906B
.4byte 0x8B4390E2
.4byte 0x8A6D97A7
.4byte 0x00000000
.4byte 0x926E906B
.4byte 0x8B4390E2
.4byte 0x8E9E8AD4
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82600000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x92A39574
.4byte 0x82500000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82610000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x92A39574
.4byte 0x82510000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82620000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x92A39574
.4byte 0x82520000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82630000
.global lbl_8048A740
lbl_8048A740:
.asciz "FireOtakaraMgr.cpp"
.skip 1
.global lbl_8048A754
lbl_8048A754:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.global __vt__Q34Game11FireOtakara3Mgr
__vt__Q34Game11FireOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11FireOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11FireOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game11FireOtakara3MgrFi
.4byte getEnemy__Q34Game11FireOtakara3MgrFi
.4byte doAlloc__Q34Game11FireOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game11FireOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game11FireOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game11FireOtakara3MgrFv
.global __vt__Q34Game11OtakaraBase5Parms
__vt__Q34Game11OtakaraBase5Parms:
.4byte 0
.4byte 0
.4byte read__Q34Game11OtakaraBase5ParmsFR6Stream
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
.global "cOtakaraChangeTexName__Q34Game11FireOtakara28@unnamed@FireOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game11FireOtakara28@unnamed@FireOtakaraMgr_cpp@":
.4byte lbl_8048A3CC
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.balign 8
.global lbl_8051C2E8
lbl_8051C2E8:
.4byte 0x42C80000
.global lbl_8051C2EC
lbl_8051C2EC:
.4byte 0x00000000
.global lbl_8051C2F0
lbl_8051C2F0:
.4byte 0x461C4000
.global lbl_8051C2F4
lbl_8051C2F4:
.float 1.0
.global lbl_8051C2F8
lbl_8051C2F8:
.4byte 0x41200000
.global lbl_8051C2FC
lbl_8051C2FC:
.4byte 0x3FA00000
.global lbl_8051C300
lbl_8051C300:
.4byte 0x40200000
.4byte 0x00000000
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __ct__Q34Game11FireOtakara3MgrFiUc
__ct__Q34Game11FireOtakara3MgrFiUc:
/* 802B7CCC 002B4C0C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B7CD0 002B4C10 7C 08 02 A6 */ mflr r0
/* 802B7CD4 002B4C14 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B7CD8 002B4C18 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B7CDC 002B4C1C 7C 7F 1B 78 */ mr r31, r3
/* 802B7CE0 002B4C20 4B FF E1 B9 */ bl __ct__Q34Game11OtakaraBase3MgrFiUc
/* 802B7CE4 002B4C24 3C 60 80 4D */ lis r3, __vt__Q34Game11FireOtakara3Mgr@ha
/* 802B7CE8 002B4C28 3C 80 80 49 */ lis r4, lbl_8048A3FC@ha
/* 802B7CEC 002B4C2C 38 A3 F3 D8 */ addi r5, r3, __vt__Q34Game11FireOtakara3Mgr@l
/* 802B7CF0 002B4C30 7F E3 FB 78 */ mr r3, r31
/* 802B7CF4 002B4C34 90 BF 00 00 */ stw r5, 0(r31)
/* 802B7CF8 002B4C38 38 A5 00 38 */ addi r5, r5, 0x38
/* 802B7CFC 002B4C3C 38 04 A3 FC */ addi r0, r4, lbl_8048A3FC@l
/* 802B7D00 002B4C40 90 BF 00 04 */ stw r5, 4(r31)
/* 802B7D04 002B4C44 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802B7D08 002B4C48 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B7D0C 002B4C4C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B7D10 002B4C50 7C 08 03 A6 */ mtlr r0
/* 802B7D14 002B4C54 38 21 00 10 */ addi r1, r1, 0x10
/* 802B7D18 002B4C58 4E 80 00 20 */ blr
.global doAlloc__Q34Game11FireOtakara3MgrFv
doAlloc__Q34Game11FireOtakara3MgrFv:
/* 802B7D1C 002B4C5C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B7D20 002B4C60 7C 08 02 A6 */ mflr r0
/* 802B7D24 002B4C64 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B7D28 002B4C68 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B7D2C 002B4C6C 7C 7F 1B 78 */ mr r31, r3
/* 802B7D30 002B4C70 38 60 08 A8 */ li r3, 0x8a8
/* 802B7D34 002B4C74 4B D6 C1 71 */ bl __nw__FUl
/* 802B7D38 002B4C78 7C 64 1B 79 */ or. r4, r3, r3
/* 802B7D3C 002B4C7C 41 82 00 0C */ beq lbl_802B7D48
/* 802B7D40 002B4C80 48 00 00 25 */ bl __ct__Q34Game11OtakaraBase5ParmsFv
/* 802B7D44 002B4C84 7C 64 1B 78 */ mr r4, r3
lbl_802B7D48:
/* 802B7D48 002B4C88 7F E3 FB 78 */ mr r3, r31
/* 802B7D4C 002B4C8C 4B E7 7B 51 */ bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
/* 802B7D50 002B4C90 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B7D54 002B4C94 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B7D58 002B4C98 7C 08 03 A6 */ mtlr r0
/* 802B7D5C 002B4C9C 38 21 00 10 */ addi r1, r1, 0x10
/* 802B7D60 002B4CA0 4E 80 00 20 */ blr
.global __ct__Q34Game11OtakaraBase5ParmsFv
__ct__Q34Game11OtakaraBase5ParmsFv:
/* 802B7D64 002B4CA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B7D68 002B4CA8 7C 08 02 A6 */ mflr r0
/* 802B7D6C 002B4CAC 3C 80 80 49 */ lis r4, lbl_8048A3B8@ha
/* 802B7D70 002B4CB0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B7D74 002B4CB4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B7D78 002B4CB8 7C 7F 1B 78 */ mr r31, r3
/* 802B7D7C 002B4CBC 93 C1 00 08 */ stw r30, 8(r1)
/* 802B7D80 002B4CC0 3B C4 A3 B8 */ addi r30, r4, lbl_8048A3B8@l
/* 802B7D84 002B4CC4 4B E5 1A 19 */ bl __ct__Q24Game14EnemyParmsBaseFv
/* 802B7D88 002B4CC8 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase5Parms@ha
/* 802B7D8C 002B4CCC 3C A0 66 70 */ lis r5, 0x66703031@ha
/* 802B7D90 002B4CD0 38 03 F4 BC */ addi r0, r3, __vt__Q34Game11OtakaraBase5Parms@l
/* 802B7D94 002B4CD4 38 9F 08 A4 */ addi r4, r31, 0x8a4
/* 802B7D98 002B4CD8 90 1F 00 D8 */ stw r0, 0xd8(r31)
/* 802B7D9C 002B4CDC 38 E0 00 00 */ li r7, 0
/* 802B7DA0 002B4CE0 38 1E 00 60 */ addi r0, r30, 0x60
/* 802B7DA4 002B4CE4 38 7F 08 04 */ addi r3, r31, 0x804
/* 802B7DA8 002B4CE8 90 9F 07 F8 */ stw r4, 0x7f8(r31)
/* 802B7DAC 002B4CEC 38 9F 07 F8 */ addi r4, r31, 0x7f8
/* 802B7DB0 002B4CF0 38 A5 30 31 */ addi r5, r5, 0x66703031@l
/* 802B7DB4 002B4CF4 38 DE 00 74 */ addi r6, r30, 0x74
/* 802B7DB8 002B4CF8 90 FF 07 FC */ stw r7, 0x7fc(r31)
/* 802B7DBC 002B4CFC 90 1F 08 00 */ stw r0, 0x800(r31)
/* 802B7DC0 002B4D00 48 15 B8 99 */ bl __ct__8BaseParmFP10ParametersUlPc
/* 802B7DC4 002B4D04 3C 60 80 4B */ lis r3, "__vt__7Parm<f>"@ha
/* 802B7DC8 002B4D08 3C A0 66 70 */ lis r5, 0x66703130@ha
/* 802B7DCC 002B4D0C 38 03 AC BC */ addi r0, r3, "__vt__7Parm<f>"@l
/* 802B7DD0 002B4D10 C0 02 DF 88 */ lfs f0, lbl_8051C2E8@sda21(r2)
/* 802B7DD4 002B4D14 90 1F 08 04 */ stw r0, 0x804(r31)
/* 802B7DD8 002B4D18 38 7F 08 2C */ addi r3, r31, 0x82c
/* 802B7DDC 002B4D1C C0 22 DF 8C */ lfs f1, lbl_8051C2EC@sda21(r2)
/* 802B7DE0 002B4D20 38 9F 07 F8 */ addi r4, r31, 0x7f8
/* 802B7DE4 002B4D24 D0 1F 08 1C */ stfs f0, 0x81c(r31)
/* 802B7DE8 002B4D28 38 A5 31 30 */ addi r5, r5, 0x66703130@l
/* 802B7DEC 002B4D2C C0 02 DF 90 */ lfs f0, lbl_8051C2F0@sda21(r2)
/* 802B7DF0 002B4D30 38 DE 00 84 */ addi r6, r30, 0x84
/* 802B7DF4 002B4D34 D0 3F 08 24 */ stfs f1, 0x824(r31)
/* 802B7DF8 002B4D38 D0 1F 08 28 */ stfs f0, 0x828(r31)
/* 802B7DFC 002B4D3C 48 15 B8 5D */ bl __ct__8BaseParmFP10ParametersUlPc
/* 802B7E00 002B4D40 3C 60 80 4B */ lis r3, "__vt__7Parm<f>"@ha
/* 802B7E04 002B4D44 3C A0 66 70 */ lis r5, 0x66703131@ha
/* 802B7E08 002B4D48 38 03 AC BC */ addi r0, r3, "__vt__7Parm<f>"@l
/* 802B7E0C 002B4D4C C0 02 DF 94 */ lfs f0, lbl_8051C2F4@sda21(r2)
/* 802B7E10 002B4D50 90 1F 08 2C */ stw r0, 0x82c(r31)
/* 802B7E14 002B4D54 38 7F 08 54 */ addi r3, r31, 0x854
/* 802B7E18 002B4D58 C0 22 DF 8C */ lfs f1, lbl_8051C2EC@sda21(r2)
/* 802B7E1C 002B4D5C 38 9F 07 F8 */ addi r4, r31, 0x7f8
/* 802B7E20 002B4D60 D0 1F 08 44 */ stfs f0, 0x844(r31)
/* 802B7E24 002B4D64 38 A5 31 31 */ addi r5, r5, 0x66703131@l
/* 802B7E28 002B4D68 C0 02 DF 98 */ lfs f0, lbl_8051C2F8@sda21(r2)
/* 802B7E2C 002B4D6C 38 DE 00 98 */ addi r6, r30, 0x98
/* 802B7E30 002B4D70 D0 3F 08 4C */ stfs f1, 0x84c(r31)
/* 802B7E34 002B4D74 D0 1F 08 50 */ stfs f0, 0x850(r31)
/* 802B7E38 002B4D78 48 15 B8 21 */ bl __ct__8BaseParmFP10ParametersUlPc
/* 802B7E3C 002B4D7C 3C 60 80 4B */ lis r3, "__vt__7Parm<f>"@ha
/* 802B7E40 002B4D80 3C A0 66 70 */ lis r5, 0x66703231@ha
/* 802B7E44 002B4D84 38 03 AC BC */ addi r0, r3, "__vt__7Parm<f>"@l
/* 802B7E48 002B4D88 C0 02 DF 9C */ lfs f0, lbl_8051C2FC@sda21(r2)
/* 802B7E4C 002B4D8C 90 1F 08 54 */ stw r0, 0x854(r31)
/* 802B7E50 002B4D90 38 7F 08 7C */ addi r3, r31, 0x87c
/* 802B7E54 002B4D94 C0 22 DF 8C */ lfs f1, lbl_8051C2EC@sda21(r2)
/* 802B7E58 002B4D98 38 9F 07 F8 */ addi r4, r31, 0x7f8
/* 802B7E5C 002B4D9C D0 1F 08 6C */ stfs f0, 0x86c(r31)
/* 802B7E60 002B4DA0 38 A5 32 31 */ addi r5, r5, 0x66703231@l
/* 802B7E64 002B4DA4 C0 02 DF 98 */ lfs f0, lbl_8051C2F8@sda21(r2)
/* 802B7E68 002B4DA8 38 DE 00 AC */ addi r6, r30, 0xac
/* 802B7E6C 002B4DAC D0 3F 08 74 */ stfs f1, 0x874(r31)
/* 802B7E70 002B4DB0 D0 1F 08 78 */ stfs f0, 0x878(r31)
/* 802B7E74 002B4DB4 48 15 B7 E5 */ bl __ct__8BaseParmFP10ParametersUlPc
/* 802B7E78 002B4DB8 3C 60 80 4B */ lis r3, "__vt__7Parm<f>"@ha
/* 802B7E7C 002B4DBC C0 42 DF A0 */ lfs f2, lbl_8051C300@sda21(r2)
/* 802B7E80 002B4DC0 38 03 AC BC */ addi r0, r3, "__vt__7Parm<f>"@l
/* 802B7E84 002B4DC4 C0 22 DF 8C */ lfs f1, lbl_8051C2EC@sda21(r2)
/* 802B7E88 002B4DC8 90 1F 08 7C */ stw r0, 0x87c(r31)
/* 802B7E8C 002B4DCC 7F E3 FB 78 */ mr r3, r31
/* 802B7E90 002B4DD0 C0 02 DF 98 */ lfs f0, lbl_8051C2F8@sda21(r2)
/* 802B7E94 002B4DD4 D0 5F 08 94 */ stfs f2, 0x894(r31)
/* 802B7E98 002B4DD8 D0 3F 08 9C */ stfs f1, 0x89c(r31)
/* 802B7E9C 002B4DDC D0 1F 08 A0 */ stfs f0, 0x8a0(r31)
/* 802B7EA0 002B4DE0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B7EA4 002B4DE4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B7EA8 002B4DE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B7EAC 002B4DEC 7C 08 03 A6 */ mtlr r0
/* 802B7EB0 002B4DF0 38 21 00 10 */ addi r1, r1, 0x10
/* 802B7EB4 002B4DF4 4E 80 00 20 */ blr
.global createObj__Q34Game11FireOtakara3MgrFi
createObj__Q34Game11FireOtakara3MgrFi:
/* 802B7EB8 002B4DF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B7EBC 002B4DFC 7C 08 02 A6 */ mflr r0
/* 802B7EC0 002B4E00 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B7EC4 002B4E04 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B7EC8 002B4E08 7C 9F 23 78 */ mr r31, r4
/* 802B7ECC 002B4E0C 93 C1 00 08 */ stw r30, 8(r1)
/* 802B7ED0 002B4E10 7C 7E 1B 78 */ mr r30, r3
/* 802B7ED4 002B4E14 1C 7F 03 08 */ mulli r3, r31, 0x308
/* 802B7ED8 002B4E18 38 63 00 10 */ addi r3, r3, 0x10
/* 802B7EDC 002B4E1C 4B D6 C0 D1 */ bl __nwa__FUl
/* 802B7EE0 002B4E20 3C 80 80 2C */ lis r4, __ct__Q34Game11FireOtakara3ObjFv@ha
/* 802B7EE4 002B4E24 3C A0 80 2B */ lis r5, __dt__Q34Game11FireOtakara3ObjFv@ha
/* 802B7EE8 002B4E28 38 84 81 C8 */ addi r4, r4, __ct__Q34Game11FireOtakara3ObjFv@l
/* 802B7EEC 002B4E2C 7F E7 FB 78 */ mr r7, r31
/* 802B7EF0 002B4E30 38 A5 7F 18 */ addi r5, r5, __dt__Q34Game11FireOtakara3ObjFv@l
/* 802B7EF4 002B4E34 38 C0 03 08 */ li r6, 0x308
/* 802B7EF8 002B4E38 4B E0 9A F9 */ bl __construct_new_array
/* 802B7EFC 002B4E3C 90 7E 00 48 */ stw r3, 0x48(r30)
/* 802B7F00 002B4E40 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B7F04 002B4E44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B7F08 002B4E48 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B7F0C 002B4E4C 7C 08 03 A6 */ mtlr r0
/* 802B7F10 002B4E50 38 21 00 10 */ addi r1, r1, 0x10
/* 802B7F14 002B4E54 4E 80 00 20 */ blr
.global __dt__Q34Game11FireOtakara3ObjFv
__dt__Q34Game11FireOtakara3ObjFv:
/* 802B7F18 002B4E58 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B7F1C 002B4E5C 7C 08 02 A6 */ mflr r0
/* 802B7F20 002B4E60 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B7F24 002B4E64 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B7F28 002B4E68 7C 9F 23 78 */ mr r31, r4
/* 802B7F2C 002B4E6C 93 C1 00 08 */ stw r30, 8(r1)
/* 802B7F30 002B4E70 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B7F34 002B4E74 41 82 00 B8 */ beq lbl_802B7FEC
/* 802B7F38 002B4E78 3C 60 80 4D */ lis r3, __vt__Q34Game11FireOtakara3Obj@ha
/* 802B7F3C 002B4E7C 38 1E 02 F8 */ addi r0, r30, 0x2f8
/* 802B7F40 002B4E80 38 83 F4 F8 */ addi r4, r3, __vt__Q34Game11FireOtakara3Obj@l
/* 802B7F44 002B4E84 90 9E 00 00 */ stw r4, 0(r30)
/* 802B7F48 002B4E88 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B7F4C 002B4E8C 38 84 03 24 */ addi r4, r4, 0x324
/* 802B7F50 002B4E90 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B7F54 002B4E94 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B7F58 002B4E98 90 83 00 00 */ stw r4, 0(r3)
/* 802B7F5C 002B4E9C 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B7F60 002B4EA0 7C 03 00 50 */ subf r0, r3, r0
/* 802B7F64 002B4EA4 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B7F68 002B4EA8 41 82 00 74 */ beq lbl_802B7FDC
/* 802B7F6C 002B4EAC 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
/* 802B7F70 002B4EB0 38 1E 02 F4 */ addi r0, r30, 0x2f4
/* 802B7F74 002B4EB4 38 83 F0 84 */ addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
/* 802B7F78 002B4EB8 90 9E 00 00 */ stw r4, 0(r30)
/* 802B7F7C 002B4EBC 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B7F80 002B4EC0 38 84 03 24 */ addi r4, r4, 0x324
/* 802B7F84 002B4EC4 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B7F88 002B4EC8 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B7F8C 002B4ECC 90 83 00 00 */ stw r4, 0(r3)
/* 802B7F90 002B4ED0 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B7F94 002B4ED4 7C 03 00 50 */ subf r0, r3, r0
/* 802B7F98 002B4ED8 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B7F9C 002B4EDC 41 82 00 40 */ beq lbl_802B7FDC
/* 802B7FA0 002B4EE0 3C 60 80 4B */ lis r3, __vt__Q24Game9EnemyBase@ha
/* 802B7FA4 002B4EE4 38 1E 02 BC */ addi r0, r30, 0x2bc
/* 802B7FA8 002B4EE8 38 83 A3 24 */ addi r4, r3, __vt__Q24Game9EnemyBase@l
/* 802B7FAC 002B4EEC 38 7E 02 90 */ addi r3, r30, 0x290
/* 802B7FB0 002B4EF0 90 9E 00 00 */ stw r4, 0(r30)
/* 802B7FB4 002B4EF4 38 A4 01 B0 */ addi r5, r4, 0x1b0
/* 802B7FB8 002B4EF8 38 C4 02 F8 */ addi r6, r4, 0x2f8
/* 802B7FBC 002B4EFC 38 80 FF FF */ li r4, -1
/* 802B7FC0 002B4F00 90 BE 01 78 */ stw r5, 0x178(r30)
/* 802B7FC4 002B4F04 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B7FC8 002B4F08 90 C5 00 00 */ stw r6, 0(r5)
/* 802B7FCC 002B4F0C 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B7FD0 002B4F10 7C 05 00 50 */ subf r0, r5, r0
/* 802B7FD4 002B4F14 90 05 00 0C */ stw r0, 0xc(r5)
/* 802B7FD8 002B4F18 48 15 95 B1 */ bl __dt__5CNodeFv
lbl_802B7FDC:
/* 802B7FDC 002B4F1C 7F E0 07 35 */ extsh. r0, r31
/* 802B7FE0 002B4F20 40 81 00 0C */ ble lbl_802B7FEC
/* 802B7FE4 002B4F24 7F C3 F3 78 */ mr r3, r30
/* 802B7FE8 002B4F28 4B D6 C0 CD */ bl __dl__FPv
lbl_802B7FEC:
/* 802B7FEC 002B4F2C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B7FF0 002B4F30 7F C3 F3 78 */ mr r3, r30
/* 802B7FF4 002B4F34 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B7FF8 002B4F38 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B7FFC 002B4F3C 7C 08 03 A6 */ mtlr r0
/* 802B8000 002B4F40 38 21 00 10 */ addi r1, r1, 0x10
/* 802B8004 002B4F44 4E 80 00 20 */ blr
.global getEnemy__Q34Game11FireOtakara3MgrFi
getEnemy__Q34Game11FireOtakara3MgrFi:
/* 802B8008 002B4F48 1C 04 03 08 */ mulli r0, r4, 0x308
/* 802B800C 002B4F4C 80 63 00 48 */ lwz r3, 0x48(r3)
/* 802B8010 002B4F50 7C 63 02 14 */ add r3, r3, r0
/* 802B8014 002B4F54 4E 80 00 20 */ blr
.global loadTexData__Q34Game11FireOtakara3MgrFv
loadTexData__Q34Game11FireOtakara3MgrFv:
/* 802B8018 002B4F58 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802B801C 002B4F5C 7C 08 02 A6 */ mflr r0
/* 802B8020 002B4F60 90 01 00 44 */ stw r0, 0x44(r1)
/* 802B8024 002B4F64 38 00 00 00 */ li r0, 0
/* 802B8028 002B4F68 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802B802C 002B4F6C 7C 7F 1B 78 */ mr r31, r3
/* 802B8030 002B4F70 90 03 00 44 */ stw r0, 0x44(r3)
/* 802B8034 002B4F74 38 61 00 08 */ addi r3, r1, 8
/* 802B8038 002B4F78 80 8D 84 E0 */ lwz r4, "cOtakaraChangeTexName__Q34Game11FireOtakara28@unnamed@FireOtakaraMgr_cpp@"@sda21(r13)
/* 802B803C 002B4F7C 48 19 45 9D */ bl __ct__Q212LoadResource3ArgFPCc
/* 802B8040 002B4F80 80 6D 9C 28 */ lwz r3, gLoadResourceMgr@sda21(r13)
/* 802B8044 002B4F84 38 81 00 08 */ addi r4, r1, 8
/* 802B8048 002B4F88 48 19 47 59 */ bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
/* 802B804C 002B4F8C 28 03 00 00 */ cmplwi r3, 0
/* 802B8050 002B4F90 41 82 00 0C */ beq lbl_802B805C
/* 802B8054 002B4F94 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802B8058 002B4F98 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_802B805C:
/* 802B805C 002B4F9C 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 802B8060 002B4FA0 28 00 00 00 */ cmplwi r0, 0
/* 802B8064 002B4FA4 40 82 00 20 */ bne lbl_802B8084
/* 802B8068 002B4FA8 3C 60 80 49 */ lis r3, lbl_8048A740@ha
/* 802B806C 002B4FAC 3C A0 80 49 */ lis r5, lbl_8048A754@ha
/* 802B8070 002B4FB0 38 63 A7 40 */ addi r3, r3, lbl_8048A740@l
/* 802B8074 002B4FB4 38 80 00 53 */ li r4, 0x53
/* 802B8078 002B4FB8 38 A5 A7 54 */ addi r5, r5, lbl_8048A754@l
/* 802B807C 002B4FBC 4C C6 31 82 */ crclr 6
/* 802B8080 002B4FC0 4B D7 25 C1 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802B8084:
/* 802B8084 002B4FC4 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802B8088 002B4FC8 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802B808C 002B4FCC 7C 08 03 A6 */ mtlr r0
/* 802B8090 002B4FD0 38 21 00 40 */ addi r1, r1, 0x40
/* 802B8094 002B4FD4 4E 80 00 20 */ blr
.global __dt__Q34Game11FireOtakara3MgrFv
__dt__Q34Game11FireOtakara3MgrFv:
/* 802B8098 002B4FD8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B809C 002B4FDC 7C 08 02 A6 */ mflr r0
/* 802B80A0 002B4FE0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B80A4 002B4FE4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B80A8 002B4FE8 7C 9F 23 78 */ mr r31, r4
/* 802B80AC 002B4FEC 93 C1 00 08 */ stw r30, 8(r1)
/* 802B80B0 002B4FF0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B80B4 002B4FF4 41 82 00 90 */ beq lbl_802B8144
/* 802B80B8 002B4FF8 3C 60 80 4D */ lis r3, __vt__Q34Game11FireOtakara3Mgr@ha
/* 802B80BC 002B4FFC 38 63 F3 D8 */ addi r3, r3, __vt__Q34Game11FireOtakara3Mgr@l
/* 802B80C0 002B5000 90 7E 00 00 */ stw r3, 0(r30)
/* 802B80C4 002B5004 38 03 00 38 */ addi r0, r3, 0x38
/* 802B80C8 002B5008 90 1E 00 04 */ stw r0, 4(r30)
/* 802B80CC 002B500C 41 82 00 68 */ beq lbl_802B8134
/* 802B80D0 002B5010 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802B80D4 002B5014 38 63 EF 90 */ addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802B80D8 002B5018 90 7E 00 00 */ stw r3, 0(r30)
/* 802B80DC 002B501C 38 03 00 38 */ addi r0, r3, 0x38
/* 802B80E0 002B5020 90 1E 00 04 */ stw r0, 4(r30)
/* 802B80E4 002B5024 41 82 00 50 */ beq lbl_802B8134
/* 802B80E8 002B5028 3C 60 80 4B */ lis r3, __vt__Q24Game12EnemyMgrBase@ha
/* 802B80EC 002B502C 38 63 F8 A0 */ addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
/* 802B80F0 002B5030 90 7E 00 00 */ stw r3, 0(r30)
/* 802B80F4 002B5034 38 03 00 38 */ addi r0, r3, 0x38
/* 802B80F8 002B5038 90 1E 00 04 */ stw r0, 4(r30)
/* 802B80FC 002B503C 41 82 00 38 */ beq lbl_802B8134
/* 802B8100 002B5040 3C 60 80 4B */ lis r3, __vt__Q24Game13IEnemyMgrBase@ha
/* 802B8104 002B5044 34 1E 00 04 */ addic. r0, r30, 4
/* 802B8108 002B5048 38 63 AC FC */ addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
/* 802B810C 002B504C 90 7E 00 00 */ stw r3, 0(r30)
/* 802B8110 002B5050 38 03 00 38 */ addi r0, r3, 0x38
/* 802B8114 002B5054 90 1E 00 04 */ stw r0, 4(r30)
/* 802B8118 002B5058 41 82 00 1C */ beq lbl_802B8134
/* 802B811C 002B505C 3C 80 80 4B */ lis r4, __vt__16GenericContainer@ha
/* 802B8120 002B5060 38 7E 00 04 */ addi r3, r30, 4
/* 802B8124 002B5064 38 04 AC DC */ addi r0, r4, __vt__16GenericContainer@l
/* 802B8128 002B5068 38 80 00 00 */ li r4, 0
/* 802B812C 002B506C 90 1E 00 04 */ stw r0, 4(r30)
/* 802B8130 002B5070 48 15 94 59 */ bl __dt__5CNodeFv
lbl_802B8134:
/* 802B8134 002B5074 7F E0 07 35 */ extsh. r0, r31
/* 802B8138 002B5078 40 81 00 0C */ ble lbl_802B8144
/* 802B813C 002B507C 7F C3 F3 78 */ mr r3, r30
/* 802B8140 002B5080 4B D6 BF 75 */ bl __dl__FPv
lbl_802B8144:
/* 802B8144 002B5084 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B8148 002B5088 7F C3 F3 78 */ mr r3, r30
/* 802B814C 002B508C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B8150 002B5090 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B8154 002B5094 7C 08 03 A6 */ mtlr r0
/* 802B8158 002B5098 38 21 00 10 */ addi r1, r1, 0x10
/* 802B815C 002B509C 4E 80 00 20 */ blr
.global getEnemyTypeID__Q34Game11FireOtakara3MgrFv
getEnemyTypeID__Q34Game11FireOtakara3MgrFv:
/* 802B8160 002B50A0 38 60 00 3B */ li r3, 0x3b
/* 802B8164 002B50A4 4E 80 00 20 */ blr
.global getChangeTexture__Q34Game11FireOtakara3MgrFv
getChangeTexture__Q34Game11FireOtakara3MgrFv:
/* 802B8168 002B50A8 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802B816C 002B50AC 4E 80 00 20 */ blr
.global read__Q34Game11OtakaraBase5ParmsFR6Stream
read__Q34Game11OtakaraBase5ParmsFR6Stream:
/* 802B8170 002B50B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B8174 002B50B4 7C 08 02 A6 */ mflr r0
/* 802B8178 002B50B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B817C 002B50BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8180 002B50C0 7C 9F 23 78 */ mr r31, r4
/* 802B8184 002B50C4 93 C1 00 08 */ stw r30, 8(r1)
/* 802B8188 002B50C8 7C 7E 1B 78 */ mr r30, r3
/* 802B818C 002B50CC 48 15 B6 69 */ bl read__10ParametersFR6Stream
/* 802B8190 002B50D0 7F E4 FB 78 */ mr r4, r31
/* 802B8194 002B50D4 38 7E 00 E0 */ addi r3, r30, 0xe0
/* 802B8198 002B50D8 48 15 B6 5D */ bl read__10ParametersFR6Stream
/* 802B819C 002B50DC 7F E4 FB 78 */ mr r4, r31
/* 802B81A0 002B50E0 38 7E 07 F8 */ addi r3, r30, 0x7f8
/* 802B81A4 002B50E4 48 15 B6 51 */ bl read__10ParametersFR6Stream
/* 802B81A8 002B50E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B81AC 002B50EC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B81B0 002B50F0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B81B4 002B50F4 7C 08 03 A6 */ mtlr r0
/* 802B81B8 002B50F8 38 21 00 10 */ addi r1, r1, 0x10
/* 802B81BC 002B50FC 4E 80 00 20 */ blr
.global "@4@__dt__Q34Game11FireOtakara3MgrFv"
"@4@__dt__Q34Game11FireOtakara3MgrFv":
/* 802B81C0 002B5100 38 63 FF FC */ addi r3, r3, -4
/* 802B81C4 002B5104 4B FF FE D4 */ b __dt__Q34Game11FireOtakara3MgrFv

View File

@ -1,345 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
.global lbl_8048A7D0
lbl_8048A7D0:
.asciz "/enemy/data/GasOtakara/otakara_purple_s3tc.bti"
.skip 1
.global lbl_8048A800
lbl_8048A800:
.4byte 0x834B8358
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.global lbl_8048A81C
lbl_8048A81C:
.asciz "GasOtakaraMgr.cpp"
.skip 2
.global lbl_8048A830
lbl_8048A830:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.global __vt__Q34Game10GasOtakara3Mgr
__vt__Q34Game10GasOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game10GasOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game10GasOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game10GasOtakara3MgrFi
.4byte getEnemy__Q34Game10GasOtakara3MgrFi
.4byte doAlloc__Q34Game10GasOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game10GasOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game10GasOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game10GasOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
.global "cOtakaraChangeTexName__Q34Game10GasOtakara27@unnamed@GasOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game10GasOtakara27@unnamed@GasOtakaraMgr_cpp@":
.4byte lbl_8048A7D0
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __ct__Q34Game10GasOtakara3MgrFiUc
__ct__Q34Game10GasOtakara3MgrFiUc:
/* 802B8F3C 002B5E7C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B8F40 002B5E80 7C 08 02 A6 */ mflr r0
/* 802B8F44 002B5E84 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B8F48 002B5E88 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8F4C 002B5E8C 7C 7F 1B 78 */ mr r31, r3
/* 802B8F50 002B5E90 4B FF CF 49 */ bl __ct__Q34Game11OtakaraBase3MgrFiUc
/* 802B8F54 002B5E94 3C 60 80 4D */ lis r3, __vt__Q34Game10GasOtakara3Mgr@ha
/* 802B8F58 002B5E98 3C 80 80 49 */ lis r4, lbl_8048A800@ha
/* 802B8F5C 002B5E9C 38 A3 FC C0 */ addi r5, r3, __vt__Q34Game10GasOtakara3Mgr@l
/* 802B8F60 002B5EA0 7F E3 FB 78 */ mr r3, r31
/* 802B8F64 002B5EA4 90 BF 00 00 */ stw r5, 0(r31)
/* 802B8F68 002B5EA8 38 A5 00 38 */ addi r5, r5, 0x38
/* 802B8F6C 002B5EAC 38 04 A8 00 */ addi r0, r4, lbl_8048A800@l
/* 802B8F70 002B5EB0 90 BF 00 04 */ stw r5, 4(r31)
/* 802B8F74 002B5EB4 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802B8F78 002B5EB8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B8F7C 002B5EBC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B8F80 002B5EC0 7C 08 03 A6 */ mtlr r0
/* 802B8F84 002B5EC4 38 21 00 10 */ addi r1, r1, 0x10
/* 802B8F88 002B5EC8 4E 80 00 20 */ blr
.global doAlloc__Q34Game10GasOtakara3MgrFv
doAlloc__Q34Game10GasOtakara3MgrFv:
/* 802B8F8C 002B5ECC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B8F90 002B5ED0 7C 08 02 A6 */ mflr r0
/* 802B8F94 002B5ED4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B8F98 002B5ED8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8F9C 002B5EDC 7C 7F 1B 78 */ mr r31, r3
/* 802B8FA0 002B5EE0 38 60 08 A8 */ li r3, 0x8a8
/* 802B8FA4 002B5EE4 4B D6 AF 01 */ bl __nw__FUl
/* 802B8FA8 002B5EE8 7C 64 1B 79 */ or. r4, r3, r3
/* 802B8FAC 002B5EEC 41 82 00 0C */ beq lbl_802B8FB8
/* 802B8FB0 002B5EF0 4B FF ED B5 */ bl __ct__Q34Game11OtakaraBase5ParmsFv
/* 802B8FB4 002B5EF4 7C 64 1B 78 */ mr r4, r3
lbl_802B8FB8:
/* 802B8FB8 002B5EF8 7F E3 FB 78 */ mr r3, r31
/* 802B8FBC 002B5EFC 4B E7 68 E1 */ bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
/* 802B8FC0 002B5F00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B8FC4 002B5F04 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B8FC8 002B5F08 7C 08 03 A6 */ mtlr r0
/* 802B8FCC 002B5F0C 38 21 00 10 */ addi r1, r1, 0x10
/* 802B8FD0 002B5F10 4E 80 00 20 */ blr
.global createObj__Q34Game10GasOtakara3MgrFi
createObj__Q34Game10GasOtakara3MgrFi:
/* 802B8FD4 002B5F14 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B8FD8 002B5F18 7C 08 02 A6 */ mflr r0
/* 802B8FDC 002B5F1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B8FE0 002B5F20 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8FE4 002B5F24 7C 9F 23 78 */ mr r31, r4
/* 802B8FE8 002B5F28 93 C1 00 08 */ stw r30, 8(r1)
/* 802B8FEC 002B5F2C 7C 7E 1B 78 */ mr r30, r3
/* 802B8FF0 002B5F30 1C 7F 03 08 */ mulli r3, r31, 0x308
/* 802B8FF4 002B5F34 38 63 00 10 */ addi r3, r3, 0x10
/* 802B8FF8 002B5F38 4B D6 AF B5 */ bl __nwa__FUl
/* 802B8FFC 002B5F3C 3C 80 80 2C */ lis r4, __ct__Q34Game10GasOtakara3ObjFv@ha
/* 802B9000 002B5F40 3C A0 80 2C */ lis r5, __dt__Q34Game10GasOtakara3ObjFv@ha
/* 802B9004 002B5F44 38 84 92 94 */ addi r4, r4, __ct__Q34Game10GasOtakara3ObjFv@l
/* 802B9008 002B5F48 7F E7 FB 78 */ mr r7, r31
/* 802B900C 002B5F4C 38 A5 90 34 */ addi r5, r5, __dt__Q34Game10GasOtakara3ObjFv@l
/* 802B9010 002B5F50 38 C0 03 08 */ li r6, 0x308
/* 802B9014 002B5F54 4B E0 89 DD */ bl __construct_new_array
/* 802B9018 002B5F58 90 7E 00 48 */ stw r3, 0x48(r30)
/* 802B901C 002B5F5C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9020 002B5F60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B9024 002B5F64 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B9028 002B5F68 7C 08 03 A6 */ mtlr r0
/* 802B902C 002B5F6C 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9030 002B5F70 4E 80 00 20 */ blr
.global __dt__Q34Game10GasOtakara3ObjFv
__dt__Q34Game10GasOtakara3ObjFv:
/* 802B9034 002B5F74 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B9038 002B5F78 7C 08 02 A6 */ mflr r0
/* 802B903C 002B5F7C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B9040 002B5F80 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B9044 002B5F84 7C 9F 23 78 */ mr r31, r4
/* 802B9048 002B5F88 93 C1 00 08 */ stw r30, 8(r1)
/* 802B904C 002B5F8C 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B9050 002B5F90 41 82 00 B8 */ beq lbl_802B9108
/* 802B9054 002B5F94 3C 60 80 4D */ lis r3, __vt__Q34Game10GasOtakara3Obj@ha
/* 802B9058 002B5F98 38 1E 02 F8 */ addi r0, r30, 0x2f8
/* 802B905C 002B5F9C 38 83 FD D8 */ addi r4, r3, __vt__Q34Game10GasOtakara3Obj@l
/* 802B9060 002B5FA0 90 9E 00 00 */ stw r4, 0(r30)
/* 802B9064 002B5FA4 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B9068 002B5FA8 38 84 03 24 */ addi r4, r4, 0x324
/* 802B906C 002B5FAC 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B9070 002B5FB0 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B9074 002B5FB4 90 83 00 00 */ stw r4, 0(r3)
/* 802B9078 002B5FB8 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B907C 002B5FBC 7C 03 00 50 */ subf r0, r3, r0
/* 802B9080 002B5FC0 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B9084 002B5FC4 41 82 00 74 */ beq lbl_802B90F8
/* 802B9088 002B5FC8 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
/* 802B908C 002B5FCC 38 1E 02 F4 */ addi r0, r30, 0x2f4
/* 802B9090 002B5FD0 38 83 F0 84 */ addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
/* 802B9094 002B5FD4 90 9E 00 00 */ stw r4, 0(r30)
/* 802B9098 002B5FD8 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B909C 002B5FDC 38 84 03 24 */ addi r4, r4, 0x324
/* 802B90A0 002B5FE0 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B90A4 002B5FE4 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B90A8 002B5FE8 90 83 00 00 */ stw r4, 0(r3)
/* 802B90AC 002B5FEC 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B90B0 002B5FF0 7C 03 00 50 */ subf r0, r3, r0
/* 802B90B4 002B5FF4 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B90B8 002B5FF8 41 82 00 40 */ beq lbl_802B90F8
/* 802B90BC 002B5FFC 3C 60 80 4B */ lis r3, __vt__Q24Game9EnemyBase@ha
/* 802B90C0 002B6000 38 1E 02 BC */ addi r0, r30, 0x2bc
/* 802B90C4 002B6004 38 83 A3 24 */ addi r4, r3, __vt__Q24Game9EnemyBase@l
/* 802B90C8 002B6008 38 7E 02 90 */ addi r3, r30, 0x290
/* 802B90CC 002B600C 90 9E 00 00 */ stw r4, 0(r30)
/* 802B90D0 002B6010 38 A4 01 B0 */ addi r5, r4, 0x1b0
/* 802B90D4 002B6014 38 C4 02 F8 */ addi r6, r4, 0x2f8
/* 802B90D8 002B6018 38 80 FF FF */ li r4, -1
/* 802B90DC 002B601C 90 BE 01 78 */ stw r5, 0x178(r30)
/* 802B90E0 002B6020 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B90E4 002B6024 90 C5 00 00 */ stw r6, 0(r5)
/* 802B90E8 002B6028 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B90EC 002B602C 7C 05 00 50 */ subf r0, r5, r0
/* 802B90F0 002B6030 90 05 00 0C */ stw r0, 0xc(r5)
/* 802B90F4 002B6034 48 15 84 95 */ bl __dt__5CNodeFv
lbl_802B90F8:
/* 802B90F8 002B6038 7F E0 07 35 */ extsh. r0, r31
/* 802B90FC 002B603C 40 81 00 0C */ ble lbl_802B9108
/* 802B9100 002B6040 7F C3 F3 78 */ mr r3, r30
/* 802B9104 002B6044 4B D6 AF B1 */ bl __dl__FPv
lbl_802B9108:
/* 802B9108 002B6048 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B910C 002B604C 7F C3 F3 78 */ mr r3, r30
/* 802B9110 002B6050 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B9114 002B6054 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B9118 002B6058 7C 08 03 A6 */ mtlr r0
/* 802B911C 002B605C 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9120 002B6060 4E 80 00 20 */ blr
.global getEnemy__Q34Game10GasOtakara3MgrFi
getEnemy__Q34Game10GasOtakara3MgrFi:
/* 802B9124 002B6064 1C 04 03 08 */ mulli r0, r4, 0x308
/* 802B9128 002B6068 80 63 00 48 */ lwz r3, 0x48(r3)
/* 802B912C 002B606C 7C 63 02 14 */ add r3, r3, r0
/* 802B9130 002B6070 4E 80 00 20 */ blr
.global loadTexData__Q34Game10GasOtakara3MgrFv
loadTexData__Q34Game10GasOtakara3MgrFv:
/* 802B9134 002B6074 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802B9138 002B6078 7C 08 02 A6 */ mflr r0
/* 802B913C 002B607C 90 01 00 44 */ stw r0, 0x44(r1)
/* 802B9140 002B6080 38 00 00 00 */ li r0, 0
/* 802B9144 002B6084 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802B9148 002B6088 7C 7F 1B 78 */ mr r31, r3
/* 802B914C 002B608C 90 03 00 44 */ stw r0, 0x44(r3)
/* 802B9150 002B6090 38 61 00 08 */ addi r3, r1, 8
/* 802B9154 002B6094 80 8D 84 F0 */ lwz r4, "cOtakaraChangeTexName__Q34Game10GasOtakara27@unnamed@GasOtakaraMgr_cpp@"@sda21(r13)
/* 802B9158 002B6098 48 19 34 81 */ bl __ct__Q212LoadResource3ArgFPCc
/* 802B915C 002B609C 80 6D 9C 28 */ lwz r3, gLoadResourceMgr@sda21(r13)
/* 802B9160 002B60A0 38 81 00 08 */ addi r4, r1, 8
/* 802B9164 002B60A4 48 19 36 3D */ bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
/* 802B9168 002B60A8 28 03 00 00 */ cmplwi r3, 0
/* 802B916C 002B60AC 41 82 00 0C */ beq lbl_802B9178
/* 802B9170 002B60B0 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802B9174 002B60B4 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_802B9178:
/* 802B9178 002B60B8 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 802B917C 002B60BC 28 00 00 00 */ cmplwi r0, 0
/* 802B9180 002B60C0 40 82 00 20 */ bne lbl_802B91A0
/* 802B9184 002B60C4 3C 60 80 49 */ lis r3, lbl_8048A81C@ha
/* 802B9188 002B60C8 3C A0 80 49 */ lis r5, lbl_8048A830@ha
/* 802B918C 002B60CC 38 63 A8 1C */ addi r3, r3, lbl_8048A81C@l
/* 802B9190 002B60D0 38 80 00 53 */ li r4, 0x53
/* 802B9194 002B60D4 38 A5 A8 30 */ addi r5, r5, lbl_8048A830@l
/* 802B9198 002B60D8 4C C6 31 82 */ crclr 6
/* 802B919C 002B60DC 4B D7 14 A5 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802B91A0:
/* 802B91A0 002B60E0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802B91A4 002B60E4 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802B91A8 002B60E8 7C 08 03 A6 */ mtlr r0
/* 802B91AC 002B60EC 38 21 00 40 */ addi r1, r1, 0x40
/* 802B91B0 002B60F0 4E 80 00 20 */ blr
.global __dt__Q34Game10GasOtakara3MgrFv
__dt__Q34Game10GasOtakara3MgrFv:
/* 802B91B4 002B60F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B91B8 002B60F8 7C 08 02 A6 */ mflr r0
/* 802B91BC 002B60FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B91C0 002B6100 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B91C4 002B6104 7C 9F 23 78 */ mr r31, r4
/* 802B91C8 002B6108 93 C1 00 08 */ stw r30, 8(r1)
/* 802B91CC 002B610C 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B91D0 002B6110 41 82 00 90 */ beq lbl_802B9260
/* 802B91D4 002B6114 3C 60 80 4D */ lis r3, __vt__Q34Game10GasOtakara3Mgr@ha
/* 802B91D8 002B6118 38 63 FC C0 */ addi r3, r3, __vt__Q34Game10GasOtakara3Mgr@l
/* 802B91DC 002B611C 90 7E 00 00 */ stw r3, 0(r30)
/* 802B91E0 002B6120 38 03 00 38 */ addi r0, r3, 0x38
/* 802B91E4 002B6124 90 1E 00 04 */ stw r0, 4(r30)
/* 802B91E8 002B6128 41 82 00 68 */ beq lbl_802B9250
/* 802B91EC 002B612C 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802B91F0 002B6130 38 63 EF 90 */ addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802B91F4 002B6134 90 7E 00 00 */ stw r3, 0(r30)
/* 802B91F8 002B6138 38 03 00 38 */ addi r0, r3, 0x38
/* 802B91FC 002B613C 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9200 002B6140 41 82 00 50 */ beq lbl_802B9250
/* 802B9204 002B6144 3C 60 80 4B */ lis r3, __vt__Q24Game12EnemyMgrBase@ha
/* 802B9208 002B6148 38 63 F8 A0 */ addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
/* 802B920C 002B614C 90 7E 00 00 */ stw r3, 0(r30)
/* 802B9210 002B6150 38 03 00 38 */ addi r0, r3, 0x38
/* 802B9214 002B6154 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9218 002B6158 41 82 00 38 */ beq lbl_802B9250
/* 802B921C 002B615C 3C 60 80 4B */ lis r3, __vt__Q24Game13IEnemyMgrBase@ha
/* 802B9220 002B6160 34 1E 00 04 */ addic. r0, r30, 4
/* 802B9224 002B6164 38 63 AC FC */ addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
/* 802B9228 002B6168 90 7E 00 00 */ stw r3, 0(r30)
/* 802B922C 002B616C 38 03 00 38 */ addi r0, r3, 0x38
/* 802B9230 002B6170 90 1E 00 04 */ stw r0, 4(r30)
/* 802B9234 002B6174 41 82 00 1C */ beq lbl_802B9250
/* 802B9238 002B6178 3C 80 80 4B */ lis r4, __vt__16GenericContainer@ha
/* 802B923C 002B617C 38 7E 00 04 */ addi r3, r30, 4
/* 802B9240 002B6180 38 04 AC DC */ addi r0, r4, __vt__16GenericContainer@l
/* 802B9244 002B6184 38 80 00 00 */ li r4, 0
/* 802B9248 002B6188 90 1E 00 04 */ stw r0, 4(r30)
/* 802B924C 002B618C 48 15 83 3D */ bl __dt__5CNodeFv
lbl_802B9250:
/* 802B9250 002B6190 7F E0 07 35 */ extsh. r0, r31
/* 802B9254 002B6194 40 81 00 0C */ ble lbl_802B9260
/* 802B9258 002B6198 7F C3 F3 78 */ mr r3, r30
/* 802B925C 002B619C 4B D6 AE 59 */ bl __dl__FPv
lbl_802B9260:
/* 802B9260 002B61A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9264 002B61A4 7F C3 F3 78 */ mr r3, r30
/* 802B9268 002B61A8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B926C 002B61AC 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B9270 002B61B0 7C 08 03 A6 */ mtlr r0
/* 802B9274 002B61B4 38 21 00 10 */ addi r1, r1, 0x10
/* 802B9278 002B61B8 4E 80 00 20 */ blr
.global getEnemyTypeID__Q34Game10GasOtakara3MgrFv
getEnemyTypeID__Q34Game10GasOtakara3MgrFv:
/* 802B927C 002B61BC 38 60 00 3D */ li r3, 0x3d
/* 802B9280 002B61C0 4E 80 00 20 */ blr
.global getChangeTexture__Q34Game10GasOtakara3MgrFv
getChangeTexture__Q34Game10GasOtakara3MgrFv:
/* 802B9284 002B61C4 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802B9288 002B61C8 4E 80 00 20 */ blr
.global "@4@__dt__Q34Game10GasOtakara3MgrFv"
"@4@__dt__Q34Game10GasOtakara3MgrFv":
/* 802B928C 002B61CC 38 63 FF FC */ addi r3, r3, -4
/* 802B9290 002B61D0 4B FF FF 24 */ b __dt__Q34Game10GasOtakara3MgrFv

View File

@ -1,368 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
lbl_8048A338:
.asciz "246-OtakaraBaseMgr"
.balign 4
lbl_8048A34C: # Shift-JIS
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
lbl_8048A364: # EnemyID array
.4byte 0x0000003B
.4byte 0x0000003C
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x0000005D
lbl_8048A378: # EnemyID array
.4byte 0x0000003B
.4byte 0x0000003C
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x0000005D
.balign 4
lbl_8048A38C:
.asciz "OtakaraBaseMgr.cpp"
.balign 4
lbl_8048A3A0:
.asciz "P2Assert"
.balign 4
lbl_8048A3AC:
.asciz "mat_body"
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.global __vt__Q34Game11OtakaraBase3Mgr
__vt__Q34Game11OtakaraBase3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11OtakaraBase3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11OtakaraBase3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte 0
.4byte 0
.4byte doAlloc__Q24Game12EnemyMgrBaseFv
.4byte getEnemyTypeID__Q34Game11OtakaraBase3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q24Game12EnemyMgrBaseFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte 0
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __ct__Q34Game11OtakaraBase3MgrFiUc
__ct__Q34Game11OtakaraBase3MgrFiUc:
/* 802B5E98 002B2DD8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B5E9C 002B2DDC 7C 08 02 A6 */ mflr r0
/* 802B5EA0 002B2DE0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B5EA4 002B2DE4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B5EA8 002B2DE8 7C 7F 1B 78 */ mr r31, r3
/* 802B5EAC 002B2DEC 4B E7 8D E9 */ bl __ct__Q24Game12EnemyMgrBaseFiUc
/* 802B5EB0 002B2DF0 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802B5EB4 002B2DF4 3C 80 80 49 */ lis r4, lbl_8048A34C@ha
/* 802B5EB8 002B2DF8 38 A3 EF 90 */ addi r5, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802B5EBC 002B2DFC 7F E3 FB 78 */ mr r3, r31
/* 802B5EC0 002B2E00 90 BF 00 00 */ stw r5, 0(r31)
/* 802B5EC4 002B2E04 38 A5 00 38 */ addi r5, r5, 0x38
/* 802B5EC8 002B2E08 38 04 A3 4C */ addi r0, r4, lbl_8048A34C@l
/* 802B5ECC 002B2E0C 90 BF 00 04 */ stw r5, 4(r31)
/* 802B5ED0 002B2E10 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802B5ED4 002B2E14 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B5ED8 002B2E18 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B5EDC 002B2E1C 7C 08 03 A6 */ mtlr r0
/* 802B5EE0 002B2E20 38 21 00 10 */ addi r1, r1, 0x10
/* 802B5EE4 002B2E24 4E 80 00 20 */ blr
.global loadModelData__Q34Game11OtakaraBase3MgrFv
loadModelData__Q34Game11OtakaraBase3MgrFv:
/* 802B5EE8 002B2E28 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802B5EEC 002B2E2C 7C 08 02 A6 */ mflr r0
/* 802B5EF0 002B2E30 3C 80 80 49 */ lis r4, lbl_8048A364@ha
/* 802B5EF4 002B2E34 90 01 00 34 */ stw r0, 0x34(r1)
/* 802B5EF8 002B2E38 38 E4 A3 64 */ addi r7, r4, lbl_8048A364@l
/* 802B5EFC 002B2E3C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802B5F00 002B2E40 3B E1 00 08 */ addi r31, r1, 8
/* 802B5F04 002B2E44 93 C1 00 28 */ stw r30, 0x28(r1)
/* 802B5F08 002B2E48 3B C0 00 00 */ li r30, 0
/* 802B5F0C 002B2E4C 93 A1 00 24 */ stw r29, 0x24(r1)
/* 802B5F10 002B2E50 7C 7D 1B 78 */ mr r29, r3
/* 802B5F14 002B2E54 80 C7 00 00 */ lwz r6, 0(r7)
/* 802B5F18 002B2E58 80 A7 00 04 */ lwz r5, 4(r7)
/* 802B5F1C 002B2E5C 80 87 00 08 */ lwz r4, 8(r7)
/* 802B5F20 002B2E60 80 67 00 0C */ lwz r3, 0xc(r7)
/* 802B5F24 002B2E64 80 07 00 10 */ lwz r0, 0x10(r7)
/* 802B5F28 002B2E68 90 C1 00 08 */ stw r6, 8(r1)
/* 802B5F2C 002B2E6C 90 A1 00 0C */ stw r5, 0xc(r1)
/* 802B5F30 002B2E70 90 81 00 10 */ stw r4, 0x10(r1)
/* 802B5F34 002B2E74 90 61 00 14 */ stw r3, 0x14(r1)
/* 802B5F38 002B2E78 90 01 00 18 */ stw r0, 0x18(r1)
lbl_802B5F3C:
/* 802B5F3C 002B2E7C 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13)
/* 802B5F40 002B2E80 80 9F 00 00 */ lwz r4, 0(r31)
/* 802B5F44 002B2E84 4B E5 7D 61 */ bl getEnemyMgr__Q24Game15GeneralEnemyMgrFi
/* 802B5F48 002B2E88 28 03 00 00 */ cmplwi r3, 0
/* 802B5F4C 002B2E8C 41 82 00 24 */ beq lbl_802B5F70
/* 802B5F50 002B2E90 81 83 00 00 */ lwz r12, 0(r3)
/* 802B5F54 002B2E94 81 8C 00 74 */ lwz r12, 0x74(r12)
/* 802B5F58 002B2E98 7D 89 03 A6 */ mtctr r12
/* 802B5F5C 002B2E9C 4E 80 04 21 */ bctrl
/* 802B5F60 002B2EA0 28 03 00 00 */ cmplwi r3, 0
/* 802B5F64 002B2EA4 41 82 00 0C */ beq lbl_802B5F70
/* 802B5F68 002B2EA8 90 7D 00 1C */ stw r3, 0x1c(r29)
/* 802B5F6C 002B2EAC 48 00 00 1C */ b lbl_802B5F88
lbl_802B5F70:
/* 802B5F70 002B2EB0 3B DE 00 01 */ addi r30, r30, 1
/* 802B5F74 002B2EB4 3B FF 00 04 */ addi r31, r31, 4
/* 802B5F78 002B2EB8 2C 1E 00 05 */ cmpwi r30, 5
/* 802B5F7C 002B2EBC 41 80 FF C0 */ blt lbl_802B5F3C
/* 802B5F80 002B2EC0 7F A3 EB 78 */ mr r3, r29
/* 802B5F84 002B2EC4 4B E7 A1 89 */ bl loadModelData__Q24Game12EnemyMgrBaseFv
lbl_802B5F88:
/* 802B5F88 002B2EC8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802B5F8C 002B2ECC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802B5F90 002B2ED0 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 802B5F94 002B2ED4 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 802B5F98 002B2ED8 7C 08 03 A6 */ mtlr r0
/* 802B5F9C 002B2EDC 38 21 00 30 */ addi r1, r1, 0x30
/* 802B5FA0 002B2EE0 4E 80 00 20 */ blr
.global loadAnimData__Q34Game11OtakaraBase3MgrFv
loadAnimData__Q34Game11OtakaraBase3MgrFv:
/* 802B5FA4 002B2EE4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802B5FA8 002B2EE8 7C 08 02 A6 */ mflr r0
/* 802B5FAC 002B2EEC 3C 80 80 49 */ lis r4, lbl_8048A378@ha
/* 802B5FB0 002B2EF0 90 01 00 34 */ stw r0, 0x34(r1)
/* 802B5FB4 002B2EF4 38 E4 A3 78 */ addi r7, r4, lbl_8048A378@l
/* 802B5FB8 002B2EF8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802B5FBC 002B2EFC 3B E1 00 08 */ addi r31, r1, 8
/* 802B5FC0 002B2F00 93 C1 00 28 */ stw r30, 0x28(r1)
/* 802B5FC4 002B2F04 3B C0 00 00 */ li r30, 0
/* 802B5FC8 002B2F08 93 A1 00 24 */ stw r29, 0x24(r1)
/* 802B5FCC 002B2F0C 7C 7D 1B 78 */ mr r29, r3
/* 802B5FD0 002B2F10 80 C7 00 00 */ lwz r6, 0(r7)
/* 802B5FD4 002B2F14 80 A7 00 04 */ lwz r5, 4(r7)
/* 802B5FD8 002B2F18 80 87 00 08 */ lwz r4, 8(r7)
/* 802B5FDC 002B2F1C 80 67 00 0C */ lwz r3, 0xc(r7)
/* 802B5FE0 002B2F20 80 07 00 10 */ lwz r0, 0x10(r7)
/* 802B5FE4 002B2F24 90 C1 00 08 */ stw r6, 8(r1)
/* 802B5FE8 002B2F28 90 A1 00 0C */ stw r5, 0xc(r1)
/* 802B5FEC 002B2F2C 90 81 00 10 */ stw r4, 0x10(r1)
/* 802B5FF0 002B2F30 90 61 00 14 */ stw r3, 0x14(r1)
/* 802B5FF4 002B2F34 90 01 00 18 */ stw r0, 0x18(r1)
lbl_802B5FF8:
/* 802B5FF8 002B2F38 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13)
/* 802B5FFC 002B2F3C 80 9F 00 00 */ lwz r4, 0(r31)
/* 802B6000 002B2F40 4B E5 7C A5 */ bl getEnemyMgr__Q24Game15GeneralEnemyMgrFi
/* 802B6004 002B2F44 28 03 00 00 */ cmplwi r3, 0
/* 802B6008 002B2F48 41 82 00 18 */ beq lbl_802B6020
/* 802B600C 002B2F4C 80 03 00 20 */ lwz r0, 0x20(r3)
/* 802B6010 002B2F50 28 00 00 00 */ cmplwi r0, 0
/* 802B6014 002B2F54 41 82 00 0C */ beq lbl_802B6020
/* 802B6018 002B2F58 90 1D 00 20 */ stw r0, 0x20(r29)
/* 802B601C 002B2F5C 48 00 00 1C */ b lbl_802B6038
lbl_802B6020:
/* 802B6020 002B2F60 3B DE 00 01 */ addi r30, r30, 1
/* 802B6024 002B2F64 3B FF 00 04 */ addi r31, r31, 4
/* 802B6028 002B2F68 2C 1E 00 05 */ cmpwi r30, 5
/* 802B602C 002B2F6C 41 80 FF CC */ blt lbl_802B5FF8
/* 802B6030 002B2F70 7F A3 EB 78 */ mr r3, r29
/* 802B6034 002B2F74 4B E7 A1 99 */ bl loadAnimData__Q24Game12EnemyMgrBaseFv
lbl_802B6038:
/* 802B6038 002B2F78 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802B603C 002B2F7C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802B6040 002B2F80 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 802B6044 002B2F84 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 802B6048 002B2F88 7C 08 03 A6 */ mtlr r0
/* 802B604C 002B2F8C 38 21 00 30 */ addi r1, r1, 0x30
/* 802B6050 002B2F90 4E 80 00 20 */ blr
.global createModel__Q34Game11OtakaraBase3MgrFv
createModel__Q34Game11OtakaraBase3MgrFv:
/* 802B6054 002B2F94 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802B6058 002B2F98 7C 08 02 A6 */ mflr r0
/* 802B605C 002B2F9C 3C 80 80 49 */ lis r4, lbl_8048A338@ha
/* 802B6060 002B2FA0 90 01 00 54 */ stw r0, 0x54(r1)
/* 802B6064 002B2FA4 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 802B6068 002B2FA8 3B E4 A3 38 */ addi r31, r4, lbl_8048A338@l
/* 802B606C 002B2FAC 93 C1 00 48 */ stw r30, 0x48(r1)
/* 802B6070 002B2FB0 93 A1 00 44 */ stw r29, 0x44(r1)
/* 802B6074 002B2FB4 93 81 00 40 */ stw r28, 0x40(r1)
/* 802B6078 002B2FB8 7C 7C 1B 78 */ mr r28, r3
/* 802B607C 002B2FBC 38 60 00 14 */ li r3, 0x14
/* 802B6080 002B2FC0 4B D6 DE 25 */ bl __nw__FUl
/* 802B6084 002B2FC4 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B6088 002B2FC8 41 82 00 18 */ beq lbl_802B60A0
/* 802B608C 002B2FCC 80 9C 00 1C */ lwz r4, 0x1c(r28)
/* 802B6090 002B2FD0 3C A0 00 08 */ lis r5, 8
/* 802B6094 002B2FD4 88 DC 00 24 */ lbz r6, 0x24(r28)
/* 802B6098 002B2FD8 48 18 81 41 */ bl __ct__Q28SysShape5ModelFP12J3DModelDataUlUl
/* 802B609C 002B2FDC 7C 7E 1B 78 */ mr r30, r3
lbl_802B60A0:
/* 802B60A0 002B2FE0 28 1E 00 00 */ cmplwi r30, 0
/* 802B60A4 002B2FE4 40 82 00 18 */ bne lbl_802B60BC
/* 802B60A8 002B2FE8 38 7F 00 54 */ addi r3, r31, 0x54
/* 802B60AC 002B2FEC 38 BF 00 68 */ addi r5, r31, 0x68
/* 802B60B0 002B2FF0 38 80 00 88 */ li r4, 0x88
/* 802B60B4 002B2FF4 4C C6 31 82 */ crclr 6
/* 802B60B8 002B2FF8 4B D7 45 89 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802B60BC:
/* 802B60BC 002B2FFC 3B A0 00 00 */ li r29, 0
/* 802B60C0 002B3000 48 00 00 40 */ b lbl_802B6100
lbl_802B60C4:
/* 802B60C4 002B3004 80 64 00 64 */ lwz r3, 0x64(r4)
/* 802B60C8 002B3008 7F A4 EB 78 */ mr r4, r29
/* 802B60CC 002B300C 4B D7 8D 51 */ bl getName__10JUTNameTabCFUs
/* 802B60D0 002B3010 38 9F 00 74 */ addi r4, r31, 0x74
/* 802B60D4 002B3014 4B E1 45 ED */ bl strcmp
/* 802B60D8 002B3018 2C 03 00 00 */ cmpwi r3, 0
/* 802B60DC 002B301C 40 82 00 20 */ bne lbl_802B60FC
/* 802B60E0 002B3020 80 9E 00 08 */ lwz r4, 8(r30)
/* 802B60E4 002B3024 57 A3 32 B2 */ rlwinm r3, r29, 6, 0xa, 0x19
/* 802B60E8 002B3028 38 03 00 2C */ addi r0, r3, 0x2c
/* 802B60EC 002B302C 80 64 00 C0 */ lwz r3, 0xc0(r4)
/* 802B60F0 002B3030 3C 80 04 02 */ lis r4, 0x402
/* 802B60F4 002B3034 7C 63 00 2E */ lwzx r3, r3, r0
/* 802B60F8 002B3038 4B DA A1 E1 */ bl newDifferedDisplayList__14J3DShapePacketFUl
lbl_802B60FC:
/* 802B60FC 002B303C 3B BD 00 01 */ addi r29, r29, 1
lbl_802B6100:
/* 802B6100 002B3040 80 9C 00 1C */ lwz r4, 0x1c(r28)
/* 802B6104 002B3044 57 A0 04 3E */ clrlwi r0, r29, 0x10
/* 802B6108 002B3048 A0 64 00 5C */ lhz r3, 0x5c(r4)
/* 802B610C 002B304C 7C 00 18 40 */ cmplw r0, r3
/* 802B6110 002B3050 41 80 FF B4 */ blt lbl_802B60C4
/* 802B6114 002B3054 38 61 00 08 */ addi r3, r1, 8
/* 802B6118 002B3058 4B E3 41 89 */ bl PSMTXIdentity
/* 802B611C 002B305C 3C 80 80 51 */ lis r4, j3dSys@ha
/* 802B6120 002B3060 38 61 00 08 */ addi r3, r1, 8
/* 802B6124 002B3064 38 84 F2 30 */ addi r4, r4, j3dSys@l
/* 802B6128 002B3068 4B E3 41 A5 */ bl PSMTXCopy
/* 802B612C 002B306C 83 FE 00 08 */ lwz r31, 8(r30)
/* 802B6130 002B3070 7F E3 FB 78 */ mr r3, r31
/* 802B6134 002B3074 81 9F 00 00 */ lwz r12, 0(r31)
/* 802B6138 002B3078 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802B613C 002B307C 7D 89 03 A6 */ mtctr r12
/* 802B6140 002B3080 4E 80 04 21 */ bctrl
/* 802B6144 002B3084 7F E3 FB 78 */ mr r3, r31
/* 802B6148 002B3088 81 9F 00 00 */ lwz r12, 0(r31)
/* 802B614C 002B308C 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 802B6150 002B3090 7D 89 03 A6 */ mtctr r12
/* 802B6154 002B3094 4E 80 04 21 */ bctrl
/* 802B6158 002B3098 7F E3 FB 78 */ mr r3, r31
/* 802B615C 002B309C 4B DB 07 C9 */ bl makeDL__8J3DModelFv
/* 802B6160 002B30A0 7F E3 FB 78 */ mr r3, r31
/* 802B6164 002B30A4 4B DB 06 91 */ bl lock__8J3DModelFv
/* 802B6168 002B30A8 80 01 00 54 */ lwz r0, 0x54(r1)
/* 802B616C 002B30AC 7F C3 F3 78 */ mr r3, r30
/* 802B6170 002B30B0 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 802B6174 002B30B4 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 802B6178 002B30B8 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 802B617C 002B30BC 83 81 00 40 */ lwz r28, 0x40(r1)
/* 802B6180 002B30C0 7C 08 03 A6 */ mtlr r0
/* 802B6184 002B30C4 38 21 00 50 */ addi r1, r1, 0x50
/* 802B6188 002B30C8 4E 80 00 20 */ blr
.global __dt__Q34Game11OtakaraBase3MgrFv
__dt__Q34Game11OtakaraBase3MgrFv: # weak function
/* 802B618C 002B30CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B6190 002B30D0 7C 08 02 A6 */ mflr r0
/* 802B6194 002B30D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B6198 002B30D8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B619C 002B30DC 7C 9F 23 78 */ mr r31, r4
/* 802B61A0 002B30E0 93 C1 00 08 */ stw r30, 8(r1)
/* 802B61A4 002B30E4 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B61A8 002B30E8 41 82 00 78 */ beq lbl_802B6220
/* 802B61AC 002B30EC 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802B61B0 002B30F0 38 63 EF 90 */ addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802B61B4 002B30F4 90 7E 00 00 */ stw r3, 0(r30)
/* 802B61B8 002B30F8 38 03 00 38 */ addi r0, r3, 0x38
/* 802B61BC 002B30FC 90 1E 00 04 */ stw r0, 4(r30)
/* 802B61C0 002B3100 41 82 00 50 */ beq lbl_802B6210
/* 802B61C4 002B3104 3C 60 80 4B */ lis r3, __vt__Q24Game12EnemyMgrBase@ha
/* 802B61C8 002B3108 38 63 F8 A0 */ addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
/* 802B61CC 002B310C 90 7E 00 00 */ stw r3, 0(r30)
/* 802B61D0 002B3110 38 03 00 38 */ addi r0, r3, 0x38
/* 802B61D4 002B3114 90 1E 00 04 */ stw r0, 4(r30)
/* 802B61D8 002B3118 41 82 00 38 */ beq lbl_802B6210
/* 802B61DC 002B311C 3C 60 80 4B */ lis r3, __vt__Q24Game13IEnemyMgrBase@ha
/* 802B61E0 002B3120 34 1E 00 04 */ addic. r0, r30, 4
/* 802B61E4 002B3124 38 63 AC FC */ addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
/* 802B61E8 002B3128 90 7E 00 00 */ stw r3, 0(r30)
/* 802B61EC 002B312C 38 03 00 38 */ addi r0, r3, 0x38
/* 802B61F0 002B3130 90 1E 00 04 */ stw r0, 4(r30)
/* 802B61F4 002B3134 41 82 00 1C */ beq lbl_802B6210
/* 802B61F8 002B3138 3C 80 80 4B */ lis r4, __vt__16GenericContainer@ha
/* 802B61FC 002B313C 38 7E 00 04 */ addi r3, r30, 4
/* 802B6200 002B3140 38 04 AC DC */ addi r0, r4, __vt__16GenericContainer@l
/* 802B6204 002B3144 38 80 00 00 */ li r4, 0
/* 802B6208 002B3148 90 1E 00 04 */ stw r0, 4(r30)
/* 802B620C 002B314C 48 15 B3 7D */ bl __dt__5CNodeFv
lbl_802B6210:
/* 802B6210 002B3150 7F E0 07 35 */ extsh. r0, r31
/* 802B6214 002B3154 40 81 00 0C */ ble lbl_802B6220
/* 802B6218 002B3158 7F C3 F3 78 */ mr r3, r30
/* 802B621C 002B315C 4B D6 DE 99 */ bl __dl__FPv
lbl_802B6220:
/* 802B6220 002B3160 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B6224 002B3164 7F C3 F3 78 */ mr r3, r30
/* 802B6228 002B3168 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B622C 002B316C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B6230 002B3170 7C 08 03 A6 */ mtlr r0
/* 802B6234 002B3174 38 21 00 10 */ addi r1, r1, 0x10
/* 802B6238 002B3178 4E 80 00 20 */ blr
.global getEnemyTypeID__Q34Game11OtakaraBase3MgrFv
getEnemyTypeID__Q34Game11OtakaraBase3MgrFv: # weak function
/* 802B623C 002B317C 38 60 00 3B */ li r3, 0x3b
/* 802B6240 002B3180 4E 80 00 20 */ blr
.global "@4@__dt__Q34Game11OtakaraBase3MgrFv"
"@4@__dt__Q34Game11OtakaraBase3MgrFv": # weak function
/* 802B6244 002B3184 38 63 FF FC */ addi r3, r3, -4
/* 802B6248 002B3188 4B FF FF 44 */ b __dt__Q34Game11OtakaraBase3MgrFv

View File

@ -1,344 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
.global lbl_8048A760
lbl_8048A760:
.asciz "/enemy/data/WaterOtakara/otakara_blue_s3tc.bti"
.skip 1
.global lbl_8048A790
lbl_8048A790:
.4byte 0x90858349
.4byte 0x835E834A
.4byte 0x83898380
.4byte 0x8356837D
.4byte 0x836C815B
.4byte 0x83578383
.4byte 0x00000000
.global lbl_8048A7AC
lbl_8048A7AC:
.asciz "WaterOtakaraMgr.cpp"
.global lbl_8048A7C0
lbl_8048A7C0:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.global __vt__Q34Game12WaterOtakara3Mgr
__vt__Q34Game12WaterOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game12WaterOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game12WaterOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game12WaterOtakara3MgrFi
.4byte getEnemy__Q34Game12WaterOtakara3MgrFi
.4byte doAlloc__Q34Game12WaterOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game12WaterOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game12WaterOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game12WaterOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.balign 8
.global "cOtakaraChangeTexName__Q34Game12WaterOtakara29@unnamed@WaterOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game12WaterOtakara29@unnamed@WaterOtakaraMgr_cpp@":
.4byte lbl_8048A760
.section .text, "ax" # 0x800056C0 - 0x80472F00
.global __ct__Q34Game12WaterOtakara3MgrFiUc
__ct__Q34Game12WaterOtakara3MgrFiUc:
/* 802B86E0 002B5620 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B86E4 002B5624 7C 08 02 A6 */ mflr r0
/* 802B86E8 002B5628 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B86EC 002B562C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B86F0 002B5630 7C 7F 1B 78 */ mr r31, r3
/* 802B86F4 002B5634 4B FF D7 A5 */ bl __ct__Q34Game11OtakaraBase3MgrFiUc
/* 802B86F8 002B5638 3C 60 80 4D */ lis r3, __vt__Q34Game12WaterOtakara3Mgr@ha
/* 802B86FC 002B563C 3C 80 80 49 */ lis r4, lbl_8048A790@ha
/* 802B8700 002B5640 38 A3 F8 50 */ addi r5, r3, __vt__Q34Game12WaterOtakara3Mgr@l
/* 802B8704 002B5644 7F E3 FB 78 */ mr r3, r31
/* 802B8708 002B5648 90 BF 00 00 */ stw r5, 0(r31)
/* 802B870C 002B564C 38 A5 00 38 */ addi r5, r5, 0x38
/* 802B8710 002B5650 38 04 A7 90 */ addi r0, r4, lbl_8048A790@l
/* 802B8714 002B5654 90 BF 00 04 */ stw r5, 4(r31)
/* 802B8718 002B5658 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802B871C 002B565C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B8720 002B5660 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B8724 002B5664 7C 08 03 A6 */ mtlr r0
/* 802B8728 002B5668 38 21 00 10 */ addi r1, r1, 0x10
/* 802B872C 002B566C 4E 80 00 20 */ blr
.global doAlloc__Q34Game12WaterOtakara3MgrFv
doAlloc__Q34Game12WaterOtakara3MgrFv:
/* 802B8730 002B5670 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B8734 002B5674 7C 08 02 A6 */ mflr r0
/* 802B8738 002B5678 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B873C 002B567C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8740 002B5680 7C 7F 1B 78 */ mr r31, r3
/* 802B8744 002B5684 38 60 08 A8 */ li r3, 0x8a8
/* 802B8748 002B5688 4B D6 B7 5D */ bl __nw__FUl
/* 802B874C 002B568C 7C 64 1B 79 */ or. r4, r3, r3
/* 802B8750 002B5690 41 82 00 0C */ beq lbl_802B875C
/* 802B8754 002B5694 4B FF F6 11 */ bl __ct__Q34Game11OtakaraBase5ParmsFv
/* 802B8758 002B5698 7C 64 1B 78 */ mr r4, r3
lbl_802B875C:
/* 802B875C 002B569C 7F E3 FB 78 */ mr r3, r31
/* 802B8760 002B56A0 4B E7 71 3D */ bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
/* 802B8764 002B56A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B8768 002B56A8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B876C 002B56AC 7C 08 03 A6 */ mtlr r0
/* 802B8770 002B56B0 38 21 00 10 */ addi r1, r1, 0x10
/* 802B8774 002B56B4 4E 80 00 20 */ blr
.global createObj__Q34Game12WaterOtakara3MgrFi
createObj__Q34Game12WaterOtakara3MgrFi:
/* 802B8778 002B56B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B877C 002B56BC 7C 08 02 A6 */ mflr r0
/* 802B8780 002B56C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B8784 002B56C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8788 002B56C8 7C 9F 23 78 */ mr r31, r4
/* 802B878C 002B56CC 93 C1 00 08 */ stw r30, 8(r1)
/* 802B8790 002B56D0 7C 7E 1B 78 */ mr r30, r3
/* 802B8794 002B56D4 1C 7F 03 08 */ mulli r3, r31, 0x308
/* 802B8798 002B56D8 38 63 00 10 */ addi r3, r3, 0x10
/* 802B879C 002B56DC 4B D6 B8 11 */ bl __nwa__FUl
/* 802B87A0 002B56E0 3C 80 80 2C */ lis r4, __ct__Q34Game12WaterOtakara3ObjFv@ha
/* 802B87A4 002B56E4 3C A0 80 2C */ lis r5, __dt__Q34Game12WaterOtakara3ObjFv@ha
/* 802B87A8 002B56E8 38 84 8A 38 */ addi r4, r4, __ct__Q34Game12WaterOtakara3ObjFv@l
/* 802B87AC 002B56EC 7F E7 FB 78 */ mr r7, r31
/* 802B87B0 002B56F0 38 A5 87 D8 */ addi r5, r5, __dt__Q34Game12WaterOtakara3ObjFv@l
/* 802B87B4 002B56F4 38 C0 03 08 */ li r6, 0x308
/* 802B87B8 002B56F8 4B E0 92 39 */ bl __construct_new_array
/* 802B87BC 002B56FC 90 7E 00 48 */ stw r3, 0x48(r30)
/* 802B87C0 002B5700 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B87C4 002B5704 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B87C8 002B5708 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B87CC 002B570C 7C 08 03 A6 */ mtlr r0
/* 802B87D0 002B5710 38 21 00 10 */ addi r1, r1, 0x10
/* 802B87D4 002B5714 4E 80 00 20 */ blr
.global __dt__Q34Game12WaterOtakara3ObjFv
__dt__Q34Game12WaterOtakara3ObjFv:
/* 802B87D8 002B5718 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B87DC 002B571C 7C 08 02 A6 */ mflr r0
/* 802B87E0 002B5720 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B87E4 002B5724 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B87E8 002B5728 7C 9F 23 78 */ mr r31, r4
/* 802B87EC 002B572C 93 C1 00 08 */ stw r30, 8(r1)
/* 802B87F0 002B5730 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B87F4 002B5734 41 82 00 B8 */ beq lbl_802B88AC
/* 802B87F8 002B5738 3C 60 80 4D */ lis r3, __vt__Q34Game12WaterOtakara3Obj@ha
/* 802B87FC 002B573C 38 1E 02 F8 */ addi r0, r30, 0x2f8
/* 802B8800 002B5740 38 83 F9 68 */ addi r4, r3, __vt__Q34Game12WaterOtakara3Obj@l
/* 802B8804 002B5744 90 9E 00 00 */ stw r4, 0(r30)
/* 802B8808 002B5748 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B880C 002B574C 38 84 03 24 */ addi r4, r4, 0x324
/* 802B8810 002B5750 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B8814 002B5754 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B8818 002B5758 90 83 00 00 */ stw r4, 0(r3)
/* 802B881C 002B575C 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B8820 002B5760 7C 03 00 50 */ subf r0, r3, r0
/* 802B8824 002B5764 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B8828 002B5768 41 82 00 74 */ beq lbl_802B889C
/* 802B882C 002B576C 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
/* 802B8830 002B5770 38 1E 02 F4 */ addi r0, r30, 0x2f4
/* 802B8834 002B5774 38 83 F0 84 */ addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
/* 802B8838 002B5778 90 9E 00 00 */ stw r4, 0(r30)
/* 802B883C 002B577C 38 64 01 B0 */ addi r3, r4, 0x1b0
/* 802B8840 002B5780 38 84 03 24 */ addi r4, r4, 0x324
/* 802B8844 002B5784 90 7E 01 78 */ stw r3, 0x178(r30)
/* 802B8848 002B5788 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B884C 002B578C 90 83 00 00 */ stw r4, 0(r3)
/* 802B8850 002B5790 80 7E 01 7C */ lwz r3, 0x17c(r30)
/* 802B8854 002B5794 7C 03 00 50 */ subf r0, r3, r0
/* 802B8858 002B5798 90 03 00 0C */ stw r0, 0xc(r3)
/* 802B885C 002B579C 41 82 00 40 */ beq lbl_802B889C
/* 802B8860 002B57A0 3C 60 80 4B */ lis r3, __vt__Q24Game9EnemyBase@ha
/* 802B8864 002B57A4 38 1E 02 BC */ addi r0, r30, 0x2bc
/* 802B8868 002B57A8 38 83 A3 24 */ addi r4, r3, __vt__Q24Game9EnemyBase@l
/* 802B886C 002B57AC 38 7E 02 90 */ addi r3, r30, 0x290
/* 802B8870 002B57B0 90 9E 00 00 */ stw r4, 0(r30)
/* 802B8874 002B57B4 38 A4 01 B0 */ addi r5, r4, 0x1b0
/* 802B8878 002B57B8 38 C4 02 F8 */ addi r6, r4, 0x2f8
/* 802B887C 002B57BC 38 80 FF FF */ li r4, -1
/* 802B8880 002B57C0 90 BE 01 78 */ stw r5, 0x178(r30)
/* 802B8884 002B57C4 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B8888 002B57C8 90 C5 00 00 */ stw r6, 0(r5)
/* 802B888C 002B57CC 80 BE 01 7C */ lwz r5, 0x17c(r30)
/* 802B8890 002B57D0 7C 05 00 50 */ subf r0, r5, r0
/* 802B8894 002B57D4 90 05 00 0C */ stw r0, 0xc(r5)
/* 802B8898 002B57D8 48 15 8C F1 */ bl __dt__5CNodeFv
lbl_802B889C:
/* 802B889C 002B57DC 7F E0 07 35 */ extsh. r0, r31
/* 802B88A0 002B57E0 40 81 00 0C */ ble lbl_802B88AC
/* 802B88A4 002B57E4 7F C3 F3 78 */ mr r3, r30
/* 802B88A8 002B57E8 4B D6 B8 0D */ bl __dl__FPv
lbl_802B88AC:
/* 802B88AC 002B57EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B88B0 002B57F0 7F C3 F3 78 */ mr r3, r30
/* 802B88B4 002B57F4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B88B8 002B57F8 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B88BC 002B57FC 7C 08 03 A6 */ mtlr r0
/* 802B88C0 002B5800 38 21 00 10 */ addi r1, r1, 0x10
/* 802B88C4 002B5804 4E 80 00 20 */ blr
.global getEnemy__Q34Game12WaterOtakara3MgrFi
getEnemy__Q34Game12WaterOtakara3MgrFi:
/* 802B88C8 002B5808 1C 04 03 08 */ mulli r0, r4, 0x308
/* 802B88CC 002B580C 80 63 00 48 */ lwz r3, 0x48(r3)
/* 802B88D0 002B5810 7C 63 02 14 */ add r3, r3, r0
/* 802B88D4 002B5814 4E 80 00 20 */ blr
.global loadTexData__Q34Game12WaterOtakara3MgrFv
loadTexData__Q34Game12WaterOtakara3MgrFv:
/* 802B88D8 002B5818 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802B88DC 002B581C 7C 08 02 A6 */ mflr r0
/* 802B88E0 002B5820 90 01 00 44 */ stw r0, 0x44(r1)
/* 802B88E4 002B5824 38 00 00 00 */ li r0, 0
/* 802B88E8 002B5828 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802B88EC 002B582C 7C 7F 1B 78 */ mr r31, r3
/* 802B88F0 002B5830 90 03 00 44 */ stw r0, 0x44(r3)
/* 802B88F4 002B5834 38 61 00 08 */ addi r3, r1, 8
/* 802B88F8 002B5838 80 8D 84 E8 */ lwz r4, "cOtakaraChangeTexName__Q34Game12WaterOtakara29@unnamed@WaterOtakaraMgr_cpp@"@sda21(r13)
/* 802B88FC 002B583C 48 19 3C DD */ bl __ct__Q212LoadResource3ArgFPCc
/* 802B8900 002B5840 80 6D 9C 28 */ lwz r3, gLoadResourceMgr@sda21(r13)
/* 802B8904 002B5844 38 81 00 08 */ addi r4, r1, 8
/* 802B8908 002B5848 48 19 3E 99 */ bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
/* 802B890C 002B584C 28 03 00 00 */ cmplwi r3, 0
/* 802B8910 002B5850 41 82 00 0C */ beq lbl_802B891C
/* 802B8914 002B5854 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802B8918 002B5858 90 1F 00 44 */ stw r0, 0x44(r31)
lbl_802B891C:
/* 802B891C 002B585C 80 1F 00 44 */ lwz r0, 0x44(r31)
/* 802B8920 002B5860 28 00 00 00 */ cmplwi r0, 0
/* 802B8924 002B5864 40 82 00 20 */ bne lbl_802B8944
/* 802B8928 002B5868 3C 60 80 49 */ lis r3, lbl_8048A7AC@ha
/* 802B892C 002B586C 3C A0 80 49 */ lis r5, lbl_8048A7C0@ha
/* 802B8930 002B5870 38 63 A7 AC */ addi r3, r3, lbl_8048A7AC@l
/* 802B8934 002B5874 38 80 00 53 */ li r4, 0x53
/* 802B8938 002B5878 38 A5 A7 C0 */ addi r5, r5, lbl_8048A7C0@l
/* 802B893C 002B587C 4C C6 31 82 */ crclr 6
/* 802B8940 002B5880 4B D7 1D 01 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802B8944:
/* 802B8944 002B5884 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802B8948 002B5888 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802B894C 002B588C 7C 08 03 A6 */ mtlr r0
/* 802B8950 002B5890 38 21 00 40 */ addi r1, r1, 0x40
/* 802B8954 002B5894 4E 80 00 20 */ blr
.global __dt__Q34Game12WaterOtakara3MgrFv
__dt__Q34Game12WaterOtakara3MgrFv:
/* 802B8958 002B5898 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802B895C 002B589C 7C 08 02 A6 */ mflr r0
/* 802B8960 002B58A0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802B8964 002B58A4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802B8968 002B58A8 7C 9F 23 78 */ mr r31, r4
/* 802B896C 002B58AC 93 C1 00 08 */ stw r30, 8(r1)
/* 802B8970 002B58B0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802B8974 002B58B4 41 82 00 90 */ beq lbl_802B8A04
/* 802B8978 002B58B8 3C 60 80 4D */ lis r3, __vt__Q34Game12WaterOtakara3Mgr@ha
/* 802B897C 002B58BC 38 63 F8 50 */ addi r3, r3, __vt__Q34Game12WaterOtakara3Mgr@l
/* 802B8980 002B58C0 90 7E 00 00 */ stw r3, 0(r30)
/* 802B8984 002B58C4 38 03 00 38 */ addi r0, r3, 0x38
/* 802B8988 002B58C8 90 1E 00 04 */ stw r0, 4(r30)
/* 802B898C 002B58CC 41 82 00 68 */ beq lbl_802B89F4
/* 802B8990 002B58D0 3C 60 80 4D */ lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
/* 802B8994 002B58D4 38 63 EF 90 */ addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
/* 802B8998 002B58D8 90 7E 00 00 */ stw r3, 0(r30)
/* 802B899C 002B58DC 38 03 00 38 */ addi r0, r3, 0x38
/* 802B89A0 002B58E0 90 1E 00 04 */ stw r0, 4(r30)
/* 802B89A4 002B58E4 41 82 00 50 */ beq lbl_802B89F4
/* 802B89A8 002B58E8 3C 60 80 4B */ lis r3, __vt__Q24Game12EnemyMgrBase@ha
/* 802B89AC 002B58EC 38 63 F8 A0 */ addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
/* 802B89B0 002B58F0 90 7E 00 00 */ stw r3, 0(r30)
/* 802B89B4 002B58F4 38 03 00 38 */ addi r0, r3, 0x38
/* 802B89B8 002B58F8 90 1E 00 04 */ stw r0, 4(r30)
/* 802B89BC 002B58FC 41 82 00 38 */ beq lbl_802B89F4
/* 802B89C0 002B5900 3C 60 80 4B */ lis r3, __vt__Q24Game13IEnemyMgrBase@ha
/* 802B89C4 002B5904 34 1E 00 04 */ addic. r0, r30, 4
/* 802B89C8 002B5908 38 63 AC FC */ addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
/* 802B89CC 002B590C 90 7E 00 00 */ stw r3, 0(r30)
/* 802B89D0 002B5910 38 03 00 38 */ addi r0, r3, 0x38
/* 802B89D4 002B5914 90 1E 00 04 */ stw r0, 4(r30)
/* 802B89D8 002B5918 41 82 00 1C */ beq lbl_802B89F4
/* 802B89DC 002B591C 3C 80 80 4B */ lis r4, __vt__16GenericContainer@ha
/* 802B89E0 002B5920 38 7E 00 04 */ addi r3, r30, 4
/* 802B89E4 002B5924 38 04 AC DC */ addi r0, r4, __vt__16GenericContainer@l
/* 802B89E8 002B5928 38 80 00 00 */ li r4, 0
/* 802B89EC 002B592C 90 1E 00 04 */ stw r0, 4(r30)
/* 802B89F0 002B5930 48 15 8B 99 */ bl __dt__5CNodeFv
lbl_802B89F4:
/* 802B89F4 002B5934 7F E0 07 35 */ extsh. r0, r31
/* 802B89F8 002B5938 40 81 00 0C */ ble lbl_802B8A04
/* 802B89FC 002B593C 7F C3 F3 78 */ mr r3, r30
/* 802B8A00 002B5940 4B D6 B6 B5 */ bl __dl__FPv
lbl_802B8A04:
/* 802B8A04 002B5944 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B8A08 002B5948 7F C3 F3 78 */ mr r3, r30
/* 802B8A0C 002B594C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802B8A10 002B5950 83 C1 00 08 */ lwz r30, 8(r1)
/* 802B8A14 002B5954 7C 08 03 A6 */ mtlr r0
/* 802B8A18 002B5958 38 21 00 10 */ addi r1, r1, 0x10
/* 802B8A1C 002B595C 4E 80 00 20 */ blr
.global getEnemyTypeID__Q34Game12WaterOtakara3MgrFv
getEnemyTypeID__Q34Game12WaterOtakara3MgrFv:
/* 802B8A20 002B5960 38 60 00 3C */ li r3, 0x3c
/* 802B8A24 002B5964 4E 80 00 20 */ blr
.global getChangeTexture__Q34Game12WaterOtakara3MgrFv
getChangeTexture__Q34Game12WaterOtakara3MgrFv:
/* 802B8A28 002B5968 80 63 00 44 */ lwz r3, 0x44(r3)
/* 802B8A2C 002B596C 4E 80 00 20 */ blr
.global "@4@__dt__Q34Game12WaterOtakara3MgrFv"
"@4@__dt__Q34Game12WaterOtakara3MgrFv":
/* 802B8A30 002B5970 38 63 FF FC */ addi r3, r3, -4
/* 802B8A34 002B5974 4B FF FF 24 */ b __dt__Q34Game12WaterOtakara3MgrFv

View File

@ -176,23 +176,20 @@
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TyreShadow.cpp">TyreShadow.cpp</a> | 9782 | <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/TankMgr.cpp">TankMgr.cpp</a> | 10362 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FartMgr.cpp">FartMgr.cpp</a> | 10451 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FtankMgr.cpp">FtankMgr.cpp</a> | 10480 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KoganemushiMgr.cpp">KoganemushiMgr.cpp</a> | 10725 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjiaMgr.cpp">UjiaMgr.cpp</a> | 10743 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/GasOtakaraMgr.cpp">GasOtakaraMgr.cpp</a> | 10840 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TadpoleMgr.cpp">TadpoleMgr.cpp</a> | 10849 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecOtakaraMgr.cpp">ElecOtakaraMgr.cpp</a> | 10862 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BombOtakaraMgr.cpp">BombOtakaraMgr.cpp</a> | 10878 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/WaterOtakaraMgr.cpp">WaterOtakaraMgr.cpp</a> | 10899 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/OtakaraBaseMgr.cpp">OtakaraBaseMgr.cpp</a> | 10924 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KumaKochappyMgr.cpp">KumaKochappyMgr.cpp</a> | 11025 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KoganeMgr.cpp">KoganeMgr.cpp</a> | 11185 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/WtankMgr.cpp">WtankMgr.cpp</a> | 11992 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ContRumble.cpp">ContRumble.cpp</a> | 12392 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/QueenShadow.cpp">QueenShadow.cpp</a> | 12549 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UmimushiShadow.cpp">UmimushiShadow.cpp</a> | 12906 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BabyState.cpp">BabyState.cpp</a> | 13418 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FireChappyMgr.cpp">FireChappyMgr.cpp</a> | 14133 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/JointShadowBase.cpp">JointShadowBase.cpp</a> | 14974 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BigFootShadow.cpp">BigFootShadow.cpp</a> | 15684 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BabyMgr.cpp">BabyMgr.cpp</a> | 16149 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjibMgr.cpp">UjibMgr.cpp</a> | 16206 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecBugMgr.cpp">ElecBugMgr.cpp</a> | 16551 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ArmorMgr.cpp">ArmorMgr.cpp</a> | 16656 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KumaChappyMgr.cpp">KumaChappyMgr.cpp</a> | 17296 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/HoudaiShadow.cpp">HoudaiShadow.cpp</a> | 17519 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FrogMgr.cpp">FrogMgr.cpp</a> | 17706 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TobiMgr.cpp">TobiMgr.cpp</a> | 18165 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ImomushiMgr.cpp">ImomushiMgr.cpp</a> | 18181 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/DamagumoShadow.cpp">DamagumoShadow.cpp</a> | 18421 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeWholeMgr.cpp">SnakeWholeMgr.cpp</a> | 18937 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/GasHibaMgr.cpp">GasHibaMgr.cpp</a> | 19211 | <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> | 19417 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeCrowMgr.cpp">SnakeCrowMgr.cpp</a> | 19487 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FireOtakaraMgr.cpp">FireOtakaraMgr.cpp</a> | 20409 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MaroFrog.cpp">MaroFrog.cpp</a> | 20927 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjiaMgr.cpp">UjiaMgr.cpp</a> | 10743 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TadpoleMgr.cpp">TadpoleMgr.cpp</a> | 10849 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KumaKochappyMgr.cpp">KumaKochappyMgr.cpp</a> | 11025 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KoganeMgr.cpp">KoganeMgr.cpp</a> | 11185 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/WtankMgr.cpp">WtankMgr.cpp</a> | 11992 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ContRumble.cpp">ContRumble.cpp</a> | 12392 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/QueenShadow.cpp">QueenShadow.cpp</a> | 12549 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UmimushiShadow.cpp">UmimushiShadow.cpp</a> | 12906 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BabyState.cpp">BabyState.cpp</a> | 13418 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FireChappyMgr.cpp">FireChappyMgr.cpp</a> | 14133 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/JointShadowBase.cpp">JointShadowBase.cpp</a> | 14974 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BigFootShadow.cpp">BigFootShadow.cpp</a> | 15684 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BabyMgr.cpp">BabyMgr.cpp</a> | 16149 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/UjibMgr.cpp">UjibMgr.cpp</a> | 16206 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecBugMgr.cpp">ElecBugMgr.cpp</a> | 16551 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ArmorMgr.cpp">ArmorMgr.cpp</a> | 16656 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KumaChappyMgr.cpp">KumaChappyMgr.cpp</a> | 17296 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/HoudaiShadow.cpp">HoudaiShadow.cpp</a> | 17519 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FrogMgr.cpp">FrogMgr.cpp</a> | 17706 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/TobiMgr.cpp">TobiMgr.cpp</a> | 18165 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ImomushiMgr.cpp">ImomushiMgr.cpp</a> | 18181 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/DamagumoShadow.cpp">DamagumoShadow.cpp</a> | 18421 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeWholeMgr.cpp">SnakeWholeMgr.cpp</a> | 18937 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/GasHibaMgr.cpp">GasHibaMgr.cpp</a> | 19211 |
| <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> | 19417 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/SnakeCrowMgr.cpp">SnakeCrowMgr.cpp</a> | 19487 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MaroFrog.cpp">MaroFrog.cpp</a> | 20927 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FixMiniHoudaiMgr.cpp">FixMiniHoudaiMgr.cpp</a> | 20947 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/FuefukiMgr.cpp">FuefukiMgr.cpp</a> | 21052 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/MapUnitGenerator.cpp">MapUnitGenerator.cpp</a> | 21275 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/KurageMgr.cpp">KurageMgr.cpp</a> | 21344 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/OniKurageMgr.cpp">OniKurageMgr.cpp</a> | 21526 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RumbleMgr.cpp">RumbleMgr.cpp</a> | 21535 |
@ -208,6 +205,9 @@
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/ElecHibaMgr.cpp">ElecHibaMgr.cpp</a> | 27244 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/LeafChappy.cpp">LeafChappy.cpp</a> | 27467 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/OtakaraBase.cpp">OtakaraBase.cpp</a> | 28244 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/BigFootMgr.cpp">BigFootMgr.cpp</a> | 28748 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/RandMapMgr.cpp">RandMapMgr.cpp</a> | 28857 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/NormMiniHoudaiMgr.cpp">NormMiniHoudaiMgr.cpp</a> | 28966 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Tadpole.cpp">Tadpole.cpp</a> | 29151 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/IKSystemBase.cpp">IKSystemBase.cpp</a> | 30143 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Fart.cpp">Fart.cpp</a> | 30891 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Hana.cpp">Hana.cpp</a> | 31982 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectNishimuraU/Ftank.cpp">Ftank.cpp</a> | 33732 |
### <section id="plugProjectOgawaU">plugProjectOgawaU</section>
| File | Size (bytes) | File | Size (bytes) |

View File

@ -40,13 +40,19 @@ struct Obj : public OtakaraBase::Obj {
struct Mgr : public OtakaraBase::Mgr {
Mgr(int objLimit, u8 modelType);
virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _AC (weak)
virtual void loadTexData(); // _D0
virtual ResTIMG* getChangeTexture(); // _E0 (weak)
// virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual void loadTexData(); // _D0
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _AC (weak)
{
return EnemyTypeID::EnemyID_BombOtakara;
}
virtual ResTIMG* getChangeTexture() // _E0 (weak)
{
return m_changeTexture;
}
// _00 = VTBL
// _00-_48 = OtakaraBase::Mgr

View File

@ -38,13 +38,19 @@ struct Obj : public OtakaraBase::Obj {
struct Mgr : public OtakaraBase::Mgr {
Mgr(int objLimit, u8 modelType);
virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _AC (weak)
virtual void loadTexData(); // _D0
virtual ResTIMG* getChangeTexture(); // _E0 (weak)
// virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual void loadTexData(); // _D0
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _AC (weak)
{
return EnemyTypeID::EnemyID_ElecOtakara;
}
virtual ResTIMG* getChangeTexture() // _E0 (weak)
{
return m_changeTexture;
}
// _00 = VTBL
// _00-_48 = OtakaraBase::Mgr

View File

@ -38,13 +38,19 @@ struct Obj : public OtakaraBase::Obj {
struct Mgr : public OtakaraBase::Mgr {
Mgr(int objLimit, u8 modelType);
virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _AC (weak)
virtual void loadTexData(); // _D0
virtual ResTIMG* getChangeTexture(); // _E0 (weak)
// virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual void loadTexData(); // _D0
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _AC (weak)
{
return EnemyTypeID::EnemyID_FireOtakara;
}
virtual ResTIMG* getChangeTexture() // _E0 (weak)
{
return m_changeTexture;
}
// _00 = VTBL
// _00-_48 = OtakaraBase::Mgr

View File

@ -38,13 +38,19 @@ struct Obj : public OtakaraBase::Obj {
struct Mgr : public OtakaraBase::Mgr {
Mgr(int objLimit, u8 modelType);
virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _AC (weak)
virtual void loadTexData(); // _D0
virtual ResTIMG* getChangeTexture(); // _E0 (weak)
// virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual void loadTexData(); // _D0
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _AC (weak)
{
return EnemyTypeID::EnemyID_GasOtakara;
}
virtual ResTIMG* getChangeTexture() // _E0 (weak)
{
return m_changeTexture;
}
// _00 = VTBL
// _00-_48 = OtakaraBase::Mgr

View File

@ -127,21 +127,32 @@ struct Obj : public EnemyBase {
struct Mgr : public EnemyMgrBase {
Mgr(int objLimit, u8 modelType);
virtual ~Mgr(); // _58 (weak)
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _AC (weak)
virtual SysShape::Model* createModel(); // _B0
virtual void loadModelData(); // _C8
virtual void loadAnimData(); // _CC
virtual ResTIMG* getChangeTexture() = 0; // _E0
// virtual ~Mgr(); // _58 (weak)
virtual SysShape::Model* createModel(); // _B0
virtual void loadModelData(); // _C8
virtual void loadAnimData(); // _CC
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _AC (weak)
{
return EnemyTypeID::EnemyID_FireOtakara;
}
virtual ResTIMG* getChangeTexture() = 0; // _E0
// _00 = VTBL
// _00-_44 = EnemyMgrBase
u8 _44[0x4]; // _44, unknown
ResTIMG* m_changeTexture; // _44
};
struct Parms : public EnemyParmsBase {
struct ProperParms : Parameters {
// inline ProperParms; // probably
inline ProperParms()
: Parameters(nullptr, "OtakaraBaseParms")
, m_fp01(this, 'fp01', "オタカラライフ", 100.0f, 0.0f, 10000.0f) // 'otakara life'
, m_fp10(this, 'fp10', "ノーマルアタック", 1.0f, 0.0f, 10.0f) // 'normal attack'
, m_fp11(this, 'fp11', "オタカラアタック", 1.25f, 0.0f, 10.0f) // 'otakara attack'
, m_fp21(this, 'fp21', "オタカラキャッチ", 2.5f, 0.0f, 10.0f) // 'treasure catch'
{
}
Parm<f32> m_fp01; // _804
Parm<f32> m_fp10; // _82C
@ -149,9 +160,14 @@ struct Parms : public EnemyParmsBase {
Parm<f32> m_fp21; // _87C
};
Parms();
Parms() { }
virtual void read(Stream&); // _08 (weak)
virtual void read(Stream& stream) // _08 (weak)
{
CreatureParms::read(stream);
m_general.read(stream);
m_properParms.read(stream);
}
// _00-_7F8 = EnemyParmsBase
ProperParms m_properParms; // _7F8

View File

@ -41,13 +41,19 @@ struct Obj : public OtakaraBase::Obj {
struct Mgr : public OtakaraBase::Mgr {
Mgr(int objLimit, u8 modelType);
virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _AC (weak)
virtual void loadTexData(); // _D0
virtual ResTIMG* getChangeTexture(); // _E0 (weak)
// virtual ~Mgr(); // _58 (weak)
virtual void createObj(int); // _A0
virtual EnemyBase* getEnemy(int); // _A4
virtual void doAlloc(); // _A8
virtual void loadTexData(); // _D0
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _AC (weak)
{
return EnemyTypeID::EnemyID_WaterOtakara;
}
virtual ResTIMG* getChangeTexture() // _E0 (weak)
{
return m_changeTexture;
}
// _00 = VTBL
// _00-_48 = OtakaraBase::Mgr

View File

@ -774,15 +774,15 @@ NISHIMURA:=\
$(BUILD_DIR)/asm/plugProjectNishimuraU/BombSarai.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/OtakaraBaseState.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/OtakaraBaseAnimator.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/OtakaraBaseMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/OtakaraBaseMgr.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/OtakaraBase.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/FireOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/FireOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/FireOtakara.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/WaterOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/WaterOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/WaterOtakara.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/GasOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/GasOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/GasOtakara.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/ElecOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/ElecOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/ElecOtakara.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/ImomushiState.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/ImomushiAnimator.o\
@ -838,7 +838,7 @@ NISHIMURA:=\
$(BUILD_DIR)/asm/plugProjectNishimuraU/BigTreasureAttack.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/SnakeCrowShadow.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/SnakeWholeShadow.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/BombOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/BombOtakaraMgr.o\
$(BUILD_DIR)/src/plugProjectNishimuraU/BombOtakara.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/DangoMushiState.o\
$(BUILD_DIR)/asm/plugProjectNishimuraU/DangoMushiMgr.o\

View File

@ -1,132 +1,22 @@
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_8048D3D8
lbl_8048D3D8:
.asciz "/enemy/data/BombOtakara/otakara_bomb_s3tc.bti"
.skip 2
.global lbl_8048D408
lbl_8048D408:
.4byte 0x836F834E
.4byte 0x835F8393
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.global lbl_8048D428
lbl_8048D428:
.asciz "BombOtakaraMgr.cpp"
.skip 1
.global lbl_8048D43C
lbl_8048D43C:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q34Game11BombOtakara3Mgr
__vt__Q34Game11BombOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11BombOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11BombOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game11BombOtakara3MgrFi
.4byte getEnemy__Q34Game11BombOtakara3MgrFi
.4byte doAlloc__Q34Game11BombOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game11BombOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game11BombOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game11BombOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.global
"cOtakaraChangeTexName__Q34Game11BombOtakara28@unnamed@BombOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game11BombOtakara28@unnamed@BombOtakaraMgr_cpp@":
.4byte lbl_8048D3D8
*/
#include "Game/Entities/BombOtakara.h"
#include "LoadResource.h"
namespace Game {
namespace BombOtakara {
namespace {
static const char* cOtakaraChangeTexName = "/enemy/data/BombOtakara/otakara_bomb_s3tc.bti";
} // namespace
/*
* --INFO--
* Address: 802F92D0
* Size: 000050
*/
BombOtakara::Mgr::Mgr(int, unsigned char)
Mgr::Mgr(int objLimit, u8 modelType)
: OtakaraBase::Mgr(objLimit, modelType)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
bl __ct__Q34Game11OtakaraBase3MgrFiUc
lis r3, __vt__Q34Game11BombOtakara3Mgr@ha
lis r4, lbl_8048D408@ha
addi r5, r3, __vt__Q34Game11BombOtakara3Mgr@l
mr r3, r31
stw r5, 0(r31)
addi r5, r5, 0x38
addi r0, r4, lbl_8048D408@l
stw r5, 4(r31)
stw r0, 0x18(r31)
lwz r31, 0xc(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
m_name = "バクダンオタカラムシマネージャ"; // starburst otakara manager
}
/*
@ -134,299 +24,37 @@ BombOtakara::Mgr::Mgr(int, unsigned char)
* Address: 802F9320
* Size: 000048
*/
void BombOtakara::Mgr::doAlloc()
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
li r3, 0x8a8
bl __nw__FUl
or. r4, r3, r3
beq lbl_802F934C
bl __ct__Q34Game11OtakaraBase5ParmsFv
mr r4, r3
lbl_802F934C:
mr r3, r31
bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::doAlloc() { init(new OtakaraBase::Parms); }
/*
* --INFO--
* Address: 802F9368
* Size: 000060
*/
void BombOtakara::Mgr::createObj(int)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
mr r30, r3
mulli r3, r31, 0x304
addi r3, r3, 0x10
bl __nwa__FUl
lis r4, __ct__Q34Game11BombOtakara3ObjFv@ha
lis r5, __dt__Q34Game11BombOtakara3ObjFv@ha
addi r4, r4, __ct__Q34Game11BombOtakara3ObjFv@l
mr r7, r31
addi r5, r5, __dt__Q34Game11BombOtakara3ObjFv@l
li r6, 0x304
bl __construct_new_array
stw r3, 0x48(r30)
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802F93C8
* Size: 0000EC
*/
BombOtakara::Obj::~Obj()
{
/*
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_802F9498
lis r3, __vt__Q34Game11BombOtakara3Obj@ha
addi r5, r30, 0x2f4
addi r4, r3, __vt__Q34Game11BombOtakara3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r0, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r0, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r5
stw r0, 0xc(r3)
beq lbl_802F9488
lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r0, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r0, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r5
stw r0, 0xc(r3)
beq lbl_802F9488
lis r3, __vt__Q24Game9EnemyBase@ha
addi r0, r30, 0x2bc
addi r4, r3, __vt__Q24Game9EnemyBase@l
addi r3, r30, 0x290
stw r4, 0(r30)
addi r5, r4, 0x1b0
addi r6, r4, 0x2f8
li r4, -1
stw r5, 0x178(r30)
lwz r5, 0x17c(r30)
stw r6, 0(r5)
lwz r5, 0x17c(r30)
subf r0, r5, r0
stw r0, 0xc(r5)
bl __dt__5CNodeFv
lbl_802F9488:
extsh. r0, r31
ble lbl_802F9498
mr r3, r30
bl __dl__FPv
lbl_802F9498:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::createObj(int count) { m_obj = new Obj[count]; }
/*
* --INFO--
* Address: 802F94B4
* Size: 000010
*/
void BombOtakara::Mgr::getEnemy(int)
{
/*
mulli r0, r4, 0x304
lwz r3, 0x48(r3)
add r3, r3, r0
blr
*/
}
EnemyBase* Mgr::getEnemy(int index) { return &m_obj[index]; }
/*
* --INFO--
* Address: 802F94C4
* Size: 000080
*/
void BombOtakara::Mgr::loadTexData()
void Mgr::loadTexData()
{
/*
stwu r1, -0x40(r1)
mflr r0
stw r0, 0x44(r1)
li r0, 0
stw r31, 0x3c(r1)
mr r31, r3
stw r0, 0x44(r3)
addi r3, r1, 8
lwz r4,
"cOtakaraChangeTexName__Q34Game11BombOtakara28@unnamed@BombOtakaraMgr_cpp@"@sda21(r13)
bl __ct__Q212LoadResource3ArgFPCc
lwz r3, gLoadResourceMgr@sda21(r13)
addi r4, r1, 8
bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
cmplwi r3, 0
beq lbl_802F9508
lwz r0, 0x30(r3)
stw r0, 0x44(r31)
lbl_802F9508:
lwz r0, 0x44(r31)
cmplwi r0, 0
bne lbl_802F9530
lis r3, lbl_8048D428@ha
lis r5, lbl_8048D43C@ha
addi r3, r3, lbl_8048D428@l
li r4, 0x53
addi r5, r5, lbl_8048D43C@l
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_802F9530:
lwz r0, 0x44(r1)
lwz r31, 0x3c(r1)
mtlr r0
addi r1, r1, 0x40
blr
*/
m_changeTexture = nullptr;
LoadResource::Arg loadArg(cOtakaraChangeTexName);
LoadResource::Node* resource = gLoadResourceMgr->load(loadArg);
if (resource) {
m_changeTexture = static_cast<ResTIMG*>(resource->_30);
}
P2ASSERTLINE(83, m_changeTexture);
}
/*
* --INFO--
* Address: 802F9544
* Size: 0000C8
*/
BombOtakara::Mgr::~Mgr()
{
/*
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_802F95F0
lis r3, __vt__Q34Game11BombOtakara3Mgr@ha
addi r3, r3, __vt__Q34Game11BombOtakara3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802F95E0
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802F95E0
lis r3, __vt__Q24Game12EnemyMgrBase@ha
addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802F95E0
lis r3, __vt__Q24Game13IEnemyMgrBase@ha
addic. r0, r30, 4
addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802F95E0
lis r4, __vt__16GenericContainer@ha
addi r3, r30, 4
addi r0, r4, __vt__16GenericContainer@l
li r4, 0
stw r0, 4(r30)
bl __dt__5CNodeFv
lbl_802F95E0:
extsh. r0, r31
ble lbl_802F95F0
mr r3, r30
bl __dl__FPv
lbl_802F95F0:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802F960C
* Size: 000008
*/
u32 BombOtakara::Mgr::getEnemyTypeID() { return 0x5D; }
/*
* --INFO--
* Address: 802F9614
* Size: 000008
*/
void BombOtakara::Mgr::getChangeTexture()
{
/*
lwz r3, 0x44(r3)
blr
*/
}
/*
* --INFO--
* Address: 802F961C
* Size: 000008
*/
BombOtakara::Mgr::@4 @~Mgr()
{
/*
addi r3, r3, -4
b __dt__Q34Game11BombOtakara3MgrFv
*/
}
} // namespace BombOtakara
} // namespace Game

View File

@ -1,130 +1,22 @@
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_8048A840
lbl_8048A840:
.asciz "/enemy/data/ElecOtakara/otakara_yellow_s3tc.bti"
.global lbl_8048A870
lbl_8048A870:
.4byte 0x93648B43
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.global lbl_8048A88C
lbl_8048A88C:
.asciz "ElecOtakaraMgr.cpp"
.skip 1
.global lbl_8048A8A0
lbl_8048A8A0:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q34Game11ElecOtakara3Mgr
__vt__Q34Game11ElecOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11ElecOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11ElecOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game11ElecOtakara3MgrFi
.4byte getEnemy__Q34Game11ElecOtakara3MgrFi
.4byte doAlloc__Q34Game11ElecOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game11ElecOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game11ElecOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game11ElecOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.global
"cOtakaraChangeTexName__Q34Game11ElecOtakara28@unnamed@ElecOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game11ElecOtakara28@unnamed@ElecOtakaraMgr_cpp@":
.4byte lbl_8048A840
*/
#include "Game/Entities/ElecOtakara.h"
#include "LoadResource.h"
namespace Game {
namespace ElecOtakara {
namespace {
static const char* cOtakaraChangeTexName = "/enemy/data/ElecOtakara/otakara_yellow_s3tc.bti";
} // namespace
/*
* --INFO--
* Address: 802B9780
* Size: 000050
*/
ElecOtakara::Mgr::Mgr(int, unsigned char)
Mgr::Mgr(int objLimit, u8 modelType)
: OtakaraBase::Mgr(objLimit, modelType)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
bl __ct__Q34Game11OtakaraBase3MgrFiUc
lis r3, __vt__Q34Game11ElecOtakara3Mgr@ha
lis r4, lbl_8048A870@ha
addi r5, r3, __vt__Q34Game11ElecOtakara3Mgr@l
mr r3, r31
stw r5, 0(r31)
addi r5, r5, 0x38
addi r0, r4, lbl_8048A870@l
stw r5, 4(r31)
stw r0, 0x18(r31)
lwz r31, 0xc(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
m_name = "電気オタカラムシマネージャ"; // electric otakara manager
}
/*
@ -132,300 +24,37 @@ ElecOtakara::Mgr::Mgr(int, unsigned char)
* Address: 802B97D0
* Size: 000048
*/
void ElecOtakara::Mgr::doAlloc()
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
li r3, 0x8a8
bl __nw__FUl
or. r4, r3, r3
beq lbl_802B97FC
bl __ct__Q34Game11OtakaraBase5ParmsFv
mr r4, r3
lbl_802B97FC:
mr r3, r31
bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::doAlloc() { init(new OtakaraBase::Parms); }
/*
* --INFO--
* Address: 802B9818
* Size: 000060
*/
void ElecOtakara::Mgr::createObj(int)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
mr r30, r3
mulli r3, r31, 0x308
addi r3, r3, 0x10
bl __nwa__FUl
lis r4, __ct__Q34Game11ElecOtakara3ObjFv@ha
lis r5, __dt__Q34Game11ElecOtakara3ObjFv@ha
addi r4, r4, __ct__Q34Game11ElecOtakara3ObjFv@l
mr r7, r31
addi r5, r5, __dt__Q34Game11ElecOtakara3ObjFv@l
li r6, 0x308
bl __construct_new_array
stw r3, 0x48(r30)
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B9878
* Size: 0000F0
*/
ElecOtakara::Obj::~Obj()
{
/*
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_802B994C
lis r3, __vt__Q34Game11ElecOtakara3Obj@ha
addi r0, r30, 0x2f8
addi r4, r3, __vt__Q34Game11ElecOtakara3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B993C
lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
addi r0, r30, 0x2f4
addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B993C
lis r3, __vt__Q24Game9EnemyBase@ha
addi r0, r30, 0x2bc
addi r4, r3, __vt__Q24Game9EnemyBase@l
addi r3, r30, 0x290
stw r4, 0(r30)
addi r5, r4, 0x1b0
addi r6, r4, 0x2f8
li r4, -1
stw r5, 0x178(r30)
lwz r5, 0x17c(r30)
stw r6, 0(r5)
lwz r5, 0x17c(r30)
subf r0, r5, r0
stw r0, 0xc(r5)
bl __dt__5CNodeFv
lbl_802B993C:
extsh. r0, r31
ble lbl_802B994C
mr r3, r30
bl __dl__FPv
lbl_802B994C:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::createObj(int count) { m_obj = new Obj[count]; }
/*
* --INFO--
* Address: 802B9968
* Size: 000010
*/
void ElecOtakara::Mgr::getEnemy(int)
{
/*
mulli r0, r4, 0x308
lwz r3, 0x48(r3)
add r3, r3, r0
blr
*/
}
EnemyBase* Mgr::getEnemy(int index) { return &m_obj[index]; }
/*
* --INFO--
* Address: 802B9978
* Size: 000080
*/
void ElecOtakara::Mgr::loadTexData()
void Mgr::loadTexData()
{
/*
stwu r1, -0x40(r1)
mflr r0
stw r0, 0x44(r1)
li r0, 0
stw r31, 0x3c(r1)
mr r31, r3
stw r0, 0x44(r3)
addi r3, r1, 8
lwz r4,
"cOtakaraChangeTexName__Q34Game11ElecOtakara28@unnamed@ElecOtakaraMgr_cpp@"@sda21(r13)
bl __ct__Q212LoadResource3ArgFPCc
lwz r3, gLoadResourceMgr@sda21(r13)
addi r4, r1, 8
bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
cmplwi r3, 0
beq lbl_802B99BC
lwz r0, 0x30(r3)
stw r0, 0x44(r31)
lbl_802B99BC:
lwz r0, 0x44(r31)
cmplwi r0, 0
bne lbl_802B99E4
lis r3, lbl_8048A88C@ha
lis r5, lbl_8048A8A0@ha
addi r3, r3, lbl_8048A88C@l
li r4, 0x53
addi r5, r5, lbl_8048A8A0@l
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_802B99E4:
lwz r0, 0x44(r1)
lwz r31, 0x3c(r1)
mtlr r0
addi r1, r1, 0x40
blr
*/
m_changeTexture = nullptr;
LoadResource::Arg loadArg(cOtakaraChangeTexName);
LoadResource::Node* resource = gLoadResourceMgr->load(loadArg);
if (resource) {
m_changeTexture = static_cast<ResTIMG*>(resource->_30);
}
P2ASSERTLINE(83, m_changeTexture);
}
/*
* --INFO--
* Address: 802B99F8
* Size: 0000C8
*/
ElecOtakara::Mgr::~Mgr()
{
/*
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_802B9AA4
lis r3, __vt__Q34Game11ElecOtakara3Mgr@ha
addi r3, r3, __vt__Q34Game11ElecOtakara3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9A94
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9A94
lis r3, __vt__Q24Game12EnemyMgrBase@ha
addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9A94
lis r3, __vt__Q24Game13IEnemyMgrBase@ha
addic. r0, r30, 4
addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9A94
lis r4, __vt__16GenericContainer@ha
addi r3, r30, 4
addi r0, r4, __vt__16GenericContainer@l
li r4, 0
stw r0, 4(r30)
bl __dt__5CNodeFv
lbl_802B9A94:
extsh. r0, r31
ble lbl_802B9AA4
mr r3, r30
bl __dl__FPv
lbl_802B9AA4:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B9AC0
* Size: 000008
*/
u32 ElecOtakara::Mgr::getEnemyTypeID() { return 0x3E; }
/*
* --INFO--
* Address: 802B9AC8
* Size: 000008
*/
void ElecOtakara::Mgr::getChangeTexture()
{
/*
lwz r3, 0x44(r3)
blr
*/
}
/*
* --INFO--
* Address: 802B9AD0
* Size: 000008
*/
ElecOtakara::Mgr::@4 @~Mgr()
{
/*
addi r3, r3, -4
b __dt__Q34Game11ElecOtakara3MgrFv
*/
}
} // namespace ElecOtakara
} // namespace Game

View File

@ -1,365 +1,24 @@
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_8048A3B8
lbl_8048A3B8:
.asciz "246-FireOtakaraMgr"
.skip 1
.global lbl_8048A3CC
lbl_8048A3CC:
.asciz "/enemy/data/FireOtakara/otakara_red_s3tc.bti"
.skip 3
.global lbl_8048A3FC
lbl_8048A3FC:
.4byte 0x89CE8349
.4byte 0x835E834A
.4byte 0x83898380
.4byte 0x8356837D
.4byte 0x836C815B
.4byte 0x83578383
.4byte 0x00000000
.4byte 0x4F74616B
.4byte 0x61726142
.4byte 0x61736550
.4byte 0x61726D73
.4byte 0x00000000
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83898343
.4byte 0x83740000
.4byte 0x836D815B
.4byte 0x837D838B
.4byte 0x8341835E
.4byte 0x8362834E
.4byte 0x00000000
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x8341835E
.4byte 0x8362834E
.4byte 0x00000000
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x834C8383
.4byte 0x83628360
.4byte 0x00000000
.4byte 0x43726561
.4byte 0x74757265
.4byte 0x3A3A5072
.4byte 0x6F706572
.4byte 0x74790000
.4byte 0x66726963
.4byte 0x74696F6E
.4byte 0x286E6F74
.4byte 0x20757365
.4byte 0x64290000
.4byte 0x77616C6C
.4byte 0x5265666C
.4byte 0x65637469
.4byte 0x6F6E0000
.4byte 0x66616365
.4byte 0x44697241
.4byte 0x646A7573
.4byte 0x74000000
.4byte 0x626F756E
.4byte 0x63654661
.4byte 0x63746F72
.4byte 0x00000000
.4byte 0x456E656D
.4byte 0x79506172
.4byte 0x6D734261
.4byte 0x73650000
.4byte 0x83898343
.4byte 0x837482CC
.4byte 0x8D8282B3
.4byte 0x00000000
.4byte 0x83898343
.4byte 0x837489F1
.4byte 0x959C97A6
.4byte 0x00000000
.4byte 0x8C7889FA
.4byte 0x83898343
.4byte 0x83740000
.4byte 0x837D8362
.4byte 0x837682C6
.4byte 0x82CC9396
.4byte 0x82E80000
.4byte 0x837D8362
.4byte 0x837682C6
.4byte 0x82CC82A0
.4byte 0x82BD82E8
.4byte 0x837C838A
.4byte 0x83538393
.4byte 0x82CC9149
.4byte 0x92E80000
.4byte 0x8373834E
.4byte 0x837E8393
.4byte 0x82C682CC
.4byte 0x82A082BD
.4byte 0x82E80000
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x83588350
.4byte 0x815B838B
.4byte 0x585A0000
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x83588350
.4byte 0x815B838B
.4byte 0x59000000
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x8374838C
.4byte 0x815B8380
.4byte 0x00000000
.4byte 0x89F1935D
.4byte 0x91AC9378
.4byte 0x97A60000
.4byte 0x89F1935D
.4byte 0x8DC591E5
.4byte 0x91AC9378
.4byte 0x00000000
.4byte 0x8365838A
.4byte 0x8367838A
.4byte 0x815B0000
.4byte 0x837A815B
.4byte 0x838094CD
.4byte 0x88CD0000
.4byte 0x83768389
.4byte 0x83438378
.4byte 0x815B8367
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x8E8B8A45
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x8E8B8A45
.4byte 0x8A709378
.4byte 0x00000000
.4byte 0x92548DF5
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x92548DF5
.4byte 0x8A709378
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x97CD0000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x835F8381
.4byte 0x815B8357
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x94CD88CD
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x97A60000
.4byte 0x8D558C82
.4byte 0x89C2945C
.4byte 0x94CD88CD
.4byte 0x00000000
.4byte 0x8D558C82
.4byte 0x89C2945C
.4byte 0x8A709378
.4byte 0x00000000
.4byte 0x8D558C82
.4byte 0x83718362
.4byte 0x836794CD
.4byte 0x88CD0000
.4byte 0x8D558C82
.4byte 0x83718362
.4byte 0x83678A70
.4byte 0x93780000
.4byte 0x8C7889FA
.4byte 0x8E9E8AD4
.4byte 0x00000000
.4byte 0x90CE89BB
.4byte 0x8E9E8AD4
.4byte 0x00000000
.4byte 0x83718362
.4byte 0x83768368
.4byte 0x838D8362
.4byte 0x8376835F
.4byte 0x8381815B
.4byte 0x83570000
.4byte 0x926E906B
.4byte 0x8B4390E2
.4byte 0x8A6D97A7
.4byte 0x00000000
.4byte 0x926E906B
.4byte 0x8B4390E2
.4byte 0x8E9E8AD4
.4byte 0x00000000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82600000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x92A39574
.4byte 0x82500000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82610000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x92A39574
.4byte 0x82510000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82620000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x92A39574
.4byte 0x82520000
.4byte 0x905582E8
.4byte 0x95A582A2
.4byte 0x91C58C82
.4byte 0x82630000
.global lbl_8048A740
lbl_8048A740:
.asciz "FireOtakaraMgr.cpp"
.skip 1
.global lbl_8048A754
lbl_8048A754:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q34Game11FireOtakara3Mgr
__vt__Q34Game11FireOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11FireOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11FireOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game11FireOtakara3MgrFi
.4byte getEnemy__Q34Game11FireOtakara3MgrFi
.4byte doAlloc__Q34Game11FireOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game11FireOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game11FireOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game11FireOtakara3MgrFv
.global __vt__Q34Game11OtakaraBase5Parms
__vt__Q34Game11OtakaraBase5Parms:
.4byte 0
.4byte 0
.4byte read__Q34Game11OtakaraBase5ParmsFR6Stream
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.global
"cOtakaraChangeTexName__Q34Game11FireOtakara28@unnamed@FireOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game11FireOtakara28@unnamed@FireOtakaraMgr_cpp@":
.4byte lbl_8048A3CC
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.global lbl_8051C2E8
lbl_8051C2E8:
.4byte 0x42C80000
.global lbl_8051C2EC
lbl_8051C2EC:
.4byte 0x00000000
.global lbl_8051C2F0
lbl_8051C2F0:
.4byte 0x461C4000
.global lbl_8051C2F4
lbl_8051C2F4:
.float 1.0
.global lbl_8051C2F8
lbl_8051C2F8:
.4byte 0x41200000
.global lbl_8051C2FC
lbl_8051C2FC:
.4byte 0x3FA00000
.global lbl_8051C300
lbl_8051C300:
.4byte 0x40200000
.4byte 0x00000000
*/
#include "Game/Entities/FireOtakara.h"
#include "LoadResource.h"
namespace Game {
namespace FireOtakara {
static const char fireOtakaraMgrName[] = "246-FireOtakaraMgr";
namespace {
static const char* cOtakaraChangeTexName = "/enemy/data/FireOtakara/otakara_red_s3tc.bti";
} // namespace
/*
* --INFO--
* Address: 802B7CCC
* Size: 000050
*/
FireOtakara::Mgr::Mgr(int, unsigned char)
Mgr::Mgr(int objLimit, u8 modelType)
: OtakaraBase::Mgr(objLimit, modelType)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
bl __ct__Q34Game11OtakaraBase3MgrFiUc
lis r3, __vt__Q34Game11FireOtakara3Mgr@ha
lis r4, lbl_8048A3FC@ha
addi r5, r3, __vt__Q34Game11FireOtakara3Mgr@l
mr r3, r31
stw r5, 0(r31)
addi r5, r5, 0x38
addi r0, r4, lbl_8048A3FC@l
stw r5, 4(r31)
stw r0, 0x18(r31)
lwz r31, 0xc(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
m_name = "火オタカラムシマネージャ"; // fire otakara manager
}
/*
@ -367,427 +26,37 @@ FireOtakara::Mgr::Mgr(int, unsigned char)
* Address: 802B7D1C
* Size: 000048
*/
void FireOtakara::Mgr::doAlloc()
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
li r3, 0x8a8
bl __nw__FUl
or. r4, r3, r3
beq lbl_802B7D48
bl __ct__Q34Game11OtakaraBase5ParmsFv
mr r4, r3
lbl_802B7D48:
mr r3, r31
bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B7D64
* Size: 000154
*/
OtakaraBase::Parms::Parms()
{
/*
stwu r1, -0x10(r1)
mflr r0
lis r4, lbl_8048A3B8@ha
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
stw r30, 8(r1)
addi r30, r4, lbl_8048A3B8@l
bl __ct__Q24Game14EnemyParmsBaseFv
lis r3, __vt__Q34Game11OtakaraBase5Parms@ha
lis r5, 0x66703031@ha
addi r0, r3, __vt__Q34Game11OtakaraBase5Parms@l
addi r4, r31, 0x8a4
stw r0, 0xd8(r31)
li r7, 0
addi r0, r30, 0x60
addi r3, r31, 0x804
stw r4, 0x7f8(r31)
addi r4, r31, 0x7f8
addi r5, r5, 0x66703031@l
addi r6, r30, 0x74
stw r7, 0x7fc(r31)
stw r0, 0x800(r31)
bl __ct__8BaseParmFP10ParametersUlPc
lis r3, "__vt__7Parm<f>"@ha
lis r5, 0x66703130@ha
addi r0, r3, "__vt__7Parm<f>"@l
lfs f0, lbl_8051C2E8@sda21(r2)
stw r0, 0x804(r31)
addi r3, r31, 0x82c
lfs f1, lbl_8051C2EC@sda21(r2)
addi r4, r31, 0x7f8
stfs f0, 0x81c(r31)
addi r5, r5, 0x66703130@l
lfs f0, lbl_8051C2F0@sda21(r2)
addi r6, r30, 0x84
stfs f1, 0x824(r31)
stfs f0, 0x828(r31)
bl __ct__8BaseParmFP10ParametersUlPc
lis r3, "__vt__7Parm<f>"@ha
lis r5, 0x66703131@ha
addi r0, r3, "__vt__7Parm<f>"@l
lfs f0, lbl_8051C2F4@sda21(r2)
stw r0, 0x82c(r31)
addi r3, r31, 0x854
lfs f1, lbl_8051C2EC@sda21(r2)
addi r4, r31, 0x7f8
stfs f0, 0x844(r31)
addi r5, r5, 0x66703131@l
lfs f0, lbl_8051C2F8@sda21(r2)
addi r6, r30, 0x98
stfs f1, 0x84c(r31)
stfs f0, 0x850(r31)
bl __ct__8BaseParmFP10ParametersUlPc
lis r3, "__vt__7Parm<f>"@ha
lis r5, 0x66703231@ha
addi r0, r3, "__vt__7Parm<f>"@l
lfs f0, lbl_8051C2FC@sda21(r2)
stw r0, 0x854(r31)
addi r3, r31, 0x87c
lfs f1, lbl_8051C2EC@sda21(r2)
addi r4, r31, 0x7f8
stfs f0, 0x86c(r31)
addi r5, r5, 0x66703231@l
lfs f0, lbl_8051C2F8@sda21(r2)
addi r6, r30, 0xac
stfs f1, 0x874(r31)
stfs f0, 0x878(r31)
bl __ct__8BaseParmFP10ParametersUlPc
lis r3, "__vt__7Parm<f>"@ha
lfs f2, lbl_8051C300@sda21(r2)
addi r0, r3, "__vt__7Parm<f>"@l
lfs f1, lbl_8051C2EC@sda21(r2)
stw r0, 0x87c(r31)
mr r3, r31
lfs f0, lbl_8051C2F8@sda21(r2)
stfs f2, 0x894(r31)
stfs f1, 0x89c(r31)
stfs f0, 0x8a0(r31)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::doAlloc() { init(new OtakaraBase::Parms); }
/*
* --INFO--
* Address: 802B7EB8
* Size: 000060
*/
void FireOtakara::Mgr::createObj(int)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
mr r30, r3
mulli r3, r31, 0x308
addi r3, r3, 0x10
bl __nwa__FUl
lis r4, __ct__Q34Game11FireOtakara3ObjFv@ha
lis r5, __dt__Q34Game11FireOtakara3ObjFv@ha
addi r4, r4, __ct__Q34Game11FireOtakara3ObjFv@l
mr r7, r31
addi r5, r5, __dt__Q34Game11FireOtakara3ObjFv@l
li r6, 0x308
bl __construct_new_array
stw r3, 0x48(r30)
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B7F18
* Size: 0000F0
*/
FireOtakara::Obj::~Obj()
{
/*
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_802B7FEC
lis r3, __vt__Q34Game11FireOtakara3Obj@ha
addi r0, r30, 0x2f8
addi r4, r3, __vt__Q34Game11FireOtakara3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B7FDC
lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
addi r0, r30, 0x2f4
addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B7FDC
lis r3, __vt__Q24Game9EnemyBase@ha
addi r0, r30, 0x2bc
addi r4, r3, __vt__Q24Game9EnemyBase@l
addi r3, r30, 0x290
stw r4, 0(r30)
addi r5, r4, 0x1b0
addi r6, r4, 0x2f8
li r4, -1
stw r5, 0x178(r30)
lwz r5, 0x17c(r30)
stw r6, 0(r5)
lwz r5, 0x17c(r30)
subf r0, r5, r0
stw r0, 0xc(r5)
bl __dt__5CNodeFv
lbl_802B7FDC:
extsh. r0, r31
ble lbl_802B7FEC
mr r3, r30
bl __dl__FPv
lbl_802B7FEC:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::createObj(int count) { m_obj = new Obj[count]; }
/*
* --INFO--
* Address: 802B8008
* Size: 000010
*/
void FireOtakara::Mgr::getEnemy(int)
{
/*
mulli r0, r4, 0x308
lwz r3, 0x48(r3)
add r3, r3, r0
blr
*/
}
EnemyBase* Mgr::getEnemy(int index) { return &m_obj[index]; }
/*
* --INFO--
* Address: 802B8018
* Size: 000080
*/
void FireOtakara::Mgr::loadTexData()
void Mgr::loadTexData()
{
/*
stwu r1, -0x40(r1)
mflr r0
stw r0, 0x44(r1)
li r0, 0
stw r31, 0x3c(r1)
mr r31, r3
stw r0, 0x44(r3)
addi r3, r1, 8
lwz r4,
"cOtakaraChangeTexName__Q34Game11FireOtakara28@unnamed@FireOtakaraMgr_cpp@"@sda21(r13)
bl __ct__Q212LoadResource3ArgFPCc
lwz r3, gLoadResourceMgr@sda21(r13)
addi r4, r1, 8
bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
cmplwi r3, 0
beq lbl_802B805C
lwz r0, 0x30(r3)
stw r0, 0x44(r31)
lbl_802B805C:
lwz r0, 0x44(r31)
cmplwi r0, 0
bne lbl_802B8084
lis r3, lbl_8048A740@ha
lis r5, lbl_8048A754@ha
addi r3, r3, lbl_8048A740@l
li r4, 0x53
addi r5, r5, lbl_8048A754@l
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_802B8084:
lwz r0, 0x44(r1)
lwz r31, 0x3c(r1)
mtlr r0
addi r1, r1, 0x40
blr
*/
m_changeTexture = nullptr;
LoadResource::Arg loadArg(cOtakaraChangeTexName);
LoadResource::Node* resource = gLoadResourceMgr->load(loadArg);
if (resource) {
m_changeTexture = static_cast<ResTIMG*>(resource->_30);
}
P2ASSERTLINE(83, m_changeTexture);
}
/*
* --INFO--
* Address: 802B8098
* Size: 0000C8
*/
FireOtakara::Mgr::~Mgr()
{
/*
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_802B8144
lis r3, __vt__Q34Game11FireOtakara3Mgr@ha
addi r3, r3, __vt__Q34Game11FireOtakara3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B8134
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B8134
lis r3, __vt__Q24Game12EnemyMgrBase@ha
addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B8134
lis r3, __vt__Q24Game13IEnemyMgrBase@ha
addic. r0, r30, 4
addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B8134
lis r4, __vt__16GenericContainer@ha
addi r3, r30, 4
addi r0, r4, __vt__16GenericContainer@l
li r4, 0
stw r0, 4(r30)
bl __dt__5CNodeFv
lbl_802B8134:
extsh. r0, r31
ble lbl_802B8144
mr r3, r30
bl __dl__FPv
lbl_802B8144:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B8160
* Size: 000008
*/
u32 FireOtakara::Mgr::getEnemyTypeID() { return 0x3B; }
/*
* --INFO--
* Address: 802B8168
* Size: 000008
*/
void FireOtakara::Mgr::getChangeTexture()
{
/*
lwz r3, 0x44(r3)
blr
*/
}
/*
* --INFO--
* Address: 802B8170
* Size: 000050
*/
void OtakaraBase::Parms::read(Stream&)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
mr r30, r3
bl read__10ParametersFR6Stream
mr r4, r31
addi r3, r30, 0xe0
bl read__10ParametersFR6Stream
mr r4, r31
addi r3, r30, 0x7f8
bl read__10ParametersFR6Stream
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B81C0
* Size: 000008
*/
FireOtakara::Mgr::@4 @~Mgr()
{
/*
addi r3, r3, -4
b __dt__Q34Game11FireOtakara3MgrFv
*/
}
} // namespace FireOtakara
} // namespace Game

View File

@ -1,131 +1,22 @@
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_8048A7D0
lbl_8048A7D0:
.asciz "/enemy/data/GasOtakara/otakara_purple_s3tc.bti"
.skip 1
.global lbl_8048A800
lbl_8048A800:
.4byte 0x834B8358
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.global lbl_8048A81C
lbl_8048A81C:
.asciz "GasOtakaraMgr.cpp"
.skip 2
.global lbl_8048A830
lbl_8048A830:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q34Game10GasOtakara3Mgr
__vt__Q34Game10GasOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game10GasOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game10GasOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game10GasOtakara3MgrFi
.4byte getEnemy__Q34Game10GasOtakara3MgrFi
.4byte doAlloc__Q34Game10GasOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game10GasOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game10GasOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game10GasOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.global
"cOtakaraChangeTexName__Q34Game10GasOtakara27@unnamed@GasOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game10GasOtakara27@unnamed@GasOtakaraMgr_cpp@":
.4byte lbl_8048A7D0
*/
#include "Game/Entities/GasOtakara.h"
#include "LoadResource.h"
namespace Game {
namespace GasOtakara {
namespace {
static const char* cOtakaraChangeTexName = "/enemy/data/GasOtakara/otakara_purple_s3tc.bti";
} // namespace
/*
* --INFO--
* Address: 802B8F3C
* Size: 000050
*/
GasOtakara::Mgr::Mgr(int, unsigned char)
Mgr::Mgr(int objLimit, u8 modelType)
: OtakaraBase::Mgr(objLimit, modelType)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
bl __ct__Q34Game11OtakaraBase3MgrFiUc
lis r3, __vt__Q34Game10GasOtakara3Mgr@ha
lis r4, lbl_8048A800@ha
addi r5, r3, __vt__Q34Game10GasOtakara3Mgr@l
mr r3, r31
stw r5, 0(r31)
addi r5, r5, 0x38
addi r0, r4, lbl_8048A800@l
stw r5, 4(r31)
stw r0, 0x18(r31)
lwz r31, 0xc(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
m_name = "ガスオタカラムシマネージャ"; // gas otakara manager
}
/*
@ -133,300 +24,37 @@ GasOtakara::Mgr::Mgr(int, unsigned char)
* Address: 802B8F8C
* Size: 000048
*/
void GasOtakara::Mgr::doAlloc()
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
li r3, 0x8a8
bl __nw__FUl
or. r4, r3, r3
beq lbl_802B8FB8
bl __ct__Q34Game11OtakaraBase5ParmsFv
mr r4, r3
lbl_802B8FB8:
mr r3, r31
bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::doAlloc() { init(new OtakaraBase::Parms); }
/*
* --INFO--
* Address: 802B8FD4
* Size: 000060
*/
void GasOtakara::Mgr::createObj(int)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
mr r30, r3
mulli r3, r31, 0x308
addi r3, r3, 0x10
bl __nwa__FUl
lis r4, __ct__Q34Game10GasOtakara3ObjFv@ha
lis r5, __dt__Q34Game10GasOtakara3ObjFv@ha
addi r4, r4, __ct__Q34Game10GasOtakara3ObjFv@l
mr r7, r31
addi r5, r5, __dt__Q34Game10GasOtakara3ObjFv@l
li r6, 0x308
bl __construct_new_array
stw r3, 0x48(r30)
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B9034
* Size: 0000F0
*/
GasOtakara::Obj::~Obj()
{
/*
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_802B9108
lis r3, __vt__Q34Game10GasOtakara3Obj@ha
addi r0, r30, 0x2f8
addi r4, r3, __vt__Q34Game10GasOtakara3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B90F8
lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
addi r0, r30, 0x2f4
addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B90F8
lis r3, __vt__Q24Game9EnemyBase@ha
addi r0, r30, 0x2bc
addi r4, r3, __vt__Q24Game9EnemyBase@l
addi r3, r30, 0x290
stw r4, 0(r30)
addi r5, r4, 0x1b0
addi r6, r4, 0x2f8
li r4, -1
stw r5, 0x178(r30)
lwz r5, 0x17c(r30)
stw r6, 0(r5)
lwz r5, 0x17c(r30)
subf r0, r5, r0
stw r0, 0xc(r5)
bl __dt__5CNodeFv
lbl_802B90F8:
extsh. r0, r31
ble lbl_802B9108
mr r3, r30
bl __dl__FPv
lbl_802B9108:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::createObj(int count) { m_obj = new Obj[count]; }
/*
* --INFO--
* Address: 802B9124
* Size: 000010
*/
void GasOtakara::Mgr::getEnemy(int)
{
/*
mulli r0, r4, 0x308
lwz r3, 0x48(r3)
add r3, r3, r0
blr
*/
}
EnemyBase* Mgr::getEnemy(int index) { return &m_obj[index]; }
/*
* --INFO--
* Address: 802B9134
* Size: 000080
*/
void GasOtakara::Mgr::loadTexData()
void Mgr::loadTexData()
{
/*
stwu r1, -0x40(r1)
mflr r0
stw r0, 0x44(r1)
li r0, 0
stw r31, 0x3c(r1)
mr r31, r3
stw r0, 0x44(r3)
addi r3, r1, 8
lwz r4,
"cOtakaraChangeTexName__Q34Game10GasOtakara27@unnamed@GasOtakaraMgr_cpp@"@sda21(r13)
bl __ct__Q212LoadResource3ArgFPCc
lwz r3, gLoadResourceMgr@sda21(r13)
addi r4, r1, 8
bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
cmplwi r3, 0
beq lbl_802B9178
lwz r0, 0x30(r3)
stw r0, 0x44(r31)
lbl_802B9178:
lwz r0, 0x44(r31)
cmplwi r0, 0
bne lbl_802B91A0
lis r3, lbl_8048A81C@ha
lis r5, lbl_8048A830@ha
addi r3, r3, lbl_8048A81C@l
li r4, 0x53
addi r5, r5, lbl_8048A830@l
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_802B91A0:
lwz r0, 0x44(r1)
lwz r31, 0x3c(r1)
mtlr r0
addi r1, r1, 0x40
blr
*/
m_changeTexture = nullptr;
LoadResource::Arg loadArg(cOtakaraChangeTexName);
LoadResource::Node* resource = gLoadResourceMgr->load(loadArg);
if (resource) {
m_changeTexture = static_cast<ResTIMG*>(resource->_30);
}
P2ASSERTLINE(83, m_changeTexture);
}
/*
* --INFO--
* Address: 802B91B4
* Size: 0000C8
*/
GasOtakara::Mgr::~Mgr()
{
/*
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_802B9260
lis r3, __vt__Q34Game10GasOtakara3Mgr@ha
addi r3, r3, __vt__Q34Game10GasOtakara3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9250
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9250
lis r3, __vt__Q24Game12EnemyMgrBase@ha
addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9250
lis r3, __vt__Q24Game13IEnemyMgrBase@ha
addic. r0, r30, 4
addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B9250
lis r4, __vt__16GenericContainer@ha
addi r3, r30, 4
addi r0, r4, __vt__16GenericContainer@l
li r4, 0
stw r0, 4(r30)
bl __dt__5CNodeFv
lbl_802B9250:
extsh. r0, r31
ble lbl_802B9260
mr r3, r30
bl __dl__FPv
lbl_802B9260:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B927C
* Size: 000008
*/
u32 GasOtakara::Mgr::getEnemyTypeID() { return 0x3D; }
/*
* --INFO--
* Address: 802B9284
* Size: 000008
*/
void GasOtakara::Mgr::getChangeTexture()
{
/*
lwz r3, 0x44(r3)
blr
*/
}
/*
* --INFO--
* Address: 802B928C
* Size: 000008
*/
GasOtakara::Mgr::@4 @~Mgr()
{
/*
addi r3, r3, -4
b __dt__Q34Game10GasOtakara3MgrFv
*/
}
} // namespace GasOtakara
} // namespace Game

View File

@ -1,143 +1,21 @@
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_8048A338
lbl_8048A338:
.4byte 0x3234362D
.4byte 0x4F74616B
.4byte 0x61726142
.4byte 0x6173654D
.4byte 0x67720000
.global lbl_8048A34C
lbl_8048A34C:
.4byte 0x8349835E
.4byte 0x834A8389
.4byte 0x83808356
.4byte 0x837D836C
.4byte 0x815B8357
.4byte 0x83830000
.global lbl_8048A364
lbl_8048A364:
.4byte 0x0000003B
.4byte 0x0000003C
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x0000005D
.global lbl_8048A378
lbl_8048A378:
.4byte 0x0000003B
.4byte 0x0000003C
.4byte 0x0000003D
.4byte 0x0000003E
.4byte 0x0000005D
.4byte 0x4F74616B
.4byte 0x61726142
.4byte 0x6173654D
.4byte 0x67722E63
.4byte 0x70700000
.asciz "P2Assert"
.skip 3
.4byte 0x6D61745F
.4byte 0x626F6479
.4byte 0x00000000
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q34Game11OtakaraBase3Mgr
__vt__Q34Game11OtakaraBase3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game11OtakaraBase3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game11OtakaraBase3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte 0
.4byte 0
.4byte doAlloc__Q24Game12EnemyMgrBaseFv
.4byte getEnemyTypeID__Q34Game11OtakaraBase3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q24Game12EnemyMgrBaseFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte 0
.4byte 0
*/
#include "Game/Entities/OtakaraBase.h"
#include "Game/generalEnemyMgr.h"
#include "JSystem/JUT/JUTNameTab.h"
namespace Game {
namespace OtakaraBase {
static const char otakaraBaseMgrName[] = "246-OtakaraBaseMgr";
/*
* --INFO--
* Address: 802B5E98
* Size: 000050
*/
OtakaraBase::Mgr::Mgr(int, unsigned char)
Mgr::Mgr(int objLimit, u8 modelType)
: EnemyMgrBase(objLimit, modelType)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
bl __ct__Q24Game12EnemyMgrBaseFiUc
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
lis r4, lbl_8048A34C@ha
addi r5, r3, __vt__Q34Game11OtakaraBase3Mgr@l
mr r3, r31
stw r5, 0(r31)
addi r5, r5, 0x38
addi r0, r4, lbl_8048A34C@l
stw r5, 4(r31)
stw r0, 0x18(r31)
lwz r31, 0xc(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
m_name = "オタカラムシマネージャ"; // otakara manager
}
/*
@ -145,63 +23,24 @@ OtakaraBase::Mgr::Mgr(int, unsigned char)
* Address: 802B5EE8
* Size: 0000BC
*/
void OtakaraBase::Mgr::loadModelData()
void Mgr::loadModelData()
{
/*
stwu r1, -0x30(r1)
mflr r0
lis r4, lbl_8048A364@ha
stw r0, 0x34(r1)
addi r7, r4, lbl_8048A364@l
stw r31, 0x2c(r1)
addi r31, r1, 8
stw r30, 0x28(r1)
li r30, 0
stw r29, 0x24(r1)
mr r29, r3
lwz r6, 0(r7)
lwz r5, 4(r7)
lwz r4, 8(r7)
lwz r3, 0xc(r7)
lwz r0, 0x10(r7)
stw r6, 8(r1)
stw r5, 0xc(r1)
stw r4, 0x10(r1)
stw r3, 0x14(r1)
stw r0, 0x18(r1)
int ids[5] = { EnemyTypeID::EnemyID_FireOtakara, EnemyTypeID::EnemyID_WaterOtakara, EnemyTypeID::EnemyID_GasOtakara,
EnemyTypeID::EnemyID_ElecOtakara, EnemyTypeID::EnemyID_BombOtakara };
lbl_802B5F3C:
lwz r3, generalEnemyMgr__4Game@sda21(r13)
lwz r4, 0(r31)
bl getEnemyMgr__Q24Game15GeneralEnemyMgrFi
cmplwi r3, 0
beq lbl_802B5F70
lwz r12, 0(r3)
lwz r12, 0x74(r12)
mtctr r12
bctrl
cmplwi r3, 0
beq lbl_802B5F70
stw r3, 0x1c(r29)
b lbl_802B5F88
for (int i = 0; i < 5; i++) {
EnemyMgrBase* mgr = generalEnemyMgr->getEnemyMgr(ids[i]);
if (mgr) {
J3DModelData* storedModelData = mgr->getJ3DModelData();
lbl_802B5F70:
addi r30, r30, 1
addi r31, r31, 4
cmpwi r30, 5
blt lbl_802B5F3C
mr r3, r29
bl loadModelData__Q24Game12EnemyMgrBaseFv
if (storedModelData) {
m_modelData = storedModelData;
return;
}
}
}
lbl_802B5F88:
lwz r0, 0x34(r1)
lwz r31, 0x2c(r1)
lwz r30, 0x28(r1)
lwz r29, 0x24(r1)
mtlr r0
addi r1, r1, 0x30
blr
*/
EnemyMgrBase::loadModelData();
}
/*
@ -209,60 +48,23 @@ lbl_802B5F88:
* Address: 802B5FA4
* Size: 0000B0
*/
void OtakaraBase::Mgr::loadAnimData()
void Mgr::loadAnimData()
{
/*
stwu r1, -0x30(r1)
mflr r0
lis r4, lbl_8048A378@ha
stw r0, 0x34(r1)
addi r7, r4, lbl_8048A378@l
stw r31, 0x2c(r1)
addi r31, r1, 8
stw r30, 0x28(r1)
li r30, 0
stw r29, 0x24(r1)
mr r29, r3
lwz r6, 0(r7)
lwz r5, 4(r7)
lwz r4, 8(r7)
lwz r3, 0xc(r7)
lwz r0, 0x10(r7)
stw r6, 8(r1)
stw r5, 0xc(r1)
stw r4, 0x10(r1)
stw r3, 0x14(r1)
stw r0, 0x18(r1)
int ids[5] = { EnemyTypeID::EnemyID_FireOtakara, EnemyTypeID::EnemyID_WaterOtakara, EnemyTypeID::EnemyID_GasOtakara,
EnemyTypeID::EnemyID_ElecOtakara, EnemyTypeID::EnemyID_BombOtakara };
lbl_802B5FF8:
lwz r3, generalEnemyMgr__4Game@sda21(r13)
lwz r4, 0(r31)
bl getEnemyMgr__Q24Game15GeneralEnemyMgrFi
cmplwi r3, 0
beq lbl_802B6020
lwz r0, 0x20(r3)
cmplwi r0, 0
beq lbl_802B6020
stw r0, 0x20(r29)
b lbl_802B6038
for (int i = 0; i < 5; i++) {
EnemyMgrBase* mgr = generalEnemyMgr->getEnemyMgr(ids[i]);
if (mgr) {
SysShape::AnimMgr* storedAnimMgr = mgr->m_animMgr;
if (storedAnimMgr) {
m_animMgr = storedAnimMgr;
return;
}
}
}
lbl_802B6020:
addi r30, r30, 1
addi r31, r31, 4
cmpwi r30, 5
blt lbl_802B5FF8
mr r3, r29
bl loadAnimData__Q24Game12EnemyMgrBaseFv
lbl_802B6038:
lwz r0, 0x34(r1)
lwz r31, 0x2c(r1)
lwz r30, 0x28(r1)
lwz r29, 0x24(r1)
mtlr r0
addi r1, r1, 0x30
blr
*/
EnemyMgrBase::loadAnimData();
}
/*
@ -270,176 +72,20 @@ lbl_802B6038:
* Address: 802B6054
* Size: 000138
*/
void OtakaraBase::Mgr::createModel()
SysShape::Model* Mgr::createModel()
{
/*
stwu r1, -0x50(r1)
mflr r0
lis r4, lbl_8048A338@ha
stw r0, 0x54(r1)
stw r31, 0x4c(r1)
addi r31, r4, lbl_8048A338@l
stw r30, 0x48(r1)
stw r29, 0x44(r1)
stw r28, 0x40(r1)
mr r28, r3
li r3, 0x14
bl __nw__FUl
or. r30, r3, r3
beq lbl_802B60A0
lwz r4, 0x1c(r28)
lis r5, 8
lbz r6, 0x24(r28)
bl __ct__Q28SysShape5ModelFP12J3DModelDataUlUl
mr r30, r3
SysShape::Model* model = new SysShape::Model(m_modelData, 0x80000, m_modelType);
P2ASSERTLINE(136, model);
for (u16 i = 0; i < m_modelData->getMaterialCount1(); i++) {
const char* name = m_modelData->m_materialTable._0C->getName(i);
if (!strcmp(name, "mat_body")) {
model->m_j3dModel->m_matPackets[i]._2C->newDifferedDisplayList(0x04020000);
}
}
lbl_802B60A0:
cmplwi r30, 0
bne lbl_802B60BC
addi r3, r31, 0x54
addi r5, r31, 0x68
li r4, 0x88
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_802B60BC:
li r29, 0
b lbl_802B6100
lbl_802B60C4:
lwz r3, 0x64(r4)
mr r4, r29
bl getName__10JUTNameTabCFUs
addi r4, r31, 0x74
bl strcmp
cmpwi r3, 0
bne lbl_802B60FC
lwz r4, 8(r30)
rlwinm r3, r29, 6, 0xa, 0x19
addi r0, r3, 0x2c
lwz r3, 0xc0(r4)
lis r4, 0x402
lwzx r3, r3, r0
bl newDifferedDisplayList__14J3DShapePacketFUl
lbl_802B60FC:
addi r29, r29, 1
lbl_802B6100:
lwz r4, 0x1c(r28)
clrlwi r0, r29, 0x10
lhz r3, 0x5c(r4)
cmplw r0, r3
blt lbl_802B60C4
addi r3, r1, 8
bl PSMTXIdentity
lis r4, j3dSys@ha
addi r3, r1, 8
addi r4, r4, j3dSys@l
bl PSMTXCopy
lwz r31, 8(r30)
mr r3, r31
lwz r12, 0(r31)
lwz r12, 0x10(r12)
mtctr r12
bctrl
mr r3, r31
lwz r12, 0(r31)
lwz r12, 0x14(r12)
mtctr r12
bctrl
mr r3, r31
bl makeDL__8J3DModelFv
mr r3, r31
bl lock__8J3DModelFv
lwz r0, 0x54(r1)
mr r3, r30
lwz r31, 0x4c(r1)
lwz r30, 0x48(r1)
lwz r29, 0x44(r1)
lwz r28, 0x40(r1)
mtlr r0
addi r1, r1, 0x50
blr
*/
model->updateModel();
return model;
}
/*
* --INFO--
* Address: 802B618C
* Size: 0000B0
*/
OtakaraBase::Mgr::~Mgr()
{
/*
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_802B6220
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B6210
lis r3, __vt__Q24Game12EnemyMgrBase@ha
addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B6210
lis r3, __vt__Q24Game13IEnemyMgrBase@ha
addic. r0, r30, 4
addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B6210
lis r4, __vt__16GenericContainer@ha
addi r3, r30, 4
addi r0, r4, __vt__16GenericContainer@l
li r4, 0
stw r0, 4(r30)
bl __dt__5CNodeFv
lbl_802B6210:
extsh. r0, r31
ble lbl_802B6220
mr r3, r30
bl __dl__FPv
lbl_802B6220:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B623C
* Size: 000008
*/
u32 OtakaraBase::Mgr::getEnemyTypeID() { return 0x3B; }
/*
* --INFO--
* Address: 802B6244
* Size: 000008
*/
OtakaraBase::Mgr::@4 @~Mgr()
{
/*
addi r3, r3, -4
b __dt__Q34Game11OtakaraBase3MgrFv
*/
}
} // namespace OtakaraBase
} // namespace Game

View File

@ -1,130 +1,22 @@
#include "types.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_8048A760
lbl_8048A760:
.asciz "/enemy/data/WaterOtakara/otakara_blue_s3tc.bti"
.skip 1
.global lbl_8048A790
lbl_8048A790:
.4byte 0x90858349
.4byte 0x835E834A
.4byte 0x83898380
.4byte 0x8356837D
.4byte 0x836C815B
.4byte 0x83578383
.4byte 0x00000000
.global lbl_8048A7AC
lbl_8048A7AC:
.asciz "WaterOtakaraMgr.cpp"
.global lbl_8048A7C0
lbl_8048A7C0:
.asciz "P2Assert"
.skip 3
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__Q34Game12WaterOtakara3Mgr
__vt__Q34Game12WaterOtakara3Mgr:
.4byte 0
.4byte 0
.4byte doAnimation__Q24Game12EnemyMgrBaseFv
.4byte doEntry__Q24Game12EnemyMgrBaseFv
.4byte doSetView__Q24Game12EnemyMgrBaseFi
.4byte doViewCalc__Q24Game12EnemyMgrBaseFv
.4byte doSimulation__Q24Game12EnemyMgrBaseFf
.4byte doDirectDraw__Q24Game12EnemyMgrBaseFR8Graphics
.4byte doSimpleDraw__16GenericObjectMgrFP8Viewport
.4byte loadResources__16GenericObjectMgrFv
.4byte resetMgr__16GenericObjectMgrFv
.4byte pausable__16GenericObjectMgrFv
.4byte frozenable__16GenericObjectMgrFv
.4byte getMatrixLoadType__16GenericObjectMgrFv
.4byte 0
.4byte 0
.4byte "@4@__dt__Q34Game12WaterOtakara3MgrFv"
.4byte getChildCount__5CNodeFv
.4byte "@4@getObject__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getNext__Q24Game12EnemyMgrBaseFPv"
.4byte "@4@getStart__Q24Game12EnemyMgrBaseFv"
.4byte "@4@getEnd__Q24Game12EnemyMgrBaseFv"
.4byte __dt__Q34Game12WaterOtakara3MgrFv
.4byte getObject__Q24Game12EnemyMgrBaseFPv
.4byte getNext__Q24Game12EnemyMgrBaseFPv
.4byte getStart__Q24Game12EnemyMgrBaseFv
.4byte getEnd__Q24Game12EnemyMgrBaseFv
.4byte alloc__Q24Game12EnemyMgrBaseFv
.4byte birth__Q24Game12EnemyMgrBaseFRQ24Game13EnemyBirthArg
.4byte getJ3DModelData__Q24Game12EnemyMgrBaseCFv
.4byte getGenerator__Q24Game12EnemyMgrBaseCFv
.4byte killAll__Q24Game12EnemyMgrBaseFPQ24Game15CreatureKillArg
.4byte setupSoundViewerAndBas__Q24Game12EnemyMgrBaseFv
.4byte setDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte resetDebugParm__Q24Game12EnemyMgrBaseFUl
.4byte getMaxObjects__Q24Game12EnemyMgrBaseCFv
.4byte startMovie__Q24Game12EnemyMgrBaseFv
.4byte endMovie__Q24Game12EnemyMgrBaseFv
.4byte get__Q24Game12EnemyMgrBaseFPv
.4byte isAlwaysMovieActor__Q24Game12EnemyMgrBaseFv
.4byte createObj__Q34Game12WaterOtakara3MgrFi
.4byte getEnemy__Q34Game12WaterOtakara3MgrFi
.4byte doAlloc__Q34Game12WaterOtakara3MgrFv
.4byte getEnemyTypeID__Q34Game12WaterOtakara3MgrFv
.4byte createModel__Q34Game11OtakaraBase3MgrFv
.4byte initParms__Q24Game12EnemyMgrBaseFv
.4byte loadResource__Q24Game12EnemyMgrBaseFv
.4byte initObjects__Q24Game12EnemyMgrBaseFv
.4byte initStoneSetting__Q24Game12EnemyMgrBaseFv
.4byte loadModelData__Q24Game12EnemyMgrBaseFP10JKRArchive
.4byte loadModelData__Q34Game11OtakaraBase3MgrFv
.4byte loadAnimData__Q34Game11OtakaraBase3MgrFv
.4byte loadTexData__Q34Game12WaterOtakara3MgrFv
.4byte doLoadBmd__Q24Game12EnemyMgrBaseFPv
.4byte doLoadBdl__Q24Game12EnemyMgrBaseFPv
.4byte initGenerator__Q24Game12EnemyMgrBaseFv
.4byte getChangeTexture__Q34Game12WaterOtakara3MgrFv
.4byte 0
.section .sdata, "wa" # 0x80514680 - 0x80514D80
.global
"cOtakaraChangeTexName__Q34Game12WaterOtakara29@unnamed@WaterOtakaraMgr_cpp@"
"cOtakaraChangeTexName__Q34Game12WaterOtakara29@unnamed@WaterOtakaraMgr_cpp@":
.4byte lbl_8048A760
*/
#include "Game/Entities/WaterOtakara.h"
#include "LoadResource.h"
namespace Game {
namespace WaterOtakara {
namespace {
static const char* cOtakaraChangeTexName = "/enemy/data/WaterOtakara/otakara_blue_s3tc.bti";
} // namespace
/*
* --INFO--
* Address: 802B86E0
* Size: 000050
*/
WaterOtakara::Mgr::Mgr(int, unsigned char)
Mgr::Mgr(int objLimit, u8 modelType)
: OtakaraBase::Mgr(objLimit, modelType)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
bl __ct__Q34Game11OtakaraBase3MgrFiUc
lis r3, __vt__Q34Game12WaterOtakara3Mgr@ha
lis r4, lbl_8048A790@ha
addi r5, r3, __vt__Q34Game12WaterOtakara3Mgr@l
mr r3, r31
stw r5, 0(r31)
addi r5, r5, 0x38
addi r0, r4, lbl_8048A790@l
stw r5, 4(r31)
stw r0, 0x18(r31)
lwz r31, 0xc(r1)
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
m_name = "水オタカラムシマネージャ"; // water otakara manager
}
/*
@ -132,300 +24,37 @@ WaterOtakara::Mgr::Mgr(int, unsigned char)
* Address: 802B8730
* Size: 000048
*/
void WaterOtakara::Mgr::doAlloc()
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r3
li r3, 0x8a8
bl __nw__FUl
or. r4, r3, r3
beq lbl_802B875C
bl __ct__Q34Game11OtakaraBase5ParmsFv
mr r4, r3
lbl_802B875C:
mr r3, r31
bl init__Q24Game12EnemyMgrBaseFPQ24Game14EnemyParmsBase
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::doAlloc() { init(new OtakaraBase::Parms); }
/*
* --INFO--
* Address: 802B8778
* Size: 000060
*/
void WaterOtakara::Mgr::createObj(int)
{
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
stw r30, 8(r1)
mr r30, r3
mulli r3, r31, 0x308
addi r3, r3, 0x10
bl __nwa__FUl
lis r4, __ct__Q34Game12WaterOtakara3ObjFv@ha
lis r5, __dt__Q34Game12WaterOtakara3ObjFv@ha
addi r4, r4, __ct__Q34Game12WaterOtakara3ObjFv@l
mr r7, r31
addi r5, r5, __dt__Q34Game12WaterOtakara3ObjFv@l
li r6, 0x308
bl __construct_new_array
stw r3, 0x48(r30)
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B87D8
* Size: 0000F0
*/
WaterOtakara::Obj::~Obj()
{
/*
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_802B88AC
lis r3, __vt__Q34Game12WaterOtakara3Obj@ha
addi r0, r30, 0x2f8
addi r4, r3, __vt__Q34Game12WaterOtakara3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B889C
lis r3, __vt__Q34Game11OtakaraBase3Obj@ha
addi r0, r30, 0x2f4
addi r4, r3, __vt__Q34Game11OtakaraBase3Obj@l
stw r4, 0(r30)
addi r3, r4, 0x1b0
addi r4, r4, 0x324
stw r3, 0x178(r30)
lwz r3, 0x17c(r30)
stw r4, 0(r3)
lwz r3, 0x17c(r30)
subf r0, r3, r0
stw r0, 0xc(r3)
beq lbl_802B889C
lis r3, __vt__Q24Game9EnemyBase@ha
addi r0, r30, 0x2bc
addi r4, r3, __vt__Q24Game9EnemyBase@l
addi r3, r30, 0x290
stw r4, 0(r30)
addi r5, r4, 0x1b0
addi r6, r4, 0x2f8
li r4, -1
stw r5, 0x178(r30)
lwz r5, 0x17c(r30)
stw r6, 0(r5)
lwz r5, 0x17c(r30)
subf r0, r5, r0
stw r0, 0xc(r5)
bl __dt__5CNodeFv
lbl_802B889C:
extsh. r0, r31
ble lbl_802B88AC
mr r3, r30
bl __dl__FPv
lbl_802B88AC:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
void Mgr::createObj(int count) { m_obj = new Obj[count]; }
/*
* --INFO--
* Address: 802B88C8
* Size: 000010
*/
void WaterOtakara::Mgr::getEnemy(int)
{
/*
mulli r0, r4, 0x308
lwz r3, 0x48(r3)
add r3, r3, r0
blr
*/
}
EnemyBase* Mgr::getEnemy(int index) { return &m_obj[index]; }
/*
* --INFO--
* Address: 802B88D8
* Size: 000080
*/
void WaterOtakara::Mgr::loadTexData()
void Mgr::loadTexData()
{
/*
stwu r1, -0x40(r1)
mflr r0
stw r0, 0x44(r1)
li r0, 0
stw r31, 0x3c(r1)
mr r31, r3
stw r0, 0x44(r3)
addi r3, r1, 8
lwz r4,
"cOtakaraChangeTexName__Q34Game12WaterOtakara29@unnamed@WaterOtakaraMgr_cpp@"@sda21(r13)
bl __ct__Q212LoadResource3ArgFPCc
lwz r3, gLoadResourceMgr@sda21(r13)
addi r4, r1, 8
bl load__Q212LoadResource3MgrFRQ212LoadResource3Arg
cmplwi r3, 0
beq lbl_802B891C
lwz r0, 0x30(r3)
stw r0, 0x44(r31)
lbl_802B891C:
lwz r0, 0x44(r31)
cmplwi r0, 0
bne lbl_802B8944
lis r3, lbl_8048A7AC@ha
lis r5, lbl_8048A7C0@ha
addi r3, r3, lbl_8048A7AC@l
li r4, 0x53
addi r5, r5, lbl_8048A7C0@l
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
lbl_802B8944:
lwz r0, 0x44(r1)
lwz r31, 0x3c(r1)
mtlr r0
addi r1, r1, 0x40
blr
*/
m_changeTexture = nullptr;
LoadResource::Arg loadArg(cOtakaraChangeTexName);
LoadResource::Node* resource = gLoadResourceMgr->load(loadArg);
if (resource) {
m_changeTexture = static_cast<ResTIMG*>(resource->_30);
}
P2ASSERTLINE(83, m_changeTexture);
}
/*
* --INFO--
* Address: 802B8958
* Size: 0000C8
*/
WaterOtakara::Mgr::~Mgr()
{
/*
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_802B8A04
lis r3, __vt__Q34Game12WaterOtakara3Mgr@ha
addi r3, r3, __vt__Q34Game12WaterOtakara3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B89F4
lis r3, __vt__Q34Game11OtakaraBase3Mgr@ha
addi r3, r3, __vt__Q34Game11OtakaraBase3Mgr@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B89F4
lis r3, __vt__Q24Game12EnemyMgrBase@ha
addi r3, r3, __vt__Q24Game12EnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B89F4
lis r3, __vt__Q24Game13IEnemyMgrBase@ha
addic. r0, r30, 4
addi r3, r3, __vt__Q24Game13IEnemyMgrBase@l
stw r3, 0(r30)
addi r0, r3, 0x38
stw r0, 4(r30)
beq lbl_802B89F4
lis r4, __vt__16GenericContainer@ha
addi r3, r30, 4
addi r0, r4, __vt__16GenericContainer@l
li r4, 0
stw r0, 4(r30)
bl __dt__5CNodeFv
lbl_802B89F4:
extsh. r0, r31
ble lbl_802B8A04
mr r3, r30
bl __dl__FPv
lbl_802B8A04:
lwz r0, 0x14(r1)
mr r3, r30
lwz r31, 0xc(r1)
lwz r30, 8(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 802B8A20
* Size: 000008
*/
u32 WaterOtakara::Mgr::getEnemyTypeID() { return 0x3C; }
/*
* --INFO--
* Address: 802B8A28
* Size: 000008
*/
void WaterOtakara::Mgr::getChangeTexture()
{
/*
lwz r3, 0x44(r3)
blr
*/
}
/*
* --INFO--
* Address: 802B8A30
* Size: 000008
*/
WaterOtakara::Mgr::@4 @~Mgr()
{
/*
addi r3, r3, -4
b __dt__Q34Game12WaterOtakara3MgrFv
*/
}
} // namespace WaterOtakara
} // namespace Game

View File

@ -22,7 +22,7 @@ Mgr::Mgr(int objLimit, u8 modelType)
* Address: 8012A6C0
* Size: 0000C0
*/
void ChappyBase::Mgr::loadModelData()
void Mgr::loadModelData()
{
int ids[3] = { EnemyTypeID::EnemyID_Chappy, EnemyTypeID::EnemyID_BlueChappy, EnemyTypeID::EnemyID_YellowChappy };
@ -49,7 +49,7 @@ void ChappyBase::Mgr::loadModelData()
* Address: 8012A780
* Size: 0000A0
*/
void ChappyBase::Mgr::loadAnimData()
void Mgr::loadAnimData()
{
int ids[3] = { EnemyTypeID::EnemyID_Chappy, EnemyTypeID::EnemyID_BlueChappy, EnemyTypeID::EnemyID_YellowChappy };

View File

@ -159,3 +159,5 @@ You have 672 out of 10000 Pokos and 27 out of 201 treasures.",2022-10-20 22:23:1
You have 694 out of 10000 Pokos and 28 out of 201 treasures.",2022-10-20 19:44:24.883386
696,324116,0.06966712750883854,28,101356,0.14218299347974905,"
You have 696 out of 10000 Pokos and 28 out of 201 treasures.",2022-10-21 12:32:01.653234
708,329760,0.07088027733069209,29,104143,0.14609261898616271,"
You have 708 out of 10000 Pokos and 29 out of 201 treasures.",2022-10-21 13:41:02.342251

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
159
160
161
162
163