From 0cf3bf5f1ce8468d1ce7fd4955f52fbeb4500f79 Mon Sep 17 00:00:00 2001 From: HeartPiece Date: Mon, 11 Sep 2023 20:40:03 +1000 Subject: [PATCH] Link genEnemy.cpp TWENNY SIX BABY --- asm/plugProjectYamashitaU/genEnemy.s | 3564 ----------------------- configure.py | 2 +- docs/recommended_todo.md | 4 +- include/Game/enemyInfo.h | 4 +- include/Game/gameGenerator.h | 41 +- include/trigNoInline.h | 97 + src/plugProjectYamashitaU/Makefile | 2 +- src/plugProjectYamashitaU/enemyInfo.cpp | 2 +- src/plugProjectYamashitaU/genEnemy.cpp | 1651 +++-------- tools/progress.csv | 2 + 10 files changed, 525 insertions(+), 4844 deletions(-) delete mode 100644 asm/plugProjectYamashitaU/genEnemy.s create mode 100644 include/trigNoInline.h diff --git a/asm/plugProjectYamashitaU/genEnemy.s b/asm/plugProjectYamashitaU/genEnemy.s deleted file mode 100644 index 181d80f56..000000000 --- a/asm/plugProjectYamashitaU/genEnemy.s +++ /dev/null @@ -1,3564 +0,0 @@ -.include "macros.inc" -.section .rodata # 0x804732E0 - 0x8049E220 -.balign 8 -.obj lbl_8047B750, local - .asciz "genEnemy" -.endobj lbl_8047B750 -.balign 4 -.obj lbl_8047B75C, local - .asciz "object type" -.endobj lbl_8047B75C -.balign 4 -.obj lbl_8047B768, local # Shift-JIS - .4byte 0x934782F0 - .4byte 0x835A8362 - .4byte 0x83670000 -.endobj lbl_8047B768 -.balign 4 -.obj lbl_8047B774, local # Shift-JIS - .4byte 0x934782F0 - .4byte 0x94AD90B6 - .byte 0 -.endobj lbl_8047B774 -.balign 4 -.obj lbl_8047B780, local - .asciz "\t\t# %s \r\n" -.endobj lbl_8047B780 -.balign 4 -.obj lbl_8047B78C, local - .asciz "teki_birth_type" -.endobj lbl_8047B78C -.balign 4 -.obj lbl_8047B79C, local - .asciz "teki_num" -.endobj lbl_8047B79C -.balign 4 -.obj lbl_8047B7A8, local - .asciz "face direction" -.endobj lbl_8047B7A8 -.balign 4 -.obj lbl_8047B7B8, local - .asciz "0:point 1:circle" -.endobj lbl_8047B7B8 -.balign 4 -.obj lbl_8047B7CC, local - .asciz "appear radius" -.endobj lbl_8047B7CC -.balign 4 -.obj lbl_8047B7DC, local - .asciz "enemy size" -.endobj lbl_8047B7DC -.balign 4 -.obj lbl_8047B7E8, local - .asciz "\t\t# Version \r\n" -.endobj lbl_8047B7E8 -.balign 4 -.obj lbl_8047B7F8, local # Shift-JIS - .4byte 0x90D48352 - .4byte 0x83608383 - .4byte 0x83628373 - .4byte 0x815B0000 -.endobj lbl_8047B7F8 -.balign 4 -.obj lbl_8047B808, local # Shift-JIS - .4byte 0x90C28352 - .4byte 0x83608383 - .4byte 0x83628373 - .4byte 0x815B0000 -.endobj lbl_8047B808 -.balign 4 -.obj lbl_8047B818, local # Shift-JIS - .4byte 0x89A98352 - .4byte 0x83608383 - .4byte 0x83628373 - .4byte 0x815B0000 -.endobj lbl_8047B818 -.balign 4 -.obj lbl_8047B828, local # Shift-JIS - .4byte 0x90D48360 - .4byte 0x83838362 - .4byte 0x8373815B - .4byte 0x00000000 -.endobj lbl_8047B828 -.balign 4 -.obj lbl_8047B838, local # Shift-JIS - .4byte 0x90C28360 - .4byte 0x83838362 - .4byte 0x8373815B - .4byte 0x00000000 -.endobj lbl_8047B838 -.balign 4 -.obj lbl_8047B848, local # Shift-JIS - .4byte 0x89A98360 - .4byte 0x83838362 - .4byte 0x8373815B - .4byte 0x00000000 -.endobj lbl_8047B848 -.balign 4 -.obj lbl_8047B858, local # Shift-JIS - .4byte 0x90C2837C - .4byte 0x8393834B - .4byte 0x83569190 - .4byte 0x00000000 -.endobj lbl_8047B858 -.balign 4 -.obj lbl_8047B868, local # Shift-JIS - .4byte 0x90D4837C - .4byte 0x8393834B - .4byte 0x83569190 - .4byte 0x00000000 -.endobj lbl_8047B868 -.balign 4 -.obj lbl_8047B878, local # Shift-JIS - .4byte 0x89A9837C - .4byte 0x8393834B - .4byte 0x83569190 - .4byte 0x00000000 -.endobj lbl_8047B878 -.balign 4 -.obj lbl_8047B888, local # Shift-JIS - .4byte 0x8D95837C - .4byte 0x8393834B - .4byte 0x83569190 - .4byte 0x00000000 -.endobj lbl_8047B888 -.balign 4 -.obj lbl_8047B898, local # Shift-JIS - .4byte 0x9492837C - .4byte 0x8393834B - .4byte 0x83569190 - .4byte 0x00000000 -.endobj lbl_8047B898 -.balign 4 -.obj lbl_8047B8A8, local # Shift-JIS - .4byte 0x837C837C - .4byte 0x834B8356 - .4byte 0x91900000 -.endobj lbl_8047B8A8 -.balign 4 -.obj lbl_8047B8B4, local # Shift-JIS - .4byte 0x83498349 - .4byte 0x834B836C - .4byte 0x83828360 - .byte 0 -.endobj lbl_8047B8B4 -.balign 4 -.obj lbl_8047B8C4, local # Shift-JIS - .4byte 0x836F836F - .4byte 0x8352834B - .4byte 0x836C0000 -.endobj lbl_8047B8C4 -.balign 4 -.obj lbl_8047B8D0, local # Shift-JIS - .4byte 0x83438382 - .4byte 0x834B8347 - .4byte 0x838B0000 -.endobj lbl_8047B8D0 -.balign 4 -.obj lbl_8047B8DC, local # Shift-JIS - .4byte 0x837D838D - .4byte 0x834B8347 - .4byte 0x838B0000 -.endobj lbl_8047B8DC -.balign 4 -.obj lbl_8047B8E8, local # Shift-JIS - .4byte 0x83458357 - .4byte 0x83938352 - .4byte 0x818A0000 -.endobj lbl_8047B8E8 -.balign 4 -.obj lbl_8047B8F4, local # Shift-JIS - .4byte 0x83678372 - .4byte 0x83938352 - .4byte 0x00000000 -.endobj lbl_8047B8F4 -.balign 4 -.obj lbl_8047B900, local # Shift-JIS - .4byte 0x83458357 - .4byte 0x83938352 - .4byte 0x81890000 -.endobj lbl_8047B900 -.balign 4 -.obj lbl_8047B90C, local # Shift-JIS - .4byte 0x8388838D - .4byte 0x83438380 - .4byte 0x83560000 -.endobj lbl_8047B90C -.balign 4 -.obj lbl_8047B918, local # Shift-JIS - .4byte 0x834B8358 - .4byte 0x8371836F - .byte 0 -.endobj lbl_8047B918 -.balign 4 -.obj lbl_8047B924, local # Shift-JIS - .4byte 0x83548389 - .4byte 0x83438380 - .4byte 0x83560000 -.endobj lbl_8047B924 -.balign 4 -.obj lbl_8047B930, local # Shift-JIS - .4byte 0x8375835E - .4byte 0x83688362 - .4byte 0x834E838A - .byte 0 -.endobj lbl_8047B930 -.balign 4 -.obj lbl_8047B940, local # Shift-JIS - .4byte 0x837E8359 - .4byte 0x8375835E - .4byte 0x83688362 - .4byte 0x834E838A - .byte 0 -.endobj lbl_8047B940 -.balign 4 -.obj lbl_8047B954, local # Shift-JIS - .4byte 0x83668393 - .4byte 0x834C8380 - .4byte 0x83560000 -.endobj lbl_8047B954 -.balign 4 -.obj lbl_8047B960, local # Shift-JIS - .4byte 0x83748345 - .4byte 0x835A8393 - .4byte 0x83688362 - .4byte 0x834E838A - .byte 0 -.endobj lbl_8047B960 -.balign 4 -.obj lbl_8047B974, local # Shift-JIS - .4byte 0x834E8343 - .4byte 0x815B8393 - .4byte 0x83608383 - .4byte 0x83628373 - .4byte 0x815B0000 -.endobj lbl_8047B974 -.balign 4 -.obj lbl_8047B988, local # Shift-JIS - .4byte 0x83788372 - .4byte 0x815B8360 - .4byte 0x83838362 - .4byte 0x8373815B - .4byte 0x00000000 -.endobj lbl_8047B988 -.balign 4 -.obj lbl_8047B99C, local # Shift-JIS - .4byte 0x8349836A - .4byte 0x83548389 - .4byte 0x83430000 -.endobj lbl_8047B99C -.balign 4 -.obj lbl_8047B9A8, local # Shift-JIS - .4byte 0x8384834C - .4byte 0x83608383 - .4byte 0x83628373 - .4byte 0x815B0000 -.endobj lbl_8047B9A8 -.balign 4 -.obj lbl_8047B9B8, local # Shift-JIS - .4byte 0x83778372 - .4byte 0x834B8389 - .4byte 0x83580000 -.endobj lbl_8047B9B8 -.balign 4 -.obj lbl_8047B9C4, local # Shift-JIS - .4byte 0x834E837D - .4byte 0x83608383 - .4byte 0x83628373 - .4byte 0x815B0000 -.endobj lbl_8047B9C4 -.balign 4 -.obj lbl_8047B9D4, local # Shift-JIS - .4byte 0x836F834E - .4byte 0x835F8393 - .4byte 0x00000000 -.endobj lbl_8047B9D4 -.balign 4 -.obj lbl_8047B9E0, local # Shift-JIS - .4byte 0x836E8365 - .4byte 0x8369835E - .4byte 0x837D8353 - .4byte 0x00000000 -.endobj lbl_8047B9E0 -.balign 4 -.obj lbl_8047B9F0, local # Shift-JIS - .4byte 0x83708393 - .4byte 0x83828368 - .4byte 0x834C0000 -.endobj lbl_8047B9F0 -.balign 4 -.obj lbl_8047B9FC, local # Shift-JIS - .4byte 0x91E58370 - .4byte 0x83938382 - .4byte 0x8368834C - .4byte 0x00000000 -.endobj lbl_8047B9FC -.balign 4 -.obj lbl_8047BA0C, local # Shift-JIS - .4byte 0x83708393 - .4byte 0x83828368 - .4byte 0x834C9183 - .4byte 0x00000000 -.endobj lbl_8047BA0C -.balign 4 -.obj lbl_8047BA1C, local # Shift-JIS - .4byte 0x83748347 - .4byte 0x8374834C - .4byte 0x00000000 -.endobj lbl_8047BA1C -.balign 4 -.obj lbl_8047BA28, local # Shift-JIS - .4byte 0x835E8393 - .4byte 0x837C837C - .4byte 0x00000000 -.endobj lbl_8047BA28 -.balign 4 -.obj lbl_8047BA34, local # Shift-JIS - .4byte 0x834E838D - .4byte 0x815B836F - .4byte 0x815B0000 -.endobj lbl_8047BA34 -.balign 4 -.obj lbl_8047BA40, local # Shift-JIS - .4byte 0x8371834A - .4byte 0x838A834C - .4byte 0x836D8352 - .4byte 0x00000000 -.endobj lbl_8047BA40 -.balign 4 -.obj lbl_8047BA50, local # Shift-JIS - .4byte 0x82A882A8 - .4byte 0x82A282CA - .4byte 0x82D382AE - .4byte 0x82E88169 - .4byte 0x8FAC816A - .4byte 0x00000000 -.endobj lbl_8047BA50 -.balign 4 -.obj lbl_8047BA68, local # Shift-JIS - .4byte 0x8CCD82EA - .4byte 0x82A882A8 - .4byte 0x82A282CA - .4byte 0x82D382AE - .4byte 0x82E88169 - .4byte 0x8FAC816A - .4byte 0x00000000 -.endobj lbl_8047BA68 -.balign 4 -.obj lbl_8047BA84, local # Shift-JIS - .4byte 0x82A882A8 - .4byte 0x82A282CA - .4byte 0x82D382AE - .4byte 0x82E88169 - .4byte 0x91E5816A - .4byte 0x00000000 -.endobj lbl_8047BA84 -.balign 4 -.obj lbl_8047BA9C, local # Shift-JIS - .4byte 0x8CCD82EA - .4byte 0x82A882A8 - .4byte 0x82A282CA - .4byte 0x82D382AE - .4byte 0x82E88169 - .4byte 0x91E5816A - .4byte 0x00000000 -.endobj lbl_8047BA9C -.balign 4 -.obj lbl_8047BAB8, local # Shift-JIS - .4byte 0x8EE189E8 - .4byte 0x81698FAC - .4byte 0x816A0000 -.endobj lbl_8047BAB8 -.balign 4 -.obj lbl_8047BAC4, local # Shift-JIS - .4byte 0x8EE189E8 - .4byte 0x816991E5 - .4byte 0x816A0000 -.endobj lbl_8047BAC4 -.balign 4 -.obj lbl_8047BAD0, local # Shift-JIS - .4byte 0x90D4835F - .4byte 0x83438349 - .4byte 0x815B8368 - .byte 0 -.endobj lbl_8047BAD0 -.balign 4 -.obj lbl_8047BAE0, local # Shift-JIS - .4byte 0x90C2835F - .4byte 0x83438349 - .4byte 0x815B8368 - .byte 0 -.endobj lbl_8047BAE0 -.balign 4 -.obj lbl_8047BAF0, local # Shift-JIS - .4byte 0x837D815B - .4byte 0x834B838C - .4byte 0x83628367 - .byte 0 -.endobj lbl_8047BAF0 -.balign 4 -.obj lbl_8047BB00, local # Shift-JIS - .4byte 0x82CB82B1 - .4byte 0x82B682E1 - .4byte 0x82E782B5 - .byte 0 -.endobj lbl_8047BB00 -.balign 4 -.obj lbl_8047BB10, local # Shift-JIS - .4byte 0x82BA82F1 - .4byte 0x82DC82A2 - .byte 0 -.endobj lbl_8047BB10 -.balign 4 -.obj lbl_8047BB1C, local # Shift-JIS - .4byte 0x834C8393 - .4byte 0x834F8360 - .4byte 0x83838362 - .4byte 0x8373815B - .byte 0 -.endobj lbl_8047BB1C -.balign 4 -.obj lbl_8047BB30, local # Shift-JIS - .4byte 0x837E8345 - .4byte 0x838A8393 - .byte 0 -.endobj lbl_8047BB30 -.balign 4 -.obj lbl_8047BB3C, local # Shift-JIS - .4byte 0x83748345 - .4byte 0x835A8393 - .4byte 0x836E8369 - .4byte 0x83608389 - .4byte 0x83560000 -.endobj lbl_8047BB3C -.balign 4 -.obj lbl_8047BB50, local # Shift-JIS - .4byte 0x835F837D - .4byte 0x834F8382 - .byte 0 -.endobj lbl_8047BB50 -.balign 4 -.obj lbl_8047BB5C, local # Shift-JIS - .4byte 0x834E8389 - .4byte 0x83518368 - .4byte 0x8362834E - .4byte 0x838A0000 -.endobj lbl_8047BB5C -.balign 4 -.obj lbl_8047BB6C, local # Shift-JIS - .4byte 0x836F834E - .4byte 0x835F8393 - .4byte 0x83548389 - .4byte 0x83430000 -.endobj lbl_8047BB6C -.balign 4 -.obj lbl_8047BB7C, local # Shift-JIS - .4byte 0x89CE8349 - .4byte 0x835E834A - .4byte 0x83898380 - .4byte 0x83560000 -.endobj lbl_8047BB7C -.balign 4 -.obj lbl_8047BB8C, local # Shift-JIS - .4byte 0x90858349 - .4byte 0x835E834A - .4byte 0x83898380 - .4byte 0x83560000 -.endobj lbl_8047BB8C -.balign 4 -.obj lbl_8047BB9C, local # Shift-JIS - .4byte 0x834B8358 - .4byte 0x8349835E - .4byte 0x834A8389 - .4byte 0x83808356 - .byte 0 -.endobj lbl_8047BB9C -.balign 4 -.obj lbl_8047BBB0, local # Shift-JIS - .4byte 0x93648B43 - .4byte 0x8349835E - .4byte 0x834A8389 - .4byte 0x83808356 - .byte 0 -.endobj lbl_8047BBB0 -.balign 4 -.obj lbl_8047BBC4, local # Shift-JIS - .4byte 0x949A9265 - .4byte 0x8349835E - .4byte 0x834A8389 - .4byte 0x83808356 - .byte 0 -.endobj lbl_8047BBC4 -.balign 4 -.obj lbl_8047BBD8, local # Shift-JIS - .4byte 0x8357834F - .4byte 0x83829183 - .byte 0 -.endobj lbl_8047BBD8 -.balign 4 -.obj lbl_8047BBE4, local # Shift-JIS - .4byte 0x83438382 - .4byte 0x83808356 - .byte 0 -.endobj lbl_8047BBE4 -.balign 4 -.obj lbl_8047BBF0, local # Shift-JIS - .4byte 0x837A8345 - .4byte 0x835F8343 - .4byte 0x835F837D - .4byte 0x834F8382 - .byte 0 -.endobj lbl_8047BBF0 -.balign 4 -.obj lbl_8047BC04, local # Shift-JIS - .4byte 0x836E8362 - .4byte 0x83708360 - .4byte 0x83838362 - .4byte 0x8373815B - .byte 0 -.endobj lbl_8047BC04 -.balign 4 -.obj lbl_8047BC18, local # Shift-JIS - .4byte 0x835E837D - .4byte 0x83538380 - .4byte 0x83560000 -.endobj lbl_8047BC18 -.balign 4 -.obj lbl_8047BC24, local # Shift-JIS - .4byte 0x83498349 - .4byte 0x83418356 - .4byte 0x835F837D - .4byte 0x834F8382 - .byte 0 -.endobj lbl_8047BC24 -.balign 4 -.obj lbl_8047BC38, local # Shift-JIS - .4byte 0x83778372 - .4byte 0x834B8389 - .4byte 0x83589153 - .4byte 0x90670000 -.endobj lbl_8047BC38 -.balign 4 -.obj lbl_8047BC48, local # Shift-JIS - .4byte 0x8345837E - .4byte 0x83808356 - .byte 0 -.endobj lbl_8047BC48 -.balign 4 -.obj lbl_8047BC54, local # Shift-JIS - .4byte 0x96DA82C8 - .4byte 0x82B58345 - .4byte 0x837E8380 - .4byte 0x83560000 -.endobj lbl_8047BC54 -.balign 4 -.obj lbl_8047BC64, local # Shift-JIS - .4byte 0x8349836A - .4byte 0x834E8389 - .4byte 0x83510000 -.endobj lbl_8047BC64 -.balign 4 -.obj lbl_8047BC70, local # Shift-JIS - .4byte 0x83498349 - .4byte 0x8349835E - .4byte 0x834A8389 - .4byte 0x83808356 - .byte 0 -.endobj lbl_8047BC70 -.balign 4 -.obj lbl_8047BC84, local # Shift-JIS - .4byte 0x834F838A - .4byte 0x815B8393 - .4byte 0x834A8375 - .4byte 0x83679763 - .4byte 0x928E0000 -.endobj lbl_8047BC84 -.balign 4 -.obj lbl_8047BC98, local # Shift-JIS - .4byte 0x838C8362 - .4byte 0x8368834A - .4byte 0x83758367 - .4byte 0x9763928E - .byte 0 -.endobj lbl_8047BC98 -.balign 4 -.obj lbl_8047BCAC, local # Shift-JIS - .4byte 0x8CC592E8 - .4byte 0x834A8375 - .4byte 0x83679763 - .4byte 0x928E0000 -.endobj lbl_8047BCAC -.balign 4 -.obj lbl_8047BCBC, local # Shift-JIS - .4byte 0x834E837D - .4byte 0x83528360 - .4byte 0x83838362 - .4byte 0x8373815B - .byte 0 -.endobj lbl_8047BCBC -.balign 4 -.obj lbl_8047BCD0, local # Shift-JIS - .4byte 0x83568357 - .4byte 0x837E92B1 - .byte 0 -.endobj lbl_8047BCD0 -.balign 4 -.obj lbl_8047BCDC, local # Shift-JIS - .4byte 0x83608372 - .4byte 0x837A8345 - .4byte 0x835F8343 - .byte 0 -.endobj lbl_8047BCDC -.balign 4 -.obj lbl_8047BCEC, local # Shift-JIS - .4byte 0x8CC592E8 - .4byte 0x83608372 - .4byte 0x837A8345 - .4byte 0x835F8343 - .byte 0 -.endobj lbl_8047BCEC -.balign 4 -.obj lbl_8047BD00, local # Shift-JIS - .4byte 0x835C8362 - .4byte 0x834E838A - .byte 0 -.endobj lbl_8047BD00 -.balign 4 -.obj lbl_8047BD0C, local # Shift-JIS - .4byte 0x836E8369 - .4byte 0x83688362 - .4byte 0x834E838A - .byte 0 -.endobj lbl_8047BD0C -.balign 4 -.obj lbl_8047BD1C, local # Shift-JIS - .4byte 0x8D9582A2 - .4byte 0x906C835E - .4byte 0x83438384 - .byte 0 -.endobj lbl_8047BD1C -.balign 4 -.obj lbl_8047BD2C, local # Shift-JIS - .4byte 0x835F8393 - .4byte 0x83538380 - .4byte 0x83560000 -.endobj lbl_8047BD2C -.balign 4 -.obj lbl_8047BD38, local - .asciz "PelletInitArg" -.endobj lbl_8047BD38 - -.section .data, "wa" # 0x8049E220 - 0x804EFC20 -.balign 8 -.obj lbl_804ADA18, local - .4byte .L_80125970 - .4byte .L_80125990 - .4byte .L_801259FC - .4byte .L_80125A68 - .4byte .L_80125A8C - .4byte .L_80125AB0 - .4byte .L_80125AD4 - .4byte .L_80125AF8 - .4byte .L_80125B1C - .4byte .L_80125B40 - .4byte .L_80125B64 - .4byte .L_80125B88 - .4byte .L_80125BF4 - .4byte .L_80125C3C - .4byte .L_80125C18 - .4byte .L_80125C60 - .4byte .L_80125C84 - .4byte .L_80125BAC - .4byte .L_80125BD0 - .4byte .L_80125CA4 - .4byte .L_80125CC4 - .4byte .L_80125CE8 - .4byte .L_80125D0C - .4byte .L_80125D2C - .4byte .L_80125D50 - .4byte .L_80125D74 - .4byte .L_80125D98 - .4byte .L_80125DBC - .4byte .L_80125DE0 - .4byte .L_80125E04 - .4byte .L_80125E28 - .4byte .L_80125E4C - .4byte .L_80125E70 - .4byte .L_80125E94 - .4byte .L_80125EB8 - .4byte .L_80125EDC - .4byte .L_80125F00 - .4byte .L_80125F24 - .4byte .L_80125F48 - .4byte .L_80125F90 - .4byte .L_80125F6C - .4byte .L_80125FB4 - .4byte .L_80125A20 - .4byte .L_80125A44 - .4byte .L_801259B4 - .4byte .L_801259D8 - .4byte .L_80125FD8 - .4byte .L_80126020 - .4byte .L_80126044 - .4byte .L_80126068 - .4byte .L_801260B0 - .4byte .L_801260F8 - .4byte .L_8012611C - .4byte .L_8012623C - .4byte .L_80126260 - .4byte .L_80126284 - .4byte .L_801262A8 - .4byte .L_801262CC - .4byte .L_801262F0 - .4byte .L_80126314 - .4byte .L_80126338 - .4byte .L_8012635C - .4byte .L_80126380 - .4byte .L_801263C8 - .4byte .L_801263EC - .4byte .L_80126410 - .4byte .L_80126434 - .4byte .L_80126458 - .4byte .L_8012647C - .4byte .L_801264A0 - .4byte .L_801264C4 - .4byte .L_801264E8 - .4byte .L_80126530 - .4byte .L_80126554 - .4byte .L_80126728 - .4byte .L_80126578 - .4byte .L_801265E4 - .4byte .L_80126608 - .4byte .L_8012662C - .4byte .L_80126674 - .4byte .L_80126140 - .4byte .L_80125FFC - .4byte .L_80126728 - .4byte .L_80126728 - .4byte .L_80126698 - .4byte .L_80126164 - .4byte .L_80126188 - .4byte .L_801261AC - .4byte .L_801261D0 - .4byte .L_801261F4 - .4byte .L_80126218 - .4byte .L_8012608C - .4byte .L_801260D4 - .4byte .L_801263A4 - .4byte .L_80126704 - .4byte .L_8012659C - .4byte .L_801265C0 - .4byte .L_80126650 - .4byte .L_801266E0 - .4byte .L_801266BC - .4byte .L_80126728 - .4byte .L_8012650C -.endobj lbl_804ADA18 -.obj __vt__Q24Game18EnemyGeneratorBase, weak - .4byte 0 - .4byte 0 - .4byte __dt__Q24Game18EnemyGeneratorBaseFv - .4byte getChildCount__5CNodeFv - .4byte doWrite__Q24Game18EnemyGeneratorBaseFR6Stream - .4byte doRead__Q24Game18EnemyGeneratorBaseFR6Stream - .4byte getLatestVersion__Q24Game18EnemyGeneratorBaseFv - .4byte draw__Q24Game18EnemyGeneratorBaseFR8GraphicsPQ24Game9Generator - .4byte getInitialParam__Q24Game18EnemyGeneratorBaseFv -.endobj __vt__Q24Game18EnemyGeneratorBase -.obj __vt__Q24Game6GenArg, weak - .4byte 0 - .4byte 0 - .4byte getName__Q24Game6GenArgFv -.endobj __vt__Q24Game6GenArg -.obj __vt__Q24Game14GenObjectEnemy, global - .4byte 0 - .4byte 0 - .4byte doWrite__Q24Game14GenObjectEnemyFR6Stream - .4byte ramSaveParameters__Q24Game14GenObjectEnemyFR6Stream - .4byte ramLoadParameters__Q24Game14GenObjectEnemyFR6Stream - .4byte doEvent__Q24Game7GenBaseFUl - .4byte doRead__Q24Game14GenObjectEnemyFR6Stream - .4byte update__Q24Game9GenObjectFPQ24Game9Generator - .4byte render__Q24Game14GenObjectEnemyFR8GraphicsPQ24Game9Generator - .4byte getLatestVersion__Q24Game9GenObjectFv - .4byte getShape__Q24Game14GenObjectEnemyFv - .4byte updateUseList__Q24Game14GenObjectEnemyFPQ24Game9Generatori - .4byte generate__Q24Game14GenObjectEnemyFPQ24Game9Generator - .4byte birth__Q24Game14GenObjectEnemyFPQ24Game6GenArg - .4byte "generatorMakeMatrix__Q24Game9GenObjectFR7MatrixfR10Vector3" - .4byte getDebugInfo__Q24Game9GenObjectFPc -.endobj __vt__Q24Game14GenObjectEnemy - -.section .sdata2, "a" # 0x80516360 - 0x80520E40 -.balign 8 -.obj lbl_80517EA8, local - .float 100.0 -.endobj lbl_80517EA8 -.obj lbl_80517EAC, local - .float 0.0 -.endobj lbl_80517EAC -.obj lbl_80517EB0, local - .float 32768.0 -.endobj lbl_80517EB0 -.obj lbl_80517EB4, local # tau - .float 6.2831855 -.endobj lbl_80517EB4 -.obj lbl_80517EB8, local - .float 35.0 -.endobj lbl_80517EB8 -.obj lbl_80517EBC, local - .float 1.0 -.endobj lbl_80517EBC -.obj lbl_80517EC0, local - .float 0.5 -.endobj lbl_80517EC0 -.balign 8 -.obj lbl_80517EC8, local - .8byte 0x4330000080000000 -.endobj lbl_80517EC8 -.obj lbl_80517ED0, local # pi - .float 3.1415927 -.endobj lbl_80517ED0 -.obj lbl_80517ED4, local # 1/180 - .float 0.0055555557 -.endobj lbl_80517ED4 -.balign 4 -.obj lbl_80517ED8, local - .asciz "teki" -.endobj lbl_80517ED8 -.balign 4 -.obj lbl_80517EE0, local # Shift-JIS - .4byte 0x8352834B - .4byte 0x836C0000 -.endobj lbl_80517EE0 -.balign 4 -.obj lbl_80517EE8, local # Shift-JIS - .4byte 0x8371836F - .byte 0 -.endobj lbl_80517EE8 -.balign 4 -.obj lbl_80517EF0, local # Shift-JIS - .4byte 0x8369837D - .4byte 0x83590000 -.endobj lbl_80517EF0 -.balign 4 -.obj lbl_80517EF8, local # Shift-JIS - .4byte 0x8349835E - .4byte 0x837D0000 -.endobj lbl_80517EF8 -.balign 4 -.obj lbl_80517F00, local # Shift-JIS - .4byte 0x82ED82BD - .4byte 0x82B00000 -.endobj lbl_80517F00 -.balign 4 -.obj lbl_80517F08, local # Shift-JIS - .4byte 0x82C282AD - .4byte 0x82B50000 -.endobj lbl_80517F08 -.balign 4 -.obj lbl_80517F10, local # Shift-JIS - .4byte 0x90E791E3 - .4byte 0x8E860000 -.endobj lbl_80517F10 -.balign 4 -.obj lbl_80517F18, local # Shift-JIS - .4byte 0x8357834F - .4byte 0x83820000 -.endobj lbl_80517F18 -.balign 4 -.obj lbl_80517F20, local # Shift-JIS - .4byte 0x8D9582A2 - .4byte 0x906C0000 -.endobj lbl_80517F20 -.balign 4 -.obj lbl_80517F28, local # Shift-JIS - .4byte 0x96A2936F - .4byte 0x985E0000 -.endobj lbl_80517F28 -.balign 4 -.obj lbl_80517F30, local - .float 50.0 -.endobj lbl_80517F30 -.obj lbl_80517F34, local - .float 10.0 -.endobj lbl_80517F34 -.obj lbl_80517F38, local - .float 40.0 -.endobj lbl_80517F38 -.obj lbl_80517F3C, local - .float -10.0 -.endobj lbl_80517F3C -.balign 4 -.obj lbl_80517F40, local - .asciz "%s x %d" -.endobj lbl_80517F40 -.balign 4 -.obj lbl_80517F48, local - .asciz "GenArg" -.endobj lbl_80517F48 - -.section .text, "ax" # 0x800056C0 - 0x80472F00 -.fn makeObjectEnemy__4GameFv, local -/* 80124778 001216B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8012477C 001216BC 7C 08 02 A6 */ mflr r0 -/* 80124780 001216C0 38 60 00 50 */ li r3, 0x50 -/* 80124784 001216C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80124788 001216C8 4B EF F7 1D */ bl __nw__FUl -/* 8012478C 001216CC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80124790 001216D0 41 82 00 10 */ beq .L_801247A0 -/* 80124794 001216D4 38 80 00 01 */ li r4, 1 -/* 80124798 001216D8 48 00 00 1D */ bl __ct__Q24Game14GenObjectEnemyFv -/* 8012479C 001216DC 7C 60 1B 78 */ mr r0, r3 -.L_801247A0: -/* 801247A0 001216E0 7C 03 03 78 */ mr r3, r0 -/* 801247A4 001216E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801247A8 001216E8 7C 08 03 A6 */ mtlr r0 -/* 801247AC 001216EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 801247B0 001216F0 4E 80 00 20 */ blr -.endfn makeObjectEnemy__4GameFv - -.fn __ct__Q24Game14GenObjectEnemyFv, global -/* 801247B4 001216F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801247B8 001216F8 7C 08 02 A6 */ mflr r0 -/* 801247BC 001216FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 801247C0 00121700 7C 80 07 35 */ extsh. r0, r4 -/* 801247C4 00121704 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801247C8 00121708 7C 7F 1B 78 */ mr r31, r3 -/* 801247CC 0012170C 41 82 00 0C */ beq .L_801247D8 -/* 801247D0 00121710 38 1F 00 4D */ addi r0, r31, 0x4d -/* 801247D4 00121714 90 1F 00 00 */ stw r0, 0(r31) -.L_801247D8: -/* 801247D8 00121718 3C 80 80 48 */ lis r4, lbl_8047B75C@ha -/* 801247DC 0012171C 3C 60 80 48 */ lis r3, lbl_8047B768@ha -/* 801247E0 00121720 38 C4 B7 5C */ addi r6, r4, lbl_8047B75C@l -/* 801247E4 00121724 3C 80 74 65 */ lis r4, 0x74656B69@ha -/* 801247E8 00121728 38 E3 B7 68 */ addi r7, r3, lbl_8047B768@l -/* 801247EC 0012172C 38 A4 6B 69 */ addi r5, r4, 0x74656B69@l -/* 801247F0 00121730 7F E3 FB 78 */ mr r3, r31 -/* 801247F4 00121734 38 80 00 00 */ li r4, 0 -/* 801247F8 00121738 48 08 5E ED */ bl __ct__Q24Game7GenBaseFUlPcPc -/* 801247FC 0012173C 3C 80 80 4B */ lis r4, __vt__Q24Game9GenObject@ha -/* 80124800 00121740 3C 60 80 4B */ lis r3, __vt__Q24Game14GenObjectEnemy@ha -/* 80124804 00121744 38 04 56 3C */ addi r0, r4, __vt__Q24Game9GenObject@l -/* 80124808 00121748 38 80 00 00 */ li r4, 0 -/* 8012480C 0012174C 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80124810 00121750 38 63 DB E0 */ addi r3, r3, __vt__Q24Game14GenObjectEnemy@l -/* 80124814 00121754 38 00 00 01 */ li r0, 1 -/* 80124818 00121758 C0 22 9B 48 */ lfs f1, lbl_80517EA8@sda21(r2) -/* 8012481C 0012175C 90 7F 00 0C */ stw r3, 0xc(r31) -/* 80124820 00121760 38 7F 00 3C */ addi r3, r31, 0x3c -/* 80124824 00121764 C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 80124828 00121768 90 9F 00 24 */ stw r4, 0x24(r31) -/* 8012482C 0012176C 98 1F 00 28 */ stb r0, 0x28(r31) -/* 80124830 00121770 98 9F 00 29 */ stb r4, 0x29(r31) -/* 80124834 00121774 B0 1F 00 2A */ sth r0, 0x2a(r31) -/* 80124838 00121778 D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 8012483C 0012177C D0 1F 00 30 */ stfs f0, 0x30(r31) -/* 80124840 00121780 D0 1F 00 34 */ stfs f0, 0x34(r31) -/* 80124844 00121784 B0 9F 00 38 */ sth r4, 0x38(r31) -/* 80124848 00121788 48 00 9B 05 */ bl __ct__Q24Game15EnemyPelletInfoFv -/* 8012484C 0012178C 38 00 00 00 */ li r0, 0 -/* 80124850 00121790 7F E3 FB 78 */ mr r3, r31 -/* 80124854 00121794 90 1F 00 48 */ stw r0, 0x48(r31) -/* 80124858 00121798 98 1F 00 4C */ stb r0, 0x4c(r31) -/* 8012485C 0012179C 48 00 10 D1 */ bl createEnemyGenerator__Q24Game14GenObjectEnemyFv -/* 80124860 001217A0 88 1F 00 4C */ lbz r0, 0x4c(r31) -/* 80124864 001217A4 7F E3 FB 78 */ mr r3, r31 -/* 80124868 001217A8 60 00 00 01 */ ori r0, r0, 1 -/* 8012486C 001217AC 98 1F 00 4C */ stb r0, 0x4c(r31) -/* 80124870 001217B0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80124874 001217B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80124878 001217B8 7C 08 03 A6 */ mtlr r0 -/* 8012487C 001217BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80124880 001217C0 4E 80 00 20 */ blr -.endfn __ct__Q24Game14GenObjectEnemyFv - -.fn initialise__Q24Game14GenObjectEnemyFv, global -/* 80124884 001217C4 81 0D 93 A0 */ lwz r8, factory__Q24Game16GenObjectFactory@sda21(r13) -/* 80124888 001217C8 80 A8 00 00 */ lwz r5, 0(r8) -/* 8012488C 001217CC 80 08 00 04 */ lwz r0, 4(r8) -/* 80124890 001217D0 7C 05 00 00 */ cmpw r5, r0 -/* 80124894 001217D4 4C 80 00 20 */ bgelr -/* 80124898 001217D8 3C 80 74 65 */ lis r4, 0x74656B69@ha -/* 8012489C 001217DC 80 68 00 08 */ lwz r3, 8(r8) -/* 801248A0 001217E0 38 84 6B 69 */ addi r4, r4, 0x74656B69@l -/* 801248A4 001217E4 54 A0 20 36 */ slwi r0, r5, 4 -/* 801248A8 001217E8 7C 83 01 2E */ stwx r4, r3, r0 -/* 801248AC 001217EC 3C A0 80 12 */ lis r5, makeObjectEnemy__4GameFv@ha -/* 801248B0 001217F0 3C 80 80 48 */ lis r4, lbl_8047B774@ha -/* 801248B4 001217F4 3C 60 30 30 */ lis r3, 0x30303035@ha -/* 801248B8 001217F8 80 08 00 00 */ lwz r0, 0(r8) -/* 801248BC 001217FC 38 E5 47 78 */ addi r7, r5, makeObjectEnemy__4GameFv@l -/* 801248C0 00121800 80 C8 00 08 */ lwz r6, 8(r8) -/* 801248C4 00121804 38 A4 B7 74 */ addi r5, r4, lbl_8047B774@l -/* 801248C8 00121808 54 00 20 36 */ slwi r0, r0, 4 -/* 801248CC 0012180C 38 83 30 35 */ addi r4, r3, 0x30303035@l -/* 801248D0 00121810 7C 66 02 14 */ add r3, r6, r0 -/* 801248D4 00121814 90 E3 00 04 */ stw r7, 4(r3) -/* 801248D8 00121818 80 08 00 00 */ lwz r0, 0(r8) -/* 801248DC 0012181C 80 68 00 08 */ lwz r3, 8(r8) -/* 801248E0 00121820 54 00 20 36 */ slwi r0, r0, 4 -/* 801248E4 00121824 7C 63 02 14 */ add r3, r3, r0 -/* 801248E8 00121828 90 A3 00 08 */ stw r5, 8(r3) -/* 801248EC 0012182C 80 08 00 00 */ lwz r0, 0(r8) -/* 801248F0 00121830 80 68 00 08 */ lwz r3, 8(r8) -/* 801248F4 00121834 54 00 20 36 */ slwi r0, r0, 4 -/* 801248F8 00121838 7C 63 02 14 */ add r3, r3, r0 -/* 801248FC 0012183C 90 83 00 0C */ stw r4, 0xc(r3) -/* 80124900 00121840 80 68 00 00 */ lwz r3, 0(r8) -/* 80124904 00121844 38 03 00 01 */ addi r0, r3, 1 -/* 80124908 00121848 90 08 00 00 */ stw r0, 0(r8) -/* 8012490C 0012184C 4E 80 00 20 */ blr -.endfn initialise__Q24Game14GenObjectEnemyFv - -.fn ramSaveParameters__Q24Game14GenObjectEnemyFR6Stream, global -/* 80124910 00121850 4E 80 00 20 */ blr -.endfn ramSaveParameters__Q24Game14GenObjectEnemyFR6Stream - -.fn ramLoadParameters__Q24Game14GenObjectEnemyFR6Stream, global -/* 80124914 00121854 4E 80 00 20 */ blr -.endfn ramLoadParameters__Q24Game14GenObjectEnemyFR6Stream - -.fn generate__Q24Game14GenObjectEnemyFPQ24Game9Generator, global -/* 80124918 00121858 94 21 FE 50 */ stwu r1, -0x1b0(r1) -/* 8012491C 0012185C 7C 08 02 A6 */ mflr r0 -/* 80124920 00121860 90 01 01 B4 */ stw r0, 0x1b4(r1) -/* 80124924 00121864 DB E1 01 A0 */ stfd f31, 0x1a0(r1) -/* 80124928 00121868 F3 E1 01 A8 */ psq_st f31, 424(r1), 0, qr0 -/* 8012492C 0012186C DB C1 01 90 */ stfd f30, 0x190(r1) -/* 80124930 00121870 F3 C1 01 98 */ psq_st f30, 408(r1), 0, qr0 -/* 80124934 00121874 DB A1 01 80 */ stfd f29, 0x180(r1) -/* 80124938 00121878 F3 A1 01 88 */ psq_st f29, 392(r1), 0, qr0 -/* 8012493C 0012187C DB 81 01 70 */ stfd f28, 0x170(r1) -/* 80124940 00121880 F3 81 01 78 */ psq_st f28, 376(r1), 0, qr0 -/* 80124944 00121884 DB 61 01 60 */ stfd f27, 0x160(r1) -/* 80124948 00121888 F3 61 01 68 */ psq_st f27, 360(r1), 0, qr0 -/* 8012494C 0012188C DB 41 01 50 */ stfd f26, 0x150(r1) -/* 80124950 00121890 F3 41 01 58 */ psq_st f26, 344(r1), 0, qr0 -/* 80124954 00121894 BE 81 01 20 */ stmw r20, 0x120(r1) -/* 80124958 00121898 C0 24 00 94 */ lfs f1, 0x94(r4) -/* 8012495C 0012189C 7C 9B 23 78 */ mr r27, r4 -/* 80124960 001218A0 C0 04 00 A0 */ lfs f0, 0xa0(r4) -/* 80124964 001218A4 7C 7A 1B 78 */ mr r26, r3 -/* 80124968 001218A8 C0 7B 00 98 */ lfs f3, 0x98(r27) -/* 8012496C 001218AC 3C 60 80 12 */ lis r3, "__ct__10Vector3Fv"@ha -/* 80124970 001218B0 EF E1 00 2A */ fadds f31, f1, f0 -/* 80124974 001218B4 C0 5B 00 A4 */ lfs f2, 0xa4(r27) -/* 80124978 001218B8 C0 3B 00 9C */ lfs f1, 0x9c(r27) -/* 8012497C 001218BC 38 83 F3 48 */ addi r4, r3, "__ct__10Vector3Fv"@l -/* 80124980 001218C0 C0 1B 00 A8 */ lfs f0, 0xa8(r27) -/* 80124984 001218C4 EF C3 10 2A */ fadds f30, f3, f2 -/* 80124988 001218C8 80 FB 00 74 */ lwz r7, 0x74(r27) -/* 8012498C 001218CC EF A1 00 2A */ fadds f29, f1, f0 -/* 80124990 001218D0 A8 1A 00 2A */ lha r0, 0x2a(r26) -/* 80124994 001218D4 38 61 00 90 */ addi r3, r1, 0x90 -/* 80124998 001218D8 38 A0 00 00 */ li r5, 0 -/* 8012499C 001218DC 38 C0 00 0C */ li r6, 0xc -/* 801249A0 001218E0 7F A7 00 50 */ subf r29, r7, r0 -/* 801249A4 001218E4 38 E0 00 0A */ li r7, 0xa -/* 801249A8 001218E8 4B F9 CE 95 */ bl __construct_array -/* 801249AC 001218EC 3C 80 80 12 */ lis r4, "__ct__10Vector3Fv"@ha -/* 801249B0 001218F0 38 61 00 18 */ addi r3, r1, 0x18 -/* 801249B4 001218F4 38 84 F3 48 */ addi r4, r4, "__ct__10Vector3Fv"@l -/* 801249B8 001218F8 38 A0 00 00 */ li r5, 0 -/* 801249BC 001218FC 38 C0 00 0C */ li r6, 0xc -/* 801249C0 00121900 38 E0 00 0A */ li r7, 0xa -/* 801249C4 00121904 4B F9 CE 79 */ bl __construct_array -/* 801249C8 00121908 3B E1 00 90 */ addi r31, r1, 0x90 -/* 801249CC 0012190C 3A C0 00 00 */ li r22, 0 -/* 801249D0 00121910 7F FC FB 78 */ mr r28, r31 -/* 801249D4 00121914 48 00 00 D4 */ b .L_80124AA8 -.L_801249D8: -/* 801249D8 00121918 88 1A 00 28 */ lbz r0, 0x28(r26) -/* 801249DC 0012191C 28 00 00 01 */ cmplwi r0, 1 -/* 801249E0 00121920 40 82 00 14 */ bne .L_801249F4 -/* 801249E4 00121924 D3 FC 00 00 */ stfs f31, 0(r28) -/* 801249E8 00121928 D3 DC 00 04 */ stfs f30, 4(r28) -/* 801249EC 0012192C D3 BC 00 08 */ stfs f29, 8(r28) -/* 801249F0 00121930 48 00 00 B0 */ b .L_80124AA0 -.L_801249F4: -/* 801249F4 00121934 4B FA 4B AD */ bl rand -/* 801249F8 00121938 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 801249FC 0012193C 3C 00 43 30 */ lis r0, 0x4330 -/* 80124A00 00121940 90 61 01 0C */ stw r3, 0x10c(r1) -/* 80124A04 00121944 C8 62 9B 68 */ lfd f3, lbl_80517EC8@sda21(r2) -/* 80124A08 00121948 90 01 01 08 */ stw r0, 0x108(r1) -/* 80124A0C 0012194C C0 22 9B 50 */ lfs f1, lbl_80517EB0@sda21(r2) -/* 80124A10 00121950 C8 41 01 08 */ lfd f2, 0x108(r1) -/* 80124A14 00121954 C0 02 9B 54 */ lfs f0, lbl_80517EB4@sda21(r2) -/* 80124A18 00121958 EC 42 18 28 */ fsubs f2, f2, f3 -/* 80124A1C 0012195C EC 22 08 24 */ fdivs f1, f2, f1 -/* 80124A20 00121960 EF 40 00 72 */ fmuls f26, f0, f1 -/* 80124A24 00121964 4B FA 4B 7D */ bl rand -/* 80124A28 00121968 6C 63 80 00 */ xoris r3, r3, 0x8000 -/* 80124A2C 0012196C 3C 00 43 30 */ lis r0, 0x4330 -/* 80124A30 00121970 90 61 01 14 */ stw r3, 0x114(r1) -/* 80124A34 00121974 FC 20 D0 90 */ fmr f1, f26 -/* 80124A38 00121978 C8 82 9B 68 */ lfd f4, lbl_80517EC8@sda21(r2) -/* 80124A3C 0012197C 90 01 01 10 */ stw r0, 0x110(r1) -/* 80124A40 00121980 C0 42 9B 50 */ lfs f2, lbl_80517EB0@sda21(r2) -/* 80124A44 00121984 C8 61 01 10 */ lfd f3, 0x110(r1) -/* 80124A48 00121988 C0 1A 00 2C */ lfs f0, 0x2c(r26) -/* 80124A4C 0012198C EC 63 20 28 */ fsubs f3, f3, f4 -/* 80124A50 00121990 EC 43 10 24 */ fdivs f2, f3, f2 -/* 80124A54 00121994 EF 80 00 B2 */ fmuls f28, f0, f2 -/* 80124A58 00121998 48 2E CD 41 */ bl pikmin2_cosf__Ff -/* 80124A5C 0012199C EF 7C 00 72 */ fmuls f27, f28, f1 -/* 80124A60 001219A0 FC 20 D0 90 */ fmr f1, f26 -/* 80124A64 001219A4 48 2E CC CD */ bl pikmin2_sinf__Ff -/* 80124A68 001219A8 EC 3C 00 72 */ fmuls f1, f28, f1 -/* 80124A6C 001219AC C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 80124A70 001219B0 D0 3C 00 00 */ stfs f1, 0(r28) -/* 80124A74 001219B4 D0 1C 00 04 */ stfs f0, 4(r28) -/* 80124A78 001219B8 D3 7C 00 08 */ stfs f27, 8(r28) -/* 80124A7C 001219BC C0 1C 00 00 */ lfs f0, 0(r28) -/* 80124A80 001219C0 C0 3C 00 04 */ lfs f1, 4(r28) -/* 80124A84 001219C4 EC 00 F8 2A */ fadds f0, f0, f31 -/* 80124A88 001219C8 C0 5C 00 08 */ lfs f2, 8(r28) -/* 80124A8C 001219CC EC 21 F0 2A */ fadds f1, f1, f30 -/* 80124A90 001219D0 EC 42 E8 2A */ fadds f2, f2, f29 -/* 80124A94 001219D4 D0 1C 00 00 */ stfs f0, 0(r28) -/* 80124A98 001219D8 D0 3C 00 04 */ stfs f1, 4(r28) -/* 80124A9C 001219DC D0 5C 00 08 */ stfs f2, 8(r28) -.L_80124AA0: -/* 80124AA0 001219E0 3B 9C 00 0C */ addi r28, r28, 0xc -/* 80124AA4 001219E4 3A D6 00 01 */ addi r22, r22, 1 -.L_80124AA8: -/* 80124AA8 001219E8 7C 16 E8 00 */ cmpw r22, r29 -/* 80124AAC 001219EC 41 80 FF 2C */ blt .L_801249D8 -/* 80124AB0 001219F0 C0 3A 00 34 */ lfs f1, 0x34(r26) -/* 80124AB4 001219F4 C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 80124AB8 001219F8 C3 82 9B 58 */ lfs f28, lbl_80517EB8@sda21(r2) -/* 80124ABC 001219FC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80124AC0 00121A00 40 81 00 08 */ ble .L_80124AC8 -/* 80124AC4 00121A04 FF 80 08 90 */ fmr f28, f1 -.L_80124AC8: -/* 80124AC8 00121A08 3B 80 00 00 */ li r28, 0 -/* 80124ACC 00121A0C 3B C1 00 18 */ addi r30, r1, 0x18 -.L_80124AD0: -/* 80124AD0 00121A10 2C 1D 00 00 */ cmpwi r29, 0 -/* 80124AD4 00121A14 38 A0 00 00 */ li r5, 0 -/* 80124AD8 00121A18 40 81 00 D0 */ ble .L_80124BA8 -/* 80124ADC 00121A1C 2C 1D 00 08 */ cmpwi r29, 8 -/* 80124AE0 00121A20 38 7D FF F8 */ addi r3, r29, -8 -/* 80124AE4 00121A24 40 81 00 8C */ ble .L_80124B70 -/* 80124AE8 00121A28 38 03 00 07 */ addi r0, r3, 7 -/* 80124AEC 00121A2C 38 81 00 18 */ addi r4, r1, 0x18 -/* 80124AF0 00121A30 54 00 E8 FE */ srwi r0, r0, 3 -/* 80124AF4 00121A34 C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 80124AF8 00121A38 7C 09 03 A6 */ mtctr r0 -/* 80124AFC 00121A3C 2C 03 00 00 */ cmpwi r3, 0 -/* 80124B00 00121A40 40 81 00 70 */ ble .L_80124B70 -.L_80124B04: -/* 80124B04 00121A44 D0 04 00 08 */ stfs f0, 8(r4) -/* 80124B08 00121A48 38 A5 00 08 */ addi r5, r5, 8 -/* 80124B0C 00121A4C D0 04 00 04 */ stfs f0, 4(r4) -/* 80124B10 00121A50 D0 04 00 00 */ stfs f0, 0(r4) -/* 80124B14 00121A54 D0 04 00 14 */ stfs f0, 0x14(r4) -/* 80124B18 00121A58 D0 04 00 10 */ stfs f0, 0x10(r4) -/* 80124B1C 00121A5C D0 04 00 0C */ stfs f0, 0xc(r4) -/* 80124B20 00121A60 D0 04 00 20 */ stfs f0, 0x20(r4) -/* 80124B24 00121A64 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 80124B28 00121A68 D0 04 00 18 */ stfs f0, 0x18(r4) -/* 80124B2C 00121A6C D0 04 00 2C */ stfs f0, 0x2c(r4) -/* 80124B30 00121A70 D0 04 00 28 */ stfs f0, 0x28(r4) -/* 80124B34 00121A74 D0 04 00 24 */ stfs f0, 0x24(r4) -/* 80124B38 00121A78 D0 04 00 38 */ stfs f0, 0x38(r4) -/* 80124B3C 00121A7C D0 04 00 34 */ stfs f0, 0x34(r4) -/* 80124B40 00121A80 D0 04 00 30 */ stfs f0, 0x30(r4) -/* 80124B44 00121A84 D0 04 00 44 */ stfs f0, 0x44(r4) -/* 80124B48 00121A88 D0 04 00 40 */ stfs f0, 0x40(r4) -/* 80124B4C 00121A8C D0 04 00 3C */ stfs f0, 0x3c(r4) -/* 80124B50 00121A90 D0 04 00 50 */ stfs f0, 0x50(r4) -/* 80124B54 00121A94 D0 04 00 4C */ stfs f0, 0x4c(r4) -/* 80124B58 00121A98 D0 04 00 48 */ stfs f0, 0x48(r4) -/* 80124B5C 00121A9C D0 04 00 5C */ stfs f0, 0x5c(r4) -/* 80124B60 00121AA0 D0 04 00 58 */ stfs f0, 0x58(r4) -/* 80124B64 00121AA4 D0 04 00 54 */ stfs f0, 0x54(r4) -/* 80124B68 00121AA8 38 84 00 60 */ addi r4, r4, 0x60 -/* 80124B6C 00121AAC 42 00 FF 98 */ bdnz .L_80124B04 -.L_80124B70: -/* 80124B70 00121AB0 1C 65 00 0C */ mulli r3, r5, 0xc -/* 80124B74 00121AB4 38 81 00 18 */ addi r4, r1, 0x18 -/* 80124B78 00121AB8 7C 05 E8 50 */ subf r0, r5, r29 -/* 80124B7C 00121ABC C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 80124B80 00121AC0 7C 84 1A 14 */ add r4, r4, r3 -/* 80124B84 00121AC4 7C 09 03 A6 */ mtctr r0 -/* 80124B88 00121AC8 7C 05 E8 00 */ cmpw r5, r29 -/* 80124B8C 00121ACC 40 80 00 1C */ bge .L_80124BA8 -.L_80124B90: -/* 80124B90 00121AD0 D0 04 00 08 */ stfs f0, 8(r4) -/* 80124B94 00121AD4 38 A5 00 01 */ addi r5, r5, 1 -/* 80124B98 00121AD8 D0 04 00 04 */ stfs f0, 4(r4) -/* 80124B9C 00121ADC D0 04 00 00 */ stfs f0, 0(r4) -/* 80124BA0 00121AE0 38 84 00 0C */ addi r4, r4, 0xc -/* 80124BA4 00121AE4 42 00 FF EC */ bdnz .L_80124B90 -.L_80124BA8: -/* 80124BA8 00121AE8 7F F7 FB 78 */ mr r23, r31 -/* 80124BAC 00121AEC 7F D6 F3 78 */ mr r22, r30 -/* 80124BB0 00121AF0 3A A0 00 00 */ li r21, 0 -/* 80124BB4 00121AF4 48 00 01 0C */ b .L_80124CC0 -.L_80124BB8: -/* 80124BB8 00121AF8 3A 95 00 01 */ addi r20, r21, 1 -/* 80124BBC 00121AFC 3B 21 00 90 */ addi r25, r1, 0x90 -/* 80124BC0 00121B00 1C 14 00 0C */ mulli r0, r20, 0xc -/* 80124BC4 00121B04 3B 01 00 18 */ addi r24, r1, 0x18 -/* 80124BC8 00121B08 7F 39 02 14 */ add r25, r25, r0 -/* 80124BCC 00121B0C 7F 18 02 14 */ add r24, r24, r0 -/* 80124BD0 00121B10 48 00 00 DC */ b .L_80124CAC -.L_80124BD4: -/* 80124BD4 00121B14 C0 57 00 04 */ lfs f2, 4(r23) -/* 80124BD8 00121B18 C0 19 00 04 */ lfs f0, 4(r25) -/* 80124BDC 00121B1C C0 37 00 00 */ lfs f1, 0(r23) -/* 80124BE0 00121B20 EF C2 00 28 */ fsubs f30, f2, f0 -/* 80124BE4 00121B24 C0 19 00 00 */ lfs f0, 0(r25) -/* 80124BE8 00121B28 C0 57 00 08 */ lfs f2, 8(r23) -/* 80124BEC 00121B2C EF A1 00 28 */ fsubs f29, f1, f0 -/* 80124BF0 00121B30 C0 39 00 08 */ lfs f1, 8(r25) -/* 80124BF4 00121B34 EC 1E 07 B2 */ fmuls f0, f30, f30 -/* 80124BF8 00121B38 EF E2 08 28 */ fsubs f31, f2, f1 -/* 80124BFC 00121B3C EC 1D 07 7A */ fmadds f0, f29, f29, f0 -/* 80124C00 00121B40 EF 5F 07 FA */ fmadds f26, f31, f31, f0 -/* 80124C04 00121B44 FC 20 D0 90 */ fmr f1, f26 -/* 80124C08 00121B48 48 2E CB FD */ bl pikmin2_sqrtf__Ff -/* 80124C0C 00121B4C FF 60 08 90 */ fmr f27, f1 -/* 80124C10 00121B50 FC 1B E0 40 */ fcmpo cr0, f27, f28 -/* 80124C14 00121B54 40 80 00 8C */ bge .L_80124CA0 -/* 80124C18 00121B58 FC 20 D0 90 */ fmr f1, f26 -/* 80124C1C 00121B5C 48 2E CB E9 */ bl pikmin2_sqrtf__Ff -/* 80124C20 00121B60 C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 80124C24 00121B64 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80124C28 00121B68 40 81 00 18 */ ble .L_80124C40 -/* 80124C2C 00121B6C C0 02 9B 5C */ lfs f0, lbl_80517EBC@sda21(r2) -/* 80124C30 00121B70 EC 00 08 24 */ fdivs f0, f0, f1 -/* 80124C34 00121B74 EF BD 00 32 */ fmuls f29, f29, f0 -/* 80124C38 00121B78 EF DE 00 32 */ fmuls f30, f30, f0 -/* 80124C3C 00121B7C EF FF 00 32 */ fmuls f31, f31, f0 -.L_80124C40: -/* 80124C40 00121B80 EC 3C D8 28 */ fsubs f1, f28, f27 -/* 80124C44 00121B84 C0 42 9B 60 */ lfs f2, lbl_80517EC0@sda21(r2) -/* 80124C48 00121B88 C0 16 00 00 */ lfs f0, 0(r22) -/* 80124C4C 00121B8C EC 22 00 72 */ fmuls f1, f2, f1 -/* 80124C50 00121B90 EF BD 00 72 */ fmuls f29, f29, f1 -/* 80124C54 00121B94 EF DE 00 72 */ fmuls f30, f30, f1 -/* 80124C58 00121B98 EF FF 00 72 */ fmuls f31, f31, f1 -/* 80124C5C 00121B9C EC 00 E8 2A */ fadds f0, f0, f29 -/* 80124C60 00121BA0 D0 16 00 00 */ stfs f0, 0(r22) -/* 80124C64 00121BA4 C0 16 00 04 */ lfs f0, 4(r22) -/* 80124C68 00121BA8 EC 00 F0 2A */ fadds f0, f0, f30 -/* 80124C6C 00121BAC D0 16 00 04 */ stfs f0, 4(r22) -/* 80124C70 00121BB0 C0 16 00 08 */ lfs f0, 8(r22) -/* 80124C74 00121BB4 EC 00 F8 2A */ fadds f0, f0, f31 -/* 80124C78 00121BB8 D0 16 00 08 */ stfs f0, 8(r22) -/* 80124C7C 00121BBC C0 18 00 00 */ lfs f0, 0(r24) -/* 80124C80 00121BC0 EC 00 E8 28 */ fsubs f0, f0, f29 -/* 80124C84 00121BC4 D0 18 00 00 */ stfs f0, 0(r24) -/* 80124C88 00121BC8 C0 18 00 04 */ lfs f0, 4(r24) -/* 80124C8C 00121BCC EC 00 F0 28 */ fsubs f0, f0, f30 -/* 80124C90 00121BD0 D0 18 00 04 */ stfs f0, 4(r24) -/* 80124C94 00121BD4 C0 18 00 08 */ lfs f0, 8(r24) -/* 80124C98 00121BD8 EC 00 F8 28 */ fsubs f0, f0, f31 -/* 80124C9C 00121BDC D0 18 00 08 */ stfs f0, 8(r24) -.L_80124CA0: -/* 80124CA0 00121BE0 3B 39 00 0C */ addi r25, r25, 0xc -/* 80124CA4 00121BE4 3B 18 00 0C */ addi r24, r24, 0xc -/* 80124CA8 00121BE8 3A 94 00 01 */ addi r20, r20, 1 -.L_80124CAC: -/* 80124CAC 00121BEC 7C 14 E8 00 */ cmpw r20, r29 -/* 80124CB0 00121BF0 41 80 FF 24 */ blt .L_80124BD4 -/* 80124CB4 00121BF4 3A F7 00 0C */ addi r23, r23, 0xc -/* 80124CB8 00121BF8 3A D6 00 0C */ addi r22, r22, 0xc -/* 80124CBC 00121BFC 3A B5 00 01 */ addi r21, r21, 1 -.L_80124CC0: -/* 80124CC0 00121C00 7C 15 E8 00 */ cmpw r21, r29 -/* 80124CC4 00121C04 41 80 FE F4 */ blt .L_80124BB8 -/* 80124CC8 00121C08 2C 1D 00 00 */ cmpwi r29, 0 -/* 80124CCC 00121C0C 38 C0 00 00 */ li r6, 0 -/* 80124CD0 00121C10 40 81 02 20 */ ble .L_80124EF0 -/* 80124CD4 00121C14 2C 1D 00 08 */ cmpwi r29, 8 -/* 80124CD8 00121C18 38 7D FF F8 */ addi r3, r29, -8 -/* 80124CDC 00121C1C 40 81 01 B0 */ ble .L_80124E8C -/* 80124CE0 00121C20 38 03 00 07 */ addi r0, r3, 7 -/* 80124CE4 00121C24 7F C4 F3 78 */ mr r4, r30 -/* 80124CE8 00121C28 54 00 E8 FE */ srwi r0, r0, 3 -/* 80124CEC 00121C2C 7F E5 FB 78 */ mr r5, r31 -/* 80124CF0 00121C30 7C 09 03 A6 */ mtctr r0 -/* 80124CF4 00121C34 2C 03 00 00 */ cmpwi r3, 0 -/* 80124CF8 00121C38 40 81 01 94 */ ble .L_80124E8C -.L_80124CFC: -/* 80124CFC 00121C3C C0 25 00 00 */ lfs f1, 0(r5) -/* 80124D00 00121C40 38 C6 00 08 */ addi r6, r6, 8 -/* 80124D04 00121C44 C0 04 00 00 */ lfs f0, 0(r4) -/* 80124D08 00121C48 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D0C 00121C4C D0 05 00 00 */ stfs f0, 0(r5) -/* 80124D10 00121C50 C0 25 00 04 */ lfs f1, 4(r5) -/* 80124D14 00121C54 C0 04 00 04 */ lfs f0, 4(r4) -/* 80124D18 00121C58 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D1C 00121C5C D0 05 00 04 */ stfs f0, 4(r5) -/* 80124D20 00121C60 C0 25 00 08 */ lfs f1, 8(r5) -/* 80124D24 00121C64 C0 04 00 08 */ lfs f0, 8(r4) -/* 80124D28 00121C68 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D2C 00121C6C D0 05 00 08 */ stfs f0, 8(r5) -/* 80124D30 00121C70 C0 25 00 0C */ lfs f1, 0xc(r5) -/* 80124D34 00121C74 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 80124D38 00121C78 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D3C 00121C7C D0 05 00 0C */ stfs f0, 0xc(r5) -/* 80124D40 00121C80 C0 25 00 10 */ lfs f1, 0x10(r5) -/* 80124D44 00121C84 C0 04 00 10 */ lfs f0, 0x10(r4) -/* 80124D48 00121C88 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D4C 00121C8C D0 05 00 10 */ stfs f0, 0x10(r5) -/* 80124D50 00121C90 C0 25 00 14 */ lfs f1, 0x14(r5) -/* 80124D54 00121C94 C0 04 00 14 */ lfs f0, 0x14(r4) -/* 80124D58 00121C98 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D5C 00121C9C D0 05 00 14 */ stfs f0, 0x14(r5) -/* 80124D60 00121CA0 C0 25 00 18 */ lfs f1, 0x18(r5) -/* 80124D64 00121CA4 C0 04 00 18 */ lfs f0, 0x18(r4) -/* 80124D68 00121CA8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D6C 00121CAC D0 05 00 18 */ stfs f0, 0x18(r5) -/* 80124D70 00121CB0 C0 25 00 1C */ lfs f1, 0x1c(r5) -/* 80124D74 00121CB4 C0 04 00 1C */ lfs f0, 0x1c(r4) -/* 80124D78 00121CB8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D7C 00121CBC D0 05 00 1C */ stfs f0, 0x1c(r5) -/* 80124D80 00121CC0 C0 25 00 20 */ lfs f1, 0x20(r5) -/* 80124D84 00121CC4 C0 04 00 20 */ lfs f0, 0x20(r4) -/* 80124D88 00121CC8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D8C 00121CCC D0 05 00 20 */ stfs f0, 0x20(r5) -/* 80124D90 00121CD0 C0 25 00 24 */ lfs f1, 0x24(r5) -/* 80124D94 00121CD4 C0 04 00 24 */ lfs f0, 0x24(r4) -/* 80124D98 00121CD8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124D9C 00121CDC D0 05 00 24 */ stfs f0, 0x24(r5) -/* 80124DA0 00121CE0 C0 25 00 28 */ lfs f1, 0x28(r5) -/* 80124DA4 00121CE4 C0 04 00 28 */ lfs f0, 0x28(r4) -/* 80124DA8 00121CE8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124DAC 00121CEC D0 05 00 28 */ stfs f0, 0x28(r5) -/* 80124DB0 00121CF0 C0 25 00 2C */ lfs f1, 0x2c(r5) -/* 80124DB4 00121CF4 C0 04 00 2C */ lfs f0, 0x2c(r4) -/* 80124DB8 00121CF8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124DBC 00121CFC D0 05 00 2C */ stfs f0, 0x2c(r5) -/* 80124DC0 00121D00 C0 25 00 30 */ lfs f1, 0x30(r5) -/* 80124DC4 00121D04 C0 04 00 30 */ lfs f0, 0x30(r4) -/* 80124DC8 00121D08 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124DCC 00121D0C D0 05 00 30 */ stfs f0, 0x30(r5) -/* 80124DD0 00121D10 C0 25 00 34 */ lfs f1, 0x34(r5) -/* 80124DD4 00121D14 C0 04 00 34 */ lfs f0, 0x34(r4) -/* 80124DD8 00121D18 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124DDC 00121D1C D0 05 00 34 */ stfs f0, 0x34(r5) -/* 80124DE0 00121D20 C0 25 00 38 */ lfs f1, 0x38(r5) -/* 80124DE4 00121D24 C0 04 00 38 */ lfs f0, 0x38(r4) -/* 80124DE8 00121D28 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124DEC 00121D2C D0 05 00 38 */ stfs f0, 0x38(r5) -/* 80124DF0 00121D30 C0 25 00 3C */ lfs f1, 0x3c(r5) -/* 80124DF4 00121D34 C0 04 00 3C */ lfs f0, 0x3c(r4) -/* 80124DF8 00121D38 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124DFC 00121D3C D0 05 00 3C */ stfs f0, 0x3c(r5) -/* 80124E00 00121D40 C0 25 00 40 */ lfs f1, 0x40(r5) -/* 80124E04 00121D44 C0 04 00 40 */ lfs f0, 0x40(r4) -/* 80124E08 00121D48 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E0C 00121D4C D0 05 00 40 */ stfs f0, 0x40(r5) -/* 80124E10 00121D50 C0 25 00 44 */ lfs f1, 0x44(r5) -/* 80124E14 00121D54 C0 04 00 44 */ lfs f0, 0x44(r4) -/* 80124E18 00121D58 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E1C 00121D5C D0 05 00 44 */ stfs f0, 0x44(r5) -/* 80124E20 00121D60 C0 25 00 48 */ lfs f1, 0x48(r5) -/* 80124E24 00121D64 C0 04 00 48 */ lfs f0, 0x48(r4) -/* 80124E28 00121D68 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E2C 00121D6C D0 05 00 48 */ stfs f0, 0x48(r5) -/* 80124E30 00121D70 C0 25 00 4C */ lfs f1, 0x4c(r5) -/* 80124E34 00121D74 C0 04 00 4C */ lfs f0, 0x4c(r4) -/* 80124E38 00121D78 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E3C 00121D7C D0 05 00 4C */ stfs f0, 0x4c(r5) -/* 80124E40 00121D80 C0 25 00 50 */ lfs f1, 0x50(r5) -/* 80124E44 00121D84 C0 04 00 50 */ lfs f0, 0x50(r4) -/* 80124E48 00121D88 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E4C 00121D8C D0 05 00 50 */ stfs f0, 0x50(r5) -/* 80124E50 00121D90 C0 25 00 54 */ lfs f1, 0x54(r5) -/* 80124E54 00121D94 C0 04 00 54 */ lfs f0, 0x54(r4) -/* 80124E58 00121D98 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E5C 00121D9C D0 05 00 54 */ stfs f0, 0x54(r5) -/* 80124E60 00121DA0 C0 25 00 58 */ lfs f1, 0x58(r5) -/* 80124E64 00121DA4 C0 04 00 58 */ lfs f0, 0x58(r4) -/* 80124E68 00121DA8 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E6C 00121DAC D0 05 00 58 */ stfs f0, 0x58(r5) -/* 80124E70 00121DB0 C0 04 00 5C */ lfs f0, 0x5c(r4) -/* 80124E74 00121DB4 38 84 00 60 */ addi r4, r4, 0x60 -/* 80124E78 00121DB8 C0 25 00 5C */ lfs f1, 0x5c(r5) -/* 80124E7C 00121DBC EC 01 00 2A */ fadds f0, f1, f0 -/* 80124E80 00121DC0 D0 05 00 5C */ stfs f0, 0x5c(r5) -/* 80124E84 00121DC4 38 A5 00 60 */ addi r5, r5, 0x60 -/* 80124E88 00121DC8 42 00 FE 74 */ bdnz .L_80124CFC -.L_80124E8C: -/* 80124E8C 00121DCC 1C A6 00 0C */ mulli r5, r6, 0xc -/* 80124E90 00121DD0 38 61 00 18 */ addi r3, r1, 0x18 -/* 80124E94 00121DD4 38 81 00 90 */ addi r4, r1, 0x90 -/* 80124E98 00121DD8 7C 06 E8 50 */ subf r0, r6, r29 -/* 80124E9C 00121DDC 7C 63 2A 14 */ add r3, r3, r5 -/* 80124EA0 00121DE0 7C 84 2A 14 */ add r4, r4, r5 -/* 80124EA4 00121DE4 7C 09 03 A6 */ mtctr r0 -/* 80124EA8 00121DE8 7C 06 E8 00 */ cmpw r6, r29 -/* 80124EAC 00121DEC 40 80 00 44 */ bge .L_80124EF0 -.L_80124EB0: -/* 80124EB0 00121DF0 C0 44 00 00 */ lfs f2, 0(r4) -/* 80124EB4 00121DF4 38 C6 00 01 */ addi r6, r6, 1 -/* 80124EB8 00121DF8 C0 03 00 00 */ lfs f0, 0(r3) -/* 80124EBC 00121DFC C0 23 00 04 */ lfs f1, 4(r3) -/* 80124EC0 00121E00 EC 42 00 2A */ fadds f2, f2, f0 -/* 80124EC4 00121E04 C0 03 00 08 */ lfs f0, 8(r3) -/* 80124EC8 00121E08 38 63 00 0C */ addi r3, r3, 0xc -/* 80124ECC 00121E0C D0 44 00 00 */ stfs f2, 0(r4) -/* 80124ED0 00121E10 C0 44 00 04 */ lfs f2, 4(r4) -/* 80124ED4 00121E14 EC 22 08 2A */ fadds f1, f2, f1 -/* 80124ED8 00121E18 D0 24 00 04 */ stfs f1, 4(r4) -/* 80124EDC 00121E1C C0 24 00 08 */ lfs f1, 8(r4) -/* 80124EE0 00121E20 EC 01 00 2A */ fadds f0, f1, f0 -/* 80124EE4 00121E24 D0 04 00 08 */ stfs f0, 8(r4) -/* 80124EE8 00121E28 38 84 00 0C */ addi r4, r4, 0xc -/* 80124EEC 00121E2C 42 00 FF C4 */ bdnz .L_80124EB0 -.L_80124EF0: -/* 80124EF0 00121E30 3B 9C 00 01 */ addi r28, r28, 1 -/* 80124EF4 00121E34 2C 1C 00 05 */ cmpwi r28, 5 -/* 80124EF8 00121E38 41 80 FB D8 */ blt .L_80124AD0 -/* 80124EFC 00121E3C 3C 80 80 4B */ lis r4, __vt__Q24Game15CreatureInitArg@ha -/* 80124F00 00121E40 3C 60 80 4B */ lis r3, __vt__Q24Game6GenArg@ha -/* 80124F04 00121E44 3A 80 00 00 */ li r20, 0 -/* 80124F08 00121E48 3B C4 A2 F4 */ addi r30, r4, __vt__Q24Game15CreatureInitArg@l -/* 80124F0C 00121E4C 3B 83 DB D4 */ addi r28, r3, __vt__Q24Game6GenArg@l -/* 80124F10 00121E50 48 00 00 6C */ b .L_80124F7C -.L_80124F14: -/* 80124F14 00121E54 80 6D 93 08 */ lwz r3, mapMgr__4Game@sda21(r13) -/* 80124F18 00121E58 28 03 00 00 */ cmplwi r3, 0 -/* 80124F1C 00121E5C 41 82 00 1C */ beq .L_80124F38 -/* 80124F20 00121E60 81 83 00 04 */ lwz r12, 4(r3) -/* 80124F24 00121E64 7F E4 FB 78 */ mr r4, r31 -/* 80124F28 00121E68 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 80124F2C 00121E6C 7D 89 03 A6 */ mtctr r12 -/* 80124F30 00121E70 4E 80 04 21 */ bctrl -/* 80124F34 00121E74 D0 3F 00 04 */ stfs f1, 4(r31) -.L_80124F38: -/* 80124F38 00121E78 93 C1 00 08 */ stw r30, 8(r1) -/* 80124F3C 00121E7C 7F 43 D3 78 */ mr r3, r26 -/* 80124F40 00121E80 C0 5F 00 00 */ lfs f2, 0(r31) -/* 80124F44 00121E84 38 81 00 08 */ addi r4, r1, 8 -/* 80124F48 00121E88 C0 3F 00 04 */ lfs f1, 4(r31) -/* 80124F4C 00121E8C C0 1F 00 08 */ lfs f0, 8(r31) -/* 80124F50 00121E90 93 81 00 08 */ stw r28, 8(r1) -/* 80124F54 00121E94 D0 41 00 0C */ stfs f2, 0xc(r1) -/* 80124F58 00121E98 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 80124F5C 00121E9C D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80124F60 00121EA0 81 9A 00 0C */ lwz r12, 0xc(r26) -/* 80124F64 00121EA4 81 8C 00 34 */ lwz r12, 0x34(r12) -/* 80124F68 00121EA8 7D 89 03 A6 */ mtctr r12 -/* 80124F6C 00121EAC 4E 80 04 21 */ bctrl -/* 80124F70 00121EB0 93 63 00 C4 */ stw r27, 0xc4(r3) -/* 80124F74 00121EB4 3B FF 00 0C */ addi r31, r31, 0xc -/* 80124F78 00121EB8 3A 94 00 01 */ addi r20, r20, 1 -.L_80124F7C: -/* 80124F7C 00121EBC 7C 14 E8 00 */ cmpw r20, r29 -/* 80124F80 00121EC0 41 80 FF 94 */ blt .L_80124F14 -/* 80124F84 00121EC4 38 60 00 00 */ li r3, 0 -/* 80124F88 00121EC8 E3 E1 01 A8 */ psq_l f31, 424(r1), 0, qr0 -/* 80124F8C 00121ECC CB E1 01 A0 */ lfd f31, 0x1a0(r1) -/* 80124F90 00121ED0 E3 C1 01 98 */ psq_l f30, 408(r1), 0, qr0 -/* 80124F94 00121ED4 CB C1 01 90 */ lfd f30, 0x190(r1) -/* 80124F98 00121ED8 E3 A1 01 88 */ psq_l f29, 392(r1), 0, qr0 -/* 80124F9C 00121EDC CB A1 01 80 */ lfd f29, 0x180(r1) -/* 80124FA0 00121EE0 E3 81 01 78 */ psq_l f28, 376(r1), 0, qr0 -/* 80124FA4 00121EE4 CB 81 01 70 */ lfd f28, 0x170(r1) -/* 80124FA8 00121EE8 E3 61 01 68 */ psq_l f27, 360(r1), 0, qr0 -/* 80124FAC 00121EEC CB 61 01 60 */ lfd f27, 0x160(r1) -/* 80124FB0 00121EF0 E3 41 01 58 */ psq_l f26, 344(r1), 0, qr0 -/* 80124FB4 00121EF4 CB 41 01 50 */ lfd f26, 0x150(r1) -/* 80124FB8 00121EF8 BA 81 01 20 */ lmw r20, 0x120(r1) -/* 80124FBC 00121EFC 80 01 01 B4 */ lwz r0, 0x1b4(r1) -/* 80124FC0 00121F00 7C 08 03 A6 */ mtlr r0 -/* 80124FC4 00121F04 38 21 01 B0 */ addi r1, r1, 0x1b0 -/* 80124FC8 00121F08 4E 80 00 20 */ blr -.endfn generate__Q24Game14GenObjectEnemyFPQ24Game9Generator - -.fn birth__Q24Game14GenObjectEnemyFPQ24Game6GenArg, global -/* 80124FCC 00121F0C 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80124FD0 00121F10 7C 08 02 A6 */ mflr r0 -/* 80124FD4 00121F14 90 01 00 54 */ stw r0, 0x54(r1) -/* 80124FD8 00121F18 93 E1 00 4C */ stw r31, 0x4c(r1) -/* 80124FDC 00121F1C 7C 9F 23 78 */ mr r31, r4 -/* 80124FE0 00121F20 93 C1 00 48 */ stw r30, 0x48(r1) -/* 80124FE4 00121F24 7C 7E 1B 78 */ mr r30, r3 -/* 80124FE8 00121F28 81 83 00 0C */ lwz r12, 0xc(r3) -/* 80124FEC 00121F2C 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 80124FF0 00121F30 7D 89 03 A6 */ mtctr r12 -/* 80124FF4 00121F34 4E 80 04 21 */ bctrl -/* 80124FF8 00121F38 38 61 00 08 */ addi r3, r1, 8 -/* 80124FFC 00121F3C 48 00 9C 29 */ bl __ct__Q24Game13EnemyBirthArgFv -/* 80125000 00121F40 C0 1F 00 04 */ lfs f0, 4(r31) -/* 80125004 00121F44 38 A1 00 08 */ addi r5, r1, 8 -/* 80125008 00121F48 C0 22 9B 74 */ lfs f1, lbl_80517ED4@sda21(r2) -/* 8012500C 00121F4C D0 01 00 08 */ stfs f0, 8(r1) -/* 80125010 00121F50 C0 42 9B 70 */ lfs f2, lbl_80517ED0@sda21(r2) -/* 80125014 00121F54 C0 1F 00 08 */ lfs f0, 8(r31) -/* 80125018 00121F58 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13) -/* 8012501C 00121F5C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80125020 00121F60 C0 1F 00 0C */ lfs f0, 0xc(r31) -/* 80125024 00121F64 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80125028 00121F68 C0 1E 00 30 */ lfs f0, 0x30(r30) -/* 8012502C 00121F6C EC 01 00 32 */ fmuls f0, f1, f0 -/* 80125030 00121F70 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80125034 00121F74 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80125038 00121F78 88 1E 00 29 */ lbz r0, 0x29(r30) -/* 8012503C 00121F7C 98 01 00 18 */ stb r0, 0x18(r1) -/* 80125040 00121F80 80 1E 00 48 */ lwz r0, 0x48(r30) -/* 80125044 00121F84 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80125048 00121F88 A8 1E 00 38 */ lha r0, 0x38(r30) -/* 8012504C 00121F8C B0 01 00 20 */ sth r0, 0x20(r1) -/* 80125050 00121F90 88 1E 00 3C */ lbz r0, 0x3c(r30) -/* 80125054 00121F94 98 01 00 24 */ stb r0, 0x24(r1) -/* 80125058 00121F98 88 1E 00 3D */ lbz r0, 0x3d(r30) -/* 8012505C 00121F9C 98 01 00 25 */ stb r0, 0x25(r1) -/* 80125060 00121FA0 88 1E 00 3E */ lbz r0, 0x3e(r30) -/* 80125064 00121FA4 98 01 00 26 */ stb r0, 0x26(r1) -/* 80125068 00121FA8 88 1E 00 3F */ lbz r0, 0x3f(r30) -/* 8012506C 00121FAC 98 01 00 27 */ stb r0, 0x27(r1) -/* 80125070 00121FB0 C0 1E 00 40 */ lfs f0, 0x40(r30) -/* 80125074 00121FB4 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 80125078 00121FB8 80 9E 00 24 */ lwz r4, 0x24(r30) -/* 8012507C 00121FBC 4B FE 84 45 */ bl birth__Q24Game15GeneralEnemyMgrFiRQ24Game13EnemyBirthArg -/* 80125080 00121FC0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80125084 00121FC4 41 82 00 0C */ beq .L_80125090 -/* 80125088 00121FC8 38 80 00 00 */ li r4, 0 -/* 8012508C 00121FCC 48 01 5F 3D */ bl init__Q24Game8CreatureFPQ24Game15CreatureInitArg -.L_80125090: -/* 80125090 00121FD0 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80125094 00121FD4 7F E3 FB 78 */ mr r3, r31 -/* 80125098 00121FD8 83 E1 00 4C */ lwz r31, 0x4c(r1) -/* 8012509C 00121FDC 83 C1 00 48 */ lwz r30, 0x48(r1) -/* 801250A0 00121FE0 7C 08 03 A6 */ mtlr r0 -/* 801250A4 00121FE4 38 21 00 50 */ addi r1, r1, 0x50 -/* 801250A8 00121FE8 4E 80 00 20 */ blr -.endfn birth__Q24Game14GenObjectEnemyFPQ24Game6GenArg - -.fn doWrite__Q24Game14GenObjectEnemyFR6Stream, global -/* 801250AC 00121FEC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801250B0 00121FF0 7C 08 02 A6 */ mflr r0 -/* 801250B4 00121FF4 3C A0 80 48 */ lis r5, lbl_8047B750@ha -/* 801250B8 00121FF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 801250BC 00121FFC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 801250C0 00122000 3B E5 B7 50 */ addi r31, r5, lbl_8047B750@l -/* 801250C4 00122004 93 C1 00 18 */ stw r30, 0x18(r1) -/* 801250C8 00122008 7C 7E 1B 78 */ mr r30, r3 -/* 801250CC 0012200C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 801250D0 00122010 7C 9D 23 78 */ mr r29, r4 -/* 801250D4 00122014 7F A3 EB 78 */ mr r3, r29 -/* 801250D8 00122018 80 84 04 14 */ lwz r4, 0x414(r4) -/* 801250DC 0012201C 48 2E F3 59 */ bl textWriteTab__6StreamFi -/* 801250E0 00122020 80 1E 00 24 */ lwz r0, 0x24(r30) -/* 801250E4 00122024 7F A3 EB 78 */ mr r3, r29 -/* 801250E8 00122028 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 801250EC 0012202C 7C 04 07 34 */ extsh r4, r0 -/* 801250F0 00122030 48 2F 06 41 */ bl writeShort__6StreamFs -/* 801250F4 00122034 7F A3 EB 78 */ mr r3, r29 -/* 801250F8 00122038 38 9F 00 30 */ addi r4, r31, 0x30 -/* 801250FC 0012203C 38 A2 9B 78 */ addi r5, r2, lbl_80517ED8@sda21 -/* 80125100 00122040 4C C6 31 82 */ crclr 6 -/* 80125104 00122044 48 2E F0 D9 */ bl textWriteText__6StreamFPce -/* 80125108 00122048 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 8012510C 0012204C 7F A3 EB 78 */ mr r3, r29 -/* 80125110 00122050 48 2E F3 25 */ bl textWriteTab__6StreamFi -/* 80125114 00122054 88 9E 00 29 */ lbz r4, 0x29(r30) -/* 80125118 00122058 7F A3 EB 78 */ mr r3, r29 -/* 8012511C 0012205C 48 2F 05 55 */ bl writeByte__6StreamFUc -/* 80125120 00122060 7F A3 EB 78 */ mr r3, r29 -/* 80125124 00122064 38 9F 00 30 */ addi r4, r31, 0x30 -/* 80125128 00122068 38 BF 00 3C */ addi r5, r31, 0x3c -/* 8012512C 0012206C 4C C6 31 82 */ crclr 6 -/* 80125130 00122070 48 2E F0 AD */ bl textWriteText__6StreamFPce -/* 80125134 00122074 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 80125138 00122078 7F A3 EB 78 */ mr r3, r29 -/* 8012513C 0012207C 48 2E F2 F9 */ bl textWriteTab__6StreamFi -/* 80125140 00122080 A8 1E 00 2A */ lha r0, 0x2a(r30) -/* 80125144 00122084 7F A3 EB 78 */ mr r3, r29 -/* 80125148 00122088 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8012514C 0012208C 7C 04 07 34 */ extsh r4, r0 -/* 80125150 00122090 48 2F 05 E1 */ bl writeShort__6StreamFs -/* 80125154 00122094 7F A3 EB 78 */ mr r3, r29 -/* 80125158 00122098 38 9F 00 30 */ addi r4, r31, 0x30 -/* 8012515C 0012209C 38 BF 00 4C */ addi r5, r31, 0x4c -/* 80125160 001220A0 4C C6 31 82 */ crclr 6 -/* 80125164 001220A4 48 2E F0 79 */ bl textWriteText__6StreamFPce -/* 80125168 001220A8 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 8012516C 001220AC 7F A3 EB 78 */ mr r3, r29 -/* 80125170 001220B0 48 2E F2 C5 */ bl textWriteTab__6StreamFi -/* 80125174 001220B4 C0 3E 00 30 */ lfs f1, 0x30(r30) -/* 80125178 001220B8 7F A3 EB 78 */ mr r3, r29 -/* 8012517C 001220BC 48 2F 06 CD */ bl writeFloat__6StreamFf -/* 80125180 001220C0 7F A3 EB 78 */ mr r3, r29 -/* 80125184 001220C4 38 9F 00 30 */ addi r4, r31, 0x30 -/* 80125188 001220C8 38 BF 00 58 */ addi r5, r31, 0x58 -/* 8012518C 001220CC 4C C6 31 82 */ crclr 6 -/* 80125190 001220D0 48 2E F0 4D */ bl textWriteText__6StreamFPce -/* 80125194 001220D4 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 80125198 001220D8 7F A3 EB 78 */ mr r3, r29 -/* 8012519C 001220DC 48 2E F2 99 */ bl textWriteTab__6StreamFi -/* 801251A0 001220E0 88 9E 00 28 */ lbz r4, 0x28(r30) -/* 801251A4 001220E4 7F A3 EB 78 */ mr r3, r29 -/* 801251A8 001220E8 48 2F 04 C9 */ bl writeByte__6StreamFUc -/* 801251AC 001220EC 7F A3 EB 78 */ mr r3, r29 -/* 801251B0 001220F0 38 9F 00 30 */ addi r4, r31, 0x30 -/* 801251B4 001220F4 38 BF 00 68 */ addi r5, r31, 0x68 -/* 801251B8 001220F8 4C C6 31 82 */ crclr 6 -/* 801251BC 001220FC 48 2E F0 21 */ bl textWriteText__6StreamFPce -/* 801251C0 00122100 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 801251C4 00122104 7F A3 EB 78 */ mr r3, r29 -/* 801251C8 00122108 48 2E F2 6D */ bl textWriteTab__6StreamFi -/* 801251CC 0012210C C0 3E 00 2C */ lfs f1, 0x2c(r30) -/* 801251D0 00122110 7F A3 EB 78 */ mr r3, r29 -/* 801251D4 00122114 48 2F 06 75 */ bl writeFloat__6StreamFf -/* 801251D8 00122118 7F A3 EB 78 */ mr r3, r29 -/* 801251DC 0012211C 38 9F 00 30 */ addi r4, r31, 0x30 -/* 801251E0 00122120 38 BF 00 7C */ addi r5, r31, 0x7c -/* 801251E4 00122124 4C C6 31 82 */ crclr 6 -/* 801251E8 00122128 48 2E EF F5 */ bl textWriteText__6StreamFPce -/* 801251EC 0012212C 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 801251F0 00122130 7F A3 EB 78 */ mr r3, r29 -/* 801251F4 00122134 48 2E F2 41 */ bl textWriteTab__6StreamFi -/* 801251F8 00122138 C0 3E 00 34 */ lfs f1, 0x34(r30) -/* 801251FC 0012213C 7F A3 EB 78 */ mr r3, r29 -/* 80125200 00122140 48 2F 06 49 */ bl writeFloat__6StreamFf -/* 80125204 00122144 7F A3 EB 78 */ mr r3, r29 -/* 80125208 00122148 38 9F 00 30 */ addi r4, r31, 0x30 -/* 8012520C 0012214C 38 BF 00 8C */ addi r5, r31, 0x8c -/* 80125210 00122150 4C C6 31 82 */ crclr 6 -/* 80125214 00122154 48 2E EF C9 */ bl textWriteText__6StreamFPce -/* 80125218 00122158 7F A4 EB 78 */ mr r4, r29 -/* 8012521C 0012215C 38 7E 00 38 */ addi r3, r30, 0x38 -/* 80125220 00122160 48 04 8C F1 */ bl write__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream -/* 80125224 00122164 38 7E 00 3C */ addi r3, r30, 0x3c -/* 80125228 00122168 7F A4 EB 78 */ mr r4, r29 -/* 8012522C 0012216C 81 9E 00 44 */ lwz r12, 0x44(r30) -/* 80125230 00122170 81 8C 00 08 */ lwz r12, 8(r12) -/* 80125234 00122174 7D 89 03 A6 */ mtctr r12 -/* 80125238 00122178 4E 80 04 21 */ bctrl -/* 8012523C 0012217C 83 DE 00 48 */ lwz r30, 0x48(r30) -/* 80125240 00122180 28 1E 00 00 */ cmplwi r30, 0 -/* 80125244 00122184 41 82 00 64 */ beq .L_801252A8 -/* 80125248 00122188 7F C3 F3 78 */ mr r3, r30 -/* 8012524C 0012218C 81 9E 00 00 */ lwz r12, 0(r30) -/* 80125250 00122190 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 80125254 00122194 7D 89 03 A6 */ mtctr r12 -/* 80125258 00122198 4E 80 04 21 */ bctrl -/* 8012525C 0012219C 7C 64 1B 78 */ mr r4, r3 -/* 80125260 001221A0 38 7E 00 18 */ addi r3, r30, 0x18 -/* 80125264 001221A4 48 2E E1 A1 */ bl __as__4ID32FUl -/* 80125268 001221A8 80 9D 04 14 */ lwz r4, 0x414(r29) -/* 8012526C 001221AC 7F A3 EB 78 */ mr r3, r29 -/* 80125270 001221B0 48 2E F1 C5 */ bl textWriteTab__6StreamFi -/* 80125274 001221B4 7F A4 EB 78 */ mr r4, r29 -/* 80125278 001221B8 38 7E 00 18 */ addi r3, r30, 0x18 -/* 8012527C 001221BC 48 2E E1 E5 */ bl write__4ID32FR6Stream -/* 80125280 001221C0 7F A3 EB 78 */ mr r3, r29 -/* 80125284 001221C4 38 9F 00 98 */ addi r4, r31, 0x98 -/* 80125288 001221C8 4C C6 31 82 */ crclr 6 -/* 8012528C 001221CC 48 2E EF 51 */ bl textWriteText__6StreamFPce -/* 80125290 001221D0 7F C3 F3 78 */ mr r3, r30 -/* 80125294 001221D4 7F A4 EB 78 */ mr r4, r29 -/* 80125298 001221D8 81 9E 00 00 */ lwz r12, 0(r30) -/* 8012529C 001221DC 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 801252A0 001221E0 7D 89 03 A6 */ mtctr r12 -/* 801252A4 001221E4 4E 80 04 21 */ bctrl -.L_801252A8: -/* 801252A8 001221E8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801252AC 001221EC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 801252B0 001221F0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 801252B4 001221F4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 801252B8 001221F8 7C 08 03 A6 */ mtlr r0 -/* 801252BC 001221FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 801252C0 00122200 4E 80 00 20 */ blr -.endfn doWrite__Q24Game14GenObjectEnemyFR6Stream - -.fn doWrite__Q24Game18EnemyGeneratorBaseFR6Stream, weak -/* 801252C4 00122204 4E 80 00 20 */ blr -.endfn doWrite__Q24Game18EnemyGeneratorBaseFR6Stream - -.fn getLatestVersion__Q24Game18EnemyGeneratorBaseFv, weak -/* 801252C8 00122208 3C 60 3F 3F */ lis r3, 0x3F3F3F3F@ha -/* 801252CC 0012220C 38 63 3F 3F */ addi r3, r3, 0x3F3F3F3F@l -/* 801252D0 00122210 4E 80 00 20 */ blr -.endfn getLatestVersion__Q24Game18EnemyGeneratorBaseFv - -.fn doRead__Q24Game14GenObjectEnemyFR6Stream, global -/* 801252D4 00122214 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 801252D8 00122218 7C 08 02 A6 */ mflr r0 -/* 801252DC 0012221C 38 A0 00 00 */ li r5, 0 -/* 801252E0 00122220 C0 22 9B 4C */ lfs f1, lbl_80517EAC@sda21(r2) -/* 801252E4 00122224 90 01 00 44 */ stw r0, 0x44(r1) -/* 801252E8 00122228 38 00 00 01 */ li r0, 1 -/* 801252EC 0012222C C0 02 9B 48 */ lfs f0, lbl_80517EA8@sda21(r2) -/* 801252F0 00122230 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 801252F4 00122234 7C 7F 1B 78 */ mr r31, r3 -/* 801252F8 00122238 93 C1 00 38 */ stw r30, 0x38(r1) -/* 801252FC 0012223C 93 A1 00 34 */ stw r29, 0x34(r1) -/* 80125300 00122240 7C 9D 23 78 */ mr r29, r4 -/* 80125304 00122244 90 A3 00 24 */ stw r5, 0x24(r3) -/* 80125308 00122248 B0 03 00 2A */ sth r0, 0x2a(r3) -/* 8012530C 0012224C 98 A3 00 29 */ stb r5, 0x29(r3) -/* 80125310 00122250 D0 23 00 30 */ stfs f1, 0x30(r3) -/* 80125314 00122254 98 03 00 28 */ stb r0, 0x28(r3) -/* 80125318 00122258 D0 03 00 2C */ stfs f0, 0x2c(r3) -/* 8012531C 0012225C D0 23 00 34 */ stfs f1, 0x34(r3) -/* 80125320 00122260 81 83 00 0C */ lwz r12, 0xc(r3) -/* 80125324 00122264 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 80125328 00122268 7D 89 03 A6 */ mtctr r12 -/* 8012532C 0012226C 4E 80 04 21 */ bctrl -/* 80125330 00122270 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 80125334 00122274 7C 00 18 40 */ cmplw r0, r3 -/* 80125338 00122278 40 82 01 58 */ bne .L_80125490 -/* 8012533C 0012227C 7F A3 EB 78 */ mr r3, r29 -/* 80125340 00122280 48 2E F4 25 */ bl readShort__6StreamFv -/* 80125344 00122284 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80125348 00122288 7F A3 EB 78 */ mr r3, r29 -/* 8012534C 0012228C 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80125350 00122290 48 2E F1 4D */ bl readByte__6StreamFv -/* 80125354 00122294 98 7F 00 29 */ stb r3, 0x29(r31) -/* 80125358 00122298 7F A3 EB 78 */ mr r3, r29 -/* 8012535C 0012229C 48 2E F4 09 */ bl readShort__6StreamFv -/* 80125360 001222A0 B0 7F 00 2A */ sth r3, 0x2a(r31) -/* 80125364 001222A4 7F A3 EB 78 */ mr r3, r29 -/* 80125368 001222A8 48 2E FA 45 */ bl readFloat__6StreamFv -/* 8012536C 001222AC D0 3F 00 30 */ stfs f1, 0x30(r31) -/* 80125370 001222B0 7F A3 EB 78 */ mr r3, r29 -/* 80125374 001222B4 48 2E F1 29 */ bl readByte__6StreamFv -/* 80125378 001222B8 98 7F 00 28 */ stb r3, 0x28(r31) -/* 8012537C 001222BC 7F A3 EB 78 */ mr r3, r29 -/* 80125380 001222C0 48 2E FA 2D */ bl readFloat__6StreamFv -/* 80125384 001222C4 D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 80125388 001222C8 7F A3 EB 78 */ mr r3, r29 -/* 8012538C 001222CC 48 2E FA 21 */ bl readFloat__6StreamFv -/* 80125390 001222D0 D0 3F 00 34 */ stfs f1, 0x34(r31) -/* 80125394 001222D4 7F A4 EB 78 */ mr r4, r29 -/* 80125398 001222D8 38 7F 00 38 */ addi r3, r31, 0x38 -/* 8012539C 001222DC 48 04 8B 41 */ bl read__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream -/* 801253A0 001222E0 38 7F 00 3C */ addi r3, r31, 0x3c -/* 801253A4 001222E4 7F A4 EB 78 */ mr r4, r29 -/* 801253A8 001222E8 81 9F 00 44 */ lwz r12, 0x44(r31) -/* 801253AC 001222EC 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801253B0 001222F0 7D 89 03 A6 */ mtctr r12 -/* 801253B4 001222F4 4E 80 04 21 */ bctrl -/* 801253B8 001222F8 7F E3 FB 78 */ mr r3, r31 -/* 801253BC 001222FC 48 00 05 71 */ bl createEnemyGenerator__Q24Game14GenObjectEnemyFv -/* 801253C0 00122300 83 DF 00 48 */ lwz r30, 0x48(r31) -/* 801253C4 00122304 28 1E 00 00 */ cmplwi r30, 0 -/* 801253C8 00122308 41 82 00 28 */ beq .L_801253F0 -/* 801253CC 0012230C 7F A4 EB 78 */ mr r4, r29 -/* 801253D0 00122310 38 7E 00 18 */ addi r3, r30, 0x18 -/* 801253D4 00122314 48 2E E1 1D */ bl read__4ID32FR6Stream -/* 801253D8 00122318 7F C3 F3 78 */ mr r3, r30 -/* 801253DC 0012231C 7F A4 EB 78 */ mr r4, r29 -/* 801253E0 00122320 81 9E 00 00 */ lwz r12, 0(r30) -/* 801253E4 00122324 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 801253E8 00122328 7D 89 03 A6 */ mtctr r12 -/* 801253EC 0012232C 4E 80 04 21 */ bctrl -.L_801253F0: -/* 801253F0 00122330 80 6D 93 20 */ lwz r3, pelletMgr__4Game@sda21(r13) -/* 801253F4 00122334 28 03 00 00 */ cmplwi r3, 0 -/* 801253F8 00122338 41 82 00 A4 */ beq .L_8012549C -/* 801253FC 0012233C 3C 80 80 4B */ lis r4, __vt__Q24Game15CreatureInitArg@ha -/* 80125400 00122340 39 00 00 00 */ li r8, 0 -/* 80125404 00122344 38 A4 A2 F4 */ addi r5, r4, __vt__Q24Game15CreatureInitArg@l -/* 80125408 00122348 38 00 FF FF */ li r0, -1 -/* 8012540C 0012234C 3C 80 80 4B */ lis r4, __vt__Q24Game13PelletInitArg@ha -/* 80125410 00122350 90 A1 00 08 */ stw r5, 8(r1) -/* 80125414 00122354 38 84 A2 B8 */ addi r4, r4, __vt__Q24Game13PelletInitArg@l -/* 80125418 00122358 38 E0 00 FF */ li r7, 0xff -/* 8012541C 0012235C 38 C0 00 01 */ li r6, 1 -/* 80125420 00122360 90 81 00 08 */ stw r4, 8(r1) -/* 80125424 00122364 38 81 00 08 */ addi r4, r1, 8 -/* 80125428 00122368 38 BF 00 38 */ addi r5, r31, 0x38 -/* 8012542C 0012236C 99 01 00 24 */ stb r8, 0x24(r1) -/* 80125430 00122370 B1 01 00 1C */ sth r8, 0x1c(r1) -/* 80125434 00122374 98 E1 00 1E */ stb r7, 0x1e(r1) -/* 80125438 00122378 91 01 00 20 */ stw r8, 0x20(r1) -/* 8012543C 0012237C 99 01 00 1F */ stb r8, 0x1f(r1) -/* 80125440 00122380 98 C1 00 0C */ stb r6, 0xc(r1) -/* 80125444 00122384 99 01 00 25 */ stb r8, 0x25(r1) -/* 80125448 00122388 90 01 00 2C */ stw r0, 0x2c(r1) -/* 8012544C 0012238C 90 01 00 28 */ stw r0, 0x28(r1) -/* 80125450 00122390 99 01 00 26 */ stb r8, 0x26(r1) -/* 80125454 00122394 99 01 00 27 */ stb r8, 0x27(r1) -/* 80125458 00122398 48 04 87 39 */ bl makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15OtakaraItemCode -/* 8012545C 0012239C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80125460 001223A0 41 82 00 3C */ beq .L_8012549C -/* 80125464 001223A4 80 6D 93 20 */ lwz r3, pelletMgr__4Game@sda21(r13) -/* 80125468 001223A8 38 81 00 08 */ addi r4, r1, 8 -/* 8012546C 001223AC 48 04 82 71 */ bl setUse__Q24Game9PelletMgrFPQ24Game13PelletInitArg -/* 80125470 001223B0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80125474 001223B4 41 82 00 10 */ beq .L_80125484 -/* 80125478 001223B8 38 61 00 08 */ addi r3, r1, 8 -/* 8012547C 001223BC 48 11 7F AD */ bl entry__Q24Game17PelletBirthBufferFRQ24Game13PelletInitArg -/* 80125480 001223C0 48 00 00 1C */ b .L_8012549C -.L_80125484: -/* 80125484 001223C4 38 00 00 00 */ li r0, 0 -/* 80125488 001223C8 B0 1F 00 38 */ sth r0, 0x38(r31) -/* 8012548C 001223CC 48 00 00 10 */ b .L_8012549C -.L_80125490: -/* 80125490 001223D0 7F E3 FB 78 */ mr r3, r31 -/* 80125494 001223D4 7F A4 EB 78 */ mr r4, r29 -/* 80125498 001223D8 48 00 00 25 */ bl doReadOldVersion__Q24Game14GenObjectEnemyFR6Stream -.L_8012549C: -/* 8012549C 001223DC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 801254A0 001223E0 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 801254A4 001223E4 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 801254A8 001223E8 83 A1 00 34 */ lwz r29, 0x34(r1) -/* 801254AC 001223EC 7C 08 03 A6 */ mtlr r0 -/* 801254B0 001223F0 38 21 00 40 */ addi r1, r1, 0x40 -/* 801254B4 001223F4 4E 80 00 20 */ blr -.endfn doRead__Q24Game14GenObjectEnemyFR6Stream - -.fn doRead__Q24Game18EnemyGeneratorBaseFR6Stream, weak -/* 801254B8 001223F8 4E 80 00 20 */ blr -.endfn doRead__Q24Game18EnemyGeneratorBaseFR6Stream - -.fn doReadOldVersion__Q24Game14GenObjectEnemyFR6Stream, global -/* 801254BC 001223FC 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 801254C0 00122400 7C 08 02 A6 */ mflr r0 -/* 801254C4 00122404 90 01 00 74 */ stw r0, 0x74(r1) -/* 801254C8 00122408 93 E1 00 6C */ stw r31, 0x6c(r1) -/* 801254CC 0012240C 7C 7F 1B 78 */ mr r31, r3 -/* 801254D0 00122410 3C 60 30 30 */ lis r3, 0x30303032@ha -/* 801254D4 00122414 93 C1 00 68 */ stw r30, 0x68(r1) -/* 801254D8 00122418 38 03 30 32 */ addi r0, r3, 0x30303032@l -/* 801254DC 0012241C 93 A1 00 64 */ stw r29, 0x64(r1) -/* 801254E0 00122420 7C 9D 23 78 */ mr r29, r4 -/* 801254E4 00122424 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 801254E8 00122428 7C 05 00 00 */ cmpw r5, r0 -/* 801254EC 0012242C 41 82 00 E0 */ beq .L_801255CC -/* 801254F0 00122430 40 80 00 18 */ bge .L_80125508 -/* 801254F4 00122434 38 03 30 30 */ addi r0, r3, 0x3030 -/* 801254F8 00122438 7C 05 00 00 */ cmpw r5, r0 -/* 801254FC 0012243C 41 82 00 20 */ beq .L_8012551C -/* 80125500 00122440 40 80 00 30 */ bge .L_80125530 -/* 80125504 00122444 48 00 04 0C */ b .L_80125910 -.L_80125508: -/* 80125508 00122448 38 03 30 34 */ addi r0, r3, 0x3034 -/* 8012550C 0012244C 7C 05 00 00 */ cmpw r5, r0 -/* 80125510 00122450 41 82 02 B4 */ beq .L_801257C4 -/* 80125514 00122454 40 80 03 FC */ bge .L_80125910 -/* 80125518 00122458 48 00 01 5C */ b .L_80125674 -.L_8012551C: -/* 8012551C 0012245C 7F A3 EB 78 */ mr r3, r29 -/* 80125520 00122460 48 2E F2 45 */ bl readShort__6StreamFv -/* 80125524 00122464 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80125528 00122468 90 1F 00 24 */ stw r0, 0x24(r31) -/* 8012552C 0012246C 48 00 03 E4 */ b .L_80125910 -.L_80125530: -/* 80125530 00122470 7F A3 EB 78 */ mr r3, r29 -/* 80125534 00122474 48 2E F2 31 */ bl readShort__6StreamFv -/* 80125538 00122478 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 8012553C 0012247C 7F A3 EB 78 */ mr r3, r29 -/* 80125540 00122480 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80125544 00122484 48 2E F2 21 */ bl readShort__6StreamFv -/* 80125548 00122488 B0 7F 00 2A */ sth r3, 0x2a(r31) -/* 8012554C 0012248C 7F A3 EB 78 */ mr r3, r29 -/* 80125550 00122490 48 2E F8 5D */ bl readFloat__6StreamFv -/* 80125554 00122494 D0 3F 00 30 */ stfs f1, 0x30(r31) -/* 80125558 00122498 7F A3 EB 78 */ mr r3, r29 -/* 8012555C 0012249C 48 2E EF 41 */ bl readByte__6StreamFv -/* 80125560 001224A0 98 7F 00 28 */ stb r3, 0x28(r31) -/* 80125564 001224A4 7F A3 EB 78 */ mr r3, r29 -/* 80125568 001224A8 48 2E F8 45 */ bl readFloat__6StreamFv -/* 8012556C 001224AC D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 80125570 001224B0 7F E3 FB 78 */ mr r3, r31 -/* 80125574 001224B4 48 00 03 B9 */ bl createEnemyGenerator__Q24Game14GenObjectEnemyFv -/* 80125578 001224B8 83 DF 00 48 */ lwz r30, 0x48(r31) -/* 8012557C 001224BC 28 1E 00 00 */ cmplwi r30, 0 -/* 80125580 001224C0 41 82 00 28 */ beq .L_801255A8 -/* 80125584 001224C4 7F A4 EB 78 */ mr r4, r29 -/* 80125588 001224C8 38 7E 00 18 */ addi r3, r30, 0x18 -/* 8012558C 001224CC 48 2E DF 65 */ bl read__4ID32FR6Stream -/* 80125590 001224D0 7F C3 F3 78 */ mr r3, r30 -/* 80125594 001224D4 7F A4 EB 78 */ mr r4, r29 -/* 80125598 001224D8 81 9E 00 00 */ lwz r12, 0(r30) -/* 8012559C 001224DC 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 801255A0 001224E0 7D 89 03 A6 */ mtctr r12 -/* 801255A4 001224E4 4E 80 04 21 */ bctrl -.L_801255A8: -/* 801255A8 001224E8 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13) -/* 801255AC 001224EC 28 03 00 00 */ cmplwi r3, 0 -/* 801255B0 001224F0 41 82 03 60 */ beq .L_80125910 -/* 801255B4 001224F4 A8 1F 00 2A */ lha r0, 0x2a(r31) -/* 801255B8 001224F8 38 C0 00 00 */ li r6, 0 -/* 801255BC 001224FC 80 9F 00 24 */ lwz r4, 0x24(r31) -/* 801255C0 00122500 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 801255C4 00122504 4B FE 82 91 */ bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy -/* 801255C8 00122508 48 00 03 48 */ b .L_80125910 -.L_801255CC: -/* 801255CC 0012250C 7F A3 EB 78 */ mr r3, r29 -/* 801255D0 00122510 48 2E F1 95 */ bl readShort__6StreamFv -/* 801255D4 00122514 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 801255D8 00122518 7F A3 EB 78 */ mr r3, r29 -/* 801255DC 0012251C 90 1F 00 24 */ stw r0, 0x24(r31) -/* 801255E0 00122520 48 2E F1 85 */ bl readShort__6StreamFv -/* 801255E4 00122524 B0 7F 00 2A */ sth r3, 0x2a(r31) -/* 801255E8 00122528 7F A3 EB 78 */ mr r3, r29 -/* 801255EC 0012252C 48 2E F7 C1 */ bl readFloat__6StreamFv -/* 801255F0 00122530 D0 3F 00 30 */ stfs f1, 0x30(r31) -/* 801255F4 00122534 7F A3 EB 78 */ mr r3, r29 -/* 801255F8 00122538 48 2E EE A5 */ bl readByte__6StreamFv -/* 801255FC 0012253C 98 7F 00 28 */ stb r3, 0x28(r31) -/* 80125600 00122540 7F A3 EB 78 */ mr r3, r29 -/* 80125604 00122544 48 2E F7 A9 */ bl readFloat__6StreamFv -/* 80125608 00122548 D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 8012560C 0012254C 7F A3 EB 78 */ mr r3, r29 -/* 80125610 00122550 48 2E F7 9D */ bl readFloat__6StreamFv -/* 80125614 00122554 D0 3F 00 34 */ stfs f1, 0x34(r31) -/* 80125618 00122558 7F E3 FB 78 */ mr r3, r31 -/* 8012561C 0012255C 48 00 03 11 */ bl createEnemyGenerator__Q24Game14GenObjectEnemyFv -/* 80125620 00122560 83 DF 00 48 */ lwz r30, 0x48(r31) -/* 80125624 00122564 28 1E 00 00 */ cmplwi r30, 0 -/* 80125628 00122568 41 82 00 28 */ beq .L_80125650 -/* 8012562C 0012256C 7F A4 EB 78 */ mr r4, r29 -/* 80125630 00122570 38 7E 00 18 */ addi r3, r30, 0x18 -/* 80125634 00122574 48 2E DE BD */ bl read__4ID32FR6Stream -/* 80125638 00122578 7F C3 F3 78 */ mr r3, r30 -/* 8012563C 0012257C 7F A4 EB 78 */ mr r4, r29 -/* 80125640 00122580 81 9E 00 00 */ lwz r12, 0(r30) -/* 80125644 00122584 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 80125648 00122588 7D 89 03 A6 */ mtctr r12 -/* 8012564C 0012258C 4E 80 04 21 */ bctrl -.L_80125650: -/* 80125650 00122590 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13) -/* 80125654 00122594 28 03 00 00 */ cmplwi r3, 0 -/* 80125658 00122598 41 82 02 B8 */ beq .L_80125910 -/* 8012565C 0012259C A8 1F 00 2A */ lha r0, 0x2a(r31) -/* 80125660 001225A0 38 C0 00 00 */ li r6, 0 -/* 80125664 001225A4 80 9F 00 24 */ lwz r4, 0x24(r31) -/* 80125668 001225A8 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 8012566C 001225AC 4B FE 81 E9 */ bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy -/* 80125670 001225B0 48 00 02 A0 */ b .L_80125910 -.L_80125674: -/* 80125674 001225B4 7F A3 EB 78 */ mr r3, r29 -/* 80125678 001225B8 48 2E F0 ED */ bl readShort__6StreamFv -/* 8012567C 001225BC 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80125680 001225C0 7F A3 EB 78 */ mr r3, r29 -/* 80125684 001225C4 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80125688 001225C8 48 2E F0 DD */ bl readShort__6StreamFv -/* 8012568C 001225CC B0 7F 00 2A */ sth r3, 0x2a(r31) -/* 80125690 001225D0 7F A3 EB 78 */ mr r3, r29 -/* 80125694 001225D4 48 2E F7 19 */ bl readFloat__6StreamFv -/* 80125698 001225D8 D0 3F 00 30 */ stfs f1, 0x30(r31) -/* 8012569C 001225DC 7F A3 EB 78 */ mr r3, r29 -/* 801256A0 001225E0 48 2E ED FD */ bl readByte__6StreamFv -/* 801256A4 001225E4 98 7F 00 28 */ stb r3, 0x28(r31) -/* 801256A8 001225E8 7F A3 EB 78 */ mr r3, r29 -/* 801256AC 001225EC 48 2E F7 01 */ bl readFloat__6StreamFv -/* 801256B0 001225F0 D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 801256B4 001225F4 7F A3 EB 78 */ mr r3, r29 -/* 801256B8 001225F8 48 2E F6 F5 */ bl readFloat__6StreamFv -/* 801256BC 001225FC D0 3F 00 34 */ stfs f1, 0x34(r31) -/* 801256C0 00122600 7F A4 EB 78 */ mr r4, r29 -/* 801256C4 00122604 38 7F 00 38 */ addi r3, r31, 0x38 -/* 801256C8 00122608 48 04 88 15 */ bl read__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream -/* 801256CC 0012260C 7F E3 FB 78 */ mr r3, r31 -/* 801256D0 00122610 48 00 02 5D */ bl createEnemyGenerator__Q24Game14GenObjectEnemyFv -/* 801256D4 00122614 83 DF 00 48 */ lwz r30, 0x48(r31) -/* 801256D8 00122618 28 1E 00 00 */ cmplwi r30, 0 -/* 801256DC 0012261C 41 82 00 28 */ beq .L_80125704 -/* 801256E0 00122620 7F A4 EB 78 */ mr r4, r29 -/* 801256E4 00122624 38 7E 00 18 */ addi r3, r30, 0x18 -/* 801256E8 00122628 48 2E DE 09 */ bl read__4ID32FR6Stream -/* 801256EC 0012262C 7F C3 F3 78 */ mr r3, r30 -/* 801256F0 00122630 7F A4 EB 78 */ mr r4, r29 -/* 801256F4 00122634 81 9E 00 00 */ lwz r12, 0(r30) -/* 801256F8 00122638 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 801256FC 0012263C 7D 89 03 A6 */ mtctr r12 -/* 80125700 00122640 4E 80 04 21 */ bctrl -.L_80125704: -/* 80125704 00122644 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13) -/* 80125708 00122648 28 03 00 00 */ cmplwi r3, 0 -/* 8012570C 0012264C 41 82 00 18 */ beq .L_80125724 -/* 80125710 00122650 A8 1F 00 2A */ lha r0, 0x2a(r31) -/* 80125714 00122654 38 C0 00 00 */ li r6, 0 -/* 80125718 00122658 80 9F 00 24 */ lwz r4, 0x24(r31) -/* 8012571C 0012265C 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 80125720 00122660 4B FE 81 35 */ bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy -.L_80125724: -/* 80125724 00122664 80 6D 93 20 */ lwz r3, pelletMgr__4Game@sda21(r13) -/* 80125728 00122668 28 03 00 00 */ cmplwi r3, 0 -/* 8012572C 0012266C 41 82 01 E4 */ beq .L_80125910 -/* 80125730 00122670 3C 80 80 4B */ lis r4, __vt__Q24Game15CreatureInitArg@ha -/* 80125734 00122674 39 00 00 00 */ li r8, 0 -/* 80125738 00122678 38 A4 A2 F4 */ addi r5, r4, __vt__Q24Game15CreatureInitArg@l -/* 8012573C 0012267C 38 00 FF FF */ li r0, -1 -/* 80125740 00122680 3C 80 80 4B */ lis r4, __vt__Q24Game13PelletInitArg@ha -/* 80125744 00122684 90 A1 00 30 */ stw r5, 0x30(r1) -/* 80125748 00122688 38 84 A2 B8 */ addi r4, r4, __vt__Q24Game13PelletInitArg@l -/* 8012574C 0012268C 38 E0 00 FF */ li r7, 0xff -/* 80125750 00122690 38 C0 00 01 */ li r6, 1 -/* 80125754 00122694 90 81 00 30 */ stw r4, 0x30(r1) -/* 80125758 00122698 38 81 00 30 */ addi r4, r1, 0x30 -/* 8012575C 0012269C 38 BF 00 38 */ addi r5, r31, 0x38 -/* 80125760 001226A0 99 01 00 4C */ stb r8, 0x4c(r1) -/* 80125764 001226A4 B1 01 00 44 */ sth r8, 0x44(r1) -/* 80125768 001226A8 98 E1 00 46 */ stb r7, 0x46(r1) -/* 8012576C 001226AC 91 01 00 48 */ stw r8, 0x48(r1) -/* 80125770 001226B0 99 01 00 47 */ stb r8, 0x47(r1) -/* 80125774 001226B4 98 C1 00 34 */ stb r6, 0x34(r1) -/* 80125778 001226B8 99 01 00 4D */ stb r8, 0x4d(r1) -/* 8012577C 001226BC 90 01 00 54 */ stw r0, 0x54(r1) -/* 80125780 001226C0 90 01 00 50 */ stw r0, 0x50(r1) -/* 80125784 001226C4 99 01 00 4E */ stb r8, 0x4e(r1) -/* 80125788 001226C8 99 01 00 4F */ stb r8, 0x4f(r1) -/* 8012578C 001226CC 48 04 84 05 */ bl makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15OtakaraItemCode -/* 80125790 001226D0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80125794 001226D4 41 82 01 7C */ beq .L_80125910 -/* 80125798 001226D8 80 6D 93 20 */ lwz r3, pelletMgr__4Game@sda21(r13) -/* 8012579C 001226DC 38 81 00 30 */ addi r4, r1, 0x30 -/* 801257A0 001226E0 48 04 7F 3D */ bl setUse__Q24Game9PelletMgrFPQ24Game13PelletInitArg -/* 801257A4 001226E4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801257A8 001226E8 41 82 00 10 */ beq .L_801257B8 -/* 801257AC 001226EC 38 61 00 30 */ addi r3, r1, 0x30 -/* 801257B0 001226F0 48 11 7C 79 */ bl entry__Q24Game17PelletBirthBufferFRQ24Game13PelletInitArg -/* 801257B4 001226F4 48 00 01 5C */ b .L_80125910 -.L_801257B8: -/* 801257B8 001226F8 38 00 00 00 */ li r0, 0 -/* 801257BC 001226FC B0 1F 00 38 */ sth r0, 0x38(r31) -/* 801257C0 00122700 48 00 01 50 */ b .L_80125910 -.L_801257C4: -/* 801257C4 00122704 7F A3 EB 78 */ mr r3, r29 -/* 801257C8 00122708 48 2E EF 9D */ bl readShort__6StreamFv -/* 801257CC 0012270C 54 63 04 3E */ clrlwi r3, r3, 0x10 -/* 801257D0 00122710 38 00 00 00 */ li r0, 0 -/* 801257D4 00122714 90 7F 00 24 */ stw r3, 0x24(r31) -/* 801257D8 00122718 7F A3 EB 78 */ mr r3, r29 -/* 801257DC 0012271C 98 1F 00 29 */ stb r0, 0x29(r31) -/* 801257E0 00122720 48 2E EF 85 */ bl readShort__6StreamFv -/* 801257E4 00122724 B0 7F 00 2A */ sth r3, 0x2a(r31) -/* 801257E8 00122728 7F A3 EB 78 */ mr r3, r29 -/* 801257EC 0012272C 48 2E F5 C1 */ bl readFloat__6StreamFv -/* 801257F0 00122730 D0 3F 00 30 */ stfs f1, 0x30(r31) -/* 801257F4 00122734 7F A3 EB 78 */ mr r3, r29 -/* 801257F8 00122738 48 2E EC A5 */ bl readByte__6StreamFv -/* 801257FC 0012273C 98 7F 00 28 */ stb r3, 0x28(r31) -/* 80125800 00122740 7F A3 EB 78 */ mr r3, r29 -/* 80125804 00122744 48 2E F5 A9 */ bl readFloat__6StreamFv -/* 80125808 00122748 D0 3F 00 2C */ stfs f1, 0x2c(r31) -/* 8012580C 0012274C 7F A3 EB 78 */ mr r3, r29 -/* 80125810 00122750 48 2E F5 9D */ bl readFloat__6StreamFv -/* 80125814 00122754 D0 3F 00 34 */ stfs f1, 0x34(r31) -/* 80125818 00122758 7F A4 EB 78 */ mr r4, r29 -/* 8012581C 0012275C 38 7F 00 38 */ addi r3, r31, 0x38 -/* 80125820 00122760 48 04 86 BD */ bl read__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream -/* 80125824 00122764 38 7F 00 3C */ addi r3, r31, 0x3c -/* 80125828 00122768 7F A4 EB 78 */ mr r4, r29 -/* 8012582C 0012276C 81 9F 00 44 */ lwz r12, 0x44(r31) -/* 80125830 00122770 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80125834 00122774 7D 89 03 A6 */ mtctr r12 -/* 80125838 00122778 4E 80 04 21 */ bctrl -/* 8012583C 0012277C 7F E3 FB 78 */ mr r3, r31 -/* 80125840 00122780 48 00 00 ED */ bl createEnemyGenerator__Q24Game14GenObjectEnemyFv -/* 80125844 00122784 83 DF 00 48 */ lwz r30, 0x48(r31) -/* 80125848 00122788 28 1E 00 00 */ cmplwi r30, 0 -/* 8012584C 0012278C 41 82 00 28 */ beq .L_80125874 -/* 80125850 00122790 7F A4 EB 78 */ mr r4, r29 -/* 80125854 00122794 38 7E 00 18 */ addi r3, r30, 0x18 -/* 80125858 00122798 48 2E DC 99 */ bl read__4ID32FR6Stream -/* 8012585C 0012279C 7F C3 F3 78 */ mr r3, r30 -/* 80125860 001227A0 7F A4 EB 78 */ mr r4, r29 -/* 80125864 001227A4 81 9E 00 00 */ lwz r12, 0(r30) -/* 80125868 001227A8 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 8012586C 001227AC 7D 89 03 A6 */ mtctr r12 -/* 80125870 001227B0 4E 80 04 21 */ bctrl -.L_80125874: -/* 80125874 001227B4 80 6D 93 20 */ lwz r3, pelletMgr__4Game@sda21(r13) -/* 80125878 001227B8 28 03 00 00 */ cmplwi r3, 0 -/* 8012587C 001227BC 41 82 00 94 */ beq .L_80125910 -/* 80125880 001227C0 3C 80 80 4B */ lis r4, __vt__Q24Game15CreatureInitArg@ha -/* 80125884 001227C4 39 00 00 00 */ li r8, 0 -/* 80125888 001227C8 38 A4 A2 F4 */ addi r5, r4, __vt__Q24Game15CreatureInitArg@l -/* 8012588C 001227CC 38 00 FF FF */ li r0, -1 -/* 80125890 001227D0 3C 80 80 4B */ lis r4, __vt__Q24Game13PelletInitArg@ha -/* 80125894 001227D4 90 A1 00 08 */ stw r5, 8(r1) -/* 80125898 001227D8 38 84 A2 B8 */ addi r4, r4, __vt__Q24Game13PelletInitArg@l -/* 8012589C 001227DC 38 E0 00 FF */ li r7, 0xff -/* 801258A0 001227E0 38 C0 00 01 */ li r6, 1 -/* 801258A4 001227E4 90 81 00 08 */ stw r4, 8(r1) -/* 801258A8 001227E8 38 81 00 08 */ addi r4, r1, 8 -/* 801258AC 001227EC 38 BF 00 38 */ addi r5, r31, 0x38 -/* 801258B0 001227F0 99 01 00 24 */ stb r8, 0x24(r1) -/* 801258B4 001227F4 B1 01 00 1C */ sth r8, 0x1c(r1) -/* 801258B8 001227F8 98 E1 00 1E */ stb r7, 0x1e(r1) -/* 801258BC 001227FC 91 01 00 20 */ stw r8, 0x20(r1) -/* 801258C0 00122800 99 01 00 1F */ stb r8, 0x1f(r1) -/* 801258C4 00122804 98 C1 00 0C */ stb r6, 0xc(r1) -/* 801258C8 00122808 99 01 00 25 */ stb r8, 0x25(r1) -/* 801258CC 0012280C 90 01 00 2C */ stw r0, 0x2c(r1) -/* 801258D0 00122810 90 01 00 28 */ stw r0, 0x28(r1) -/* 801258D4 00122814 99 01 00 26 */ stb r8, 0x26(r1) -/* 801258D8 00122818 99 01 00 27 */ stb r8, 0x27(r1) -/* 801258DC 0012281C 48 04 82 B5 */ bl makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15OtakaraItemCode -/* 801258E0 00122820 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801258E4 00122824 41 82 00 2C */ beq .L_80125910 -/* 801258E8 00122828 80 6D 93 20 */ lwz r3, pelletMgr__4Game@sda21(r13) -/* 801258EC 0012282C 38 81 00 08 */ addi r4, r1, 8 -/* 801258F0 00122830 48 04 7D ED */ bl setUse__Q24Game9PelletMgrFPQ24Game13PelletInitArg -/* 801258F4 00122834 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801258F8 00122838 41 82 00 10 */ beq .L_80125908 -/* 801258FC 0012283C 38 61 00 08 */ addi r3, r1, 8 -/* 80125900 00122840 48 11 7B 29 */ bl entry__Q24Game17PelletBirthBufferFRQ24Game13PelletInitArg -/* 80125904 00122844 48 00 00 0C */ b .L_80125910 -.L_80125908: -/* 80125908 00122848 38 00 00 00 */ li r0, 0 -/* 8012590C 0012284C B0 1F 00 38 */ sth r0, 0x38(r31) -.L_80125910: -/* 80125910 00122850 80 01 00 74 */ lwz r0, 0x74(r1) -/* 80125914 00122854 83 E1 00 6C */ lwz r31, 0x6c(r1) -/* 80125918 00122858 83 C1 00 68 */ lwz r30, 0x68(r1) -/* 8012591C 0012285C 83 A1 00 64 */ lwz r29, 0x64(r1) -/* 80125920 00122860 7C 08 03 A6 */ mtlr r0 -/* 80125924 00122864 38 21 00 70 */ addi r1, r1, 0x70 -/* 80125928 00122868 4E 80 00 20 */ blr -.endfn doReadOldVersion__Q24Game14GenObjectEnemyFR6Stream - -.fn createEnemyGenerator__Q24Game14GenObjectEnemyFv, global -/* 8012592C 0012286C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80125930 00122870 7C 08 02 A6 */ mflr r0 -/* 80125934 00122874 90 01 00 14 */ stw r0, 0x14(r1) -/* 80125938 00122878 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8012593C 0012287C 93 C1 00 08 */ stw r30, 8(r1) -/* 80125940 00122880 7C 7E 1B 78 */ mr r30, r3 -/* 80125944 00122884 3C 60 80 48 */ lis r3, lbl_8047B750@ha -/* 80125948 00122888 80 1E 00 24 */ lwz r0, 0x24(r30) -/* 8012594C 0012288C 3B E3 B7 50 */ addi r31, r3, lbl_8047B750@l -/* 80125950 00122890 28 00 00 65 */ cmplwi r0, 0x65 -/* 80125954 00122894 41 81 0D D4 */ bgt .L_80126728 -/* 80125958 00122898 3C 60 80 4B */ lis r3, lbl_804ADA18@ha -/* 8012595C 0012289C 54 00 10 3A */ slwi r0, r0, 2 -/* 80125960 001228A0 38 63 DA 18 */ addi r3, r3, lbl_804ADA18@l -/* 80125964 001228A4 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80125968 001228A8 7C 09 03 A6 */ mtctr r0 -/* 8012596C 001228AC 4E 80 04 20 */ bctr -.L_80125970: -/* 80125970 001228B0 38 60 00 28 */ li r3, 0x28 -/* 80125974 001228B4 4B EF E5 31 */ bl __nw__FUl -/* 80125978 001228B8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012597C 001228BC 41 82 00 0C */ beq .L_80125988 -/* 80125980 001228C0 48 00 1C 31 */ bl __ct__Q34Game8Pelplant9GeneratorFv -/* 80125984 001228C4 7C 60 1B 78 */ mr r0, r3 -.L_80125988: -/* 80125988 001228C8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012598C 001228CC 48 00 0D BC */ b .L_80126748 -.L_80125990: -/* 80125990 001228D0 38 60 00 24 */ li r3, 0x24 -/* 80125994 001228D4 4B EF E5 11 */ bl __nw__FUl -/* 80125998 001228D8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012599C 001228DC 41 82 00 10 */ beq .L_801259AC -/* 801259A0 001228E0 38 9F 00 A8 */ addi r4, r31, 0xa8 -/* 801259A4 001228E4 48 00 0D C1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801259A8 001228E8 7C 60 1B 78 */ mr r0, r3 -.L_801259AC: -/* 801259AC 001228EC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801259B0 001228F0 48 00 0D 98 */ b .L_80126748 -.L_801259B4: -/* 801259B4 001228F4 38 60 00 24 */ li r3, 0x24 -/* 801259B8 001228F8 4B EF E4 ED */ bl __nw__FUl -/* 801259BC 001228FC 7C 60 1B 79 */ or. r0, r3, r3 -/* 801259C0 00122900 41 82 00 10 */ beq .L_801259D0 -/* 801259C4 00122904 38 9F 00 B8 */ addi r4, r31, 0xb8 -/* 801259C8 00122908 48 00 0D 9D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801259CC 0012290C 7C 60 1B 78 */ mr r0, r3 -.L_801259D0: -/* 801259D0 00122910 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801259D4 00122914 48 00 0D 74 */ b .L_80126748 -.L_801259D8: -/* 801259D8 00122918 38 60 00 24 */ li r3, 0x24 -/* 801259DC 0012291C 4B EF E4 C9 */ bl __nw__FUl -/* 801259E0 00122920 7C 60 1B 79 */ or. r0, r3, r3 -/* 801259E4 00122924 41 82 00 10 */ beq .L_801259F4 -/* 801259E8 00122928 38 9F 00 C8 */ addi r4, r31, 0xc8 -/* 801259EC 0012292C 48 00 0D 79 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801259F0 00122930 7C 60 1B 78 */ mr r0, r3 -.L_801259F4: -/* 801259F4 00122934 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801259F8 00122938 48 00 0D 50 */ b .L_80126748 -.L_801259FC: -/* 801259FC 0012293C 38 60 00 24 */ li r3, 0x24 -/* 80125A00 00122940 4B EF E4 A5 */ bl __nw__FUl -/* 80125A04 00122944 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125A08 00122948 41 82 00 10 */ beq .L_80125A18 -/* 80125A0C 0012294C 38 9F 00 D8 */ addi r4, r31, 0xd8 -/* 80125A10 00122950 48 00 0D 55 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125A14 00122954 7C 60 1B 78 */ mr r0, r3 -.L_80125A18: -/* 80125A18 00122958 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125A1C 0012295C 48 00 0D 2C */ b .L_80126748 -.L_80125A20: -/* 80125A20 00122960 38 60 00 24 */ li r3, 0x24 -/* 80125A24 00122964 4B EF E4 81 */ bl __nw__FUl -/* 80125A28 00122968 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125A2C 0012296C 41 82 00 10 */ beq .L_80125A3C -/* 80125A30 00122970 38 9F 00 E8 */ addi r4, r31, 0xe8 -/* 80125A34 00122974 48 00 0D 31 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125A38 00122978 7C 60 1B 78 */ mr r0, r3 -.L_80125A3C: -/* 80125A3C 0012297C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125A40 00122980 48 00 0D 08 */ b .L_80126748 -.L_80125A44: -/* 80125A44 00122984 38 60 00 24 */ li r3, 0x24 -/* 80125A48 00122988 4B EF E4 5D */ bl __nw__FUl -/* 80125A4C 0012298C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125A50 00122990 41 82 00 10 */ beq .L_80125A60 -/* 80125A54 00122994 38 9F 00 F8 */ addi r4, r31, 0xf8 -/* 80125A58 00122998 48 00 0D 0D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125A5C 0012299C 7C 60 1B 78 */ mr r0, r3 -.L_80125A60: -/* 80125A60 001229A0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125A64 001229A4 48 00 0C E4 */ b .L_80126748 -.L_80125A68: -/* 80125A68 001229A8 38 60 00 24 */ li r3, 0x24 -/* 80125A6C 001229AC 4B EF E4 39 */ bl __nw__FUl -/* 80125A70 001229B0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125A74 001229B4 41 82 00 10 */ beq .L_80125A84 -/* 80125A78 001229B8 38 9F 01 08 */ addi r4, r31, 0x108 -/* 80125A7C 001229BC 48 00 0C E9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125A80 001229C0 7C 60 1B 78 */ mr r0, r3 -.L_80125A84: -/* 80125A84 001229C4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125A88 001229C8 48 00 0C C0 */ b .L_80126748 -.L_80125A8C: -/* 80125A8C 001229CC 38 60 00 24 */ li r3, 0x24 -/* 80125A90 001229D0 4B EF E4 15 */ bl __nw__FUl -/* 80125A94 001229D4 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125A98 001229D8 41 82 00 10 */ beq .L_80125AA8 -/* 80125A9C 001229DC 38 9F 01 18 */ addi r4, r31, 0x118 -/* 80125AA0 001229E0 48 00 0C C5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125AA4 001229E4 7C 60 1B 78 */ mr r0, r3 -.L_80125AA8: -/* 80125AA8 001229E8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125AAC 001229EC 48 00 0C 9C */ b .L_80126748 -.L_80125AB0: -/* 80125AB0 001229F0 38 60 00 24 */ li r3, 0x24 -/* 80125AB4 001229F4 4B EF E3 F1 */ bl __nw__FUl -/* 80125AB8 001229F8 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125ABC 001229FC 41 82 00 10 */ beq .L_80125ACC -/* 80125AC0 00122A00 38 9F 01 28 */ addi r4, r31, 0x128 -/* 80125AC4 00122A04 48 00 0C A1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125AC8 00122A08 7C 60 1B 78 */ mr r0, r3 -.L_80125ACC: -/* 80125ACC 00122A0C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125AD0 00122A10 48 00 0C 78 */ b .L_80126748 -.L_80125AD4: -/* 80125AD4 00122A14 38 60 00 24 */ li r3, 0x24 -/* 80125AD8 00122A18 4B EF E3 CD */ bl __nw__FUl -/* 80125ADC 00122A1C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125AE0 00122A20 41 82 00 10 */ beq .L_80125AF0 -/* 80125AE4 00122A24 38 9F 01 38 */ addi r4, r31, 0x138 -/* 80125AE8 00122A28 48 00 0C 7D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125AEC 00122A2C 7C 60 1B 78 */ mr r0, r3 -.L_80125AF0: -/* 80125AF0 00122A30 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125AF4 00122A34 48 00 0C 54 */ b .L_80126748 -.L_80125AF8: -/* 80125AF8 00122A38 38 60 00 24 */ li r3, 0x24 -/* 80125AFC 00122A3C 4B EF E3 A9 */ bl __nw__FUl -/* 80125B00 00122A40 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125B04 00122A44 41 82 00 10 */ beq .L_80125B14 -/* 80125B08 00122A48 38 9F 01 48 */ addi r4, r31, 0x148 -/* 80125B0C 00122A4C 48 00 0C 59 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125B10 00122A50 7C 60 1B 78 */ mr r0, r3 -.L_80125B14: -/* 80125B14 00122A54 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125B18 00122A58 48 00 0C 30 */ b .L_80126748 -.L_80125B1C: -/* 80125B1C 00122A5C 38 60 00 24 */ li r3, 0x24 -/* 80125B20 00122A60 4B EF E3 85 */ bl __nw__FUl -/* 80125B24 00122A64 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125B28 00122A68 41 82 00 10 */ beq .L_80125B38 -/* 80125B2C 00122A6C 38 9F 01 58 */ addi r4, r31, 0x158 -/* 80125B30 00122A70 48 00 0C 35 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125B34 00122A74 7C 60 1B 78 */ mr r0, r3 -.L_80125B38: -/* 80125B38 00122A78 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125B3C 00122A7C 48 00 0C 0C */ b .L_80126748 -.L_80125B40: -/* 80125B40 00122A80 38 60 00 24 */ li r3, 0x24 -/* 80125B44 00122A84 4B EF E3 61 */ bl __nw__FUl -/* 80125B48 00122A88 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125B4C 00122A8C 41 82 00 10 */ beq .L_80125B5C -/* 80125B50 00122A90 38 82 9B 80 */ addi r4, r2, lbl_80517EE0@sda21 -/* 80125B54 00122A94 48 00 0C 11 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125B58 00122A98 7C 60 1B 78 */ mr r0, r3 -.L_80125B5C: -/* 80125B5C 00122A9C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125B60 00122AA0 48 00 0B E8 */ b .L_80126748 -.L_80125B64: -/* 80125B64 00122AA4 38 60 00 24 */ li r3, 0x24 -/* 80125B68 00122AA8 4B EF E3 3D */ bl __nw__FUl -/* 80125B6C 00122AAC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125B70 00122AB0 41 82 00 10 */ beq .L_80125B80 -/* 80125B74 00122AB4 38 9F 01 64 */ addi r4, r31, 0x164 -/* 80125B78 00122AB8 48 00 0B ED */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125B7C 00122ABC 7C 60 1B 78 */ mr r0, r3 -.L_80125B80: -/* 80125B80 00122AC0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125B84 00122AC4 48 00 0B C4 */ b .L_80126748 -.L_80125B88: -/* 80125B88 00122AC8 38 60 00 24 */ li r3, 0x24 -/* 80125B8C 00122ACC 4B EF E3 19 */ bl __nw__FUl -/* 80125B90 00122AD0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125B94 00122AD4 41 82 00 10 */ beq .L_80125BA4 -/* 80125B98 00122AD8 38 9F 01 74 */ addi r4, r31, 0x174 -/* 80125B9C 00122ADC 48 00 0B C9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125BA0 00122AE0 7C 60 1B 78 */ mr r0, r3 -.L_80125BA4: -/* 80125BA4 00122AE4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125BA8 00122AE8 48 00 0B A0 */ b .L_80126748 -.L_80125BAC: -/* 80125BAC 00122AEC 38 60 00 24 */ li r3, 0x24 -/* 80125BB0 00122AF0 4B EF E2 F5 */ bl __nw__FUl -/* 80125BB4 00122AF4 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125BB8 00122AF8 41 82 00 10 */ beq .L_80125BC8 -/* 80125BBC 00122AFC 38 9F 01 80 */ addi r4, r31, 0x180 -/* 80125BC0 00122B00 48 00 0B A5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125BC4 00122B04 7C 60 1B 78 */ mr r0, r3 -.L_80125BC8: -/* 80125BC8 00122B08 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125BCC 00122B0C 48 00 0B 7C */ b .L_80126748 -.L_80125BD0: -/* 80125BD0 00122B10 38 60 00 24 */ li r3, 0x24 -/* 80125BD4 00122B14 4B EF E2 D1 */ bl __nw__FUl -/* 80125BD8 00122B18 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125BDC 00122B1C 41 82 00 10 */ beq .L_80125BEC -/* 80125BE0 00122B20 38 9F 01 8C */ addi r4, r31, 0x18c -/* 80125BE4 00122B24 48 00 0B 81 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125BE8 00122B28 7C 60 1B 78 */ mr r0, r3 -.L_80125BEC: -/* 80125BEC 00122B2C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125BF0 00122B30 48 00 0B 58 */ b .L_80126748 -.L_80125BF4: -/* 80125BF4 00122B34 38 60 00 24 */ li r3, 0x24 -/* 80125BF8 00122B38 4B EF E2 AD */ bl __nw__FUl -/* 80125BFC 00122B3C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125C00 00122B40 41 82 00 10 */ beq .L_80125C10 -/* 80125C04 00122B44 38 9F 01 98 */ addi r4, r31, 0x198 -/* 80125C08 00122B48 48 00 0B 5D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125C0C 00122B4C 7C 60 1B 78 */ mr r0, r3 -.L_80125C10: -/* 80125C10 00122B50 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125C14 00122B54 48 00 0B 34 */ b .L_80126748 -.L_80125C18: -/* 80125C18 00122B58 38 60 00 24 */ li r3, 0x24 -/* 80125C1C 00122B5C 4B EF E2 89 */ bl __nw__FUl -/* 80125C20 00122B60 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125C24 00122B64 41 82 00 10 */ beq .L_80125C34 -/* 80125C28 00122B68 38 9F 01 A4 */ addi r4, r31, 0x1a4 -/* 80125C2C 00122B6C 48 00 0B 39 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125C30 00122B70 7C 60 1B 78 */ mr r0, r3 -.L_80125C34: -/* 80125C34 00122B74 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125C38 00122B78 48 00 0B 10 */ b .L_80126748 -.L_80125C3C: -/* 80125C3C 00122B7C 38 60 00 24 */ li r3, 0x24 -/* 80125C40 00122B80 4B EF E2 65 */ bl __nw__FUl -/* 80125C44 00122B84 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125C48 00122B88 41 82 00 10 */ beq .L_80125C58 -/* 80125C4C 00122B8C 38 9F 01 B0 */ addi r4, r31, 0x1b0 -/* 80125C50 00122B90 48 00 0B 15 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125C54 00122B94 7C 60 1B 78 */ mr r0, r3 -.L_80125C58: -/* 80125C58 00122B98 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125C5C 00122B9C 48 00 0A EC */ b .L_80126748 -.L_80125C60: -/* 80125C60 00122BA0 38 60 00 24 */ li r3, 0x24 -/* 80125C64 00122BA4 4B EF E2 41 */ bl __nw__FUl -/* 80125C68 00122BA8 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125C6C 00122BAC 41 82 00 10 */ beq .L_80125C7C -/* 80125C70 00122BB0 38 9F 01 BC */ addi r4, r31, 0x1bc -/* 80125C74 00122BB4 48 00 0A F1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125C78 00122BB8 7C 60 1B 78 */ mr r0, r3 -.L_80125C7C: -/* 80125C7C 00122BBC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125C80 00122BC0 48 00 0A C8 */ b .L_80126748 -.L_80125C84: -/* 80125C84 00122BC4 38 60 00 2C */ li r3, 0x2c -/* 80125C88 00122BC8 4B EF E2 1D */ bl __nw__FUl -/* 80125C8C 00122BCC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125C90 00122BD0 41 82 00 0C */ beq .L_80125C9C -/* 80125C94 00122BD4 48 13 9D F9 */ bl __ct__Q34Game7Qurione9GeneratorFv -/* 80125C98 00122BD8 7C 60 1B 78 */ mr r0, r3 -.L_80125C9C: -/* 80125C9C 00122BDC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125CA0 00122BE0 48 00 0A A8 */ b .L_80126748 -.L_80125CA4: -/* 80125CA4 00122BE4 38 60 00 30 */ li r3, 0x30 -/* 80125CA8 00122BE8 4B EF E1 FD */ bl __nw__FUl -/* 80125CAC 00122BEC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125CB0 00122BF0 41 82 00 0C */ beq .L_80125CBC -/* 80125CB4 00122BF4 48 13 CC 3D */ bl __ct__Q34Game4Rock9GeneratorFv -/* 80125CB8 00122BF8 7C 60 1B 78 */ mr r0, r3 -.L_80125CBC: -/* 80125CBC 00122BFC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125CC0 00122C00 48 00 0A 88 */ b .L_80126748 -.L_80125CC4: -/* 80125CC4 00122C04 38 60 00 24 */ li r3, 0x24 -/* 80125CC8 00122C08 4B EF E1 DD */ bl __nw__FUl -/* 80125CCC 00122C0C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125CD0 00122C10 41 82 00 10 */ beq .L_80125CE0 -/* 80125CD4 00122C14 38 82 9B 88 */ addi r4, r2, lbl_80517EE8@sda21 -/* 80125CD8 00122C18 48 00 0A 8D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125CDC 00122C1C 7C 60 1B 78 */ mr r0, r3 -.L_80125CE0: -/* 80125CE0 00122C20 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125CE4 00122C24 48 00 0A 64 */ b .L_80126748 -.L_80125CE8: -/* 80125CE8 00122C28 38 60 00 24 */ li r3, 0x24 -/* 80125CEC 00122C2C 4B EF E1 B9 */ bl __nw__FUl -/* 80125CF0 00122C30 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125CF4 00122C34 41 82 00 10 */ beq .L_80125D04 -/* 80125CF8 00122C38 38 9F 01 C8 */ addi r4, r31, 0x1c8 -/* 80125CFC 00122C3C 48 00 0A 69 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125D00 00122C40 7C 60 1B 78 */ mr r0, r3 -.L_80125D04: -/* 80125D04 00122C44 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125D08 00122C48 48 00 0A 40 */ b .L_80126748 -.L_80125D0C: -/* 80125D0C 00122C4C 38 60 00 28 */ li r3, 0x28 -/* 80125D10 00122C50 4B EF E1 95 */ bl __nw__FUl -/* 80125D14 00122C54 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125D18 00122C58 41 82 00 0C */ beq .L_80125D24 -/* 80125D1C 00122C5C 48 14 8C ED */ bl __ct__Q34Game8ElecHiba9GeneratorFv -/* 80125D20 00122C60 7C 60 1B 78 */ mr r0, r3 -.L_80125D24: -/* 80125D24 00122C64 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125D28 00122C68 48 00 0A 20 */ b .L_80126748 -.L_80125D2C: -/* 80125D2C 00122C6C 38 60 00 24 */ li r3, 0x24 -/* 80125D30 00122C70 4B EF E1 75 */ bl __nw__FUl -/* 80125D34 00122C74 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125D38 00122C78 41 82 00 10 */ beq .L_80125D48 -/* 80125D3C 00122C7C 38 9F 01 D4 */ addi r4, r31, 0x1d4 -/* 80125D40 00122C80 48 00 0A 25 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125D44 00122C84 7C 60 1B 78 */ mr r0, r3 -.L_80125D48: -/* 80125D48 00122C88 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125D4C 00122C8C 48 00 09 FC */ b .L_80126748 -.L_80125D50: -/* 80125D50 00122C90 38 60 00 24 */ li r3, 0x24 -/* 80125D54 00122C94 4B EF E1 51 */ bl __nw__FUl -/* 80125D58 00122C98 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125D5C 00122C9C 41 82 00 10 */ beq .L_80125D6C -/* 80125D60 00122CA0 38 9F 01 E0 */ addi r4, r31, 0x1e0 -/* 80125D64 00122CA4 48 00 0A 01 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125D68 00122CA8 7C 60 1B 78 */ mr r0, r3 -.L_80125D6C: -/* 80125D6C 00122CAC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125D70 00122CB0 48 00 09 D8 */ b .L_80126748 -.L_80125D74: -/* 80125D74 00122CB4 38 60 00 24 */ li r3, 0x24 -/* 80125D78 00122CB8 4B EF E1 2D */ bl __nw__FUl -/* 80125D7C 00122CBC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125D80 00122CC0 41 82 00 10 */ beq .L_80125D90 -/* 80125D84 00122CC4 38 9F 01 F0 */ addi r4, r31, 0x1f0 -/* 80125D88 00122CC8 48 00 09 DD */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125D8C 00122CCC 7C 60 1B 78 */ mr r0, r3 -.L_80125D90: -/* 80125D90 00122CD0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125D94 00122CD4 48 00 09 B4 */ b .L_80126748 -.L_80125D98: -/* 80125D98 00122CD8 38 60 00 24 */ li r3, 0x24 -/* 80125D9C 00122CDC 4B EF E1 09 */ bl __nw__FUl -/* 80125DA0 00122CE0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125DA4 00122CE4 41 82 00 10 */ beq .L_80125DB4 -/* 80125DA8 00122CE8 38 82 9B 90 */ addi r4, r2, lbl_80517EF0@sda21 -/* 80125DAC 00122CEC 48 00 09 B9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125DB0 00122CF0 7C 60 1B 78 */ mr r0, r3 -.L_80125DB4: -/* 80125DB4 00122CF4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125DB8 00122CF8 48 00 09 90 */ b .L_80126748 -.L_80125DBC: -/* 80125DBC 00122CFC 38 60 00 24 */ li r3, 0x24 -/* 80125DC0 00122D00 4B EF E0 E5 */ bl __nw__FUl -/* 80125DC4 00122D04 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125DC8 00122D08 41 82 00 10 */ beq .L_80125DD8 -/* 80125DCC 00122D0C 38 82 9B 98 */ addi r4, r2, lbl_80517EF8@sda21 -/* 80125DD0 00122D10 48 00 09 95 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125DD4 00122D14 7C 60 1B 78 */ mr r0, r3 -.L_80125DD8: -/* 80125DD8 00122D18 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125DDC 00122D1C 48 00 09 6C */ b .L_80126748 -.L_80125DE0: -/* 80125DE0 00122D20 38 60 00 24 */ li r3, 0x24 -/* 80125DE4 00122D24 4B EF E0 C1 */ bl __nw__FUl -/* 80125DE8 00122D28 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125DEC 00122D2C 41 82 00 10 */ beq .L_80125DFC -/* 80125DF0 00122D30 38 9F 02 04 */ addi r4, r31, 0x204 -/* 80125DF4 00122D34 48 00 09 71 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125DF8 00122D38 7C 60 1B 78 */ mr r0, r3 -.L_80125DFC: -/* 80125DFC 00122D3C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125E00 00122D40 48 00 09 48 */ b .L_80126748 -.L_80125E04: -/* 80125E04 00122D44 38 60 00 24 */ li r3, 0x24 -/* 80125E08 00122D48 4B EF E0 9D */ bl __nw__FUl -/* 80125E0C 00122D4C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125E10 00122D50 41 82 00 10 */ beq .L_80125E20 -/* 80125E14 00122D54 38 9F 02 10 */ addi r4, r31, 0x210 -/* 80125E18 00122D58 48 00 09 4D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125E1C 00122D5C 7C 60 1B 78 */ mr r0, r3 -.L_80125E20: -/* 80125E20 00122D60 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125E24 00122D64 48 00 09 24 */ b .L_80126748 -.L_80125E28: -/* 80125E28 00122D68 38 60 00 24 */ li r3, 0x24 -/* 80125E2C 00122D6C 4B EF E0 79 */ bl __nw__FUl -/* 80125E30 00122D70 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125E34 00122D74 41 82 00 10 */ beq .L_80125E44 -/* 80125E38 00122D78 38 9F 02 24 */ addi r4, r31, 0x224 -/* 80125E3C 00122D7C 48 00 09 29 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125E40 00122D80 7C 60 1B 78 */ mr r0, r3 -.L_80125E44: -/* 80125E44 00122D84 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125E48 00122D88 48 00 09 00 */ b .L_80126748 -.L_80125E4C: -/* 80125E4C 00122D8C 38 60 00 24 */ li r3, 0x24 -/* 80125E50 00122D90 4B EF E0 55 */ bl __nw__FUl -/* 80125E54 00122D94 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125E58 00122D98 41 82 00 10 */ beq .L_80125E68 -/* 80125E5C 00122D9C 38 9F 02 38 */ addi r4, r31, 0x238 -/* 80125E60 00122DA0 48 00 09 05 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125E64 00122DA4 7C 60 1B 78 */ mr r0, r3 -.L_80125E68: -/* 80125E68 00122DA8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125E6C 00122DAC 48 00 08 DC */ b .L_80126748 -.L_80125E70: -/* 80125E70 00122DB0 38 60 00 24 */ li r3, 0x24 -/* 80125E74 00122DB4 4B EF E0 31 */ bl __nw__FUl -/* 80125E78 00122DB8 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125E7C 00122DBC 41 82 00 10 */ beq .L_80125E8C -/* 80125E80 00122DC0 38 9F 02 4C */ addi r4, r31, 0x24c -/* 80125E84 00122DC4 48 00 08 E1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125E88 00122DC8 7C 60 1B 78 */ mr r0, r3 -.L_80125E8C: -/* 80125E8C 00122DCC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125E90 00122DD0 48 00 08 B8 */ b .L_80126748 -.L_80125E94: -/* 80125E94 00122DD4 38 60 00 24 */ li r3, 0x24 -/* 80125E98 00122DD8 4B EF E0 0D */ bl __nw__FUl -/* 80125E9C 00122DDC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125EA0 00122DE0 41 82 00 10 */ beq .L_80125EB0 -/* 80125EA4 00122DE4 38 9F 02 58 */ addi r4, r31, 0x258 -/* 80125EA8 00122DE8 48 00 08 BD */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125EAC 00122DEC 7C 60 1B 78 */ mr r0, r3 -.L_80125EB0: -/* 80125EB0 00122DF0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125EB4 00122DF4 48 00 08 94 */ b .L_80126748 -.L_80125EB8: -/* 80125EB8 00122DF8 38 60 00 24 */ li r3, 0x24 -/* 80125EBC 00122DFC 4B EF DF E9 */ bl __nw__FUl -/* 80125EC0 00122E00 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125EC4 00122E04 41 82 00 10 */ beq .L_80125ED4 -/* 80125EC8 00122E08 38 9F 02 68 */ addi r4, r31, 0x268 -/* 80125ECC 00122E0C 48 00 08 99 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125ED0 00122E10 7C 60 1B 78 */ mr r0, r3 -.L_80125ED4: -/* 80125ED4 00122E14 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125ED8 00122E18 48 00 08 70 */ b .L_80126748 -.L_80125EDC: -/* 80125EDC 00122E1C 38 60 00 24 */ li r3, 0x24 -/* 80125EE0 00122E20 4B EF DF C5 */ bl __nw__FUl -/* 80125EE4 00122E24 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125EE8 00122E28 41 82 00 10 */ beq .L_80125EF8 -/* 80125EEC 00122E2C 38 9F 02 74 */ addi r4, r31, 0x274 -/* 80125EF0 00122E30 48 00 08 75 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125EF4 00122E34 7C 60 1B 78 */ mr r0, r3 -.L_80125EF8: -/* 80125EF8 00122E38 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125EFC 00122E3C 48 00 08 4C */ b .L_80126748 -.L_80125F00: -/* 80125F00 00122E40 38 60 00 24 */ li r3, 0x24 -/* 80125F04 00122E44 4B EF DF A1 */ bl __nw__FUl -/* 80125F08 00122E48 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125F0C 00122E4C 41 82 00 10 */ beq .L_80125F1C -/* 80125F10 00122E50 38 9F 02 84 */ addi r4, r31, 0x284 -/* 80125F14 00122E54 48 00 08 51 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125F18 00122E58 7C 60 1B 78 */ mr r0, r3 -.L_80125F1C: -/* 80125F1C 00122E5C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125F20 00122E60 48 00 08 28 */ b .L_80126748 -.L_80125F24: -/* 80125F24 00122E64 38 60 00 24 */ li r3, 0x24 -/* 80125F28 00122E68 4B EF DF 7D */ bl __nw__FUl -/* 80125F2C 00122E6C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125F30 00122E70 41 82 00 10 */ beq .L_80125F40 -/* 80125F34 00122E74 38 9F 02 90 */ addi r4, r31, 0x290 -/* 80125F38 00122E78 48 00 08 2D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125F3C 00122E7C 7C 60 1B 78 */ mr r0, r3 -.L_80125F40: -/* 80125F40 00122E80 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125F44 00122E84 48 00 08 04 */ b .L_80126748 -.L_80125F48: -/* 80125F48 00122E88 38 60 00 24 */ li r3, 0x24 -/* 80125F4C 00122E8C 4B EF DF 59 */ bl __nw__FUl -/* 80125F50 00122E90 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125F54 00122E94 41 82 00 10 */ beq .L_80125F64 -/* 80125F58 00122E98 38 9F 02 A0 */ addi r4, r31, 0x2a0 -/* 80125F5C 00122E9C 48 00 08 09 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125F60 00122EA0 7C 60 1B 78 */ mr r0, r3 -.L_80125F64: -/* 80125F64 00122EA4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125F68 00122EA8 48 00 07 E0 */ b .L_80126748 -.L_80125F6C: -/* 80125F6C 00122EAC 38 60 00 24 */ li r3, 0x24 -/* 80125F70 00122EB0 4B EF DF 35 */ bl __nw__FUl -/* 80125F74 00122EB4 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125F78 00122EB8 41 82 00 10 */ beq .L_80125F88 -/* 80125F7C 00122EBC 38 9F 02 AC */ addi r4, r31, 0x2ac -/* 80125F80 00122EC0 48 00 07 E5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125F84 00122EC4 7C 60 1B 78 */ mr r0, r3 -.L_80125F88: -/* 80125F88 00122EC8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125F8C 00122ECC 48 00 07 BC */ b .L_80126748 -.L_80125F90: -/* 80125F90 00122ED0 38 60 00 24 */ li r3, 0x24 -/* 80125F94 00122ED4 4B EF DF 11 */ bl __nw__FUl -/* 80125F98 00122ED8 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125F9C 00122EDC 41 82 00 10 */ beq .L_80125FAC -/* 80125FA0 00122EE0 38 9F 02 BC */ addi r4, r31, 0x2bc -/* 80125FA4 00122EE4 48 00 07 C1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125FA8 00122EE8 7C 60 1B 78 */ mr r0, r3 -.L_80125FAC: -/* 80125FAC 00122EEC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125FB0 00122EF0 48 00 07 98 */ b .L_80126748 -.L_80125FB4: -/* 80125FB4 00122EF4 38 60 00 24 */ li r3, 0x24 -/* 80125FB8 00122EF8 4B EF DE ED */ bl __nw__FUl -/* 80125FBC 00122EFC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125FC0 00122F00 41 82 00 10 */ beq .L_80125FD0 -/* 80125FC4 00122F04 38 9F 02 CC */ addi r4, r31, 0x2cc -/* 80125FC8 00122F08 48 00 07 9D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125FCC 00122F0C 7C 60 1B 78 */ mr r0, r3 -.L_80125FD0: -/* 80125FD0 00122F10 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125FD4 00122F14 48 00 07 74 */ b .L_80126748 -.L_80125FD8: -/* 80125FD8 00122F18 38 60 00 24 */ li r3, 0x24 -/* 80125FDC 00122F1C 4B EF DE C9 */ bl __nw__FUl -/* 80125FE0 00122F20 7C 60 1B 79 */ or. r0, r3, r3 -/* 80125FE4 00122F24 41 82 00 10 */ beq .L_80125FF4 -/* 80125FE8 00122F28 38 9F 02 D8 */ addi r4, r31, 0x2d8 -/* 80125FEC 00122F2C 48 00 07 79 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80125FF0 00122F30 7C 60 1B 78 */ mr r0, r3 -.L_80125FF4: -/* 80125FF4 00122F34 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80125FF8 00122F38 48 00 07 50 */ b .L_80126748 -.L_80125FFC: -/* 80125FFC 00122F3C 38 60 00 24 */ li r3, 0x24 -/* 80126000 00122F40 4B EF DE A5 */ bl __nw__FUl -/* 80126004 00122F44 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126008 00122F48 41 82 00 10 */ beq .L_80126018 -/* 8012600C 00122F4C 38 82 9B A0 */ addi r4, r2, lbl_80517F00@sda21 -/* 80126010 00122F50 48 00 07 55 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126014 00122F54 7C 60 1B 78 */ mr r0, r3 -.L_80126018: -/* 80126018 00122F58 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012601C 00122F5C 48 00 07 2C */ b .L_80126748 -.L_80126020: -/* 80126020 00122F60 38 60 00 24 */ li r3, 0x24 -/* 80126024 00122F64 4B EF DE 81 */ bl __nw__FUl -/* 80126028 00122F68 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012602C 00122F6C 41 82 00 10 */ beq .L_8012603C -/* 80126030 00122F70 38 9F 02 E4 */ addi r4, r31, 0x2e4 -/* 80126034 00122F74 48 00 07 31 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126038 00122F78 7C 60 1B 78 */ mr r0, r3 -.L_8012603C: -/* 8012603C 00122F7C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126040 00122F80 48 00 07 08 */ b .L_80126748 -.L_80126044: -/* 80126044 00122F84 38 60 00 24 */ li r3, 0x24 -/* 80126048 00122F88 4B EF DE 5D */ bl __nw__FUl -/* 8012604C 00122F8C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126050 00122F90 41 82 00 10 */ beq .L_80126060 -/* 80126054 00122F94 38 9F 02 F0 */ addi r4, r31, 0x2f0 -/* 80126058 00122F98 48 00 07 0D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012605C 00122F9C 7C 60 1B 78 */ mr r0, r3 -.L_80126060: -/* 80126060 00122FA0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126064 00122FA4 48 00 06 E4 */ b .L_80126748 -.L_80126068: -/* 80126068 00122FA8 38 60 00 24 */ li r3, 0x24 -/* 8012606C 00122FAC 4B EF DE 39 */ bl __nw__FUl -/* 80126070 00122FB0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126074 00122FB4 41 82 00 10 */ beq .L_80126084 -/* 80126078 00122FB8 38 9F 03 00 */ addi r4, r31, 0x300 -/* 8012607C 00122FBC 48 00 06 E9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126080 00122FC0 7C 60 1B 78 */ mr r0, r3 -.L_80126084: -/* 80126084 00122FC4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126088 00122FC8 48 00 06 C0 */ b .L_80126748 -.L_8012608C: -/* 8012608C 00122FCC 38 60 00 24 */ li r3, 0x24 -/* 80126090 00122FD0 4B EF DE 15 */ bl __nw__FUl -/* 80126094 00122FD4 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126098 00122FD8 41 82 00 10 */ beq .L_801260A8 -/* 8012609C 00122FDC 38 9F 03 18 */ addi r4, r31, 0x318 -/* 801260A0 00122FE0 48 00 06 C5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801260A4 00122FE4 7C 60 1B 78 */ mr r0, r3 -.L_801260A8: -/* 801260A8 00122FE8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801260AC 00122FEC 48 00 06 9C */ b .L_80126748 -.L_801260B0: -/* 801260B0 00122FF0 38 60 00 24 */ li r3, 0x24 -/* 801260B4 00122FF4 4B EF DD F1 */ bl __nw__FUl -/* 801260B8 00122FF8 7C 60 1B 79 */ or. r0, r3, r3 -/* 801260BC 00122FFC 41 82 00 10 */ beq .L_801260CC -/* 801260C0 00123000 38 9F 03 34 */ addi r4, r31, 0x334 -/* 801260C4 00123004 48 00 06 A1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801260C8 00123008 7C 60 1B 78 */ mr r0, r3 -.L_801260CC: -/* 801260CC 0012300C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801260D0 00123010 48 00 06 78 */ b .L_80126748 -.L_801260D4: -/* 801260D4 00123014 38 60 00 24 */ li r3, 0x24 -/* 801260D8 00123018 4B EF DD CD */ bl __nw__FUl -/* 801260DC 0012301C 7C 60 1B 79 */ or. r0, r3, r3 -/* 801260E0 00123020 41 82 00 10 */ beq .L_801260F0 -/* 801260E4 00123024 38 9F 03 4C */ addi r4, r31, 0x34c -/* 801260E8 00123028 48 00 06 7D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801260EC 0012302C 7C 60 1B 78 */ mr r0, r3 -.L_801260F0: -/* 801260F0 00123030 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801260F4 00123034 48 00 06 54 */ b .L_80126748 -.L_801260F8: -/* 801260F8 00123038 38 60 00 24 */ li r3, 0x24 -/* 801260FC 0012303C 4B EF DD A9 */ bl __nw__FUl -/* 80126100 00123040 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126104 00123044 41 82 00 10 */ beq .L_80126114 -/* 80126108 00123048 38 9F 03 68 */ addi r4, r31, 0x368 -/* 8012610C 0012304C 48 00 06 59 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126110 00123050 7C 60 1B 78 */ mr r0, r3 -.L_80126114: -/* 80126114 00123054 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126118 00123058 48 00 06 30 */ b .L_80126748 -.L_8012611C: -/* 8012611C 0012305C 38 60 00 24 */ li r3, 0x24 -/* 80126120 00123060 4B EF DD 85 */ bl __nw__FUl -/* 80126124 00123064 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126128 00123068 41 82 00 10 */ beq .L_80126138 -/* 8012612C 0012306C 38 9F 03 74 */ addi r4, r31, 0x374 -/* 80126130 00123070 48 00 06 35 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126134 00123074 7C 60 1B 78 */ mr r0, r3 -.L_80126138: -/* 80126138 00123078 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012613C 0012307C 48 00 06 0C */ b .L_80126748 -.L_80126140: -/* 80126140 00123080 38 60 00 24 */ li r3, 0x24 -/* 80126144 00123084 4B EF DD 61 */ bl __nw__FUl -/* 80126148 00123088 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012614C 0012308C 41 82 00 10 */ beq .L_8012615C -/* 80126150 00123090 38 82 9B A8 */ addi r4, r2, lbl_80517F08@sda21 -/* 80126154 00123094 48 00 06 11 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126158 00123098 7C 60 1B 78 */ mr r0, r3 -.L_8012615C: -/* 8012615C 0012309C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126160 001230A0 48 00 05 E8 */ b .L_80126748 -.L_80126164: -/* 80126164 001230A4 38 60 00 24 */ li r3, 0x24 -/* 80126168 001230A8 4B EF DD 3D */ bl __nw__FUl -/* 8012616C 001230AC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126170 001230B0 41 82 00 10 */ beq .L_80126180 -/* 80126174 001230B4 38 9F 03 80 */ addi r4, r31, 0x380 -/* 80126178 001230B8 48 00 05 ED */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012617C 001230BC 7C 60 1B 78 */ mr r0, r3 -.L_80126180: -/* 80126180 001230C0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126184 001230C4 48 00 05 C4 */ b .L_80126748 -.L_80126188: -/* 80126188 001230C8 38 60 00 24 */ li r3, 0x24 -/* 8012618C 001230CC 4B EF DD 19 */ bl __nw__FUl -/* 80126190 001230D0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126194 001230D4 41 82 00 10 */ beq .L_801261A4 -/* 80126198 001230D8 38 9F 03 90 */ addi r4, r31, 0x390 -/* 8012619C 001230DC 48 00 05 C9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801261A0 001230E0 7C 60 1B 78 */ mr r0, r3 -.L_801261A4: -/* 801261A4 001230E4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801261A8 001230E8 48 00 05 A0 */ b .L_80126748 -.L_801261AC: -/* 801261AC 001230EC 38 60 00 24 */ li r3, 0x24 -/* 801261B0 001230F0 4B EF DC F5 */ bl __nw__FUl -/* 801261B4 001230F4 7C 60 1B 79 */ or. r0, r3, r3 -/* 801261B8 001230F8 41 82 00 10 */ beq .L_801261C8 -/* 801261BC 001230FC 38 9F 03 A0 */ addi r4, r31, 0x3a0 -/* 801261C0 00123100 48 00 05 A5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801261C4 00123104 7C 60 1B 78 */ mr r0, r3 -.L_801261C8: -/* 801261C8 00123108 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801261CC 0012310C 48 00 05 7C */ b .L_80126748 -.L_801261D0: -/* 801261D0 00123110 38 60 00 24 */ li r3, 0x24 -/* 801261D4 00123114 4B EF DC D1 */ bl __nw__FUl -/* 801261D8 00123118 7C 60 1B 79 */ or. r0, r3, r3 -/* 801261DC 0012311C 41 82 00 10 */ beq .L_801261EC -/* 801261E0 00123120 38 9F 03 B0 */ addi r4, r31, 0x3b0 -/* 801261E4 00123124 48 00 05 81 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801261E8 00123128 7C 60 1B 78 */ mr r0, r3 -.L_801261EC: -/* 801261EC 0012312C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801261F0 00123130 48 00 05 58 */ b .L_80126748 -.L_801261F4: -/* 801261F4 00123134 38 60 00 24 */ li r3, 0x24 -/* 801261F8 00123138 4B EF DC AD */ bl __nw__FUl -/* 801261FC 0012313C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126200 00123140 41 82 00 10 */ beq .L_80126210 -/* 80126204 00123144 38 82 9B B0 */ addi r4, r2, lbl_80517F10@sda21 -/* 80126208 00123148 48 00 05 5D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012620C 0012314C 7C 60 1B 78 */ mr r0, r3 -.L_80126210: -/* 80126210 00123150 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126214 00123154 48 00 05 34 */ b .L_80126748 -.L_80126218: -/* 80126218 00123158 38 60 00 24 */ li r3, 0x24 -/* 8012621C 0012315C 4B EF DC 89 */ bl __nw__FUl -/* 80126220 00123160 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126224 00123164 41 82 00 10 */ beq .L_80126234 -/* 80126228 00123168 38 9F 03 C0 */ addi r4, r31, 0x3c0 -/* 8012622C 0012316C 48 00 05 39 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126230 00123170 7C 60 1B 78 */ mr r0, r3 -.L_80126234: -/* 80126234 00123174 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126238 00123178 48 00 05 10 */ b .L_80126748 -.L_8012623C: -/* 8012623C 0012317C 38 60 00 24 */ li r3, 0x24 -/* 80126240 00123180 4B EF DC 65 */ bl __nw__FUl -/* 80126244 00123184 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126248 00123188 41 82 00 10 */ beq .L_80126258 -/* 8012624C 0012318C 38 9F 03 CC */ addi r4, r31, 0x3cc -/* 80126250 00123190 48 00 05 15 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126254 00123194 7C 60 1B 78 */ mr r0, r3 -.L_80126258: -/* 80126258 00123198 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012625C 0012319C 48 00 04 EC */ b .L_80126748 -.L_80126260: -/* 80126260 001231A0 38 60 00 24 */ li r3, 0x24 -/* 80126264 001231A4 4B EF DC 41 */ bl __nw__FUl -/* 80126268 001231A8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012626C 001231AC 41 82 00 10 */ beq .L_8012627C -/* 80126270 001231B0 38 9F 03 E0 */ addi r4, r31, 0x3e0 -/* 80126274 001231B4 48 00 04 F1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126278 001231B8 7C 60 1B 78 */ mr r0, r3 -.L_8012627C: -/* 8012627C 001231BC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126280 001231C0 48 00 04 C8 */ b .L_80126748 -.L_80126284: -/* 80126284 001231C4 38 60 00 24 */ li r3, 0x24 -/* 80126288 001231C8 4B EF DC 1D */ bl __nw__FUl -/* 8012628C 001231CC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126290 001231D0 41 82 00 10 */ beq .L_801262A0 -/* 80126294 001231D4 38 9F 03 EC */ addi r4, r31, 0x3ec -/* 80126298 001231D8 48 00 04 CD */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012629C 001231DC 7C 60 1B 78 */ mr r0, r3 -.L_801262A0: -/* 801262A0 001231E0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801262A4 001231E4 48 00 04 A4 */ b .L_80126748 -.L_801262A8: -/* 801262A8 001231E8 38 60 00 24 */ li r3, 0x24 -/* 801262AC 001231EC 4B EF DB F9 */ bl __nw__FUl -/* 801262B0 001231F0 7C 60 1B 79 */ or. r0, r3, r3 -/* 801262B4 001231F4 41 82 00 10 */ beq .L_801262C4 -/* 801262B8 001231F8 38 9F 04 00 */ addi r4, r31, 0x400 -/* 801262BC 001231FC 48 00 04 A9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801262C0 00123200 7C 60 1B 78 */ mr r0, r3 -.L_801262C4: -/* 801262C4 00123204 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801262C8 00123208 48 00 04 80 */ b .L_80126748 -.L_801262CC: -/* 801262CC 0012320C 38 60 00 24 */ li r3, 0x24 -/* 801262D0 00123210 4B EF DB D5 */ bl __nw__FUl -/* 801262D4 00123214 7C 60 1B 79 */ or. r0, r3, r3 -/* 801262D8 00123218 41 82 00 10 */ beq .L_801262E8 -/* 801262DC 0012321C 38 9F 04 0C */ addi r4, r31, 0x40c -/* 801262E0 00123220 48 00 04 85 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801262E4 00123224 7C 60 1B 78 */ mr r0, r3 -.L_801262E8: -/* 801262E8 00123228 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801262EC 0012322C 48 00 04 5C */ b .L_80126748 -.L_801262F0: -/* 801262F0 00123230 38 60 00 24 */ li r3, 0x24 -/* 801262F4 00123234 4B EF DB B1 */ bl __nw__FUl -/* 801262F8 00123238 7C 60 1B 79 */ or. r0, r3, r3 -/* 801262FC 0012323C 41 82 00 10 */ beq .L_8012630C -/* 80126300 00123240 38 9F 04 1C */ addi r4, r31, 0x41c -/* 80126304 00123244 48 00 04 61 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126308 00123248 7C 60 1B 78 */ mr r0, r3 -.L_8012630C: -/* 8012630C 0012324C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126310 00123250 48 00 04 38 */ b .L_80126748 -.L_80126314: -/* 80126314 00123254 38 60 00 24 */ li r3, 0x24 -/* 80126318 00123258 4B EF DB 8D */ bl __nw__FUl -/* 8012631C 0012325C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126320 00123260 41 82 00 10 */ beq .L_80126330 -/* 80126324 00123264 38 9F 04 2C */ addi r4, r31, 0x42c -/* 80126328 00123268 48 00 04 3D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012632C 0012326C 7C 60 1B 78 */ mr r0, r3 -.L_80126330: -/* 80126330 00123270 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126334 00123274 48 00 04 14 */ b .L_80126748 -.L_80126338: -/* 80126338 00123278 38 60 00 24 */ li r3, 0x24 -/* 8012633C 0012327C 4B EF DB 69 */ bl __nw__FUl -/* 80126340 00123280 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126344 00123284 41 82 00 10 */ beq .L_80126354 -/* 80126348 00123288 38 9F 04 3C */ addi r4, r31, 0x43c -/* 8012634C 0012328C 48 00 04 19 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126350 00123290 7C 60 1B 78 */ mr r0, r3 -.L_80126354: -/* 80126354 00123294 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126358 00123298 48 00 03 F0 */ b .L_80126748 -.L_8012635C: -/* 8012635C 0012329C 38 60 00 24 */ li r3, 0x24 -/* 80126360 001232A0 4B EF DB 45 */ bl __nw__FUl -/* 80126364 001232A4 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126368 001232A8 41 82 00 10 */ beq .L_80126378 -/* 8012636C 001232AC 38 9F 04 4C */ addi r4, r31, 0x44c -/* 80126370 001232B0 48 00 03 F5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126374 001232B4 7C 60 1B 78 */ mr r0, r3 -.L_80126378: -/* 80126378 001232B8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012637C 001232BC 48 00 03 CC */ b .L_80126748 -.L_80126380: -/* 80126380 001232C0 38 60 00 24 */ li r3, 0x24 -/* 80126384 001232C4 4B EF DB 21 */ bl __nw__FUl -/* 80126388 001232C8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012638C 001232CC 41 82 00 10 */ beq .L_8012639C -/* 80126390 001232D0 38 9F 04 60 */ addi r4, r31, 0x460 -/* 80126394 001232D4 48 00 03 D1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126398 001232D8 7C 60 1B 78 */ mr r0, r3 -.L_8012639C: -/* 8012639C 001232DC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801263A0 001232E0 48 00 03 A8 */ b .L_80126748 -.L_801263A4: -/* 801263A4 001232E4 38 60 00 24 */ li r3, 0x24 -/* 801263A8 001232E8 4B EF DA FD */ bl __nw__FUl -/* 801263AC 001232EC 7C 60 1B 79 */ or. r0, r3, r3 -/* 801263B0 001232F0 41 82 00 10 */ beq .L_801263C0 -/* 801263B4 001232F4 38 9F 04 74 */ addi r4, r31, 0x474 -/* 801263B8 001232F8 48 00 03 AD */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801263BC 001232FC 7C 60 1B 78 */ mr r0, r3 -.L_801263C0: -/* 801263C0 00123300 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801263C4 00123304 48 00 03 84 */ b .L_80126748 -.L_801263C8: -/* 801263C8 00123308 38 60 00 24 */ li r3, 0x24 -/* 801263CC 0012330C 4B EF DA D9 */ bl __nw__FUl -/* 801263D0 00123310 7C 60 1B 79 */ or. r0, r3, r3 -/* 801263D4 00123314 41 82 00 10 */ beq .L_801263E4 -/* 801263D8 00123318 38 82 9B B8 */ addi r4, r2, lbl_80517F18@sda21 -/* 801263DC 0012331C 48 00 03 89 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801263E0 00123320 7C 60 1B 78 */ mr r0, r3 -.L_801263E4: -/* 801263E4 00123324 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801263E8 00123328 48 00 03 60 */ b .L_80126748 -.L_801263EC: -/* 801263EC 0012332C 38 60 00 24 */ li r3, 0x24 -/* 801263F0 00123330 4B EF DA B5 */ bl __nw__FUl -/* 801263F4 00123334 7C 60 1B 79 */ or. r0, r3, r3 -/* 801263F8 00123338 41 82 00 10 */ beq .L_80126408 -/* 801263FC 0012333C 38 9F 04 88 */ addi r4, r31, 0x488 -/* 80126400 00123340 48 00 03 65 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126404 00123344 7C 60 1B 78 */ mr r0, r3 -.L_80126408: -/* 80126408 00123348 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012640C 0012334C 48 00 03 3C */ b .L_80126748 -.L_80126410: -/* 80126410 00123350 38 60 00 24 */ li r3, 0x24 -/* 80126414 00123354 4B EF DA 91 */ bl __nw__FUl -/* 80126418 00123358 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012641C 0012335C 41 82 00 10 */ beq .L_8012642C -/* 80126420 00123360 38 9F 04 94 */ addi r4, r31, 0x494 -/* 80126424 00123364 48 00 03 41 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126428 00123368 7C 60 1B 78 */ mr r0, r3 -.L_8012642C: -/* 8012642C 0012336C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126430 00123370 48 00 03 18 */ b .L_80126748 -.L_80126434: -/* 80126434 00123374 38 60 00 24 */ li r3, 0x24 -/* 80126438 00123378 4B EF DA 6D */ bl __nw__FUl -/* 8012643C 0012337C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126440 00123380 41 82 00 10 */ beq .L_80126450 -/* 80126444 00123384 38 9F 04 A0 */ addi r4, r31, 0x4a0 -/* 80126448 00123388 48 00 03 1D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012644C 0012338C 7C 60 1B 78 */ mr r0, r3 -.L_80126450: -/* 80126450 00123390 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126454 00123394 48 00 02 F4 */ b .L_80126748 -.L_80126458: -/* 80126458 00123398 38 60 00 24 */ li r3, 0x24 -/* 8012645C 0012339C 4B EF DA 49 */ bl __nw__FUl -/* 80126460 001233A0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126464 001233A4 41 82 00 10 */ beq .L_80126474 -/* 80126468 001233A8 38 9F 04 B4 */ addi r4, r31, 0x4b4 -/* 8012646C 001233AC 48 00 02 F9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126470 001233B0 7C 60 1B 78 */ mr r0, r3 -.L_80126474: -/* 80126474 001233B4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126478 001233B8 48 00 02 D0 */ b .L_80126748 -.L_8012647C: -/* 8012647C 001233BC 38 60 00 24 */ li r3, 0x24 -/* 80126480 001233C0 4B EF DA 25 */ bl __nw__FUl -/* 80126484 001233C4 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126488 001233C8 41 82 00 10 */ beq .L_80126498 -/* 8012648C 001233CC 38 9F 04 C8 */ addi r4, r31, 0x4c8 -/* 80126490 001233D0 48 00 02 D5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126494 001233D4 7C 60 1B 78 */ mr r0, r3 -.L_80126498: -/* 80126498 001233D8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012649C 001233DC 48 00 02 AC */ b .L_80126748 -.L_801264A0: -/* 801264A0 001233E0 38 60 00 24 */ li r3, 0x24 -/* 801264A4 001233E4 4B EF DA 01 */ bl __nw__FUl -/* 801264A8 001233E8 7C 60 1B 79 */ or. r0, r3, r3 -/* 801264AC 001233EC 41 82 00 10 */ beq .L_801264BC -/* 801264B0 001233F0 38 9F 04 D4 */ addi r4, r31, 0x4d4 -/* 801264B4 001233F4 48 00 02 B1 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801264B8 001233F8 7C 60 1B 78 */ mr r0, r3 -.L_801264BC: -/* 801264BC 001233FC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801264C0 00123400 48 00 02 88 */ b .L_80126748 -.L_801264C4: -/* 801264C4 00123404 38 60 00 24 */ li r3, 0x24 -/* 801264C8 00123408 4B EF D9 DD */ bl __nw__FUl -/* 801264CC 0012340C 7C 60 1B 79 */ or. r0, r3, r3 -/* 801264D0 00123410 41 82 00 10 */ beq .L_801264E0 -/* 801264D4 00123414 38 9F 04 E8 */ addi r4, r31, 0x4e8 -/* 801264D8 00123418 48 00 02 8D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801264DC 0012341C 7C 60 1B 78 */ mr r0, r3 -.L_801264E0: -/* 801264E0 00123420 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801264E4 00123424 48 00 02 64 */ b .L_80126748 -.L_801264E8: -/* 801264E8 00123428 38 60 00 24 */ li r3, 0x24 -/* 801264EC 0012342C 4B EF D9 B9 */ bl __nw__FUl -/* 801264F0 00123430 7C 60 1B 79 */ or. r0, r3, r3 -/* 801264F4 00123434 41 82 00 10 */ beq .L_80126504 -/* 801264F8 00123438 38 9F 04 F8 */ addi r4, r31, 0x4f8 -/* 801264FC 0012343C 48 00 02 69 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126500 00123440 7C 60 1B 78 */ mr r0, r3 -.L_80126504: -/* 80126504 00123444 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126508 00123448 48 00 02 40 */ b .L_80126748 -.L_8012650C: -/* 8012650C 0012344C 38 60 00 24 */ li r3, 0x24 -/* 80126510 00123450 4B EF D9 95 */ bl __nw__FUl -/* 80126514 00123454 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126518 00123458 41 82 00 10 */ beq .L_80126528 -/* 8012651C 0012345C 38 9F 05 04 */ addi r4, r31, 0x504 -/* 80126520 00123460 48 00 02 45 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126524 00123464 7C 60 1B 78 */ mr r0, r3 -.L_80126528: -/* 80126528 00123468 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012652C 0012346C 48 00 02 1C */ b .L_80126748 -.L_80126530: -/* 80126530 00123470 38 60 00 24 */ li r3, 0x24 -/* 80126534 00123474 4B EF D9 71 */ bl __nw__FUl -/* 80126538 00123478 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012653C 0012347C 41 82 00 10 */ beq .L_8012654C -/* 80126540 00123480 38 9F 05 14 */ addi r4, r31, 0x514 -/* 80126544 00123484 48 00 02 21 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126548 00123488 7C 60 1B 78 */ mr r0, r3 -.L_8012654C: -/* 8012654C 0012348C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126550 00123490 48 00 01 F8 */ b .L_80126748 -.L_80126554: -/* 80126554 00123494 38 60 00 24 */ li r3, 0x24 -/* 80126558 00123498 4B EF D9 4D */ bl __nw__FUl -/* 8012655C 0012349C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126560 001234A0 41 82 00 10 */ beq .L_80126570 -/* 80126564 001234A4 38 9F 05 20 */ addi r4, r31, 0x520 -/* 80126568 001234A8 48 00 01 FD */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012656C 001234AC 7C 60 1B 78 */ mr r0, r3 -.L_80126570: -/* 80126570 001234B0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126574 001234B4 48 00 01 D4 */ b .L_80126748 -.L_80126578: -/* 80126578 001234B8 38 60 00 24 */ li r3, 0x24 -/* 8012657C 001234BC 4B EF D9 29 */ bl __nw__FUl -/* 80126580 001234C0 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126584 001234C4 41 82 00 10 */ beq .L_80126594 -/* 80126588 001234C8 38 9F 05 34 */ addi r4, r31, 0x534 -/* 8012658C 001234CC 48 00 01 D9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126590 001234D0 7C 60 1B 78 */ mr r0, r3 -.L_80126594: -/* 80126594 001234D4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126598 001234D8 48 00 01 B0 */ b .L_80126748 -.L_8012659C: -/* 8012659C 001234DC 38 60 00 24 */ li r3, 0x24 -/* 801265A0 001234E0 4B EF D9 05 */ bl __nw__FUl -/* 801265A4 001234E4 7C 60 1B 79 */ or. r0, r3, r3 -/* 801265A8 001234E8 41 82 00 10 */ beq .L_801265B8 -/* 801265AC 001234EC 38 9F 05 48 */ addi r4, r31, 0x548 -/* 801265B0 001234F0 48 00 01 B5 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801265B4 001234F4 7C 60 1B 78 */ mr r0, r3 -.L_801265B8: -/* 801265B8 001234F8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801265BC 001234FC 48 00 01 8C */ b .L_80126748 -.L_801265C0: -/* 801265C0 00123500 38 60 00 24 */ li r3, 0x24 -/* 801265C4 00123504 4B EF D8 E1 */ bl __nw__FUl -/* 801265C8 00123508 7C 60 1B 79 */ or. r0, r3, r3 -/* 801265CC 0012350C 41 82 00 10 */ beq .L_801265DC -/* 801265D0 00123510 38 9F 05 5C */ addi r4, r31, 0x55c -/* 801265D4 00123514 48 00 01 91 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801265D8 00123518 7C 60 1B 78 */ mr r0, r3 -.L_801265DC: -/* 801265DC 0012351C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801265E0 00123520 48 00 01 68 */ b .L_80126748 -.L_801265E4: -/* 801265E4 00123524 38 60 00 24 */ li r3, 0x24 -/* 801265E8 00123528 4B EF D8 BD */ bl __nw__FUl -/* 801265EC 0012352C 7C 60 1B 79 */ or. r0, r3, r3 -/* 801265F0 00123530 41 82 00 10 */ beq .L_80126600 -/* 801265F4 00123534 38 9F 05 6C */ addi r4, r31, 0x56c -/* 801265F8 00123538 48 00 01 6D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801265FC 0012353C 7C 60 1B 78 */ mr r0, r3 -.L_80126600: -/* 80126600 00123540 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126604 00123544 48 00 01 44 */ b .L_80126748 -.L_80126608: -/* 80126608 00123548 38 60 00 24 */ li r3, 0x24 -/* 8012660C 0012354C 4B EF D8 99 */ bl __nw__FUl -/* 80126610 00123550 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126614 00123554 41 82 00 10 */ beq .L_80126624 -/* 80126618 00123558 38 9F 05 80 */ addi r4, r31, 0x580 -/* 8012661C 0012355C 48 00 01 49 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126620 00123560 7C 60 1B 78 */ mr r0, r3 -.L_80126624: -/* 80126624 00123564 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126628 00123568 48 00 01 20 */ b .L_80126748 -.L_8012662C: -/* 8012662C 0012356C 38 60 00 24 */ li r3, 0x24 -/* 80126630 00123570 4B EF D8 75 */ bl __nw__FUl -/* 80126634 00123574 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126638 00123578 41 82 00 10 */ beq .L_80126648 -/* 8012663C 0012357C 38 9F 05 8C */ addi r4, r31, 0x58c -/* 80126640 00123580 48 00 01 25 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126644 00123584 7C 60 1B 78 */ mr r0, r3 -.L_80126648: -/* 80126648 00123588 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8012664C 0012358C 48 00 00 FC */ b .L_80126748 -.L_80126650: -/* 80126650 00123590 38 60 00 24 */ li r3, 0x24 -/* 80126654 00123594 4B EF D8 51 */ bl __nw__FUl -/* 80126658 00123598 7C 60 1B 79 */ or. r0, r3, r3 -/* 8012665C 0012359C 41 82 00 10 */ beq .L_8012666C -/* 80126660 001235A0 38 9F 05 9C */ addi r4, r31, 0x59c -/* 80126664 001235A4 48 00 01 01 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126668 001235A8 7C 60 1B 78 */ mr r0, r3 -.L_8012666C: -/* 8012666C 001235AC 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126670 001235B0 48 00 00 D8 */ b .L_80126748 -.L_80126674: -/* 80126674 001235B4 38 60 00 24 */ li r3, 0x24 -/* 80126678 001235B8 4B EF D8 2D */ bl __nw__FUl -/* 8012667C 001235BC 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126680 001235C0 41 82 00 10 */ beq .L_80126690 -/* 80126684 001235C4 38 9F 05 B0 */ addi r4, r31, 0x5b0 -/* 80126688 001235C8 48 00 00 DD */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012668C 001235CC 7C 60 1B 78 */ mr r0, r3 -.L_80126690: -/* 80126690 001235D0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126694 001235D4 48 00 00 B4 */ b .L_80126748 -.L_80126698: -/* 80126698 001235D8 38 60 00 24 */ li r3, 0x24 -/* 8012669C 001235DC 4B EF D8 09 */ bl __nw__FUl -/* 801266A0 001235E0 7C 60 1B 79 */ or. r0, r3, r3 -/* 801266A4 001235E4 41 82 00 10 */ beq .L_801266B4 -/* 801266A8 001235E8 38 9F 05 BC */ addi r4, r31, 0x5bc -/* 801266AC 001235EC 48 00 00 B9 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801266B0 001235F0 7C 60 1B 78 */ mr r0, r3 -.L_801266B4: -/* 801266B4 001235F4 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801266B8 001235F8 48 00 00 90 */ b .L_80126748 -.L_801266BC: -/* 801266BC 001235FC 38 60 00 24 */ li r3, 0x24 -/* 801266C0 00123600 4B EF D7 E5 */ bl __nw__FUl -/* 801266C4 00123604 7C 60 1B 79 */ or. r0, r3, r3 -/* 801266C8 00123608 41 82 00 10 */ beq .L_801266D8 -/* 801266CC 0012360C 38 82 9B C0 */ addi r4, r2, lbl_80517F20@sda21 -/* 801266D0 00123610 48 00 00 95 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801266D4 00123614 7C 60 1B 78 */ mr r0, r3 -.L_801266D8: -/* 801266D8 00123618 90 1E 00 48 */ stw r0, 0x48(r30) -/* 801266DC 0012361C 48 00 00 6C */ b .L_80126748 -.L_801266E0: -/* 801266E0 00123620 38 60 00 24 */ li r3, 0x24 -/* 801266E4 00123624 4B EF D7 C1 */ bl __nw__FUl -/* 801266E8 00123628 7C 60 1B 79 */ or. r0, r3, r3 -/* 801266EC 0012362C 41 82 00 10 */ beq .L_801266FC -/* 801266F0 00123630 38 9F 05 CC */ addi r4, r31, 0x5cc -/* 801266F4 00123634 48 00 00 71 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 801266F8 00123638 7C 60 1B 78 */ mr r0, r3 -.L_801266FC: -/* 801266FC 0012363C 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126700 00123640 48 00 00 48 */ b .L_80126748 -.L_80126704: -/* 80126704 00123644 38 60 00 24 */ li r3, 0x24 -/* 80126708 00123648 4B EF D7 9D */ bl __nw__FUl -/* 8012670C 0012364C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126710 00123650 41 82 00 10 */ beq .L_80126720 -/* 80126714 00123654 38 9F 05 DC */ addi r4, r31, 0x5dc -/* 80126718 00123658 48 00 00 4D */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 8012671C 0012365C 7C 60 1B 78 */ mr r0, r3 -.L_80126720: -/* 80126720 00123660 90 1E 00 48 */ stw r0, 0x48(r30) -/* 80126724 00123664 48 00 00 24 */ b .L_80126748 -.L_80126728: -/* 80126728 00123668 38 60 00 24 */ li r3, 0x24 -/* 8012672C 0012366C 4B EF D7 79 */ bl __nw__FUl -/* 80126730 00123670 7C 60 1B 79 */ or. r0, r3, r3 -/* 80126734 00123674 41 82 00 10 */ beq .L_80126744 -/* 80126738 00123678 38 82 9B C8 */ addi r4, r2, lbl_80517F28@sda21 -/* 8012673C 0012367C 48 00 00 29 */ bl __ct__Q24Game18EnemyGeneratorBaseFPc -/* 80126740 00123680 7C 60 1B 78 */ mr r0, r3 -.L_80126744: -/* 80126744 00123684 90 1E 00 48 */ stw r0, 0x48(r30) -.L_80126748: -/* 80126748 00123688 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8012674C 0012368C 80 7E 00 48 */ lwz r3, 0x48(r30) -/* 80126750 00123690 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80126754 00123694 83 C1 00 08 */ lwz r30, 8(r1) -/* 80126758 00123698 7C 08 03 A6 */ mtlr r0 -/* 8012675C 0012369C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80126760 001236A0 4E 80 00 20 */ blr -.endfn createEnemyGenerator__Q24Game14GenObjectEnemyFv - -.fn __ct__Q24Game18EnemyGeneratorBaseFPc, weak -/* 80126764 001236A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80126768 001236A8 7C 08 02 A6 */ mflr r0 -/* 8012676C 001236AC 3C A0 80 4F */ lis r5, __vt__5CNode@ha -/* 80126770 001236B0 38 C0 00 00 */ li r6, 0 -/* 80126774 001236B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80126778 001236B8 38 05 B5 28 */ addi r0, r5, __vt__5CNode@l -/* 8012677C 001236BC 3C A0 3F 3F */ lis r5, 0x3F3F3F3F@ha -/* 80126780 001236C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80126784 001236C4 7C 7F 1B 78 */ mr r31, r3 -/* 80126788 001236C8 3C 60 80 4B */ lis r3, __vt__Q24Game18EnemyGeneratorBase@ha -/* 8012678C 001236CC 90 1F 00 00 */ stw r0, 0(r31) -/* 80126790 001236D0 38 03 DB B0 */ addi r0, r3, __vt__Q24Game18EnemyGeneratorBase@l -/* 80126794 001236D4 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80126798 001236D8 90 DF 00 10 */ stw r6, 0x10(r31) -/* 8012679C 001236DC 90 DF 00 0C */ stw r6, 0xc(r31) -/* 801267A0 001236E0 90 DF 00 08 */ stw r6, 8(r31) -/* 801267A4 001236E4 90 DF 00 04 */ stw r6, 4(r31) -/* 801267A8 001236E8 90 9F 00 14 */ stw r4, 0x14(r31) -/* 801267AC 001236EC 38 85 3F 3F */ addi r4, r5, 0x3F3F3F3F@l -/* 801267B0 001236F0 90 1F 00 00 */ stw r0, 0(r31) -/* 801267B4 001236F4 48 2E CA F5 */ bl __ct__4ID32FUl -/* 801267B8 001236F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801267BC 001236FC 7F E3 FB 78 */ mr r3, r31 -/* 801267C0 00123700 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801267C4 00123704 7C 08 03 A6 */ mtlr r0 -/* 801267C8 00123708 38 21 00 10 */ addi r1, r1, 0x10 -/* 801267CC 0012370C 4E 80 00 20 */ blr -.endfn __ct__Q24Game18EnemyGeneratorBaseFPc - -.fn getShape__Q24Game14GenObjectEnemyFv, global -/* 801267D0 00123710 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801267D4 00123714 7C 08 02 A6 */ mflr r0 -/* 801267D8 00123718 7C 64 1B 78 */ mr r4, r3 -/* 801267DC 0012371C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801267E0 00123720 80 6D 91 E0 */ lwz r3, generalEnemyMgr__4Game@sda21(r13) -/* 801267E4 00123724 80 84 00 24 */ lwz r4, 0x24(r4) -/* 801267E8 00123728 4B FE 6C 8D */ bl getJ3DModelData__Q24Game15GeneralEnemyMgrFi -/* 801267EC 0012372C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801267F0 00123730 7C 08 03 A6 */ mtlr r0 -/* 801267F4 00123734 38 21 00 10 */ addi r1, r1, 0x10 -/* 801267F8 00123738 4E 80 00 20 */ blr -.endfn getShape__Q24Game14GenObjectEnemyFv - -.fn updateUseList__Q24Game14GenObjectEnemyFPQ24Game9Generatori, global -/* 801267FC 0012373C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80126800 00123740 7C 08 02 A6 */ mflr r0 -/* 80126804 00123744 7C 66 1B 78 */ mr r6, r3 -/* 80126808 00123748 90 01 00 14 */ stw r0, 0x14(r1) -/* 8012680C 0012374C 80 8D 91 E0 */ lwz r4, generalEnemyMgr__4Game@sda21(r13) -/* 80126810 00123750 28 04 00 00 */ cmplwi r4, 0 -/* 80126814 00123754 41 82 00 18 */ beq .L_8012682C -/* 80126818 00123758 A8 06 00 2A */ lha r0, 0x2a(r6) -/* 8012681C 0012375C 7C 83 23 78 */ mr r3, r4 -/* 80126820 00123760 80 86 00 24 */ lwz r4, 0x24(r6) -/* 80126824 00123764 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 80126828 00123768 4B FE 70 2D */ bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy -.L_8012682C: -/* 8012682C 0012376C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80126830 00123770 7C 08 03 A6 */ mtlr r0 -/* 80126834 00123774 38 21 00 10 */ addi r1, r1, 0x10 -/* 80126838 00123778 4E 80 00 20 */ blr -.endfn updateUseList__Q24Game14GenObjectEnemyFPQ24Game9Generatori - -.fn render__Q24Game14GenObjectEnemyFR8GraphicsPQ24Game9Generator, global -/* 8012683C 0012377C 94 21 FF 30 */ stwu r1, -0xd0(r1) -/* 80126840 00123780 7C 08 02 A6 */ mflr r0 -/* 80126844 00123784 90 01 00 D4 */ stw r0, 0xd4(r1) -/* 80126848 00123788 93 E1 00 CC */ stw r31, 0xcc(r1) -/* 8012684C 0012378C 7C BF 2B 78 */ mr r31, r5 -/* 80126850 00123790 93 C1 00 C8 */ stw r30, 0xc8(r1) -/* 80126854 00123794 7C 9E 23 78 */ mr r30, r4 -/* 80126858 00123798 93 A1 00 C4 */ stw r29, 0xc4(r1) -/* 8012685C 0012379C 7C 7D 1B 78 */ mr r29, r3 -/* 80126860 001237A0 88 03 00 4C */ lbz r0, 0x4c(r3) -/* 80126864 001237A4 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 80126868 001237A8 41 82 02 D4 */ beq .L_80126B3C -/* 8012686C 001237AC C0 3F 00 9C */ lfs f1, 0x9c(r31) -/* 80126870 001237B0 7F C3 F3 78 */ mr r3, r30 -/* 80126874 001237B4 C0 1F 00 A8 */ lfs f0, 0xa8(r31) -/* 80126878 001237B8 38 80 00 00 */ li r4, 0 -/* 8012687C 001237BC C0 7F 00 98 */ lfs f3, 0x98(r31) -/* 80126880 001237C0 C0 5F 00 A4 */ lfs f2, 0xa4(r31) -/* 80126884 001237C4 EC 81 00 2A */ fadds f4, f1, f0 -/* 80126888 001237C8 C0 3F 00 94 */ lfs f1, 0x94(r31) -/* 8012688C 001237CC C0 1F 00 A0 */ lfs f0, 0xa0(r31) -/* 80126890 001237D0 EC 43 10 2A */ fadds f2, f3, f2 -/* 80126894 001237D4 EC 01 00 2A */ fadds f0, f1, f0 -/* 80126898 001237D8 D0 81 00 40 */ stfs f4, 0x40(r1) -/* 8012689C 001237DC D0 41 00 3C */ stfs f2, 0x3c(r1) -/* 801268A0 001237E0 D0 01 00 38 */ stfs f0, 0x38(r1) -/* 801268A4 001237E4 48 2F EF 79 */ bl initPrimDraw__8GraphicsFP7Matrixf -/* 801268A8 001237E8 38 60 00 12 */ li r3, 0x12 -/* 801268AC 001237EC 38 80 00 00 */ li r4, 0 -/* 801268B0 001237F0 4B FB F2 31 */ bl GXSetLineWidth -/* 801268B4 001237F4 38 00 00 73 */ li r0, 0x73 -/* 801268B8 001237F8 38 C0 00 10 */ li r6, 0x10 -/* 801268BC 001237FC 98 1E 00 84 */ stb r0, 0x84(r30) -/* 801268C0 00123800 38 00 00 FF */ li r0, 0xff -/* 801268C4 00123804 C0 42 9B 74 */ lfs f2, lbl_80517ED4@sda21(r2) -/* 801268C8 00123808 38 61 00 90 */ addi r3, r1, 0x90 -/* 801268CC 0012380C 98 DE 00 85 */ stb r6, 0x85(r30) -/* 801268D0 00123810 38 81 00 38 */ addi r4, r1, 0x38 -/* 801268D4 00123814 C0 62 9B 70 */ lfs f3, lbl_80517ED0@sda21(r2) -/* 801268D8 00123818 38 A1 00 2C */ addi r5, r1, 0x2c -/* 801268DC 0012381C 98 DE 00 86 */ stb r6, 0x86(r30) -/* 801268E0 00123820 C0 02 9B 4C */ lfs f0, lbl_80517EAC@sda21(r2) -/* 801268E4 00123824 98 1E 00 87 */ stb r0, 0x87(r30) -/* 801268E8 00123828 C0 3D 00 30 */ lfs f1, 0x30(r29) -/* 801268EC 0012382C EC 22 00 72 */ fmuls f1, f2, f1 -/* 801268F0 00123830 D0 01 00 2C */ stfs f0, 0x2c(r1) -/* 801268F4 00123834 D0 01 00 34 */ stfs f0, 0x34(r1) -/* 801268F8 00123838 EC 03 00 72 */ fmuls f0, f3, f1 -/* 801268FC 0012383C D0 01 00 30 */ stfs f0, 0x30(r1) -/* 80126900 00123840 48 30 1F 89 */ bl "makeTR__7MatrixfFR10Vector3R10Vector3" -/* 80126904 00123844 80 7E 02 5C */ lwz r3, 0x25c(r30) -/* 80126908 00123848 38 80 00 00 */ li r4, 0 -/* 8012690C 0012384C 48 2F E8 51 */ bl getMatrix__8ViewportFb -/* 80126910 00123850 80 7E 02 5C */ lwz r3, 0x25c(r30) -/* 80126914 00123854 38 80 00 00 */ li r4, 0 -/* 80126918 00123858 48 2F E8 45 */ bl getMatrix__8ViewportFb -/* 8012691C 0012385C 38 81 00 90 */ addi r4, r1, 0x90 -/* 80126920 00123860 38 A1 00 60 */ addi r5, r1, 0x60 -/* 80126924 00123864 4B FC 39 DD */ bl PSMTXConcat -/* 80126928 00123868 38 61 00 60 */ addi r3, r1, 0x60 -/* 8012692C 0012386C 38 80 00 00 */ li r4, 0 -/* 80126930 00123870 4B FC 2C 49 */ bl GXLoadPosMtxImm -/* 80126934 00123874 C0 42 9B 4C */ lfs f2, lbl_80517EAC@sda21(r2) -/* 80126938 00123878 7F C3 F3 78 */ mr r3, r30 -/* 8012693C 0012387C C0 22 9B 48 */ lfs f1, lbl_80517EA8@sda21(r2) -/* 80126940 00123880 38 81 00 20 */ addi r4, r1, 0x20 -/* 80126944 00123884 C0 02 9B D0 */ lfs f0, lbl_80517F30@sda21(r2) -/* 80126948 00123888 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8012694C 0012388C D0 41 00 20 */ stfs f2, 0x20(r1) -/* 80126950 00123890 D0 21 00 24 */ stfs f1, 0x24(r1) -/* 80126954 00123894 D0 41 00 28 */ stfs f2, 0x28(r1) -/* 80126958 00123898 D0 41 00 14 */ stfs f2, 0x14(r1) -/* 8012695C 0012389C D0 21 00 18 */ stfs f1, 0x18(r1) -/* 80126960 001238A0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80126964 001238A4 48 2F F0 85 */ bl "drawLine__8GraphicsFR10Vector3R10Vector3" -/* 80126968 001238A8 C0 42 9B D4 */ lfs f2, lbl_80517F34@sda21(r2) -/* 8012696C 001238AC 7F C3 F3 78 */ mr r3, r30 -/* 80126970 001238B0 C0 22 9B 48 */ lfs f1, lbl_80517EA8@sda21(r2) -/* 80126974 001238B4 38 81 00 20 */ addi r4, r1, 0x20 -/* 80126978 001238B8 C0 02 9B D8 */ lfs f0, lbl_80517F38@sda21(r2) -/* 8012697C 001238BC 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80126980 001238C0 D0 41 00 20 */ stfs f2, 0x20(r1) -/* 80126984 001238C4 D0 21 00 24 */ stfs f1, 0x24(r1) -/* 80126988 001238C8 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 8012698C 001238CC 48 2F F0 5D */ bl "drawLine__8GraphicsFR10Vector3R10Vector3" -/* 80126990 001238D0 C0 42 9B DC */ lfs f2, lbl_80517F3C@sda21(r2) -/* 80126994 001238D4 7F C3 F3 78 */ mr r3, r30 -/* 80126998 001238D8 C0 22 9B 48 */ lfs f1, lbl_80517EA8@sda21(r2) -/* 8012699C 001238DC 38 81 00 20 */ addi r4, r1, 0x20 -/* 801269A0 001238E0 C0 02 9B D8 */ lfs f0, lbl_80517F38@sda21(r2) -/* 801269A4 001238E4 38 A1 00 14 */ addi r5, r1, 0x14 -/* 801269A8 001238E8 D0 41 00 20 */ stfs f2, 0x20(r1) -/* 801269AC 001238EC D0 21 00 24 */ stfs f1, 0x24(r1) -/* 801269B0 001238F0 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 801269B4 001238F4 48 2F F0 35 */ bl "drawLine__8GraphicsFR10Vector3R10Vector3" -/* 801269B8 001238F8 38 60 00 06 */ li r3, 6 -/* 801269BC 001238FC 38 80 00 00 */ li r4, 0 -/* 801269C0 00123900 4B FB F1 21 */ bl GXSetLineWidth -/* 801269C4 00123904 38 61 00 90 */ addi r3, r1, 0x90 -/* 801269C8 00123908 38 81 00 38 */ addi r4, r1, 0x38 -/* 801269CC 0012390C 48 30 1E 75 */ bl "makeT__7MatrixfFR10Vector3" -/* 801269D0 00123910 88 1D 00 28 */ lbz r0, 0x28(r29) -/* 801269D4 00123914 28 00 00 02 */ cmplwi r0, 2 -/* 801269D8 00123918 40 82 00 2C */ bne .L_80126A04 -/* 801269DC 0012391C 38 A0 00 FF */ li r5, 0xff -/* 801269E0 00123920 38 00 00 9B */ li r0, 0x9b -/* 801269E4 00123924 98 BE 00 84 */ stb r5, 0x84(r30) -/* 801269E8 00123928 7F C3 F3 78 */ mr r3, r30 -/* 801269EC 0012392C 38 81 00 90 */ addi r4, r1, 0x90 -/* 801269F0 00123930 98 BE 00 85 */ stb r5, 0x85(r30) -/* 801269F4 00123934 98 BE 00 86 */ stb r5, 0x86(r30) -/* 801269F8 00123938 98 1E 00 87 */ stb r0, 0x87(r30) -/* 801269FC 0012393C C0 3D 00 2C */ lfs f1, 0x2c(r29) -/* 80126A00 00123940 48 2F F6 45 */ bl drawSphere__8GraphicsFfP7Matrixf -.L_80126A04: -/* 80126A04 00123944 C0 02 9B 5C */ lfs f0, lbl_80517EBC@sda21(r2) -/* 80126A08 00123948 38 E0 00 00 */ li r7, 0 -/* 80126A0C 0012394C 38 00 00 FF */ li r0, 0xff -/* 80126A10 00123950 38 C0 00 66 */ li r6, 0x66 -/* 80126A14 00123954 81 0D 89 D8 */ lwz r8, systemFont__9JFWSystem@sda21(r13) -/* 80126A18 00123958 38 A0 00 99 */ li r5, 0x99 -/* 80126A1C 0012395C D0 01 00 54 */ stfs f0, 0x54(r1) -/* 80126A20 00123960 7F C3 F3 78 */ mr r3, r30 -/* 80126A24 00123964 C0 02 9B 60 */ lfs f0, lbl_80517EC0@sda21(r2) -/* 80126A28 00123968 38 80 00 00 */ li r4, 0 -/* 80126A2C 0012396C 91 01 00 44 */ stw r8, 0x44(r1) -/* 80126A30 00123970 90 E1 00 48 */ stw r7, 0x48(r1) -/* 80126A34 00123974 90 E1 00 4C */ stw r7, 0x4c(r1) -/* 80126A38 00123978 90 E1 00 50 */ stw r7, 0x50(r1) -/* 80126A3C 0012397C 98 C1 00 58 */ stb r6, 0x58(r1) -/* 80126A40 00123980 98 A1 00 59 */ stb r5, 0x59(r1) -/* 80126A44 00123984 98 01 00 5A */ stb r0, 0x5a(r1) -/* 80126A48 00123988 98 01 00 5B */ stb r0, 0x5b(r1) -/* 80126A4C 0012398C 98 E1 00 5C */ stb r7, 0x5c(r1) -/* 80126A50 00123990 98 C1 00 5D */ stb r6, 0x5d(r1) -/* 80126A54 00123994 98 01 00 5E */ stb r0, 0x5e(r1) -/* 80126A58 00123998 98 01 00 5F */ stb r0, 0x5f(r1) -/* 80126A5C 0012399C D0 01 00 54 */ stfs f0, 0x54(r1) -/* 80126A60 001239A0 48 2F ED BD */ bl initPrimDraw__8GraphicsFP7Matrixf -/* 80126A64 001239A4 38 E0 00 32 */ li r7, 0x32 -/* 80126A68 001239A8 38 A0 00 FF */ li r5, 0xff -/* 80126A6C 001239AC 38 C0 00 64 */ li r6, 0x64 -/* 80126A70 001239B0 38 00 00 96 */ li r0, 0x96 -/* 80126A74 001239B4 98 E1 00 58 */ stb r7, 0x58(r1) -/* 80126A78 001239B8 7F C3 F3 78 */ mr r3, r30 -/* 80126A7C 001239BC 38 80 00 00 */ li r4, 0 -/* 80126A80 001239C0 98 C1 00 59 */ stb r6, 0x59(r1) -/* 80126A84 001239C4 98 A1 00 5A */ stb r5, 0x5a(r1) -/* 80126A88 001239C8 98 A1 00 5B */ stb r5, 0x5b(r1) -/* 80126A8C 001239CC 98 E1 00 5C */ stb r7, 0x5c(r1) -/* 80126A90 001239D0 98 E1 00 5D */ stb r7, 0x5d(r1) -/* 80126A94 001239D4 98 01 00 5E */ stb r0, 0x5e(r1) -/* 80126A98 001239D8 98 A1 00 5F */ stb r5, 0x5f(r1) -/* 80126A9C 001239DC 48 2F EB 55 */ bl getViewport__8GraphicsFi -/* 80126AA0 001239E0 7C 64 1B 78 */ mr r4, r3 -/* 80126AA4 001239E4 7F C3 F3 78 */ mr r3, r30 -/* 80126AA8 001239E8 48 30 0E 01 */ bl initPerspPrintf__8GraphicsFP8Viewport -/* 80126AAC 001239EC C0 3F 00 98 */ lfs f1, 0x98(r31) -/* 80126AB0 001239F0 3C 60 80 4B */ lis r3, gEnemyInfo__4Game@ha -/* 80126AB4 001239F4 C0 1F 00 A4 */ lfs f0, 0xa4(r31) -/* 80126AB8 001239F8 38 E3 C5 38 */ addi r7, r3, gEnemyInfo__4Game@l -/* 80126ABC 001239FC C0 9F 00 9C */ lfs f4, 0x9c(r31) -/* 80126AC0 00123A00 7F C3 F3 78 */ mr r3, r30 -/* 80126AC4 00123A04 C0 7F 00 A8 */ lfs f3, 0xa8(r31) -/* 80126AC8 00123A08 EC A1 00 2A */ fadds f5, f1, f0 -/* 80126ACC 00123A0C C0 02 9B 48 */ lfs f0, lbl_80517EA8@sda21(r2) -/* 80126AD0 00123A10 38 81 00 44 */ addi r4, r1, 0x44 -/* 80126AD4 00123A14 C0 5F 00 94 */ lfs f2, 0x94(r31) -/* 80126AD8 00123A18 EC 64 18 2A */ fadds f3, f4, f3 -/* 80126ADC 00123A1C C0 3F 00 A0 */ lfs f1, 0xa0(r31) -/* 80126AE0 00123A20 EC 05 00 2A */ fadds f0, f5, f0 -/* 80126AE4 00123A24 38 A1 00 08 */ addi r5, r1, 8 -/* 80126AE8 00123A28 EC 22 08 2A */ fadds f1, f2, f1 -/* 80126AEC 00123A2C D0 A1 00 0C */ stfs f5, 0xc(r1) -/* 80126AF0 00123A30 38 C2 9B E0 */ addi r6, r2, lbl_80517F40@sda21 -/* 80126AF4 00123A34 D0 61 00 10 */ stfs f3, 0x10(r1) -/* 80126AF8 00123A38 D0 21 00 08 */ stfs f1, 8(r1) -/* 80126AFC 00123A3C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80126B00 00123A40 80 1D 00 24 */ lwz r0, 0x24(r29) -/* 80126B04 00123A44 A9 1D 00 2A */ lha r8, 0x2a(r29) -/* 80126B08 00123A48 1C 00 00 34 */ mulli r0, r0, 0x34 -/* 80126B0C 00123A4C 7C E7 00 2E */ lwzx r7, r7, r0 -/* 80126B10 00123A50 4C C6 31 82 */ crclr 6 -/* 80126B14 00123A54 48 30 0F C9 */ bl "perspPrintf__8GraphicsFR15PerspPrintfInfoR10Vector3Pce" -/* 80126B18 00123A58 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 80126B1C 00123A5C 28 03 00 00 */ cmplwi r3, 0 -/* 80126B20 00123A60 41 82 00 1C */ beq .L_80126B3C -/* 80126B24 00123A64 81 83 00 00 */ lwz r12, 0(r3) -/* 80126B28 00123A68 7F C4 F3 78 */ mr r4, r30 -/* 80126B2C 00123A6C 7F E5 FB 78 */ mr r5, r31 -/* 80126B30 00123A70 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 80126B34 00123A74 7D 89 03 A6 */ mtctr r12 -/* 80126B38 00123A78 4E 80 04 21 */ bctrl -.L_80126B3C: -/* 80126B3C 00123A7C 80 01 00 D4 */ lwz r0, 0xd4(r1) -/* 80126B40 00123A80 83 E1 00 CC */ lwz r31, 0xcc(r1) -/* 80126B44 00123A84 83 C1 00 C8 */ lwz r30, 0xc8(r1) -/* 80126B48 00123A88 83 A1 00 C4 */ lwz r29, 0xc4(r1) -/* 80126B4C 00123A8C 7C 08 03 A6 */ mtlr r0 -/* 80126B50 00123A90 38 21 00 D0 */ addi r1, r1, 0xd0 -/* 80126B54 00123A94 4E 80 00 20 */ blr -.endfn render__Q24Game14GenObjectEnemyFR8GraphicsPQ24Game9Generator - -.fn draw__Q24Game18EnemyGeneratorBaseFR8GraphicsPQ24Game9Generator, weak -/* 80126B58 00123A98 4E 80 00 20 */ blr -.endfn draw__Q24Game18EnemyGeneratorBaseFR8GraphicsPQ24Game9Generator - -.fn __dt__Q24Game18EnemyGeneratorBaseFv, weak -/* 80126B5C 00123A9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80126B60 00123AA0 7C 08 02 A6 */ mflr r0 -/* 80126B64 00123AA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80126B68 00123AA8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80126B6C 00123AAC 7C 9F 23 78 */ mr r31, r4 -/* 80126B70 00123AB0 93 C1 00 08 */ stw r30, 8(r1) -/* 80126B74 00123AB4 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80126B78 00123AB8 41 82 00 28 */ beq .L_80126BA0 -/* 80126B7C 00123ABC 3C A0 80 4B */ lis r5, __vt__Q24Game18EnemyGeneratorBase@ha -/* 80126B80 00123AC0 38 80 00 00 */ li r4, 0 -/* 80126B84 00123AC4 38 05 DB B0 */ addi r0, r5, __vt__Q24Game18EnemyGeneratorBase@l -/* 80126B88 00123AC8 90 1E 00 00 */ stw r0, 0(r30) -/* 80126B8C 00123ACC 48 2E A9 FD */ bl __dt__5CNodeFv -/* 80126B90 00123AD0 7F E0 07 35 */ extsh. r0, r31 -/* 80126B94 00123AD4 40 81 00 0C */ ble .L_80126BA0 -/* 80126B98 00123AD8 7F C3 F3 78 */ mr r3, r30 -/* 80126B9C 00123ADC 4B EF D5 19 */ bl __dl__FPv -.L_80126BA0: -/* 80126BA0 00123AE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80126BA4 00123AE4 7F C3 F3 78 */ mr r3, r30 -/* 80126BA8 00123AE8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80126BAC 00123AEC 83 C1 00 08 */ lwz r30, 8(r1) -/* 80126BB0 00123AF0 7C 08 03 A6 */ mtlr r0 -/* 80126BB4 00123AF4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80126BB8 00123AF8 4E 80 00 20 */ blr -.endfn __dt__Q24Game18EnemyGeneratorBaseFv - -.fn getInitialParam__Q24Game18EnemyGeneratorBaseFv, weak -/* 80126BBC 00123AFC 38 60 00 00 */ li r3, 0 -/* 80126BC0 00123B00 4E 80 00 20 */ blr -.endfn getInitialParam__Q24Game18EnemyGeneratorBaseFv - -.fn getName__Q24Game6GenArgFv, weak -/* 80126BC4 00123B04 38 62 9B E8 */ addi r3, r2, lbl_80517F48@sda21 -/* 80126BC8 00123B08 4E 80 00 20 */ blr -.endfn getName__Q24Game6GenArgFv - -.fn update__Q24Game9GenObjectFPQ24Game9Generator, weak -/* 80126BCC 00123B0C 4E 80 00 20 */ blr -.endfn update__Q24Game9GenObjectFPQ24Game9Generator - -.fn "generatorMakeMatrix__Q24Game9GenObjectFR7MatrixfR10Vector3", weak -/* 80126BD0 00123B10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80126BD4 00123B14 7C 08 02 A6 */ mflr r0 -/* 80126BD8 00123B18 7C 83 23 78 */ mr r3, r4 -/* 80126BDC 00123B1C 7C A4 2B 78 */ mr r4, r5 -/* 80126BE0 00123B20 90 01 00 14 */ stw r0, 0x14(r1) -/* 80126BE4 00123B24 48 30 1C 5D */ bl "makeT__7MatrixfFR10Vector3" -/* 80126BE8 00123B28 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80126BEC 00123B2C 7C 08 03 A6 */ mtlr r0 -/* 80126BF0 00123B30 38 21 00 10 */ addi r1, r1, 0x10 -/* 80126BF4 00123B34 4E 80 00 20 */ blr -.endfn "generatorMakeMatrix__Q24Game9GenObjectFR7MatrixfR10Vector3" - -.fn getDebugInfo__Q24Game9GenObjectFPc, weak -/* 80126BF8 00123B38 4E 80 00 20 */ blr -.endfn getDebugInfo__Q24Game9GenObjectFPc - -.fn doEvent__Q24Game7GenBaseFUl, weak -/* 80126BFC 00123B3C 4E 80 00 20 */ blr -.endfn doEvent__Q24Game7GenBaseFUl diff --git a/configure.py b/configure.py index 846a3e51b..0480b0c8c 100755 --- a/configure.py +++ b/configure.py @@ -846,7 +846,7 @@ ["plugProjectYamashitaU/enemyInfo", True], ["plugProjectYamashitaU/farm", True], ["plugProjectYamashitaU/farmMgr", True], - "plugProjectYamashitaU/genEnemy", + ["plugProjectYamashitaU/genEnemy", True], ["plugProjectYamashitaU/timeMgr", True], ["plugProjectYamashitaU/pelplantGenerator", True], ["plugProjectYamashitaU/enemyInteractActions", True], diff --git a/docs/recommended_todo.md b/docs/recommended_todo.md index 42d2c9c84..d8744db53 100644 --- a/docs/recommended_todo.md +++ b/docs/recommended_todo.md @@ -165,8 +165,8 @@ | ---- | ---- | ---- | ---- | | lifeGaugeMgr.cpp | 18880 | singleGS_ZukanParms.cpp | 21445 | | enemyStoneDrawInfo.cpp | 21939 | vtxAnm.cpp | 25420 | -| carryInfoMgr.cpp | 47646 | genEnemy.cpp | 47838 | -| enemyAction.cpp | 55563 | +| carryInfoMgr.cpp | 47646 | generalEnemyMgr.cpp | 55601 | +| enemyAction.cpp | 55613 | ###
sysBootupU
| File | Size (bytes) | File | Size (bytes) | diff --git a/include/Game/enemyInfo.h b/include/Game/enemyInfo.h index 1f188a8dd..81a0c9549 100644 --- a/include/Game/enemyInfo.h +++ b/include/Game/enemyInfo.h @@ -78,7 +78,7 @@ enum EEnemyTypeID {//ID Common Name EnemyID_Bomb = 36, // Bomb-rock EnemyID_Egg = 37, // Egg EnemyID_PanModoki = 38, // Breadbug - EnemyID_PanModokiNest = 39, // Unused ID, INVALID + EnemyID_PanModokiNest = 39, // Breadbug Nest EnemyID_OoPanModoki = 40, // Giant Breadbug EnemyID_Fuefuki = 41, // Antenna Beetle EnemyID_BlueChappy = 42, // Orange Bulborb @@ -103,7 +103,7 @@ enum EEnemyTypeID {//ID Common Name EnemyID_GasOtakara = 61, // Munge Dweevil EnemyID_ElecOtakara = 62, // Anode Dweevil EnemyID_Jigumo = 63, // Hermit Crawmad - EnemyID_INVALID2 = 64, // Unused ID + EnemyID_JigumoNest = 64, // Hermit Crawmad Nest EnemyID_Imomushi = 65, // Ravenous Whiskerpillar EnemyID_Houdai = 66, // Man-at-Legs EnemyID_LeafChappy = 67, // Bulbmin diff --git a/include/Game/gameGenerator.h b/include/Game/gameGenerator.h index b726e7349..05077902f 100644 --- a/include/Game/gameGenerator.h +++ b/include/Game/gameGenerator.h @@ -121,7 +121,7 @@ struct GenArg : public CreatureInitArg { inline GenArg() { } - virtual const char* getName(); // _08 (weak) + virtual const char* getName() { return "GenArg"; } // _08 (weak) // _00 VTBL Vector3f mPosition; // _04 @@ -133,7 +133,7 @@ struct GenBase : public Parameters { virtual void doWrite(Stream&); // _08 (weak) virtual void ramSaveParameters(Stream&); // _0C virtual void ramLoadParameters(Stream&); // _10 - virtual void doEvent(u32); // _14 (weak) + virtual void doEvent(u32) { } // _14 (weak) virtual void doRead(Stream&); // _18 (weak) virtual void update(Generator*); // _1C (weak) virtual void render(Graphics&, Generator*); // _20 (weak) @@ -161,12 +161,12 @@ struct EnemyGeneratorBase : public CNode { { } - virtual ~EnemyGeneratorBase() {}; // _08 (weak) - virtual void doWrite(Stream&); // _10 (weak) - virtual void doRead(Stream&); // _14 (weak) - virtual u32 getLatestVersion(); // _18 (weak) - virtual void draw(Graphics&, Generator*); // _1C (weak) - virtual void* getInitialParam(); // _20 (weak) + virtual ~EnemyGeneratorBase() { } // _08 (weak) + virtual void doWrite(Stream&) { } // _10 (weak) + virtual void doRead(Stream&) { } // _14 (weak) + virtual u32 getLatestVersion() { return '????'; } // _18 (weak) + virtual void draw(Graphics&, Generator*) { } // _1C (weak) + virtual void* getInitialParam() { return nullptr; } // _20 (weak) // _00 VTBL @@ -179,14 +179,17 @@ struct GenObject : public GenBase { { } - virtual void update(Game::Generator*); // _1C (weak) - virtual void render(Graphics&, Generator*); // _20 (weak) - virtual u32 getLatestVersion(); // _24 - virtual void updateUseList(Generator*, int); // _2C - virtual Creature* generate(Generator*); // _30 (weak) - virtual Creature* birth(GenArg*) = 0; // _34 - virtual void generatorMakeMatrix(Matrixf& genMatrix, Vector3f& position); // _38 (weak) - virtual void getDebugInfo(char*); // _3C (weak) + virtual void update(Game::Generator*) { } // _1C (weak) + virtual void render(Graphics&, Generator*); // _20 (weak) + virtual u32 getLatestVersion(); // _24 + virtual void updateUseList(Generator*, int); // _2C + virtual Creature* generate(Generator*); // _30 (weak) + virtual Creature* birth(GenArg*) = 0; // _34 + virtual void generatorMakeMatrix(Matrixf& genMatrix, Vector3f& position) // _38 (weak) + { + genMatrix.makeT(position); + } + virtual void getDebugInfo(char*) { } // _3C (weak) // _0C = VTBL // _00-_24 = GenBase @@ -298,9 +301,9 @@ struct GenObjectPiki : public GenObject { struct GenObjectEnemy : public GenObject { GenObjectEnemy(); - virtual void doWrite(Stream&); // _08 virtual void ramSaveParameters(Stream&); // _0C virtual void ramLoadParameters(Stream&); // _10 + virtual void doWrite(Stream&); // _08 virtual void doRead(Stream&); // _18 virtual void render(Graphics&, Generator*); // _20 virtual J3DModelData* getShape(); // _28 @@ -309,7 +312,7 @@ struct GenObjectEnemy : public GenObject { virtual Creature* birth(GenArg*); // _34 static void initialise(); - void createEnemyGenerator(); + EnemyGeneratorBase* createEnemyGenerator(); void doReadOldVersion(Stream&); EnemyTypeID::EEnemyTypeID mEnemyID; // _24 @@ -325,8 +328,6 @@ struct GenObjectEnemy : public GenObject { u8 _4C; // _4C }; -GenObject* makeObjectEnemy(); - /** * @size{0x10} */ diff --git a/include/trigNoInline.h b/include/trigNoInline.h new file mode 100644 index 000000000..c90d6b64e --- /dev/null +++ b/include/trigNoInline.h @@ -0,0 +1,97 @@ +#ifndef _TRIG_H +#define _TRIG_H + +#include "types.h" +#include "Vector3.h" +#include "JSystem/JMath.h" + +#define TAU 6.2831855f + +inline bool checkASinCosBounds(f32 x) { return (x >= -1.0f) && (x <= 1.0f); } + +inline f32 pikmin2_acos(f32 x) +{ + if (x >= 1.0f) { + return 0.0f; + } else if (x <= -1.0f) { + return PI; + } else if (x < 0.0f) { + f32 dumb = HALF_PI; + f32 acos = JMath::asinAcosTable_.mTable[(u32)(-x * 1023.5f)]; + return acos + dumb; + } else { + return HALF_PI - JMath::asinAcosTable_.mTable[(u32)(x * 1023.5f)]; + } +} + +inline f32 angXZ(Vector3f& vec1, Vector3f& vec2) +{ + Vector3f pos = vec1 - vec2; + return roundAng(JMAAtan2Radian(pos.x, pos.z)); +} + +inline f32 angXZ(f32 x, f32 z, Vector3f& vec) +{ + Vector3f pos = vec; + return roundAng(JMAAtan2Radian(x - pos.x, z - pos.z)); +} + +inline f32 _angXZ(f32 x1, f32 z1, f32 x2, f32 z2) { return roundAng(JMAAtan2Radian(x1 - x2, z1 - z2)); } + +inline int GetTableIdxNeg(f32 x) { return x *= -325.9493f; } + +inline int GetTableIdxPos(f32 x) { return x *= 325.9493f; } + +inline f32 altSin(f32 x) +{ + if (x < 0.0f) { + return -JMath::sincosTable_.mTable[GetTableIdxNeg(x) & 0x7ffU].first; + } + return JMath::sincosTable_.mTable[GetTableIdxPos(x) & 0x7ffU].first; +} + +inline f32 absF(f32 val) +{ + f64 newVal = fabs(val); + return (f32)newVal; +} + +inline f32 scaledSin(f32 theta) { return altSin(theta * TAU); } + +inline f32 absVal(f32 val) { return (val > 0.0f) ? val : -val; } + +inline int absVal(int val) { return (val > 0) ? val : -val; } + +inline f32 boundVal(f32 val, f32 limit) { return (val > 0.0f) ? limit : -limit; } + +inline f32 adjustVal(f32 y, f32 x, f32 delta) +{ + f32 diff = absVal(y - x); + + return (diff < delta) ? x : (y < x) ? y + delta : y - delta; +} + +inline int adjustValInt(int current, int dest, const int delta) +{ + return (absVal(current - dest) < delta) ? dest : (current < dest ? current += delta : current -= delta); +} + +inline Vector3f getRotationOffset(f32 scale, f32 y, f32 angle) +{ + return Vector3f(scale * pikmin2_sinf(angle), y, scale * pikmin2_cosf(angle)); +} + +inline Vector3f getRotation(f32 angle) { return Vector3f(pikmin2_sinf(angle), 0.0f, pikmin2_cosf(angle)); } + +inline f32 clamp(f32 val, f32 limit) +{ + // f64 abs = fabs(val); + if (absF(val) > limit) { + val = (val > 0.0f) ? limit : -limit; + } + return val; +} + +inline Vector3f getDirection(f32 angle) { return Vector3f(pikmin2_sinf(angle), 0.0f, pikmin2_cosf(angle)); } + +#endif diff --git a/src/plugProjectYamashitaU/Makefile b/src/plugProjectYamashitaU/Makefile index 18638a5df..ddd25c43a 100644 --- a/src/plugProjectYamashitaU/Makefile +++ b/src/plugProjectYamashitaU/Makefile @@ -20,7 +20,7 @@ YAMASHITA_FILES:=\ $(BUILD_DIR)/src/plugProjectYamashitaU/enemyInfo.o\ $(BUILD_DIR)/src/plugProjectYamashitaU/farm.o\ $(BUILD_DIR)/src/plugProjectYamashitaU/farmMgr.o\ - $(BUILD_DIR)/asm/plugProjectYamashitaU/genEnemy.o\ + $(BUILD_DIR)/src/plugProjectYamashitaU/genEnemy.o\ $(BUILD_DIR)/src/plugProjectYamashitaU/timeMgr.o\ $(BUILD_DIR)/src/plugProjectYamashitaU/pelplantGenerator.o\ $(BUILD_DIR)/src/plugProjectYamashitaU/enemyInteractActions.o\ diff --git a/src/plugProjectYamashitaU/enemyInfo.cpp b/src/plugProjectYamashitaU/enemyInfo.cpp index 127607689..71590e4ab 100644 --- a/src/plugProjectYamashitaU/enemyInfo.cpp +++ b/src/plugProjectYamashitaU/enemyInfo.cpp @@ -163,7 +163,7 @@ char* getEnemyResName(int enemyID, int enemyFlags) break; } - if (enemyID == EnemyTypeID::EnemyID_PanModokiNest || enemyID == EnemyTypeID::EnemyID_INVALID2) { + if (enemyID == EnemyTypeID::EnemyID_PanModokiNest || enemyID == EnemyTypeID::EnemyID_JigumoNest) { enemyID = EnemyTypeID::EnemyID_PanHouse; } diff --git a/src/plugProjectYamashitaU/genEnemy.cpp b/src/plugProjectYamashitaU/genEnemy.cpp index a75fc7b0f..e55b716aa 100644 --- a/src/plugProjectYamashitaU/genEnemy.cpp +++ b/src/plugProjectYamashitaU/genEnemy.cpp @@ -1,26 +1,29 @@ +#include "trigNoInline.h" #include "Game/generalEnemyMgr.h" #include "Game/Entities/Pelplant.h" #include "Game/Entities/Qurione.h" #include "Game/Entities/Rock.h" #include "Game/Entities/ElecHiba.h" +#include "Game/PelletBirthBuffer.h" +#include "Game/MapMgr.h" +#include "Dolphin/rand.h" namespace Game { +static const char unusedGenEnemyName[] = "genEnemy"; + /* * --INFO-- * Address: 80124778 * Size: 00003C */ -GenObject* makeObjectEnemy() { return new GenObjectEnemy; } +static GenObject* makeObjectEnemy() { return new GenObjectEnemy; } /* * --INFO-- * Address: 801247B4 * Size: 0000D0 - * Nearly matches; only mismatch is a misordered pair of epilogue instructions. - * https://decomp.me/scratch/O7lwP - * SOLVED: use true instead of 1 */ GenObjectEnemy::GenObjectEnemy() : GenObject('teki', "object type", "敵をセット") @@ -80,486 +83,138 @@ void GenObjectEnemy::ramLoadParameters(Stream&) { } * Address: 80124918 * Size: 0006B4 */ -Creature* GenObjectEnemy::generate(Game::Generator* generator) +Creature* GenObjectEnemy::generate(Game::Generator* gen) { - return nullptr; // placeholder - /* - stwu r1, -0x1b0(r1) - mflr r0 - stw r0, 0x1b4(r1) - stfd f31, 0x1a0(r1) - psq_st f31, 424(r1), 0, qr0 - stfd f30, 0x190(r1) - psq_st f30, 408(r1), 0, qr0 - stfd f29, 0x180(r1) - psq_st f29, 392(r1), 0, qr0 - stfd f28, 0x170(r1) - psq_st f28, 376(r1), 0, qr0 - stfd f27, 0x160(r1) - psq_st f27, 360(r1), 0, qr0 - stfd f26, 0x150(r1) - psq_st f26, 344(r1), 0, qr0 - stmw r20, 0x120(r1) - lfs f1, 0x94(r4) - mr r27, r4 - lfs f0, 0xa0(r4) - mr r26, r3 - lfs f3, 0x98(r27) - lis r3, "__ct__10Vector3Fv"@ha - fadds f31, f1, f0 - lfs f2, 0xa4(r27) - lfs f1, 0x9c(r27) - addi r4, r3, "__ct__10Vector3Fv"@l - lfs f0, 0xa8(r27) - fadds f30, f3, f2 - lwz r7, 0x74(r27) - fadds f29, f1, f0 - lha r0, 0x2a(r26) - addi r3, r1, 0x90 - li r5, 0 - li r6, 0xc - subf r29, r7, r0 - li r7, 0xa - bl __construct_array - lis r4, "__ct__10Vector3Fv"@ha - addi r3, r1, 0x18 - addi r4, r4, "__ct__10Vector3Fv"@l - li r5, 0 - li r6, 0xc - li r7, 0xa - bl __construct_array - addi r31, r1, 0x90 - li r22, 0 - mr r28, r31 - b lbl_80124AA8 - - lbl_801249D8: - lbz r0, 0x28(r26) - cmplwi r0, 1 - bne lbl_801249F4 - stfs f31, 0(r28) - stfs f30, 4(r28) - stfs f29, 8(r28) - b lbl_80124AA0 - - lbl_801249F4: - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0x10c(r1) - lfd f3, lbl_80517EC8@sda21(r2) - stw r0, 0x108(r1) - lfs f1, lbl_80517EB0@sda21(r2) - lfd f2, 0x108(r1) - lfs f0, lbl_80517EB4@sda21(r2) - fsubs f2, f2, f3 - fdivs f1, f2, f1 - fmuls f26, f0, f1 - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0x114(r1) - fmr f1, f26 - lfd f4, lbl_80517EC8@sda21(r2) - stw r0, 0x110(r1) - lfs f2, lbl_80517EB0@sda21(r2) - lfd f3, 0x110(r1) - lfs f0, 0x2c(r26) - fsubs f3, f3, f4 - fdivs f2, f3, f2 - fmuls f28, f0, f2 - bl pikmin2_cosf__Ff - fmuls f27, f28, f1 - fmr f1, f26 - bl pikmin2_sinf__Ff - fmuls f1, f28, f1 - lfs f0, lbl_80517EAC@sda21(r2) - stfs f1, 0(r28) - stfs f0, 4(r28) - stfs f27, 8(r28) - lfs f0, 0(r28) - lfs f1, 4(r28) - fadds f0, f0, f31 - lfs f2, 8(r28) - fadds f1, f1, f30 - fadds f2, f2, f29 - stfs f0, 0(r28) - stfs f1, 4(r28) - stfs f2, 8(r28) - - lbl_80124AA0: - addi r28, r28, 0xc - addi r22, r22, 1 - - lbl_80124AA8: - cmpw r22, r29 - blt lbl_801249D8 - lfs f1, 0x34(r26) - lfs f0, lbl_80517EAC@sda21(r2) - lfs f28, lbl_80517EB8@sda21(r2) - fcmpo cr0, f1, f0 - ble lbl_80124AC8 - fmr f28, f1 - - lbl_80124AC8: - li r28, 0 - addi r30, r1, 0x18 - - lbl_80124AD0: - cmpwi r29, 0 - li r5, 0 - ble lbl_80124BA8 - cmpwi r29, 8 - addi r3, r29, -8 - ble lbl_80124B70 - addi r0, r3, 7 - addi r4, r1, 0x18 - srwi r0, r0, 3 - lfs f0, lbl_80517EAC@sda21(r2) - mtctr r0 - cmpwi r3, 0 - ble lbl_80124B70 - - lbl_80124B04: - stfs f0, 8(r4) - addi r5, r5, 8 - stfs f0, 4(r4) - stfs f0, 0(r4) - stfs f0, 0x14(r4) - stfs f0, 0x10(r4) - stfs f0, 0xc(r4) - stfs f0, 0x20(r4) - stfs f0, 0x1c(r4) - stfs f0, 0x18(r4) - stfs f0, 0x2c(r4) - stfs f0, 0x28(r4) - stfs f0, 0x24(r4) - stfs f0, 0x38(r4) - stfs f0, 0x34(r4) - stfs f0, 0x30(r4) - stfs f0, 0x44(r4) - stfs f0, 0x40(r4) - stfs f0, 0x3c(r4) - stfs f0, 0x50(r4) - stfs f0, 0x4c(r4) - stfs f0, 0x48(r4) - stfs f0, 0x5c(r4) - stfs f0, 0x58(r4) - stfs f0, 0x54(r4) - addi r4, r4, 0x60 - bdnz lbl_80124B04 - - lbl_80124B70: - mulli r3, r5, 0xc - addi r4, r1, 0x18 - subf r0, r5, r29 - lfs f0, lbl_80517EAC@sda21(r2) - add r4, r4, r3 - mtctr r0 - cmpw r5, r29 - bge lbl_80124BA8 - - lbl_80124B90: - stfs f0, 8(r4) - addi r5, r5, 1 - stfs f0, 4(r4) - stfs f0, 0(r4) - addi r4, r4, 0xc - bdnz lbl_80124B90 - - lbl_80124BA8: - mr r23, r31 - mr r22, r30 - li r21, 0 - b lbl_80124CC0 - - lbl_80124BB8: - addi r20, r21, 1 - addi r25, r1, 0x90 - mulli r0, r20, 0xc - addi r24, r1, 0x18 - add r25, r25, r0 - add r24, r24, r0 - b lbl_80124CAC - - lbl_80124BD4: - lfs f2, 4(r23) - lfs f0, 4(r25) - lfs f1, 0(r23) - fsubs f30, f2, f0 - lfs f0, 0(r25) - lfs f2, 8(r23) - fsubs f29, f1, f0 - lfs f1, 8(r25) - fmuls f0, f30, f30 - fsubs f31, f2, f1 - fmadds f0, f29, f29, f0 - fmadds f26, f31, f31, f0 - fmr f1, f26 - bl pikmin2_sqrtf__Ff - fmr f27, f1 - fcmpo cr0, f27, f28 - bge lbl_80124CA0 - fmr f1, f26 - bl pikmin2_sqrtf__Ff - lfs f0, lbl_80517EAC@sda21(r2) - fcmpo cr0, f1, f0 - ble lbl_80124C40 - lfs f0, lbl_80517EBC@sda21(r2) - fdivs f0, f0, f1 - fmuls f29, f29, f0 - fmuls f30, f30, f0 - fmuls f31, f31, f0 - - lbl_80124C40: - fsubs f1, f28, f27 - lfs f2, lbl_80517EC0@sda21(r2) - lfs f0, 0(r22) - fmuls f1, f2, f1 - fmuls f29, f29, f1 - fmuls f30, f30, f1 - fmuls f31, f31, f1 - fadds f0, f0, f29 - stfs f0, 0(r22) - lfs f0, 4(r22) - fadds f0, f0, f30 - stfs f0, 4(r22) - lfs f0, 8(r22) - fadds f0, f0, f31 - stfs f0, 8(r22) - lfs f0, 0(r24) - fsubs f0, f0, f29 - stfs f0, 0(r24) - lfs f0, 4(r24) - fsubs f0, f0, f30 - stfs f0, 4(r24) - lfs f0, 8(r24) - fsubs f0, f0, f31 - stfs f0, 8(r24) - - lbl_80124CA0: - addi r25, r25, 0xc - addi r24, r24, 0xc - addi r20, r20, 1 - - lbl_80124CAC: - cmpw r20, r29 - blt lbl_80124BD4 - addi r23, r23, 0xc - addi r22, r22, 0xc - addi r21, r21, 1 - - lbl_80124CC0: - cmpw r21, r29 - blt lbl_80124BB8 - cmpwi r29, 0 - li r6, 0 - ble lbl_80124EF0 - cmpwi r29, 8 - addi r3, r29, -8 - ble lbl_80124E8C - addi r0, r3, 7 - mr r4, r30 - srwi r0, r0, 3 - mr r5, r31 - mtctr r0 - cmpwi r3, 0 - ble lbl_80124E8C - - lbl_80124CFC: - lfs f1, 0(r5) - addi r6, r6, 8 - lfs f0, 0(r4) - fadds f0, f1, f0 - stfs f0, 0(r5) - lfs f1, 4(r5) - lfs f0, 4(r4) - fadds f0, f1, f0 - stfs f0, 4(r5) - lfs f1, 8(r5) - lfs f0, 8(r4) - fadds f0, f1, f0 - stfs f0, 8(r5) - lfs f1, 0xc(r5) - lfs f0, 0xc(r4) - fadds f0, f1, f0 - stfs f0, 0xc(r5) - lfs f1, 0x10(r5) - lfs f0, 0x10(r4) - fadds f0, f1, f0 - stfs f0, 0x10(r5) - lfs f1, 0x14(r5) - lfs f0, 0x14(r4) - fadds f0, f1, f0 - stfs f0, 0x14(r5) - lfs f1, 0x18(r5) - lfs f0, 0x18(r4) - fadds f0, f1, f0 - stfs f0, 0x18(r5) - lfs f1, 0x1c(r5) - lfs f0, 0x1c(r4) - fadds f0, f1, f0 - stfs f0, 0x1c(r5) - lfs f1, 0x20(r5) - lfs f0, 0x20(r4) - fadds f0, f1, f0 - stfs f0, 0x20(r5) - lfs f1, 0x24(r5) - lfs f0, 0x24(r4) - fadds f0, f1, f0 - stfs f0, 0x24(r5) - lfs f1, 0x28(r5) - lfs f0, 0x28(r4) - fadds f0, f1, f0 - stfs f0, 0x28(r5) - lfs f1, 0x2c(r5) - lfs f0, 0x2c(r4) - fadds f0, f1, f0 - stfs f0, 0x2c(r5) - lfs f1, 0x30(r5) - lfs f0, 0x30(r4) - fadds f0, f1, f0 - stfs f0, 0x30(r5) - lfs f1, 0x34(r5) - lfs f0, 0x34(r4) - fadds f0, f1, f0 - stfs f0, 0x34(r5) - lfs f1, 0x38(r5) - lfs f0, 0x38(r4) - fadds f0, f1, f0 - stfs f0, 0x38(r5) - lfs f1, 0x3c(r5) - lfs f0, 0x3c(r4) - fadds f0, f1, f0 - stfs f0, 0x3c(r5) - lfs f1, 0x40(r5) - lfs f0, 0x40(r4) - fadds f0, f1, f0 - stfs f0, 0x40(r5) - lfs f1, 0x44(r5) - lfs f0, 0x44(r4) - fadds f0, f1, f0 - stfs f0, 0x44(r5) - lfs f1, 0x48(r5) - lfs f0, 0x48(r4) - fadds f0, f1, f0 - stfs f0, 0x48(r5) - lfs f1, 0x4c(r5) - lfs f0, 0x4c(r4) - fadds f0, f1, f0 - stfs f0, 0x4c(r5) - lfs f1, 0x50(r5) - lfs f0, 0x50(r4) - fadds f0, f1, f0 - stfs f0, 0x50(r5) - lfs f1, 0x54(r5) - lfs f0, 0x54(r4) - fadds f0, f1, f0 - stfs f0, 0x54(r5) - lfs f1, 0x58(r5) - lfs f0, 0x58(r4) - fadds f0, f1, f0 - stfs f0, 0x58(r5) - lfs f0, 0x5c(r4) - addi r4, r4, 0x60 - lfs f1, 0x5c(r5) - fadds f0, f1, f0 - stfs f0, 0x5c(r5) - addi r5, r5, 0x60 - bdnz lbl_80124CFC - - lbl_80124E8C: - mulli r5, r6, 0xc - addi r3, r1, 0x18 - addi r4, r1, 0x90 - subf r0, r6, r29 - add r3, r3, r5 - add r4, r4, r5 - mtctr r0 - cmpw r6, r29 - bge lbl_80124EF0 - - lbl_80124EB0: - lfs f2, 0(r4) - addi r6, r6, 1 - lfs f0, 0(r3) - lfs f1, 4(r3) - fadds f2, f2, f0 - lfs f0, 8(r3) - addi r3, r3, 0xc - stfs f2, 0(r4) - lfs f2, 4(r4) - fadds f1, f2, f1 - stfs f1, 4(r4) - lfs f1, 8(r4) - fadds f0, f1, f0 - stfs f0, 8(r4) - addi r4, r4, 0xc - bdnz lbl_80124EB0 - - lbl_80124EF0: - addi r28, r28, 1 - cmpwi r28, 5 - blt lbl_80124AD0 - lis r4, __vt__Q24Game15CreatureInitArg@ha - lis r3, __vt__Q24Game6GenArg@ha - li r20, 0 - addi r30, r4, __vt__Q24Game15CreatureInitArg@l - addi r28, r3, __vt__Q24Game6GenArg@l - b lbl_80124F7C - - lbl_80124F14: - lwz r3, mapMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_80124F38 - lwz r12, 4(r3) - mr r4, r31 - lwz r12, 0x28(r12) - mtctr r12 - bctrl - stfs f1, 4(r31) - - lbl_80124F38: - stw r30, 8(r1) - mr r3, r26 - lfs f2, 0(r31) - addi r4, r1, 8 - lfs f1, 4(r31) - lfs f0, 8(r31) - stw r28, 8(r1) - stfs f2, 0xc(r1) - stfs f1, 0x10(r1) - stfs f0, 0x14(r1) - lwz r12, 0xc(r26) - lwz r12, 0x34(r12) - mtctr r12 - bctrl - stw r27, 0xc4(r3) - addi r31, r31, 0xc - addi r20, r20, 1 - - lbl_80124F7C: - cmpw r20, r29 - blt lbl_80124F14 - li r3, 0 - psq_l f31, 424(r1), 0, qr0 - lfd f31, 0x1a0(r1) - psq_l f30, 408(r1), 0, qr0 - lfd f30, 0x190(r1) - psq_l f29, 392(r1), 0, qr0 - lfd f29, 0x180(r1) - psq_l f28, 376(r1), 0, qr0 - lfd f28, 0x170(r1) - psq_l f27, 360(r1), 0, qr0 - lfd f27, 0x160(r1) - psq_l f26, 344(r1), 0, qr0 - lfd f26, 0x150(r1) - lmw r20, 0x120(r1) - lwz r0, 0x1b4(r1) - mtlr r0 - addi r1, r1, 0x1b0 - blr - */ + Vector3f startpos; + + // Grab initial starting positions + f32 x, y, z; + x = gen->mPosition.x + gen->mOffset.x; // f31 + y = gen->mPosition.y + gen->mOffset.y; // f30 + z = gen->mPosition.z + gen->mOffset.z; // f29 + + startpos.x = x; + startpos.y = y; + startpos.z = z; + + // Grab the number of tekis we're spawning + int tekicount = mTekiNum - gen->_74; + + Vector3f posVector[10]; // holds initial positions + Vector3f corrVector[10]; // holds corrections if too close to other tekis + Vector3f vector; + f32 ox, oz, offR, oa; + + for (int i = 0; i < tekicount; i++) { + // If teki is Type 1, don't do any random adjustments + if (mSpawnType == 1) { + posVector[i] = startpos; + // copy(&posVector[i], &startpos); + continue; + } + // If teki isn't Type 1, jiggle it a bit + oa = TAU * randFloat(); // random angle between 0 and 360 degrees + offR = mAppearRadius * randFloat(); // random distance between 0 and m_appearRadius + oz = offR * pikmin2_cosf(oa); + ox = offR * pikmin2_sinf(oa); + + posVector[i].x = ox; + posVector[i].y = 0.0f; + posVector[i].z = oz; + + vector = posVector[i]; + vector += startpos; + posVector[i] = vector; + } + + // Default enemy territory size is 35 units, unless overwritten by m_enemySize + // f32 enemy_territory = 35.0f; + // f32 dz, dx, dy; + f32 dx, dy, dz; + f32 enemy_territory = 35.0f; + if (mEnemySize > 0.0f) { + enemy_territory = mEnemySize; + } + + // iteratively calculate corrections 5x, to make sure + // Teki A doesn't force Teki B into Teki C accidentally + // (I guess). + for (int j = 0; j < 5; j++) { + // Initialise the corrections as 0 + for (int i = 0; i < tekicount; i++) { + corrVector[i].z = 0.0f; + corrVector[i].y = 0.0f; + corrVector[i].x = 0.0f; + } + // Push the enemies away from each other if too close + for (int i = 0; i < tekicount; i++) { + for (int k = i + 1; k < tekicount; k++) { + // loop over all unique pairings of teki + Vector3f& position = posVector[i]; // position of teki i + Vector3f& position2 = posVector[k]; // position of teki k + Vector3f& positionCorrection = corrVector[i]; // correction for teki i + Vector3f& positionCorrection2 = corrVector[k]; // correction for teki k + // calculate delta components from initial positions + dy = position.y - position2.y; + dx = position.x - position2.x; + dz = position.z - position2.z; + + f32 sq_dist = dx * dx + dy * dy + dz * dz; + f32 dist = pikmin2_sqrtf(sq_dist); // euclidean distance between teki i and k + + // Calculate corrections if too close + // (if tekis are closer than the 'enemy territory', shove 'em so they're a 'territory' apart) + if (dist < enemy_territory) { + // idk why it re-calculates the distance here but it seems to, go figure + f32 newdist = pikmin2_sqrtf(sq_dist); + // dist needs to be non-zero to use as denominator + // dist should always be >= 0 because square root + if (newdist > 0.0f) { + f32 c0 = 1.0f / newdist; + dx = dx * c0; + dy = dy * c0; + dz = dz * c0; + } + // assuming distance =/= 0, corrected delta component is + // delta_2 = (1/2) * delta_1 * (enemy_territory - dist) / dist + // basically has the effect of making new separation equal to 'enemy territory' size + f32 c1 = (enemy_territory - dist) * 0.5f; + dx = dx * c1; + dy = dy * c1; + dz = dz * c1; + // corrections for teki i + positionCorrection.x += dx; + positionCorrection.y += dy; + positionCorrection.z += dz; + // corrections for teki k + positionCorrection2.x -= dx; + positionCorrection2.y -= dy; + positionCorrection2.z -= dz; + } + } + } + // adjust initial positions by corrections + for (int i = 0; i < tekicount; i++) { + Vector3f& positionCorrection = corrVector[i]; + Vector3f& position = posVector[i]; + + position.x += positionCorrection.x; + position.y += positionCorrection.y; + position.z += positionCorrection.z; + } + } + + // Spawn the teki (on the ground) + for (int i = 0; i < tekicount; i++) { + + if (mapMgr) { + posVector[i].y = mapMgr->getMinY(posVector[i]); // makes sure teki is placed on floor + } + + GenArg initVars(posVector[i]); + birth(&initVars)->mGenerator = gen; // spawn teki + } + return nullptr; } /* @@ -567,69 +222,25 @@ Creature* GenObjectEnemy::generate(Game::Generator* generator) * Address: 80124FCC * Size: 0000E0 */ -Creature* GenObjectEnemy::birth(Game::GenArg*) +Creature* GenObjectEnemy::birth(Game::GenArg* genArg) { - return nullptr; // placeholder - /* - stwu r1, -0x50(r1) - mflr r0 - stw r0, 0x54(r1) - stw r31, 0x4c(r1) - mr r31, r4 - stw r30, 0x48(r1) - mr r30, r3 - lwz r12, 0xc(r3) - lwz r12, 0x24(r12) - mtctr r12 - bctrl - addi r3, r1, 8 - bl __ct__Q24Game13EnemyBirthArgFv - lfs f0, 4(r31) - addi r5, r1, 8 - lfs f1, lbl_80517ED4@sda21(r2) - stfs f0, 8(r1) - lfs f2, lbl_80517ED0@sda21(r2) - lfs f0, 8(r31) - lwz r3, generalEnemyMgr__4Game@sda21(r13) - stfs f0, 0xc(r1) - lfs f0, 0xc(r31) - stfs f0, 0x10(r1) - lfs f0, 0x30(r30) - fmuls f0, f1, f0 - fmuls f0, f2, f0 - stfs f0, 0x14(r1) - lbz r0, 0x29(r30) - stb r0, 0x18(r1) - lwz r0, 0x48(r30) - stw r0, 0x1c(r1) - lha r0, 0x38(r30) - sth r0, 0x20(r1) - lbz r0, 0x3c(r30) - stb r0, 0x24(r1) - lbz r0, 0x3d(r30) - stb r0, 0x25(r1) - lbz r0, 0x3e(r30) - stb r0, 0x26(r1) - lbz r0, 0x3f(r30) - stb r0, 0x27(r1) - lfs f0, 0x40(r30) - stfs f0, 0x28(r1) - lwz r4, 0x24(r30) - bl birth__Q24Game15GeneralEnemyMgrFiRQ24Game13EnemyBirthArg - or. r31, r3, r3 - beq lbl_80125090 - li r4, 0 - bl init__Q24Game8CreatureFPQ24Game15CreatureInitArg - - lbl_80125090: - lwz r0, 0x54(r1) - mr r3, r31 - lwz r31, 0x4c(r1) - lwz r30, 0x48(r1) - mtlr r0 - addi r1, r1, 0x50 - blr - */ + getLatestVersion(); + EnemyBirthArg birthArg; + birthArg.mPosition = genArg->mPosition; + birthArg.mFaceDir = TORADIANS(mDirection); + birthArg.mTekiBirthType = mTekiBirthType; + birthArg.mGenerator = mEnemyGenerator; + birthArg.mOtakaraItemCode = mOtakaraItemCode; + birthArg.mPelletInfo.mColor = mPelletInfo.mColor; + birthArg.mPelletInfo.mSize = mPelletInfo.mSize; + birthArg.mPelletInfo.mMinPellets = mPelletInfo.mMinPellets; + birthArg.mPelletInfo.mMaxPellets = mPelletInfo.mMaxPellets; + birthArg.mPelletInfo.mSpawnChance = mPelletInfo.mSpawnChance; + EnemyBase* enemy = generalEnemyMgr->birth(mEnemyID, birthArg); + if (enemy) { + enemy->init(nullptr); + } + return enemy; } /* @@ -637,633 +248,220 @@ Creature* GenObjectEnemy::birth(Game::GenArg*) * Address: 801250AC * Size: 000218 */ -void GenObjectEnemy::doWrite(Stream&) +void GenObjectEnemy::doWrite(Stream& stream) { - /* - stwu r1, -0x20(r1) - mflr r0 - lis r5, lbl_8047B750@ha - stw r0, 0x24(r1) - stw r31, 0x1c(r1) - addi r31, r5, lbl_8047B750@l - stw r30, 0x18(r1) - mr r30, r3 - stw r29, 0x14(r1) - mr r29, r4 - mr r3, r29 - lwz r4, 0x414(r4) - bl textWriteTab__6StreamFi - lwz r0, 0x24(r30) - mr r3, r29 - clrlwi r0, r0, 0x10 - extsh r4, r0 - bl writeShort__6StreamFs - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r2, lbl_80517ED8@sda21 - crclr 6 - bl textWriteText__6StreamFPce - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - lbz r4, 0x29(r30) - mr r3, r29 - bl writeByte__6StreamFUc - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r31, 0x3c - crclr 6 - bl textWriteText__6StreamFPce - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - lha r0, 0x2a(r30) - mr r3, r29 - clrlwi r0, r0, 0x10 - extsh r4, r0 - bl writeShort__6StreamFs - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r31, 0x4c - crclr 6 - bl textWriteText__6StreamFPce - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - lfs f1, 0x30(r30) - mr r3, r29 - bl writeFloat__6StreamFf - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r31, 0x58 - crclr 6 - bl textWriteText__6StreamFPce - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - lbz r4, 0x28(r30) - mr r3, r29 - bl writeByte__6StreamFUc - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r31, 0x68 - crclr 6 - bl textWriteText__6StreamFPce - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - lfs f1, 0x2c(r30) - mr r3, r29 - bl writeFloat__6StreamFf - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r31, 0x7c - crclr 6 - bl textWriteText__6StreamFPce - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - lfs f1, 0x34(r30) - mr r3, r29 - bl writeFloat__6StreamFf - mr r3, r29 - addi r4, r31, 0x30 - addi r5, r31, 0x8c - crclr 6 - bl textWriteText__6StreamFPce - mr r4, r29 - addi r3, r30, 0x38 - bl write__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream - addi r3, r30, 0x3c - mr r4, r29 - lwz r12, 0x44(r30) - lwz r12, 8(r12) - mtctr r12 - bctrl - lwz r30, 0x48(r30) - cmplwi r30, 0 - beq lbl_801252A8 - mr r3, r30 - lwz r12, 0(r30) - lwz r12, 0x18(r12) - mtctr r12 - bctrl - mr r4, r3 - addi r3, r30, 0x18 - bl __as__4ID32FUl - lwz r4, 0x414(r29) - mr r3, r29 - bl textWriteTab__6StreamFi - mr r4, r29 - addi r3, r30, 0x18 - bl write__4ID32FR6Stream - mr r3, r29 - addi r4, r31, 0x98 - crclr 6 - bl textWriteText__6StreamFPce - mr r3, r30 - mr r4, r29 - lwz r12, 0(r30) - lwz r12, 0x10(r12) - mtctr r12 - bctrl - -lbl_801252A8: - lwz r0, 0x24(r1) - lwz r31, 0x1c(r1) - lwz r30, 0x18(r1) - lwz r29, 0x14(r1) - mtlr r0 - addi r1, r1, 0x20 - blr - */ -} + stream.textWriteTab(stream.mTabCount); + stream.writeShort((u16)mEnemyID); + stream.textWriteText("\t\t# %s \r\n", "teki"); -/* - * --INFO-- - * Address: 801252C4 - * Size: 000004 - */ -void EnemyGeneratorBase::doWrite(Stream&) { } + stream.textWriteTab(stream.mTabCount); + stream.writeByte(mTekiBirthType); + stream.textWriteText("\t\t# %s \r\n", "teki_birth_type"); -/* - * --INFO-- - * Address: 801252C8 - * Size: 00000C - */ -u32 EnemyGeneratorBase::getLatestVersion() { return '????'; } + stream.textWriteTab(stream.mTabCount); + stream.writeShort((u16)mTekiNum); + stream.textWriteText("\t\t# %s \r\n", "teki_num"); + + stream.textWriteTab(stream.mTabCount); + stream.writeFloat(mDirection); + stream.textWriteText("\t\t# %s \r\n", "face direction"); + + stream.textWriteTab(stream.mTabCount); + stream.writeByte(mSpawnType); + stream.textWriteText("\t\t# %s \r\n", "0:point 1:circle"); + + stream.textWriteTab(stream.mTabCount); + stream.writeFloat(mAppearRadius); + stream.textWriteText("\t\t# %s \r\n", "appear radius"); + + stream.textWriteTab(stream.mTabCount); + stream.writeFloat(mEnemySize); + stream.textWriteText("\t\t# %s \r\n", "enemy size"); + + mOtakaraItemCode.write(stream); + + mPelletInfo.write(stream); + + EnemyGeneratorBase* gen = mEnemyGenerator; + if (gen) { + gen->mVersion = gen->getLatestVersion(); + + stream.textWriteTab(stream.mTabCount); + gen->mVersion.write(stream); + stream.textWriteText("\t\t# Version \r\n"); + gen->doWrite(stream); + } +} /* * --INFO-- * Address: 801252D4 * Size: 0001E4 */ -void GenObjectEnemy::doRead(Stream&) +void GenObjectEnemy::doRead(Stream& stream) { - /* - stwu r1, -0x40(r1) - mflr r0 - li r5, 0 - lfs f1, lbl_80517EAC@sda21(r2) - stw r0, 0x44(r1) - li r0, 1 - lfs f0, lbl_80517EA8@sda21(r2) - stw r31, 0x3c(r1) - mr r31, r3 - stw r30, 0x38(r1) - stw r29, 0x34(r1) - mr r29, r4 - stw r5, 0x24(r3) - sth r0, 0x2a(r3) - stb r5, 0x29(r3) - stfs f1, 0x30(r3) - stb r0, 0x28(r3) - stfs f0, 0x2c(r3) - stfs f1, 0x34(r3) - lwz r12, 0xc(r3) - lwz r12, 0x24(r12) - mtctr r12 - bctrl - lwz r0, 0x14(r31) - cmplw r0, r3 - bne lbl_80125490 - mr r3, r29 - bl readShort__6StreamFv - clrlwi r0, r3, 0x10 - mr r3, r29 - stw r0, 0x24(r31) - bl readByte__6StreamFv - stb r3, 0x29(r31) - mr r3, r29 - bl readShort__6StreamFv - sth r3, 0x2a(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x30(r31) - mr r3, r29 - bl readByte__6StreamFv - stb r3, 0x28(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x2c(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x34(r31) - mr r4, r29 - addi r3, r31, 0x38 - bl read__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream - addi r3, r31, 0x3c - mr r4, r29 - lwz r12, 0x44(r31) - lwz r12, 0xc(r12) - mtctr r12 - bctrl - mr r3, r31 - bl createEnemyGenerator__Q24Game14GenObjectEnemyFv - lwz r30, 0x48(r31) - cmplwi r30, 0 - beq lbl_801253F0 - mr r4, r29 - addi r3, r30, 0x18 - bl read__4ID32FR6Stream - mr r3, r30 - mr r4, r29 - lwz r12, 0(r30) - lwz r12, 0x14(r12) - mtctr r12 - bctrl - -lbl_801253F0: - lwz r3, pelletMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_8012549C - lis r4, __vt__Q24Game15CreatureInitArg@ha - li r8, 0 - addi r5, r4, __vt__Q24Game15CreatureInitArg@l - li r0, -1 - lis r4, __vt__Q24Game13PelletInitArg@ha - stw r5, 8(r1) - addi r4, r4, __vt__Q24Game13PelletInitArg@l - li r7, 0xff - li r6, 1 - stw r4, 8(r1) - addi r4, r1, 8 - addi r5, r31, 0x38 - stb r8, 0x24(r1) - sth r8, 0x1c(r1) - stb r7, 0x1e(r1) - stw r8, 0x20(r1) - stb r8, 0x1f(r1) - stb r6, 0xc(r1) - stb r8, 0x25(r1) - stw r0, 0x2c(r1) - stw r0, 0x28(r1) - stb r8, 0x26(r1) - stb r8, 0x27(r1) - bl -makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15OtakaraItemCode - clrlwi. r0, r3, 0x18 - beq lbl_8012549C - lwz r3, pelletMgr__4Game@sda21(r13) - addi r4, r1, 8 - bl setUse__Q24Game9PelletMgrFPQ24Game13PelletInitArg - clrlwi. r0, r3, 0x18 - beq lbl_80125484 - addi r3, r1, 8 - bl entry__Q24Game17PelletBirthBufferFRQ24Game13PelletInitArg - b lbl_8012549C - -lbl_80125484: - li r0, 0 - sth r0, 0x38(r31) - b lbl_8012549C - -lbl_80125490: - mr r3, r31 - mr r4, r29 - bl doReadOldVersion__Q24Game14GenObjectEnemyFR6Stream - -lbl_8012549C: - lwz r0, 0x44(r1) - lwz r31, 0x3c(r1) - lwz r30, 0x38(r1) - lwz r29, 0x34(r1) - mtlr r0 - addi r1, r1, 0x40 - blr - */ -} + mEnemyID = EnemyTypeID::EnemyID_Pelplant; + mTekiNum = 1; + mTekiBirthType = 0; + mDirection = 0.0f; + mSpawnType = 1; + mAppearRadius = 100.0f; + mEnemySize = 0.0f; + + if (mRawID == getLatestVersion()) { + mEnemyID = static_cast((u16)stream.readShort()); + mTekiBirthType = stream.readByte(); + mTekiNum = stream.readShort(); + mDirection = stream.readFloat(); + mSpawnType = stream.readByte(); + mAppearRadius = stream.readFloat(); + mEnemySize = stream.readFloat(); + mOtakaraItemCode.read(stream); + mPelletInfo.read(stream); + + createEnemyGenerator(); + + EnemyGeneratorBase* gen = mEnemyGenerator; + if (gen) { + gen->mVersion.read(stream); + gen->doRead(stream); + } -/* - * --INFO-- - * Address: 801254B8 - * Size: 000004 - */ -void EnemyGeneratorBase::doRead(Stream&) { } + if (pelletMgr) { + PelletInitArg initArg; + if (pelletMgr->makePelletInitArg(initArg, mOtakaraItemCode)) { + if (pelletMgr->setUse(&initArg)) { + PelletBirthBuffer::entry(initArg); + } else { + mOtakaraItemCode.mValue = 0; + } + } + } + } else { + doReadOldVersion(stream); + } +} /* * --INFO-- * Address: 801254BC * Size: 000470 */ -void GenObjectEnemy::doReadOldVersion(Stream&) +void GenObjectEnemy::doReadOldVersion(Stream& stream) { - /* - stwu r1, -0x70(r1) - mflr r0 - stw r0, 0x74(r1) - stw r31, 0x6c(r1) - mr r31, r3 - lis r3, 0x30303032@ha - stw r30, 0x68(r1) - addi r0, r3, 0x30303032@l - stw r29, 0x64(r1) - mr r29, r4 - lwz r5, 0x14(r31) - cmpw r5, r0 - beq lbl_801255CC - bge lbl_80125508 - addi r0, r3, 0x3030 - cmpw r5, r0 - beq lbl_8012551C - bge lbl_80125530 - b lbl_80125910 - -lbl_80125508: - addi r0, r3, 0x3034 - cmpw r5, r0 - beq lbl_801257C4 - bge lbl_80125910 - b lbl_80125674 - -lbl_8012551C: - mr r3, r29 - bl readShort__6StreamFv - clrlwi r0, r3, 0x10 - stw r0, 0x24(r31) - b lbl_80125910 - -lbl_80125530: - mr r3, r29 - bl readShort__6StreamFv - clrlwi r0, r3, 0x10 - mr r3, r29 - stw r0, 0x24(r31) - bl readShort__6StreamFv - sth r3, 0x2a(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x30(r31) - mr r3, r29 - bl readByte__6StreamFv - stb r3, 0x28(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x2c(r31) - mr r3, r31 - bl createEnemyGenerator__Q24Game14GenObjectEnemyFv - lwz r30, 0x48(r31) - cmplwi r30, 0 - beq lbl_801255A8 - mr r4, r29 - addi r3, r30, 0x18 - bl read__4ID32FR6Stream - mr r3, r30 - mr r4, r29 - lwz r12, 0(r30) - lwz r12, 0x14(r12) - mtctr r12 - bctrl - -lbl_801255A8: - lwz r3, generalEnemyMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_80125910 - lha r0, 0x2a(r31) - li r6, 0 - lwz r4, 0x24(r31) - clrlwi r5, r0, 0x18 - bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy - b lbl_80125910 - -lbl_801255CC: - mr r3, r29 - bl readShort__6StreamFv - clrlwi r0, r3, 0x10 - mr r3, r29 - stw r0, 0x24(r31) - bl readShort__6StreamFv - sth r3, 0x2a(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x30(r31) - mr r3, r29 - bl readByte__6StreamFv - stb r3, 0x28(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x2c(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x34(r31) - mr r3, r31 - bl createEnemyGenerator__Q24Game14GenObjectEnemyFv - lwz r30, 0x48(r31) - cmplwi r30, 0 - beq lbl_80125650 - mr r4, r29 - addi r3, r30, 0x18 - bl read__4ID32FR6Stream - mr r3, r30 - mr r4, r29 - lwz r12, 0(r30) - lwz r12, 0x14(r12) - mtctr r12 - bctrl - -lbl_80125650: - lwz r3, generalEnemyMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_80125910 - lha r0, 0x2a(r31) - li r6, 0 - lwz r4, 0x24(r31) - clrlwi r5, r0, 0x18 - bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy - b lbl_80125910 - -lbl_80125674: - mr r3, r29 - bl readShort__6StreamFv - clrlwi r0, r3, 0x10 - mr r3, r29 - stw r0, 0x24(r31) - bl readShort__6StreamFv - sth r3, 0x2a(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x30(r31) - mr r3, r29 - bl readByte__6StreamFv - stb r3, 0x28(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x2c(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x34(r31) - mr r4, r29 - addi r3, r31, 0x38 - bl read__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream - mr r3, r31 - bl createEnemyGenerator__Q24Game14GenObjectEnemyFv - lwz r30, 0x48(r31) - cmplwi r30, 0 - beq lbl_80125704 - mr r4, r29 - addi r3, r30, 0x18 - bl read__4ID32FR6Stream - mr r3, r30 - mr r4, r29 - lwz r12, 0(r30) - lwz r12, 0x14(r12) - mtctr r12 - bctrl - -lbl_80125704: - lwz r3, generalEnemyMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_80125724 - lha r0, 0x2a(r31) - li r6, 0 - lwz r4, 0x24(r31) - clrlwi r5, r0, 0x18 - bl addEnemyNum__Q24Game15GeneralEnemyMgrFiUcPQ24Game14GenObjectEnemy - -lbl_80125724: - lwz r3, pelletMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_80125910 - lis r4, __vt__Q24Game15CreatureInitArg@ha - li r8, 0 - addi r5, r4, __vt__Q24Game15CreatureInitArg@l - li r0, -1 - lis r4, __vt__Q24Game13PelletInitArg@ha - stw r5, 0x30(r1) - addi r4, r4, __vt__Q24Game13PelletInitArg@l - li r7, 0xff - li r6, 1 - stw r4, 0x30(r1) - addi r4, r1, 0x30 - addi r5, r31, 0x38 - stb r8, 0x4c(r1) - sth r8, 0x44(r1) - stb r7, 0x46(r1) - stw r8, 0x48(r1) - stb r8, 0x47(r1) - stb r6, 0x34(r1) - stb r8, 0x4d(r1) - stw r0, 0x54(r1) - stw r0, 0x50(r1) - stb r8, 0x4e(r1) - stb r8, 0x4f(r1) - bl -makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15OtakaraItemCode - clrlwi. r0, r3, 0x18 - beq lbl_80125910 - lwz r3, pelletMgr__4Game@sda21(r13) - addi r4, r1, 0x30 - bl setUse__Q24Game9PelletMgrFPQ24Game13PelletInitArg - clrlwi. r0, r3, 0x18 - beq lbl_801257B8 - addi r3, r1, 0x30 - bl entry__Q24Game17PelletBirthBufferFRQ24Game13PelletInitArg - b lbl_80125910 - -lbl_801257B8: - li r0, 0 - sth r0, 0x38(r31) - b lbl_80125910 - -lbl_801257C4: - mr r3, r29 - bl readShort__6StreamFv - clrlwi r3, r3, 0x10 - li r0, 0 - stw r3, 0x24(r31) - mr r3, r29 - stb r0, 0x29(r31) - bl readShort__6StreamFv - sth r3, 0x2a(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x30(r31) - mr r3, r29 - bl readByte__6StreamFv - stb r3, 0x28(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x2c(r31) - mr r3, r29 - bl readFloat__6StreamFv - stfs f1, 0x34(r31) - mr r4, r29 - addi r3, r31, 0x38 - bl read__Q34Game9PelletMgr15OtakaraItemCodeFR6Stream - addi r3, r31, 0x3c - mr r4, r29 - lwz r12, 0x44(r31) - lwz r12, 0xc(r12) - mtctr r12 - bctrl - mr r3, r31 - bl createEnemyGenerator__Q24Game14GenObjectEnemyFv - lwz r30, 0x48(r31) - cmplwi r30, 0 - beq lbl_80125874 - mr r4, r29 - addi r3, r30, 0x18 - bl read__4ID32FR6Stream - mr r3, r30 - mr r4, r29 - lwz r12, 0(r30) - lwz r12, 0x14(r12) - mtctr r12 - bctrl - -lbl_80125874: - lwz r3, pelletMgr__4Game@sda21(r13) - cmplwi r3, 0 - beq lbl_80125910 - lis r4, __vt__Q24Game15CreatureInitArg@ha - li r8, 0 - addi r5, r4, __vt__Q24Game15CreatureInitArg@l - li r0, -1 - lis r4, __vt__Q24Game13PelletInitArg@ha - stw r5, 8(r1) - addi r4, r4, __vt__Q24Game13PelletInitArg@l - li r7, 0xff - li r6, 1 - stw r4, 8(r1) - addi r4, r1, 8 - addi r5, r31, 0x38 - stb r8, 0x24(r1) - sth r8, 0x1c(r1) - stb r7, 0x1e(r1) - stw r8, 0x20(r1) - stb r8, 0x1f(r1) - stb r6, 0xc(r1) - stb r8, 0x25(r1) - stw r0, 0x2c(r1) - stw r0, 0x28(r1) - stb r8, 0x26(r1) - stb r8, 0x27(r1) - bl -makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15OtakaraItemCode - clrlwi. r0, r3, 0x18 - beq lbl_80125910 - lwz r3, pelletMgr__4Game@sda21(r13) - addi r4, r1, 8 - bl setUse__Q24Game9PelletMgrFPQ24Game13PelletInitArg - clrlwi. r0, r3, 0x18 - beq lbl_80125908 - addi r3, r1, 8 - bl entry__Q24Game17PelletBirthBufferFRQ24Game13PelletInitArg - b lbl_80125910 - -lbl_80125908: - li r0, 0 - sth r0, 0x38(r31) - -lbl_80125910: - lwz r0, 0x74(r1) - lwz r31, 0x6c(r1) - lwz r30, 0x68(r1) - lwz r29, 0x64(r1) - mtlr r0 - addi r1, r1, 0x70 - blr - */ + switch (mRawID) { + case '0000': { + mEnemyID = static_cast((u16)stream.readShort()); + break; + } + case '0001': { + mEnemyID = static_cast((u16)stream.readShort()); + mTekiNum = stream.readShort(); + mDirection = stream.readFloat(); + mSpawnType = stream.readByte(); + mAppearRadius = stream.readFloat(); + + createEnemyGenerator(); + + EnemyGeneratorBase* gen = mEnemyGenerator; + if (gen) { + gen->mVersion.read(stream); + gen->doRead(stream); + } + + if (generalEnemyMgr) { + generalEnemyMgr->addEnemyNum(mEnemyID, mTekiNum, nullptr); + } + break; + } + case '0002': { + mEnemyID = static_cast((u16)stream.readShort()); + mTekiNum = stream.readShort(); + mDirection = stream.readFloat(); + mSpawnType = stream.readByte(); + mAppearRadius = stream.readFloat(); + mEnemySize = stream.readFloat(); + + createEnemyGenerator(); + + EnemyGeneratorBase* gen = mEnemyGenerator; + if (gen) { + gen->mVersion.read(stream); + gen->doRead(stream); + } + + if (generalEnemyMgr) { + generalEnemyMgr->addEnemyNum(mEnemyID, mTekiNum, nullptr); + } + break; + } + case '0003': { + mEnemyID = static_cast((u16)stream.readShort()); + mTekiNum = stream.readShort(); + mDirection = stream.readFloat(); + mSpawnType = stream.readByte(); + mAppearRadius = stream.readFloat(); + mEnemySize = stream.readFloat(); + + mOtakaraItemCode.read(stream); + + createEnemyGenerator(); + + EnemyGeneratorBase* gen = mEnemyGenerator; + if (gen) { + gen->mVersion.read(stream); + gen->doRead(stream); + } + + if (generalEnemyMgr) { + generalEnemyMgr->addEnemyNum(mEnemyID, mTekiNum, nullptr); + } + + if (pelletMgr) { + PelletInitArg initArg; + if (pelletMgr->makePelletInitArg(initArg, mOtakaraItemCode)) { + if (pelletMgr->setUse(&initArg)) { + PelletBirthBuffer::entry(initArg); + } else { + mOtakaraItemCode.mValue = 0; + } + } + } + break; + } + case '0004': { + mEnemyID = static_cast((u16)stream.readShort()); + mTekiBirthType = 0; + mTekiNum = stream.readShort(); + mDirection = stream.readFloat(); + mSpawnType = stream.readByte(); + mAppearRadius = stream.readFloat(); + mEnemySize = stream.readFloat(); + mOtakaraItemCode.read(stream); + mPelletInfo.read(stream); + + createEnemyGenerator(); + + EnemyGeneratorBase* gen = mEnemyGenerator; + if (gen) { + gen->mVersion.read(stream); + gen->doRead(stream); + } + + if (pelletMgr) { + PelletInitArg initArg; + if (pelletMgr->makePelletInitArg(initArg, mOtakaraItemCode)) { + if (pelletMgr->setUse(&initArg)) { + PelletBirthBuffer::entry(initArg); + } else { + mOtakaraItemCode.mValue = 0; + } + } + } + + break; + } + } } #define GENERATOR_CASE(id, name) \ @@ -1278,7 +476,7 @@ makePelletInitArg__Q24Game9PelletMgrFRQ24Game13PelletInitArgRQ34Game9PelletMgr15 * Size: 000E38 * TODO: The EnemyGeneratorBase ctor shouldn't be inlined */ -void GenObjectEnemy::createEnemyGenerator() +EnemyGeneratorBase* GenObjectEnemy::createEnemyGenerator() { switch (mEnemyID) { case EnemyTypeID::EnemyID_Pelplant: @@ -1286,7 +484,11 @@ void GenObjectEnemy::createEnemyGenerator() break; GENERATOR_CASE(EnemyTypeID::EnemyID_Kochappy, "赤コチャッピー") + GENERATOR_CASE(EnemyTypeID::EnemyID_BlueKochappy, "青コチャッピー") + GENERATOR_CASE(EnemyTypeID::EnemyID_YellowKochappy, "黄コチャッピー") GENERATOR_CASE(EnemyTypeID::EnemyID_Chappy, "赤チャッピー") + GENERATOR_CASE(EnemyTypeID::EnemyID_BlueChappy, "青チャッピー") + GENERATOR_CASE(EnemyTypeID::EnemyID_YellowChappy, "黄チャッピー") GENERATOR_CASE(EnemyTypeID::EnemyID_BluePom, "青ポンガシ草") GENERATOR_CASE(EnemyTypeID::EnemyID_RedPom, "赤ポンガシ草") GENERATOR_CASE(EnemyTypeID::EnemyID_YellowPom, "黄ポンガシ草") @@ -1296,18 +498,17 @@ void GenObjectEnemy::createEnemyGenerator() GENERATOR_CASE(EnemyTypeID::EnemyID_Kogane, "コガネ") GENERATOR_CASE(EnemyTypeID::EnemyID_Wealthy, "オオガネモチ") GENERATOR_CASE(EnemyTypeID::EnemyID_Fart, "ババコガネ") + GENERATOR_CASE(EnemyTypeID::EnemyID_Frog, "イモガエル") + GENERATOR_CASE(EnemyTypeID::EnemyID_MaroFrog, "マロガエル") GENERATOR_CASE(EnemyTypeID::EnemyID_UjiA, "ウジンコ♀") - GENERATOR_CASE(EnemyTypeID::EnemyID_UjiB, "ウジンコ♂") GENERATOR_CASE(EnemyTypeID::EnemyID_Tobi, "トビンコ") + GENERATOR_CASE(EnemyTypeID::EnemyID_UjiB, "ウジンコ♂") GENERATOR_CASE(EnemyTypeID::EnemyID_Armor, "ヨロイムシ") case EnemyTypeID::EnemyID_Qurione: mEnemyGenerator = new Qurione::Generator(); break; - GENERATOR_CASE(EnemyTypeID::EnemyID_Frog, "イモガエル") - GENERATOR_CASE(EnemyTypeID::EnemyID_MaroFrog, "マロガエル") - case EnemyTypeID::EnemyID_Rock: mEnemyGenerator = new Game::Rock::Generator(); break; @@ -1335,20 +536,26 @@ void GenObjectEnemy::createEnemyGenerator() GENERATOR_CASE(EnemyTypeID::EnemyID_Bomb, "バクダン") GENERATOR_CASE(EnemyTypeID::EnemyID_Egg, "ハテナタマゴ") GENERATOR_CASE(EnemyTypeID::EnemyID_PanModoki, "パンモドキ") - GENERATOR_CASE(EnemyTypeID::EnemyID_PanModokiNest, "パンモドキ巣") GENERATOR_CASE(EnemyTypeID::EnemyID_OoPanModoki, "大パンモドキ") + GENERATOR_CASE(EnemyTypeID::EnemyID_PanModokiNest, "パンモドキ巣") GENERATOR_CASE(EnemyTypeID::EnemyID_Fuefuki, "フエフキ") - GENERATOR_CASE(EnemyTypeID::EnemyID_BlueChappy, "青チャッピー") - GENERATOR_CASE(EnemyTypeID::EnemyID_YellowChappy, "黄チャッピー") - GENERATOR_CASE(EnemyTypeID::EnemyID_BlueKochappy, "青コチャッピー") - GENERATOR_CASE(EnemyTypeID::EnemyID_YellowKochappy, "黄コチャッピー") GENERATOR_CASE(EnemyTypeID::EnemyID_Tanpopo, "タンポポ") + GENERATOR_CASE(EnemyTypeID::EnemyID_Watage, "わたげ") GENERATOR_CASE(EnemyTypeID::EnemyID_Clover, "クローバー") GENERATOR_CASE(EnemyTypeID::EnemyID_HikariKinoko, "ヒカリキノコ") GENERATOR_CASE(EnemyTypeID::EnemyID_Ooinu_s, "おおいぬふぐり(小)") + GENERATOR_CASE(EnemyTypeID::EnemyID_KareOoinu_s, "枯れおおいぬふぐり(小)") GENERATOR_CASE(EnemyTypeID::EnemyID_Ooinu_l, "おおいぬふぐり(大)") + GENERATOR_CASE(EnemyTypeID::EnemyID_KareOoinu_l, "枯れおおいぬふぐり(大)") GENERATOR_CASE(EnemyTypeID::EnemyID_Wakame_s, "若芽(小)") GENERATOR_CASE(EnemyTypeID::EnemyID_Wakame_l, "若芽(大)") + GENERATOR_CASE(EnemyTypeID::EnemyID_Tukushi, "つくし") + GENERATOR_CASE(EnemyTypeID::EnemyID_DaiodoRed, "赤ダイオード") + GENERATOR_CASE(EnemyTypeID::EnemyID_DaiodoGreen, "青ダイオード") + GENERATOR_CASE(EnemyTypeID::EnemyID_Magaret, "マーガレット") + GENERATOR_CASE(EnemyTypeID::EnemyID_Nekojarashi, "ねこじゃらし") + GENERATOR_CASE(EnemyTypeID::EnemyID_Chiyogami, "千代紙") + GENERATOR_CASE(EnemyTypeID::EnemyID_Zenmai, "ぜんまい") GENERATOR_CASE(EnemyTypeID::EnemyID_KingChappy, "キングチャッピー") GENERATOR_CASE(EnemyTypeID::EnemyID_Miulin, "ミウリン") GENERATOR_CASE(EnemyTypeID::EnemyID_Hanachirashi, "フウセンハナチラシ") @@ -1359,7 +566,9 @@ void GenObjectEnemy::createEnemyGenerator() GENERATOR_CASE(EnemyTypeID::EnemyID_WaterOtakara, "水オタカラムシ") GENERATOR_CASE(EnemyTypeID::EnemyID_GasOtakara, "ガスオタカラムシ") GENERATOR_CASE(EnemyTypeID::EnemyID_ElecOtakara, "電気オタカラムシ") + GENERATOR_CASE(EnemyTypeID::EnemyID_BombOtakara, "爆弾オタカラムシ") GENERATOR_CASE(EnemyTypeID::EnemyID_Jigumo, "ジグモ") + GENERATOR_CASE(EnemyTypeID::EnemyID_JigumoNest, "ジグモ巣") GENERATOR_CASE(EnemyTypeID::EnemyID_Imomushi, "イモムシ") GENERATOR_CASE(EnemyTypeID::EnemyID_Houdai, "ホウダイダマグモ") GENERATOR_CASE(EnemyTypeID::EnemyID_LeafChappy, "ハッパチャッピー") @@ -1367,46 +576,33 @@ void GenObjectEnemy::createEnemyGenerator() GENERATOR_CASE(EnemyTypeID::EnemyID_BigFoot, "オオアシダマグモ") GENERATOR_CASE(EnemyTypeID::EnemyID_SnakeWhole, "ヘビガラス全身") GENERATOR_CASE(EnemyTypeID::EnemyID_UmiMushi, "ウミムシ") + GENERATOR_CASE(EnemyTypeID::EnemyID_UmiMushiBlind, "目なしウミムシ") GENERATOR_CASE(EnemyTypeID::EnemyID_OniKurage, "オニクラゲ") GENERATOR_CASE(EnemyTypeID::EnemyID_BigTreasure, "オオオタカラムシ") - GENERATOR_CASE(EnemyTypeID::EnemyID_Stone, "グリーンカブト幼虫") GENERATOR_CASE(EnemyTypeID::EnemyID_Kabuto, "グリーンカブト幼虫") + GENERATOR_CASE(EnemyTypeID::EnemyID_Rkabuto, "レッドカブト幼虫") + GENERATOR_CASE(EnemyTypeID::EnemyID_Fkabuto, "固定カブト幼虫") GENERATOR_CASE(EnemyTypeID::EnemyID_KumaKochappy, "クマコチャッピー") GENERATOR_CASE(EnemyTypeID::EnemyID_ShijimiChou, "シジミ蝶") GENERATOR_CASE(EnemyTypeID::EnemyID_MiniHoudai, "チビホウダイ") - GENERATOR_CASE(EnemyTypeID::EnemyID_Sokkuri, "ソックリ") - GENERATOR_CASE(EnemyTypeID::EnemyID_Tukushi, "つくし") - GENERATOR_CASE(EnemyTypeID::EnemyID_Watage, "わたげ") - GENERATOR_CASE(EnemyTypeID::EnemyID_Hana, "ハナドックリ") - GENERATOR_CASE(EnemyTypeID::EnemyID_DaiodoRed, "赤ダイオード") - GENERATOR_CASE(EnemyTypeID::EnemyID_DaiodoGreen, "青ダイオード") - GENERATOR_CASE(EnemyTypeID::EnemyID_Magaret, "マーガレット") - GENERATOR_CASE(EnemyTypeID::EnemyID_Nekojarashi, "ねこじゃらし") - GENERATOR_CASE(EnemyTypeID::EnemyID_Chiyogami, "千代紙") - GENERATOR_CASE(EnemyTypeID::EnemyID_Zenmai, "ぜんまい") - GENERATOR_CASE(EnemyTypeID::EnemyID_KareOoinu_s, "枯れおおいぬふぐり(小)") - GENERATOR_CASE(EnemyTypeID::EnemyID_KareOoinu_l, "枯れおおいぬふぐり(大)") - GENERATOR_CASE(EnemyTypeID::EnemyID_BombOtakara, "爆弾オタカラムシ") - GENERATOR_CASE(EnemyTypeID::EnemyID_DangoMushi, "ダンゴムシ") - GENERATOR_CASE(EnemyTypeID::EnemyID_Rkabuto, "レッドカブト幼虫") - GENERATOR_CASE(EnemyTypeID::EnemyID_Fkabuto, "固定カブト幼虫") GENERATOR_CASE(EnemyTypeID::EnemyID_FminiHoudai, "固定チビホウダイ") - GENERATOR_CASE(EnemyTypeID::EnemyID_Tyre, "黒い人タイヤ") + GENERATOR_CASE(EnemyTypeID::EnemyID_Sokkuri, "ソ\ックリ") + GENERATOR_CASE(EnemyTypeID::EnemyID_Hana, "ハナドックリ") GENERATOR_CASE(EnemyTypeID::EnemyID_BlackMan, "黒い人") - GENERATOR_CASE(EnemyTypeID::EnemyID_UmiMushiBlind, "目なしウミムシ") + GENERATOR_CASE(EnemyTypeID::EnemyID_Tyre, "黒い人タイヤ") + GENERATOR_CASE(EnemyTypeID::EnemyID_DangoMushi, "ダンゴムシ") + + case EnemyTypeID::EnemyID_Pom: + case EnemyTypeID::EnemyID_PanHouse: + case EnemyTypeID::EnemyID_UmiMushiBase: + case EnemyTypeID::EnemyID_Stone: default: mEnemyGenerator = new EnemyGeneratorBase("未登録"); break; } -} -/* - * --INFO-- - * Address: 80126764 - * Size: 00006C - * Weak function. Matched. - * EnemyGeneratorBase::EnemyGeneratorBase(char*) - */ + return mEnemyGenerator; +} /* * --INFO-- @@ -1452,9 +648,9 @@ void GenObjectEnemy::render(Graphics& gfx, Game::Generator* gen) Matrixf rotationMtx; rotationMtx.makeTR(position, rotation); - gfx.mViewport->getMatrix(false); + gfx.mCurrentViewport->getMatrix(false); - Matrixf* gfxMatrix = gfx.mViewport->getMatrix(false); + Matrixf* gfxMatrix = gfx.mCurrentViewport->getMatrix(false); Mtx finalMtx; PSMTXConcat(gfxMatrix->mMatrix.mtxView, rotationMtx.mMatrix.mtxView, finalMtx); @@ -1482,76 +678,25 @@ void GenObjectEnemy::render(Graphics& gfx, Game::Generator* gen) gfx.drawSphere(mAppearRadius, &rotationMtx); } - PerspPrintfInfo info(0.5f); + PerspPrintfInfo info; + info._10 = 0.5f; gfx.initPrimDraw(nullptr); - Viewport* vp = gfx.getViewport(0); - gfx.initPerspPrintf(vp); + + info._14 = Color4(50, 100, 255, 255); + info._18 = Color4(50, 50, 150, 255); + + gfx.initPerspPrintf(gfx.getViewport(0)); Vector3f perspPos = gen->mPosition + gen->mOffset; perspPos.y += 100.0f; - gfx.perspPrintf(info, perspPos, "%s x %d", gEnemyInfo[(u8)mEnemyID], mTekiNum); + gfx.perspPrintf(info, perspPos, "%s x %d", gEnemyInfo[mEnemyID].mName, mTekiNum); if (mEnemyGenerator) { - update(gen); + mEnemyGenerator->draw(gfx, gen); } } } -/* - * --INFO-- - * Address: 80126B58 - * Size: 000004 - */ -void EnemyGeneratorBase::draw(Graphics&, Game::Generator*) { } - -/* - * --INFO-- - * Address: 80126B5C - * Size: 000060 - * EnemyGeneratorBase::~EnemyGeneratorBase() - * Weak function. - */ -// /* -// * --INFO-- -// * Address: 80126BBC -// * Size: 000008 -// */ -// u32 EnemyGeneratorBase::getInitialParam() { return 0x0; } - -/* - * --INFO-- - * Address: 80126BC4 - * Size: 000008 - */ -const char* GenArg::getName() { return "GenArg"; } - -/* - * --INFO-- - * Address: 80126BCC - * Size: 000004 - */ -void GenObject::update(Game::Generator*) { } - -/* - * --INFO-- - * Address: 80126BD0 - * Size: 000028 - */ -void GenObject::generatorMakeMatrix(Matrixf& genMtx, Vector3f& position) { genMtx.makeT(position); } - -/* - * --INFO-- - * Address: 80126BF8 - * Size: 000004 - */ -void GenObject::getDebugInfo(char*) { } - -/* - * --INFO-- - * Address: 80126BFC - * Size: 000004 - */ -void GenBase::doEvent(unsigned long) { } } // namespace Game diff --git a/tools/progress.csv b/tools/progress.csv index a2924006f..237246fae 100644 --- a/tools/progress.csv +++ b/tools/progress.csv @@ -525,3 +525,5 @@ You have 2585 out of 10000 Pokos and 71 out of 201 treasures.",2023-09-09 19:07: You have 2589 out of 10000 Pokos and 72 out of 201 treasures.",2023-09-09 19:10:12.380780 2591,1205608,0.2591394632220434,72,256184,0.3593769288608078," You have 2591 out of 10000 Pokos and 72 out of 201 treasures.",2023-09-10 23:58:13.592821 +2610,1214300,0.26100776553450816,72,258085,0.3620436666030727," +You have 2610 out of 10000 Pokos and 72 out of 201 treasures.",2023-09-11 20:36:36.785182