various fixes / matches (#2052)

* some fixes in d/s, d_item, d_shop

* fix for dKankyo_DayProc weak generation

* d_cc_uty fix

* some d_name / d_com_inf_game / f_op_actor_mng matches

* fix some player inline virtuals

* remove asm
This commit is contained in:
TakaRikka
2024-01-29 07:39:51 -08:00
committed by GitHub
parent 7f0ba98c9f
commit 36a29bc4fe
52 changed files with 2407 additions and 7166 deletions
@@ -1,370 +0,0 @@
lbl_80087C04:
/* 80087C04 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80087C08 7C 08 02 A6 */ mflr r0
/* 80087C0C 90 01 00 64 */ stw r0, 0x64(r1)
/* 80087C10 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 80087C14 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0 /* qr0 */
/* 80087C18 DB C1 00 40 */ stfd f30, 0x40(r1)
/* 80087C1C F3 C1 00 48 */ psq_st f30, 72(r1), 0, 0 /* qr0 */
/* 80087C20 39 61 00 40 */ addi r11, r1, 0x40
/* 80087C24 48 2D A5 A9 */ bl _savegpr_25
/* 80087C28 7C 7B 1B 78 */ mr r27, r3
/* 80087C2C 7C 9C 23 78 */ mr r28, r4
/* 80087C30 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80087C34 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80087C38 83 DF 5D AC */ lwz r30, 0x5dac(r31)
/* 80087C3C 7F 83 E3 78 */ mr r3, r28
/* 80087C40 4B FF FE 19 */ bl at_power_check__FP11dCcU_AtInfo
/* 80087C44 90 7C 00 04 */ stw r3, 4(r28)
/* 80087C48 80 7C 00 04 */ lwz r3, 4(r28)
/* 80087C4C 28 03 00 00 */ cmplwi r3, 0
/* 80087C50 41 82 04 B8 */ beq lbl_80088108
/* 80087C54 C0 03 04 F8 */ lfs f0, 0x4f8(r3)
/* 80087C58 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 80087C5C C0 03 04 FC */ lfs f0, 0x4fc(r3)
/* 80087C60 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80087C64 C0 03 05 00 */ lfs f0, 0x500(r3)
/* 80087C68 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80087C6C C0 02 8D 98 */ lfs f0, lit_4212(r2)
/* 80087C70 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80087C74 38 61 00 0C */ addi r3, r1, 0xc
/* 80087C78 48 2B F4 C1 */ bl PSVECSquareMag
/* 80087C7C C0 02 8D 98 */ lfs f0, lit_4212(r2)
/* 80087C80 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80087C84 40 81 00 58 */ ble lbl_80087CDC
/* 80087C88 FC 00 08 34 */ frsqrte f0, f1
/* 80087C8C C8 82 8D A0 */ lfd f4, lit_4213(r2)
/* 80087C90 FC 44 00 32 */ fmul f2, f4, f0
/* 80087C94 C8 62 8D A8 */ lfd f3, lit_4214(r2)
/* 80087C98 FC 00 00 32 */ fmul f0, f0, f0
/* 80087C9C FC 01 00 32 */ fmul f0, f1, f0
/* 80087CA0 FC 03 00 28 */ fsub f0, f3, f0
/* 80087CA4 FC 02 00 32 */ fmul f0, f2, f0
/* 80087CA8 FC 44 00 32 */ fmul f2, f4, f0
/* 80087CAC FC 00 00 32 */ fmul f0, f0, f0
/* 80087CB0 FC 01 00 32 */ fmul f0, f1, f0
/* 80087CB4 FC 03 00 28 */ fsub f0, f3, f0
/* 80087CB8 FC 02 00 32 */ fmul f0, f2, f0
/* 80087CBC FC 44 00 32 */ fmul f2, f4, f0
/* 80087CC0 FC 00 00 32 */ fmul f0, f0, f0
/* 80087CC4 FC 01 00 32 */ fmul f0, f1, f0
/* 80087CC8 FC 03 00 28 */ fsub f0, f3, f0
/* 80087CCC FC 02 00 32 */ fmul f0, f2, f0
/* 80087CD0 FC 21 00 32 */ fmul f1, f1, f0
/* 80087CD4 FC 20 08 18 */ frsp f1, f1
/* 80087CD8 48 00 00 88 */ b lbl_80087D60
lbl_80087CDC:
/* 80087CDC C8 02 8D B0 */ lfd f0, lit_4215(r2)
/* 80087CE0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80087CE4 40 80 00 10 */ bge lbl_80087CF4
/* 80087CE8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80087CEC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 80087CF0 48 00 00 70 */ b lbl_80087D60
lbl_80087CF4:
/* 80087CF4 D0 21 00 08 */ stfs f1, 8(r1)
/* 80087CF8 80 81 00 08 */ lwz r4, 8(r1)
/* 80087CFC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 80087D00 3C 00 7F 80 */ lis r0, 0x7f80
/* 80087D04 7C 03 00 00 */ cmpw r3, r0
/* 80087D08 41 82 00 14 */ beq lbl_80087D1C
/* 80087D0C 40 80 00 40 */ bge lbl_80087D4C
/* 80087D10 2C 03 00 00 */ cmpwi r3, 0
/* 80087D14 41 82 00 20 */ beq lbl_80087D34
/* 80087D18 48 00 00 34 */ b lbl_80087D4C
lbl_80087D1C:
/* 80087D1C 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80087D20 41 82 00 0C */ beq lbl_80087D2C
/* 80087D24 38 00 00 01 */ li r0, 1
/* 80087D28 48 00 00 28 */ b lbl_80087D50
lbl_80087D2C:
/* 80087D2C 38 00 00 02 */ li r0, 2
/* 80087D30 48 00 00 20 */ b lbl_80087D50
lbl_80087D34:
/* 80087D34 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80087D38 41 82 00 0C */ beq lbl_80087D44
/* 80087D3C 38 00 00 05 */ li r0, 5
/* 80087D40 48 00 00 10 */ b lbl_80087D50
lbl_80087D44:
/* 80087D44 38 00 00 03 */ li r0, 3
/* 80087D48 48 00 00 08 */ b lbl_80087D50
lbl_80087D4C:
/* 80087D4C 38 00 00 04 */ li r0, 4
lbl_80087D50:
/* 80087D50 2C 00 00 01 */ cmpwi r0, 1
/* 80087D54 40 82 00 0C */ bne lbl_80087D60
/* 80087D58 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80087D5C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_80087D60:
/* 80087D60 C0 02 8D B8 */ lfs f0, lit_4216(r2)
/* 80087D64 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80087D68 40 81 00 3C */ ble lbl_80087DA4
/* 80087D6C 80 7C 00 04 */ lwz r3, 4(r28)
/* 80087D70 C3 C3 04 F8 */ lfs f30, 0x4f8(r3)
/* 80087D74 C3 E3 05 00 */ lfs f31, 0x500(r3)
/* 80087D78 C0 22 8D BC */ lfs f1, lit_4217(r2)
/* 80087D7C 48 1D FC 11 */ bl cM_rndFX__Ff
/* 80087D80 FC 00 08 1E */ fctiwz f0, f1
/* 80087D84 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 80087D88 83 41 00 1C */ lwz r26, 0x1c(r1)
/* 80087D8C FC 20 F0 50 */ fneg f1, f30
/* 80087D90 FC 40 F8 50 */ fneg f2, f31
/* 80087D94 48 1D F8 E1 */ bl cM_atan2s__Fff
/* 80087D98 7C 03 D2 14 */ add r0, r3, r26
/* 80087D9C B0 1C 00 0E */ sth r0, 0xe(r28)
/* 80087DA0 48 00 00 80 */ b lbl_80087E20
lbl_80087DA4:
/* 80087DA4 80 7C 00 04 */ lwz r3, 4(r28)
/* 80087DA8 A8 03 00 08 */ lha r0, 8(r3)
/* 80087DAC 2C 00 00 FE */ cmpwi r0, 0xfe
/* 80087DB0 40 82 00 48 */ bne lbl_80087DF8
/* 80087DB4 C0 3B 04 D0 */ lfs f1, 0x4d0(r27)
/* 80087DB8 C0 1E 04 D0 */ lfs f0, 0x4d0(r30)
/* 80087DBC EF E1 00 28 */ fsubs f31, f1, f0
/* 80087DC0 C0 3B 04 D8 */ lfs f1, 0x4d8(r27)
/* 80087DC4 C0 1E 04 D8 */ lfs f0, 0x4d8(r30)
/* 80087DC8 EF C1 00 28 */ fsubs f30, f1, f0
/* 80087DCC C0 22 8D C0 */ lfs f1, lit_4218(r2)
/* 80087DD0 48 1D FB BD */ bl cM_rndFX__Ff
/* 80087DD4 FC 00 08 1E */ fctiwz f0, f1
/* 80087DD8 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 80087DDC 83 41 00 1C */ lwz r26, 0x1c(r1)
/* 80087DE0 FC 20 F8 50 */ fneg f1, f31
/* 80087DE4 FC 40 F0 50 */ fneg f2, f30
/* 80087DE8 48 1D F8 8D */ bl cM_atan2s__Fff
/* 80087DEC 7C 03 D2 14 */ add r0, r3, r26
/* 80087DF0 B0 1C 00 0E */ sth r0, 0xe(r28)
/* 80087DF4 48 00 00 2C */ b lbl_80087E20
lbl_80087DF8:
/* 80087DF8 C0 3B 04 D0 */ lfs f1, 0x4d0(r27)
/* 80087DFC C0 03 04 D0 */ lfs f0, 0x4d0(r3)
/* 80087E00 EC 41 00 28 */ fsubs f2, f1, f0
/* 80087E04 C0 3B 04 D8 */ lfs f1, 0x4d8(r27)
/* 80087E08 C0 03 04 D8 */ lfs f0, 0x4d8(r3)
/* 80087E0C EC 01 00 28 */ fsubs f0, f1, f0
/* 80087E10 FC 20 10 50 */ fneg f1, f2
/* 80087E14 FC 40 00 50 */ fneg f2, f0
/* 80087E18 48 1D F8 5D */ bl cM_atan2s__Fff
/* 80087E1C B0 7C 00 0E */ sth r3, 0xe(r28)
lbl_80087E20:
/* 80087E20 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 80087E24 28 00 00 01 */ cmplwi r0, 1
/* 80087E28 40 82 00 18 */ bne lbl_80087E40
/* 80087E2C 88 1E 05 68 */ lbz r0, 0x568(r30)
/* 80087E30 28 00 00 05 */ cmplwi r0, 5
/* 80087E34 40 82 00 0C */ bne lbl_80087E40
/* 80087E38 A8 1E 04 E6 */ lha r0, 0x4e6(r30)
/* 80087E3C B0 1C 00 0E */ sth r0, 0xe(r28)
lbl_80087E40:
/* 80087E40 80 7C 00 00 */ lwz r3, 0(r28)
/* 80087E44 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80087E48 54 00 04 63 */ rlwinm. r0, r0, 0, 0x11, 0x11
/* 80087E4C 41 82 00 18 */ beq lbl_80087E64
/* 80087E50 80 1B 04 9C */ lwz r0, 0x49c(r27)
/* 80087E54 54 00 02 99 */ rlwinm. r0, r0, 0, 0xa, 0xc
/* 80087E58 41 82 00 0C */ beq lbl_80087E64
/* 80087E5C 38 00 00 00 */ li r0, 0
/* 80087E60 B0 1C 00 1C */ sth r0, 0x1c(r28)
lbl_80087E64:
/* 80087E64 80 7C 00 00 */ lwz r3, 0(r28)
/* 80087E68 88 03 00 75 */ lbz r0, 0x75(r3)
/* 80087E6C 28 00 00 04 */ cmplwi r0, 4
/* 80087E70 40 82 00 2C */ bne lbl_80087E9C
/* 80087E74 A8 1B 00 08 */ lha r0, 8(r27)
/* 80087E78 2C 00 02 0E */ cmpwi r0, 0x20e
/* 80087E7C 40 82 00 10 */ bne lbl_80087E8C
/* 80087E80 38 00 00 00 */ li r0, 0
/* 80087E84 B0 1C 00 1C */ sth r0, 0x1c(r28)
/* 80087E88 48 00 00 14 */ b lbl_80087E9C
lbl_80087E8C:
/* 80087E8C 2C 00 00 F9 */ cmpwi r0, 0xf9
/* 80087E90 41 82 00 0C */ beq lbl_80087E9C
/* 80087E94 38 00 00 64 */ li r0, 0x64
/* 80087E98 B0 1C 00 1C */ sth r0, 0x1c(r28)
lbl_80087E9C:
/* 80087E9C 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 80087EA0 28 00 00 01 */ cmplwi r0, 1
/* 80087EA4 40 82 00 78 */ bne lbl_80087F1C
/* 80087EA8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80087EAC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80087EB0 80 63 5D B4 */ lwz r3, 0x5db4(r3)
/* 80087EB4 80 03 05 74 */ lwz r0, 0x574(r3)
/* 80087EB8 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6
/* 80087EBC 40 82 00 40 */ bne lbl_80087EFC
/* 80087EC0 48 0D 74 D9 */ bl checkMasterSwordEquip__9daPy_py_cFv
/* 80087EC4 2C 03 00 00 */ cmpwi r3, 0
/* 80087EC8 41 82 00 10 */ beq lbl_80087ED8
/* 80087ECC A0 1C 00 1C */ lhz r0, 0x1c(r28)
/* 80087ED0 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e
/* 80087ED4 B0 1C 00 1C */ sth r0, 0x1c(r28)
lbl_80087ED8:
/* 80087ED8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80087EDC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80087EE0 88 03 00 14 */ lbz r0, 0x14(r3)
/* 80087EE4 28 00 00 3F */ cmplwi r0, 0x3f
/* 80087EE8 40 82 00 14 */ bne lbl_80087EFC
/* 80087EEC A0 1C 00 1C */ lhz r0, 0x1c(r28)
/* 80087EF0 7C 00 0E 70 */ srawi r0, r0, 1
/* 80087EF4 7C 00 01 94 */ addze r0, r0
/* 80087EF8 B0 1C 00 1C */ sth r0, 0x1c(r28)
lbl_80087EFC:
/* 80087EFC A0 1E 05 6E */ lhz r0, 0x56e(r30)
/* 80087F00 28 00 00 00 */ cmplwi r0, 0
/* 80087F04 41 82 00 18 */ beq lbl_80087F1C
/* 80087F08 A0 1C 00 1C */ lhz r0, 0x1c(r28)
/* 80087F0C 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e
/* 80087F10 B0 1C 00 1C */ sth r0, 0x1c(r28)
/* 80087F14 38 00 00 01 */ li r0, 1
/* 80087F18 98 1C 00 1F */ stb r0, 0x1f(r28)
lbl_80087F1C:
/* 80087F1C A0 7C 00 1C */ lhz r3, 0x1c(r28)
/* 80087F20 28 03 00 00 */ cmplwi r3, 0
/* 80087F24 41 82 00 10 */ beq lbl_80087F34
/* 80087F28 A8 1B 05 62 */ lha r0, 0x562(r27)
/* 80087F2C 7C 03 00 50 */ subf r0, r3, r0
/* 80087F30 B0 1B 05 62 */ sth r0, 0x562(r27)
lbl_80087F34:
/* 80087F34 3B A0 00 00 */ li r29, 0
/* 80087F38 A0 1C 00 1C */ lhz r0, 0x1c(r28)
/* 80087F3C 28 00 00 00 */ cmplwi r0, 0
/* 80087F40 41 82 00 20 */ beq lbl_80087F60
/* 80087F44 A8 1B 05 62 */ lha r0, 0x562(r27)
/* 80087F48 2C 00 00 00 */ cmpwi r0, 0
/* 80087F4C 41 81 00 14 */ bgt lbl_80087F60
/* 80087F50 38 00 00 02 */ li r0, 2
/* 80087F54 98 1C 00 1F */ stb r0, 0x1f(r28)
/* 80087F58 38 00 00 00 */ li r0, 0
/* 80087F5C B0 1B 05 62 */ sth r0, 0x562(r27)
lbl_80087F60:
/* 80087F60 80 7C 00 00 */ lwz r3, 0(r28)
/* 80087F64 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80087F68 54 00 04 63 */ rlwinm. r0, r0, 0, 0x11, 0x11
/* 80087F6C 41 82 00 18 */ beq lbl_80087F84
/* 80087F70 80 1B 04 9C */ lwz r0, 0x49c(r27)
/* 80087F74 74 00 00 28 */ andis. r0, r0, 0x28
/* 80087F78 40 82 00 0C */ bne lbl_80087F84
/* 80087F7C 3B 20 00 01 */ li r25, 1
/* 80087F80 48 00 00 08 */ b lbl_80087F88
lbl_80087F84:
/* 80087F84 3B 20 00 00 */ li r25, 0
lbl_80087F88:
/* 80087F88 80 1C 00 08 */ lwz r0, 8(r28)
/* 80087F8C 28 00 00 00 */ cmplwi r0, 0
/* 80087F90 41 82 00 6C */ beq lbl_80087FFC
/* 80087F94 83 5C 00 18 */ lwz r26, 0x18(r28)
/* 80087F98 28 1A 00 00 */ cmplwi r26, 0
/* 80087F9C 41 82 00 2C */ beq lbl_80087FC8
/* 80087FA0 7F 24 CB 78 */ mr r4, r25
/* 80087FA4 4B FF F5 4D */ bl getHitId__FP8cCcD_Obji
/* 80087FA8 7C 64 1B 78 */ mr r4, r3
/* 80087FAC 80 7C 00 08 */ lwz r3, 8(r28)
/* 80087FB0 7F 45 D3 78 */ mr r5, r26
/* 80087FB4 81 83 00 00 */ lwz r12, 0(r3)
/* 80087FB8 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 80087FBC 7D 89 03 A6 */ mtctr r12
/* 80087FC0 4E 80 04 21 */ bctrl
/* 80087FC4 48 00 00 38 */ b lbl_80087FFC
lbl_80087FC8:
/* 80087FC8 88 7C 00 1F */ lbz r3, 0x1f(r28)
/* 80087FCC 4B FF F4 F9 */ bl getMapInfo__FSc
/* 80087FD0 7C 7A 1B 78 */ mr r26, r3
/* 80087FD4 80 7C 00 00 */ lwz r3, 0(r28)
/* 80087FD8 7F 24 CB 78 */ mr r4, r25
/* 80087FDC 4B FF F5 15 */ bl getHitId__FP8cCcD_Obji
/* 80087FE0 7C 64 1B 78 */ mr r4, r3
/* 80087FE4 80 7C 00 08 */ lwz r3, 8(r28)
/* 80087FE8 7F 45 D3 78 */ mr r5, r26
/* 80087FEC 81 83 00 00 */ lwz r12, 0(r3)
/* 80087FF0 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 80087FF4 7D 89 03 A6 */ mtctr r12
/* 80087FF8 4E 80 04 21 */ bctrl
lbl_80087FFC:
/* 80087FFC 88 1C 00 1F */ lbz r0, 0x1f(r28)
/* 80088000 7C 00 07 75 */ extsb. r0, r0
/* 80088004 41 82 00 0C */ beq lbl_80088010
/* 80088008 3B A0 00 05 */ li r29, 5
/* 8008800C 48 00 00 14 */ b lbl_80088020
lbl_80088010:
/* 80088010 A0 1C 00 1C */ lhz r0, 0x1c(r28)
/* 80088014 28 00 00 01 */ cmplwi r0, 1
/* 80088018 40 81 00 08 */ ble lbl_80088020
/* 8008801C 3B A0 00 02 */ li r29, 2
lbl_80088020:
/* 80088020 80 7C 00 00 */ lwz r3, 0(r28)
/* 80088024 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80088028 54 00 01 09 */ rlwinm. r0, r0, 0, 4, 4
/* 8008802C 40 82 00 20 */ bne lbl_8008804C
/* 80088030 80 7F 5D AC */ lwz r3, 0x5dac(r31)
/* 80088034 81 83 06 28 */ lwz r12, 0x628(r3)
/* 80088038 81 8C 01 88 */ lwz r12, 0x188(r12)
/* 8008803C 7D 89 03 A6 */ mtctr r12
/* 80088040 4E 80 04 21 */ bctrl
/* 80088044 28 03 00 00 */ cmplwi r3, 0
/* 80088048 41 82 00 30 */ beq lbl_80088078
lbl_8008804C:
/* 8008804C A8 7B 00 08 */ lha r3, 8(r27)
/* 80088050 2C 03 01 D4 */ cmpwi r3, 0x1d4
/* 80088054 40 82 00 10 */ bne lbl_80088064
/* 80088058 88 1B 12 9A */ lbz r0, 0x129a(r27)
/* 8008805C 7C 00 07 75 */ extsb. r0, r0
/* 80088060 40 82 00 0C */ bne lbl_8008806C
lbl_80088064:
/* 80088064 2C 03 02 0E */ cmpwi r3, 0x20e
/* 80088068 40 82 00 0C */ bne lbl_80088074
lbl_8008806C:
/* 8008806C 3B A0 00 03 */ li r29, 3
/* 80088070 48 00 00 08 */ b lbl_80088078
lbl_80088074:
/* 80088074 3B A0 00 00 */ li r29, 0
lbl_80088078:
/* 80088078 A8 1B 00 08 */ lha r0, 8(r27)
/* 8008807C 2C 00 01 B7 */ cmpwi r0, 0x1b7
/* 80088080 41 82 00 34 */ beq lbl_800880B4
/* 80088084 2C 00 01 BE */ cmpwi r0, 0x1be
/* 80088088 41 82 00 2C */ beq lbl_800880B4
/* 8008808C 2C 00 01 EA */ cmpwi r0, 0x1ea
/* 80088090 41 82 00 24 */ beq lbl_800880B4
/* 80088094 2C 00 01 F9 */ cmpwi r0, 0x1f9
/* 80088098 41 82 00 1C */ beq lbl_800880B4
/* 8008809C 2C 00 01 FB */ cmpwi r0, 0x1fb
/* 800880A0 41 82 00 14 */ beq lbl_800880B4
/* 800880A4 2C 00 01 BB */ cmpwi r0, 0x1bb
/* 800880A8 41 82 00 0C */ beq lbl_800880B4
/* 800880AC 2C 00 01 E7 */ cmpwi r0, 0x1e7
/* 800880B0 40 82 00 08 */ bne lbl_800880B8
lbl_800880B4:
/* 800880B4 3B A0 00 00 */ li r29, 0
lbl_800880B8:
/* 800880B8 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 800880BC 28 00 00 01 */ cmplwi r0, 1
/* 800880C0 41 82 00 14 */ beq lbl_800880D4
/* 800880C4 80 7C 00 00 */ lwz r3, 0(r28)
/* 800880C8 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800880CC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 800880D0 41 82 00 38 */ beq lbl_80088108
lbl_800880D4:
/* 800880D4 7F C3 F3 78 */ mr r3, r30
/* 800880D8 81 9E 06 28 */ lwz r12, 0x628(r30)
/* 800880DC 81 8C 01 3C */ lwz r12, 0x13c(r12)
/* 800880E0 7D 89 03 A6 */ mtctr r12
/* 800880E4 4E 80 04 21 */ bctrl
/* 800880E8 2C 03 00 00 */ cmpwi r3, 0
/* 800880EC 40 82 00 1C */ bne lbl_80088108
/* 800880F0 80 7C 00 00 */ lwz r3, 0(r28)
/* 800880F4 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800880F8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 800880FC 41 82 00 08 */ beq lbl_80088104
/* 80088100 3B A0 00 04 */ li r29, 4
lbl_80088104:
/* 80088104 9B AD 8B A5 */ stb r29, pauseTimer__9dScnPly_c+0x1(r13)
lbl_80088108:
/* 80088108 80 7C 00 04 */ lwz r3, 4(r28)
/* 8008810C E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0 /* qr0 */
/* 80088110 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 80088114 E3 C1 00 48 */ psq_l f30, 72(r1), 0, 0 /* qr0 */
/* 80088118 CB C1 00 40 */ lfd f30, 0x40(r1)
/* 8008811C 39 61 00 40 */ addi r11, r1, 0x40
/* 80088120 48 2D A0 F9 */ bl _restgpr_25
/* 80088124 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80088128 7C 08 03 A6 */ mtlr r0
/* 8008812C 38 21 00 60 */ addi r1, r1, 0x60
/* 80088130 4E 80 00 20 */ blr
@@ -1,112 +0,0 @@
lbl_8002EC54:
/* 8002EC54 54 2B 06 FE */ clrlwi r11, r1, 0x1b
/* 8002EC58 21 6B F7 80 */ subfic r11, r11, -2176
/* 8002EC5C 7C 2C 0B 78 */ mr r12, r1
/* 8002EC60 7C 21 59 6E */ stwux r1, r1, r11
/* 8002EC64 7C 08 02 A6 */ mflr r0
/* 8002EC68 90 0C 00 04 */ stw r0, 4(r12)
/* 8002EC6C 7D 8B 63 78 */ mr r11, r12
/* 8002EC70 48 33 35 5D */ bl _savegpr_25
/* 8002EC74 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002EC78 3B C3 61 C0 */ addi r30, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002EC7C 80 7E 5C 68 */ lwz r3, 0x5c68(r30)
/* 8002EC80 38 81 00 60 */ addi r4, r1, 0x60
/* 8002EC84 38 A0 08 00 */ li r5, 0x800
/* 8002EC88 3C C0 80 38 */ lis r6, d_com_d_com_inf_game__stringBase0@ha /* 0x80378F38@ha */
/* 8002EC8C 38 C6 8F 38 */ addi r6, r6, d_com_d_com_inf_game__stringBase0@l /* 0x80378F38@l */
/* 8002EC90 38 C6 01 52 */ addi r6, r6, 0x152
/* 8002EC94 81 83 00 00 */ lwz r12, 0(r3)
/* 8002EC98 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8002EC9C 7D 89 03 A6 */ mtctr r12
/* 8002ECA0 4E 80 04 21 */ bctrl
/* 8002ECA4 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8002ECA8 3B 81 00 60 */ addi r28, r1, 0x60
/* 8002ECAC 7F 9C 02 14 */ add r28, r28, r0
/* 8002ECB0 3B 7C 00 04 */ addi r27, r28, 4
/* 8002ECB4 3B 40 00 00 */ li r26, 0
/* 8002ECB8 38 80 00 FF */ li r4, 0xff
/* 8002ECBC 38 61 00 20 */ addi r3, r1, 0x20
/* 8002ECC0 38 00 00 40 */ li r0, 0x40
/* 8002ECC4 7C 09 03 A6 */ mtctr r0
lbl_8002ECC8:
/* 8002ECC8 98 83 00 00 */ stb r4, 0(r3)
/* 8002ECCC 38 63 00 01 */ addi r3, r3, 1
/* 8002ECD0 42 00 FF F8 */ bdnz lbl_8002ECC8
/* 8002ECD4 3B 20 00 00 */ li r25, 0
/* 8002ECD8 3B E0 00 00 */ li r31, 0
/* 8002ECDC 48 00 00 78 */ b lbl_8002ED54
lbl_8002ECE0:
/* 8002ECE0 38 61 00 60 */ addi r3, r1, 0x60
/* 8002ECE4 48 19 79 49 */ bl dMenuFmap_getStartStageName__FPv
/* 8002ECE8 7F BB FA 14 */ add r29, r27, r31
/* 8002ECEC 7F A4 EB 78 */ mr r4, r29
/* 8002ECF0 48 33 9C A5 */ bl strcmp
/* 8002ECF4 2C 03 00 00 */ cmpwi r3, 0
/* 8002ECF8 40 82 00 54 */ bne lbl_8002ED4C
/* 8002ECFC 88 9D 00 08 */ lbz r4, 8(r29)
/* 8002ED00 28 04 00 FF */ cmplwi r4, 0xff
/* 8002ED04 40 82 00 38 */ bne lbl_8002ED3C
/* 8002ED08 38 80 00 00 */ li r4, 0
/* 8002ED0C 38 61 00 20 */ addi r3, r1, 0x20
/* 8002ED10 38 00 00 40 */ li r0, 0x40
/* 8002ED14 7C 09 03 A6 */ mtctr r0
lbl_8002ED18:
/* 8002ED18 88 03 00 00 */ lbz r0, 0(r3)
/* 8002ED1C 28 00 00 FF */ cmplwi r0, 0xff
/* 8002ED20 40 82 00 0C */ bne lbl_8002ED2C
/* 8002ED24 88 1D 00 09 */ lbz r0, 9(r29)
/* 8002ED28 98 03 00 00 */ stb r0, 0(r3)
lbl_8002ED2C:
/* 8002ED2C 38 84 00 01 */ addi r4, r4, 1
/* 8002ED30 38 63 00 01 */ addi r3, r3, 1
/* 8002ED34 42 00 FF E4 */ bdnz lbl_8002ED18
/* 8002ED38 48 00 00 10 */ b lbl_8002ED48
lbl_8002ED3C:
/* 8002ED3C 88 1D 00 09 */ lbz r0, 9(r29)
/* 8002ED40 38 61 00 20 */ addi r3, r1, 0x20
/* 8002ED44 7C 03 21 AE */ stbx r0, r3, r4
lbl_8002ED48:
/* 8002ED48 3B 40 00 01 */ li r26, 1
lbl_8002ED4C:
/* 8002ED4C 3B 39 00 01 */ addi r25, r25, 1
/* 8002ED50 3B FF 00 14 */ addi r31, r31, 0x14
lbl_8002ED54:
/* 8002ED54 88 1C 00 00 */ lbz r0, 0(r28)
/* 8002ED58 7C 19 00 00 */ cmpw r25, r0
/* 8002ED5C 41 80 FF 84 */ blt lbl_8002ECE0
/* 8002ED60 80 7E 5C 68 */ lwz r3, 0x5c68(r30)
/* 8002ED64 81 83 00 00 */ lwz r12, 0(r3)
/* 8002ED68 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8002ED6C 7D 89 03 A6 */ mtctr r12
/* 8002ED70 4E 80 04 21 */ bctrl
/* 8002ED74 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 8002ED78 41 82 00 48 */ beq lbl_8002EDC0
/* 8002ED7C 38 00 FF FF */ li r0, -1
/* 8002ED80 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002ED84 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002ED88 80 63 5D B4 */ lwz r3, 0x5db4(r3)
/* 8002ED8C 28 03 00 00 */ cmplwi r3, 0
/* 8002ED90 41 82 00 0C */ beq lbl_8002ED9C
/* 8002ED94 88 03 04 E2 */ lbz r0, 0x4e2(r3)
/* 8002ED98 7C 00 07 74 */ extsb r0, r0
lbl_8002ED9C:
/* 8002ED9C 2C 00 00 00 */ cmpwi r0, 0
/* 8002EDA0 40 80 00 14 */ bge lbl_8002EDB4
/* 8002EDA4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002EDA8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002EDAC 88 03 4E 0A */ lbz r0, 0x4e0a(r3)
/* 8002EDB0 7C 00 07 74 */ extsb r0, r0
lbl_8002EDB4:
/* 8002EDB4 38 61 00 20 */ addi r3, r1, 0x20
/* 8002EDB8 7C 63 00 AE */ lbzx r3, r3, r0
/* 8002EDBC 48 00 00 08 */ b lbl_8002EDC4
lbl_8002EDC0:
/* 8002EDC0 38 60 00 FF */ li r3, 0xff
lbl_8002EDC4:
/* 8002EDC4 81 41 00 00 */ lwz r10, 0(r1)
/* 8002EDC8 7D 4B 53 78 */ mr r11, r10
/* 8002EDCC 48 33 34 4D */ bl _restgpr_25
/* 8002EDD0 80 0A 00 04 */ lwz r0, 4(r10)
/* 8002EDD4 7C 08 03 A6 */ mtlr r0
/* 8002EDD8 7D 41 53 78 */ mr r1, r10
/* 8002EDDC 4E 80 00 20 */ blr
@@ -1,167 +0,0 @@
lbl_8002E9F0:
/* 8002E9F0 54 2B 06 FE */ clrlwi r11, r1, 0x1b
/* 8002E9F4 21 6B F7 A0 */ subfic r11, r11, -2144
/* 8002E9F8 7C 2C 0B 78 */ mr r12, r1
/* 8002E9FC 7C 21 59 6E */ stwux r1, r1, r11
/* 8002EA00 7C 08 02 A6 */ mflr r0
/* 8002EA04 90 0C 00 04 */ stw r0, 4(r12)
/* 8002EA08 7D 8B 63 78 */ mr r11, r12
/* 8002EA0C 48 33 37 C1 */ bl _savegpr_25
/* 8002EA10 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002EA14 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002EA18 80 7F 5C 68 */ lwz r3, 0x5c68(r31)
/* 8002EA1C 38 81 00 40 */ addi r4, r1, 0x40
/* 8002EA20 38 A0 08 00 */ li r5, 0x800
/* 8002EA24 3C C0 80 38 */ lis r6, d_com_d_com_inf_game__stringBase0@ha /* 0x80378F38@ha */
/* 8002EA28 38 C6 8F 38 */ addi r6, r6, d_com_d_com_inf_game__stringBase0@l /* 0x80378F38@l */
/* 8002EA2C 38 C6 01 52 */ addi r6, r6, 0x152
/* 8002EA30 81 83 00 00 */ lwz r12, 0(r3)
/* 8002EA34 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8002EA38 7D 89 03 A6 */ mtctr r12
/* 8002EA3C 4E 80 04 21 */ bctrl
/* 8002EA40 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8002EA44 3B A1 00 40 */ addi r29, r1, 0x40
/* 8002EA48 7F BD 02 14 */ add r29, r29, r0
/* 8002EA4C 3B 9D 00 04 */ addi r28, r29, 4
/* 8002EA50 38 60 00 00 */ li r3, 0
/* 8002EA54 38 C0 00 FF */ li r6, 0xff
/* 8002EA58 3C 80 80 3F */ lis r4, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8002EA5C 38 A4 60 94 */ addi r5, r4, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8002EA60 38 00 00 40 */ li r0, 0x40
/* 8002EA64 7C 09 03 A6 */ mtctr r0
lbl_8002EA68:
/* 8002EA68 7C 85 1A 14 */ add r4, r5, r3
/* 8002EA6C 98 C4 03 F9 */ stb r6, 0x3f9(r4)
/* 8002EA70 38 63 04 04 */ addi r3, r3, 0x404
/* 8002EA74 42 00 FF F4 */ bdnz lbl_8002EA68
/* 8002EA78 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002EA7C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002EA80 3B C3 00 64 */ addi r30, r3, 0x64
/* 8002EA84 38 00 00 00 */ li r0, 0
/* 8002EA88 98 03 00 7C */ stb r0, 0x7c(r3)
/* 8002EA8C 38 63 0D D8 */ addi r3, r3, 0xdd8
/* 8002EA90 38 80 13 01 */ li r4, 0x1301
/* 8002EA94 48 00 5F 29 */ bl isEventBit__11dSv_event_cCFUs
/* 8002EA98 2C 03 00 00 */ cmpwi r3, 0
/* 8002EA9C 40 82 01 54 */ bne lbl_8002EBF0
/* 8002EAA0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002EAA4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002EAA8 3B 43 4E 00 */ addi r26, r3, 0x4e00
/* 8002EAAC 7F 43 D3 78 */ mr r3, r26
/* 8002EAB0 3C 80 80 38 */ lis r4, d_com_d_com_inf_game__stringBase0@ha /* 0x80378F38@ha */
/* 8002EAB4 38 84 8F 38 */ addi r4, r4, d_com_d_com_inf_game__stringBase0@l /* 0x80378F38@l */
/* 8002EAB8 38 84 00 9E */ addi r4, r4, 0x9e
/* 8002EABC 48 33 9E D9 */ bl strcmp
/* 8002EAC0 2C 03 00 00 */ cmpwi r3, 0
/* 8002EAC4 40 82 00 14 */ bne lbl_8002EAD8
/* 8002EAC8 38 60 00 00 */ li r3, 0
/* 8002EACC 4B FF DE B1 */ bl getLayerNo__14dComIfG_play_cFi
/* 8002EAD0 2C 03 00 0C */ cmpwi r3, 0xc
/* 8002EAD4 41 82 01 1C */ beq lbl_8002EBF0
lbl_8002EAD8:
/* 8002EAD8 7F 43 D3 78 */ mr r3, r26
/* 8002EADC 3C 80 80 38 */ lis r4, d_com_d_com_inf_game__stringBase0@ha /* 0x80378F38@ha */
/* 8002EAE0 38 84 8F 38 */ addi r4, r4, d_com_d_com_inf_game__stringBase0@l /* 0x80378F38@l */
/* 8002EAE4 38 84 00 4F */ addi r4, r4, 0x4f
/* 8002EAE8 48 33 9E AD */ bl strcmp
/* 8002EAEC 2C 03 00 00 */ cmpwi r3, 0
/* 8002EAF0 40 82 00 60 */ bne lbl_8002EB50
/* 8002EAF4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8002EAF8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8002EAFC 88 03 4E 0A */ lbz r0, 0x4e0a(r3)
/* 8002EB00 2C 00 00 01 */ cmpwi r0, 1
/* 8002EB04 40 82 00 4C */ bne lbl_8002EB50
/* 8002EB08 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8002EB0C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8002EB10 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8002EB14 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8002EB18 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8002EB1C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8002EB20 C0 02 83 18 */ lfs f0, lit_6980(r2)
/* 8002EB24 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8002EB28 C0 02 83 1C */ lfs f0, lit_6981(r2)
/* 8002EB2C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8002EB30 7F C3 F3 78 */ mr r3, r30
/* 8002EB34 7F 44 D3 78 */ mr r4, r26
/* 8002EB38 38 A1 00 20 */ addi r5, r1, 0x20
/* 8002EB3C 38 C0 00 00 */ li r6, 0
/* 8002EB40 38 E0 00 00 */ li r7, 0
/* 8002EB44 39 00 00 04 */ li r8, 4
/* 8002EB48 48 00 42 99 */ bl set__33dSv_player_field_last_stay_info_cFPCcRC4cXyzsScUc
/* 8002EB4C 48 00 00 A4 */ b lbl_8002EBF0
lbl_8002EB50:
/* 8002EB50 3B 60 00 00 */ li r27, 0
/* 8002EB54 3B 40 00 00 */ li r26, 0
/* 8002EB58 48 00 00 8C */ b lbl_8002EBE4
lbl_8002EB5C:
/* 8002EB5C 38 61 00 40 */ addi r3, r1, 0x40
/* 8002EB60 48 19 7A CD */ bl dMenuFmap_getStartStageName__FPv
/* 8002EB64 7F 3C D2 14 */ add r25, r28, r26
/* 8002EB68 7F 24 CB 78 */ mr r4, r25
/* 8002EB6C 48 33 9E 29 */ bl strcmp
/* 8002EB70 2C 03 00 00 */ cmpwi r3, 0
/* 8002EB74 40 82 00 68 */ bne lbl_8002EBDC
/* 8002EB78 88 19 00 08 */ lbz r0, 8(r25)
/* 8002EB7C 28 00 00 FF */ cmplwi r0, 0xff
/* 8002EB80 40 82 00 3C */ bne lbl_8002EBBC
/* 8002EB84 38 60 00 00 */ li r3, 0
/* 8002EB88 3C 80 80 3F */ lis r4, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8002EB8C 38 A4 60 94 */ addi r5, r4, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8002EB90 38 00 00 40 */ li r0, 0x40
/* 8002EB94 7C 09 03 A6 */ mtctr r0
lbl_8002EB98:
/* 8002EB98 7C 85 1A 14 */ add r4, r5, r3
/* 8002EB9C 8C 04 03 F9 */ lbzu r0, 0x3f9(r4)
/* 8002EBA0 28 00 00 FF */ cmplwi r0, 0xff
/* 8002EBA4 40 82 00 0C */ bne lbl_8002EBB0
/* 8002EBA8 88 19 00 09 */ lbz r0, 9(r25)
/* 8002EBAC 98 04 00 00 */ stb r0, 0(r4)
lbl_8002EBB0:
/* 8002EBB0 38 63 04 04 */ addi r3, r3, 0x404
/* 8002EBB4 42 00 FF E4 */ bdnz lbl_8002EB98
/* 8002EBB8 48 00 00 1C */ b lbl_8002EBD4
lbl_8002EBBC:
/* 8002EBBC 88 B9 00 09 */ lbz r5, 9(r25)
/* 8002EBC0 1C 80 04 04 */ mulli r4, r0, 0x404
/* 8002EBC4 3C 60 80 3F */ lis r3, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8002EBC8 38 03 60 94 */ addi r0, r3, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8002EBCC 7C 60 22 14 */ add r3, r0, r4
/* 8002EBD0 98 A3 03 F9 */ stb r5, 0x3f9(r3)
lbl_8002EBD4:
/* 8002EBD4 38 00 00 01 */ li r0, 1
/* 8002EBD8 98 1E 00 18 */ stb r0, 0x18(r30)
lbl_8002EBDC:
/* 8002EBDC 3B 7B 00 01 */ addi r27, r27, 1
/* 8002EBE0 3B 5A 00 14 */ addi r26, r26, 0x14
lbl_8002EBE4:
/* 8002EBE4 88 1D 00 00 */ lbz r0, 0(r29)
/* 8002EBE8 7C 1B 00 00 */ cmpw r27, r0
/* 8002EBEC 41 80 FF 70 */ blt lbl_8002EB5C
lbl_8002EBF0:
/* 8002EBF0 88 1E 00 18 */ lbz r0, 0x18(r30)
/* 8002EBF4 28 00 00 00 */ cmplwi r0, 0
/* 8002EBF8 40 82 00 2C */ bne lbl_8002EC24
/* 8002EBFC 38 60 00 00 */ li r3, 0
/* 8002EC00 88 DE 00 17 */ lbz r6, 0x17(r30)
/* 8002EC04 3C 80 80 3F */ lis r4, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8002EC08 38 A4 60 94 */ addi r5, r4, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8002EC0C 38 00 00 40 */ li r0, 0x40
/* 8002EC10 7C 09 03 A6 */ mtctr r0
lbl_8002EC14:
/* 8002EC14 7C 85 1A 14 */ add r4, r5, r3
/* 8002EC18 98 C4 03 F9 */ stb r6, 0x3f9(r4)
/* 8002EC1C 38 63 04 04 */ addi r3, r3, 0x404
/* 8002EC20 42 00 FF F4 */ bdnz lbl_8002EC14
lbl_8002EC24:
/* 8002EC24 80 7F 5C 68 */ lwz r3, 0x5c68(r31)
/* 8002EC28 81 83 00 00 */ lwz r12, 0(r3)
/* 8002EC2C 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8002EC30 7D 89 03 A6 */ mtctr r12
/* 8002EC34 4E 80 04 21 */ bctrl
/* 8002EC38 81 41 00 00 */ lwz r10, 0(r1)
/* 8002EC3C 7D 4B 53 78 */ mr r11, r10
/* 8002EC40 48 33 35 D9 */ bl _restgpr_25
/* 8002EC44 80 0A 00 04 */ lwz r0, 4(r10)
/* 8002EC48 7C 08 03 A6 */ mtlr r0
/* 8002EC4C 7D 41 53 78 */ mr r1, r10
/* 8002EC50 4E 80 00 20 */ blr
-186
View File
@@ -1,186 +0,0 @@
lbl_8009B940:
/* 8009B940 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8009B944 7C 08 02 A6 */ mflr r0
/* 8009B948 90 01 00 54 */ stw r0, 0x54(r1)
/* 8009B94C 39 61 00 50 */ addi r11, r1, 0x50
/* 8009B950 48 2C 68 69 */ bl _savegpr_20
/* 8009B954 7C 7E 1B 78 */ mr r30, r3
/* 8009B958 7C 9F 23 78 */ mr r31, r4
/* 8009B95C 3B 20 00 00 */ li r25, 0
/* 8009B960 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8009B964 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8009B968 3B 43 00 9C */ addi r26, r3, 0x9c
/* 8009B96C 3B 83 00 EC */ addi r28, r3, 0xec
/* 8009B970 3B 61 00 08 */ addi r27, r1, 8
/* 8009B974 48 00 00 80 */ b lbl_8009B9F4
lbl_8009B978:
/* 8009B978 7F 43 D3 78 */ mr r3, r26
/* 8009B97C 57 24 06 3E */ clrlwi r4, r25, 0x18
/* 8009B980 38 84 00 0F */ addi r4, r4, 0xf
/* 8009B984 38 A0 00 00 */ li r5, 0
/* 8009B988 4B F9 76 A9 */ bl getItem__17dSv_player_item_cCFib
/* 8009B98C 57 35 06 3E */ clrlwi r21, r25, 0x18
/* 8009B990 7C 7B A9 AE */ stbx r3, r27, r21
/* 8009B994 7C 7B A8 AE */ lbzx r3, r27, r21
/* 8009B998 28 03 00 50 */ cmplwi r3, 0x50
/* 8009B99C 40 82 00 18 */ bne lbl_8009B9B4
/* 8009B9A0 38 80 00 00 */ li r4, 0
/* 8009B9A4 56 A0 10 3A */ slwi r0, r21, 2
/* 8009B9A8 38 61 00 0C */ addi r3, r1, 0xc
/* 8009B9AC 7C 83 01 2E */ stwx r4, r3, r0
/* 8009B9B0 48 00 00 40 */ b lbl_8009B9F0
lbl_8009B9B4:
/* 8009B9B4 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 8009B9B8 7C 03 00 40 */ cmplw r3, r0
/* 8009B9BC 40 82 00 24 */ bne lbl_8009B9E0
/* 8009B9C0 7F 83 E3 78 */ mr r3, r28
/* 8009B9C4 7F 24 CB 78 */ mr r4, r25
/* 8009B9C8 4B F9 85 B5 */ bl getBombNum__24dSv_player_item_record_cCFUc
/* 8009B9CC 54 64 06 3E */ clrlwi r4, r3, 0x18
/* 8009B9D0 56 A0 10 3A */ slwi r0, r21, 2
/* 8009B9D4 38 61 00 0C */ addi r3, r1, 0xc
/* 8009B9D8 7C 83 01 2E */ stwx r4, r3, r0
/* 8009B9DC 48 00 00 14 */ b lbl_8009B9F0
lbl_8009B9E0:
/* 8009B9E0 38 80 FF FF */ li r4, -1
/* 8009B9E4 56 A0 10 3A */ slwi r0, r21, 2
/* 8009B9E8 38 61 00 0C */ addi r3, r1, 0xc
/* 8009B9EC 7C 83 01 2E */ stwx r4, r3, r0
lbl_8009B9F0:
/* 8009B9F0 3B 39 00 01 */ addi r25, r25, 1
lbl_8009B9F4:
/* 8009B9F4 57 20 06 3E */ clrlwi r0, r25, 0x18
/* 8009B9F8 28 00 00 03 */ cmplwi r0, 3
/* 8009B9FC 41 80 FF 7C */ blt lbl_8009B978
/* 8009BA00 3B 00 00 00 */ li r24, 0
/* 8009BA04 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8009BA08 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8009BA0C 3B 63 00 F8 */ addi r27, r3, 0xf8
/* 8009BA10 3B 23 0F 38 */ addi r25, r3, 0xf38
/* 8009BA14 3B A1 00 08 */ addi r29, r1, 8
/* 8009BA18 3B 81 00 0C */ addi r28, r1, 0xc
/* 8009BA1C 48 00 01 94 */ b lbl_8009BBB0
lbl_8009BA20:
/* 8009BA20 3A E0 FF FF */ li r23, -1
/* 8009BA24 3A C0 FF FF */ li r22, -1
/* 8009BA28 38 80 00 00 */ li r4, 0
/* 8009BA2C 48 00 00 24 */ b lbl_8009BA50
lbl_8009BA30:
/* 8009BA30 54 83 06 3E */ clrlwi r3, r4, 0x18
/* 8009BA34 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d
/* 8009BA38 7C 1C 00 2E */ lwzx r0, r28, r0
/* 8009BA3C 2C 00 00 00 */ cmpwi r0, 0
/* 8009BA40 40 82 00 0C */ bne lbl_8009BA4C
/* 8009BA44 7C 77 1B 78 */ mr r23, r3
/* 8009BA48 3A C0 00 00 */ li r22, 0
lbl_8009BA4C:
/* 8009BA4C 38 84 00 01 */ addi r4, r4, 1
lbl_8009BA50:
/* 8009BA50 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 8009BA54 28 00 00 03 */ cmplwi r0, 3
/* 8009BA58 41 80 FF D8 */ blt lbl_8009BA30
/* 8009BA5C 3A A0 00 00 */ li r21, 0
/* 8009BA60 48 00 00 44 */ b lbl_8009BAA4
lbl_8009BA64:
/* 8009BA64 56 A4 06 3E */ clrlwi r4, r21, 0x18
/* 8009BA68 56 A0 15 BA */ rlwinm r0, r21, 2, 0x16, 0x1d
/* 8009BA6C 7E 9C 00 2E */ lwzx r20, r28, r0
/* 8009BA70 2C 14 00 00 */ cmpwi r20, 0
/* 8009BA74 40 81 00 2C */ ble lbl_8009BAA0
/* 8009BA78 7C 14 B0 00 */ cmpw r20, r22
/* 8009BA7C 40 81 00 24 */ ble lbl_8009BAA0
/* 8009BA80 7F 63 DB 78 */ mr r3, r27
/* 8009BA84 7C 9D 20 AE */ lbzx r4, r29, r4
/* 8009BA88 4B F9 86 71 */ bl getBombNum__21dSv_player_item_max_cCFUc
/* 8009BA8C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009BA90 7C 14 00 00 */ cmpw r20, r0
/* 8009BA94 41 82 00 0C */ beq lbl_8009BAA0
/* 8009BA98 56 B7 06 3E */ clrlwi r23, r21, 0x18
/* 8009BA9C 7E 96 A3 78 */ mr r22, r20
lbl_8009BAA0:
/* 8009BAA0 3A B5 00 01 */ addi r21, r21, 1
lbl_8009BAA4:
/* 8009BAA4 56 A0 06 3E */ clrlwi r0, r21, 0x18
/* 8009BAA8 28 00 00 03 */ cmplwi r0, 3
/* 8009BAAC 41 80 FF B8 */ blt lbl_8009BA64
/* 8009BAB0 2C 17 FF FF */ cmpwi r23, -1
/* 8009BAB4 40 82 00 0C */ bne lbl_8009BAC0
/* 8009BAB8 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 8009BABC 48 00 01 04 */ b lbl_8009BBC0
lbl_8009BAC0:
/* 8009BAC0 2C 16 00 00 */ cmpwi r22, 0
/* 8009BAC4 40 82 00 68 */ bne lbl_8009BB2C
/* 8009BAC8 7F 63 DB 78 */ mr r3, r27
/* 8009BACC 7F C4 F3 78 */ mr r4, r30
/* 8009BAD0 4B F9 86 29 */ bl getBombNum__21dSv_player_item_max_cCFUc
/* 8009BAD4 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8009BAD8 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 8009BADC 7C 03 00 40 */ cmplw r3, r0
/* 8009BAE0 41 80 00 20 */ blt lbl_8009BB00
/* 8009BAE4 7F 43 D3 78 */ mr r3, r26
/* 8009BAE8 7F C4 F3 78 */ mr r4, r30
/* 8009BAEC 7F E5 FB 78 */ mr r5, r31
/* 8009BAF0 38 C0 00 01 */ li r6, 1
/* 8009BAF4 4B F9 7F 5D */ bl setEmptyBombBagItemIn__17dSv_player_item_cFUcUcb
/* 8009BAF8 38 60 00 00 */ li r3, 0
/* 8009BAFC 48 00 00 C4 */ b lbl_8009BBC0
lbl_8009BB00:
/* 8009BB00 7F 43 D3 78 */ mr r3, r26
/* 8009BB04 7F C4 F3 78 */ mr r4, r30
/* 8009BB08 7F E5 FB 78 */ mr r5, r31
/* 8009BB0C 38 C0 00 01 */ li r6, 1
/* 8009BB10 4B F9 7F 41 */ bl setEmptyBombBagItemIn__17dSv_player_item_cFUcUcb
/* 8009BB14 7F 63 DB 78 */ mr r3, r27
/* 8009BB18 7F C4 F3 78 */ mr r4, r30
/* 8009BB1C 4B F9 85 DD */ bl getBombNum__21dSv_player_item_max_cCFUc
/* 8009BB20 7C 03 F8 50 */ subf r0, r3, r31
/* 8009BB24 54 1F 06 3E */ clrlwi r31, r0, 0x18
/* 8009BB28 48 00 00 6C */ b lbl_8009BB94
lbl_8009BB2C:
/* 8009BB2C 7F 63 DB 78 */ mr r3, r27
/* 8009BB30 38 81 00 08 */ addi r4, r1, 8
/* 8009BB34 7E 84 B8 AE */ lbzx r20, r4, r23
/* 8009BB38 7E 84 A3 78 */ mr r4, r20
/* 8009BB3C 4B F9 85 BD */ bl getBombNum__21dSv_player_item_max_cCFUc
/* 8009BB40 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8009BB44 57 F5 06 3E */ clrlwi r21, r31, 0x18
/* 8009BB48 7C 16 AA 14 */ add r0, r22, r21
/* 8009BB4C 7C 03 00 00 */ cmpw r3, r0
/* 8009BB50 41 80 00 1C */ blt lbl_8009BB6C
/* 8009BB54 7F 23 CB 78 */ mr r3, r25
/* 8009BB58 56 E4 06 3E */ clrlwi r4, r23, 0x18
/* 8009BB5C 7E A5 AB 78 */ mr r5, r21
/* 8009BB60 4B F8 F8 0D */ bl setItemBombNumCount__14dComIfG_play_cFUcs
/* 8009BB64 38 60 00 00 */ li r3, 0
/* 8009BB68 48 00 00 58 */ b lbl_8009BBC0
lbl_8009BB6C:
/* 8009BB6C 7F 23 CB 78 */ mr r3, r25
/* 8009BB70 56 E4 06 3E */ clrlwi r4, r23, 0x18
/* 8009BB74 7E A5 AB 78 */ mr r5, r21
/* 8009BB78 4B F8 F7 F5 */ bl setItemBombNumCount__14dComIfG_play_cFUcs
/* 8009BB7C 7F 63 DB 78 */ mr r3, r27
/* 8009BB80 7E 84 A3 78 */ mr r4, r20
/* 8009BB84 4B F9 85 75 */ bl getBombNum__21dSv_player_item_max_cCFUc
/* 8009BB88 7C 16 18 50 */ subf r0, r22, r3
/* 8009BB8C 7C 00 A8 50 */ subf r0, r0, r21
/* 8009BB90 54 1F 06 3E */ clrlwi r31, r0, 0x18
lbl_8009BB94:
/* 8009BB94 7F 63 DB 78 */ mr r3, r27
/* 8009BB98 7C 9D B8 AE */ lbzx r4, r29, r23
/* 8009BB9C 4B F9 85 5D */ bl getBombNum__21dSv_player_item_max_cCFUc
/* 8009BBA0 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8009BBA4 56 E0 10 3A */ slwi r0, r23, 2
/* 8009BBA8 7C 7C 01 2E */ stwx r3, r28, r0
/* 8009BBAC 3B 18 00 01 */ addi r24, r24, 1
lbl_8009BBB0:
/* 8009BBB0 57 00 06 3E */ clrlwi r0, r24, 0x18
/* 8009BBB4 28 00 00 03 */ cmplwi r0, 3
/* 8009BBB8 41 80 FE 68 */ blt lbl_8009BA20
/* 8009BBBC 57 E3 06 3E */ clrlwi r3, r31, 0x18
lbl_8009BBC0:
/* 8009BBC0 39 61 00 50 */ addi r11, r1, 0x50
/* 8009BBC4 48 2C 66 41 */ bl _restgpr_20
/* 8009BBC8 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8009BBCC 7C 08 03 A6 */ mtlr r0
/* 8009BBD0 38 21 00 50 */ addi r1, r1, 0x50
/* 8009BBD4 4E 80 00 20 */ blr
@@ -1,83 +0,0 @@
lbl_8009A0C8:
/* 8009A0C8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8009A0CC 7C 08 02 A6 */ mflr r0
/* 8009A0D0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8009A0D4 39 61 00 20 */ addi r11, r1, 0x20
/* 8009A0D8 48 2C 80 F9 */ bl _savegpr_26
/* 8009A0DC 3B E0 00 01 */ li r31, 1
/* 8009A0E0 7F FE FB 78 */ mr r30, r31
/* 8009A0E4 7F FD FB 78 */ mr r29, r31
/* 8009A0E8 7F FC FB 78 */ mr r28, r31
/* 8009A0EC 7F FB FB 78 */ mr r27, r31
/* 8009A0F0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8009A0F4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8009A0F8 3B 43 00 9C */ addi r26, r3, 0x9c
/* 8009A0FC 7F 43 D3 78 */ mr r3, r26
/* 8009A100 38 80 00 14 */ li r4, 0x14
/* 8009A104 38 A0 00 01 */ li r5, 1
/* 8009A108 4B F9 8F 29 */ bl getItem__17dSv_player_item_cCFib
/* 8009A10C 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009A110 28 00 00 4A */ cmplwi r0, 0x4a
/* 8009A114 41 82 00 24 */ beq lbl_8009A138
/* 8009A118 7F 43 D3 78 */ mr r3, r26
/* 8009A11C 38 80 00 14 */ li r4, 0x14
/* 8009A120 38 A0 00 01 */ li r5, 1
/* 8009A124 4B F9 8F 0D */ bl getItem__17dSv_player_item_cCFib
/* 8009A128 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009A12C 28 00 00 5B */ cmplwi r0, 0x5b
/* 8009A130 41 82 00 08 */ beq lbl_8009A138
/* 8009A134 3B 60 00 00 */ li r27, 0
lbl_8009A138:
/* 8009A138 57 60 06 3F */ clrlwi. r0, r27, 0x18
/* 8009A13C 40 82 00 24 */ bne lbl_8009A160
/* 8009A140 7F 43 D3 78 */ mr r3, r26
/* 8009A144 38 80 00 14 */ li r4, 0x14
/* 8009A148 38 A0 00 01 */ li r5, 1
/* 8009A14C 4B F9 8E E5 */ bl getItem__17dSv_player_item_cCFib
/* 8009A150 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009A154 28 00 00 5D */ cmplwi r0, 0x5d
/* 8009A158 41 82 00 08 */ beq lbl_8009A160
/* 8009A15C 3B 80 00 00 */ li r28, 0
lbl_8009A160:
/* 8009A160 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 8009A164 40 82 00 24 */ bne lbl_8009A188
/* 8009A168 7F 43 D3 78 */ mr r3, r26
/* 8009A16C 38 80 00 14 */ li r4, 0x14
/* 8009A170 38 A0 00 01 */ li r5, 1
/* 8009A174 4B F9 8E BD */ bl getItem__17dSv_player_item_cCFib
/* 8009A178 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009A17C 28 00 00 5C */ cmplwi r0, 0x5c
/* 8009A180 41 82 00 08 */ beq lbl_8009A188
/* 8009A184 3B A0 00 00 */ li r29, 0
lbl_8009A188:
/* 8009A188 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8009A18C 40 82 00 24 */ bne lbl_8009A1B0
/* 8009A190 7F 43 D3 78 */ mr r3, r26
/* 8009A194 38 80 00 14 */ li r4, 0x14
/* 8009A198 38 A0 00 01 */ li r5, 1
/* 8009A19C 4B F9 8E 95 */ bl getItem__17dSv_player_item_cCFib
/* 8009A1A0 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009A1A4 28 00 00 5E */ cmplwi r0, 0x5e
/* 8009A1A8 41 82 00 08 */ beq lbl_8009A1B0
/* 8009A1AC 3B C0 00 00 */ li r30, 0
lbl_8009A1B0:
/* 8009A1B0 57 C0 06 3F */ clrlwi. r0, r30, 0x18
/* 8009A1B4 40 82 00 24 */ bne lbl_8009A1D8
/* 8009A1B8 7F 43 D3 78 */ mr r3, r26
/* 8009A1BC 38 80 00 14 */ li r4, 0x14
/* 8009A1C0 38 A0 00 01 */ li r5, 1
/* 8009A1C4 4B F9 8E 6D */ bl getItem__17dSv_player_item_cCFib
/* 8009A1C8 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8009A1CC 28 00 00 5F */ cmplwi r0, 0x5f
/* 8009A1D0 41 82 00 08 */ beq lbl_8009A1D8
/* 8009A1D4 3B E0 00 00 */ li r31, 0
lbl_8009A1D8:
/* 8009A1D8 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 8009A1DC 30 03 FF FF */ addic r0, r3, -1
/* 8009A1E0 7C 60 19 10 */ subfe r3, r0, r3
/* 8009A1E4 39 61 00 20 */ addi r11, r1, 0x20
/* 8009A1E8 48 2C 80 35 */ bl _restgpr_26
/* 8009A1EC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8009A1F0 7C 08 03 A6 */ mtlr r0
/* 8009A1F4 38 21 00 20 */ addi r1, r1, 0x20
/* 8009A1F8 4E 80 00 20 */ blr
-246
View File
@@ -1,246 +0,0 @@
lbl_8024F1EC:
/* 8024F1EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8024F1F0 7C 08 02 A6 */ mflr r0
/* 8024F1F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8024F1F8 54 80 1D 78 */ rlwinm r0, r4, 3, 0x15, 0x1c
/* 8024F1FC 7C 83 02 14 */ add r4, r3, r0
/* 8024F200 88 04 02 CF */ lbz r0, 0x2cf(r4)
/* 8024F204 28 00 00 00 */ cmplwi r0, 0
/* 8024F208 41 82 00 1C */ beq lbl_8024F224
/* 8024F20C 89 04 02 CE */ lbz r8, 0x2ce(r4)
/* 8024F210 28 08 00 02 */ cmplwi r8, 2
/* 8024F214 41 82 00 10 */ beq lbl_8024F224
/* 8024F218 80 04 02 D0 */ lwz r0, 0x2d0(r4)
/* 8024F21C 28 00 81 40 */ cmplwi r0, 0x8140
/* 8024F220 40 82 00 0C */ bne lbl_8024F22C
lbl_8024F224:
/* 8024F224 38 60 00 00 */ li r3, 0
/* 8024F228 48 00 03 24 */ b lbl_8024F54C
lbl_8024F22C:
/* 8024F22C 88 E4 02 CC */ lbz r7, 0x2cc(r4)
/* 8024F230 28 07 00 04 */ cmplwi r7, 4
/* 8024F234 41 82 00 1C */ beq lbl_8024F250
/* 8024F238 28 07 00 06 */ cmplwi r7, 6
/* 8024F23C 41 82 00 14 */ beq lbl_8024F250
/* 8024F240 28 07 00 08 */ cmplwi r7, 8
/* 8024F244 41 82 00 0C */ beq lbl_8024F250
/* 8024F248 28 07 00 09 */ cmplwi r7, 9
/* 8024F24C 40 82 00 0C */ bne lbl_8024F258
lbl_8024F250:
/* 8024F250 38 60 00 00 */ li r3, 0
/* 8024F254 48 00 02 F8 */ b lbl_8024F54C
lbl_8024F258:
/* 8024F258 28 07 00 0C */ cmplwi r7, 0xc
/* 8024F25C 41 81 02 E8 */ bgt lbl_8024F544
/* 8024F260 3C A0 80 3C */ lis r5, lit_4121@ha /* 0x803C2750@ha */
/* 8024F264 38 C5 27 50 */ addi r6, r5, lit_4121@l /* 0x803C2750@l */
/* 8024F268 54 E5 10 3A */ slwi r5, r7, 2
/* 8024F26C 7C A6 28 2E */ lwzx r5, r6, r5
/* 8024F270 7C A9 03 A6 */ mtctr r5
/* 8024F274 4E 80 04 20 */ bctr
/* 8024F278 28 00 83 45 */ cmplwi r0, 0x8345
/* 8024F27C 41 82 00 14 */ beq lbl_8024F290
/* 8024F280 28 00 83 44 */ cmplwi r0, 0x8344
/* 8024F284 41 82 00 0C */ beq lbl_8024F290
/* 8024F288 28 00 83 94 */ cmplwi r0, 0x8394
/* 8024F28C 40 82 00 44 */ bne lbl_8024F2D0
lbl_8024F290:
/* 8024F290 80 A4 02 D0 */ lwz r5, 0x2d0(r4)
/* 8024F294 38 05 00 01 */ addi r0, r5, 1
/* 8024F298 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F29C 80 04 02 D0 */ lwz r0, 0x2d0(r4)
/* 8024F2A0 28 00 83 46 */ cmplwi r0, 0x8346
/* 8024F2A4 40 82 00 10 */ bne lbl_8024F2B4
/* 8024F2A8 3C A0 00 01 */ lis r5, 0x0001 /* 0x00008394@ha */
/* 8024F2AC 38 05 83 94 */ addi r0, r5, 0x8394 /* 0x00008394@l */
/* 8024F2B0 90 04 02 D0 */ stw r0, 0x2d0(r4)
lbl_8024F2B4:
/* 8024F2B4 80 04 02 D0 */ lwz r0, 0x2d0(r4)
/* 8024F2B8 28 00 83 95 */ cmplwi r0, 0x8395
/* 8024F2BC 40 82 02 88 */ bne lbl_8024F544
/* 8024F2C0 3C A0 00 01 */ lis r5, 0x0001 /* 0x00008344@ha */
/* 8024F2C4 38 05 83 44 */ addi r0, r5, 0x8344 /* 0x00008344@l */
/* 8024F2C8 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F2CC 48 00 02 78 */ b lbl_8024F544
lbl_8024F2D0:
/* 8024F2D0 28 08 00 00 */ cmplwi r8, 0
/* 8024F2D4 3C A0 00 01 */ lis r5, 0x0001 /* 0x0000829F@ha */
/* 8024F2D8 38 C5 82 9F */ addi r6, r5, 0x829F /* 0x0000829F@l */
/* 8024F2DC 41 82 00 08 */ beq lbl_8024F2E4
/* 8024F2E0 38 C5 83 40 */ addi r6, r5, -31936
lbl_8024F2E4:
/* 8024F2E4 7C 06 00 50 */ subf r0, r6, r0
/* 8024F2E8 54 05 0F FE */ srwi r5, r0, 0x1f
/* 8024F2EC 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 8024F2F0 7C 00 2A 78 */ xor r0, r0, r5
/* 8024F2F4 7C 05 00 51 */ subf. r0, r5, r0
/* 8024F2F8 41 82 00 14 */ beq lbl_8024F30C
/* 8024F2FC 80 A4 02 D0 */ lwz r5, 0x2d0(r4)
/* 8024F300 38 05 FF FF */ addi r0, r5, -1
/* 8024F304 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F308 48 00 02 3C */ b lbl_8024F544
lbl_8024F30C:
/* 8024F30C 80 A4 02 D0 */ lwz r5, 0x2d0(r4)
/* 8024F310 38 05 00 01 */ addi r0, r5, 1
/* 8024F314 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F318 48 00 02 2C */ b lbl_8024F544
/* 8024F31C 28 08 00 00 */ cmplwi r8, 0
/* 8024F320 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082A9@ha */
/* 8024F324 38 C5 82 A9 */ addi r6, r5, 0x82A9 /* 0x000082A9@l */
/* 8024F328 41 82 00 08 */ beq lbl_8024F330
/* 8024F32C 38 C5 83 4A */ addi r6, r5, -31926
lbl_8024F330:
/* 8024F330 7C A6 00 50 */ subf r5, r6, r0
/* 8024F334 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 8024F338 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F33C 7C A5 32 78 */ xor r5, r5, r6
/* 8024F340 7C C6 28 50 */ subf r6, r6, r5
/* 8024F344 38 A6 00 01 */ addi r5, r6, 1
/* 8024F348 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F34C 7C 06 00 50 */ subf r0, r6, r0
/* 8024F350 7C 05 02 14 */ add r0, r5, r0
/* 8024F354 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F358 48 00 01 EC */ b lbl_8024F544
/* 8024F35C 28 08 00 00 */ cmplwi r8, 0
/* 8024F360 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082B3@ha */
/* 8024F364 38 C5 82 B3 */ addi r6, r5, 0x82B3 /* 0x000082B3@l */
/* 8024F368 41 82 00 08 */ beq lbl_8024F370
/* 8024F36C 38 C5 83 54 */ addi r6, r5, -31916
lbl_8024F370:
/* 8024F370 7C A6 00 50 */ subf r5, r6, r0
/* 8024F374 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 8024F378 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F37C 7C A5 32 78 */ xor r5, r5, r6
/* 8024F380 7C C6 28 50 */ subf r6, r6, r5
/* 8024F384 38 A6 00 01 */ addi r5, r6, 1
/* 8024F388 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F38C 7C 06 00 50 */ subf r0, r6, r0
/* 8024F390 7C 05 02 14 */ add r0, r5, r0
/* 8024F394 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F398 48 00 01 AC */ b lbl_8024F544
/* 8024F39C 28 00 81 5B */ cmplwi r0, 0x815b
/* 8024F3A0 41 82 01 A4 */ beq lbl_8024F544
/* 8024F3A4 28 08 00 00 */ cmplwi r8, 0
/* 8024F3A8 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082C0@ha */
/* 8024F3AC 38 C5 82 C0 */ addi r6, r5, 0x82C0 /* 0x000082C0@l */
/* 8024F3B0 41 82 00 08 */ beq lbl_8024F3B8
/* 8024F3B4 38 C5 83 61 */ addi r6, r5, -31903
lbl_8024F3B8:
/* 8024F3B8 7C 00 30 40 */ cmplw r0, r6
/* 8024F3BC 41 81 00 44 */ bgt lbl_8024F400
/* 8024F3C0 28 08 00 00 */ cmplwi r8, 0
/* 8024F3C4 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082BD@ha */
/* 8024F3C8 38 C5 82 BD */ addi r6, r5, 0x82BD /* 0x000082BD@l */
/* 8024F3CC 41 82 00 08 */ beq lbl_8024F3D4
/* 8024F3D0 38 C5 83 5E */ addi r6, r5, -31906
lbl_8024F3D4:
/* 8024F3D4 7C A6 00 50 */ subf r5, r6, r0
/* 8024F3D8 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 8024F3DC 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F3E0 7C A5 32 78 */ xor r5, r5, r6
/* 8024F3E4 7C C6 28 50 */ subf r6, r6, r5
/* 8024F3E8 38 A6 00 01 */ addi r5, r6, 1
/* 8024F3EC 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F3F0 7C 06 00 50 */ subf r0, r6, r0
/* 8024F3F4 7C 05 02 14 */ add r0, r5, r0
/* 8024F3F8 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F3FC 48 00 01 48 */ b lbl_8024F544
lbl_8024F400:
/* 8024F400 28 08 00 00 */ cmplwi r8, 0
/* 8024F404 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082C7@ha */
/* 8024F408 38 C5 82 C7 */ addi r6, r5, 0x82C7 /* 0x000082C7@l */
/* 8024F40C 41 82 00 08 */ beq lbl_8024F414
/* 8024F410 38 C5 83 68 */ addi r6, r5, -31896
lbl_8024F414:
/* 8024F414 7C 00 30 40 */ cmplw r0, r6
/* 8024F418 41 81 00 60 */ bgt lbl_8024F478
/* 8024F41C 28 08 00 00 */ cmplwi r8, 0
/* 8024F420 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082C4@ha */
/* 8024F424 38 C5 82 C4 */ addi r6, r5, 0x82C4 /* 0x000082C4@l */
/* 8024F428 41 82 00 08 */ beq lbl_8024F430
/* 8024F42C 38 C5 83 65 */ addi r6, r5, -31899
lbl_8024F430:
/* 8024F430 7C 00 30 40 */ cmplw r0, r6
/* 8024F434 41 80 00 44 */ blt lbl_8024F478
/* 8024F438 28 08 00 00 */ cmplwi r8, 0
/* 8024F43C 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082C4@ha */
/* 8024F440 38 C5 82 C4 */ addi r6, r5, 0x82C4 /* 0x000082C4@l */
/* 8024F444 41 82 00 08 */ beq lbl_8024F44C
/* 8024F448 38 C5 83 65 */ addi r6, r5, -31899
lbl_8024F44C:
/* 8024F44C 7C A6 00 50 */ subf r5, r6, r0
/* 8024F450 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 8024F454 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F458 7C A5 32 78 */ xor r5, r5, r6
/* 8024F45C 7C C6 28 50 */ subf r6, r6, r5
/* 8024F460 38 A6 00 01 */ addi r5, r6, 1
/* 8024F464 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F468 7C 06 00 50 */ subf r0, r6, r0
/* 8024F46C 7C 05 02 14 */ add r0, r5, r0
/* 8024F470 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F474 48 00 00 D0 */ b lbl_8024F544
lbl_8024F478:
/* 8024F478 28 08 00 00 */ cmplwi r8, 0
/* 8024F47C 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082C1@ha */
/* 8024F480 38 C5 82 C1 */ addi r6, r5, 0x82C1 /* 0x000082C1@l */
/* 8024F484 41 82 00 08 */ beq lbl_8024F48C
/* 8024F488 38 C5 83 62 */ addi r6, r5, -31902
lbl_8024F48C:
/* 8024F48C 7C E6 00 50 */ subf r7, r6, r0
/* 8024F490 38 C0 00 03 */ li r6, 3
/* 8024F494 7C A7 33 D6 */ divw r5, r7, r6
/* 8024F498 7C A5 31 D6 */ mullw r5, r5, r6
/* 8024F49C 7C A5 38 50 */ subf r5, r5, r7
/* 8024F4A0 38 C5 00 01 */ addi r6, r5, 1
/* 8024F4A4 2C 06 00 02 */ cmpwi r6, 2
/* 8024F4A8 40 81 00 08 */ ble lbl_8024F4B0
/* 8024F4AC 38 C0 00 00 */ li r6, 0
lbl_8024F4B0:
/* 8024F4B0 7C 05 00 50 */ subf r0, r5, r0
/* 8024F4B4 7C 06 02 14 */ add r0, r6, r0
/* 8024F4B8 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F4BC 48 00 00 88 */ b lbl_8024F544
/* 8024F4C0 28 08 00 00 */ cmplwi r8, 0
/* 8024F4C4 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082CD@ha */
/* 8024F4C8 38 C5 82 CD */ addi r6, r5, 0x82CD /* 0x000082CD@l */
/* 8024F4CC 41 82 00 08 */ beq lbl_8024F4D4
/* 8024F4D0 38 C5 83 6E */ addi r6, r5, -31890
lbl_8024F4D4:
/* 8024F4D4 7C E6 00 50 */ subf r7, r6, r0
/* 8024F4D8 38 C0 00 03 */ li r6, 3
/* 8024F4DC 7C A7 33 D6 */ divw r5, r7, r6
/* 8024F4E0 7C A5 31 D6 */ mullw r5, r5, r6
/* 8024F4E4 7C A5 38 50 */ subf r5, r5, r7
/* 8024F4E8 38 C5 00 01 */ addi r6, r5, 1
/* 8024F4EC 2C 06 00 02 */ cmpwi r6, 2
/* 8024F4F0 40 81 00 08 */ ble lbl_8024F4F8
/* 8024F4F4 38 C0 00 00 */ li r6, 0
lbl_8024F4F8:
/* 8024F4F8 7C 05 00 50 */ subf r0, r5, r0
/* 8024F4FC 7C 06 02 14 */ add r0, r6, r0
/* 8024F500 90 04 02 D0 */ stw r0, 0x2d0(r4)
/* 8024F504 48 00 00 40 */ b lbl_8024F544
/* 8024F508 28 08 00 00 */ cmplwi r8, 0
/* 8024F50C 3C A0 00 01 */ lis r5, 0x0001 /* 0x000082E1@ha */
/* 8024F510 38 C5 82 E1 */ addi r6, r5, 0x82E1 /* 0x000082E1@l */
/* 8024F514 41 82 00 08 */ beq lbl_8024F51C
/* 8024F518 38 C5 83 83 */ addi r6, r5, -31869
lbl_8024F51C:
/* 8024F51C 7C A6 00 50 */ subf r5, r6, r0
/* 8024F520 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 8024F524 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F528 7C A5 32 78 */ xor r5, r5, r6
/* 8024F52C 7C C6 28 50 */ subf r6, r6, r5
/* 8024F530 38 A6 00 01 */ addi r5, r6, 1
/* 8024F534 54 A5 07 FE */ clrlwi r5, r5, 0x1f
/* 8024F538 7C 06 00 50 */ subf r0, r6, r0
/* 8024F53C 7C 05 02 14 */ add r0, r5, r0
/* 8024F540 90 04 02 D0 */ stw r0, 0x2d0(r4)
lbl_8024F544:
/* 8024F544 48 00 03 49 */ bl setNameText__7dName_cFv
/* 8024F548 38 60 00 01 */ li r3, 1
lbl_8024F54C:
/* 8024F54C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8024F550 7C 08 03 A6 */ mtlr r0
/* 8024F554 38 21 00 10 */ addi r1, r1, 0x10
/* 8024F558 4E 80 00 20 */ blr
@@ -1,923 +0,0 @@
lbl_80225EA8:
/* 80225EA8 94 21 FD F0 */ stwu r1, -0x210(r1)
/* 80225EAC 7C 08 02 A6 */ mflr r0
/* 80225EB0 90 01 02 14 */ stw r0, 0x214(r1)
/* 80225EB4 39 61 02 10 */ addi r11, r1, 0x210
/* 80225EB8 48 13 C3 19 */ bl _savegpr_26
/* 80225EBC 7C 7F 1B 78 */ mr r31, r3
/* 80225EC0 3B A0 00 00 */ li r29, 0
/* 80225EC4 3B 60 00 00 */ li r27, 0
/* 80225EC8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80225ECC 3B C3 61 C0 */ addi r30, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
lbl_80225ED0:
/* 80225ED0 2C 1D 00 29 */ cmpwi r29, 0x29
/* 80225ED4 40 82 00 3C */ bne lbl_80225F10
/* 80225ED8 83 5E 5C D0 */ lwz r26, 0x5cd0(r30)
/* 80225EDC 7F E3 FB 78 */ mr r3, r31
/* 80225EE0 7F A4 EB 78 */ mr r4, r29
/* 80225EE4 48 00 26 4D */ bl getBtiName__10COutFont_cFi
/* 80225EE8 7C 65 1B 78 */ mr r5, r3
/* 80225EEC 7F 43 D3 78 */ mr r3, r26
/* 80225EF0 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 80225EF4 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 80225EF8 81 9A 00 00 */ lwz r12, 0(r26)
/* 80225EFC 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80225F00 7D 89 03 A6 */ mtctr r12
/* 80225F04 4E 80 04 21 */ bctrl
/* 80225F08 7C 7A 1B 78 */ mr r26, r3
/* 80225F0C 48 00 00 38 */ b lbl_80225F44
lbl_80225F10:
/* 80225F10 83 5E 5D 30 */ lwz r26, 0x5d30(r30)
/* 80225F14 7F E3 FB 78 */ mr r3, r31
/* 80225F18 7F A4 EB 78 */ mr r4, r29
/* 80225F1C 48 00 26 15 */ bl getBtiName__10COutFont_cFi
/* 80225F20 7C 65 1B 78 */ mr r5, r3
/* 80225F24 7F 43 D3 78 */ mr r3, r26
/* 80225F28 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 80225F2C 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 80225F30 81 9A 00 00 */ lwz r12, 0(r26)
/* 80225F34 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80225F38 7D 89 03 A6 */ mtctr r12
/* 80225F3C 4E 80 04 21 */ bctrl
/* 80225F40 7C 7A 1B 78 */ mr r26, r3
lbl_80225F44:
/* 80225F44 38 60 01 50 */ li r3, 0x150
/* 80225F48 48 0A 8D 05 */ bl __nw__FUl
/* 80225F4C 7C 60 1B 79 */ or. r0, r3, r3
/* 80225F50 41 82 00 10 */ beq lbl_80225F60
/* 80225F54 7F 44 D3 78 */ mr r4, r26
/* 80225F58 48 0D 67 B1 */ bl __ct__10J2DPictureFPC7ResTIMG
/* 80225F5C 7C 60 1B 78 */ mr r0, r3
lbl_80225F60:
/* 80225F60 3B 9B 00 90 */ addi r28, r27, 0x90
/* 80225F64 7C 1F E1 2E */ stwx r0, r31, r28
/* 80225F68 28 1D 00 45 */ cmplwi r29, 0x45
/* 80225F6C 41 81 0D 5C */ bgt lbl_80226CC8
/* 80225F70 3C 60 80 3C */ lis r3, lit_4395@ha /* 0x803BFA90@ha */
/* 80225F74 38 63 FA 90 */ addi r3, r3, lit_4395@l /* 0x803BFA90@l */
/* 80225F78 7C 03 D8 2E */ lwzx r0, r3, r27
/* 80225F7C 7C 09 03 A6 */ mtctr r0
/* 80225F80 4E 80 04 20 */ bctr
/* 80225F84 38 00 00 62 */ li r0, 0x62
/* 80225F88 98 01 01 D8 */ stb r0, 0x1d8(r1)
/* 80225F8C 38 00 00 A3 */ li r0, 0xa3
/* 80225F90 98 01 01 D9 */ stb r0, 0x1d9(r1)
/* 80225F94 38 00 00 2E */ li r0, 0x2e
/* 80225F98 98 01 01 DA */ stb r0, 0x1da(r1)
/* 80225F9C 38 60 00 FF */ li r3, 0xff
/* 80225FA0 98 61 01 DB */ stb r3, 0x1db(r1)
/* 80225FA4 80 01 01 D8 */ lwz r0, 0x1d8(r1)
/* 80225FA8 90 01 01 DC */ stw r0, 0x1dc(r1)
/* 80225FAC 98 61 01 E0 */ stb r3, 0x1e0(r1)
/* 80225FB0 98 61 01 E1 */ stb r3, 0x1e1(r1)
/* 80225FB4 98 61 01 E2 */ stb r3, 0x1e2(r1)
/* 80225FB8 38 00 00 00 */ li r0, 0
/* 80225FBC 98 01 01 E3 */ stb r0, 0x1e3(r1)
/* 80225FC0 80 01 01 E0 */ lwz r0, 0x1e0(r1)
/* 80225FC4 90 01 01 E4 */ stw r0, 0x1e4(r1)
/* 80225FC8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80225FCC 38 81 01 E4 */ addi r4, r1, 0x1e4
/* 80225FD0 38 A1 01 DC */ addi r5, r1, 0x1dc
/* 80225FD4 81 83 00 00 */ lwz r12, 0(r3)
/* 80225FD8 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80225FDC 7D 89 03 A6 */ mtctr r12
/* 80225FE0 4E 80 04 21 */ bctrl
/* 80225FE4 48 00 0C E4 */ b lbl_80226CC8
/* 80225FE8 38 00 00 C8 */ li r0, 0xc8
/* 80225FEC 98 01 01 C8 */ stb r0, 0x1c8(r1)
/* 80225FF0 38 00 00 27 */ li r0, 0x27
/* 80225FF4 98 01 01 C9 */ stb r0, 0x1c9(r1)
/* 80225FF8 98 01 01 CA */ stb r0, 0x1ca(r1)
/* 80225FFC 38 60 00 FF */ li r3, 0xff
/* 80226000 98 61 01 CB */ stb r3, 0x1cb(r1)
/* 80226004 80 01 01 C8 */ lwz r0, 0x1c8(r1)
/* 80226008 90 01 01 CC */ stw r0, 0x1cc(r1)
/* 8022600C 98 61 01 D0 */ stb r3, 0x1d0(r1)
/* 80226010 98 61 01 D1 */ stb r3, 0x1d1(r1)
/* 80226014 98 61 01 D2 */ stb r3, 0x1d2(r1)
/* 80226018 38 00 00 00 */ li r0, 0
/* 8022601C 98 01 01 D3 */ stb r0, 0x1d3(r1)
/* 80226020 80 01 01 D0 */ lwz r0, 0x1d0(r1)
/* 80226024 90 01 01 D4 */ stw r0, 0x1d4(r1)
/* 80226028 7C 7F E0 2E */ lwzx r3, r31, r28
/* 8022602C 38 81 01 D4 */ addi r4, r1, 0x1d4
/* 80226030 38 A1 01 CC */ addi r5, r1, 0x1cc
/* 80226034 81 83 00 00 */ lwz r12, 0(r3)
/* 80226038 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 8022603C 7D 89 03 A6 */ mtctr r12
/* 80226040 4E 80 04 21 */ bctrl
/* 80226044 48 00 0C 84 */ b lbl_80226CC8
/* 80226048 38 60 00 FF */ li r3, 0xff
/* 8022604C 98 61 01 B8 */ stb r3, 0x1b8(r1)
/* 80226050 38 00 00 C8 */ li r0, 0xc8
/* 80226054 98 01 01 B9 */ stb r0, 0x1b9(r1)
/* 80226058 38 00 00 32 */ li r0, 0x32
/* 8022605C 98 01 01 BA */ stb r0, 0x1ba(r1)
/* 80226060 98 61 01 BB */ stb r3, 0x1bb(r1)
/* 80226064 80 01 01 B8 */ lwz r0, 0x1b8(r1)
/* 80226068 90 01 01 BC */ stw r0, 0x1bc(r1)
/* 8022606C 38 00 00 00 */ li r0, 0
/* 80226070 98 01 01 C0 */ stb r0, 0x1c0(r1)
/* 80226074 98 01 01 C1 */ stb r0, 0x1c1(r1)
/* 80226078 98 01 01 C2 */ stb r0, 0x1c2(r1)
/* 8022607C 98 01 01 C3 */ stb r0, 0x1c3(r1)
/* 80226080 80 01 01 C0 */ lwz r0, 0x1c0(r1)
/* 80226084 90 01 01 C4 */ stw r0, 0x1c4(r1)
/* 80226088 7C 7F E0 2E */ lwzx r3, r31, r28
/* 8022608C 38 81 01 C4 */ addi r4, r1, 0x1c4
/* 80226090 38 A1 01 BC */ addi r5, r1, 0x1bc
/* 80226094 81 83 00 00 */ lwz r12, 0(r3)
/* 80226098 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 8022609C 7D 89 03 A6 */ mtctr r12
/* 802260A0 4E 80 04 21 */ bctrl
/* 802260A4 48 00 0C 24 */ b lbl_80226CC8
/* 802260A8 88 1F 02 42 */ lbz r0, 0x242(r31)
/* 802260AC 28 00 00 01 */ cmplwi r0, 1
/* 802260B0 40 82 00 60 */ bne lbl_80226110
/* 802260B4 38 00 00 78 */ li r0, 0x78
/* 802260B8 98 01 01 A8 */ stb r0, 0x1a8(r1)
/* 802260BC 98 01 01 A9 */ stb r0, 0x1a9(r1)
/* 802260C0 98 01 01 AA */ stb r0, 0x1aa(r1)
/* 802260C4 38 60 00 FF */ li r3, 0xff
/* 802260C8 98 61 01 AB */ stb r3, 0x1ab(r1)
/* 802260CC 80 01 01 A8 */ lwz r0, 0x1a8(r1)
/* 802260D0 90 01 01 AC */ stw r0, 0x1ac(r1)
/* 802260D4 98 61 01 B0 */ stb r3, 0x1b0(r1)
/* 802260D8 98 61 01 B1 */ stb r3, 0x1b1(r1)
/* 802260DC 98 61 01 B2 */ stb r3, 0x1b2(r1)
/* 802260E0 38 00 00 00 */ li r0, 0
/* 802260E4 98 01 01 B3 */ stb r0, 0x1b3(r1)
/* 802260E8 80 01 01 B0 */ lwz r0, 0x1b0(r1)
/* 802260EC 90 01 01 B4 */ stw r0, 0x1b4(r1)
/* 802260F0 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802260F4 38 81 01 B4 */ addi r4, r1, 0x1b4
/* 802260F8 38 A1 01 AC */ addi r5, r1, 0x1ac
/* 802260FC 81 83 00 00 */ lwz r12, 0(r3)
/* 80226100 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226104 7D 89 03 A6 */ mtctr r12
/* 80226108 4E 80 04 21 */ bctrl
/* 8022610C 48 00 0B BC */ b lbl_80226CC8
lbl_80226110:
/* 80226110 38 00 00 C8 */ li r0, 0xc8
/* 80226114 98 01 01 98 */ stb r0, 0x198(r1)
/* 80226118 98 01 01 99 */ stb r0, 0x199(r1)
/* 8022611C 98 01 01 9A */ stb r0, 0x19a(r1)
/* 80226120 38 00 00 FF */ li r0, 0xff
/* 80226124 98 01 01 9B */ stb r0, 0x19b(r1)
/* 80226128 80 01 01 98 */ lwz r0, 0x198(r1)
/* 8022612C 90 01 01 9C */ stw r0, 0x19c(r1)
/* 80226130 38 00 00 00 */ li r0, 0
/* 80226134 98 01 01 A0 */ stb r0, 0x1a0(r1)
/* 80226138 98 01 01 A1 */ stb r0, 0x1a1(r1)
/* 8022613C 98 01 01 A2 */ stb r0, 0x1a2(r1)
/* 80226140 98 01 01 A3 */ stb r0, 0x1a3(r1)
/* 80226144 80 01 01 A0 */ lwz r0, 0x1a0(r1)
/* 80226148 90 01 01 A4 */ stw r0, 0x1a4(r1)
/* 8022614C 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226150 38 81 01 A4 */ addi r4, r1, 0x1a4
/* 80226154 38 A1 01 9C */ addi r5, r1, 0x19c
/* 80226158 81 83 00 00 */ lwz r12, 0(r3)
/* 8022615C 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226160 7D 89 03 A6 */ mtctr r12
/* 80226164 4E 80 04 21 */ bctrl
/* 80226168 48 00 0B 60 */ b lbl_80226CC8
/* 8022616C 38 00 00 50 */ li r0, 0x50
/* 80226170 98 01 01 88 */ stb r0, 0x188(r1)
/* 80226174 38 00 00 46 */ li r0, 0x46
/* 80226178 98 01 01 89 */ stb r0, 0x189(r1)
/* 8022617C 38 00 00 A5 */ li r0, 0xa5
/* 80226180 98 01 01 8A */ stb r0, 0x18a(r1)
/* 80226184 38 60 00 FF */ li r3, 0xff
/* 80226188 98 61 01 8B */ stb r3, 0x18b(r1)
/* 8022618C 80 01 01 88 */ lwz r0, 0x188(r1)
/* 80226190 90 01 01 8C */ stw r0, 0x18c(r1)
/* 80226194 98 61 01 90 */ stb r3, 0x190(r1)
/* 80226198 98 61 01 91 */ stb r3, 0x191(r1)
/* 8022619C 98 61 01 92 */ stb r3, 0x192(r1)
/* 802261A0 38 00 00 00 */ li r0, 0
/* 802261A4 98 01 01 93 */ stb r0, 0x193(r1)
/* 802261A8 80 01 01 90 */ lwz r0, 0x190(r1)
/* 802261AC 90 01 01 94 */ stw r0, 0x194(r1)
/* 802261B0 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802261B4 38 81 01 94 */ addi r4, r1, 0x194
/* 802261B8 38 A1 01 8C */ addi r5, r1, 0x18c
/* 802261BC 81 83 00 00 */ lwz r12, 0(r3)
/* 802261C0 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802261C4 7D 89 03 A6 */ mtctr r12
/* 802261C8 4E 80 04 21 */ bctrl
/* 802261CC 48 00 0A FC */ b lbl_80226CC8
/* 802261D0 80 7E 5D 30 */ lwz r3, 0x5d30(r30)
/* 802261D4 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 802261D8 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 802261DC 3C A0 80 3A */ lis r5, d_msg_d_msg_out_font__stringBase0@ha /* 0x80399350@ha */
/* 802261E0 38 A5 93 50 */ addi r5, r5, d_msg_d_msg_out_font__stringBase0@l /* 0x80399350@l */
/* 802261E4 81 83 00 00 */ lwz r12, 0(r3)
/* 802261E8 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 802261EC 7D 89 03 A6 */ mtctr r12
/* 802261F0 4E 80 04 21 */ bctrl
/* 802261F4 7C 64 1B 78 */ mr r4, r3
/* 802261F8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802261FC C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226200 81 83 00 00 */ lwz r12, 0(r3)
/* 80226204 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80226208 7D 89 03 A6 */ mtctr r12
/* 8022620C 4E 80 04 21 */ bctrl
/* 80226210 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226214 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226218 C0 42 B0 10 */ lfs f2, lit_3748(r2)
/* 8022621C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226220 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80226224 7D 89 03 A6 */ mtctr r12
/* 80226228 4E 80 04 21 */ bctrl
/* 8022622C 38 00 00 C8 */ li r0, 0xc8
/* 80226230 98 01 01 78 */ stb r0, 0x178(r1)
/* 80226234 98 01 01 79 */ stb r0, 0x179(r1)
/* 80226238 98 01 01 7A */ stb r0, 0x17a(r1)
/* 8022623C 38 00 00 FF */ li r0, 0xff
/* 80226240 98 01 01 7B */ stb r0, 0x17b(r1)
/* 80226244 80 01 01 78 */ lwz r0, 0x178(r1)
/* 80226248 90 01 01 7C */ stw r0, 0x17c(r1)
/* 8022624C 38 00 00 00 */ li r0, 0
/* 80226250 98 01 01 80 */ stb r0, 0x180(r1)
/* 80226254 98 01 01 81 */ stb r0, 0x181(r1)
/* 80226258 98 01 01 82 */ stb r0, 0x182(r1)
/* 8022625C 98 01 01 83 */ stb r0, 0x183(r1)
/* 80226260 80 01 01 80 */ lwz r0, 0x180(r1)
/* 80226264 90 01 01 84 */ stw r0, 0x184(r1)
/* 80226268 7C 7F E0 2E */ lwzx r3, r31, r28
/* 8022626C 38 81 01 84 */ addi r4, r1, 0x184
/* 80226270 38 A1 01 7C */ addi r5, r1, 0x17c
/* 80226274 81 83 00 00 */ lwz r12, 0(r3)
/* 80226278 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 8022627C 7D 89 03 A6 */ mtctr r12
/* 80226280 4E 80 04 21 */ bctrl
/* 80226284 48 00 0A 44 */ b lbl_80226CC8
/* 80226288 38 00 00 DC */ li r0, 0xdc
/* 8022628C 98 01 01 68 */ stb r0, 0x168(r1)
/* 80226290 38 00 00 32 */ li r0, 0x32
/* 80226294 98 01 01 69 */ stb r0, 0x169(r1)
/* 80226298 98 01 01 6A */ stb r0, 0x16a(r1)
/* 8022629C 38 00 00 FF */ li r0, 0xff
/* 802262A0 98 01 01 6B */ stb r0, 0x16b(r1)
/* 802262A4 80 01 01 68 */ lwz r0, 0x168(r1)
/* 802262A8 90 01 01 6C */ stw r0, 0x16c(r1)
/* 802262AC 38 00 00 00 */ li r0, 0
/* 802262B0 98 01 01 70 */ stb r0, 0x170(r1)
/* 802262B4 98 01 01 71 */ stb r0, 0x171(r1)
/* 802262B8 98 01 01 72 */ stb r0, 0x172(r1)
/* 802262BC 98 01 01 73 */ stb r0, 0x173(r1)
/* 802262C0 80 01 01 70 */ lwz r0, 0x170(r1)
/* 802262C4 90 01 01 74 */ stw r0, 0x174(r1)
/* 802262C8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802262CC 38 81 01 74 */ addi r4, r1, 0x174
/* 802262D0 38 A1 01 6C */ addi r5, r1, 0x16c
/* 802262D4 81 83 00 00 */ lwz r12, 0(r3)
/* 802262D8 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802262DC 7D 89 03 A6 */ mtctr r12
/* 802262E0 4E 80 04 21 */ bctrl
/* 802262E4 48 00 09 E4 */ b lbl_80226CC8
/* 802262E8 38 60 00 FF */ li r3, 0xff
/* 802262EC 98 61 01 58 */ stb r3, 0x158(r1)
/* 802262F0 38 00 00 C8 */ li r0, 0xc8
/* 802262F4 98 01 01 59 */ stb r0, 0x159(r1)
/* 802262F8 38 00 00 32 */ li r0, 0x32
/* 802262FC 98 01 01 5A */ stb r0, 0x15a(r1)
/* 80226300 98 61 01 5B */ stb r3, 0x15b(r1)
/* 80226304 80 01 01 58 */ lwz r0, 0x158(r1)
/* 80226308 90 01 01 5C */ stw r0, 0x15c(r1)
/* 8022630C 38 00 00 00 */ li r0, 0
/* 80226310 98 01 01 60 */ stb r0, 0x160(r1)
/* 80226314 98 01 01 61 */ stb r0, 0x161(r1)
/* 80226318 98 01 01 62 */ stb r0, 0x162(r1)
/* 8022631C 98 01 01 63 */ stb r0, 0x163(r1)
/* 80226320 80 01 01 60 */ lwz r0, 0x160(r1)
/* 80226324 90 01 01 64 */ stw r0, 0x164(r1)
/* 80226328 7C 7F E0 2E */ lwzx r3, r31, r28
/* 8022632C 38 81 01 64 */ addi r4, r1, 0x164
/* 80226330 38 A1 01 5C */ addi r5, r1, 0x15c
/* 80226334 81 83 00 00 */ lwz r12, 0(r3)
/* 80226338 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 8022633C 7D 89 03 A6 */ mtctr r12
/* 80226340 4E 80 04 21 */ bctrl
/* 80226344 48 00 09 84 */ b lbl_80226CC8
/* 80226348 38 80 00 FF */ li r4, 0xff
/* 8022634C 98 81 01 48 */ stb r4, 0x148(r1)
/* 80226350 38 00 00 64 */ li r0, 0x64
/* 80226354 98 01 01 49 */ stb r0, 0x149(r1)
/* 80226358 38 60 00 00 */ li r3, 0
/* 8022635C 98 61 01 4A */ stb r3, 0x14a(r1)
/* 80226360 98 81 01 4B */ stb r4, 0x14b(r1)
/* 80226364 80 01 01 48 */ lwz r0, 0x148(r1)
/* 80226368 90 01 01 4C */ stw r0, 0x14c(r1)
/* 8022636C 98 61 01 50 */ stb r3, 0x150(r1)
/* 80226370 98 61 01 51 */ stb r3, 0x151(r1)
/* 80226374 98 61 01 52 */ stb r3, 0x152(r1)
/* 80226378 98 61 01 53 */ stb r3, 0x153(r1)
/* 8022637C 80 01 01 50 */ lwz r0, 0x150(r1)
/* 80226380 90 01 01 54 */ stw r0, 0x154(r1)
/* 80226384 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226388 38 81 01 54 */ addi r4, r1, 0x154
/* 8022638C 38 A1 01 4C */ addi r5, r1, 0x14c
/* 80226390 81 83 00 00 */ lwz r12, 0(r3)
/* 80226394 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226398 7D 89 03 A6 */ mtctr r12
/* 8022639C 4E 80 04 21 */ bctrl
/* 802263A0 48 00 09 28 */ b lbl_80226CC8
/* 802263A4 38 80 00 00 */ li r4, 0
/* 802263A8 98 81 01 38 */ stb r4, 0x138(r1)
/* 802263AC 38 60 00 FF */ li r3, 0xff
/* 802263B0 98 61 01 39 */ stb r3, 0x139(r1)
/* 802263B4 38 00 00 B4 */ li r0, 0xb4
/* 802263B8 98 01 01 3A */ stb r0, 0x13a(r1)
/* 802263BC 98 61 01 3B */ stb r3, 0x13b(r1)
/* 802263C0 80 01 01 38 */ lwz r0, 0x138(r1)
/* 802263C4 90 01 01 3C */ stw r0, 0x13c(r1)
/* 802263C8 98 81 01 40 */ stb r4, 0x140(r1)
/* 802263CC 98 81 01 41 */ stb r4, 0x141(r1)
/* 802263D0 98 81 01 42 */ stb r4, 0x142(r1)
/* 802263D4 98 81 01 43 */ stb r4, 0x143(r1)
/* 802263D8 80 01 01 40 */ lwz r0, 0x140(r1)
/* 802263DC 90 01 01 44 */ stw r0, 0x144(r1)
/* 802263E0 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802263E4 38 81 01 44 */ addi r4, r1, 0x144
/* 802263E8 38 A1 01 3C */ addi r5, r1, 0x13c
/* 802263EC 81 83 00 00 */ lwz r12, 0(r3)
/* 802263F0 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802263F4 7D 89 03 A6 */ mtctr r12
/* 802263F8 4E 80 04 21 */ bctrl
/* 802263FC 48 00 08 CC */ b lbl_80226CC8
/* 80226400 38 00 00 FF */ li r0, 0xff
/* 80226404 98 01 01 28 */ stb r0, 0x128(r1)
/* 80226408 98 01 01 29 */ stb r0, 0x129(r1)
/* 8022640C 98 01 01 2A */ stb r0, 0x12a(r1)
/* 80226410 98 01 01 2B */ stb r0, 0x12b(r1)
/* 80226414 80 01 01 28 */ lwz r0, 0x128(r1)
/* 80226418 90 01 01 2C */ stw r0, 0x12c(r1)
/* 8022641C 38 00 00 00 */ li r0, 0
/* 80226420 98 01 01 30 */ stb r0, 0x130(r1)
/* 80226424 98 01 01 31 */ stb r0, 0x131(r1)
/* 80226428 98 01 01 32 */ stb r0, 0x132(r1)
/* 8022642C 98 01 01 33 */ stb r0, 0x133(r1)
/* 80226430 80 01 01 30 */ lwz r0, 0x130(r1)
/* 80226434 90 01 01 34 */ stw r0, 0x134(r1)
/* 80226438 7C 7F E0 2E */ lwzx r3, r31, r28
/* 8022643C 38 81 01 34 */ addi r4, r1, 0x134
/* 80226440 38 A1 01 2C */ addi r5, r1, 0x12c
/* 80226444 81 83 00 00 */ lwz r12, 0(r3)
/* 80226448 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 8022644C 7D 89 03 A6 */ mtctr r12
/* 80226450 4E 80 04 21 */ bctrl
/* 80226454 48 00 08 74 */ b lbl_80226CC8
/* 80226458 38 00 00 AA */ li r0, 0xaa
/* 8022645C 98 01 01 18 */ stb r0, 0x118(r1)
/* 80226460 38 00 00 FF */ li r0, 0xff
/* 80226464 98 01 01 19 */ stb r0, 0x119(r1)
/* 80226468 98 01 01 1A */ stb r0, 0x11a(r1)
/* 8022646C 98 01 01 1B */ stb r0, 0x11b(r1)
/* 80226470 80 01 01 18 */ lwz r0, 0x118(r1)
/* 80226474 90 01 01 1C */ stw r0, 0x11c(r1)
/* 80226478 38 00 00 00 */ li r0, 0
/* 8022647C 98 01 01 20 */ stb r0, 0x120(r1)
/* 80226480 98 01 01 21 */ stb r0, 0x121(r1)
/* 80226484 98 01 01 22 */ stb r0, 0x122(r1)
/* 80226488 98 01 01 23 */ stb r0, 0x123(r1)
/* 8022648C 80 01 01 20 */ lwz r0, 0x120(r1)
/* 80226490 90 01 01 24 */ stw r0, 0x124(r1)
/* 80226494 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226498 38 81 01 24 */ addi r4, r1, 0x124
/* 8022649C 38 A1 01 1C */ addi r5, r1, 0x11c
/* 802264A0 81 83 00 00 */ lwz r12, 0(r3)
/* 802264A4 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802264A8 7D 89 03 A6 */ mtctr r12
/* 802264AC 4E 80 04 21 */ bctrl
/* 802264B0 48 00 08 18 */ b lbl_80226CC8
/* 802264B4 38 00 00 1E */ li r0, 0x1e
/* 802264B8 98 01 01 08 */ stb r0, 0x108(r1)
/* 802264BC 38 00 00 32 */ li r0, 0x32
/* 802264C0 98 01 01 09 */ stb r0, 0x109(r1)
/* 802264C4 38 00 00 78 */ li r0, 0x78
/* 802264C8 98 01 01 0A */ stb r0, 0x10a(r1)
/* 802264CC 38 60 00 FF */ li r3, 0xff
/* 802264D0 98 61 01 0B */ stb r3, 0x10b(r1)
/* 802264D4 80 01 01 08 */ lwz r0, 0x108(r1)
/* 802264D8 90 01 01 0C */ stw r0, 0x10c(r1)
/* 802264DC 38 00 00 00 */ li r0, 0
/* 802264E0 98 01 01 10 */ stb r0, 0x110(r1)
/* 802264E4 98 01 01 11 */ stb r0, 0x111(r1)
/* 802264E8 98 61 01 12 */ stb r3, 0x112(r1)
/* 802264EC 98 01 01 13 */ stb r0, 0x113(r1)
/* 802264F0 80 01 01 10 */ lwz r0, 0x110(r1)
/* 802264F4 90 01 01 14 */ stw r0, 0x114(r1)
/* 802264F8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802264FC 38 81 01 14 */ addi r4, r1, 0x114
/* 80226500 38 A1 01 0C */ addi r5, r1, 0x10c
/* 80226504 81 83 00 00 */ lwz r12, 0(r3)
/* 80226508 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 8022650C 7D 89 03 A6 */ mtctr r12
/* 80226510 4E 80 04 21 */ bctrl
/* 80226514 48 00 07 B4 */ b lbl_80226CC8
/* 80226518 38 60 00 FF */ li r3, 0xff
/* 8022651C 98 61 00 F8 */ stb r3, 0xf8(r1)
/* 80226520 38 00 00 32 */ li r0, 0x32
/* 80226524 98 01 00 F9 */ stb r0, 0xf9(r1)
/* 80226528 98 01 00 FA */ stb r0, 0xfa(r1)
/* 8022652C 98 61 00 FB */ stb r3, 0xfb(r1)
/* 80226530 80 01 00 F8 */ lwz r0, 0xf8(r1)
/* 80226534 90 01 00 FC */ stw r0, 0xfc(r1)
/* 80226538 38 00 00 00 */ li r0, 0
/* 8022653C 98 01 01 00 */ stb r0, 0x100(r1)
/* 80226540 98 01 01 01 */ stb r0, 0x101(r1)
/* 80226544 98 01 01 02 */ stb r0, 0x102(r1)
/* 80226548 98 01 01 03 */ stb r0, 0x103(r1)
/* 8022654C 80 01 01 00 */ lwz r0, 0x100(r1)
/* 80226550 90 01 01 04 */ stw r0, 0x104(r1)
/* 80226554 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226558 38 81 01 04 */ addi r4, r1, 0x104
/* 8022655C 38 A1 00 FC */ addi r5, r1, 0xfc
/* 80226560 81 83 00 00 */ lwz r12, 0(r3)
/* 80226564 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226568 7D 89 03 A6 */ mtctr r12
/* 8022656C 4E 80 04 21 */ bctrl
/* 80226570 48 00 07 58 */ b lbl_80226CC8
/* 80226574 38 00 00 FF */ li r0, 0xff
/* 80226578 98 01 00 E8 */ stb r0, 0xe8(r1)
/* 8022657C 98 01 00 E9 */ stb r0, 0xe9(r1)
/* 80226580 98 01 00 EA */ stb r0, 0xea(r1)
/* 80226584 98 01 00 EB */ stb r0, 0xeb(r1)
/* 80226588 80 01 00 E8 */ lwz r0, 0xe8(r1)
/* 8022658C 90 01 00 EC */ stw r0, 0xec(r1)
/* 80226590 38 00 00 00 */ li r0, 0
/* 80226594 98 01 00 F0 */ stb r0, 0xf0(r1)
/* 80226598 98 01 00 F1 */ stb r0, 0xf1(r1)
/* 8022659C 98 01 00 F2 */ stb r0, 0xf2(r1)
/* 802265A0 98 01 00 F3 */ stb r0, 0xf3(r1)
/* 802265A4 80 01 00 F0 */ lwz r0, 0xf0(r1)
/* 802265A8 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 802265AC 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802265B0 38 81 00 F4 */ addi r4, r1, 0xf4
/* 802265B4 38 A1 00 EC */ addi r5, r1, 0xec
/* 802265B8 81 83 00 00 */ lwz r12, 0(r3)
/* 802265BC 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802265C0 7D 89 03 A6 */ mtctr r12
/* 802265C4 4E 80 04 21 */ bctrl
/* 802265C8 48 00 07 00 */ b lbl_80226CC8
/* 802265CC 38 60 00 00 */ li r3, 0
/* 802265D0 98 61 00 D8 */ stb r3, 0xd8(r1)
/* 802265D4 98 61 00 D9 */ stb r3, 0xd9(r1)
/* 802265D8 98 61 00 DA */ stb r3, 0xda(r1)
/* 802265DC 38 00 00 FF */ li r0, 0xff
/* 802265E0 98 01 00 DB */ stb r0, 0xdb(r1)
/* 802265E4 80 01 00 D8 */ lwz r0, 0xd8(r1)
/* 802265E8 90 01 00 DC */ stw r0, 0xdc(r1)
/* 802265EC 98 61 00 E0 */ stb r3, 0xe0(r1)
/* 802265F0 98 61 00 E1 */ stb r3, 0xe1(r1)
/* 802265F4 98 61 00 E2 */ stb r3, 0xe2(r1)
/* 802265F8 98 61 00 E3 */ stb r3, 0xe3(r1)
/* 802265FC 80 01 00 E0 */ lwz r0, 0xe0(r1)
/* 80226600 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 80226604 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226608 38 81 00 E4 */ addi r4, r1, 0xe4
/* 8022660C 38 A1 00 DC */ addi r5, r1, 0xdc
/* 80226610 81 83 00 00 */ lwz r12, 0(r3)
/* 80226614 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226618 7D 89 03 A6 */ mtctr r12
/* 8022661C 4E 80 04 21 */ bctrl
/* 80226620 48 00 06 A8 */ b lbl_80226CC8
/* 80226624 38 60 00 FF */ li r3, 0xff
/* 80226628 98 61 00 C8 */ stb r3, 0xc8(r1)
/* 8022662C 38 00 00 50 */ li r0, 0x50
/* 80226630 98 01 00 C9 */ stb r0, 0xc9(r1)
/* 80226634 98 01 00 CA */ stb r0, 0xca(r1)
/* 80226638 98 61 00 CB */ stb r3, 0xcb(r1)
/* 8022663C 80 01 00 C8 */ lwz r0, 0xc8(r1)
/* 80226640 90 01 00 CC */ stw r0, 0xcc(r1)
/* 80226644 38 00 00 00 */ li r0, 0
/* 80226648 98 01 00 D0 */ stb r0, 0xd0(r1)
/* 8022664C 98 01 00 D1 */ stb r0, 0xd1(r1)
/* 80226650 98 01 00 D2 */ stb r0, 0xd2(r1)
/* 80226654 98 01 00 D3 */ stb r0, 0xd3(r1)
/* 80226658 80 01 00 D0 */ lwz r0, 0xd0(r1)
/* 8022665C 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 80226660 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226664 38 81 00 D4 */ addi r4, r1, 0xd4
/* 80226668 38 A1 00 CC */ addi r5, r1, 0xcc
/* 8022666C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226670 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226674 7D 89 03 A6 */ mtctr r12
/* 80226678 4E 80 04 21 */ bctrl
/* 8022667C 48 00 06 4C */ b lbl_80226CC8
/* 80226680 38 00 00 FF */ li r0, 0xff
/* 80226684 98 01 00 B8 */ stb r0, 0xb8(r1)
/* 80226688 98 01 00 B9 */ stb r0, 0xb9(r1)
/* 8022668C 98 01 00 BA */ stb r0, 0xba(r1)
/* 80226690 98 01 00 BB */ stb r0, 0xbb(r1)
/* 80226694 80 01 00 B8 */ lwz r0, 0xb8(r1)
/* 80226698 90 01 00 BC */ stw r0, 0xbc(r1)
/* 8022669C 38 00 00 00 */ li r0, 0
/* 802266A0 98 01 00 C0 */ stb r0, 0xc0(r1)
/* 802266A4 98 01 00 C1 */ stb r0, 0xc1(r1)
/* 802266A8 98 01 00 C2 */ stb r0, 0xc2(r1)
/* 802266AC 98 01 00 C3 */ stb r0, 0xc3(r1)
/* 802266B0 80 01 00 C0 */ lwz r0, 0xc0(r1)
/* 802266B4 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 802266B8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802266BC 38 81 00 C4 */ addi r4, r1, 0xc4
/* 802266C0 38 A1 00 BC */ addi r5, r1, 0xbc
/* 802266C4 81 83 00 00 */ lwz r12, 0(r3)
/* 802266C8 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802266CC 7D 89 03 A6 */ mtctr r12
/* 802266D0 4E 80 04 21 */ bctrl
/* 802266D4 A0 1A 00 02 */ lhz r0, 2(r26)
/* 802266D8 C8 42 B0 18 */ lfd f2, lit_4397(r2)
/* 802266DC 90 01 01 EC */ stw r0, 0x1ec(r1)
/* 802266E0 3C 60 43 30 */ lis r3, 0x4330
/* 802266E4 90 61 01 E8 */ stw r3, 0x1e8(r1)
/* 802266E8 C8 01 01 E8 */ lfd f0, 0x1e8(r1)
/* 802266EC EC 20 10 28 */ fsubs f1, f0, f2
/* 802266F0 A0 1A 00 04 */ lhz r0, 4(r26)
/* 802266F4 90 01 01 F4 */ stw r0, 0x1f4(r1)
/* 802266F8 90 61 01 F0 */ stw r3, 0x1f0(r1)
/* 802266FC C8 01 01 F0 */ lfd f0, 0x1f0(r1)
/* 80226700 EC 00 10 28 */ fsubs f0, f0, f2
/* 80226704 EC 01 00 24 */ fdivs f0, f1, f0
/* 80226708 D0 1F 01 AC */ stfs f0, 0x1ac(r31)
/* 8022670C C0 02 B0 14 */ lfs f0, lit_3749(r2)
/* 80226710 D0 1F 01 B0 */ stfs f0, 0x1b0(r31)
/* 80226714 48 00 05 B4 */ b lbl_80226CC8
/* 80226718 38 00 00 FF */ li r0, 0xff
/* 8022671C 98 01 00 A8 */ stb r0, 0xa8(r1)
/* 80226720 98 01 00 A9 */ stb r0, 0xa9(r1)
/* 80226724 98 01 00 AA */ stb r0, 0xaa(r1)
/* 80226728 98 01 00 AB */ stb r0, 0xab(r1)
/* 8022672C 80 01 00 A8 */ lwz r0, 0xa8(r1)
/* 80226730 90 01 00 AC */ stw r0, 0xac(r1)
/* 80226734 38 00 00 00 */ li r0, 0
/* 80226738 98 01 00 B0 */ stb r0, 0xb0(r1)
/* 8022673C 98 01 00 B1 */ stb r0, 0xb1(r1)
/* 80226740 98 01 00 B2 */ stb r0, 0xb2(r1)
/* 80226744 98 01 00 B3 */ stb r0, 0xb3(r1)
/* 80226748 80 01 00 B0 */ lwz r0, 0xb0(r1)
/* 8022674C 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 80226750 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226754 38 81 00 B4 */ addi r4, r1, 0xb4
/* 80226758 38 A1 00 AC */ addi r5, r1, 0xac
/* 8022675C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226760 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226764 7D 89 03 A6 */ mtctr r12
/* 80226768 4E 80 04 21 */ bctrl
/* 8022676C 48 00 05 5C */ b lbl_80226CC8
/* 80226770 38 00 00 FF */ li r0, 0xff
/* 80226774 98 01 00 98 */ stb r0, 0x98(r1)
/* 80226778 98 01 00 99 */ stb r0, 0x99(r1)
/* 8022677C 98 01 00 9A */ stb r0, 0x9a(r1)
/* 80226780 98 01 00 9B */ stb r0, 0x9b(r1)
/* 80226784 80 01 00 98 */ lwz r0, 0x98(r1)
/* 80226788 90 01 00 9C */ stw r0, 0x9c(r1)
/* 8022678C 38 00 00 00 */ li r0, 0
/* 80226790 98 01 00 A0 */ stb r0, 0xa0(r1)
/* 80226794 98 01 00 A1 */ stb r0, 0xa1(r1)
/* 80226798 98 01 00 A2 */ stb r0, 0xa2(r1)
/* 8022679C 98 01 00 A3 */ stb r0, 0xa3(r1)
/* 802267A0 80 01 00 A0 */ lwz r0, 0xa0(r1)
/* 802267A4 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 802267A8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802267AC 38 81 00 A4 */ addi r4, r1, 0xa4
/* 802267B0 38 A1 00 9C */ addi r5, r1, 0x9c
/* 802267B4 81 83 00 00 */ lwz r12, 0(r3)
/* 802267B8 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802267BC 7D 89 03 A6 */ mtctr r12
/* 802267C0 4E 80 04 21 */ bctrl
/* 802267C4 48 00 05 04 */ b lbl_80226CC8
/* 802267C8 38 00 00 FF */ li r0, 0xff
/* 802267CC 98 01 00 88 */ stb r0, 0x88(r1)
/* 802267D0 98 01 00 89 */ stb r0, 0x89(r1)
/* 802267D4 98 01 00 8A */ stb r0, 0x8a(r1)
/* 802267D8 98 01 00 8B */ stb r0, 0x8b(r1)
/* 802267DC 80 01 00 88 */ lwz r0, 0x88(r1)
/* 802267E0 90 01 00 8C */ stw r0, 0x8c(r1)
/* 802267E4 38 00 00 00 */ li r0, 0
/* 802267E8 98 01 00 90 */ stb r0, 0x90(r1)
/* 802267EC 98 01 00 91 */ stb r0, 0x91(r1)
/* 802267F0 98 01 00 92 */ stb r0, 0x92(r1)
/* 802267F4 98 01 00 93 */ stb r0, 0x93(r1)
/* 802267F8 80 01 00 90 */ lwz r0, 0x90(r1)
/* 802267FC 90 01 00 94 */ stw r0, 0x94(r1)
/* 80226800 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226804 38 81 00 94 */ addi r4, r1, 0x94
/* 80226808 38 A1 00 8C */ addi r5, r1, 0x8c
/* 8022680C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226810 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226814 7D 89 03 A6 */ mtctr r12
/* 80226818 4E 80 04 21 */ bctrl
/* 8022681C 48 00 04 AC */ b lbl_80226CC8
/* 80226820 80 7E 5D 30 */ lwz r3, 0x5d30(r30)
/* 80226824 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 80226828 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 8022682C 3C A0 80 3A */ lis r5, d_msg_d_msg_out_font__stringBase0@ha /* 0x80399350@ha */
/* 80226830 38 A5 93 50 */ addi r5, r5, d_msg_d_msg_out_font__stringBase0@l /* 0x80399350@l */
/* 80226834 38 A5 00 0F */ addi r5, r5, 0xf
/* 80226838 81 83 00 00 */ lwz r12, 0(r3)
/* 8022683C 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80226840 7D 89 03 A6 */ mtctr r12
/* 80226844 4E 80 04 21 */ bctrl
/* 80226848 7C 64 1B 78 */ mr r4, r3
/* 8022684C 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226850 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226854 81 83 00 00 */ lwz r12, 0(r3)
/* 80226858 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 8022685C 7D 89 03 A6 */ mtctr r12
/* 80226860 4E 80 04 21 */ bctrl
/* 80226864 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226868 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 8022686C C0 42 B0 10 */ lfs f2, lit_3748(r2)
/* 80226870 81 83 00 00 */ lwz r12, 0(r3)
/* 80226874 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80226878 7D 89 03 A6 */ mtctr r12
/* 8022687C 4E 80 04 21 */ bctrl
/* 80226880 38 00 00 FF */ li r0, 0xff
/* 80226884 98 01 00 78 */ stb r0, 0x78(r1)
/* 80226888 98 01 00 79 */ stb r0, 0x79(r1)
/* 8022688C 98 01 00 7A */ stb r0, 0x7a(r1)
/* 80226890 98 01 00 7B */ stb r0, 0x7b(r1)
/* 80226894 80 01 00 78 */ lwz r0, 0x78(r1)
/* 80226898 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8022689C 38 00 00 00 */ li r0, 0
/* 802268A0 98 01 00 80 */ stb r0, 0x80(r1)
/* 802268A4 98 01 00 81 */ stb r0, 0x81(r1)
/* 802268A8 98 01 00 82 */ stb r0, 0x82(r1)
/* 802268AC 98 01 00 83 */ stb r0, 0x83(r1)
/* 802268B0 80 01 00 80 */ lwz r0, 0x80(r1)
/* 802268B4 90 01 00 84 */ stw r0, 0x84(r1)
/* 802268B8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802268BC 38 81 00 84 */ addi r4, r1, 0x84
/* 802268C0 38 A1 00 7C */ addi r5, r1, 0x7c
/* 802268C4 81 83 00 00 */ lwz r12, 0(r3)
/* 802268C8 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802268CC 7D 89 03 A6 */ mtctr r12
/* 802268D0 4E 80 04 21 */ bctrl
/* 802268D4 48 00 03 F4 */ b lbl_80226CC8
/* 802268D8 80 7E 5D 30 */ lwz r3, 0x5d30(r30)
/* 802268DC 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 802268E0 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 802268E4 3C A0 80 3A */ lis r5, d_msg_d_msg_out_font__stringBase0@ha /* 0x80399350@ha */
/* 802268E8 38 A5 93 50 */ addi r5, r5, d_msg_d_msg_out_font__stringBase0@l /* 0x80399350@l */
/* 802268EC 38 A5 00 1B */ addi r5, r5, 0x1b
/* 802268F0 81 83 00 00 */ lwz r12, 0(r3)
/* 802268F4 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 802268F8 7D 89 03 A6 */ mtctr r12
/* 802268FC 4E 80 04 21 */ bctrl
/* 80226900 7C 64 1B 78 */ mr r4, r3
/* 80226904 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226908 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 8022690C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226910 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80226914 7D 89 03 A6 */ mtctr r12
/* 80226918 4E 80 04 21 */ bctrl
/* 8022691C 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226920 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226924 C0 42 B0 10 */ lfs f2, lit_3748(r2)
/* 80226928 81 83 00 00 */ lwz r12, 0(r3)
/* 8022692C 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80226930 7D 89 03 A6 */ mtctr r12
/* 80226934 4E 80 04 21 */ bctrl
/* 80226938 38 00 00 FF */ li r0, 0xff
/* 8022693C 98 01 00 68 */ stb r0, 0x68(r1)
/* 80226940 98 01 00 69 */ stb r0, 0x69(r1)
/* 80226944 98 01 00 6A */ stb r0, 0x6a(r1)
/* 80226948 98 01 00 6B */ stb r0, 0x6b(r1)
/* 8022694C 80 01 00 68 */ lwz r0, 0x68(r1)
/* 80226950 90 01 00 6C */ stw r0, 0x6c(r1)
/* 80226954 38 00 00 00 */ li r0, 0
/* 80226958 98 01 00 70 */ stb r0, 0x70(r1)
/* 8022695C 98 01 00 71 */ stb r0, 0x71(r1)
/* 80226960 98 01 00 72 */ stb r0, 0x72(r1)
/* 80226964 98 01 00 73 */ stb r0, 0x73(r1)
/* 80226968 80 01 00 70 */ lwz r0, 0x70(r1)
/* 8022696C 90 01 00 74 */ stw r0, 0x74(r1)
/* 80226970 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226974 38 81 00 74 */ addi r4, r1, 0x74
/* 80226978 38 A1 00 6C */ addi r5, r1, 0x6c
/* 8022697C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226980 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226984 7D 89 03 A6 */ mtctr r12
/* 80226988 4E 80 04 21 */ bctrl
/* 8022698C 48 00 03 3C */ b lbl_80226CC8
/* 80226990 38 00 00 BE */ li r0, 0xbe
/* 80226994 98 01 00 58 */ stb r0, 0x58(r1)
/* 80226998 98 01 00 59 */ stb r0, 0x59(r1)
/* 8022699C 98 01 00 5A */ stb r0, 0x5a(r1)
/* 802269A0 38 00 00 FF */ li r0, 0xff
/* 802269A4 98 01 00 5B */ stb r0, 0x5b(r1)
/* 802269A8 80 01 00 58 */ lwz r0, 0x58(r1)
/* 802269AC 90 01 00 5C */ stw r0, 0x5c(r1)
/* 802269B0 38 00 00 00 */ li r0, 0
/* 802269B4 98 01 00 60 */ stb r0, 0x60(r1)
/* 802269B8 98 01 00 61 */ stb r0, 0x61(r1)
/* 802269BC 98 01 00 62 */ stb r0, 0x62(r1)
/* 802269C0 98 01 00 63 */ stb r0, 0x63(r1)
/* 802269C4 80 01 00 60 */ lwz r0, 0x60(r1)
/* 802269C8 90 01 00 64 */ stw r0, 0x64(r1)
/* 802269CC 7C 7F E0 2E */ lwzx r3, r31, r28
/* 802269D0 38 81 00 64 */ addi r4, r1, 0x64
/* 802269D4 38 A1 00 5C */ addi r5, r1, 0x5c
/* 802269D8 81 83 00 00 */ lwz r12, 0(r3)
/* 802269DC 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 802269E0 7D 89 03 A6 */ mtctr r12
/* 802269E4 4E 80 04 21 */ bctrl
/* 802269E8 48 00 02 E0 */ b lbl_80226CC8
/* 802269EC 38 00 00 FF */ li r0, 0xff
/* 802269F0 98 01 00 48 */ stb r0, 0x48(r1)
/* 802269F4 98 01 00 49 */ stb r0, 0x49(r1)
/* 802269F8 98 01 00 4A */ stb r0, 0x4a(r1)
/* 802269FC 98 01 00 4B */ stb r0, 0x4b(r1)
/* 80226A00 80 01 00 48 */ lwz r0, 0x48(r1)
/* 80226A04 90 01 00 4C */ stw r0, 0x4c(r1)
/* 80226A08 38 00 00 00 */ li r0, 0
/* 80226A0C 98 01 00 50 */ stb r0, 0x50(r1)
/* 80226A10 98 01 00 51 */ stb r0, 0x51(r1)
/* 80226A14 98 01 00 52 */ stb r0, 0x52(r1)
/* 80226A18 98 01 00 53 */ stb r0, 0x53(r1)
/* 80226A1C 80 01 00 50 */ lwz r0, 0x50(r1)
/* 80226A20 90 01 00 54 */ stw r0, 0x54(r1)
/* 80226A24 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226A28 38 81 00 54 */ addi r4, r1, 0x54
/* 80226A2C 38 A1 00 4C */ addi r5, r1, 0x4c
/* 80226A30 81 83 00 00 */ lwz r12, 0(r3)
/* 80226A34 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226A38 7D 89 03 A6 */ mtctr r12
/* 80226A3C 4E 80 04 21 */ bctrl
/* 80226A40 48 00 02 88 */ b lbl_80226CC8
/* 80226A44 80 7E 5D 30 */ lwz r3, 0x5d30(r30)
/* 80226A48 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 80226A4C 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 80226A50 3C A0 80 3A */ lis r5, d_msg_d_msg_out_font__stringBase0@ha /* 0x80399350@ha */
/* 80226A54 38 A5 93 50 */ addi r5, r5, d_msg_d_msg_out_font__stringBase0@l /* 0x80399350@l */
/* 80226A58 38 A5 00 27 */ addi r5, r5, 0x27
/* 80226A5C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226A60 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80226A64 7D 89 03 A6 */ mtctr r12
/* 80226A68 4E 80 04 21 */ bctrl
/* 80226A6C 7C 64 1B 78 */ mr r4, r3
/* 80226A70 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226A74 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226A78 81 83 00 00 */ lwz r12, 0(r3)
/* 80226A7C 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80226A80 7D 89 03 A6 */ mtctr r12
/* 80226A84 4E 80 04 21 */ bctrl
/* 80226A88 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226A8C C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226A90 C0 42 B0 10 */ lfs f2, lit_3748(r2)
/* 80226A94 81 83 00 00 */ lwz r12, 0(r3)
/* 80226A98 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80226A9C 7D 89 03 A6 */ mtctr r12
/* 80226AA0 4E 80 04 21 */ bctrl
/* 80226AA4 38 00 00 FF */ li r0, 0xff
/* 80226AA8 98 01 00 38 */ stb r0, 0x38(r1)
/* 80226AAC 98 01 00 39 */ stb r0, 0x39(r1)
/* 80226AB0 98 01 00 3A */ stb r0, 0x3a(r1)
/* 80226AB4 98 01 00 3B */ stb r0, 0x3b(r1)
/* 80226AB8 80 01 00 38 */ lwz r0, 0x38(r1)
/* 80226ABC 90 01 00 3C */ stw r0, 0x3c(r1)
/* 80226AC0 38 00 00 00 */ li r0, 0
/* 80226AC4 98 01 00 40 */ stb r0, 0x40(r1)
/* 80226AC8 98 01 00 41 */ stb r0, 0x41(r1)
/* 80226ACC 98 01 00 42 */ stb r0, 0x42(r1)
/* 80226AD0 98 01 00 43 */ stb r0, 0x43(r1)
/* 80226AD4 80 01 00 40 */ lwz r0, 0x40(r1)
/* 80226AD8 90 01 00 44 */ stw r0, 0x44(r1)
/* 80226ADC 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226AE0 38 81 00 44 */ addi r4, r1, 0x44
/* 80226AE4 38 A1 00 3C */ addi r5, r1, 0x3c
/* 80226AE8 81 83 00 00 */ lwz r12, 0(r3)
/* 80226AEC 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226AF0 7D 89 03 A6 */ mtctr r12
/* 80226AF4 4E 80 04 21 */ bctrl
/* 80226AF8 48 00 01 D0 */ b lbl_80226CC8
/* 80226AFC 80 7E 5D 30 */ lwz r3, 0x5d30(r30)
/* 80226B00 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 80226B04 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 80226B08 3C A0 80 3A */ lis r5, d_msg_d_msg_out_font__stringBase0@ha /* 0x80399350@ha */
/* 80226B0C 38 A5 93 50 */ addi r5, r5, d_msg_d_msg_out_font__stringBase0@l /* 0x80399350@l */
/* 80226B10 38 A5 00 33 */ addi r5, r5, 0x33
/* 80226B14 81 83 00 00 */ lwz r12, 0(r3)
/* 80226B18 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80226B1C 7D 89 03 A6 */ mtctr r12
/* 80226B20 4E 80 04 21 */ bctrl
/* 80226B24 7C 64 1B 78 */ mr r4, r3
/* 80226B28 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226B2C C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226B30 81 83 00 00 */ lwz r12, 0(r3)
/* 80226B34 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80226B38 7D 89 03 A6 */ mtctr r12
/* 80226B3C 4E 80 04 21 */ bctrl
/* 80226B40 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226B44 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226B48 C0 42 B0 10 */ lfs f2, lit_3748(r2)
/* 80226B4C 81 83 00 00 */ lwz r12, 0(r3)
/* 80226B50 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80226B54 7D 89 03 A6 */ mtctr r12
/* 80226B58 4E 80 04 21 */ bctrl
/* 80226B5C 38 00 00 FF */ li r0, 0xff
/* 80226B60 98 01 00 28 */ stb r0, 0x28(r1)
/* 80226B64 98 01 00 29 */ stb r0, 0x29(r1)
/* 80226B68 98 01 00 2A */ stb r0, 0x2a(r1)
/* 80226B6C 98 01 00 2B */ stb r0, 0x2b(r1)
/* 80226B70 80 01 00 28 */ lwz r0, 0x28(r1)
/* 80226B74 90 01 00 2C */ stw r0, 0x2c(r1)
/* 80226B78 38 00 00 00 */ li r0, 0
/* 80226B7C 98 01 00 30 */ stb r0, 0x30(r1)
/* 80226B80 98 01 00 31 */ stb r0, 0x31(r1)
/* 80226B84 98 01 00 32 */ stb r0, 0x32(r1)
/* 80226B88 98 01 00 33 */ stb r0, 0x33(r1)
/* 80226B8C 80 01 00 30 */ lwz r0, 0x30(r1)
/* 80226B90 90 01 00 34 */ stw r0, 0x34(r1)
/* 80226B94 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226B98 38 81 00 34 */ addi r4, r1, 0x34
/* 80226B9C 38 A1 00 2C */ addi r5, r1, 0x2c
/* 80226BA0 81 83 00 00 */ lwz r12, 0(r3)
/* 80226BA4 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226BA8 7D 89 03 A6 */ mtctr r12
/* 80226BAC 4E 80 04 21 */ bctrl
/* 80226BB0 48 00 01 18 */ b lbl_80226CC8
/* 80226BB4 80 7E 5D 30 */ lwz r3, 0x5d30(r30)
/* 80226BB8 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */
/* 80226BBC 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */
/* 80226BC0 3C A0 80 3A */ lis r5, d_msg_d_msg_out_font__stringBase0@ha /* 0x80399350@ha */
/* 80226BC4 38 A5 93 50 */ addi r5, r5, d_msg_d_msg_out_font__stringBase0@l /* 0x80399350@l */
/* 80226BC8 38 A5 00 3F */ addi r5, r5, 0x3f
/* 80226BCC 81 83 00 00 */ lwz r12, 0(r3)
/* 80226BD0 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80226BD4 7D 89 03 A6 */ mtctr r12
/* 80226BD8 4E 80 04 21 */ bctrl
/* 80226BDC 7C 64 1B 78 */ mr r4, r3
/* 80226BE0 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226BE4 C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226BE8 81 83 00 00 */ lwz r12, 0(r3)
/* 80226BEC 81 8C 00 9C */ lwz r12, 0x9c(r12)
/* 80226BF0 7D 89 03 A6 */ mtctr r12
/* 80226BF4 4E 80 04 21 */ bctrl
/* 80226BF8 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226BFC C0 22 B0 14 */ lfs f1, lit_3749(r2)
/* 80226C00 C0 42 B0 10 */ lfs f2, lit_3748(r2)
/* 80226C04 81 83 00 00 */ lwz r12, 0(r3)
/* 80226C08 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80226C0C 7D 89 03 A6 */ mtctr r12
/* 80226C10 4E 80 04 21 */ bctrl
/* 80226C14 38 00 00 FF */ li r0, 0xff
/* 80226C18 98 01 00 18 */ stb r0, 0x18(r1)
/* 80226C1C 98 01 00 19 */ stb r0, 0x19(r1)
/* 80226C20 98 01 00 1A */ stb r0, 0x1a(r1)
/* 80226C24 98 01 00 1B */ stb r0, 0x1b(r1)
/* 80226C28 80 01 00 18 */ lwz r0, 0x18(r1)
/* 80226C2C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80226C30 38 00 00 00 */ li r0, 0
/* 80226C34 98 01 00 20 */ stb r0, 0x20(r1)
/* 80226C38 98 01 00 21 */ stb r0, 0x21(r1)
/* 80226C3C 98 01 00 22 */ stb r0, 0x22(r1)
/* 80226C40 98 01 00 23 */ stb r0, 0x23(r1)
/* 80226C44 80 01 00 20 */ lwz r0, 0x20(r1)
/* 80226C48 90 01 00 24 */ stw r0, 0x24(r1)
/* 80226C4C 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226C50 38 81 00 24 */ addi r4, r1, 0x24
/* 80226C54 38 A1 00 1C */ addi r5, r1, 0x1c
/* 80226C58 81 83 00 00 */ lwz r12, 0(r3)
/* 80226C5C 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226C60 7D 89 03 A6 */ mtctr r12
/* 80226C64 4E 80 04 21 */ bctrl
/* 80226C68 48 00 00 60 */ b lbl_80226CC8
/* 80226C6C 38 00 00 FF */ li r0, 0xff
/* 80226C70 98 01 00 08 */ stb r0, 8(r1)
/* 80226C74 98 01 00 09 */ stb r0, 9(r1)
/* 80226C78 98 01 00 0A */ stb r0, 0xa(r1)
/* 80226C7C 98 01 00 0B */ stb r0, 0xb(r1)
/* 80226C80 80 01 00 08 */ lwz r0, 8(r1)
/* 80226C84 90 01 00 0C */ stw r0, 0xc(r1)
/* 80226C88 38 00 00 A6 */ li r0, 0xa6
/* 80226C8C 98 01 00 10 */ stb r0, 0x10(r1)
/* 80226C90 38 00 00 0C */ li r0, 0xc
/* 80226C94 98 01 00 11 */ stb r0, 0x11(r1)
/* 80226C98 38 00 00 00 */ li r0, 0
/* 80226C9C 98 01 00 12 */ stb r0, 0x12(r1)
/* 80226CA0 98 01 00 13 */ stb r0, 0x13(r1)
/* 80226CA4 80 01 00 10 */ lwz r0, 0x10(r1)
/* 80226CA8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80226CAC 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80226CB0 38 81 00 14 */ addi r4, r1, 0x14
/* 80226CB4 38 A1 00 0C */ addi r5, r1, 0xc
/* 80226CB8 81 83 00 00 */ lwz r12, 0(r3)
/* 80226CBC 81 8C 01 30 */ lwz r12, 0x130(r12)
/* 80226CC0 7D 89 03 A6 */ mtctr r12
/* 80226CC4 4E 80 04 21 */ bctrl
lbl_80226CC8:
/* 80226CC8 3B BD 00 01 */ addi r29, r29, 1
/* 80226CCC 2C 1D 00 46 */ cmpwi r29, 0x46
/* 80226CD0 3B 7B 00 04 */ addi r27, r27, 4
/* 80226CD4 41 80 F1 FC */ blt lbl_80225ED0
/* 80226CD8 38 00 00 01 */ li r0, 1
/* 80226CDC 98 1F 02 40 */ stb r0, 0x240(r31)
/* 80226CE0 39 61 02 10 */ addi r11, r1, 0x210
/* 80226CE4 48 13 B5 39 */ bl _restgpr_26
/* 80226CE8 80 01 02 14 */ lwz r0, 0x214(r1)
/* 80226CEC 7C 08 03 A6 */ mtlr r0
/* 80226CF0 38 21 02 10 */ addi r1, r1, 0x210
/* 80226CF4 4E 80 00 20 */ blr
File diff suppressed because it is too large Load Diff
@@ -1,43 +0,0 @@
lbl_80228490:
/* 80228490 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80228494 7C 08 02 A6 */ mflr r0
/* 80228498 90 01 00 14 */ stw r0, 0x14(r1)
/* 8022849C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802284A0 7C 9F 23 78 */ mr r31, r4
/* 802284A4 7C A4 07 34 */ extsh r4, r5
/* 802284A8 38 60 00 14 */ li r3, 0x14
/* 802284AC 7C 04 1B D6 */ divw r0, r4, r3
/* 802284B0 7C 00 19 D6 */ mullw r0, r0, r3
/* 802284B4 7C 80 20 50 */ subf r4, r0, r4
/* 802284B8 2C 04 00 0A */ cmpwi r4, 0xa
/* 802284BC 40 80 00 34 */ bge lbl_802284F0
/* 802284C0 38 60 00 0A */ li r3, 0xa
/* 802284C4 38 A0 00 00 */ li r5, 0
/* 802284C8 4B DF 7C 99 */ bl fopMsgM_valueIncrease__FiiUc
/* 802284CC FC 40 08 90 */ fmr f2, f1
/* 802284D0 7F E3 FB 78 */ mr r3, r31
/* 802284D4 C0 02 B0 14 */ lfs f0, lit_3749(r2)
/* 802284D8 EC 20 10 28 */ fsubs f1, f0, f2
/* 802284DC 81 9F 00 00 */ lwz r12, 0(r31)
/* 802284E0 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 802284E4 7D 89 03 A6 */ mtctr r12
/* 802284E8 4E 80 04 21 */ bctrl
/* 802284EC 48 00 00 30 */ b lbl_8022851C
lbl_802284F0:
/* 802284F0 38 60 00 0A */ li r3, 0xa
/* 802284F4 38 84 FF F6 */ addi r4, r4, -10
/* 802284F8 38 A0 00 00 */ li r5, 0
/* 802284FC 4B DF 7C 65 */ bl fopMsgM_valueIncrease__FiiUc
/* 80228500 7F E3 FB 78 */ mr r3, r31
/* 80228504 C0 02 B0 14 */ lfs f0, lit_3749(r2)
/* 80228508 EC 40 08 28 */ fsubs f2, f0, f1
/* 8022850C 81 9F 00 00 */ lwz r12, 0(r31)
/* 80228510 81 8C 01 04 */ lwz r12, 0x104(r12)
/* 80228514 7D 89 03 A6 */ mtctr r12
/* 80228518 4E 80 04 21 */ bctrl
lbl_8022851C:
/* 8022851C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80228520 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80228524 7C 08 03 A6 */ mtlr r0
/* 80228528 38 21 00 10 */ addi r1, r1, 0x10
/* 8022852C 4E 80 00 20 */ blr
@@ -1,77 +0,0 @@
lbl_8019ABB0:
/* 8019ABB0 3C 60 80 3C */ lis r3, cNullVec__6Z2Calc@ha /* 0x803BB898@ha */
/* 8019ABB4 38 83 B8 98 */ addi r4, r3, cNullVec__6Z2Calc@l /* 0x803BB898@l */
/* 8019ABB8 80 64 00 4C */ lwz r3, 0x4c(r4)
/* 8019ABBC 80 04 00 50 */ lwz r0, 0x50(r4)
/* 8019ABC0 90 64 00 DC */ stw r3, 0xdc(r4)
/* 8019ABC4 90 04 00 E0 */ stw r0, 0xe0(r4)
/* 8019ABC8 80 04 00 54 */ lwz r0, 0x54(r4)
/* 8019ABCC 90 04 00 E4 */ stw r0, 0xe4(r4)
/* 8019ABD0 38 64 00 DC */ addi r3, r4, 0xdc
/* 8019ABD4 80 A4 00 58 */ lwz r5, 0x58(r4)
/* 8019ABD8 80 04 00 5C */ lwz r0, 0x5c(r4)
/* 8019ABDC 90 A3 00 0C */ stw r5, 0xc(r3)
/* 8019ABE0 90 03 00 10 */ stw r0, 0x10(r3)
/* 8019ABE4 80 04 00 60 */ lwz r0, 0x60(r4)
/* 8019ABE8 90 03 00 14 */ stw r0, 0x14(r3)
/* 8019ABEC 80 A4 00 64 */ lwz r5, 0x64(r4)
/* 8019ABF0 80 04 00 68 */ lwz r0, 0x68(r4)
/* 8019ABF4 90 A3 00 18 */ stw r5, 0x18(r3)
/* 8019ABF8 90 03 00 1C */ stw r0, 0x1c(r3)
/* 8019ABFC 80 04 00 6C */ lwz r0, 0x6c(r4)
/* 8019AC00 90 03 00 20 */ stw r0, 0x20(r3)
/* 8019AC04 80 A4 00 70 */ lwz r5, 0x70(r4)
/* 8019AC08 80 04 00 74 */ lwz r0, 0x74(r4)
/* 8019AC0C 90 A3 00 24 */ stw r5, 0x24(r3)
/* 8019AC10 90 03 00 28 */ stw r0, 0x28(r3)
/* 8019AC14 80 04 00 78 */ lwz r0, 0x78(r4)
/* 8019AC18 90 03 00 2C */ stw r0, 0x2c(r3)
/* 8019AC1C 80 A4 00 7C */ lwz r5, 0x7c(r4)
/* 8019AC20 80 04 00 80 */ lwz r0, 0x80(r4)
/* 8019AC24 90 A3 00 30 */ stw r5, 0x30(r3)
/* 8019AC28 90 03 00 34 */ stw r0, 0x34(r3)
/* 8019AC2C 80 04 00 84 */ lwz r0, 0x84(r4)
/* 8019AC30 90 03 00 38 */ stw r0, 0x38(r3)
/* 8019AC34 80 A4 00 88 */ lwz r5, 0x88(r4)
/* 8019AC38 80 04 00 8C */ lwz r0, 0x8c(r4)
/* 8019AC3C 90 A3 00 3C */ stw r5, 0x3c(r3)
/* 8019AC40 90 03 00 40 */ stw r0, 0x40(r3)
/* 8019AC44 80 04 00 90 */ lwz r0, 0x90(r4)
/* 8019AC48 90 03 00 44 */ stw r0, 0x44(r3)
/* 8019AC4C 80 A4 00 94 */ lwz r5, 0x94(r4)
/* 8019AC50 80 04 00 98 */ lwz r0, 0x98(r4)
/* 8019AC54 90 A3 00 48 */ stw r5, 0x48(r3)
/* 8019AC58 90 03 00 4C */ stw r0, 0x4c(r3)
/* 8019AC5C 80 04 00 9C */ lwz r0, 0x9c(r4)
/* 8019AC60 90 03 00 50 */ stw r0, 0x50(r3)
/* 8019AC64 80 A4 00 A0 */ lwz r5, 0xa0(r4)
/* 8019AC68 80 04 00 A4 */ lwz r0, 0xa4(r4)
/* 8019AC6C 90 A3 00 54 */ stw r5, 0x54(r3)
/* 8019AC70 90 03 00 58 */ stw r0, 0x58(r3)
/* 8019AC74 80 04 00 A8 */ lwz r0, 0xa8(r4)
/* 8019AC78 90 03 00 5C */ stw r0, 0x5c(r3)
/* 8019AC7C 80 A4 00 AC */ lwz r5, 0xac(r4)
/* 8019AC80 80 04 00 B0 */ lwz r0, 0xb0(r4)
/* 8019AC84 90 A3 00 60 */ stw r5, 0x60(r3)
/* 8019AC88 90 03 00 64 */ stw r0, 0x64(r3)
/* 8019AC8C 80 04 00 B4 */ lwz r0, 0xb4(r4)
/* 8019AC90 90 03 00 68 */ stw r0, 0x68(r3)
/* 8019AC94 80 A4 00 B8 */ lwz r5, 0xb8(r4)
/* 8019AC98 80 04 00 BC */ lwz r0, 0xbc(r4)
/* 8019AC9C 90 A3 00 6C */ stw r5, 0x6c(r3)
/* 8019ACA0 90 03 00 70 */ stw r0, 0x70(r3)
/* 8019ACA4 80 04 00 C0 */ lwz r0, 0xc0(r4)
/* 8019ACA8 90 03 00 74 */ stw r0, 0x74(r3)
/* 8019ACAC 80 A4 00 C4 */ lwz r5, 0xc4(r4)
/* 8019ACB0 80 04 00 C8 */ lwz r0, 0xc8(r4)
/* 8019ACB4 90 A3 00 78 */ stw r5, 0x78(r3)
/* 8019ACB8 90 03 00 7C */ stw r0, 0x7c(r3)
/* 8019ACBC 80 04 00 CC */ lwz r0, 0xcc(r4)
/* 8019ACC0 90 03 00 80 */ stw r0, 0x80(r3)
/* 8019ACC4 80 A4 00 D0 */ lwz r5, 0xd0(r4)
/* 8019ACC8 80 04 00 D4 */ lwz r0, 0xd4(r4)
/* 8019ACCC 90 A3 00 84 */ stw r5, 0x84(r3)
/* 8019ACD0 90 03 00 88 */ stw r0, 0x88(r3)
/* 8019ACD4 80 04 00 D8 */ lwz r0, 0xd8(r4)
/* 8019ACD8 90 03 00 8C */ stw r0, 0x8c(r3)
/* 8019ACDC 4E 80 00 20 */ blr
@@ -1,193 +0,0 @@
lbl_8001C5B0:
/* 8001C5B0 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8001C5B4 7C 08 02 A6 */ mflr r0
/* 8001C5B8 90 01 00 54 */ stw r0, 0x54(r1)
/* 8001C5BC 39 61 00 50 */ addi r11, r1, 0x50
/* 8001C5C0 48 34 5B FD */ bl _savegpr_21
/* 8001C5C4 7C 76 1B 78 */ mr r22, r3
/* 8001C5C8 7C 9E 23 78 */ mr r30, r4
/* 8001C5CC 7C B7 2B 78 */ mr r23, r5
/* 8001C5D0 7C D8 33 78 */ mr r24, r6
/* 8001C5D4 7C F9 3B 78 */ mr r25, r7
/* 8001C5D8 7D 1A 43 78 */ mr r26, r8
/* 8001C5DC 7D 3B 4B 78 */ mr r27, r9
/* 8001C5E0 7D 5D 53 78 */ mr r29, r10
/* 8001C5E4 82 A1 00 58 */ lwz r21, 0x58(r1)
/* 8001C5E8 83 81 00 5C */ lwz r28, 0x5c(r1)
/* 8001C5EC 2C 1E 00 FF */ cmpwi r30, 0xff
/* 8001C5F0 40 82 00 0C */ bne lbl_8001C5FC
/* 8001C5F4 38 60 00 00 */ li r3, 0
/* 8001C5F8 48 00 02 60 */ b lbl_8001C858
lbl_8001C5FC:
/* 8001C5FC 7F C3 F3 78 */ mr r3, r30
/* 8001C600 48 07 F1 C5 */ bl check_itemno__Fi
/* 8001C604 56 A4 C1 0E */ rlwinm r4, r21, 0x18, 4, 7
/* 8001C608 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8001C60C 53 A3 44 2E */ rlwimi r3, r29, 8, 0x10, 0x17
/* 8001C610 64 60 00 FF */ oris r0, r3, 0xff
/* 8001C614 7C 9D 03 78 */ or r29, r4, r0
/* 8001C618 28 1A 00 00 */ cmplwi r26, 0
/* 8001C61C 41 82 00 24 */ beq lbl_8001C640
/* 8001C620 57 C3 06 3E */ clrlwi r3, r30, 0x18
/* 8001C624 48 07 F1 59 */ bl isHeart__FUc
/* 8001C628 2C 03 00 00 */ cmpwi r3, 0
/* 8001C62C 41 82 00 14 */ beq lbl_8001C640
/* 8001C630 C0 22 82 30 */ lfs f1, lit_5808(r2)
/* 8001C634 C0 1A 00 00 */ lfs f0, 0(r26)
/* 8001C638 EC 01 00 32 */ fmuls f0, f1, f0
/* 8001C63C D0 1A 00 00 */ stfs f0, 0(r26)
lbl_8001C640:
/* 8001C640 2C 1E 00 20 */ cmpwi r30, 0x20
/* 8001C644 41 82 01 78 */ beq lbl_8001C7BC
/* 8001C648 40 80 00 14 */ bge lbl_8001C65C
/* 8001C64C 2C 1E 00 1E */ cmpwi r30, 0x1e
/* 8001C650 41 82 00 18 */ beq lbl_8001C668
/* 8001C654 40 80 00 74 */ bge lbl_8001C6C8
/* 8001C658 48 00 01 64 */ b lbl_8001C7BC
lbl_8001C65C:
/* 8001C65C 2C 1E 00 23 */ cmpwi r30, 0x23
/* 8001C660 40 80 01 5C */ bge lbl_8001C7BC
/* 8001C664 48 00 00 34 */ b lbl_8001C698
lbl_8001C668:
/* 8001C668 38 00 00 00 */ li r0, 0
/* 8001C66C 90 01 00 08 */ stw r0, 8(r1)
/* 8001C670 38 60 01 3F */ li r3, 0x13f
/* 8001C674 38 80 FF FF */ li r4, -1
/* 8001C678 7E C5 B3 78 */ mr r5, r22
/* 8001C67C 7E E6 BB 78 */ mr r6, r23
/* 8001C680 7F 07 C3 78 */ mr r7, r24
/* 8001C684 7F 28 CB 78 */ mr r8, r25
/* 8001C688 39 20 FF FF */ li r9, -1
/* 8001C68C 39 40 00 00 */ li r10, 0
/* 8001C690 4B FF D7 75 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv
/* 8001C694 48 00 01 C4 */ b lbl_8001C858
lbl_8001C698:
/* 8001C698 38 00 00 00 */ li r0, 0
/* 8001C69C 90 01 00 08 */ stw r0, 8(r1)
/* 8001C6A0 38 60 02 1B */ li r3, 0x21b
/* 8001C6A4 7F A4 EB 78 */ mr r4, r29
/* 8001C6A8 7E C5 B3 78 */ mr r5, r22
/* 8001C6AC 7E E6 BB 78 */ mr r6, r23
/* 8001C6B0 7F 07 C3 78 */ mr r7, r24
/* 8001C6B4 7F 28 CB 78 */ mr r8, r25
/* 8001C6B8 39 20 FF FF */ li r9, -1
/* 8001C6BC 39 40 00 00 */ li r10, 0
/* 8001C6C0 4B FF D7 45 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv
/* 8001C6C4 48 00 01 94 */ b lbl_8001C858
lbl_8001C6C8:
/* 8001C6C8 3B C0 00 00 */ li r30, 0
/* 8001C6CC 3B ED 8B E0 */ la r31, Zero__5csXyz(r13) /* 80451160-_SDA_BASE_ */
lbl_8001C6D0:
/* 8001C6D0 28 18 00 00 */ cmplwi r24, 0
/* 8001C6D4 41 82 00 20 */ beq lbl_8001C6F4
/* 8001C6D8 A8 18 00 00 */ lha r0, 0(r24)
/* 8001C6DC B0 01 00 10 */ sth r0, 0x10(r1)
/* 8001C6E0 A8 18 00 02 */ lha r0, 2(r24)
/* 8001C6E4 B0 01 00 12 */ sth r0, 0x12(r1)
/* 8001C6E8 A8 18 00 04 */ lha r0, 4(r24)
/* 8001C6EC B0 01 00 14 */ sth r0, 0x14(r1)
/* 8001C6F0 48 00 00 1C */ b lbl_8001C70C
lbl_8001C6F4:
/* 8001C6F4 A8 0D 8B E0 */ lha r0, Zero__5csXyz(r13)
/* 8001C6F8 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8001C6FC A8 1F 00 02 */ lha r0, 2(r31)
/* 8001C700 B0 01 00 12 */ sth r0, 0x12(r1)
/* 8001C704 A8 1F 00 04 */ lha r0, 4(r31)
/* 8001C708 B0 01 00 14 */ sth r0, 0x14(r1)
lbl_8001C70C:
/* 8001C70C 38 00 00 FF */ li r0, 0xff
/* 8001C710 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8001C714 C0 22 82 34 */ lfs f1, lit_5809(r2)
/* 8001C718 48 24 B2 75 */ bl cM_rndFX__Ff
/* 8001C71C FC 00 08 1E */ fctiwz f0, f1
/* 8001C720 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 8001C724 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 8001C728 A8 01 00 12 */ lha r0, 0x12(r1)
/* 8001C72C 7C 00 1A 14 */ add r0, r0, r3
/* 8001C730 B0 01 00 12 */ sth r0, 0x12(r1)
/* 8001C734 38 00 00 00 */ li r0, 0
/* 8001C738 90 01 00 08 */ stw r0, 8(r1)
/* 8001C73C 38 60 02 18 */ li r3, 0x218
/* 8001C740 7F A4 EB 78 */ mr r4, r29
/* 8001C744 7E C5 B3 78 */ mr r5, r22
/* 8001C748 7E E6 BB 78 */ mr r6, r23
/* 8001C74C 38 E1 00 10 */ addi r7, r1, 0x10
/* 8001C750 7F 28 CB 78 */ mr r8, r25
/* 8001C754 39 20 FF FF */ li r9, -1
/* 8001C758 7F 8A E3 78 */ mr r10, r28
/* 8001C75C 4B FF D6 A9 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv
/* 8001C760 7C 75 1B 79 */ or. r21, r3, r3
/* 8001C764 41 82 00 4C */ beq lbl_8001C7B0
/* 8001C768 28 1A 00 00 */ cmplwi r26, 0
/* 8001C76C 41 82 00 20 */ beq lbl_8001C78C
/* 8001C770 C0 22 82 3C */ lfs f1, lit_5811(r2)
/* 8001C774 48 24 B2 19 */ bl cM_rndFX__Ff
/* 8001C778 C0 02 82 38 */ lfs f0, lit_5810(r2)
/* 8001C77C EC 20 08 2A */ fadds f1, f0, f1
/* 8001C780 C0 1A 00 00 */ lfs f0, 0(r26)
/* 8001C784 EC 00 00 72 */ fmuls f0, f0, f1
/* 8001C788 D0 15 05 2C */ stfs f0, 0x52c(r21)
lbl_8001C78C:
/* 8001C78C 28 1B 00 00 */ cmplwi r27, 0
/* 8001C790 41 82 00 20 */ beq lbl_8001C7B0
/* 8001C794 C0 22 82 40 */ lfs f1, lit_5812(r2)
/* 8001C798 48 24 B1 F5 */ bl cM_rndFX__Ff
/* 8001C79C C0 02 82 38 */ lfs f0, lit_5810(r2)
/* 8001C7A0 EC 20 08 2A */ fadds f1, f0, f1
/* 8001C7A4 C0 1B 00 00 */ lfs f0, 0(r27)
/* 8001C7A8 EC 00 00 72 */ fmuls f0, f0, f1
/* 8001C7AC D0 15 04 FC */ stfs f0, 0x4fc(r21)
lbl_8001C7B0:
/* 8001C7B0 3B DE 00 01 */ addi r30, r30, 1
/* 8001C7B4 2C 1E 00 02 */ cmpwi r30, 2
/* 8001C7B8 41 80 FF 18 */ blt lbl_8001C6D0
lbl_8001C7BC:
/* 8001C7BC 28 18 00 00 */ cmplwi r24, 0
/* 8001C7C0 41 82 00 20 */ beq lbl_8001C7E0
/* 8001C7C4 A8 18 00 00 */ lha r0, 0(r24)
/* 8001C7C8 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8001C7CC A8 18 00 02 */ lha r0, 2(r24)
/* 8001C7D0 B0 01 00 12 */ sth r0, 0x12(r1)
/* 8001C7D4 A8 18 00 04 */ lha r0, 4(r24)
/* 8001C7D8 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8001C7DC 48 00 00 20 */ b lbl_8001C7FC
lbl_8001C7E0:
/* 8001C7E0 A8 0D 8B E0 */ lha r0, Zero__5csXyz(r13)
/* 8001C7E4 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8001C7E8 38 6D 8B E0 */ la r3, Zero__5csXyz(r13) /* 80451160-_SDA_BASE_ */
/* 8001C7EC A8 03 00 02 */ lha r0, 2(r3)
/* 8001C7F0 B0 01 00 12 */ sth r0, 0x12(r1)
/* 8001C7F4 A8 03 00 04 */ lha r0, 4(r3)
/* 8001C7F8 B0 01 00 14 */ sth r0, 0x14(r1)
lbl_8001C7FC:
/* 8001C7FC 38 00 00 FF */ li r0, 0xff
/* 8001C800 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8001C804 38 00 00 00 */ li r0, 0
/* 8001C808 90 01 00 08 */ stw r0, 8(r1)
/* 8001C80C 38 60 02 18 */ li r3, 0x218
/* 8001C810 7F A4 EB 78 */ mr r4, r29
/* 8001C814 7E C5 B3 78 */ mr r5, r22
/* 8001C818 7E E6 BB 78 */ mr r6, r23
/* 8001C81C 38 E1 00 10 */ addi r7, r1, 0x10
/* 8001C820 7F 28 CB 78 */ mr r8, r25
/* 8001C824 39 20 FF FF */ li r9, -1
/* 8001C828 7F 8A E3 78 */ mr r10, r28
/* 8001C82C 4B FF D5 D9 */ bl fopAcM_fastCreate__FsUlPC4cXyziPC5csXyzPC4cXyzScPFPv_iPv
/* 8001C830 28 03 00 00 */ cmplwi r3, 0
/* 8001C834 41 82 00 24 */ beq lbl_8001C858
/* 8001C838 28 1A 00 00 */ cmplwi r26, 0
/* 8001C83C 41 82 00 0C */ beq lbl_8001C848
/* 8001C840 C0 1A 00 00 */ lfs f0, 0(r26)
/* 8001C844 D0 03 05 2C */ stfs f0, 0x52c(r3)
lbl_8001C848:
/* 8001C848 28 1B 00 00 */ cmplwi r27, 0
/* 8001C84C 41 82 00 0C */ beq lbl_8001C858
/* 8001C850 C0 1B 00 00 */ lfs f0, 0(r27)
/* 8001C854 D0 03 04 FC */ stfs f0, 0x4fc(r3)
lbl_8001C858:
/* 8001C858 39 61 00 50 */ addi r11, r1, 0x50
/* 8001C85C 48 34 59 AD */ bl _restgpr_21
/* 8001C860 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8001C864 7C 08 03 A6 */ mtlr r0
/* 8001C868 38 21 00 50 */ addi r1, r1, 0x50
/* 8001C86C 4E 80 00 20 */ blr
+7 -7
View File
@@ -2971,18 +2971,18 @@ public:
/* 80140888 */ void statusWindowExecute(cXyz const*, s16);
/* 80140984 */ void statusWindowDraw();
/* 80140AC8 */ void resetStatusWindow();
/* 8018280C */ void getChainGrabActor();
/* 80182814 */ void checkCokkoGlide() const;
/* 8018283C */ void checkCameraLargeDamage() const;
/* 80182870 */ void getHsSubChainTopPos() const;
/* 80182888 */ void checkCutHeadProc() const;
/* 8018289C */ void getRideActor();
/* 8018280C */ fopAc_ac_c* getChainGrabActor() { return field_0x2844.getActor(); }
/* 80182814 */ BOOL checkCokkoGlide() const { return mProcID == PROC_AUTO_JUMP && mProcVar2.field_0x300c != 0; }
/* 8018283C */ BOOL checkCameraLargeDamage() const { return mProcID == PROC_LARGE_DAMAGE || mProcID == PROC_LARGE_DAMAGE_WALL || mProcID == PROC_LARGE_DAMAGE_UP || mProcID == PROC_WOLF_LARGE_DAMAGE_UP; }
/* 80182870 */ const cXyz& getHsSubChainTopPos() const { return mIronBallBgChkPos; }
/* 80182888 */ BOOL checkCutHeadProc() const { return mProcID == PROC_CUT_HEAD; }
/* 8018289C */ fopAc_ac_c* getRideActor() { return mRideAcKeep.getActor(); }
virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
virtual MtxP getModelMtx();
virtual MtxP getInvMtx();
virtual cXyz* getShadowTalkAtnPos();
virtual cXyz* getShadowTalkAtnPos() { return &field_0x375c; }
virtual f32 getGroundY();
virtual MtxP getLeftItemMatrix();
virtual MtxP getRightItemMatrix();
+5 -2
View File
@@ -19,7 +19,7 @@ public:
/* 8015B3D8 */ void CreateInit();
/* 8015B7BC */ void setCullInfo();
/* 8015B7D4 */ int _daItem_create();
/* 8015BA9C */ void _daItem_execute();
/* 8015BA9C */ int _daItem_execute();
/* 8015BD84 */ int _daItem_draw();
/* 8015BDE8 */ int _daItem_delete();
/* 8015BE60 */ void procInitNormal();
@@ -109,8 +109,11 @@ public:
bool checkFlag(u8 flag) { return cLib_checkBit(mFlag, flag); }
void clrFlag(u8 flag) { cLib_offBit(mFlag, flag); }
#ifdef NONMATCHING
static procFunc mFuncPtr[9];
#else
static u8 mFuncPtr[120];
//static procFunc mFuncPtr[9];
#endif
static dCcD_SrcCyl m_cyl_src;
static s32 m_timer_max;
+21 -29
View File
@@ -540,25 +540,17 @@ public:
void cancelOriginalDemo();
void changeOriginalDemo();
cXyz getHeadTopPos() const;
/* 801829E0 */ void checkThrowDamage() const;
/* 80182A10 */ void checkGoronSideMove() const;
/* 80182AAC */ void getRightFootPosP();
/* 80182AB4 */ void getLeftFootPosP();
/* 80182ABC */ // u32 getMidnaActor();
/* 80182AC4 */ void checkCopyRodThrowAfter() const;
/* 80182AD8 */ void checkRide() const;
/* 80182B9C */ void getRightHandPos() const;
/* 8015DFD8 */ const cXyz getItemPos() const;
/* 8015DFF4 */ const cXyz& getLeftHandPos() const;
/* 801829E0 */ BOOL checkThrowDamage() const { return i_checkNoResetFlg1(FLG1_THROW_DAMAGE); }
/* 80182A10 */ BOOL checkGoronSideMove() const { return mSpecialMode == 0x2B; }
/* 80182AAC */ cXyz* getRightFootPosP() { return &mRightFootPos; }
/* 80182AB4 */ cXyz* getLeftFootPosP() { return &mLeftFootPos; }
/* 80182AC4 */ BOOL checkCopyRodThrowAfter() const { return i_checkNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); }
/* 80182AD8 */ BOOL checkRide() const { return checkHorseRide() || checkBoarRide() || checkSpinnerRide() || checkCanoeRide() || checkBoardRide(); }
/* 80182B9C */ const cXyz& getRightHandPos() const { return mRightHandPos; }
/* 8015DFD8 */ const cXyz* getItemPos() const { return &mItemPos; }
/* 8015DFF4 */ const cXyz* getLeftHandPos() const { return &mLeftHandPos; }
/* 800977B4 */ bool checkMidnaRide() const;
/* const cXyz* getItemPos() const {
return &mItemPos;
}
const cXyz* getLeftHandPos() const {
return &mLeftHandPos;
} */
virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
virtual MtxP getModelMtx();
@@ -574,9 +566,9 @@ public:
virtual MtxP getWolfBackbone2Matrix();
virtual MtxP getBottleMtx();
virtual BOOL checkPlayerGuard() const;
virtual u32 checkPlayerFly() const;
virtual BOOL checkFrontRoll() const;
virtual BOOL checkWolfDash() const;
virtual u32 checkPlayerFly() const { return 0; }
virtual BOOL checkFrontRoll() const { return false; }
virtual BOOL checkWolfDash() const { return false; }
virtual BOOL checkAutoJump() const;
virtual bool checkSideStep() const;
virtual bool checkWolfTriggerJump() const;
@@ -618,9 +610,9 @@ public:
virtual void setAnimeFrame(f32);
virtual bool checkWolfLock(fopAc_ac_c*) const;
virtual bool cancelWolfLock(fopAc_ac_c*);
virtual s32 getAtnActorID() const;
virtual s32 getAtnActorID() const { return -1; }
virtual s32 getItemID() const;
virtual s32 getGrabActorID() const;
virtual s32 getGrabActorID() const { return -1; }
virtual bool exchangeGrabActor(fopAc_ac_c*);
virtual bool setForceGrab(fopAc_ac_c*, int, int);
virtual void setForcePutPos(cXyz const&);
@@ -632,11 +624,11 @@ public:
virtual void setOutPower(f32, short, int);
virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*);
virtual void onMagneGrab(f32, f32);
virtual void onFrollCrashFlg(u8, int);
virtual void onFrollCrashFlg(u8, int) {}
virtual MtxP getModelJointMtx(u16);
virtual MtxP getHeadMtx();
virtual bool setHookshotCarryOffset(unsigned int, cXyz const*);
virtual BOOL checkCutJumpCancelTurn() const;
virtual BOOL checkCutJumpCancelTurn() const { return FALSE; }
virtual bool checkIronBallReturn() const;
virtual bool checkIronBallGroundStop() const;
virtual BOOL checkSingleBoarBattleSecondBowReady() const;
@@ -655,11 +647,11 @@ public:
virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeDead(u8, int);
virtual u32 checkHorseRide() const;
virtual u32 checkBoarRide() const;
virtual u32 checkCanoeRide() const;
virtual u32 checkBoardRide() const;
virtual u32 checkSpinnerRide() const;
virtual u32 checkHorseRide() const { return false; }
virtual u32 checkBoarRide() const { return 0; }
virtual u32 checkCanoeRide() const { return 0; }
virtual u32 checkBoardRide() const { return 0; }
virtual u32 checkSpinnerRide() const { return 0; }
virtual fopAc_ac_c* getSpinnerActor();
virtual BOOL checkHorseRideNotReady() const;
virtual bool checkArrowChargeEnd() const;
+15 -3
View File
@@ -72,9 +72,9 @@ public:
/* 8002F3B4 */ int load(char const**, JKRHeap*);
private:
/* 0x0 */ const char** field_0x0;
/* 0x4 */ request_of_phase_process_class field_0x4;
/* 0xC */ u8 field_0xc;
/* 0x0 */ const char** mResNameTable;
/* 0x4 */ request_of_phase_process_class mPhase;
/* 0xC */ u8 mLoadIndex;
};
enum PlayerPtr { LINK_PTR, HORSE_PTR };
@@ -1840,6 +1840,18 @@ inline void dComIfGs_offPlayerFieldLastStayFieldDataExistFlag() {
g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().offFieldDataExistFlag();
}
inline void dComIfGs_onPlayerFieldLastStayFieldDataExistFlag() {
g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().onFieldDataExistFlag();
}
inline cXyz& dComIfGs_getPlayerFieldLastStayPos() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().getPos();
}
inline u8 dComIfGs_getPlayerFieldLastStayRegionNo() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().getRegionNo();
}
void dComIfGp_setSelectItem(int index);
s32 dComIfGp_offHeapLockFlag(int flag);
void dComIfGp_createSubExpHeap2D();
+198 -191
View File
@@ -3,6 +3,13 @@
#include "dolphin/types.h"
class dEnemyItem_c {
public:
static void setItemData(u8* data) { mData = data; }
static u8* mData;
};
void execItemGet(u8 item_id);
void item_func_HEART();
@@ -194,199 +201,199 @@ void item_func_LV2_BOSS_KEY();
void item_func_KEY_OF_FILONE();
void item_func_noentry();
s32 item_getcheck_func_HEART();
s32 item_getcheck_func_GREEN_RUPEE();
s32 item_getcheck_func_BLUE_RUPEE();
s32 item_getcheck_func_YELLOW_RUPEE();
s32 item_getcheck_func_RED_RUPEE();
s32 item_getcheck_func_PURPLE_RUPEE();
s32 item_getcheck_func_ORANGE_RUPEE();
s32 item_getcheck_func_SILVER_RUPEE();
s32 item_getcheck_func_S_MAGIC();
s32 item_getcheck_func_L_MAGIC();
s32 item_getcheck_func_BOMB_5();
s32 item_getcheck_func_BOMB_10();
s32 item_getcheck_func_BOMB_20();
s32 item_getcheck_func_BOMB_30();
s32 item_getcheck_func_ARROW_10();
s32 item_getcheck_func_ARROW_20();
s32 item_getcheck_func_ARROW_30();
s32 item_getcheck_func_ARROW_1();
s32 item_getcheck_func_PACHINKO_SHOT();
s32 item_getcheck_func_WATER_BOMB_5();
s32 item_getcheck_func_WATER_BOMB_10();
s32 item_getcheck_func_WATER_BOMB_20();
s32 item_getcheck_func_WATER_BOMB_30();
s32 item_getcheck_func_BOMB_INSECT_5();
s32 item_getcheck_func_BOMB_INSECT_10();
s32 item_getcheck_func_BOMB_INSECT_20();
s32 item_getcheck_func_BOMB_INSECT_30();
s32 item_getcheck_func_RECOVER_FAILY();
s32 item_getcheck_func_TRIPLE_HEART();
s32 item_getcheck_func_SMALL_KEY();
s32 item_getcheck_func_KAKERA_HEART();
s32 item_getcheck_func_UTUWA_HEART();
s32 item_getcheck_func_MAP();
s32 item_getcheck_func_COMPUS();
s32 item_getcheck_func_DUNGEON_EXIT();
s32 item_getcheck_func_BOSS_KEY();
s32 item_getcheck_func_DUNGEON_BACK();
s32 item_getcheck_func_SWORD();
s32 item_getcheck_func_MASTER_SWORD();
s32 item_getcheck_func_WOOD_SHIELD();
s32 item_getcheck_func_SHIELD();
s32 item_getcheck_func_HYLIA_SHIELD();
s32 item_getcheck_func_TKS_LETTER();
s32 item_getcheck_func_WEAR_CASUAL();
s32 item_getcheck_func_WEAR_KOKIRI();
s32 item_getcheck_func_ARMOR();
s32 item_getcheck_func_WEAR_ZORA();
s32 item_getcheck_func_MAGIC_LV1();
s32 item_getcheck_func_DUNGEON_EXIT_2();
s32 item_getcheck_func_WALLET_LV1();
s32 item_getcheck_func_WALLET_LV2();
s32 item_getcheck_func_WALLET_LV3();
s32 item_getcheck_func_ZORAS_JEWEL();
s32 item_getcheck_func_HAWK_EYE();
s32 item_getcheck_func_WOOD_STICK();
s32 item_getcheck_func_BOOMERANG();
s32 item_getcheck_func_SPINNER();
s32 item_getcheck_func_IRONBALL();
s32 item_getcheck_func_BOW();
s32 item_getcheck_func_HOOKSHOT();
s32 item_getcheck_func_HVY_BOOTS();
s32 item_getcheck_func_COPY_ROD();
s32 item_getcheck_func_W_HOOKSHOT();
s32 item_getcheck_func_KANTERA();
s32 item_getcheck_func_LIGHT_SWORD();
s32 item_getcheck_func_FISHING_ROD_1();
s32 item_getcheck_func_PACHINKO();
s32 item_getcheck_func_COPY_ROD_2();
s32 item_getcheck_func_BOMB_BAG_LV2();
s32 item_getcheck_func_BOMB_BAG_LV1();
s32 item_getcheck_func_BOMB_IN_BAG();
s32 item_getcheck_func_LIGHT_ARROW();
s32 item_getcheck_func_ARROW_LV1();
s32 item_getcheck_func_ARROW_LV2();
s32 item_getcheck_func_ARROW_LV3();
s32 item_getcheck_func_LURE_ROD();
s32 item_getcheck_func_BOMB_ARROW();
s32 item_getcheck_func_HAWK_ARROW();
s32 item_getcheck_func_BEE_ROD();
s32 item_getcheck_func_JEWEL_ROD();
s32 item_getcheck_func_WORM_ROD();
s32 item_getcheck_func_JEWEL_BEE_ROD();
s32 item_getcheck_func_JEWEL_WORM_ROD();
s32 item_getcheck_func_EMPTY_BOTTLE();
s32 item_getcheck_func_RED_BOTTLE();
s32 item_getcheck_func_GREEN_BOTTLE();
s32 item_getcheck_func_BLUE_BOTTLE();
s32 item_getcheck_func_MILK_BOTTLE();
s32 item_getcheck_func_HALF_MILK_BOTTLE();
s32 item_getcheck_func_OIL_BOTTLE();
s32 item_getcheck_func_WATER_BOTTLE();
s32 item_getcheck_func_OIL_BOTTLE2();
s32 item_getcheck_func_RED_BOTTLE2();
s32 item_getcheck_func_UGLY_SOUP();
s32 item_getcheck_func_HOT_SPRING();
s32 item_getcheck_func_FAIRY_BOTTLE();
s32 item_getcheck_func_HOT_SPRING2();
s32 item_getcheck_func_OIL2();
s32 item_getcheck_func_OIL();
s32 item_getcheck_func_NORMAL_BOMB();
s32 item_getcheck_func_WATER_BOMB();
s32 item_getcheck_func_POKE_BOMB();
s32 item_getcheck_func_FAIRY_DROP();
s32 item_getcheck_func_WORM();
s32 item_getcheck_func_DROP_BOTTLE();
s32 item_getcheck_func_BEE_CHILD();
s32 item_getcheck_func_CHUCHU_RARE();
s32 item_getcheck_func_CHUCHU_RED();
s32 item_getcheck_func_CHUCHU_BLUE();
s32 item_getcheck_func_CHUCHU_GREEN();
s32 item_getcheck_func_CHUCHU_YELLOW();
s32 item_getcheck_func_CHUCHU_PURPLE();
s32 item_getcheck_func_LV1_SOUP();
s32 item_getcheck_func_LV2_SOUP();
s32 item_getcheck_func_LV3_SOUP();
s32 item_getcheck_func_LETTER();
s32 item_getcheck_func_BILL();
s32 item_getcheck_func_WOOD_STATUE();
s32 item_getcheck_func_IRIAS_PENDANT();
s32 item_getcheck_func_HORSE_FLUTE();
s32 item_getcheck_func_RAFRELS_MEMO();
s32 item_getcheck_func_ASHS_SCRIBBLING();
s32 item_getcheck_func_CHUCHU_YELLOW2();
s32 item_getcheck_func_OIL_BOTTLE3();
s32 item_getcheck_func_SHOP_BEE_CHILD();
s32 item_getcheck_func_CHUCHU_BLACK();
s32 item_getcheck_func_LIGHT_DROP();
s32 item_getcheck_func_DROP_CONTAINER();
s32 item_getcheck_func_DROP_CONTAINER02();
s32 item_getcheck_func_DROP_CONTAINER03();
s32 item_getcheck_func_FILLED_CONTAINER();
s32 item_getcheck_func_MIRROR_PIECE_2();
s32 item_getcheck_func_MIRROR_PIECE_3();
s32 item_getcheck_func_MIRROR_PIECE_4();
s32 item_getcheck_func_SMELL_YELIA_POUCH();
s32 item_getcheck_func_SMELL_PUMPKIN();
s32 item_getcheck_func_SMELL_POH();
s32 item_getcheck_func_SMELL_FISH();
s32 item_getcheck_func_SMELL_CHILDREN();
s32 item_getcheck_func_SMELL_MEDICINE();
s32 item_getcheck_func_M_BEETLE();
s32 item_getcheck_func_F_BEETLE();
s32 item_getcheck_func_M_BUTTERFLY();
s32 item_getcheck_func_F_BUTTERFLY();
s32 item_getcheck_func_M_STAG_BEETLE();
s32 item_getcheck_func_F_STAG_BEETLE();
s32 item_getcheck_func_M_GRASSHOPPER();
s32 item_getcheck_func_F_GRASSHOPPER();
s32 item_getcheck_func_M_NANAFUSHI();
s32 item_getcheck_func_F_NANAFUSHI();
s32 item_getcheck_func_M_DANGOMUSHI();
s32 item_getcheck_func_F_DANGOMUSHI();
s32 item_getcheck_func_M_MANTIS();
s32 item_getcheck_func_F_MANTIS();
s32 item_getcheck_func_M_LADYBUG();
s32 item_getcheck_func_F_LADYBUG();
s32 item_getcheck_func_M_SNAIL();
s32 item_getcheck_func_F_SNAIL();
s32 item_getcheck_func_M_DRAGONFLY();
s32 item_getcheck_func_F_DRAGONFLY();
s32 item_getcheck_func_M_ANT();
s32 item_getcheck_func_F_ANT();
s32 item_getcheck_func_M_MAYFLY();
s32 item_getcheck_func_F_MAYFLY();
s32 item_getcheck_func_POU_SPIRIT();
s32 item_getcheck_func_ANCIENT_DOCUMENT();
s32 item_getcheck_func_AIR_LETTER();
s32 item_getcheck_func_ANCIENT_DOCUMENT2();
s32 item_getcheck_func_LV7_DUNGEON_EXIT();
s32 item_getcheck_func_LINKS_SAVINGS();
s32 item_getcheck_func_SMALL_KEY2();
s32 item_getcheck_func_POU_FIRE1();
s32 item_getcheck_func_POU_FIRE2();
s32 item_getcheck_func_POU_FIRE3();
s32 item_getcheck_func_POU_FIRE4();
s32 item_getcheck_func_BOSSRIDER_KEY();
s32 item_getcheck_func_TOMATO_PUREE();
s32 item_getcheck_func_TASTE();
s32 item_getcheck_func_LV5_BOSS_KEY();
s32 item_getcheck_func_SURFBOARD();
s32 item_getcheck_func_KANTERA2();
s32 item_getcheck_func_L2_KEY_PIECES1();
s32 item_getcheck_func_L2_KEY_PIECES2();
s32 item_getcheck_func_L2_KEY_PIECES3();
s32 item_getcheck_func_KEY_OF_CARAVAN();
s32 item_getcheck_func_LV2_BOSS_KEY();
s32 item_getcheck_func_KEY_OF_FILONE();
s32 item_getcheck_func_noentry();
int item_getcheck_func_HEART();
int item_getcheck_func_GREEN_RUPEE();
int item_getcheck_func_BLUE_RUPEE();
int item_getcheck_func_YELLOW_RUPEE();
int item_getcheck_func_RED_RUPEE();
int item_getcheck_func_PURPLE_RUPEE();
int item_getcheck_func_ORANGE_RUPEE();
int item_getcheck_func_SILVER_RUPEE();
int item_getcheck_func_S_MAGIC();
int item_getcheck_func_L_MAGIC();
int item_getcheck_func_BOMB_5();
int item_getcheck_func_BOMB_10();
int item_getcheck_func_BOMB_20();
int item_getcheck_func_BOMB_30();
int item_getcheck_func_ARROW_10();
int item_getcheck_func_ARROW_20();
int item_getcheck_func_ARROW_30();
int item_getcheck_func_ARROW_1();
int item_getcheck_func_PACHINKO_SHOT();
int item_getcheck_func_WATER_BOMB_5();
int item_getcheck_func_WATER_BOMB_10();
int item_getcheck_func_WATER_BOMB_20();
int item_getcheck_func_WATER_BOMB_30();
int item_getcheck_func_BOMB_INSECT_5();
int item_getcheck_func_BOMB_INSECT_10();
int item_getcheck_func_BOMB_INSECT_20();
int item_getcheck_func_BOMB_INSECT_30();
int item_getcheck_func_RECOVER_FAILY();
int item_getcheck_func_TRIPLE_HEART();
int item_getcheck_func_SMALL_KEY();
int item_getcheck_func_KAKERA_HEART();
int item_getcheck_func_UTUWA_HEART();
int item_getcheck_func_MAP();
int item_getcheck_func_COMPUS();
int item_getcheck_func_DUNGEON_EXIT();
int item_getcheck_func_BOSS_KEY();
int item_getcheck_func_DUNGEON_BACK();
int item_getcheck_func_SWORD();
int item_getcheck_func_MASTER_SWORD();
int item_getcheck_func_WOOD_SHIELD();
int item_getcheck_func_SHIELD();
int item_getcheck_func_HYLIA_SHIELD();
int item_getcheck_func_TKS_LETTER();
int item_getcheck_func_WEAR_CASUAL();
int item_getcheck_func_WEAR_KOKIRI();
int item_getcheck_func_ARMOR();
int item_getcheck_func_WEAR_ZORA();
int item_getcheck_func_MAGIC_LV1();
int item_getcheck_func_DUNGEON_EXIT_2();
int item_getcheck_func_WALLET_LV1();
int item_getcheck_func_WALLET_LV2();
int item_getcheck_func_WALLET_LV3();
int item_getcheck_func_ZORAS_JEWEL();
int item_getcheck_func_HAWK_EYE();
int item_getcheck_func_WOOD_STICK();
int item_getcheck_func_BOOMERANG();
int item_getcheck_func_SPINNER();
int item_getcheck_func_IRONBALL();
int item_getcheck_func_BOW();
int item_getcheck_func_HOOKSHOT();
int item_getcheck_func_HVY_BOOTS();
int item_getcheck_func_COPY_ROD();
int item_getcheck_func_W_HOOKSHOT();
int item_getcheck_func_KANTERA();
int item_getcheck_func_LIGHT_SWORD();
int item_getcheck_func_FISHING_ROD_1();
int item_getcheck_func_PACHINKO();
int item_getcheck_func_COPY_ROD_2();
int item_getcheck_func_BOMB_BAG_LV2();
int item_getcheck_func_BOMB_BAG_LV1();
int item_getcheck_func_BOMB_IN_BAG();
int item_getcheck_func_LIGHT_ARROW();
int item_getcheck_func_ARROW_LV1();
int item_getcheck_func_ARROW_LV2();
int item_getcheck_func_ARROW_LV3();
int item_getcheck_func_LURE_ROD();
int item_getcheck_func_BOMB_ARROW();
int item_getcheck_func_HAWK_ARROW();
int item_getcheck_func_BEE_ROD();
int item_getcheck_func_JEWEL_ROD();
int item_getcheck_func_WORM_ROD();
int item_getcheck_func_JEWEL_BEE_ROD();
int item_getcheck_func_JEWEL_WORM_ROD();
int item_getcheck_func_EMPTY_BOTTLE();
int item_getcheck_func_RED_BOTTLE();
int item_getcheck_func_GREEN_BOTTLE();
int item_getcheck_func_BLUE_BOTTLE();
int item_getcheck_func_MILK_BOTTLE();
int item_getcheck_func_HALF_MILK_BOTTLE();
int item_getcheck_func_OIL_BOTTLE();
int item_getcheck_func_WATER_BOTTLE();
int item_getcheck_func_OIL_BOTTLE2();
int item_getcheck_func_RED_BOTTLE2();
int item_getcheck_func_UGLY_SOUP();
int item_getcheck_func_HOT_SPRING();
int item_getcheck_func_FAIRY_BOTTLE();
int item_getcheck_func_HOT_SPRING2();
int item_getcheck_func_OIL2();
int item_getcheck_func_OIL();
int item_getcheck_func_NORMAL_BOMB();
int item_getcheck_func_WATER_BOMB();
int item_getcheck_func_POKE_BOMB();
int item_getcheck_func_FAIRY_DROP();
int item_getcheck_func_WORM();
int item_getcheck_func_DROP_BOTTLE();
int item_getcheck_func_BEE_CHILD();
int item_getcheck_func_CHUCHU_RARE();
int item_getcheck_func_CHUCHU_RED();
int item_getcheck_func_CHUCHU_BLUE();
int item_getcheck_func_CHUCHU_GREEN();
int item_getcheck_func_CHUCHU_YELLOW();
int item_getcheck_func_CHUCHU_PURPLE();
int item_getcheck_func_LV1_SOUP();
int item_getcheck_func_LV2_SOUP();
int item_getcheck_func_LV3_SOUP();
int item_getcheck_func_LETTER();
int item_getcheck_func_BILL();
int item_getcheck_func_WOOD_STATUE();
int item_getcheck_func_IRIAS_PENDANT();
int item_getcheck_func_HORSE_FLUTE();
int item_getcheck_func_RAFRELS_MEMO();
int item_getcheck_func_ASHS_SCRIBBLING();
int item_getcheck_func_CHUCHU_YELLOW2();
int item_getcheck_func_OIL_BOTTLE3();
int item_getcheck_func_SHOP_BEE_CHILD();
int item_getcheck_func_CHUCHU_BLACK();
int item_getcheck_func_LIGHT_DROP();
int item_getcheck_func_DROP_CONTAINER();
int item_getcheck_func_DROP_CONTAINER02();
int item_getcheck_func_DROP_CONTAINER03();
int item_getcheck_func_FILLED_CONTAINER();
int item_getcheck_func_MIRROR_PIECE_2();
int item_getcheck_func_MIRROR_PIECE_3();
int item_getcheck_func_MIRROR_PIECE_4();
int item_getcheck_func_SMELL_YELIA_POUCH();
int item_getcheck_func_SMELL_PUMPKIN();
int item_getcheck_func_SMELL_POH();
int item_getcheck_func_SMELL_FISH();
int item_getcheck_func_SMELL_CHILDREN();
int item_getcheck_func_SMELL_MEDICINE();
int item_getcheck_func_M_BEETLE();
int item_getcheck_func_F_BEETLE();
int item_getcheck_func_M_BUTTERFLY();
int item_getcheck_func_F_BUTTERFLY();
int item_getcheck_func_M_STAG_BEETLE();
int item_getcheck_func_F_STAG_BEETLE();
int item_getcheck_func_M_GRASSHOPPER();
int item_getcheck_func_F_GRASSHOPPER();
int item_getcheck_func_M_NANAFUSHI();
int item_getcheck_func_F_NANAFUSHI();
int item_getcheck_func_M_DANGOMUSHI();
int item_getcheck_func_F_DANGOMUSHI();
int item_getcheck_func_M_MANTIS();
int item_getcheck_func_F_MANTIS();
int item_getcheck_func_M_LADYBUG();
int item_getcheck_func_F_LADYBUG();
int item_getcheck_func_M_SNAIL();
int item_getcheck_func_F_SNAIL();
int item_getcheck_func_M_DRAGONFLY();
int item_getcheck_func_F_DRAGONFLY();
int item_getcheck_func_M_ANT();
int item_getcheck_func_F_ANT();
int item_getcheck_func_M_MAYFLY();
int item_getcheck_func_F_MAYFLY();
int item_getcheck_func_POU_SPIRIT();
int item_getcheck_func_ANCIENT_DOCUMENT();
int item_getcheck_func_AIR_LETTER();
int item_getcheck_func_ANCIENT_DOCUMENT2();
int item_getcheck_func_LV7_DUNGEON_EXIT();
int item_getcheck_func_LINKS_SAVINGS();
int item_getcheck_func_SMALL_KEY2();
int item_getcheck_func_POU_FIRE1();
int item_getcheck_func_POU_FIRE2();
int item_getcheck_func_POU_FIRE3();
int item_getcheck_func_POU_FIRE4();
int item_getcheck_func_BOSSRIDER_KEY();
int item_getcheck_func_TOMATO_PUREE();
int item_getcheck_func_TASTE();
int item_getcheck_func_LV5_BOSS_KEY();
int item_getcheck_func_SURFBOARD();
int item_getcheck_func_KANTERA2();
int item_getcheck_func_L2_KEY_PIECES1();
int item_getcheck_func_L2_KEY_PIECES2();
int item_getcheck_func_L2_KEY_PIECES3();
int item_getcheck_func_KEY_OF_CARAVAN();
int item_getcheck_func_LV2_BOSS_KEY();
int item_getcheck_func_KEY_OF_FILONE();
int item_getcheck_func_noentry();
s32 checkItemGet(u8, int);
int checkItemGet(u8, int);
BOOL isHeart(u8 item_no);
s32 isBomb(u8);
s32 isArrow(u8);
int isBomb(u8);
int isArrow(u8);
int addBombCount(u8, u8);
BOOL isBottleItem(u8 item_no);
+1
View File
@@ -834,6 +834,7 @@ public:
static u32 getProcID() { return mProcID; }
static void setStatusProcID(int i_roomNo, unsigned int i_id) { mStatus[i_roomNo].mProcID = i_id; }
static int getStatusProcID(int i_roomNo) { return mStatus[i_roomNo].mProcID; }
static void setRegionNo(int i_roomNo, u8 i_regionNo) { mStatus[i_roomNo].mRegionNo = i_regionNo; }
static void setMemoryBlockID(int i_roomNo, int i_blockID) {
mStatus[i_roomNo].mMemBlockID = i_blockID;
-1
View File
@@ -11,7 +11,6 @@ class JPABaseEmitter;
class cBgS_PolyInfo;
class color_RGB_class;
void dKankyo_DayProc();
void dKy_set_nexttime(f32);
void dKy_itudemo_se();
BOOL dKy_darkworld_spot_check(char const* stageName, int roomNo);
+18
View File
@@ -0,0 +1,18 @@
#ifndef D_KANKYO_STATIC_H
#define D_KANKYO_STATIC_H
#include "d/com/d_com_inf_game.h"
/**
* This is a made-up file to help matching weak function generation.
*
* `dKankyo_DayProc` is supposed to be weakly generated at the end of TUs where it's called,
* but it'll generate in every TU where the header it's defined in is included. So only include this
* header in TUs where `dKankyo_DayProc` needs to be generated.
*/
static void dKankyo_DayProc() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
}
#endif /* D_KANKYO_STATIC_H */
+2
View File
@@ -217,4 +217,6 @@ private:
/* 0x313 */ u8 field_0x313;
};
const char* dMenuFmap_getStartStageName(void* param_0);
#endif /* D_MENU_D_MENU_FMAP_H */
+1 -1
View File
@@ -79,7 +79,7 @@ public:
/* 80259BFC */ void offReset();
static bool isPause() { return pauseTimer == 0; }
static void setPauseTimer(s8 time) { pauseTimer = time; }
static void setPauseTimer(s8 time) { nextPauseTimer = time; }
static s8 pauseTimer;
static s8 nextPauseTimer;
+3
View File
@@ -510,6 +510,9 @@ public:
bool isFieldDataExistFlag() const { return mFieldDataExistFlag; }
void offFieldDataExistFlag() { mFieldDataExistFlag = false; }
void onFieldDataExistFlag() { mFieldDataExistFlag = true; }
cXyz& getPos() { return mPos; }
u8 getRegionNo() const { return mRegionNo; }
private:
/* 0x00 */ cXyz mPos;
+2 -2
View File
@@ -22,7 +22,7 @@ struct ShopCam_action_c {
/* 801968B8 */ void setMasterCamCtrPos(cXyz*);
void setCamAction(ShopCamFunc func) {
field_0x0 = func;
mCamAction = func;
}
void setCameraSpeed(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
@@ -37,7 +37,7 @@ struct ShopCam_action_c {
setCameraSpeed(0.25f, 20.0f, 0.25f, 5.0f);
}
/* 0x00 */ ShopCamFunc field_0x0;
/* 0x00 */ ShopCamFunc mCamAction;
/* 0x0c */ u8 field_0xc[0x18 - 0xc];
/* 0x18 */ fopAc_ac_c* field_0x18;
/* 0x1c */ fopAc_ac_c* field_0x1c;
+9 -3
View File
@@ -82,6 +82,10 @@ public:
/* 0xA */ SEQ_FINISH,
};
enum {
ITEM_MAX_e = 7,
};
/* 80197338 */ void initShopSystem();
/* 801975C0 */ void onFlag(int);
/* 801975DC */ void offFlag(int);
@@ -127,10 +131,12 @@ public:
/* 8019AB84 */ bool checkRightTrigger(STControl*);
/* 8019ABA8 */ bool dpdMove();
void dummyWeakOrder(); // fake, used to fix weak function order in d_shop_system.cpp
/* 801974E4 */ virtual ~dShopSystem_c();
/* 8019ACF0 */ virtual bool getResName2(int);
/* 8019ACE0 */ virtual int beforeStartSeqAction(dMsgFlow_c*, int);
/* 8019ACE8 */ virtual int beforeSelectSeqAction(dMsgFlow_c*, int);
/* 8019ACF0 */ virtual bool getResName2(int) { return false; }
/* 8019ACE0 */ virtual int beforeStartSeqAction(dMsgFlow_c*, int) { return 1; }
/* 8019ACE8 */ virtual int beforeSelectSeqAction(dMsgFlow_c*, int) { return 1; }
bool chkSpMode() { return mSpMode == 1; }
void offSpMode() { mSpMode = 0; }
+1 -1
View File
@@ -72,7 +72,7 @@ public:
static u8 getBlureRate() { return mBlureRate; }
static MtxP getBlureMtx() { return mBlureMtx; }
static void offAutoForcus() { data_80450BE7 = 0; }
static bool isAutoForcus() { return data_80450BE7; }
static BOOL isAutoForcus() { return data_80450BE7; }
static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); }
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
static f32 getWidthF() { return 608.0f; }
+3
View File
@@ -1072,4 +1072,7 @@ O_FILES_SYM_ON := \
$(BUILD_DIR)/src/d/d_gameover.o \
$(BUILD_DIR)/src/d/menu/d_menu_save.o \
$(BUILD_DIR)/src/d/d_bright_check.o \
$(BUILD_DIR)/src/d/shop/d_shop_system.o \
$(BUILD_DIR)/src/d/kankyo/d_kankyo.o \
$(BUILD_DIR)/src/d/msg/d_msg_object.o \
+1
View File
@@ -19,6 +19,7 @@ M76_LIBS := \
M76_CFLAGS := \
-sdata 0 \
-sdata2 0 \
-sym on \
M76_LDFLAGS := \
-nodefaults \
+3 -2
View File
@@ -7,6 +7,7 @@
#include "JSystem/JKernel/JKRHeap.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/kankyo/d_kankyo_static.h"
/* 80529518-80529520 000078 0008+00 1/0 0/0 0/0 .text daKytag11_Draw__FP13kytag11_class
*/
@@ -118,12 +119,12 @@ static int daKytag11_Create(fopAc_ac_c* i_this) {
/* 80529854-8052988C 0003B4 0038+00 1/1 0/0 0/0 .text dKankyo_DayProc__Fv */
// this is a weak func that should be compiler generated, unsure how to make it do that for now
#pragma push
/* #pragma push
#pragma force_active on
extern "C" void dKankyo_DayProc__Fv() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
}
#pragma pop
#pragma pop */
/* ############################################################################################## */
/* 805298B4-805298D4 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag11_Method */
+25 -17
View File
@@ -291,11 +291,11 @@ void daItem_c::setBaseMtx_0() {
SECTION_SDATA2 static f32 lit_3923 = 0.5f;
/* 8015B1C8-8015B254 155B08 008C+00 1/1 0/0 0/0 .text setBaseMtx_1__8daItem_cFv */
// literals / load instructions flipped
// matches with literals
#ifdef NONMATCHING
void daItem_c::setBaseMtx_1() {
f32 max_y = mpModel->getModelData()->getJointNodePointer(0)->getMax()->y;
f32 y = max_y * 0.5f * mScale.y;
f32 y = (max_y / 2) * mScale.y;
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::transM(0.0f, y, 0.0f);
@@ -396,6 +396,15 @@ SECTION_DATA static void* lit_5193[10] = {
(void*)(((char*)initScale__8daItem_cFv) + 0x3C),
};
#ifdef NONMATCHING
procFunc daItem_c::mFuncPtr[9] = {
&daItem_c::procMainNormal, &daItem_c::procMainEnemyCarry,
&daItem_c::procMainSimpleGetDemo, &daItem_c::procWaitGetDemoEvent,
&daItem_c::procMainGetDemoEvent, &daItem_c::procMainBoomerangCarry,
&daItem_c::procMainSwOnWait, &daItem_c::procMainBoomHitWait,
&daItem_c::procMainForceGet,
};
#else
/* 803B9E2C-803B9E38 -00001 000C+00 0/1 0/0 0/0 .data @5240 */
#pragma push
#pragma force_active on
@@ -497,13 +506,7 @@ SECTION_DATA u8 daItem_c::mFuncPtr[120] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* SECTION_DATA procFunc daItem_c::mFuncPtr[9] = {
&daItem_c::procMainNormal, &daItem_c::procMainEnemyCarry, &daItem_c::procMainSimpleGetDemo,
&daItem_c::procWaitGetDemoEvent, &daItem_c::procMainGetDemoEvent,
&daItem_c::procMainBoomerangCarry, &daItem_c::procMainSwOnWait, &daItem_c::procMainBoomHitWait,
&daItem_c::procMainForceGet,
}; */
#endif
/* 803B9F10-803B9F54 017030 0044+00 1/1 0/0 0/0 .data m_cyl_src__8daItem_c */
dCcD_SrcCyl daItem_c::m_cyl_src = {
@@ -607,7 +610,8 @@ void daItem_c::CreateInit() {
if (m_itemNo == BOOMERANG) {
itemGetNextExecute();
} else if ((m_itemNo == ORANGE_RUPEE || m_itemNo == SILVER_RUPEE) &&
field_0x998.getEmitter() == NULL) {
field_0x998.getEmitter() == NULL)
{
dComIfGp_particle_set(0x0C14, &field_0x9ac, NULL, NULL, -1, &field_0x998, -1, NULL, NULL,
NULL);
}
@@ -770,7 +774,8 @@ int daItem_c::_daItem_create() {
if (phase_state == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckFieldItemCreateHeap,
dItem_data::getFieldHeapSize(m_itemNo))) {
dItem_data::getFieldHeapSize(m_itemNo)))
{
return cPhs_ERROR_e;
} else {
CreateInit();
@@ -811,14 +816,14 @@ SECTION_SDATA2 static f32 lit_4320 = 300.0f;
SECTION_SDATA2 static f32 lit_4321 = 18.0f;
/* 8015BA9C-8015BD84 1563DC 02E8+00 1/1 0/0 0/0 .text _daItem_execute__8daItem_cFv */
// eyepos.y issue / need sinit for mFuncPtr
// matches with sinit
#ifdef NONMATCHING
int daItem_c::_daItem_execute() {
field_0x950 = speed;
CountTimer();
mEyePos = current.pos;
mEyePos.y += (f32)dItem_data::getH(m_itemNo) * 0.5f;
mEyePos.y += (f32)dItem_data::getH(m_itemNo) / 2;
mAttentionInfo.mPosition = current.pos;
@@ -871,7 +876,7 @@ int daItem_c::_daItem_execute() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daItem_c::_daItem_execute() {
asm int daItem_c::_daItem_execute() {
nofralloc
#include "asm/a/obj/d_a_obj_item/_daItem_execute__8daItem_cFv.s"
}
@@ -1307,7 +1312,8 @@ void daItem_c::itemGetNextExecute() {
case SILVER_RUPEE:
case PACHINKO_SHOT:
if (daPy_getPlayerActorClass()->checkCanoeRide() ||
daPy_getPlayerActorClass()->checkHorseRide()) {
daPy_getPlayerActorClass()->checkHorseRide())
{
if (checkItemGet(m_itemNo, 1)) {
haveItem = true;
}
@@ -1696,7 +1702,8 @@ REGISTER_CTORS(0x8015DED0, __sinit_d_a_obj_item_cpp);
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm const cXyz daPy_py_c::getItemPos() const {
// asm const cXyz daPy_py_c::getItemPos() const {
extern "C" asm void getItemPos__9daPy_py_cCFv() {
nofralloc
#include "asm/a/obj/d_a_obj_item/getItemPos__9daPy_py_cCFv.s"
}
@@ -1706,7 +1713,8 @@ asm const cXyz daPy_py_c::getItemPos() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm const cXyz& daPy_py_c::getLeftHandPos() const {
// asm const cXyz& daPy_py_c::getLeftHandPos() const {
extern "C" asm void getLeftHandPos__9daPy_py_cCFv() {
nofralloc
#include "asm/a/obj/d_a_obj_item/getLeftHandPos__9daPy_py_cCFv.s"
}
+3 -2
View File
@@ -56,7 +56,7 @@ extern "C" void ChkLineDown__9dBgS_AcchFv();
extern "C" void __dt__12dBgS_AcchCirFv();
extern "C" static void func_80077484();
extern "C" static void func_8007748C();
extern "C" bool checkPlayerFly__9daPy_py_cCFv();
extern "C" u32 checkPlayerFly__9daPy_py_cCFv();
//
// External References:
@@ -823,6 +823,7 @@ static asm void func_8007748C() {
#pragma pop
/* 80077494-8007749C 071DD4 0008+00 0/0 1/0 0/0 .text checkPlayerFly__9daPy_py_cCFv */
u32 daPy_py_c::checkPlayerFly() const {
// u32 daPy_py_c::checkPlayerFly() const {
extern "C" u32 checkPlayerFly__9daPy_py_cCFv() {
return 0;
}
+162 -232
View File
@@ -1,47 +1,16 @@
//
// Generated By: dol2asm
// Translation Unit: d/cc/d_cc_uty
//
/**
* d_cc_uty.cpp
* Collider Utilties
*/
#include "d/cc/d_cc_uty.h"
#include "SSystem/SComponent/c_math.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/a/d_a_player.h"
#include "d/d_procname.h"
#include "d/s/d_s_play.h"
#include "dol2asm.h"
#include "f_op/f_op_actor_mng.h"
//
// Forward References:
//
extern "C" void pl_cut_LRC__Fi();
extern "C" void cc_pl_cut_bit_get__Fv();
extern "C" static void getMapInfo__FSc();
extern "C" static void getHitId__FP8cCcD_Obji();
extern "C" void def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c();
extern "C" static void at_power_get__FP11dCcU_AtInfo();
extern "C" void at_power_check__FP11dCcU_AtInfo();
extern "C" void cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo();
extern "C" bool checkCutJumpCancelTurn__9daPy_py_cCFv();
//
// External References:
//
extern "C" void getHitSeID__12dCcD_GObjInfFUci();
extern "C" void dCcD_GetGObjInf__FP8cCcD_Obj();
extern "C" void checkMasterSwordEquip__9daPy_py_cFv();
extern "C" void GetAc__8cCcD_ObjFv();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rndFX__Ff();
extern "C" void _savegpr_25();
extern "C" void _restgpr_25();
//
// Declarations:
//
bool daPy_py_c::checkWoodSwordEquip() {
return dComIfGs_getSelectEquipSword() == WOOD_STICK;
}
@@ -50,9 +19,8 @@ BOOL daPy_py_c::checkNowWolf() {
return dComIfGp_getLinkPlayer()->i_checkWolf();
}
/* ############################################################################################## */
/* 803AC418-803AC500 009538 00E8+00 1/1 0/0 0/0 .data plCutLRC */
SECTION_DATA static int plCutLRC[58] = {
static int plCutLRC[58] = {
0, //
0, // CUT_VERTICAL
1, // CUT_STAB
@@ -124,33 +92,35 @@ int pl_cut_LRC(int index) {
/* 800873D4-800874C4 081D14 00F0+00 1/1 0/0 14/14 .text cc_pl_cut_bit_get__Fv */
u16 cc_pl_cut_bit_get() {
daPy_py_c* link = (daPy_py_c*)dComIfGp_getPlayer(0);
daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0);
u16 bit = 0;
if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL) {
if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL) {
bit = 0x1;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_STAB) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_STAB) {
bit = 0x2;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_COMBO_STAB) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_COMBO_STAB) {
bit = 0x200;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_RIGHT) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_RIGHT) {
bit = 0x4;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_NM_LEFT) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_NM_LEFT) {
bit = 0x8;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_FINISH_LEFT) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_FINISH_LEFT) {
bit = 0x20;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_FINISH_VERTICAL) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_FINISH_VERTICAL) {
bit = 0x40;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT || link->getCutType() == 9 ||
link->getCutType() == 43 ||
link->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT ||
player_p->getCutType() == 9 || player_p->getCutType() == 43 ||
player_p->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT)
{
bit = 0x80;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT ||
link->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT ||
player_p->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT)
{
bit = 0x800;
} else if (link->getCutType() == daPy_py_c::CUT_TYPE_JUMP) {
} else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_JUMP) {
bit = 0x100;
} else if (link->getCutType() == 40 || link->getCutType() == 41) {
} else if (player_p->getCutType() == 40 || player_p->getCutType() == 41) {
bit = 0x400;
}
@@ -170,31 +140,31 @@ static int getMapInfo(s8 param_0) {
}
/* 800874F0-80087514 081E30 0024+00 2/2 0/0 0/0 .text getHitId__FP8cCcD_Obji */
static u32 getHitId(cCcD_Obj* p_obj, int useReboundSE) {
dCcD_GObjInf* dObj = static_cast<dCcD_GObjInf*>(p_obj);
return dObj->getHitSeID(dObj->GetAtSe(), useReboundSE);
static u32 getHitId(cCcD_Obj* i_ccObj, int i_useReboundSe) {
dCcD_GObjInf* dObj = static_cast<dCcD_GObjInf*>(i_ccObj);
return dObj->getHitSeID(dObj->GetAtSe(), i_useReboundSe);
}
/* 80087514-80087594 081E54 0080+00 0/0 0/0 47/47 .text
* def_se_set__FP10Z2CreatureP8cCcD_ObjUlP10fopAc_ac_c */
void def_se_set(Z2Creature* p_sound, cCcD_Obj* p_collider, u32 map_info, fopAc_ac_c* p_actor) {
if (p_sound != NULL) {
int useReboundSE;
if (p_actor != NULL && fopAcM_checkStatus(p_actor, 0x280000)) {
useReboundSE = false;
void def_se_set(Z2Creature* i_sound, cCcD_Obj* i_ccObj, u32 i_mapInfo, fopAc_ac_c* i_actor) {
if (i_sound != NULL) {
int useReboundSe;
if (i_actor != NULL && fopAcM_checkStatus(i_actor, 0x280000)) {
useReboundSe = false;
} else {
useReboundSE = true;
useReboundSe = true;
}
p_sound->startCollisionSE(getHitId(p_collider, useReboundSE), map_info);
i_sound->startCollisionSE(getHitId(i_ccObj, useReboundSe), i_mapInfo);
}
}
/* 80087594-80087A58 081ED4 04C4+00 1/1 0/0 0/0 .text at_power_get__FP11dCcU_AtInfo */
static u8 at_power_get(dCcU_AtInfo* p_info) {
u8 power = p_info->mpCollider->GetAtAtp();
static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
u8 power = i_AtInfo->mpCollider->GetAtAtp();
if (p_info->mPowerType == 0) {
if (p_info->mpCollider->ChkAtType(0x10000000)) {
if (i_AtInfo->mPowerType == 0) {
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -207,8 +177,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 4) {
power = 200;
}
} else if (p_info->mPowerType == 6) {
if (p_info->mpCollider->ChkAtType(0x10000000)) {
} else if (i_AtInfo->mPowerType == 6) {
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -219,10 +189,10 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 3) {
power *= 10;
}
} else if (p_info->mPowerType == 4) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
} else if (i_AtInfo->mPowerType == 4) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
power = 200;
} else if (p_info->mpCollider->ChkAtType(0x10000000)) {
} else if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -235,8 +205,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 4) {
power = 200;
}
} else if (p_info->mPowerType == 5) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
} else if (i_AtInfo->mPowerType == 5) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -245,8 +215,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 3) {
power = 4;
}
} else if (p_info->mPowerType == 2) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
} else if (i_AtInfo->mPowerType == 2) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
power = 200;
} else if (power == 1) {
power = 1;
@@ -259,14 +229,14 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 4) {
power = 200;
}
} else if (p_info->mPowerType == 1) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
} else if (i_AtInfo->mPowerType == 1) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
power = 200;
} else {
power *= 10;
}
} else if (p_info->mPowerType == 3) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
} else if (i_AtInfo->mPowerType == 3) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL) || power >= 4) {
power = 200;
} else if (power == 1) {
power = 10;
@@ -275,10 +245,10 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 3) {
power = 40;
}
} else if (p_info->mPowerType == 7) {
if (p_info->mpCollider->ChkAtType(0x420008)) {
} else if (i_AtInfo->mPowerType == 7) {
if (i_AtInfo->mpCollider->ChkAtType(0x420008)) {
power = 50;
} else if (p_info->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
power = 27;
} else if (power == 1) {
power = 1;
@@ -291,7 +261,7 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 4) {
power = 200;
}
} else if (p_info->mPowerType == 8) {
} else if (i_AtInfo->mPowerType == 8) {
if (power == 1) {
power = 3;
} else if (power == 2) {
@@ -301,11 +271,11 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 3) {
power *= 10;
}
} else if (p_info->mPowerType == 9 || p_info->mPowerType == 10) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
} else if (i_AtInfo->mPowerType == 9 || i_AtInfo->mPowerType == 10) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
power = 0;
}
if (p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
power = 19;
}
@@ -320,8 +290,8 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 4) {
power = 200;
}
} else if (p_info->mPowerType == 11) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
} else if (i_AtInfo->mPowerType == 11) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
power = 0;
}
@@ -334,7 +304,7 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
} else if (power >= 4) {
power = 100;
}
} else if (p_info->mPowerType == 12) {
} else if (i_AtInfo->mPowerType == 12) {
if (power == 1) {
power = 10;
} else if (power == 2) {
@@ -351,237 +321,197 @@ static u8 at_power_get(dCcU_AtInfo* p_info) {
/* 80087A58-80087C04 082398 01AC+00 1/1 0/0 38/38 .text at_power_check__FP11dCcU_AtInfo
*/
fopAc_ac_c* at_power_check(dCcU_AtInfo* p_info) {
if (p_info->mpCollider == NULL) {
fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
if (i_AtInfo->mpCollider == NULL) {
return NULL;
}
p_info->mpActor = p_info->mpCollider->GetAc();
p_info->mHitType = 12;
p_info->mAttackPower = 0;
p_info->mHitBit = 0;
i_AtInfo->mpActor = i_AtInfo->mpCollider->GetAc();
i_AtInfo->mHitType = 12;
i_AtInfo->mAttackPower = 0;
i_AtInfo->mHitBit = 0;
if (p_info->mpActor != NULL) {
p_info->mAttackPower = at_power_get(p_info);
if (i_AtInfo->mpActor != NULL) {
i_AtInfo->mAttackPower = at_power_get(i_AtInfo);
s16 ac_name = fopAcM_GetName(p_info->mpActor);
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
if (p_info->mpCollider->ChkAtType(0x8000) ||
p_info->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
p_info->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
if (i_AtInfo->mpCollider->ChkAtType(0x8000) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL))
{
i_AtInfo->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
} else {
p_info->mHitType = HIT_TYPE_LINK_NORMAL_ATTACK;
p_info->mHitBit = cc_pl_cut_bit_get();
i_AtInfo->mHitType = HIT_TYPE_LINK_NORMAL_ATTACK;
i_AtInfo->mHitBit = cc_pl_cut_bit_get();
}
} else if (ac_name == PROC_NBOMB) {
p_info->mHitType = HIT_TYPE_BOMB;
p_info->mHitBit = 0x10000000;
i_AtInfo->mHitType = HIT_TYPE_BOMB;
i_AtInfo->mHitBit = 0x10000000;
} else if (ac_name == PROC_BOOMERANG) {
p_info->mHitType = HIT_TYPE_BOOMERANG;
p_info->mHitBit = 0x40000000;
i_AtInfo->mHitType = HIT_TYPE_BOOMERANG;
i_AtInfo->mHitBit = 0x40000000;
} else if (ac_name == PROC_ARROW) {
p_info->mHitType = HIT_TYPE_ARROW;
p_info->mHitBit = 0x80000000;
i_AtInfo->mHitType = HIT_TYPE_ARROW;
i_AtInfo->mHitBit = 0x80000000;
}
}
p_info->mHitStatus = 0;
if (p_info->mpCollider->ChkAtType(0x40) || p_info->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
p_info->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
p_info->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK)) {
p_info->mHitType = HIT_TYPE_STUN;
} else if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
p_info->mHitBit = 0x1000;
i_AtInfo->mHitStatus = 0;
if (i_AtInfo->mpCollider->ChkAtType(0x40) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK))
{
i_AtInfo->mHitType = HIT_TYPE_STUN;
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
i_AtInfo->mHitBit = 0x1000;
} else {
s16 ac_name = fopAcM_GetName(p_info->mpActor);
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
if (dCcD_GetGObjInf(p_info->mpCollider)->GetAtSpl() == 1) {
p_info->mHitStatus = 1;
if (dCcD_GetGObjInf(i_AtInfo->mpCollider)->GetAtSpl() == 1) {
i_AtInfo->mHitStatus = 1;
}
} else if (p_info->mAttackPower >= 3) {
p_info->mHitStatus = 1;
} else if (i_AtInfo->mAttackPower >= 3) {
i_AtInfo->mHitStatus = 1;
}
}
return p_info->mpActor;
return i_AtInfo->mpActor;
}
/* ############################################################################################## */
/* 80452798-804527A0 000D98 0004+04 1/1 0/0 0/0 .sdata2 @4212 */
SECTION_SDATA2 static f32 lit_4212[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 804527A0-804527A8 000DA0 0008+00 1/1 0/0 0/0 .sdata2 @4213 */
SECTION_SDATA2 static f64 lit_4213 = 0.5;
/* 804527A8-804527B0 000DA8 0008+00 1/1 0/0 0/0 .sdata2 @4214 */
SECTION_SDATA2 static f64 lit_4214 = 3.0;
/* 804527B0-804527B8 000DB0 0008+00 1/1 0/0 0/0 .sdata2 @4215 */
SECTION_SDATA2 static u8 lit_4215[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 804527B8-804527BC 000DB8 0004+00 1/1 0/0 0/0 .sdata2 @4216 */
SECTION_SDATA2 static f32 lit_4216 = 100.0f;
/* 804527BC-804527C0 000DBC 0004+00 1/1 0/0 0/0 .sdata2 @4217 */
SECTION_SDATA2 static f32 lit_4217 = 4000.0f;
/* 804527C0-804527C8 000DC0 0004+04 1/1 0/0 0/0 .sdata2 @4218 */
SECTION_SDATA2 static f32 lit_4218[1 + 1 /* padding */] = {
10000.0f,
/* padding */
0.0f,
};
/* 80087C04-80088134 082544 0530+00 0/0 0/0 84/84 .text cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo
*/
// data padding issues (?)
#ifdef NONMATCHING
fopAc_ac_c* cc_at_check(fopAc_ac_c* p_enemy, dCcU_AtInfo* p_info) {
daPy_py_c* link = (daPy_py_c*)dComIfGp_getPlayer(0);
p_info->mpActor = at_power_check(p_info);
fopAc_ac_c* cc_at_check(fopAc_ac_c* i_enemy, dCcU_AtInfo* i_AtInfo) {
daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0);
i_AtInfo->mpActor = at_power_check(i_AtInfo);
f32 x_diff;
f32 z_diff;
if (p_info->mpActor != NULL) {
cXyz tmp = p_info->mpActor->speed;
if (i_AtInfo->mpActor != NULL) {
cXyz tmp = i_AtInfo->mpActor->speed;
tmp.y = 0.0f;
if (tmp.abs() > 100.0f) {
f32 x = p_info->mpActor->speed.x;
f32 z = p_info->mpActor->speed.z;
p_info->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
f32 x = i_AtInfo->mpActor->speed.x;
f32 z = i_AtInfo->mpActor->speed.z;
i_AtInfo->mHitDirection = cM_atan2s(-x, -z) + (s16)cM_rndFX(4000.0f);
} else {
if (fopAcM_GetName(p_info->mpActor) == PROC_BOOMERANG) {
x_diff = p_enemy->current.pos.x - link->current.pos.x;
z_diff = p_enemy->current.pos.z - link->current.pos.z;
p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff) + (s16)cM_rndFX(10000.0f);
if (fopAcM_GetName(i_AtInfo->mpActor) == PROC_BOOMERANG) {
x_diff = i_enemy->current.pos.x - player_p->current.pos.x;
z_diff = i_enemy->current.pos.z - player_p->current.pos.z;
i_AtInfo->mHitDirection = cM_atan2s(-x_diff, -z_diff) + (s16)cM_rndFX(10000.0f);
} else {
x_diff = p_enemy->current.pos.x - p_info->mpActor->current.pos.x;
z_diff = p_enemy->current.pos.z - p_info->mpActor->current.pos.z;
p_info->mHitDirection = cM_atan2s(-x_diff, -z_diff);
x_diff = i_enemy->current.pos.x - i_AtInfo->mpActor->current.pos.x;
z_diff = i_enemy->current.pos.z - i_AtInfo->mpActor->current.pos.z;
i_AtInfo->mHitDirection = cM_atan2s(-x_diff, -z_diff);
}
}
if (p_info->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK &&
link->getCutType() == daPy_py_c::CUT_TYPE_HEAD_JUMP) {
p_info->mHitDirection = link->shape_angle.y;
if (i_AtInfo->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK &&
player_p->getCutType() == daPy_py_c::CUT_TYPE_HEAD_JUMP)
{
i_AtInfo->mHitDirection = player_p->shape_angle.y;
}
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
fopAcM_checkStatus(p_enemy, 0x380000)) {
p_info->mAttackPower = 0;
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
fopAcM_checkStatus(i_enemy, 0x380000))
{
i_AtInfo->mAttackPower = 0;
}
if (static_cast<dCcD_GObjInf*>(p_info->mpCollider)->GetAtMtrl() == 4) {
if (fopAcM_GetName(p_enemy) == PROC_B_GND) {
p_info->mAttackPower = 0;
} else if (fopAcM_GetName(p_enemy) != PROC_B_ZANT) {
p_info->mAttackPower = 100;
if (static_cast<dCcD_GObjInf*>(i_AtInfo->mpCollider)->GetAtMtrl() == 4) {
if (fopAcM_GetName(i_enemy) == PROC_B_GND) {
i_AtInfo->mAttackPower = 0;
} else if (fopAcM_GetName(i_enemy) != PROC_B_ZANT) {
i_AtInfo->mAttackPower = 100;
}
}
if (p_info->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK) {
if (i_AtInfo->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK) {
if (!daPy_py_c::checkNowWolf()) {
if (link->checkMasterSwordEquip()) {
p_info->mAttackPower *= 2;
if (player_p->checkMasterSwordEquip()) {
i_AtInfo->mAttackPower *= 2;
}
if (daPy_py_c::checkWoodSwordEquip()) {
p_info->mAttackPower /= 2;
i_AtInfo->mAttackPower /= 2;
}
}
if (link->getSwordAtUpTime()) {
p_info->mAttackPower *= 2;
p_info->mHitStatus = 1;
if (player_p->getSwordAtUpTime()) {
i_AtInfo->mAttackPower *= 2;
i_AtInfo->mHitStatus = 1;
}
}
if (p_info->mAttackPower != 0) {
p_enemy->mHealth -= p_info->mAttackPower;
if (i_AtInfo->mAttackPower != 0) {
i_enemy->mHealth -= i_AtInfo->mAttackPower;
}
s8 pause_time = 0;
if (p_info->mAttackPower != 0 && p_enemy->mHealth <= 0) {
p_info->mHitStatus = 2;
p_enemy->mHealth = 0;
if (i_AtInfo->mAttackPower != 0 && i_enemy->mHealth <= 0) {
i_AtInfo->mHitStatus = 2;
i_enemy->mHealth = 0;
}
int uvar8;
if (p_info->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
!fopAcM_checkStatus(p_enemy, 0x280000)) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_HOOKSHOT) &&
!fopAcM_checkStatus(i_enemy, 0x280000))
{
uvar8 = 1;
} else {
uvar8 = 0;
}
if (p_info->mpSound != NULL) {
if (p_info->field_0x18 != 0) {
p_info->mpSound->startCollisionSE(getHitId(p_info->mpCollider, uvar8),
p_info->field_0x18);
if (i_AtInfo->mpSound != NULL) {
if (i_AtInfo->field_0x18 != 0) {
i_AtInfo->mpSound->startCollisionSE(getHitId(i_AtInfo->mpCollider, uvar8),
i_AtInfo->field_0x18);
} else {
p_info->mpSound->startCollisionSE(getHitId(p_info->mpCollider, uvar8),
getMapInfo(p_info->mHitStatus));
i_AtInfo->mpSound->startCollisionSE(getHitId(i_AtInfo->mpCollider, uvar8),
getMapInfo(i_AtInfo->mHitStatus));
}
}
if (p_info->mHitStatus != 0) {
if (i_AtInfo->mHitStatus != 0) {
pause_time = 5;
} else {
if (p_info->mAttackPower > 1) {
if (i_AtInfo->mAttackPower > 1) {
pause_time = 2;
}
}
if (p_info->mpCollider->ChkAtType(AT_TYPE_MIDNA_LOCK) ||
((daPy_py_c*)dComIfGp_getPlayer(0))->checkHorseRide()) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_MIDNA_LOCK) ||
((daPy_py_c*)dComIfGp_getPlayer(0))->checkHorseRide())
{
// actor is Bulblin or Horseback Ganon
if ((fopAcM_GetName(p_enemy) == PROC_E_RD &&
((s8*)p_enemy)[0x129a] != 0) ||
fopAcM_GetName(p_enemy) == PROC_B_GND) {
if ((fopAcM_GetName(i_enemy) == PROC_E_RD && ((s8*)i_enemy)[0x129a] != 0) ||
fopAcM_GetName(i_enemy) == PROC_B_GND)
{
pause_time = 3;
} else {
pause_time = 0;
}
}
s16 ac_name = fopAcM_GetName(p_enemy);
s16 ac_name = fopAcM_GetName(i_enemy);
// actor is Stalkin, Chu, Keese, Shadow Keese, Shadow Vermin, Baby Gohma, or Rat
if (ac_name == PROC_E_BS || ac_name == PROC_E_SM2 || ac_name == PROC_E_BA ||
ac_name == PROC_E_YK || ac_name == PROC_E_YG || ac_name == PROC_E_GM ||
ac_name == PROC_E_MS) {
ac_name == PROC_E_MS)
{
pause_time = 0;
}
if ((p_info->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK ||
p_info->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) &&
!link->checkCutJumpCancelTurn()) {
if (p_info->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) {
if ((i_AtInfo->mHitType == HIT_TYPE_LINK_NORMAL_ATTACK ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) &&
!player_p->checkCutJumpCancelTurn())
{
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ)) {
pause_time = 4;
}
dScnPly_c::setPauseTimer(pause_time);
}
}
return p_info->mpActor;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm fopAc_ac_c* cc_at_check(fopAc_ac_c* param_0, dCcU_AtInfo* param_1) {
nofralloc
#include "asm/d/cc/d_cc_uty/cc_at_check__FP10fopAc_ac_cP11dCcU_AtInfo.s"
}
#pragma pop
#endif
/* 80088134-8008813C 082A74 0008+00 0/0 1/0 0/0 .text checkCutJumpCancelTurn__9daPy_py_cCFv */
int daPy_py_c::checkCutJumpCancelTurn() const {
return 0;
return i_AtInfo->mpActor;
}
File diff suppressed because it is too large Load Diff
+26 -13
View File
@@ -3827,7 +3827,8 @@ static asm void func_80182804() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::getChainGrabActor() {
// asm void daAlink_c::getChainGrabActor() {
extern "C" asm void getChainGrabActor__9daAlink_cFv() {
nofralloc
#include "asm/d/d_camera/getChainGrabActor__9daAlink_cFv.s"
}
@@ -3837,7 +3838,8 @@ asm void daAlink_c::getChainGrabActor() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::checkCokkoGlide() const {
// asm void daAlink_c::checkCokkoGlide() const {
extern "C" asm void checkCokkoGlide__9daAlink_cCFv() {
nofralloc
#include "asm/d/d_camera/checkCokkoGlide__9daAlink_cCFv.s"
}
@@ -3847,7 +3849,8 @@ asm void daAlink_c::checkCokkoGlide() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::checkCameraLargeDamage() const {
// asm void daAlink_c::checkCameraLargeDamage() const {
extern "C" asm void checkCameraLargeDamage__9daAlink_cCFv() {
nofralloc
#include "asm/d/d_camera/checkCameraLargeDamage__9daAlink_cCFv.s"
}
@@ -3858,7 +3861,8 @@ asm void daAlink_c::checkCameraLargeDamage() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::getHsSubChainTopPos() const {
// asm void daAlink_c::getHsSubChainTopPos() const {
extern "C" asm void getHsSubChainTopPos__9daAlink_cCFv() {
nofralloc
#include "asm/d/d_camera/getHsSubChainTopPos__9daAlink_cCFv.s"
}
@@ -3879,7 +3883,8 @@ extern "C" asm void daAlink_getAlinkActorClass__Fv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::checkCutHeadProc() const {
// asm void daAlink_c::checkCutHeadProc() const {
extern "C" asm void checkCutHeadProc__9daAlink_cCFv() {
nofralloc
#include "asm/d/d_camera/checkCutHeadProc__9daAlink_cCFv.s"
}
@@ -3889,7 +3894,8 @@ asm void daAlink_c::checkCutHeadProc() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daAlink_c::getRideActor() {
// asm void daAlink_c::getRideActor() {
extern "C" asm void getRideActor__9daAlink_cFv() {
nofralloc
#include "asm/d/d_camera/getRideActor__9daAlink_cFv.s"
}
@@ -4007,7 +4013,8 @@ asm void dCamera_c::Bank() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkThrowDamage() const {
// asm void daPy_py_c::checkThrowDamage() const {
extern "C" asm void checkThrowDamage__9daPy_py_cCFv() {
nofralloc
#include "asm/d/d_camera/checkThrowDamage__9daPy_py_cCFv.s"
}
@@ -4055,7 +4062,8 @@ extern "C" asm void V__7cSGlobeCFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkGoronSideMove() const {
// asm void daPy_py_c::checkGoronSideMove() const {
extern "C" asm void checkGoronSideMove__9daPy_py_cCFv() {
nofralloc
#include "asm/d/d_camera/checkGoronSideMove__9daPy_py_cCFv.s"
}
@@ -4146,7 +4154,8 @@ extern "C" asm bool __gt__7cSAngleCFRC7cSAngle() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::getRightFootPosP() {
// asm void daPy_py_c::getRightFootPosP() {
extern "C" asm void getRightFootPosP__9daPy_py_cFv() {
nofralloc
#include "asm/d/d_camera/getRightFootPosP__9daPy_py_cFv.s"
}
@@ -4156,7 +4165,8 @@ asm void daPy_py_c::getRightFootPosP() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::getLeftFootPosP() {
// asm void daPy_py_c::getLeftFootPosP() {
extern "C" asm void getLeftFootPosP__9daPy_py_cFv() {
nofralloc
#include "asm/d/d_camera/getLeftFootPosP__9daPy_py_cFv.s"
}
@@ -4171,7 +4181,8 @@ extern "C" u32 getMidnaActor__9daPy_py_cFv() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkCopyRodThrowAfter() const {
// asm void daPy_py_c::checkCopyRodThrowAfter() const {
extern "C" asm void checkCopyRodThrowAfter__9daPy_py_cCFv() {
nofralloc
#include "asm/d/d_camera/checkCopyRodThrowAfter__9daPy_py_cCFv.s"
}
@@ -4186,7 +4197,8 @@ void dAttention_c::keepLock(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::checkRide() const {
// asm void daPy_py_c::checkRide() const {
extern "C" asm void checkRide__9daPy_py_cCFv() {
nofralloc
#include "asm/d/d_camera/checkRide__9daPy_py_cCFv.s"
}
@@ -4196,7 +4208,8 @@ asm void daPy_py_c::checkRide() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daPy_py_c::getRightHandPos() const {
// asm void daPy_py_c::getRightHandPos() const {
extern "C" asm void getRightHandPos__9daPy_py_cCFv() {
nofralloc
#include "asm/d/d_camera/getRightHandPos__9daPy_py_cCFv.s"
}
+2 -8
View File
@@ -280,7 +280,7 @@ extern "C" u8 mWipeDlst__12dDlst_list_c[72];
extern "C" u8 mWipeColor__12dDlst_list_c[4];
extern "C" f32 mWipeRate__12dDlst_list_c;
extern "C" f32 mWipeSpeed__12dDlst_list_c[1 + 1 /* padding */];
extern "C" extern u8 data_80450EE0[8];
extern "C" extern u8 data_80450EE0;
//
// External References:
@@ -2850,7 +2850,7 @@ SECTION_DEAD static char const* const pad_8037A1BC = "\0\0\0";
dDlst_2DT2_c dDlst_list_c::mWipeDlst;
/* 8045065C-80450660 0000DC 0004+00 1/1 0/0 0/0 .sdata mWipeColor__12dDlst_list_c */
SECTION_SDATA GXColor dDlst_list_c::mWipeColor = {0, 0, 0, 0};
GXColor dDlst_list_c::mWipeColor = {0, 0, 0, 0};
/* 80450ED0-80450ED4 0003D0 0004+00 2/2 1/1 0/0 .sbss None */
u8 dDlst_list_c::mWipe;
@@ -2993,9 +2993,3 @@ SECTION_DATA extern void* __vt__13dDlst_2DTri_c[3] = {
(void*)NULL,
(void*)draw__13dDlst_2DTri_cFv,
};
/* 80450EE0-80450EE8 0003E0 0008+00 0/0 1/1 0/0 .sbss None */
extern u8 data_80450EE0[8];
u8 data_80450EE0[8] ALIGN_DECL(8);
/* 8037A1B0-8037A1B0 006810 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+294 -755
View File
File diff suppressed because it is too large Load Diff
+3 -24
View File
@@ -1,26 +1,7 @@
//
// Generated By: dol2asm
// Translation Unit: d/d_item_data
//
#include "d/d_item_data.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" extern char const* const d_d_item_data__stringBase0;
extern "C" void* item_resource__10dItem_data[1530];
extern "C" void* field_item_res__10dItem_data[1020];
extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */];
//
// Declarations:
//
/* 803AC5A0-803ADD88 -00001 17E8+00 0/0 10/10 2/2 .data item_resource__10dItem_data */
SECTION_DATA dItem_itemResource dItem_data::item_resource[255] = {
dItem_itemResource dItem_data::item_resource[] = {
{"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000},
{"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x3C, 0x0000},
{"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x1, 0xFF, 0x002D, 0x3C, 0x0000},
@@ -279,7 +260,7 @@ SECTION_DATA dItem_itemResource dItem_data::item_resource[255] = {
};
/* 803ADD88-803AED78 -00001 0FF0+00 0/0 3/3 14/14 .data field_item_res__10dItem_data */
SECTION_DATA dItem_fieldItemResource dItem_data::field_item_res[255] = {
dItem_fieldItemResource dItem_data::field_item_res[] = {
{"Always", 0x0014, 0xFFFF, 0x0030, 0xFF, 0x1000},
{"Always", 0x0017, 0xFFFF, 0x0031, 0x0, 0x1000},
{"Always", 0x0017, 0xFFFF, 0x0031, 0x1, 0x1000},
@@ -538,7 +519,7 @@ SECTION_DATA dItem_fieldItemResource dItem_data::field_item_res[255] = {
};
/* 803AED78-803AF178 00BE98 03FC+04 0/0 9/9 9/9 .data item_info__10dItem_data */
SECTION_DATA dItem_itemInfo dItem_data::item_info[255] = {
dItem_itemInfo dItem_data::item_info[] = {
{15, 40, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4},
{20, 70, 30, 4}, {20, 70, 30, 4}, {20, 70, 30, 4}, {20, 40, 30, 4}, {20, 40, 30, 4},
{40, 60, 30, 0}, {40, 60, 30, 0}, {40, 60, 30, 0}, {40, 60, 30, 0}, {20, 80, 50, 0},
@@ -591,5 +572,3 @@ SECTION_DATA dItem_itemInfo dItem_data::item_info[255] = {
{0, 0, 0, 0}, {0, 0, 0, 4}, {0, 0, 0, 4}, {150, 50, 20, 21}, {0, 0, 0, 0},
{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0},
};
/* 8037AD68-8037AD68 0073C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-5
View File
@@ -8,11 +8,6 @@
#include "d/d_procname.h"
#include "d/kankyo/d_kankyo_wether.h"
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
void dKankyo_DayProc() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
}
static int dKyeff_Draw(dKyeff_c* i_this) {
dKyw_wether_draw();
return 1;
+222 -181
View File
@@ -4,15 +4,16 @@
//
#include "d/d_name.h"
#include "JSystem/J2DGraph/J2DAnmLoader.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "stdio.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_lib.h"
#include "dol2asm.h"
#include "f_op/f_op_msg_mng.h"
#include "global.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_controller_pad.h"
#include "stdio.h"
//
// Forward References:
@@ -201,129 +202,8 @@ SECTION_DATA static selProcFunc SelProc[9] = {
&dName_c::MojiSelectAnm3, &dName_c::MenuSelect, &dName_c::MenuSelectAnm,
&dName_c::MenuSelectAnm2, &dName_c::MenuSelectAnm3, &dName_c::Wait};
/* 803C2750-803C2788 -00001 0034+04 1/1 0/0 0/0 .data @4121 */
SECTION_DATA static void* lit_4121[13 + 1 /* padding */] = {
(void*)(((char*)mojiChange__7dName_cFUc) + 0x8C),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x130),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x170),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x1B0),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x2D4),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x31C),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x358),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x8C),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x31C),
(void*)(((char*)mojiChange__7dName_cFUc) + 0x1B0),
/* padding */
NULL,
};
/* 803C2788-803C27C8 01F8A8 0040+00 0/1 0/0 0/0 .data l_cur0TagName$4610 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_cur0TagName[8] = {
's_00', 's_01', 's_02', 's_03', 's_04', 's_05', 's_06', 's_07',
};
#pragma pop
/* 803C27C8-803C2808 01F8E8 0040+00 0/1 0/0 0/0 .data l_cur1TagName$4611 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_cur1TagName[8] = {
's_0r', 's_01r', 's_02r', 's_03r', 's_04r', 's_05r', 's_06r', 's_07r',
};
#pragma pop
/* 803C2808-803C2828 01F928 0020+00 0/1 0/0 0/0 .data l_menu_icon_tag$4617 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_menu_icon_tag[4] = {
'p_ABC_n',
'p_abc_n',
'j_eigo_n',
'p_end_n',
};
#pragma pop
/* 803C2828-803C28A0 01F948 0078+00 0/1 0/0 0/0 .data l_menu_tag$4618 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_menu_tag[15] = {
'p_ABC_0', 'p_ABC_1', 'p_ABC_2', 'p_abc_0', 'p_abc_1', 'p_abc_2',
'm_eigo_0', 'm_eigo_1', 'm_eigo_2', 'p_end_0', 'p_end_1', 'p_end_2',
};
#pragma pop
/* 803C28A0-803C28B0 01F9C0 0010+00 0/1 0/0 0/0 .data l_menu_msg$4619 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 l_menu_msg[4] = {
0x38B,
0x38C,
0x388,
0x38E,
};
#pragma pop
/* 803C28B0-803C2AB8 01F9D0 0208+00 0/1 0/0 0/0 .data l_tagName$4635 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_tagName[65] = {
'm_00_0', 'm_00_1', 'm_00_2', 'm_00_3', 'm_00_4', 'm_01_0', 'm_01_1', 'm_01_2', 'm_01_3',
'm_01_4', 'm_02_0', 'm_02_1', 'm_02_2', 'm_02_3', 'm_02_4', 'm03_0', 'm03_1', 'm03_2',
'm03_3', 'm03_4', 'm_04_0', 'm_04_1', 'm_04_2', 'm_04_3', 'm_04_4', 'm_05_0', 'm_05_1',
'm_05_2', 'm_05_3', 'm_05_4', 'm_06_0', 'm_06_1', 'm_06_2', 'm_06_3', 'm_06_4', 'm_07_0',
'm_07_1', 'm_07_2', 'm_07_3', 'm_07_4', 'm_08_0', 'm_08_1', 'm_08_2', 'm_08_3', 'm_08_4',
'm_09_0', 'm_09_1', 'm_09_2', 'm_09_3', 'm_09_4', 'm_10_0', 'm_10_1', 'm_10_2', 'm_10_3',
'm_10_4', 'm_11_0', 'm_11_1', 'm_11_2', 'm_11_3', 'm_11_4', 'm12_0', 'm12_1', 'm12_2',
'm12_3', 'm12_4',
};
#pragma pop
/* 803C2AB8-803C2AF8 01FBD8 0040+00 0/1 0/0 0/0 .data l_nameTagName$4642 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_nameTagName[8] = {
'name_00', 'name_01', 'name_02', 'name_03', 'name_04', 'name_05', 'name_06', 'name_07',
};
#pragma pop
/* 803C2AF8-803C2B38 01FC18 0040+00 0/1 0/0 0/0 .data l_nameCurTagName$4643 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_nameCurTagName[8] = {
's__n_00', 's__n_01', 's__n_02', 's__n_03', 's__n_04', 's__n_05', 's__n_06', 's__n_07',
};
#pragma pop
/* 803C2B38-803C2B64 01FC58 0010+1C 3/3 0/0 0/0 .data __vt__14dDlst_NameIN_c */
SECTION_DATA extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__14dDlst_NameIN_cFv,
(void*)__dt__14dDlst_NameIN_cFv,
/* padding */
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
/* 803C2B64-803C2B7C 01FC84 000C+0C 2/2 0/0 0/0 .data __vt__7dName_c */
SECTION_DATA extern void* __vt__7dName_c[3 + 3 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__7dName_cFv,
/* padding */
NULL,
NULL,
NULL,
};
extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */];
extern void* __vt__7dName_c[3 + 3 /* padding */];
/* 8024E3E0-8024E408 248D20 0028+00 1/1 0/0 0/0 .text __ct__9dNm_HIO_cFv */
dNm_HIO_c::dNm_HIO_c() {
@@ -340,6 +220,7 @@ dName_c::dName_c(J2DPane* pane) {
}
/* 8024E468-8024E62C 248DA8 01C4+00 1/0 0/0 0/0 .text __dt__7dName_cFv */
// matches with vtable data
#ifdef NONMATCHING
dName_c::~dName_c() {
delete stick;
@@ -502,7 +383,8 @@ void dName_c::_move() {
}
} else if (mDoCPd_c::getTrigStart(PAD_1)) {
if ((mSelProc != PROC_MENU_SELECT || mSelMenu != MENU_END) &&
(mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT)) {
(mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT))
{
mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, 0, 0, 0);
mPrevSelMenu = mSelMenu;
mSelMenu = MENU_END;
@@ -577,9 +459,7 @@ void dName_c::cursorAnm() {
}
/* 8024ED48-8024ED4C 249688 0004+00 1/0 0/0 0/0 .text Wait__7dName_cFv */
void dName_c::Wait() {
/* empty function */
}
void dName_c::Wait() {}
/* 8024ED4C-8024F034 24968C 02E8+00 1/0 0/0 0/0 .text MojiSelect__7dName_cFv */
// matches with literals
@@ -672,7 +552,8 @@ void dName_c::MojiSelectAnmInit() {
/* 8024F0E0-8024F164 249A20 0084+00 1/0 0/0 0/0 .text MojiSelectAnm__7dName_cFv */
void dName_c::MojiSelectAnm() {
if (mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnime(mCursorDelay, g_nmHIO.mSelCharScale,
lit_3820, 0) == 1) {
lit_3820, 0) == 1)
{
selectCursorMove();
mSelProc = PROC_MOJI_SELECT;
field_0x2ad = mSelProc;
@@ -682,7 +563,8 @@ void dName_c::MojiSelectAnm() {
/* 8024F164-8024F1E8 249AA4 0084+00 1/0 0/0 0/0 .text MojiSelectAnm2__7dName_cFv */
void dName_c::MojiSelectAnm2() {
if (mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnime(mCursorDelay, g_nmHIO.mSelCharScale,
lit_3820, 0) == 1) {
lit_3820, 0) == 1)
{
menuCursorMove2();
mSelProc = PROC_MENU_SELECT;
field_0x2ad = mSelProc;
@@ -690,29 +572,28 @@ void dName_c::MojiSelectAnm2() {
}
/* 8024F1E8-8024F1EC 249B28 0004+00 1/0 0/0 0/0 .text MojiSelectAnm3__7dName_cFv */
void dName_c::MojiSelectAnm3() {
/* empty function */
}
void dName_c::MojiSelectAnm3() {}
/* 8024F1EC-8024F55C 249B2C 0370+00 1/0 0/0 0/0 .text mojiChange__7dName_cFUc */
// weird pattern
#ifdef NONMATCHING
int dName_c::mojiChange(u8 idx) {
if (mChrInfo[idx].field_0x3 == 0 || mChrInfo[idx].mMojiSet == MOJI_EIGO ||
mChrInfo[idx].mCharacter == ' ') {
mChrInfo[idx].mCharacter == ' ')
{
return 0;
}
if (mChrInfo[idx].mColumn == 4 || mChrInfo[idx].mColumn == 6 || mChrInfo[idx].mColumn == 8 ||
mChrInfo[idx].mColumn == 9) {
mChrInfo[idx].mColumn == 9)
{
return 0;
}
switch (mChrInfo[idx].mColumn) {
case 0:
case 10:
case 10: {
if (mChrInfo[idx].mCharacter == '' || mChrInfo[idx].mCharacter == '' ||
mChrInfo[idx].mCharacter == '') {
mChrInfo[idx].mCharacter == '')
{
mChrInfo[idx].mCharacter++;
if (mChrInfo[idx].mCharacter == '') {
@@ -723,7 +604,7 @@ int dName_c::mojiChange(u8 idx) {
mChrInfo[idx].mCharacter = '';
}
} else {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
if ((mChrInfo[idx].mCharacter - c) % 2) {
--mChrInfo[idx].mCharacter;
@@ -732,52 +613,82 @@ int dName_c::mojiChange(u8 idx) {
}
}
break;
case 1:
}
case 1: {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
if ((mChrInfo[idx].mCharacter - c) % 2 == 0) {
mChrInfo[idx].mCharacter += 1;
} else {
mChrInfo[idx].mCharacter -= 1;
}
break;
case 2:
int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
((mChrInfo[idx].mCharacter - c) % 2) ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--;
break;
case 3:
case 12:
if (mChrInfo[idx].mCharacter != 0x815b) {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '': '';
c = ((mChrInfo[idx].mCharacter - c) % 2);
if (c < mChrInfo[idx].mCharacter) {
int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
(mChrInfo[idx].mCharacter - c2) % 2 ? mChrInfo[idx].mCharacter++ :
mChrInfo[idx].mCharacter--;
int c2 = c + 1;
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
break;
}
case 2: {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
c = ((mChrInfo[idx].mCharacter - c) % 2);
int c2 = c + 1;
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
break;
}
case 3:
case 12: {
if (mChrInfo[idx].mCharacter != (u32)0x815b) {
if (mChrInfo[idx].mCharacter <= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '')) {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
c = ((mChrInfo[idx].mCharacter - c) % 2);
int c2 = c + 1;
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
} else if (mChrInfo[idx].mCharacter <=
(mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '') &&
mChrInfo[idx].mCharacter >=
(mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : ''))
{
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
c = ((mChrInfo[idx].mCharacter - c) % 2);
int c2 = c + 1;
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
} else {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
int c2 = (mChrInfo[idx].mCharacter - c) % 3;
int ivar2 = c2 + 1;
if (ivar2 > 2) {
ivar2 = 0;
}
mChrInfo[idx].mCharacter = ivar2 + (mChrInfo[idx].mCharacter - c2);
}
}
break;
case 5:
}
case 5: {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
int c2 = (mChrInfo[idx].mCharacter - c) % 3;
int ivar2 = c2 + 1;
if (ivar2 > 2) {
ivar2 = 0;
}
mChrInfo[idx].mCharacter = ivar2 + (mChrInfo[idx].mCharacter - c2);
break;
}
case 7:
case 11:
case 11: {
int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? '' : '';
c = ((mChrInfo[idx].mCharacter - c) % 2);
int c2 = c + 1;
mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1);
break;
}
}
setNameText();
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int dName_c::mojiChange(u8 param_0) {
nofralloc
#include "asm/d/d_name/mojiChange__7dName_cFUc.s"
}
#pragma pop
#endif
/* 8024F55C-8024F59C 249E9C 0040+00 1/1 0/0 0/0 .text selectMojiSet__7dName_cFv */
void dName_c::selectMojiSet() {
@@ -1011,9 +922,7 @@ void dName_c::MenuSelectAnm2() {
}
/* 8024FFA0-8024FFA4 24A8E0 0004+00 1/0 0/0 0/0 .text MenuSelectAnm3__7dName_cFv */
void dName_c::MenuSelectAnm3() {
/* empty function */
}
void dName_c::MenuSelectAnm3() {}
/* 8024FFA4-80250074 24A8E4 00D0+00 1/1 0/0 0/0 .text menuAbtnSelect__7dName_cFv */
// matches with literals
@@ -1221,20 +1130,130 @@ SECTION_SDATA2 static f32 lit_4725[1 + 1 /* padding */] = {
0.0f,
};
/* 803C2788-803C27C8 01F8A8 0040+00 0/1 0/0 0/0 .data l_cur0TagName$4610 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_cur0TagName[8] = {
's_00', 's_01', 's_02', 's_03', 's_04', 's_05', 's_06', 's_07',
};
#pragma pop
/* 803C27C8-803C2808 01F8E8 0040+00 0/1 0/0 0/0 .data l_cur1TagName$4611 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_cur1TagName[8] = {
's_0r', 's_01r', 's_02r', 's_03r', 's_04r', 's_05r', 's_06r', 's_07r',
};
#pragma pop
/* 803C2808-803C2828 01F928 0020+00 0/1 0/0 0/0 .data l_menu_icon_tag$4617 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_menu_icon_tag[4] = {
'p_ABC_n',
'p_abc_n',
'j_eigo_n',
'p_end_n',
};
#pragma pop
/* 803C2828-803C28A0 01F948 0078+00 0/1 0/0 0/0 .data l_menu_tag$4618 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_menu_tag[5][3] = {
'p_ABC_0', 'p_ABC_1', 'p_ABC_2', 'p_abc_0', 'p_abc_1', 'p_abc_2',
'm_eigo_0', 'm_eigo_1', 'm_eigo_2', 'p_end_0', 'p_end_1', 'p_end_2',
};
#pragma pop
/* 803C28A0-803C28B0 01F9C0 0010+00 0/1 0/0 0/0 .data l_menu_msg$4619 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 l_menu_msg[4] = {
0x38B,
0x38C,
0x388,
0x38E,
};
#pragma pop
/* 803C28B0-803C2AB8 01F9D0 0208+00 0/1 0/0 0/0 .data l_tagName$4635 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_tagName[65] = {
'm_00_0', 'm_00_1', 'm_00_2', 'm_00_3', 'm_00_4', 'm_01_0', 'm_01_1', 'm_01_2', 'm_01_3',
'm_01_4', 'm_02_0', 'm_02_1', 'm_02_2', 'm_02_3', 'm_02_4', 'm03_0', 'm03_1', 'm03_2',
'm03_3', 'm03_4', 'm_04_0', 'm_04_1', 'm_04_2', 'm_04_3', 'm_04_4', 'm_05_0', 'm_05_1',
'm_05_2', 'm_05_3', 'm_05_4', 'm_06_0', 'm_06_1', 'm_06_2', 'm_06_3', 'm_06_4', 'm_07_0',
'm_07_1', 'm_07_2', 'm_07_3', 'm_07_4', 'm_08_0', 'm_08_1', 'm_08_2', 'm_08_3', 'm_08_4',
'm_09_0', 'm_09_1', 'm_09_2', 'm_09_3', 'm_09_4', 'm_10_0', 'm_10_1', 'm_10_2', 'm_10_3',
'm_10_4', 'm_11_0', 'm_11_1', 'm_11_2', 'm_11_3', 'm_11_4', 'm12_0', 'm12_1', 'm12_2',
'm12_3', 'm12_4',
};
#pragma pop
/* 803C2AB8-803C2AF8 01FBD8 0040+00 0/1 0/0 0/0 .data l_nameTagName$4642 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_nameTagName[8] = {
'name_00', 'name_01', 'name_02', 'name_03', 'name_04', 'name_05', 'name_06', 'name_07',
};
#pragma pop
/* 803C2AF8-803C2B38 01FC18 0040+00 0/1 0/0 0/0 .data l_nameCurTagName$4643 */
#pragma push
#pragma force_active on
SECTION_DATA static u64 l_nameCurTagName[8] = {
's__n_00', 's__n_01', 's__n_02', 's__n_03', 's__n_04', 's__n_05', 's__n_06', 's__n_07',
};
#pragma pop
/* 803C2B38-803C2B64 01FC58 0010+1C 3/3 0/0 0/0 .data __vt__14dDlst_NameIN_c */
SECTION_DATA extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)draw__14dDlst_NameIN_cFv,
(void*)__dt__14dDlst_NameIN_cFv,
/* padding */
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
/* 803C2B64-803C2B7C 01FC84 000C+0C 2/2 0/0 0/0 .data __vt__7dName_c */
SECTION_DATA extern void* __vt__7dName_c[3 + 3 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__7dName_cFv,
/* padding */
NULL,
NULL,
NULL,
};
/* 802505CC-80250CEC 24AF0C 0720+00 1/1 0/0 0/0 .text screenSet__7dName_cFv */
// matches with literals
#ifdef NONMATCHING
void dName_c::screenSet() {
nameIn.NameInScr = new J2DScreen();
JUT_ASSERT(nameIn.NameInScr != 0);
archive = dComIfGp_getNameResArchive();
nameIn.NameInScr->setPriority("zelda_player_name.blo", 0x100000, archive);
dPaneClass_showNullPane(nameIn.NameInScr);
nameIn.field_0x10 = nameIn.NameInScr->search('name_n');
void* bpk = JKRFileLoader::getGlbResource("zelda_player_name.bpk", archive);
void* bpk = JKRGetNameResource("zelda_player_name.bpk", archive);
JUT_ASSERT(bpk != 0);
mCursorColorKey = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(bpk);
mCursorColorKey->searchUpdateMaterialID(nameIn.NameInScr);
void* btk = JKRFileLoader::getGlbResource("zelda_player_name.btk", archive);
void* btk = JKRGetNameResource("zelda_player_name.btk", archive);
JUT_ASSERT(btk != 0);
mCursorTexKey = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(btk);
mCursorTexKey->searchUpdateMaterialID(nameIn.NameInScr);
@@ -1271,7 +1290,7 @@ void dName_c::screenSet() {
fopMsgM_messageGet(buf, l_menu_msg[i]);
for (int j = 0; j < 3; j++) {
menuPane[j] = (J2DTextBox*)nameIn.NameInScr->search(l_menu_tag[j]);
menuPane[j] = (J2DTextBox*)nameIn.NameInScr->search(l_menu_tag[i][j]);
if (j == 0) {
mMenuText[i] = menuPane[j];
@@ -1287,7 +1306,7 @@ void dName_c::screenSet() {
mMenuIcon[1]->hide();
mMojiPane = nameIn.NameInScr->search('moji_n');
for (int i = 0; i < 65; i++) {
for (u32 i = 0; i < 65; i++) {
mMojiIcon[i] = new CPaneMgr(nameIn.NameInScr, l_tagName[i], 2, NULL);
((J2DTextBox*)mMojiIcon[i]->getPanePtr())->setFont(nameIn.font);
((J2DTextBox*)mMojiIcon[i]->getPanePtr())->setString(72, "");
@@ -1308,7 +1327,9 @@ void dName_c::screenSet() {
mCharRow = 0;
mSelIcon = new dSelect_cursor_c(0, 1.0f, NULL);
JUT_ASSERT(mSelIcon != 0);
mSelIcon->setParam(0.82f, 0.77f, 0.05f, 0.4f, 0.4f);
Vec pos = mMojiIcon[mCharRow + mCharColumn * 5]->getGlobalVtxCenter(false, 0);
mSelIcon->setPos(pos.x, pos.y, mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr(), true);
mSelIcon->setAlphaRate(0.0f);
@@ -1367,14 +1388,16 @@ void dName_c::NameStrSet() {
for (int j = 0; j < 65; j++) {
if (mChrInfo[i].mCharacter == *(u16*)l_mojiHira[j] ||
mChrInfo[i].mCharacter == *(u16*)l_mojiHira2[j] ||
mChrInfo[i].mCharacter == *(u16*)l_mojiHira3[j]) {
mChrInfo[i].mCharacter == *(u16*)l_mojiHira3[j])
{
mChrInfo[i].mColumn = j / 5;
mChrInfo[i].mRow = j % 5;
mChrInfo[i].mMojiSet = MOJI_HIRA;
break;
} else if (mChrInfo[i].mCharacter == *(u16*)l_mojikata[j] ||
mChrInfo[i].mCharacter == *(u16*)l_mojikata2[j] ||
mChrInfo[i].mCharacter == *(u16*)l_mojikata3[j]) {
mChrInfo[i].mCharacter == *(u16*)l_mojikata3[j])
{
mChrInfo[i].mColumn = j / 5;
mChrInfo[i].mRow = j % 5;
mChrInfo[i].mMojiSet = MOJI_KATA;
@@ -1427,6 +1450,23 @@ s32 dName_c::getMenuPosIdx(u8 selPos) {
}
/* 80251094-8025115C 24B9D4 00C8+00 1/0 0/0 0/0 .text draw__14dDlst_NameIN_cFv */
// matches with literals / vtable data
#ifdef NONMATCHING
void dDlst_NameIN_c::draw() {
if (field_0xc != NULL) {
Mtx m;
MtxP global_mtx = (MtxP)&field_0xc->getGlbMtx()[0][0]; // fake match?
MTXScale(m, (field_0xc->getWidth() / field_0x10->getWidth()),
(field_0xc->getHeight() / field_0x10->getHeight()), 1.0f);
MTXConcat(global_mtx, m, global_mtx);
field_0x10->setMtx(global_mtx);
}
J2DGrafContext* graf_ctx = dComIfGp_getCurrentGrafPort();
NameInScr->draw(0.0f, 0.0f, graf_ctx);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1436,6 +1476,7 @@ extern "C" asm void draw__14dDlst_NameIN_cFv() {
#include "asm/d/d_name/draw__14dDlst_NameIN_cFv.s"
}
#pragma pop
#endif
/* 8025115C-802511A4 24BA9C 0048+00 1/0 0/0 0/0 .text __dt__14dDlst_NameIN_cFv */
dDlst_NameIN_c::~dDlst_NameIN_c() {}
+1
View File
@@ -15,6 +15,7 @@
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_graphic.h"
#include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h"
#include "d/kankyo/d_kankyo_static.h"
#include "string.h"
//
+3 -1
View File
@@ -217,7 +217,7 @@ extern "C" extern dScnKy_env_light_c g_env_light;
extern "C" extern Z2EnvSeMgr g_mEnvSeMgr;
extern "C" f32 Zero__4cXyz[3];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 data_80450EE0[8];
extern "C" extern u8 data_80450EE0;
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
static void dKyw_pntlight_set(WIND_INFLUENCE* pntwind);
@@ -1321,6 +1321,8 @@ SECTION_SDATA2 static f32 lit_5192 = 24575.0f;
/* 80452160-80452164 000760 0004+00 1/1 0/0 0/0 .sdata2 @5193 */
SECTION_SDATA2 static f32 lit_5193 = 0.00139999995008111f;
u8 data_80450EE0;
/* 80059728-80059E38 054068 0710+00 1/1 0/0 0/0 .text wether_move_vrkumo__Fv */
// gameinfo load issue, cmath instruction order / reg alloc
#ifdef NONMATCHING
+1 -1
View File
@@ -1206,7 +1206,7 @@ static u8 virtual_stage[8];
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenuFmap_getStartStageName(void* param_0) {
asm const char* dMenuFmap_getStartStageName(void* param_0) {
nofralloc
#include "asm/d/menu/d_menu_fmap/dMenuFmap_getStartStageName__FPv.s"
}
+58 -79
View File
@@ -1,46 +1,22 @@
//
// Translation Unit: d/s/d_s_logo
//
/**
* d_s_logo.cpp
* Game Boot Logo's Display
*/
#include "d/s/d_s_logo.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "c/c_dylink.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_item.h"
#include "d/d_procname.h"
#include "d/map/d_map_path_dmap.h"
#include "dolphin/vi.h"
#include "m_Do/m_Do_Reset.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
#include "m_Do/m_Do_machine.h"
#include "dolphin/os/OSRtc.h"
#include "dolphin/vi.h"
//
// Types:
//
class dEnemyItem_c {
public:
static void setItemData(u8* data) { mData = data; }
static u8* mData;
};
//
// Forward References:
//
//
// External References:
//
//
// Declarations:
//
/* ############################################################################################## */
/* 803C2E38-803C2E44 01FF58 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -75,7 +51,6 @@ void dScnLogo_c::preLoad_dyl_remove() {
delete[] m_preLoad_dylPhase;
}
/* ############################################################################################## */
/* 80399FE0-80399FFC 026640 001C+00 1/1 0/0 0/0 .rodata l_preLoad_dylKeyTbl */
static s16 const l_preLoad_dylKeyTbl[14] = {
0x02DC, 0x02CE, 0x0221, 0x00F2, 0x021B, 0x02F4, 0x0139,
@@ -84,13 +59,13 @@ static s16 const l_preLoad_dylKeyTbl[14] = {
/* 8025611C-80256198 250A5C 007C+00 2/2 0/0 0/0 .text preLoad_dyl__10dScnLogo_cFv */
bool dScnLogo_c::preLoad_dyl() {
bool ret = 1;
bool ret = true;
for (int i = 0; i < 14; i++) {
int link = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]);
int phase_state = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]);
if (link != 4) {
ret = 0;
if (phase_state != cPhs_COMPLEATE_e) {
ret = false;
}
}
@@ -100,7 +75,7 @@ bool dScnLogo_c::preLoad_dyl() {
/* 80256198-80256210 250AD8 0078+00 1/1 0/0 0/0 .text checkProgSelect__10dScnLogo_cFv */
void dScnLogo_c::checkProgSelect() {
if (mDoRst::getProgSeqFlag() == 0 && VIGetDTVStatus() != 0) {
if (isProgressiveMode() || mDoCPd_c::getHoldB(0)) {
if (isProgressiveMode() || mDoCPd_c::getHoldB(PAD_1)) {
field_0x20a = 1;
field_0x209 = 0;
}
@@ -138,7 +113,7 @@ void dScnLogo_c::progSelDraw() {
if (field_0x20b == 0) {
if (field_0x209 == 0) {
if (mDoCPd_c::getHoldRight(0) || mDoCPd_c::getStickX(0) > 0.5f) {
if (mDoCPd_c::getHoldRight(PAD_1) || mDoCPd_c::getStickX(PAD_1) > 0.5f) {
mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0);
field_0x209 = 1;
field_0x20e = 30;
@@ -146,7 +121,7 @@ void dScnLogo_c::progSelDraw() {
field_0x212 = 0;
}
} else {
if (mDoCPd_c::getHoldLeft(0) || mDoCPd_c::getStickX(0) < -0.5f) {
if (mDoCPd_c::getHoldLeft(PAD_1) || mDoCPd_c::getStickX(PAD_1) < -0.5f) {
mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0);
field_0x209 = 0;
field_0x20e = 30;
@@ -326,10 +301,11 @@ void dScnLogo_c::warningDispDraw() {
field_0x210--;
}
if (mTimer == 0 ||
mDoCPd_c::getTrig(PAD_1) & (CButton::A | CButton::B | CButton::X | CButton::Y | CButton::START |
CButton::Z | CButton::L | CButton::R | CButton::DPAD_LEFT |
CButton::DPAD_RIGHT | CButton::DPAD_DOWN | CButton::DPAD_UP)) {
if (mTimer == 0 || mDoCPd_c::getTrig(PAD_1) &
(CButton::A | CButton::B | CButton::X | CButton::Y | CButton::START |
CButton::Z | CButton::L | CButton::R | CButton::DPAD_LEFT |
CButton::DPAD_RIGHT | CButton::DPAD_DOWN | CButton::DPAD_UP))
{
mExecCommand = EXEC_WARNING_OUT;
mTimer = 30;
mDoGph_gInf_c::startFadeOut(30);
@@ -394,10 +370,9 @@ void dScnLogo_c::dolbyOutDraw() {
/* 80257058-80257070 251998 0018+00 1/0 0/0 0/0 .text dolbyOutDraw2__10dScnLogo_cFv */
void dScnLogo_c::dolbyOutDraw2() {
if (mTimer != 0) {
return;
if (mTimer == 0) {
mExecCommand = EXEC_DVD_WAIT;
}
mExecCommand = EXEC_DVD_WAIT;
}
/* 80257070-80257284 2519B0 0214+00 1/0 0/0 0/0 .text dvdWaitDraw__10dScnLogo_cFv */
@@ -412,7 +387,8 @@ void dScnLogo_c::dvdWaitDraw() {
mpMsgResCommand[3]->sync() && mpMsgResCommand[4]->sync() &&
mpMsgResCommand[5]->sync() && mpMsgResCommand[6]->sync() && mpFontResCommand->sync() &&
mpMain2DCommand->sync() && mpRubyResCommand->sync() && mParticleCommand->sync() &&
mItemTableCommand->sync() && mEnemyItemCommand->sync() && preLoad_dyl()) {
mItemTableCommand->sync() && mEnemyItemCommand->sync() && preLoad_dyl())
{
mDoRst::setLogoScnFlag(0);
mDoRst::setProgChgFlag(0);
mExecCommand = EXEC_SCENE_CHANGE;
@@ -515,53 +491,56 @@ dScnLogo_c::~dScnLogo_c() {
}
/* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */
static int phase_0(dScnLogo_c* logo) {
static int phase_0(dScnLogo_c* i_this) {
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
dComIfGp_particle_create();
logo->buffer = mDoExt_getGameHeap()->alloc(0x340000, -0x10);
logo->field_0x1d0 = JKRExpHeap::create(logo->buffer, 0x340000, NULL, false);
logo->field_0x1d4 = JKRExpHeap::create(0x130000, logo->field_0x1d0, false);
i_this->buffer = mDoExt_getGameHeap()->alloc(0x340000, -0x10);
i_this->field_0x1d0 = JKRExpHeap::create(i_this->buffer, 0x340000, NULL, false);
i_this->field_0x1d4 = JKRExpHeap::create(0x130000, i_this->field_0x1d0, false);
return 2;
return cPhs_NEXT_e;
}
/* 802579BC-80257A70 2522FC 00B4+00 1/0 0/0 0/0 .text phase_1__FP10dScnLogo_c */
static int phase_1(dScnLogo_c* logo) {
static int phase_1(dScnLogo_c* i_this) {
if (!cDyl_InitAsyncIsDone()) {
return 0;
return cPhs_INIT_e;
}
if (!mDoAud_zelAudio_c::isInitFlag() ||
Z2AudioMgr::getInterface()->checkFirstWaves()) {
return 0;
if (!mDoAud_zelAudio_c::isInitFlag() || Z2AudioMgr::getInterface()->checkFirstWaves()) {
return cPhs_INIT_e;
}
dComIfG_setObjectRes("LogoUs", (u8)0, logo->field_0x1d0);
dComIfG_setObjectRes("LogoUs", (u8)0, i_this->field_0x1d0);
mDoRst::setLogoScnFlag(1);
archiveHeap->dump_sort();
return 2;
return cPhs_NEXT_e;
}
/* 80257A70-80257AB4 2523B0 0044+00 1/0 0/0 0/0 .text phase_2__FP10dScnLogo_c */
static int phase_2(dScnLogo_c* param_0) {
return dComIfG_syncAllObjectRes() ? 0 : 4;
static int phase_2(dScnLogo_c* i_this) {
if (dComIfG_syncAllObjectRes()) {
return cPhs_INIT_e;
} else {
return cPhs_COMPLEATE_e;
}
}
/* 80257AB4-80257AE0 2523F4 002C+00 1/1 0/0 0/0 .text
* resLoad__FP30request_of_phase_process_classP10dScnLogo_c */
static int resLoad(request_of_phase_process_class* i_phase, dScnLogo_c* param_1) {
static int resLoad(request_of_phase_process_class* i_phase, dScnLogo_c* i_this) {
static int (*l_method[3])(void*) = {(int (*)(void*))phase_0, (int (*)(void*))phase_1,
(int (*)(void*))phase_2};
return dComLbG_PhaseHandler(i_phase, l_method, param_1);
return dComLbG_PhaseHandler(i_phase, l_method, i_this);
}
/* 80257AE0-80257C64 252420 0184+00 1/1 0/0 0/0 .text create__10dScnLogo_cFv */
int dScnLogo_c::create() {
int stat = resLoad(&field_0x1c4, this);
if (stat != 4) {
return stat;
int phase_state = resLoad(&field_0x1c4, this);
if (phase_state != cPhs_COMPLEATE_e) {
return phase_state;
}
mpHeap = mDoExt_setCurrentHeap(field_0x1d4);
@@ -596,7 +575,7 @@ int dScnLogo_c::create() {
mDoRst::offReset();
mDoRst::offResetPrepare();
return stat;
return phase_state;
}
/* 80257C64-80257FEC 2525A4 0388+00 1/1 0/0 0/0 .text logoInitGC__10dScnLogo_cFv */
@@ -693,33 +672,33 @@ void dScnLogo_c::dvdDataLoad() {
}
/* 80258420-80258444 252D60 0024+00 1/0 0/0 0/0 .text dScnLogo_Create__FP11scene_class */
static int dScnLogo_Create(scene_class* scn) {
return (new (scn) dScnLogo_c())->create();
static int dScnLogo_Create(scene_class* i_this) {
return (new (i_this) dScnLogo_c())->create();
}
/* 80258444-80258484 252D84 0040+00 1/0 0/0 0/0 .text dScnLogo_Execute__FP10dScnLogo_c */
static int dScnLogo_Execute(dScnLogo_c* logo) {
static int dScnLogo_Execute(dScnLogo_c* i_this) {
if (mDoRst::isReset()) {
fopScnM_ChangeReq(logo, 9, 0, 5);
fopScnM_ChangeReq(i_this, PROC_LOGO_SCENE, 0, 5);
}
return 1;
}
/* 80258484-802584A8 252DC4 0024+00 1/0 0/0 0/0 .text dScnLogo_Draw__FP10dScnLogo_c */
static int dScnLogo_Draw(dScnLogo_c* logo) {
logo->draw();
static int dScnLogo_Draw(dScnLogo_c* i_this) {
i_this->draw();
return 1;
}
/* 802584A8-802584D0 252DE8 0028+00 1/0 0/0 0/0 .text dScnLogo_Delete__FP10dScnLogo_c */
static int dScnLogo_Delete(dScnLogo_c* logo) {
logo->~dScnLogo_c();
static int dScnLogo_Delete(dScnLogo_c* i_this) {
i_this->~dScnLogo_c();
return 1;
}
/* 802584D0-802584D8 252E10 0008+00 1/0 0/0 0/0 .text dScnLogo_IsDelete__FP10dScnLogo_c
*/
static int dScnLogo_IsDelete(dScnLogo_c* logo) {
static int dScnLogo_IsDelete(dScnLogo_c* i_this) {
return 1;
}
@@ -751,8 +730,10 @@ dLog_HIO_c::~dLog_HIO_c() {}
/* 803C2FD0-803C2FE4 -00001 0014+00 1/0 0/0 0/0 .data l_dScnLogo_Method */
static dScnLogo_Method l_dScnLogo_Method[5] = {
(dScnLogo_Method) dScnLogo_Create, dScnLogo_Delete,
dScnLogo_Execute, dScnLogo_IsDelete,
(dScnLogo_Method)dScnLogo_Create,
dScnLogo_Delete,
dScnLogo_Execute,
dScnLogo_IsDelete,
dScnLogo_Draw,
};
@@ -770,5 +751,3 @@ extern scene_process_profile_definition g_profile_LOGO_SCENE = {
(process_method_class*)&l_dScnLogo_Method,
NULL,
};
/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+1 -3
View File
@@ -1,6 +1,6 @@
/**
* d_s_menu.cpp
* dolzel2 - Scene Menu
* Debug Level Select Menu
*/
#include "d/s/d_s_menu.h"
@@ -8,8 +8,6 @@
#include "f_pc/f_pc_leaf.h"
#include "f_op/f_op_scene.h"
/* ############################################################################################## */
/* 803C3018-803C3040 -00001 0028+00 0/0 0/0 1/0 .data g_profile_MENU_SCENE */
extern scene_process_profile_definition g_profile_MENU_SCENE = {
fpcLy_ROOT_e, // mLayerID
+24 -115
View File
@@ -1,6 +1,7 @@
//
// Translation Unit: d/s/d_s_name
//
/**
* d_s_name.cpp
* File Select Scene
*/
#include "d/s/d_s_name.h"
#include "JSystem/JKernel/JKRExpHeap.h"
@@ -15,95 +16,6 @@
#include "m_Do/m_Do_mtx.h"
#include "f_op/f_op_overlap_mng.h"
//
// Forward References:
//
extern "C" void __ct__9dSn_HIO_cFv();
extern "C" static void phase_1__FPc();
extern "C" static void phase_2__FPc();
extern "C" static void resLoad__FP30request_of_phase_process_classPc();
extern "C" void create__10dScnName_cFv();
extern "C" void setView__10dScnName_cFv();
extern "C" void execute__10dScnName_cFv();
extern "C" void draw__10dScnName_cFv();
extern "C" void __dt__10dScnName_cFv();
extern "C" void FileSelectOpen__10dScnName_cFv();
extern "C" void FileSelectMain__10dScnName_cFv();
extern "C" void FileSelectMainNormal__10dScnName_cFv();
extern "C" void FileSelectClose__10dScnName_cFv();
extern "C" void brightCheckOpen__10dScnName_cFv();
extern "C" void brightCheck__10dScnName_cFv();
extern "C" void changeGameScene__10dScnName_cFv();
extern "C" static void dScnName_Draw__FP10dScnName_c();
extern "C" static void dScnName_Execute__FP10dScnName_c();
extern "C" static void dScnName_IsDelete__FP10dScnName_c();
extern "C" static void dScnName_Delete__FP10dScnName_c();
extern "C" static void dScnName_Create__FP11scene_class();
extern "C" void __dt__17dScnName_camera_cFv();
extern "C" void __dt__9dSn_HIO_cFv();
extern "C" void __sinit_d_s_name_cpp();
extern "C" extern char const* const d_s_d_s_name__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_lookAt__FPA4_fPC3VecPC3Vecs();
extern "C" void mDoMtx_concatProjView__FPA4_CfPA4_CfPA4_f();
extern "C" void mDoExt_getGameHeap__Fv();
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
extern "C" void fopOvlpM_IsPeek__Fv();
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
extern "C" void dComIfG_resetToOpening__FP11scene_class();
extern "C" void dComIfGp_setNextStage__FPCcsScSc();
extern "C" void dComIfGs_gameStart__Fv();
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
extern "C" void offFirstBit__21dSv_player_get_item_cFUc();
extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap();
extern "C" void syncRes__14dRes_control_cFPCcP11dRes_info_ci();
extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci();
extern "C" void getResInfo__14dRes_control_cFPCcP11dRes_info_ci();
extern "C" void cleanup__13dPa_control_cFv();
extern "C" void setViewPort__14dDlst_window_cFffffff();
extern "C" void setScissor__14dDlst_window_cFffff();
extern "C" void Run__12dVibration_cFv();
extern "C" void Init__12dVibration_cFv();
extern "C" void __ct__14dFile_select_cFP10JKRArchive();
extern "C" void _create__14dFile_select_cFv();
extern "C" void _move__14dFile_select_cFv();
extern "C" void _draw__14dFile_select_cFv();
extern "C" void __ct__14dBrightCheck_cFP10JKRArchive();
extern "C" void _move__14dBrightCheck_cFv();
extern "C" void _draw__14dBrightCheck_cFv();
extern "C" void dKy_clear_game_init__Fv();
extern "C" void dKy_setLight_init__Fv();
extern "C" void changeWater__13dMeter2Info_cFUc();
extern "C" void bgmStart__8Z2SeqMgrFUlUll();
extern "C" void bgmStop__8Z2SeqMgrFUll();
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
extern "C" void becomeCurrentHeap__7JKRHeapFv();
extern "C" void destroy__7JKRHeapFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
extern "C" void __register_global_object();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
extern "C" u8 sManager__10JFWDisplay[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C3040-803C304C 020160 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -128,10 +40,10 @@ dSn_HIO_c::dSn_HIO_c() {
static s32 phase_1(char* resName) {
mDoAud_bgmStart(-1);
if (dComIfG_setObjectRes(resName, (u8)0, NULL) == 0) {
return 5;
return cPhs_ERROR_e;
}
return 2;
return cPhs_NEXT_e;
}
/* 80258820-80258878 253160 0058+00 1/0 0/0 0/0 .text phase_2__FPc */
@@ -139,25 +51,27 @@ static s32 phase_2(char* resName) {
int syncStatus = dComIfG_syncObjectRes(resName);
if (syncStatus < 0) {
return 5;
return cPhs_ERROR_e;
}
if (syncStatus > 0) {
return cPhs_INIT_e;
} else {
return syncStatus > 0 ? 0 : 4;
return cPhs_COMPLEATE_e;
}
}
/* 80258878-802588A0 2531B8 0028+00 1/1 0/0 0/0 .text
* resLoad__FP30request_of_phase_process_classPc */
static s32 resLoad(request_of_phase_process_class* i_phase, char* param_1) {
static s32 resLoad(request_of_phase_process_class* i_phase, char* i_resName) {
static request_of_phase_process_fn l_method[2] = {
(request_of_phase_process_fn)phase_1,
(request_of_phase_process_fn)phase_2
};
return dComLbG_PhaseHandler(i_phase, l_method, param_1);
return dComLbG_PhaseHandler(i_phase, l_method, i_resName);
}
/* ############################################################################################## */
s32 dScnName_c::create() {
int phase_state = resLoad(&field_0x1c4, "fileSel");
if (phase_state == cPhs_COMPLEATE_e) {
@@ -349,8 +263,6 @@ void dScnName_c::brightCheck() {
}
}
/* ############################################################################################## */
/* 802590F8-802591C0 253A38 00C8+00 1/0 0/0 0/0 .text changeGameScene__10dScnName_cFv */
void dScnName_c::changeGameScene() {
if (!mDoRst::isReset() && !fopOvlpM_IsPeek()) {
@@ -369,37 +281,34 @@ void dScnName_c::changeGameScene() {
}
/* 802591C0-802591E0 253B00 0020+00 1/0 0/0 0/0 .text dScnName_Draw__FP10dScnName_c */
static void dScnName_Draw(dScnName_c* scn) {
scn->draw();
static int dScnName_Draw(dScnName_c* i_this) {
return i_this->draw();
}
/* 802591E0-80259200 253B20 0020+00 1/0 0/0 0/0 .text dScnName_Execute__FP10dScnName_c */
static void dScnName_Execute(dScnName_c* scn) {
scn->execute();
static int dScnName_Execute(dScnName_c* i_this) {
return i_this->execute();
}
/* 80259200-80259230 253B40 0030+00 1/0 0/0 0/0 .text dScnName_IsDelete__FP10dScnName_c
*/
static s32 dScnName_IsDelete(dScnName_c*) {
static int dScnName_IsDelete(dScnName_c*) {
dComIfGp_particle_cleanup();
return 1;
}
/* 80259230-80259258 253B70 0028+00 1/0 0/0 0/0 .text dScnName_Delete__FP10dScnName_c */
static s32 dScnName_Delete(dScnName_c* scn) {
scn->~dScnName_c();
static int dScnName_Delete(dScnName_c* i_this) {
i_this->~dScnName_c();
return 1;
}
/* 80259258-80259294 253B98 003C+00 1/0 0/0 0/0 .text dScnName_Create__FP11scene_class */
static void dScnName_Create(scene_class* scn) {
new (scn) dScnName_c();
static_cast<dScnName_c*>(scn)->create();
static int dScnName_Create(scene_class* i_this) {
new (i_this) dScnName_c();
return static_cast<dScnName_c*>(i_this)->create();
}
/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 803C30DC-803C30F0 -00001 0014+00 2/0 0/0 0/0 .data l_dScnName_Method */
static leafdraw_method_class l_dScnName_Method = {
(process_method_func)dScnName_Create, (process_method_func)dScnName_Delete,
+176 -148
View File
@@ -1,8 +1,10 @@
//
// d/s/d_s_play
//
/**
* d_s_play.cpp
* Main Gameplay Scene
*/
#include "d/s/d_s_play.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTConsole.h"
#include "JSystem/JUtility/JUTGamePad.h"
#include "SSystem/SComponent/c_counter.h"
@@ -21,17 +23,12 @@
#include "f_op/f_op_msg_mng.h"
#include "f_op/f_op_overlap_mng.h"
#include "f_op/f_op_scene_mng.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "m_Do/m_Do_Reset.h"
#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_graphic.h"
#include "rel/d/a/d_a_suspend/d_a_suspend.h"
#include "rel/d/a/d_a_ykgr/d_a_ykgr.h"
//
// Declarations:
//
static void dScnPly_Create(scene_class*);
static int dScnPly_Delete(dScnPly_c*);
static int dScnPly_IsDelete(dScnPly_c);
@@ -52,7 +49,6 @@ static int phase_compleate(void*);
extern "C" s8 func_80252E70(s8*);
/* ############################################################################################## */
/* 804510F8-80451100 0005F8 0008+00 2/2 0/0 0/0 .sbss resPhase */
static request_of_phase_process_class resPhase[1];
@@ -71,11 +67,10 @@ static OSTime resPreLoadTime1;
/* 80451120-80451124 000620 0004+00 1/1 0/0 0/0 .sbss g_preLoadHIO */
static dScnPly_preLoad_HIO_c g_preLoadHIO;
/* 80451124-80451128 -00001 0004+00 3/3 7/7 38/38 .sbss None */
/* 80451124 0001+00 data_80451124 None */
/* 80451125 0003+00 nextPauseTimer__9dScnPly_c None */
s8 dScnPly_c::pauseTimer;
/* 80451125 0003+00 nextPauseTimer__9dScnPly_c None */
s8 dScnPly_c::nextPauseTimer;
/* 80259400-80259440 253D40 0040+00 1/1 0/0 0/0 .text calcPauseTimer__9dScnPly_cFv */
@@ -89,66 +84,6 @@ s8 dScnPly_c::calcPauseTimer() {
}
}
/* ############################################################################################## */
/* 803C3158-803C3188 020278 002E+02 1/1 0/0 0/0 .data l_wipeType$4081 */
static s16 l_wipeType[23] = {
0x0000, 0x0000, 0x0011, 0x0002, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, 0x0004, 0x0005, 0x0005,
0x0006, 0x0007, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0008, 0x0008,
};
/* 803C3188-803C3194 0202A8 000A+02 1/1 0/0 0/0 .data camparamarc$4608 */
static char camparamarc[10] = "CamParam";
/* 803C3194-803C31C0 -00001 002C+00 1/1 0/0 0/0 .data l_method$4860 */
static request_of_phase_process_fn l_method[11] = {
(request_of_phase_process_fn)phase_00,
(request_of_phase_process_fn)phase_1,
(request_of_phase_process_fn)phase_1_0,
(request_of_phase_process_fn)phase_01,
(request_of_phase_process_fn)phase_0,
(request_of_phase_process_fn)phase_2,
(request_of_phase_process_fn)phase_3,
(request_of_phase_process_fn)phase_4,
(request_of_phase_process_fn)phase_5,
(request_of_phase_process_fn)phase_6,
(request_of_phase_process_fn)phase_compleate,
};
/* 803C31C0-803C31D4 -00001 0014+00 2/0 0/0 0/0 .data l_dScnPly_Method */
static leafdraw_method_class l_dScnPly_Method = {
(process_method_func)dScnPly_Create, (process_method_func)dScnPly_Delete,
(process_method_func)dScnPly_Execute, (process_method_func)dScnPly_IsDelete,
(process_method_func)dScnPly_Draw,
};
/* 803C31D4-803C31FC -00001 0028+00 0/0 0/0 1/0 .data g_profile_PLAY_SCENE */
scene_process_profile_definition g_profile_PLAY_SCENE = {
fpcLy_ROOT_e, // mLayerID
1, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_PLAY_SCENE, // mProcName
&g_fpcNd_Method.mBase, // mSubMtd
sizeof(dScnPly_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopScn_Method.mBase, // mSubMtd
(process_method_class*)&l_dScnPly_Method, // mpMtd
};
/* 803C31FC-803C3224 -00001 0028+00 0/0 0/0 1/0 .data g_profile_OPENING_SCENE */
scene_process_profile_definition g_profile_OPENING_SCENE = {
fpcLy_ROOT_e, // mLayerID
1, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_OPENING_SCENE, // mProcName
&g_fpcNd_Method.mBase, // mSubMtd
sizeof(dScnPly_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopScn_Method.mBase, // mSubMtd
(process_method_class*)&l_dScnPly_Method, // mpMtd
};
/* 80454F18-80454F1C 003518 0002+02 1/0 0/0 0/0 .sdata2 T_JOINT_dylKeyTbl */
static const s16 T_JOINT_dylKeyTbl[1] = {
0x0106,
@@ -170,15 +105,20 @@ dScnPly_env_debugHIO_c::dScnPly_env_debugHIO_c() {
}
/* 802594AC-802597B8 253DEC 030C+00 1/0 0/0 0/0 .text dScnPly_Draw__FP9dScnPly_c */
static int dScnPly_Draw(dScnPly_c* scn) {
static int dScnPly_Draw(dScnPly_c* i_this) {
static s16 l_wipeType[] = {
0x0000, 0x0000, 0x0011, 0x0002, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, 0x0004, 0x0005, 0x0005,
0x0006, 0x0007, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0008, 0x0008,
};
dComIfG_Ccsp()->Move();
dComIfG_Bgsp().ClrMoveFlag();
u8 useWhiteColor;
if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(scn)) {
if (!fopOvlpM_IsPeek() && !dComIfG_resetToOpening(i_this)) {
if (dComIfGp_isEnableNextStage()) {
u8 wipe = dComIfGp_getNextStageWipe();
fopScnM_ChangeReq(scn, 11, l_wipeType[wipe], 5);
fopScnM_ChangeReq(i_this, PROC_PLAY_SCENE, l_wipeType[wipe], 5);
int hour = dKy_getdaytime_hour();
useWhiteColor = hour >= 6 && hour < 18 ? true : false;
@@ -186,7 +126,8 @@ static int dScnPly_Draw(dScnPly_c* scn) {
if (wipe == 1 || wipe == 2 || wipe == 7 || wipe == 17 || wipe == 21 ||
((wipe == 8 || wipe == 10 || wipe == 18) && tmp) ||
((wipe == 9 || wipe == 11 || wipe == 19) && !tmp)) {
((wipe == 9 || wipe == 11 || wipe == 19) && !tmp))
{
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_saftyWhiteColor);
} else if (wipe == 14 || wipe == 20) {
GXColor color = {0x2A, 0x1E, 0x46, 0xFF};
@@ -204,7 +145,7 @@ static int dScnPly_Draw(dScnPly_c* scn) {
dMdl_mng_c::reset();
if (!dComIfGp_isPauseFlag() && dScnPly_c::pauseTimer == 0) {
if (fpcM_GetName(scn) == PROC_PLAY_SCENE) {
if (fpcM_GetName(i_this) == PROC_PLAY_SCENE) {
dComIfGp_getVibration().Run();
}
daSus_c::execute();
@@ -236,8 +177,8 @@ static int dScnPly_Draw(dScnPly_c* scn) {
}
/* 802597B8-8025987C 2540F8 00C4+00 1/0 0/0 0/0 .text dScnPly_Execute__FP9dScnPly_c */
static int dScnPly_Execute(dScnPly_c* scnPly) {
scnPly->offReset();
static int dScnPly_Execute(dScnPly_c* i_this) {
i_this->offReset();
dStage_roomControl_c::offNoChangeRoom();
dStage_roomControl_c::setRoomReadId(0xFF);
@@ -248,7 +189,7 @@ static int dScnPly_Execute(dScnPly_c* scnPly) {
mDoAud_zelAudio_c::offBgmSet();
}
if (scnPly->calcPauseTimer() != 0) {
if (i_this->calcPauseTimer() != 0) {
return 1;
}
}
@@ -263,24 +204,24 @@ static int dScnPly_Execute(dScnPly_c* scnPly) {
}
/* 8025987C-802598AC 2541BC 0030+00 1/0 0/0 0/0 .text dScnPly_IsDelete__F9dScnPly_c */
static int dScnPly_IsDelete(dScnPly_c scnPly) {
static int dScnPly_IsDelete(dScnPly_c i_this) {
dComIfGp_particle_cleanup();
return 1;
}
struct ProLoadInfoStruct {
const char* field_0x0;
const s16* field_0x4;
const char** field_0x8;
u8 field_0xc;
u8 field_0xd;
struct PreLoadInfo {
const char* stageName;
const s16* profNameTbl;
const char** resNameTbl;
u8 dylKeyTblNum;
u8 resNameNum;
};
/* 80450760-80450764 -00001 0004+00 1/0 0/0 0/0 .sdata T_JOINT_resName */
static const char* T_JOINT_resName[1] = {"Always"};
/* 8039A2C8-8039A2D8 -00001 0010+00 4/4 0/0 0/0 .rodata PreLoadInfoT */
static ProLoadInfoStruct const PreLoadInfoT[1] = {
static PreLoadInfo const PreLoadInfoT[1] = {
{
"T_JOINT",
T_JOINT_dylKeyTbl,
@@ -296,46 +237,59 @@ static s8 preLoadNo = -1;
static u8 doPreLoad = 1;
/* 802598AC-80259AC4 2541EC 0218+00 1/0 0/0 0/0 .text dScnPly_Delete__FP9dScnPly_c */
static int dScnPly_Delete(dScnPly_c* param_0) {
static int dScnPly_Delete(dScnPly_c* i_this) {
daSus_c::reset();
dMpath_c::remove();
dTres_c::remove();
dComIfGp_getAttention().~dAttention_c();
dComIfGp_getVibration().Remove();
dComIfG_Bgsp().Dt();
dComIfG_Ccsp()->Dt();
dStage_Delete();
i_dComIfGp_event_remove();
dComIfGp_particle_removeScene(0);
dComIfGp_getMsgDtArchive(1)->removeResourceAll();
JKRUnmountArchive(dComIfGp_getMsgDtArchive(1));
dDemo_c::remove();
fopMsgM_destroyExpHeap(dComIfGp_getExpHeap2D());
dComIfGp_setExpHeap2D(NULL);
fopMsgM_destroyExpHeap(dComIfGp_getMsgExpHeap());
dComIfGp_setMsgExpHeap(NULL);
dComIfGp_deleteSimpleModel();
dMdl_mng_c::remove();
mDoGph_gInf_c::getBloom()->remove();
dComIfGs_offPlayerFieldLastStayFieldDataExistFlag();
dComIfGp_setWindowNum(0);
dComIfGd_setView(NULL);
if (preLoadNo >= 0) {
const char** piVar4 = PreLoadInfoT[preLoadNo].field_0x8;
int bVar1 = PreLoadInfoT[preLoadNo].field_0xd;
if (piVar4 != NULL && (*piVar4 != NULL)) {
for (int iVar3 = 0; iVar3 < bVar1; iVar3++) {
dComIfG_resDelete(&resPhase[iVar3], piVar4[iVar3]);
const char** resname_table = PreLoadInfoT[preLoadNo].resNameTbl;
int res_num = PreLoadInfoT[preLoadNo].resNameNum;
if (resname_table != NULL && (*resname_table != NULL)) {
for (int i = 0; i < res_num; i++) {
dComIfG_resDelete(&resPhase[i], resname_table[i]);
}
}
const s16* psVar5 = PreLoadInfoT[preLoadNo].field_0x4;
int bVar2 = PreLoadInfoT[preLoadNo].field_0xc;
if (psVar5 != NULL && *psVar5 != 0) {
for (int iVar3 = 0; iVar3 < bVar2; iVar3++) {
cDylPhs::Unlink(&dylPhase[iVar3], psVar5[iVar3]);
const s16* profname_table = PreLoadInfoT[preLoadNo].profNameTbl;
int prof_num = PreLoadInfoT[preLoadNo].dylKeyTblNum;
if (profname_table != NULL && *profname_table != 0) {
for (int i = 0; i < prof_num; i++) {
cDylPhs::Unlink(&dylPhase[i], profname_table[i]);
}
}
}
dComIfGp_init();
JUTAssertion::setMessageCount(0);
return 1;
@@ -359,7 +313,8 @@ bool dScnPly_c::resetGame() {
if (dComIfGp_getNextStagePoint() == -4 || (dComIfGs_getLastSceneMode() & 0xF) == 0xC ||
!strcmp(dComIfGp_getNextStageName(), "F_SP109") ||
(!strcmp(dComIfGp_getNextStageName(), "F_SP116") &&
dComIfGp_getNextStageRoomNo() == 1 && dComIfGp_getNextStageLayer() == 9)) {
dComIfGp_getNextStageRoomNo() == 1 && dComIfGp_getNextStageLayer() == 9))
{
if (!dStage_roomControl_c::resetArchiveBank(0)) {
return false;
}
@@ -384,8 +339,8 @@ void dScnPly_c::offReset() {
}
/* 80259C70-80259CAC 2545B0 003C+00 1/0 0/0 0/0 .text phase_00__FP9dScnPly_c */
static int phase_00(dScnPly_c* scn) {
if (!scn->resetGame()) {
static int phase_00(dScnPly_c* i_this) {
if (!i_this->resetGame()) {
return cPhs_INIT_e;
} else {
mDoGph_gInf_c::offBlure();
@@ -394,7 +349,7 @@ static int phase_00(dScnPly_c* scn) {
}
/* 80259CAC-80259D7C 2545EC 00D0+00 1/0 0/0 0/0 .text phase_01__FP9dScnPly_c */
static int phase_01(dScnPly_c* scn) {
static int phase_01(dScnPly_c* i_this) {
mDoAud_setHour(dKy_getdaytime_hour());
mDoAud_setMinute(dKy_getdaytime_minute());
mDoAud_setWeekday(dKy_get_dayofweek());
@@ -419,13 +374,13 @@ static int phase_01(dScnPly_c* scn) {
}
/* 80259D7C-80259D84 2546BC 0008+00 1/0 0/0 0/0 .text phase_0__FP9dScnPly_c */
static int phase_0(dScnPly_c* param_0) {
static int phase_0(dScnPly_c* i_this) {
return cPhs_NEXT_e;
}
/* 80259D84-8025A438 2546C4 06B4+00 1/0 0/0 0/0 .text phase_1__FP9dScnPly_c */
static int phase_1(dScnPly_c* scn) {
u32 id = fopScnM_GetID(scn);
static int phase_1(dScnPly_c* i_this) {
u32 id = fopScnM_GetID(i_this);
dStage_roomControl_c::setProcID(id);
dComIfGp_setStartStage(dComIfGp_getNextStartStage());
@@ -442,38 +397,45 @@ static int phase_1(dScnPly_c* scn) {
// Stage: Faron Woods, Room: Faron Spring
if (!strcmp(dComIfGp_getStartStageName(), "F_SP108") && dComIfGp_getStartStageRoomNo() == 1 &&
dComIfGp_getStartStagePoint() == 3) {
dComIfGp_getStartStagePoint() == 3)
{
dComIfGs_onDarkClearLV(0);
execItemGet(WEAR_KOKIRI);
}
// Stage: Kakariko Village, Room: Kakariko Village
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP109") &&
dComIfGp_getStartStageRoomNo() == 0 && dComIfGp_getStartStagePoint() == 30) {
dComIfGp_getStartStageRoomNo() == 0 && dComIfGp_getStartStagePoint() == 30)
{
dComIfGs_onDarkClearLV(1);
}
// Stage: Lake Hylia, Room: Fountain
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP115") &&
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 20) {
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 20)
{
dComIfGs_onDarkClearLV(2);
}
// Stage: Sacred Grove, Room: Lost Woods
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP117") &&
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 99) {
dComIfGp_getStartStageRoomNo() == 1 && dComIfGp_getStartStagePoint() == 99)
{
dComIfGs_onDarkClearLV(3);
}
// Stage: Ordon Spring, Room: Ordon Spring
if (!strcmp(dComIfGp_getStartStageName(), "F_SP104") && dComIfGp_getStartStageRoomNo() == 1 &&
dComIfGp_getStartStagePoint() == 23 && dComIfGp_getStartStageLayer() == 12) {
dComIfGp_getStartStagePoint() == 23 && dComIfGp_getStartStageLayer() == 12)
{
dComIfGs_onItemFirstBit(HORSE_FLUTE);
dComIfGs_setItem(SLOT_21, HORSE_FLUTE);
}
if ((u8)dKy_darkworld_stage_check(dComIfGp_getStartStageName(),
dComIfGp_getStartStageRoomNo()) == true) {
dComIfGp_getStartStageRoomNo()) == true)
{
dComIfGp_world_dark_set(1);
} else if ((u8)dKy_darkworld_spot_check(dComIfGp_getStartStageName(),
dComIfGp_getStartStageRoomNo()) == true) {
dComIfGp_getStartStageRoomNo()) == true)
{
dComIfGp_world_dark_set(2);
} else {
dComIfGp_world_dark_set(0);
@@ -481,7 +443,8 @@ static int phase_1(dScnPly_c* scn) {
// Stage: Lake Hylia, Room: Fountain
if (!strcmp(dComIfGp_getStartStageName(), "F_SP115") && dComIfGp_getStartStageRoomNo() == 1 &&
dComIfGp_getStartStageLayer() < 0) {
dComIfGp_getStartStageLayer() < 0)
{
const char* stage = dComIfGp_getStartStageName();
s8 room = dComIfGp_getStartStageRoomNo();
s8 layer = dComIfGp_getStartStageLayer();
@@ -502,13 +465,15 @@ static int phase_1(dScnPly_c* scn) {
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") && dComIfGp_getStartStageRoomNo() == 1 &&
dComIfGp_getStartStageLayer() == 8) ||
(!strcmp(dComIfGp_getStartStageName(), "F_SP115") && dComIfGp_getStartStageRoomNo() == 1 &&
dComIfGp_getStartStageLayer() == 9)) {
dComIfGp_getStartStageLayer() == 9))
{
dComIfGp_world_dark_set(1);
}
// Stage: Zant Boss Fight, Room: Throne Room
if (!strcmp(dComIfGp_getStartStageName(), "D_MN08D") && dComIfGp_getStartStageRoomNo() == 50 &&
dComIfGp_getStartStagePoint() == 20) {
dComIfGp_getStartStagePoint() == 20)
{
dComIfGs_onSaveDunSwitch(30);
}
@@ -516,29 +481,34 @@ static int phase_1(dScnPly_c* scn) {
// Stage: Hyrule Castle Sewers, Room: Prison Cell
if (!strcmp(dComIfGp_getStartStageName(), "R_SP107") && dComIfGp_getStartStageRoomNo() == 0 &&
(dComIfGp_getStartStagePoint() == 24 || dComIfGp_getStartStagePoint() == 0)) {
(dComIfGp_getStartStagePoint() == 24 || dComIfGp_getStartStagePoint() == 0))
{
dComIfGs_onTransformLV(0);
}
// Stage: Hyrule Field, Room: Eldin Gorge south entrance
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
dComIfGp_getStartStageRoomNo() == 2 && dComIfGp_getStartStagePoint() == 10) {
dComIfGp_getStartStageRoomNo() == 2 && dComIfGp_getStartStagePoint() == 10)
{
dComIfGs_onTransformLV(1);
}
// Stage: Hyrule Field, Room: Lanayru Field north entrance
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
dComIfGp_getStartStageRoomNo() == 9 && dComIfGp_getStartStagePoint() == 10) {
dComIfGp_getStartStageRoomNo() == 9 && dComIfGp_getStartStagePoint() == 10)
{
dComIfGs_onTransformLV(2);
}
// Stage: Hyrule Field, Room: Lanayru Field
else if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
dComIfGp_getStartStageRoomNo() == 10 &&
(dComIfGp_getStartStagePoint() == 23 || dComIfGp_getStartStagePoint() == 20)) {
(dComIfGp_getStartStagePoint() == 23 || dComIfGp_getStartStagePoint() == 20))
{
dComIfGs_onTransformLV(3);
}
// Stage: Fishing Pond, Room: Fishing Pond
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && dComIfGp_getStartStageRoomNo() == 0 &&
dComIfGp_getStartStagePoint() == 2) {
dComIfGp_getStartStagePoint() == 2)
{
g_env_light.mPondSeason++;
if (g_env_light.mPondSeason > 4) {
@@ -559,7 +529,9 @@ static int phase_1(dScnPly_c* scn) {
}
/* 8025A438-8025A4F8 254D78 00C0+00 1/0 0/0 0/0 .text phase_1_0__FP9dScnPly_c */
static int phase_1_0(dScnPly_c* param_0) {
static int phase_1_0(dScnPly_c* i_this) {
static char camparamarc[10] = "CamParam";
if (dComIfG_syncStageRes("Stg_00")) {
return cPhs_INIT_e;
} else {
@@ -572,29 +544,33 @@ static int phase_1_0(dScnPly_c* param_0) {
}
/* 8025A4F8-8025A5D4 254E38 00DC+00 1/0 0/0 0/0 .text phase_2__FP9dScnPly_c */
static int phase_2(dScnPly_c* scn) {
static int phase_2(dScnPly_c* i_this) {
int tmp = dComIfG_syncAllObjectRes();
if (tmp >= 0 && tmp != 0) {
return cPhs_INIT_e;
}
u8 particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo(), dComIfG_play_c::getLayerNo(0));
u8 particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo(),
dComIfG_play_c::getLayerNo(0));
if (particle_no == 255) {
particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo());
}
dComIfGp_particle_readScene(particle_no, &scn->sceneCommand);
dMsgObject_readMessageGroup(&scn->field_0x1d0);
dComIfGp_particle_readScene(particle_no, &i_this->sceneCommand);
dMsgObject_readMessageGroup(&i_this->field_0x1d0);
return cPhs_NEXT_e;
}
/* 8025A5D4-8025A654 254F14 0080+00 1/0 0/0 0/0 .text phase_3__FP9dScnPly_c */
static int phase_3(dScnPly_c* scn) {
if ((scn->sceneCommand != NULL && !scn->sceneCommand->sync()) || mDoAud_check1stDynamicWave()) {
static int phase_3(dScnPly_c* i_this) {
if ((i_this->sceneCommand != NULL && !i_this->sceneCommand->sync()) || mDoAud_check1stDynamicWave()) {
return cPhs_INIT_e;
}
if (!scn->field_0x1d0 == NULL && !scn->field_0x1d0->sync()) {
}
if (!i_this->field_0x1d0 == NULL && !i_this->field_0x1d0->sync()) {
return cPhs_INIT_e;
}
}
return cPhs_NEXT_e;
}
@@ -664,7 +640,7 @@ static int phase_4(dScnPly_c* i_this) {
new (&dComIfGp_getAttention()) dAttention_c(dComIfGp_getPlayer(0), 0);
dComIfGp_getVibration().Init();
daYkgr_c::init();
dComIfG_setBrightness(255);
mDoGph_gInf_c::offFade();
mDoAud_zelAudio_c::onBgmSet();
@@ -676,7 +652,7 @@ static int phase_4(dScnPly_c* i_this) {
const char* stageName = dComIfGp_getStartStageName();
OS_REPORT("stageName=%s\n", stageName);
for (u32 i = 0; i < 1; i++) {
if (strcmp(stageName, PreLoadInfoT[i].field_0x0) == 0) {
if (strcmp(stageName, PreLoadInfoT[i].stageName) == 0) {
preLoadNo = i;
}
}
@@ -691,11 +667,12 @@ static int phase_4(dScnPly_c* i_this) {
}
/* 8025A9F4-8025AAC0 255334 00CC+00 1/0 0/0 0/0 .text phase_5__FP9dScnPly_c */
static int phase_5(dScnPly_c* param_0) {
static int phase_5(dScnPly_c* i_this) {
if (preLoadNo >= 0) {
int rv = 2;
const char** resNames = PreLoadInfoT[preLoadNo].field_0x8;
s32 resNameNum = PreLoadInfoT[preLoadNo].field_0xd;
int phase_state = cPhs_NEXT_e;
const char** resNames = PreLoadInfoT[preLoadNo].resNameTbl;
s32 resNameNum = PreLoadInfoT[preLoadNo].resNameNum;
if (resNames != NULL && *resNames != NULL) {
JUT_ASSERT(2830, resNameNum <= (sizeof(resPhase) / sizeof(resPhase[0])));
int goodLoads = 0;
@@ -704,52 +681,103 @@ static int phase_5(dScnPly_c* param_0) {
if (dComIfG_resLoad(&resPhase[i], resNames[i]) == 4) {
goodLoads++;
} else {
rv = 0;
phase_state = cPhs_INIT_e;
}
loadNum++;
}
}
if (rv == 4) {
if (phase_state == cPhs_COMPLEATE_e) {
resPreLoadTime1 = OSGetTime();
}
return rv;
return phase_state;
}
return cPhs_NEXT_e;
}
/* 8025AAC0-8025AB8C 255400 00CC+00 1/0 0/0 0/0 .text phase_6__FP9dScnPly_c */
static int phase_6(dScnPly_c* param_0) {
static int phase_6(dScnPly_c* i_this) {
if (preLoadNo >= 0) {
int rv = 2;
const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].field_0x4;
s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].field_0xc;
int phase_state = cPhs_NEXT_e;
const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].profNameTbl;
s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].dylKeyTblNum;
if (dylKeyTbl != NULL && *dylKeyTbl != 0) {
JUT_ASSERT(2864, dylKeyTblNum <= (sizeof(dylPhase) / sizeof(dylPhase[0])));
int goodLoads = 0;
int loadNum = 0;
for (int i = 0; i < dylKeyTblNum; i++) {
if (cDylPhs::Link(&dylPhase[i], dylKeyTbl[i]) == 4) {
if (cDylPhs::Link(&dylPhase[i], dylKeyTbl[i]) == cPhs_COMPLEATE_e) {
goodLoads++;
} else {
rv = 0;
phase_state = cPhs_INIT_e;
}
loadNum++;
}
}
if (rv == 4) {
if (phase_state == cPhs_COMPLEATE_e) {
dylPreLoadTime1 = OSGetTime();
}
return rv;
return phase_state;
}
return cPhs_NEXT_e;
}
/* 8025AB8C-8025AB94 2554CC 0008+00 1/0 0/0 0/0 .text phase_compleate__FPv */
static int phase_compleate(void* param_0) {
static int phase_compleate(void* i_this) {
return cPhs_COMPLEATE_e;
}
/* 8025AB94-8025ABC4 2554D4 0030+00 1/0 0/0 0/0 .text dScnPly_Create__FP11scene_class */
static void dScnPly_Create(scene_class* i_this) {
static request_of_phase_process_fn l_method[] = {
(request_of_phase_process_fn)phase_00, (request_of_phase_process_fn)phase_1,
(request_of_phase_process_fn)phase_1_0, (request_of_phase_process_fn)phase_01,
(request_of_phase_process_fn)phase_0, (request_of_phase_process_fn)phase_2,
(request_of_phase_process_fn)phase_3, (request_of_phase_process_fn)phase_4,
(request_of_phase_process_fn)phase_5, (request_of_phase_process_fn)phase_6,
(request_of_phase_process_fn)phase_compleate,
};
dComLbG_PhaseHandler(&static_cast<dScnPly_c*>(i_this)->field_0x1c4, l_method, i_this);
}
/* 803C31C0-803C31D4 -00001 0014+00 2/0 0/0 0/0 .data l_dScnPly_Method */
static leafdraw_method_class l_dScnPly_Method = {
(process_method_func)dScnPly_Create, (process_method_func)dScnPly_Delete,
(process_method_func)dScnPly_Execute, (process_method_func)dScnPly_IsDelete,
(process_method_func)dScnPly_Draw,
};
/* 803C31D4-803C31FC -00001 0028+00 0/0 0/0 1/0 .data g_profile_PLAY_SCENE */
scene_process_profile_definition g_profile_PLAY_SCENE = {
fpcLy_ROOT_e, // mLayerID
1, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_PLAY_SCENE, // mProcName
&g_fpcNd_Method.mBase, // mSubMtd
sizeof(dScnPly_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopScn_Method.mBase, // mSubMtd
(process_method_class*)&l_dScnPly_Method, // mpMtd
};
/* 803C31FC-803C3224 -00001 0028+00 0/0 0/0 1/0 .data g_profile_OPENING_SCENE */
scene_process_profile_definition g_profile_OPENING_SCENE = {
fpcLy_ROOT_e, // mLayerID
1, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_OPENING_SCENE, // mProcName
&g_fpcNd_Method.mBase, // mSubMtd
sizeof(dScnPly_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopScn_Method.mBase, // mSubMtd
(process_method_class*)&l_dScnPly_Method, // mpMtd
};
+64 -38
View File
@@ -1,16 +1,16 @@
//
// d_s_room
//
/**
* d_s_room.cpp
* Gameplay Room Scene
*/
#include "d/s/d_s_room.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "stdio.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/s/d_s_play.h"
#include "dolphin/os.h"
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_Reset.h"
#include "stdio.h"
/* 8025AE1C-8025AE24 25575C 0008+00 1/0 0/0 0/0 .text dScnRoom_Draw__FP19room_of_scene_class */
static int dScnRoom_Draw(room_of_scene_class* i_this) {
@@ -21,6 +21,7 @@ static int dScnRoom_Draw(room_of_scene_class* i_this) {
static int getResetArchiveBank(int param_1, u8 const** param_2) {
dStage_roomControl_c::nameData* arcBankName = dStage_roomControl_c::getArcBankName();
int local_30 = 0;
*param_2 = NULL;
if (arcBankName != NULL) {
dStage_roomControl_c::bankData* arcBankData = dStage_roomControl_c::getArcBankData();
@@ -35,19 +36,23 @@ static int getResetArchiveBank(int param_1, u8 const** param_2) {
}
}
}
u8 const* pbVar1 = *param_2;
for (int i = 0; i < local_30; pbVar1++, i++) {
char* arcBank = dStage_roomControl_c::getArcBank(i);
char* name = "";
int id = *pbVar1;
if (id != 0xff) {
JUT_ASSERT(160, 0 <= id && id < arcBankName->m_num);
name = arcBankName->m_names[id];
}
if (strcmp(arcBank, name) != 0) {
return i;
}
}
return local_30;
}
@@ -60,24 +65,26 @@ static bool resetArchiveBank(int param_0) {
/* 8025AF4C-8025B0F0 25588C 01A4+00 1/1 0/0 0/0 .text setArchiveBank__Fi */
static bool setArchiveBank(int param_0) {
u8* arr[4];
int iVar1 = getResetArchiveBank(param_0, (u8 const**)&arr);
int bank_no = getResetArchiveBank(param_0, (u8 const**)&arr);
if (arr[0] == NULL) {
return true;
}
dStage_roomControl_c::nameData* arcBankName = dStage_roomControl_c::getArcBankName();
for (; (int)iVar1 < 0x20; iVar1++) {
for (; (int)bank_no < 0x20; bank_no++) {
const char* name = "";
int id = arr[0][iVar1];
int id = arr[0][bank_no];
if (id != 0xff) {
JUT_ASSERT(216, 0 <= id && id < arcBankName->m_num);
name = arcBankName->m_names[id];
}
if (strcmp(name, "") != 0) {
if (strnicmp(name, "pack", 4) == 0) {
int syncres = dComIfG_syncObjectRes(name);
if (syncres < 0) {
if (!dComIfG_setObjectRes(name, 0, mDoExt_getArchiveHeap())) {
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", iVar1, name);
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", bank_no, name);
} else {
return false;
}
@@ -86,12 +93,14 @@ static bool setArchiveBank(int param_0) {
}
} else {
if (!dComIfG_setObjectRes(name, 0, mDoExt_getArchiveHeap())) {
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", iVar1, name);
OSReport_Error("Bank[%d] : %s.arc Read Error !!\n", bank_no, name);
}
}
}
dStage_roomControl_c::setArcBank(iVar1, name);
dStage_roomControl_c::setArcBank(bank_no, name);
}
return true;
}
@@ -131,24 +140,31 @@ static bool isCreating(unsigned int param_0) {
static int loadDemoArchive(int room_no) {
if (*dStage_roomControl_c::getDemoArcName() == 0) {
dStage_Lbnk_c* lbnk = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getLbnk();
if (lbnk != NULL) {
dStage_Lbnk_dt_c* entries = lbnk->entries;
if (entries != NULL) {
int bank = entries[dComIfG_play_c::getLayerNo(room_no)].bank;
if (bank != 0xff) {
JUT_ASSERT(350, 0 <= bank && bank < 100);
u8 bank2 = entries[dComIfG_play_c::getLayerNo(room_no)].bank2;
JUT_ASSERT(353, 0 <= bank2 && bank2 < 100);
sprintf(dStage_roomControl_c::getDemoArcName(), "Demo%02d_%02d", bank, bank2);
if (!dComIfG_setObjectRes(dStage_roomControl_c::getDemoArcName(), 0, (JKRHeap*)NULL)) {
if (!dComIfG_setObjectRes(dStage_roomControl_c::getDemoArcName(), 0,
(JKRHeap*)NULL))
{
*dStage_roomControl_c::getDemoArcName() = 0;
} else {
return 1;
}
}
}
}
}
}
return 0;
}
@@ -224,7 +240,8 @@ static int dScnRoom_Execute(room_of_scene_class* i_this) {
fopScnM_DeleteReq(i_this);
} else if (i_this->field_0x1d4 < 0 && i_this->field_0x1d5 != 0 &&
!i_dComIfGp_event_runCheck() &&
(int)fopScnM_GetParam(i_this) == dComIfGp_roomControl_getStayNo()) {
(int)fopScnM_GetParam(i_this) == dComIfGp_roomControl_getStayNo())
{
if (isCreating(fpcM_LayerID(i_this))) {
dScnPly_c::nextPauseTimer = 2;
} else {
@@ -259,7 +276,8 @@ static bool isReadRoom(int param_0) {
for (int i = 0; i < roomData->field_0x0; i++) {
if (dStage_roomRead_dt_c_ChkBg(*tmp) &&
param_0 == dStage_roomRead_dt_c_GetLoadRoomIndex(*tmp)) {
param_0 == dStage_roomRead_dt_c_GetLoadRoomIndex(*tmp))
{
return true;
}
tmp++;
@@ -280,7 +298,8 @@ static int dScnRoom_Delete(room_of_scene_class* i_this) {
if (mDoRst::isReset() || !dComIfGp_isEnableNextStage() ||
strcmp(dComIfGp_getNextStageName(), dComIfGp_getStartStageName()) ||
(roomNo != dComIfGp_getNextStageRoomNo() && !isReadRoom(roomNo))) {
(roomNo != dComIfGp_getNextStageRoomNo() && !isReadRoom(roomNo)))
{
dComIfG_deleteStageRes(setArcName(i_this));
JKRExpHeap* heap = dStage_roomControl_c::getMemoryBlock(roomNo);
@@ -298,7 +317,7 @@ static int dScnRoom_Delete(room_of_scene_class* i_this) {
static int phase_0(room_of_scene_class* i_this) {
int roomNo = fopScnM_GetParam(i_this);
dStage_roomControl_c::setStatusProcID(roomNo, fopScnM_GetID(i_this));
return 2;
return cPhs_NEXT_e;
}
/* 8025B8A4-8025B980 2561E4 00DC+00 1/0 0/0 0/0 .text phase_1__FP19room_of_scene_class */
@@ -313,7 +332,7 @@ static int phase_1(room_of_scene_class* i_this) {
if (heap != NULL) {
if (heap->getTotalUsedSize() != 0) {
return 0;
return cPhs_INIT_e;
}
} else {
stage_stag_info_class* stagInfo = i_dComIfGp_getStage()->getStagInfo();
@@ -328,7 +347,7 @@ static int phase_1(room_of_scene_class* i_this) {
}
}
return 2;
return cPhs_NEXT_e;
}
/* 8025B980-8025BAAC 2562C0 012C+00 1/0 0/0 0/0 .text phase_2__FP19room_of_scene_class */
@@ -341,7 +360,7 @@ static int phase_2(room_of_scene_class* i_this) {
}
if (phase != 0) {
return 0;
return cPhs_INIT_e;
}
int roomNo = fopScnM_GetParam(i_this);
@@ -368,7 +387,7 @@ static int phase_2(room_of_scene_class* i_this) {
mDoExt_setCurrentHeap(old_heap);
}
return 2;
return cPhs_NEXT_e;
}
/* 8025BAAC-8025BAC4 2563EC 0018+00 1/1 0/0 0/0 .text setZoneNo__20dStage_roomControl_cFii */
@@ -378,16 +397,24 @@ void dStage_roomControl_c::setZoneNo(int i_roomNo, int i_zoneNo) {
/* 8025BAC4-8025BAF8 256404 0034+00 1/0 0/0 0/0 .text phase_3__FP19room_of_scene_class */
static int phase_3(room_of_scene_class* i_this) {
return objectSetCheck(i_this) ? 2 : 0;
if (objectSetCheck(i_this)) {
return cPhs_NEXT_e;
} else {
return cPhs_INIT_e;
}
}
/* 8025BAF8-8025BB48 256438 0050+00 1/0 0/0 0/0 .text phase_4__FP19room_of_scene_class */
static int phase_4(room_of_scene_class* i_this) {
if (dComIfGp_getPlayer(0) == NULL) {
return 0;
return cPhs_INIT_e;
}
return objectSetCheck(i_this) ? cPhs_COMPLEATE_e : 0;
if (objectSetCheck(i_this)) {
return cPhs_COMPLEATE_e;
} else {
return cPhs_INIT_e;
}
}
/* 8025BB48-8025BB78 256488 0030+00 1/0 0/0 0/0 .text dScnRoom_Create__FP11scene_class */
@@ -401,24 +428,23 @@ static int dScnRoom_Create(scene_class* i_this) {
return dComLbG_PhaseHandler(&room->field_0x1c4, l_method, i_this);
}
/* ############################################################################################## */
/* 803C3274-803C3288 -00001 0014+00 1/0 0/0 0/0 .data l_dScnRoom_Method */
static leafdraw_method_class l_dScnRoom_Method = {
(process_method_func)dScnRoom_Create, (process_method_func)dScnRoom_Delete, (process_method_func)dScnRoom_Execute,
(process_method_func)dScnRoom_IsDelete, (process_method_func)dScnRoom_Draw,
(process_method_func)dScnRoom_Create, (process_method_func)dScnRoom_Delete,
(process_method_func)dScnRoom_Execute, (process_method_func)dScnRoom_IsDelete,
(process_method_func)dScnRoom_Draw,
};
/* 803C3288-803C32B0 -00001 0028+00 0/0 0/0 1/0 .data g_profile_ROOM_SCENE */
scene_process_profile_definition g_profile_ROOM_SCENE = {
fpcLy_CURRENT_e, // mLayerID
0, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_ROOM_SCENE, // mProcName
&g_fpcNd_Method.mBase, // mSubMtd
sizeof(room_of_scene_class), // mSize
0, // mSizeOther
0, // mParameters
&g_fopScn_Method.mBase, // mSubMtd
(process_method_class*)&l_dScnRoom_Method, // mpMtd
fpcLy_CURRENT_e, // mLayerID
0, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_ROOM_SCENE, // mProcName
&g_fpcNd_Method.mBase, // mSubMtd
sizeof(room_of_scene_class), // mSize
0, // mSizeOther
0, // mParameters
&g_fopScn_Method.mBase, // mSubMtd
(process_method_class*)&l_dScnRoom_Method, // mpMtd
};
/* 8039A388-8039A388 0269E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+1 -2
View File
@@ -1,6 +1,6 @@
/**
* d_s_title.cpp
* dolzel2 - Scene Title
* Title Screen Scene
*/
#include "d/s/d_s_title.h"
@@ -8,7 +8,6 @@
#include "f_pc/f_pc_leaf.h"
#include "d/d_procname.h"
/* ############################################################################################## */
/* 803C32B0-803C32D8 -00001 0028+00 0/0 0/0 1/0 .data g_profile_WARNING_SCENE */
extern scene_process_profile_definition g_profile_WARNING_SCENE = {
fpcLy_ROOT_e, // mLayerID
+49 -19
View File
@@ -1,12 +1,13 @@
//
// d/shop/d_shop_camera
//
/**
* d_shop_camera.cpp
* Shop Camera Handling
*/
#include "d/shop/d_shop_camera.h"
#include "SSystem/SComponent/c_math.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_camera.h"
#include "d/a/d_a_player.h"
#include "SSystem/SComponent/c_math.h"
struct SeiraCam {
/* 0x00 */ Vec field_0x0;
@@ -17,20 +18,22 @@ struct SeiraCam {
/* 0x18 */ f32 field_0x34;
};
/* ############################################################################################## */
/* 803BB7C8-803BB800 0188E8 0038+00 1/0 0/0 0/0 .data cam_seira_shop */
static SeiraCam cam_seira_shop = {
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f, {100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f,
{100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f,
};
/* 803BB800-803BB838 018920 0038+00 1/0 0/0 0/0 .data cam_seira_evnt_before */
static SeiraCam cam_seira_evnt_before = {
{-50.0f, 115.0f, 0.0f}, {-50.0f, 115.0f, 150.0f}, 45.0f, {100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f
{-50.0f, 115.0f, 0.0f}, {-50.0f, 115.0f, 150.0f}, 45.0f,
{100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f,
};
/* 803BB838-803BB870 018958 0038+00 1/0 0/0 0/0 .data cam_seira_evnt_after */
static SeiraCam cam_seira_evnt_after = {
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f, {100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f
{0.0f, 115.0f, 0.0f}, {0.0f, 115.0f, 150.0f}, 45.0f,
{100.0f, 155.0f, -175.0f}, {100.0f, 155.0f, 0.0f}, 45.0f,
};
/* 803BB870-803BB87C -00001 000C+00 2/2 0/0 0/0 .data shop_cam_data_tbl */
@@ -44,8 +47,10 @@ static SeiraCam* shop_cam_data_tbl[3] = {
*/
int ShopCam_action_c::shop_cam_action_init() {
Save();
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
player->i_onPlayerNoDraw();
setCamAction(&ShopCam_action_c::shop_cam_action);
if (field_0xd6 >= 0) {
field_0x7c = shop_cam_data_tbl[field_0xd6]->field_0x0;
@@ -60,6 +65,7 @@ int ShopCam_action_c::shop_cam_action_init() {
field_0x88 = field_0x60;
field_0x94 = field_0x6c;
}
SetSelectIdx(-1);
return 1;
}
@@ -69,6 +75,7 @@ int ShopCam_action_c::shop_cam_action() {
camera_class* camera = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
camera->mCamera.Stay();
camera->mCamera.SetTrimSize(1);
cXyz acStack_4c;
cXyz acStack_58;
f32 dVar11;
@@ -91,32 +98,39 @@ int ShopCam_action_c::shop_cam_action() {
acStack_58 = field_0x60;
dVar11 = field_0x6c;
}
cLib_addCalcPos2(&field_0x7c, acStack_4c, field_0xc0, field_0xc4);
cLib_addCalcPos2(&field_0x88, acStack_58, field_0xc0, field_0xc4);
cLib_addCalc2(&field_0x94, dVar11, field_0xc8, field_0xcc);
cXyz cStack_64 = field_0x7c - acStack_4c;
cXyz cStack_70 = field_0x88 - acStack_58;
f32 dVar10 = field_0x94 - dVar11;
bool r30 = false;
bool r29 = false;
bool r28 = false;
if (cStack_64.abs() < 1.0f) {
field_0x7c = acStack_4c;
field_0x7c = acStack_4c;
r30 = true;
}
if (cStack_70.abs() < 1.0f) {
field_0x88 = acStack_58;
r29 = true;
}
if (dVar10 < 1.0f) {
field_0x94 = dVar11;
r28 = true;
}
if (r30 && r29 && r28) {
field_0xda = true;
} else {
field_0xda = false;
}
camera->mCamera.Set(field_0x7c, field_0x88, field_0x94, 0);
return 1;
}
@@ -136,25 +150,28 @@ void ShopCam_action_c::EventRecoverNotime() {
dComIfGp_getPlayer(0);
field_0xd8 = 2;
dCam_getBody()->EventRecoverNotime();
field_0x0 = NULL;
mCamAction = NULL;
}
/* 801963B4-801964C8 190CF4 0114+00 0/0 0/0 9/9 .text Reset__16ShopCam_action_cFv */
void ShopCam_action_c::Reset() {
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
player->i_offPlayerNoDraw();
camera_class* camera = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
camera->mCamera.Set(field_0x98, field_0xa4, field_0xbc, 0);
camera->mCamera.Stay();
camera->mCamera.Reset(field_0x98, field_0xa4, field_0xbc, 0);
field_0x0 = NULL;
mCamAction = NULL;
}
/* 801964C8-80196544 190E08 007C+00 0/0 0/0 9/9 .text move__16ShopCam_action_cFv */
void ShopCam_action_c::move() {
if (field_0x0 != NULL) {
(this->*field_0x0)();
if (mCamAction != NULL) {
(this->*mCamAction)();
}
if (field_0xd8 > 0) {
--field_0xd8;
if (field_0xd8 == 0) {
@@ -172,6 +189,7 @@ void ShopCam_action_c::setCamDataIdx(fopAc_ac_c* param_1, fopAc_ac_c* param_2, f
if (field_0x18 == NULL) {
field_0xb0 = param_1->mEyePos;
}
field_0x18 = param_1;
field_0x1c = param_2;
field_0x20 = param_3;
@@ -180,29 +198,33 @@ void ShopCam_action_c::setCamDataIdx(fopAc_ac_c* param_1, fopAc_ac_c* param_2, f
field_0x2c = 0;
field_0x30 = 0;
field_0x34 = 0;
field_0x44.x = param_5->x;
field_0x44.y = param_5->y;
field_0x44.z = param_5->z;
field_0x50 = 45.0f;
field_0x60.x = param_6->x;
field_0x60.y = param_6->y;
field_0x60.z = param_6->z;
field_0x6c = 45.0f;
field_0x70.set(*param_6);
_debugSetCamera();
}
/* 80196608-801966D4 190F48 00CC+00 0/0 1/1 0/0 .text
* setCamDataIdx2__16ShopCam_action_cFP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP10fopAc_ac_cP4cXyzP4cXyz
*/
void ShopCam_action_c::setCamDataIdx2(fopAc_ac_c* param_1, fopAc_ac_c* param_2,
fopAc_ac_c* param_3, fopAc_ac_c* param_4,
fopAc_ac_c* param_5, fopAc_ac_c* param_6,
fopAc_ac_c* param_7, cXyz* param_8, cXyz* param_9) {
field_0xd6 = -1;
void ShopCam_action_c::setCamDataIdx2(fopAc_ac_c* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3,
fopAc_ac_c* param_4, fopAc_ac_c* param_5, fopAc_ac_c* param_6,
fopAc_ac_c* param_7, cXyz* param_8, cXyz* param_9) {
field_0xd6 = -1;
if (field_0x18 == NULL) {
field_0xb0 = param_1->mEyePos;
}
field_0x18 = param_1;
field_0x1c = param_2;
field_0x20 = param_3;
@@ -211,15 +233,19 @@ void ShopCam_action_c::setCamDataIdx2(fopAc_ac_c* param_1, fopAc_ac_c* param_2,
field_0x2c = param_6;
field_0x30 = param_7;
field_0x34 = 0;
field_0x44.x = param_8->x;
field_0x44.y = param_8->y;
field_0x44.z = param_8->z;
field_0x50 = 45.0f;
field_0x60.x = param_9->x;
field_0x60.y = param_9->y;
field_0x60.z = param_9->z;
field_0x6c = 45.0f;
field_0x70.set(*param_9);
_debugSetCamera();
}
@@ -228,11 +254,13 @@ void ShopCam_action_c::_debugSetCamera() {
field_0x38.x = field_0xb0.x;
field_0x38.y = field_0xb0.y;
field_0x38.z = field_0xb0.z;
cXyz local_28;
cXyz cStack_34;
cXyz local_40;
cXyz local_4c;
bool bVar1 = false;
if (field_0x1c != NULL && field_0x20 != NULL && field_0x24 != NULL && field_0x28 != NULL &&
field_0x2c == NULL && field_0x30 == NULL)
{
@@ -249,6 +277,7 @@ void ShopCam_action_c::_debugSetCamera() {
local_4c.set(field_0x20->orig.pos);
}
}
if (bVar1) {
field_0x54.x = 167.0f;
field_0x54.y = 220.0f;
@@ -272,6 +301,7 @@ void ShopCam_action_c::setMasterCamCtrPos(cXyz* param_0) {
} else {
field_0xb0.set(*param_0);
}
field_0x38.x = field_0xb0.x;
field_0x38.y = field_0xb0.y;
field_0x38.z = field_0xb0.z;
+37 -40
View File
@@ -20,11 +20,11 @@ dShopItemCtrl_c::~dShopItemCtrl_c() {}
/* 801969A0-80196A3C 1912E0 009C+00 0/0 3/3 3/3 .text getCurrentPos__15dShopItemCtrl_cFi
*/
cXyz dShopItemCtrl_c::getCurrentPos(int item_index) {
cXyz dShopItemCtrl_c::getCurrentPos(int i_itemIdx) {
cXyz item_pos(0.0f, 0.0f, 0.0f);
if (mItemIndex[item_index] != -1) {
fopAc_ac_c* item = fopAcM_SearchByID(mItemIndex[item_index]);
if (mItemIndex[i_itemIdx] != -1) {
fopAc_ac_c* item = fopAcM_SearchByID(mItemIndex[i_itemIdx]);
if (item != NULL) {
item_pos.set(item->current.pos);
}
@@ -34,15 +34,16 @@ cXyz dShopItemCtrl_c::getCurrentPos(int item_index) {
}
/* 80196A3C-80196AF0 19137C 00B4+00 0/0 2/2 0/0 .text isHomePos__15dShopItemCtrl_cFi */
bool dShopItemCtrl_c::isHomePos(int item_index) {
if (item_index >= 0 && item_index < 7 && mItemIndex[item_index] != -1) {
daShopItem_c* item = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[item_index]);
bool dShopItemCtrl_c::isHomePos(int i_itemIdx) {
if (i_itemIdx >= 0 && i_itemIdx < 7 && mItemIndex[i_itemIdx] != -1) {
daShopItem_c* item = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[i_itemIdx]);
if (item != NULL) {
cXyz* item_pos = item->getPosP();
cXyz item_home = item->orig.pos;
if (item_pos->x == item_home.x && item_pos->y == item_home.y &&
item_pos->z == item_home.z) {
item_pos->z == item_home.z)
{
return true;
}
}
@@ -53,14 +54,14 @@ bool dShopItemCtrl_c::isHomePos(int item_index) {
/* 80196AF0-80196BA4 191430 00B4+00 0/0 1/1 0/0 .text setRotateAnime__15dShopItemCtrl_cFi
*/
void dShopItemCtrl_c::setRotateAnime(int item_index) {
void dShopItemCtrl_c::setRotateAnime(int i_itemIdx) {
for (int i = 0; i < 7; i++) {
if (mItemIndex[i] != -1) {
daShopItem_c* item = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[i]);
if (item != NULL) {
csXyz* item_rot = item->getRotateP();
if (i == item_index - 1) {
if (i == i_itemIdx - 1) {
item_rot->y += 0x200;
} else {
cLib_addCalcAngleS(&item_rot->y, item->orig.angle.y, 4, 0x800, 0x80);
@@ -76,47 +77,43 @@ void dShopItemCtrl_c::setZoomAnime(int param_1, cXyz* param_2, s16 param_3, bool
if (mItemIndex[i] == -1) {
continue;
}
daShopItem_c* shopItem = (daShopItem_c*) fopAcM_SearchByID(mItemIndex[i]);
daShopItem_c* shopItem = (daShopItem_c*)fopAcM_SearchByID(mItemIndex[i]);
if (shopItem == NULL) {
continue;
}
cXyz* this_01 = shopItem->getPosP();
cXyz cStack_44 = shopItem->orig.pos;
cXyz cStack_50 = *param_2 - cStack_44;
s16 local_5e = shopItem->getAngleX();
s16 local_60 = shopItem->getAngleY();
cXyz* pos_p = shopItem->getPosP();
cXyz target_pos = shopItem->orig.pos;
cXyz cStack_50 = *param_2 - target_pos;
s16 x_angle = shopItem->getAngleX();
s16 y_angle = shopItem->getAngleY();
if (i == param_1 - 1 && param_4 == true) {
cLib_addCalcPos2(
this_01,
*param_2,
0.5f,
0.05f * cStack_50.abs()
);
cLib_addCalcAngleS(&local_5e, param_3, 4, 0x800, 0x80);
shopItem->setAngleX(local_5e);
cLib_addCalcAngleS(&local_60, shopItem->orig.angle.y, 4, 0x800, 0x80);
shopItem->setAngleY(local_60);
cLib_addCalcPos2(pos_p, *param_2, 0.5f, 0.05f * cStack_50.abs());
cLib_addCalcAngleS(&x_angle, param_3, 4, 0x800, 0x80);
shopItem->setAngleX(x_angle);
cLib_addCalcAngleS(&y_angle, shopItem->orig.angle.y, 4, 0x800, 0x80);
shopItem->setAngleY(y_angle);
} else {
cLib_addCalcPos2(
this_01,
cStack_44,
0.5f,
0.1f * cStack_50.abs());
cXyz cStack_5c = *this_01 - cStack_44;
cLib_addCalcPos2(pos_p, target_pos, 0.5f, 0.1f * cStack_50.abs());
cXyz cStack_5c = *pos_p - target_pos;
if (cStack_5c.abs() < 0.01f) {
this_01->set(shopItem->orig.pos);
pos_p->set(shopItem->orig.pos);
}
cLib_addCalcAngleS(&local_5e, 0, 4, 0x800, 0x80);
if (local_5e <= 0x80) {
local_5e = 0;
cLib_addCalcAngleS(&x_angle, 0, 4, 0x800, 0x80);
if (x_angle <= 0x80) {
x_angle = 0;
}
shopItem->setAngleX(local_5e);
cLib_addCalcAngleS(&local_60, 0, 4, 0x800, 0x80);
if (local_60 <= 0x80) {
local_60 = 0;
shopItem->setAngleX(x_angle);
cLib_addCalcAngleS(&y_angle, 0, 4, 0x800, 0x80);
if (y_angle <= 0x80) {
y_angle = 0;
}
shopItem->setAngleY(local_60);
shopItem->setAngleY(y_angle);
}
}
}
File diff suppressed because it is too large Load Diff
+74 -95
View File
@@ -9,6 +9,7 @@
#include "SSystem/SComponent/c_malloc.h"
#include "SSystem/SComponent/c_math.h"
#include "d/a/d_a_player.h"
#include "d/d_item.h"
#include "d/d_path.h"
#include "d/d_procname.h"
#include "dol2asm.h"
@@ -21,6 +22,9 @@
#include "m_Do/m_Do_mtx.h"
#include "rel/d/a/tag/d_a_tag_stream/d_a_tag_stream.h"
#define MAKE_ITEM_PARAMS(itemNo, itemBitNo, param_2, param_3) \
((itemNo & 0xFF) << 0 | (itemBitNo & 0xFF) << 0x8 | param_2 << 0x10 | (param_3 & 0xF) << 0x18)
//
// Types:
//
@@ -29,11 +33,6 @@ struct l_HIO {
/* 8001E098 */ ~l_HIO();
};
class dEnemyItem_c {
public:
static u8* mData;
};
//
// Forward References:
//
@@ -156,9 +155,9 @@ extern "C" static void func_8001E104();
extern "C" static void func_8001E10C();
extern "C" static void func_8001E114();
extern "C" void onFrollCrashFlg__9daPy_py_cFUci();
extern "C" bool checkWolfDash__9daPy_py_cCFv();
extern "C" bool checkFrontRoll__9daPy_py_cCFv();
extern "C" bool checkHorseRide__9daPy_py_cCFv();
extern "C" int checkWolfDash__9daPy_py_cCFv();
extern "C" int checkFrontRoll__9daPy_py_cCFv();
extern "C" u32 checkHorseRide__9daPy_py_cCFv();
extern "C" s32 getGrabActorID__9daPy_py_cCFv();
extern "C" extern char const* const f_op_f_op_actor_mng__stringBase0;
extern "C" u8 mLineCheck__11fopAcM_lc_c[112];
@@ -171,7 +170,7 @@ extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
// TODO: move
u32 check_itemno(int param1);
u8 check_itemno(int param1);
BOOL isHeart(u8);
//
@@ -807,7 +806,7 @@ s16 fopAcM_searchActorAngleX(const fopAc_ac_c* i_actorA, const fopAc_ac_c* i_act
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
#pragma optimizewithasm off
asm s16 fopAcM_searchActorAngleX(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB) {
nofralloc
#include "asm/f_op/f_op_actor_mng/fopAcM_searchActorAngleX__FPC10fopAc_ac_cPC10fopAc_ac_c.s"
@@ -1067,11 +1066,13 @@ s32 fopAcM_cullingCheck(fopAc_ac_c const* i_actor) {
if (fopAcM_GetCullSize(i_actor) == 14) {
if (fopAcM_getCullSizeFar(i_actor) > 0.0f) {
mDoLib_clipper::changeFar(cullsize_far * mDoLib_clipper::getFar());
u32 ret = mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax, &i_actor->mCull.mBox.mMin);
u32 ret = mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax,
&i_actor->mCull.mBox.mMin);
mDoLib_clipper::resetFar();
return ret;
} else {
return mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax, &i_actor->mCull.mBox.mMin);
return mDoLib_clipper::clip(mtx_p, &i_actor->mCull.mBox.mMax,
&i_actor->mCull.mBox.mMin);
}
} else {
cull_box* box = &l_cullSizeBox[cullsize];
@@ -1096,7 +1097,7 @@ s32 fopAcM_cullingCheck(fopAc_ac_c const* i_actor) {
center.x = center_p->x;
center.y = center_p->y;
center.z = center_p->z;
u32 ret = mDoLib_clipper::clip(mtx_p, center, radius);
mDoLib_clipper::resetFar();
return ret;
@@ -1668,20 +1669,11 @@ void* fopAcM_createItemForSimpleDemo(const cXyz* i_pos, int i_itemNo, int i_room
0x4, NULL);
}
inline u32 maskShift(int val, int bits, int shift) {
return (val & ((1 << bits) - 1)) << shift;
}
inline u32 makeItemParams(u32 iNo, u32 p8, u32 unk, u32 p9) {
return maskShift(p8, 8, 0x8) | maskShift(iNo, 8, 0) | maskShift(unk, 8, 0x10) |
maskShift(p9, 4, 0x18);
}
/* 8001C240-8001C3E0 016B80 01A0+00 1/1 1/1 17/17 .text
* fopAcM_createItem__FPC4cXyziiiPC5csXyzPC4cXyzi */
s32 fopAcM_createItem(const cXyz* i_pos, int itemNo, int param_3, int i_roomNo,
s32 fopAcM_createItem(const cXyz* i_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
const csXyz* i_angle, const cXyz* i_scale, int param_7) {
if (itemNo == NO_ITEM) {
if (i_itemNo == NO_ITEM) {
return -1;
}
@@ -1689,67 +1681,66 @@ s32 fopAcM_createItem(const cXyz* i_pos, int itemNo, int param_3, int i_roomNo,
if (i_angle != NULL) {
item_angle = *i_angle;
} else {
item_angle.y = cM_rndFX(32767.0f);
item_angle.y = cM_rndFX(0x7FFF);
}
item_angle.z = 0xFF;
u32 itemActorParams = makeItemParams(check_itemno(itemNo), param_3, 0xFF, param_7);
u8 item_no = check_itemno(i_itemNo);
u32 params = MAKE_ITEM_PARAMS(item_no, i_itemBitNo, 0xFF, param_7);
switch (itemNo) {
switch (i_itemNo) {
case RECOVERY_FAILY:
return fopAcM_create(PROC_Obj_Yousei, 0xFFFFFFFF, i_pos, i_roomNo, i_angle, i_scale, -1);
case KAKERA_HEART:
case UTAWA_HEART:
return fopAcM_create(PROC_Obj_LifeContainer, itemActorParams, i_pos, i_roomNo, i_angle,
i_scale, -1);
return fopAcM_create(PROC_Obj_LifeContainer, params, i_pos, i_roomNo, i_angle, i_scale, -1);
case TRIPLE_HEART:
for (int i = 0; i < 2; i++) {
fopAcM_create(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale, -1);
fopAcM_create(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1);
item_angle.y = cM_rndFX(32767.0f);
}
default:
return fopAcM_create(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale, -1);
return fopAcM_create(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1);
}
}
/* 8001C3E0-8001C5B0 016D20 01D0+00 1/1 0/0 0/0 .text
* fopAcM_fastCreateItem2__FPC4cXyziiiiPC5csXyzPC4cXyz */
void* fopAcM_fastCreateItem2(const cXyz* i_pos, int itemNo, int param_3, int i_roomNo, int param_5,
const csXyz* i_angle, const cXyz* i_scale) {
void* fopAcM_fastCreateItem2(const cXyz* i_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
int param_5, const csXyz* i_angle, const cXyz* i_scale) {
csXyz item_angle(csXyz::Zero);
if (itemNo == NO_ITEM) {
if (i_itemNo == NO_ITEM) {
return NULL;
}
if (i_angle != NULL) {
item_angle = *i_angle;
} else {
item_angle.y = cM_rndFX(32767.0f);
item_angle.y = cM_rndFX(0x7FFF);
}
item_angle.z = 0xFF;
int tmpItemNo = check_itemno(itemNo);
u32 itemActorParams =
(param_3 & 0xFF) << 0x8 | (tmpItemNo & 0xFF) | 0xFF << 0x10 | ((param_5 & 0xF) << 0x18);
u8 item_no = check_itemno(i_itemNo);
u32 params = MAKE_ITEM_PARAMS(item_no, i_itemBitNo, 0xFF, param_5);
switch (itemNo) {
switch (i_itemNo) {
case RECOVERY_FAILY:
return fopAcM_fastCreate(PROC_Obj_Yousei, 0xFFFFFFFF, i_pos, i_roomNo, i_angle, i_scale, -1,
NULL, NULL);
case KAKERA_HEART:
case UTAWA_HEART:
return fopAcM_fastCreate(PROC_Obj_LifeContainer, itemActorParams, i_pos, i_roomNo, i_angle,
i_scale, -1, NULL, NULL);
return fopAcM_fastCreate(PROC_Obj_LifeContainer, params, i_pos, i_roomNo, i_angle, i_scale,
-1, NULL, NULL);
case TRIPLE_HEART:
for (int i = 0; i < 2; i++) {
fopAcM_fastCreate(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale, -1,
NULL, NULL);
item_angle.y = cM_rndFX(32767.0f);
fopAcM_fastCreate(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1, NULL,
NULL);
item_angle.y = cM_rndFX(0x7FFF);
}
default:
return fopAcM_fastCreate(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &item_angle, i_scale,
-1, NULL, NULL);
return fopAcM_fastCreate(PROC_ITEM, params, i_pos, i_roomNo, &item_angle, i_scale, -1, NULL,
NULL);
}
}
@@ -1763,60 +1754,54 @@ SECTION_SDATA2 static f32 lit_5809 = 8192.0f;
/* 80451C38-80451C3C 000238 0004+00 4/4 0/0 0/0 .sdata2 @5810 */
SECTION_SDATA2 static f32 lit_5810 = 1.0f;
/* 80451C3C-80451C40 00023C 0004+00 1/1 0/0 0/0 .sdata2 @5811 */
SECTION_SDATA2 static f32 lit_5811 = 3.0f / 10.0f;
/* 80451C40-80451C44 000240 0004+00 1/1 0/0 0/0 .sdata2 @5812 */
SECTION_SDATA2 static f32 lit_5812 = 1.0f / 5.0f;
/* 8001C5B0-8001C870 016EF0 02C0+00 3/3 0/0 4/4 .text
* fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i */
// issue with makeItemParams
#ifdef NONMATCHING
void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const csXyz* i_angle,
const cXyz* i_scale, f32* p_speedF, f32* p_speedY, int param_8,
const cXyz* i_scale, f32* p_speedF, f32* p_speedY, int i_itemBitNo,
int param_9, createFunc i_createFunc) {
csXyz angle;
if (i_itemNo == NO_ITEM) {
return NULL;
}
u32 itemActorParams = makeItemParams(check_itemno(i_itemNo), param_8, 0xFF, param_9);
int i;
u8 item_no = check_itemno(i_itemNo);
u8 item_bit_no = i_itemBitNo;
u32 params = MAKE_ITEM_PARAMS(item_no, item_bit_no, 0xFF, param_9);
if (p_speedF != NULL && isHeart(i_itemNo)) {
*p_speedF = *p_speedF * 2.0f;
*p_speedF = lit_5808 * *p_speedF;
}
csXyz angle;
switch (i_itemNo) {
case RECOVERY_FAILY:
return fopAcM_fastCreate(PROC_Obj_Yousei, 0xFFFFFFFF, i_pos, i_roomNo, i_angle, i_scale, -1,
NULL, NULL);
case KAKERA_HEART:
case UTAWA_HEART:
return fopAcM_fastCreate(PROC_Obj_LifeContainer, itemActorParams, i_pos, i_roomNo, i_angle,
i_scale, -1, NULL, NULL);
return fopAcM_fastCreate(PROC_Obj_LifeContainer, params, i_pos, i_roomNo, i_angle, i_scale,
-1, NULL, NULL);
case TRIPLE_HEART:
for (int i = 0; i < 2; i++) {
for (i = 0; i < 2; i++) {
if (i_angle != NULL) {
angle = *i_angle;
} else {
angle = csXyz::Zero;
}
angle.z = 0xFF;
angle.y += (s16)cM_rndFX(8192.0f);
angle.y += (s16)cM_rndFX(lit_5809);
fopAc_ac_c* actor =
(fopAc_ac_c*)fopAcM_fastCreate(PROC_ITEM, itemActorParams, i_pos, i_roomNo, &angle,
i_scale, -1, i_createFunc, NULL);
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(
PROC_ITEM, params, i_pos, i_roomNo, &angle, i_scale, -1, i_createFunc, NULL);
if (actor != NULL) {
if (p_speedF != NULL) {
actor->speedF = *p_speedF * (1.0f + cM_rndFX(0.3f));
actor->speedF = *p_speedF * (lit_5810 + cM_rndFX(0.3f));
}
if (p_speedY != NULL) {
actor->speed.y = *p_speedY * (1.0f + cM_rndFX(0.2f));
actor->speed.y = *p_speedY * (lit_5810 + cM_rndFX(0.2f));
}
}
}
@@ -1828,8 +1813,8 @@ void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const
}
angle.z = 0xFF;
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(
PROC_ITEM, itemActorParams, i_pos, i_roomNo, &angle, i_scale, -1, i_createFunc, NULL);
fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_ITEM, params, i_pos, i_roomNo,
&angle, i_scale, -1, i_createFunc, NULL);
if (actor != NULL) {
if (p_speedF != NULL) {
@@ -1844,18 +1829,6 @@ void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const
return actor;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* fopAcM_fastCreateItem(const cXyz* i_pos, int i_itemNo, int i_roomNo, const csXyz* i_angle,
const cXyz* i_scale, f32* p_speedF, f32* p_speedY, int param_8,
int param_9, createFunc i_createFunc) {
nofralloc
#include "asm/f_op/f_op_actor_mng/fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i.s"
}
#pragma pop
#endif
/* 8001C870-8001C95C 0171B0 00EC+00 0/0 0/0 1/1 .text fopAcM_createBokkuri__FUsPC4cXyziiiPC4cXyzii
*/
@@ -1910,7 +1883,7 @@ fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 i_roomNo) {
return actor;
}
return (fopAc_ac_c*) fpcM_JudgeInLayer(fpcM_LayerID(roomProc), enemySearchJugge, NULL);
return (fopAc_ac_c*)fpcM_JudgeInLayer(fpcM_LayerID(roomProc), enemySearchJugge, NULL);
}
/* 8001CAD8-8001CB48 017418 0070+00 0/0 0/0 81/81 .text
@@ -2104,7 +2077,7 @@ f32 fopAcM_gc_c::mGroundY;
/* 8001D020-8001D10C 017960 00EC+00 0/0 0/0 96/96 .text
* fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci */
void fopAcM_effSmokeSet1(u32* param_0, u32* param_1, cXyz const* param_2, csXyz const* param_3,
f32 param_4, dKy_tevstr_c const* param_5, int param_6) {
f32 param_4, dKy_tevstr_c const* param_5, int param_6) {
cXyz p2;
float z = param_2->z;
float y = FLOAT_LABEL(lit_6035) + param_2->y;
@@ -2117,7 +2090,9 @@ void fopAcM_effSmokeSet1(u32* param_0, u32* param_1, cXyz const* param_2, csXyz
stack_18.x = param_4;
stack_18.y = param_4;
stack_18.z = param_4;
*param_0 = dComIfGp_particle_setSimpleFoot(*param_0, param_1, *fopAcM_gc_c::getGroundCheck(), &p2, param_5, param_6, param_3, &stack_18, NULL, 0xff, NULL);
*param_0 =
dComIfGp_particle_setSimpleFoot(*param_0, param_1, *fopAcM_gc_c::getGroundCheck(), &p2,
param_5, param_6, param_3, &stack_18, NULL, 0xff, NULL);
}
}
@@ -2421,9 +2396,9 @@ s32 fopAcM_getWaterStream(cXyz const* param_0, cBgS_PolyInfo const& param_1, cXy
daTagStream_c* stream = daTagStream_c::getTop();
if (stream != NULL) {
for (stream = daTagStream_c::getTop(); stream != NULL; stream = stream->getNext()) {
if (stream->checkStreamOn() &&
(param_4 == 0 || stream->checkCanoeOn()) &&
stream->checkArea(param_0)) {
if (stream->checkStreamOn() && (param_4 == 0 || stream->checkCanoeOn()) &&
stream->checkArea(param_0))
{
*speed = stream->speed;
*param_3 = stream->getPower() & 0xff;
return 1;
@@ -2521,8 +2496,7 @@ asm s16 fopAcM_getPolygonAngle(cM3dGPla const* param_0, s16 param_1) {
/* 8001DC68-8001DCBC 0185A8 0054+00 0/0 5/5 21/21 .text
* lineCheck__11fopAcM_lc_cFPC4cXyzPC4cXyzPC10fopAc_ac_c */
bool fopAcM_lc_c::lineCheck(cXyz const* param_0, cXyz const* param_1,
fopAc_ac_c const* param_2) {
bool fopAcM_lc_c::lineCheck(cXyz const* param_0, cXyz const* param_1, fopAc_ac_c const* param_2) {
((dBgS_LinChk*)mLineCheck)->Set(param_0, param_1, param_2);
dComIfG_Bgsp().LineCross((cBgS_LinChk*)mLineCheck);
}
@@ -2783,27 +2757,32 @@ static asm void func_8001E114() {
#pragma pop
/* 8001E11C-8001E120 018A5C 0004+00 0/0 1/0 0/0 .text onFrollCrashFlg__9daPy_py_cFUci */
void daPy_py_c::onFrollCrashFlg(u8 param_0, int param_1) {
// void daPy_py_c::onFrollCrashFlg(u8 param_0, int param_1) {
extern "C" void onFrollCrashFlg__9daPy_py_cFUci() {
/* empty function */
}
/* 8001E120-8001E128 018A60 0008+00 0/0 1/0 0/0 .text checkWolfDash__9daPy_py_cCFv */
int daPy_py_c::checkWolfDash() const {
// int daPy_py_c::checkWolfDash() const {
extern "C" int checkWolfDash__9daPy_py_cCFv() {
return false;
}
/* 8001E128-8001E130 018A68 0008+00 0/0 1/0 0/0 .text checkFrontRoll__9daPy_py_cCFv */
int daPy_py_c::checkFrontRoll() const {
// int daPy_py_c::checkFrontRoll() const {
extern "C" int checkFrontRoll__9daPy_py_cCFv() {
return false;
}
/* 8001E130-8001E138 018A70 0008+00 0/0 1/0 0/0 .text checkHorseRide__9daPy_py_cCFv */
u32 daPy_py_c::checkHorseRide() const {
// u32 daPy_py_c::checkHorseRide() const {
extern "C" u32 checkHorseRide__9daPy_py_cCFv() {
return false;
}
/* 8001E138-8001E140 018A78 0008+00 0/0 1/0 0/0 .text getGrabActorID__9daPy_py_cCFv */
s32 daPy_py_c::getGrabActorID() const {
// s32 daPy_py_c::getGrabActorID() const {
extern "C" s32 getGrabActorID__9daPy_py_cCFv() {
return -1;
}
+274 -240
View File
@@ -4,10 +4,10 @@
*/
#include "m_Do/m_Do_graphic.h"
#include "JSystem/J2DGraph/J2DPrint.h"
#include "JSystem/JUtility/JUTDbPrint.h"
#include "JSystem/JUtility/JUTProcBar.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "JSystem/J2DGraph/J2DPrint.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/menu/d_menu_collect.h"
@@ -17,8 +17,8 @@
#include "global.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_machine.h"
#include "m_Do/m_Do_mtx.h"
#include "m_Do/m_Do_main.h"
#include "m_Do/m_Do_mtx.h"
//
// Types:
@@ -159,7 +159,7 @@ static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
ResTIMG* timg;
void* alloc_res = JKRHeap::alloc(bufferSize, 0x20, NULL);
timg = (ResTIMG*) alloc_res;
timg = (ResTIMG*)alloc_res;
if (timg == NULL) {
return NULL;
@@ -594,186 +594,216 @@ SECTION_SDATA2 static f32 lit_4442 = -0.0025f;
// regalloc
#ifdef NONMATCHING
static void drawDepth2(view_class* param_0, view_port_class* param_1, int param_2) {
if (dComIfGp_getLinkPlayer() == NULL) {
return;
}
s16 x_orig;
s16 y_orig;
s16 y_orig_pos;
s16 width;
s16 height;
void* zBufferTex;
void* frameBufferTex;
if ((s32)data_80450BE7 != 0) {
f32 auStack_d8[7];
f32 auStack_f0[6];
f32 auStack_110;
f32 auStack_114;
f32 local_118;
GXGetProjectionv(auStack_d8);
GXGetViewportv(auStack_f0);
GXProject(param_0->mLookat.mCenter.x, param_0->mLookat.mCenter.y,
param_0->mLookat.mCenter.z, (MtxP)param_0->mViewMtx, (f32*)auStack_d8, (f32*)auStack_f0,
&auStack_110, &auStack_114, &local_118);
}
u16 halfWidth;
u16 halfHeight;
camera_class* local_120 = dComIfGp_getCamera(0);
f32 f30 = -255.0f;
if (dCam_getBody()->mNextMode != 4 && dCam_getBody()->mNextMode != 7) {
camera_class* local_128 = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
dAttention_c& local_12c = dComIfGp_getAttention();
f32 f31 = 60.0f / (local_128 ? fopCamM_GetFovy(local_128) : 48.0f);
if (local_12c.LockonTruth()) {
fopAc_ac_c* local_130 = fopAcM_SearchByID(daPy_getLinkPlayerActorClass()->getAtnActorID());
if (local_130 != NULL) {
cXyz cStack_100 = local_130->mEyePos;
if (fabsf(cStack_100.y - local_120->mLookat.mEye.y) < 400.0f) {
cStack_100.y = local_120->mLookat.mEye.y;
f32* temp_r20;
if (daPy_getLinkPlayerActorClass() != NULL) {
if (mDoGph_gInf_c::isAutoForcus()) {
f32 sp4C[7];
f32 sp34[6];
f32 sp1C;
f32 sp18;
f32 sp14;
GXGetProjectionv(sp4C);
GXGetViewportv(sp34);
GXProject(param_0->mLookat.mCenter.x, param_0->mLookat.mCenter.y,
param_0->mLookat.mCenter.z, param_0->mViewMtx, sp4C, sp34, &sp1C, &sp18,
&sp14);
}
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
camera_class* camera_p = (camera_class*)dComIfGp_getCamera(0);
f32 var_f30 = -255.0f;
if (dCam_getBody()->Mode() != 4 && dCam_getBody()->Mode() != 7) {
camera_class* temp_r4 = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
dAttention_c& local_12c = dComIfGp_getAttention();
f32 temp_f31 = 60.0f / (temp_r4 ? fopCamM_GetFovy(temp_r4) : 48.0f);
if (local_12c.LockonTruth()) {
fopAc_ac_c* atn_actor =
fopAcM_SearchByID(daPy_getLinkPlayerActorClass()->getAtnActorID());
if (atn_actor != NULL) {
cXyz sp28 = atn_actor->mEyePos;
if (fabsf(sp28.y - camera_p->mLookat.mEye.y) < 400.0f) {
sp28.y = camera_p->mLookat.mEye.y;
}
f32 var_f2 =
(atn_actor->current.pos.abs(camera_p->mLookat.mEye)) / (280.0f * temp_f31);
var_f2 -= 0.8f;
if (var_f2 < 0.0f) {
var_f2 = 0.0f;
} else if (var_f2 > 1.0f) {
var_f2 = 1.0f;
}
var_f30 = -180.0f - 75.0f * var_f2;
}
f32 fVar2 = (local_130->current.pos.abs(local_120->mLookat.mEye)) / (280.0f * f31);
fVar2 -= 0.8f;
if (fVar2 < 0.0f) {
fVar2 = 0.0f;
} else if (fVar2 > 1.0f) {
fVar2 = 1.0f;
} else if (g_dComIfG_gameInfo.play.getEvent().runCheck() && temp_f31 < 3.0f &&
g_env_light.field_0x126c < 999999.0f)
{
f32 var_f2 = g_env_light.field_0x126c / (80.0f * temp_f31);
var_f2 -= 0.8f;
if (var_f2 < 0.0f) {
var_f2 = 0.0f;
} else if (var_f2 > 1.0f) {
var_f2 = 1.0f;
}
f30 = -180.0f - 75.0f * fVar2;
}
} else {
if (g_dComIfG_gameInfo.play.getEvent().runCheck() && f31 < 3.0f && g_env_light.field_0x126c < 999999.0f) {
f32 fVar2 = g_env_light.field_0x126c / (80.0f * f31);
fVar2 -= 0.8f;
if (fVar2 < 0.0f) {
fVar2 = 0.0f;
} else if (fVar2 > 1.0f) {
fVar2 = 1.0f;
}
f30 = -180.0f - 75.0f * fVar2;
var_f30 = -180.0f - 75.0f * var_f2;
}
}
temp_r20 = &g_env_light.field_0x1264;
cLib_addCalc(temp_r20, var_f30, 0.1f, 100.0f, 0.0001f);
l_tevColor0.a = *temp_r20;
if (l_tevColor0.a <= -254) {
l_tevColor0.a = -255;
}
x_orig = (int)param_1->mXOrig & ~7;
y_orig = (int)param_1->mYOrig & ~7;
y_orig_pos = y_orig < 0 ? 0 : y_orig;
width = (int)param_1->mWidth & ~7;
height = (int)param_1->mHeight & ~7;
zBufferTex = mDoGph_gInf_c::mZbufferTex;
frameBufferTex = mDoGph_gInf_c::mFrameBufferTex;
if (y_orig < 0) {
height += y_orig;
s16 tmp_y_orig = -y_orig >> 1;
zBufferTex =
(char*)zBufferTex + GXGetTexBufferSize(304, tmp_y_orig, GX_TF_IA8, GX_FALSE, 0);
frameBufferTex =
(char*)frameBufferTex +
GXGetTexBufferSize(304, tmp_y_orig, mDoGph_gInf_c::getFrameBufferTimg()->format,
GX_FALSE, 0);
}
halfWidth = width >> 1;
halfHeight = height >> 1;
GXSetCopyFilter(GX_FALSE, NULL, GX_TRUE, JUTGetVideoManager()->getRenderMode()->vfilter);
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
GXSetTexCopyDst(halfWidth, halfHeight, GX_TF_Z16, GX_TRUE);
GXCopyTex(zBufferTex, GX_FALSE);
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
GXSetTexCopyDst(halfWidth, halfHeight,
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
GXCopyTex(frameBufferTex, GX_FALSE);
GXInitTexObj(mDoGph_gInf_c::getZbufferTexObj(), zBufferTex, halfWidth, halfHeight,
GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getZbufferTexObj(), GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f,
GX_FALSE, GX_FALSE, GX_ANISO_1);
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), frameBufferTex, halfWidth, halfHeight,
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP,
GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f,
0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXPixModeSync();
GXInvalidateTexAll();
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP1);
GXLoadTexObj(mDoGph_gInf_c::getZbufferTexObj(), GX_TEXMAP0);
if (0.0f != g_env_light.mDemoAttentionPoint) {
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
l_tevColor0.a = -254.0f + 509.0f * g_env_light.mDemoAttentionPoint;
} else {
l_tevColor0.a = -254.0f + 509.0f * (1.0f + g_env_light.mDemoAttentionPoint);
}
}
GXSetTevColorS10(GX_TEVREG0, l_tevColor0);
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_ALPHA, GX_CH_GREEN, GX_CH_BLUE, GX_CH_RED);
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP3);
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_COMP_A8_EQ, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_TEXA, GX_CA_A0);
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVPREV);
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD2, GX_TEXMAP1, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_CPREV, GX_CC_TEXC, GX_CC_HALF, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetZCompLoc(GX_TRUE);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
} else {
GXSetBlendMode(GX_BM_BLEND, GX_BL_INV_SRC_ALPHA, GX_BL_SRC_ALPHA, GX_LO_CLEAR);
GXSetAlphaCompare(GX_LESS, 0xff, GX_AOP_OR, GX_LESS, 0xff);
}
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_TRUE);
GXSetNumIndStages(0);
Mtx44 ortho;
C_MTXOrtho(ortho, param_1->mYOrig, param_1->mYOrig + param_1->mHeight, param_1->mXOrig,
param_1->mXOrig + param_1->mWidth, 0.0f, 10.0f);
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
mDoMtx_stack_c::transS(0.0025f, 0.0025f, 0.0f);
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x1e, GX_MTX2x4);
mDoMtx_stack_c::transS(-0.0025f, -0.0025f, 0.0f);
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x21, GX_MTX2x4);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, GX_FALSE, 0x7d);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, GX_FALSE, 0x7d);
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7d);
GXSetNumChans(0);
GXSetNumTexGens(3);
GXSetNumTevStages(4);
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
GXSetCurrentMtx(0);
if (l_tevColor0.a > -255) {
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3s16(x_orig, y_orig, -5);
GXTexCoord2s8(0, 0);
GXPosition3s16(width, y_orig, -5);
GXTexCoord2s8(1, 0);
GXPosition3s16(width, height, -5);
GXTexCoord2s8(1, 1);
GXPosition3s16(x_orig, height, -5);
GXTexCoord2s8(0, 1);
GXEnd();
}
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE);
}
cLib_addCalc(&g_env_light.field_0x1264, f30, 0.1f, 100.0f, 0.0001f);
l_tevColor0.a = g_env_light.field_0x1264;
if (l_tevColor0.a <= -254) {
l_tevColor0.a = -255;
}
s16 x_orig = (int)param_1->mXOrig & ~7;
s16 y_orig = (int)param_1->mYOrig & ~7;
s16 y_orig_pos = y_orig < 0 ? 0 : y_orig;
s16 width = (int)param_1->mWidth & ~7;
s16 height = (int)param_1->mHeight & ~7;
void* zBufferTex = mDoGph_gInf_c::mZbufferTex;
void* frameBufferTex = mDoGph_gInf_c::mFrameBufferTex;
if (y_orig < 0) {
height += y_orig;
s16 tmp_y_orig = -y_orig >> 1;
zBufferTex = (char*)zBufferTex + GXGetTexBufferSize(304, tmp_y_orig,
GX_TF_IA8,
GX_FALSE, 0);
frameBufferTex = (char*)frameBufferTex + GXGetTexBufferSize(304, tmp_y_orig,
mDoGph_gInf_c::getFrameBufferTimg()->format,
GX_FALSE, 0);
}
u16 halfWidth = width >> 1;
u16 halfHeight = height >> 1;
GXSetCopyFilter(GX_FALSE, NULL, GX_TRUE, JUTGetVideoManager()->getRenderMode()->vfilter);
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
GXSetTexCopyDst(halfWidth, halfHeight, GX_TF_Z16, GX_TRUE);
GXCopyTex(zBufferTex, GX_FALSE);
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
GXSetTexCopyDst(halfWidth, halfHeight, mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
GXCopyTex(frameBufferTex, GX_FALSE);
GXInitTexObj(mDoGph_gInf_c::getZbufferTexObj(), zBufferTex, halfWidth, halfHeight, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getZbufferTexObj(), GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), frameBufferTex, halfWidth, halfHeight, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXPixModeSync();
GXInvalidateTexAll();
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP1);
GXLoadTexObj(mDoGph_gInf_c::getZbufferTexObj(), GX_TEXMAP0);
if (0.0f != g_env_light.mDemoAttentionPoint) {
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
l_tevColor0.a = -254.0f + 509.0f * g_env_light.mDemoAttentionPoint;
} else {
l_tevColor0.a = -254.0f + 509.0f * (1.0f + g_env_light.mDemoAttentionPoint);
}
}
GXSetTevColorS10(GX_TEVREG0, l_tevColor0);
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_ALPHA, GX_CH_GREEN, GX_CH_BLUE, GX_CH_RED);
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP3);
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_COMP_A8_EQ, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_TEXA, GX_CA_A0);
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVPREV);
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD2, GX_TEXMAP1, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_CPREV, GX_CC_TEXC, GX_CC_HALF, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetZCompLoc(GX_TRUE);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
} else {
GXSetBlendMode(GX_BM_BLEND, GX_BL_INV_SRC_ALPHA, GX_BL_SRC_ALPHA, GX_LO_CLEAR);
GXSetAlphaCompare(GX_LESS, 0xff, GX_AOP_OR, GX_LESS, 0xff);
}
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_TRUE);
GXSetNumIndStages(0);
Mtx44 ortho;
C_MTXOrtho(ortho, param_1->mYOrig, param_1->mYOrig + param_1->mHeight, param_1->mXOrig, param_1->mXOrig + param_1->mWidth, 0.0f, 10.0f);
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
mDoMtx_stack_c::transS(0.0025f, 0.0025f, 0.0f);
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x1e, GX_MTX2x4);
mDoMtx_stack_c::transS(-0.0025f, -0.0025f, 0.0f);
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x21, GX_MTX2x4);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, GX_FALSE, 0x7d);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, GX_FALSE, 0x7d);
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7d);
GXSetNumChans(0);
GXSetNumTexGens(3);
GXSetNumTevStages(4);
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
GXSetCurrentMtx(0);
if (l_tevColor0.a > -255) {
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3s16(x_orig, y_orig, -5);
GXTexCoord2s8(0,0);
GXPosition3s16(width, y_orig, -5);
GXTexCoord2s8(1,0);
GXPosition3s16(width, height, -5);
GXTexCoord2s8(1,1);
GXPosition3s16(x_orig, height, -5);
GXTexCoord2s8(0,1);
GXEnd();
}
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE);
}
#else
#pragma push
@@ -812,7 +842,7 @@ static void trimming(view_class* param_0, view_port_class* param_1) {
s16 y_orig = (int)param_1->mYOrig & ~7;
s16 y_orig_pos = y_orig < 0 ? 0 : y_orig;
if ((y_orig_pos == 0) && (param_1->mScissor.mYOrig != param_1->mYOrig ||
(param_1->mScissor.mHeight != param_1->mHeight)))
(param_1->mScissor.mHeight != param_1->mHeight)))
{
s32 sc_top = (int)param_1->mScissor.mYOrig;
s32 sc_bottom = param_1->mScissor.mYOrig + param_1->mScissor.mHeight;
@@ -822,27 +852,19 @@ static void trimming(view_class* param_0, view_port_class* param_1) {
GXSetNumTevStages(1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetZCompLoc(1);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
GXSetFog(GX_FOG_NONE, 0.0f,
0.0f, 0.0f,
0.0f, g_clearColor);
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_TRUE);
GXSetNumIndStages(0);
Mtx44 ortho;
C_MTXOrtho(
ortho,
0.0f, 448.0f,
0.0f, 608.0f,
0.0f, 10.0f);
C_MTXOrtho(ortho, 0.0f, 448.0f, 0.0f, 608.0f, 0.0f, 10.0f);
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
@@ -860,8 +882,8 @@ static void trimming(view_class* param_0, view_port_class* param_1) {
GXPosition3s16(0, 0x1c8, -5);
GXEnd();
}
GXSetScissor(param_1->mScissor.mXOrig, param_1->mScissor.mYOrig,
param_1->mScissor.mWidth, param_1->mScissor.mHeight);
GXSetScissor(param_1->mScissor.mXOrig, param_1->mScissor.mYOrig, param_1->mScissor.mWidth,
param_1->mScissor.mHeight);
}
#else
#pragma push
@@ -967,10 +989,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C2, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A2);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1);
GXSetTevColor(GX_TEVREG2, mMonoColor);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
@@ -984,32 +1006,32 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_TEXA, GX_CC_HALF, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1);
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_CPREV, GX_CC_HALF, GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP3, GX_TEV_SWAP3);
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_TEXC, GX_CC_CPREV, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_OR);
GXColorS10 tevColor0 = lit_4528;
tevColor0.r = -mPoint;
tevColor0.g = -mPoint;
tevColor0.b = -mPoint;
GXSetTevColorS10(GX_TEVREG0,tevColor0);
GXSetTevColorS10(GX_TEVREG0, tevColor0);
GXColor tevColor1 = lit_4530;
tevColor1.r = mBlureRatio;
tevColor1.g = mBlureRatio;
@@ -1026,38 +1048,43 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTexCopyDst(0x98, 0x70, 6, GX_TRUE);
GXCopyTex(zBufferTex, 0);
GXTexObj auStack_c0;
GXInitTexObj(&auStack_c0, zBufferTex, 0x98, 0x70, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXInitTexObj(&auStack_c0, zBufferTex, 0x98, 0x70, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP,
GX_FALSE);
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
GX_ANISO_1);
GXLoadTexObj(&auStack_c0, GX_TEXMAP0);
GXSetNumTexGens(8);
u32 iVar11 = 0x1e;
s16 sVar10 = 0;
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
for (int texCoord = (int)GX_TEXCOORD1; texCoord < (int)GX_MAXCOORD; texCoord++, iVar11 += 3, sVar10 += 0x2492) {
GXSetTexCoordGen((GXTexCoordID) texCoord, GX_TG_MTX2x4, GX_TG_TEX0, iVar11);
f32 dVar15 = mBlureSize * (1.0f / 6400.0f);
mDoMtx_stack_c::transS(
(dVar15 * cM_scos(sVar10)) * getInvScale(),
dVar15 * cM_ssin(sVar10),
0.0f);
GXLoadTexMtxImm(mDoMtx_stack_c::get(), iVar11, GX_MTX2x4);
for (int texCoord = (int)GX_TEXCOORD1; texCoord < (int)GX_MAXCOORD;
texCoord++, iVar11 += 3, sVar10 += 0x2492)
{
GXSetTexCoordGen((GXTexCoordID)texCoord, GX_TG_MTX2x4, GX_TG_TEX0, iVar11);
f32 dVar15 = mBlureSize * (1.0f / 6400.0f);
mDoMtx_stack_c::transS((dVar15 * cM_scos(sVar10)) * getInvScale(),
dVar15 * cM_ssin(sVar10), 0.0f);
GXLoadTexMtxImm(mDoMtx_stack_c::get(), iVar11, GX_MTX2x4);
}
GXSetNumTevStages(8);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
for (int tevStage = (int)GX_TEVSTAGE1; tevStage < 8; tevStage++) {
GXSetTevOrder((GXTevStageID)tevStage, (GXTexCoordID)tevStage, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn((GXTevStageID)tevStage, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV);
GXSetTevColorOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevAlphaIn((GXTevStageID)tevStage, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
GXSetTevAlphaOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevOrder((GXTevStageID)tevStage, (GXTexCoordID)tevStage, GX_TEXMAP0,
GX_COLOR_NULL);
GXSetTevColorIn((GXTevStageID)tevStage, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1,
GX_CC_CPREV);
GXSetTevColorOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1,
GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn((GXTevStageID)tevStage, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO,
GX_CA_A0);
GXSetTevAlphaOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1,
GX_TRUE, GX_TEVPREV);
}
GXPixModeSync();
mDoGph_drawFilterQuad(1, 1);
@@ -1065,8 +1092,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTexCopyDst(0x4c, 0x38, 6, GX_TRUE);
GXCopyTex(zBufferTex, GX_FALSE);
GXTexObj auStack_e0;
GXInitTexObj(&auStack_e0, zBufferTex, 0x4c, 0x38, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXInitTexObj(&auStack_e0, zBufferTex, 0x4c, 0x38, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP,
GX_FALSE);
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
GX_ANISO_1);
GXLoadTexObj(&auStack_e0, GX_TEXMAP0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
GXPixModeSync();
@@ -1075,8 +1104,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTexCopySrc(0, 0, 0x98, 0x70);
GXSetTexCopyDst(0x98, 0x70, 6, GX_FALSE);
GXCopyTex(zBufferTex, GX_FALSE);
GXInitTexObj(&auStack_e0, m_buffer, 0x130, 0xe0, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&auStack_e0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXInitTexObj(&auStack_e0, m_buffer, 0x130, 0xe0, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP,
GX_FALSE);
GXInitTexObjLOD(&auStack_e0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
GX_ANISO_1);
GXLoadTexObj(&auStack_e0, GX_TEXMAP0);
GXSetNumTexGens(1);
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
@@ -1084,10 +1115,10 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ONE, GX_LO_OR);
mDoGph_drawFilterQuad(2, 2);
GXLoadTexObj(&auStack_c0, GX_TEXMAP0);
@@ -1096,15 +1127,15 @@ void mDoGph_gInf_c::bloom_c::draw() {
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C0, GX_CC_ZERO);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GX_TEVPREV);
GXBlendFactor blendFactor;
if (mMode == 1) {
blendFactor = GX_BL_INV_DST_COLOR;
blendFactor = GX_BL_INV_DST_COLOR;
} else {
blendFactor = GX_BL_ONE;
blendFactor = GX_BL_ONE;
}
GXSetBlendMode(GX_BM_BLEND, blendFactor, GX_BL_SRC_ALPHA, GX_LO_OR);
GXPixModeSync();
@@ -1151,8 +1182,8 @@ static void retry_captue_frame(view_class* param_0, view_port_class* param_1, in
}
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
GXSetTexCopyDst(width >> 1, height >> 1, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format,
GX_TRUE);
GXSetTexCopyDst(width >> 1, height >> 1,
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
GXCopyTex(tex, GX_FALSE);
GXPixModeSync();
GXInvalidateTexAll();
@@ -1174,11 +1205,9 @@ static void motionBlure(view_class* param_0) {
GXSetTevColor(GX_TEVREG0, local_60);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetZCompLoc(1);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
@@ -1453,7 +1482,8 @@ int mDoGph_Painter() {
GXSetProjection(camera_p->mProjMtx, GX_PERSPECTIVE);
j3dSys.reinitGX();
if ((g_env_light.mCameraInWater || !strcmp(dComIfGp_getStartStageName(), "D_MN08"))) {
if ((g_env_light.mCameraInWater || !strcmp(dComIfGp_getStartStageName(), "D_MN08")))
{
u8 enable = mDoGph_gInf_c::getBloom()->getEnable();
GXColor color = *mDoGph_gInf_c::getBloom()->getMonoColor();
if (color.a != 0 || enable) {
@@ -1480,7 +1510,9 @@ int mDoGph_Painter() {
trimming(camera_p, view_port);
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0 && (mDoGph_gInf_c::mFade & 0x80) == 0) {
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0 &&
(mDoGph_gInf_c::mFade & 0x80) == 0)
{
mDoGph_gInf_c::calcFade();
}
}
@@ -1522,7 +1554,8 @@ int mDoGph_Painter() {
dComIfGp_particle_draw2Dfore(&draw_info3);
}
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::mFade & 0x80) != 0) {
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::mFade & 0x80) != 0)
{
mDoGph_gInf_c::calcFade();
}
@@ -1547,7 +1580,7 @@ asm void mDoGph_Painter() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
//asm J2DOrthoGraph::~J2DOrthoGraph() {
// asm J2DOrthoGraph::~J2DOrthoGraph() {
asm void __dt__13J2DOrthoGraphFv() {
nofralloc
#include "asm/m_Do/m_Do_graphic/__dt__13J2DOrthoGraphFv.s"
@@ -1579,6 +1612,7 @@ REGISTER_CTORS(0x8000B1D0, __sinit_m_Do_graphic_cpp);
#pragma pop
/* 8000B1E4-8000B1EC 005B24 0008+00 0/0 1/0 0/0 .text getAtnActorID__9daPy_py_cCFv */
s32 daPy_py_c::getAtnActorID() const {
// s32 daPy_py_c::getAtnActorID() const {
extern "C" s32 getAtnActorID__9daPy_py_cCFv() {
return -1;
}