From cf44961290e1931754dfab455afceb7bf9e4965d Mon Sep 17 00:00:00 2001 From: kabiskac Date: Thu, 8 Aug 2024 18:34:53 +0200 Subject: [PATCH] Decompiled most of ztardll --- config/GMPE01_00/rels/ztardll/symbols.txt | 258 +- configure.py | 2 +- include/REL/ztardll.h | 30 + include/game/gamework.h | 4 +- src/REL/ztardll/font.c | 128 + src/REL/ztardll/main.c | 1506 ++++++++++ src/REL/ztardll/select.c | 3196 +++++++++++++++++++++ src/game/gamework.c | 4 +- 8 files changed, 4996 insertions(+), 132 deletions(-) create mode 100644 include/REL/ztardll.h create mode 100644 src/REL/ztardll/font.c create mode 100644 src/REL/ztardll/main.c create mode 100644 src/REL/ztardll/select.c diff --git a/config/GMPE01_00/rels/ztardll/symbols.txt b/config/GMPE01_00/rels/ztardll/symbols.txt index 6e398a8c..05abe49e 100644 --- a/config/GMPE01_00/rels/ztardll/symbols.txt +++ b/config/GMPE01_00/rels/ztardll/symbols.txt @@ -87,137 +87,139 @@ fn_1_11F68 = .text:0x00011F68; // type:function size:0x340 fn_1_122A8 = .text:0x000122A8; // type:function size:0xC4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 data:4byte -lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string lbl_1_data_22 = .data:0x00000022; // type:object size:0x8 lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 data:byte lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:2byte -lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 -lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 -lbl_1_data_94 = .data:0x00000094; // type:object size:0xC -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string -lbl_1_data_AA = .data:0x000000AA; // type:object size:0x4 data:string +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 data:float +lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 data:byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC data:byte +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA scope:local data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x4 scope:local data:string lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x318 lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x20 lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x20 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x3C data:string -lbl_1_data_444 = .data:0x00000444; // type:object size:0x19 data:string -lbl_1_data_45D = .data:0x0000045D; // type:object size:0x1A data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x3D +lbl_1_data_408 = .data:0x00000408; // type:object size:0x3C scope:local data:string +lbl_1_data_444 = .data:0x00000444; // type:object size:0x19 scope:local data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x1A scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x3D scope:local data:string lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x20 data:4byte lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x40 data:4byte lbl_1_data_514 = .data:0x00000514; // type:object size:0x70 @@ -228,25 +230,27 @@ lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 lbl_1_data_64C = .data:0x0000064C; // type:object size:0x20 lbl_1_data_66C = .data:0x0000066C; // type:object size:0x4 data:4byte lbl_1_data_670 = .data:0x00000670; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x28 data:2byte lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 data:2byte -lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x2 data:2byte +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x4 data:2byte lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x2 data:2byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x2 data:2byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:2byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte lbl_1_bss_5E = .bss:0x0000005E; // type:object size:0x2 data:2byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index e1bbff31..3b55f9a3 100644 --- a/configure.py +++ b/configure.py @@ -1570,7 +1570,7 @@ config.libs = [ objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/ztardll/main.c"), - Object(NonMatching, "REL/ztardll/font.c"), + Object(Matching, "REL/ztardll/font.c"), Object(NonMatching, "REL/ztardll/select.c"), }, ), diff --git a/include/REL/ztardll.h b/include/REL/ztardll.h new file mode 100644 index 00000000..e8c81299 --- /dev/null +++ b/include/REL/ztardll.h @@ -0,0 +1,30 @@ +#ifndef ZTARDLL_H +#define ZTARDLL_H + +#include "game/object.h" + +#include "dolphin/types.h" + +typedef struct ZtarDllUnkStruct { + char unk00[0x30]; + s16 unk_30; + s16 unk_32; + char unk34[6]; + s16 unk_3A[16]; + s16 unk_5A[16]; +} ZtarDllUnkStruct; /* size = 0x7A */ + +s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1); +void fn_1_7C00(void); +void fn_1_7D6C(Process *arg0); +s32 fn_1_97D0(s32 arg0, s32 arg1); +void fn_1_11020(void); +void fn_1_111E0(void); +void fn_1_11264(s32 arg0, s32 arg1, s32 arg2); +void fn_1_11338(u32 arg0, s32 arg1); +s32 fn_1_11390(s32 arg0); +void fn_1_114EC(u32 arg0, s32 arg1); +void fn_1_11708(u32 arg0); +void fn_1_1190C(void); + +#endif diff --git a/include/game/gamework.h b/include/game/gamework.h index 1f43963b..081dd16b 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -23,7 +23,7 @@ s32 GWBoardWinCountInc(s32 character, s32 board); s32 GWBoardWinCountGet(s32 character, s32 board); void GWBoardWinCountSet(s32 character, s32 board, s32 value); s32 GWMGAvailGet(s32 id); -s32 GWMGAvailSet(s32 id); +void GWMGAvailSet(s32 id); s32 GWMGCustomGet(s32 id); void GWMGCustomSet(s32 id); void GWMGCustomReset(s32 id); @@ -37,4 +37,4 @@ void GWTotalStarsSet(s16 value); void GWTotalStarsAdd(s16 amount); u16 GWTotalStarsGet(void); -#endif \ No newline at end of file +#endif diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c new file mode 100644 index 00000000..4731b9f9 --- /dev/null +++ b/src/REL/ztardll/font.c @@ -0,0 +1,128 @@ +#include "game/sprite.h" + +#include "REL/ztardll.h" + +s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x150000, 0x150001, 0x150002, 0x150003, 0x150004, 0x150005, 0x150006, 0x150007, 0x150008, 0x150009, 0x150000, 0x150000, + 0x150000, 0x15000A, 0x150000, 0x150000, 0x150000, 0x15000F, 0x150010, 0x150011, 0x150012, 0x150013, 0x150014, 0x150015, 0x150016, 0x150017, + 0x150018, 0x150019, 0x15001A, 0x15001B, 0x15001C, 0x15001D, 0x15001E, 0x15001F, 0x150020, 0x150021, 0x150022, 0x150023, 0x150024, 0x150025, + 0x150026, 0x150027, 0x150028, 0x15001D, 0x15000D, 0x15001D, 0x15001D, 0x15001D, 0x15001D, 0x150029, 0x15002A, 0x15002B, 0x15002C, 0x15002D, + 0x15002E, 0x15002F, 0x150030, 0x150031, 0x150032, 0x150033, 0x150034, 0x150035, 0x150036, 0x150037, 0x150038, 0x150039, 0x15003A, 0x15003B, + 0x15003C, 0x15003D, 0x15003E, 0x15003F, 0x150040, 0x150041, 0x150042, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x15000A, 0x15000E, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x15000B, 0x15000C, 0x150000, 0x150000 }; + +s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) +{ + u8 *var_r31; + s16 var_r30; + s16 *var_r29; + s16 var_r28; + s32 *var_r27; + s16 var_r26; + s16 var_r25; + s32 var_r24; + s16 *var_r22; + AnimData **var_r21; + s16 var_r20; + s16 var_r19; + + var_r27 = lbl_1_data_B0; + for (var_r25 = 0; var_r25 < 0x10; var_r25++) { + if (arg0->unk_3A[var_r25] == -1) { + break; + } + } + if (var_r25 == 0x10) { + return -1; + } + var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); + var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { + if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { + var_r30 += 0xE; + } + else if (var_r31[0] < 0x30) { + } + else if (var_r31[0] == 0x80) { + } + else if (var_r31[0] == 0x81) { + } + else { + if (var_r31[1] == 0x80) { + if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { + var_r24 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r24 = var_r27[var_r31[0] + 0x65]; + } + else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { + var_r24 = var_r27[var_r31[0] + 0x43]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r24 = var_r27[var_r31[0] + 0x3E]; + } + } + else if (var_r31[1] == 0x81) { + if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r24 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r24 = var_r27[var_r31[0] + 0x43]; + } + } + else { + var_r24 = var_r27[var_r31[0]]; + } + var_r21[var_r28] = HuSprAnimReadFile(var_r24); + var_r22[var_r28] = var_r30; + if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { + var_r29[var_r28] = 2; + var_r30 += 0x12; + } + else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { + var_r29[var_r28] = 0; + var_r30 += 0x12; + } + else if (var_r31[0] == 0x5C) { + var_r29[var_r28] = 0; + var_r30 += 8; + } + else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { + var_r29[var_r28] = 0; + var_r30 += 0x14; + } + else { + var_r29[var_r28] = 0; + var_r30 += 0x1C; + } + var_r28++; + } + } + var_r20 = HuSprGrpCreate(var_r28); + arg0->unk_3A[var_r25] = var_r20; + arg0->unk_30 = var_r30; + var_r30 = (var_r30 / 2) - 0xE; + for (var_r26 = 0; var_r26 < var_r28; var_r26++) { + var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); + HuSprGrpMemberSet(var_r20, var_r26, var_r19); + HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + } + arg0->unk_32 = var_r28; + HuMemDirectFree(var_r21); + HuMemDirectFree(var_r22); + HuMemDirectFree(var_r29); + return var_r25; +} diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c new file mode 100644 index 00000000..6cc5c2c0 --- /dev/null +++ b/src/REL/ztardll/main.c @@ -0,0 +1,1506 @@ +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "rel_sqrt_consts.h" + +#include "REL/ztardll.h" + +void fn_1_1774(void); +void fn_1_1CF0(void); +void fn_1_1DA0(void); +void fn_1_2350(void); +void fn_1_33B0(void); +void fn_1_40E4(void); +void fn_1_424(void); +void fn_1_4374(void); +void fn_1_4948(void); +void fn_1_51BC(s16 arg0); +s32 fn_1_524C(s32 arg0); +void fn_1_66F8(void); +void fn_1_7414(ModelData *model, Mtx matrix); + +omObjData *lbl_1_bss_6C; +Process *lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +s16 lbl_1_bss_5E; +s16 lbl_1_bss_5A; +s16 lbl_1_bss_58; +s32 lbl_1_bss_54; +s16 lbl_1_bss_52; +s16 lbl_1_bss_50; +s16 lbl_1_bss_4C[2]; +s16 lbl_1_bss_4A; +s16 lbl_1_bss_48; +s16 lbl_1_bss_46; +s16 lbl_1_bss_44; +s16 lbl_1_bss_42; +s16 lbl_1_bss_3E[2]; +s16 lbl_1_bss_36[4]; +s16 lbl_1_bss_E[4][5]; +s16 lbl_1_bss_C; +Process *lbl_1_bss_8; +s16 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + s32 var_r31; + s32 var_r30; + + OSReport("******* ZP ObjectSetup *********\n"); + lbl_1_bss_68 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_60 = 0; + lbl_1_bss_58 = omovlevtno; + _ClearFlag(0x10000); + _ClearFlag(0x10008); + GWSystem.mg_type = -1; + GWSystem.player_curr = 0; + lbl_1_bss_5E = -1; + mgBoardHostEnableF = 1; + var_r30 = omMgIndexGet(0x29); + lbl_1_bss_54 = GWMGAvailGet(var_r30 + 0x191); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CRot.x = 0.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 90.0f; + Center.z = 30.0f; + CZoom = 1220.0f; + var_r31 = Hu3DGLightCreate(0.0f, 100.0f, 1000.0f, 0.0f, -0.5f, -1.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightInfinitytSet(var_r31); + HuPrcChildCreate(fn_1_424, 0x64, 0x3000, 0, lbl_1_bss_68); + HuPrcChildCreate(fn_1_66F8, 0xC8, 0x1000, 0, lbl_1_bss_68); + lbl_1_bss_6C = omAddObjEx(lbl_1_bss_68, 0x7FDA, 0, 0, -1, omOutView); + Hu3DBGColorSet(0, 0, 0); + HuWinInit(1); + if (lbl_1_bss_58 == 1) { + HuAudVoiceInit(-1); + } + if (lbl_1_bss_58 != 0) { + HuAudSndGrpSetSet(4); + HuAudSeqPlay(0x2E); + } + GWSystem.mg_type = -1; + mgPracticeEnableF = 1; +} + +s16 lbl_1_data_22[4] = { 0x3A, 0xC8, 0x166, 0xC8 }; + +void fn_1_424(void) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + s16 var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + + var_r26 = 0; + var_r27 = 0; + fn_1_7D6C(lbl_1_bss_68); + HuPrcVSleep(); + HuDataDirClose(0x640000); + lbl_1_bss_5A = 0; + if (mgQuitExtraF != 0) { + mgQuitExtraF = 0; + var_r26 = 1; + lbl_1_bss_58 = 0; + } + else { + if (lbl_1_bss_58 == 1) { + lbl_1_bss_5A = 0; + goto block_92; + } + if (lbl_1_bss_58 == 2) { + lbl_1_bss_5A = 1; + goto block_93; + } + GWPlayerCfg[0].group = GWPlayerCfg[1].group = 0; + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + } +block_7: + fn_1_1774(); + if (lbl_1_bss_54 == 0) { + HuSprTPLvlSet(lbl_1_bss_4C[1], 0, 0.5f); + HuSprTPLvlSet(lbl_1_bss_4C[1], 2, 0.5f); + } + if (var_r26 == 0) { + WipeCreate(1, 0, 0x1E); + HuPrcSleep(0xA); + sp2C.x = 510.0f; + sp2C.y = 80.0f; + sp2C.z = 1500.0f; + Hu3D2Dto3D(&sp2C, 1, &sp8); + sp2C.x = 200.0f; + sp2C.y = 400.0f; + sp2C.z = 100.0f; + Hu3D2Dto3D(&sp2C, 1, &sp20); + PSVECSubtract(&sp8, &sp20, &sp14); + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + if (var_r31 <= 0x14) { + var_f31 = var_r31 / 20.0; + HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31))))); + HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31))))); + HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0 - (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); + HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0 + (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); + } + var_f31 = var_r31 / 30.0; + PSVECScale(&sp14, &sp2C, var_f31); + PSVECAdd(&sp2C, &sp20, &sp2C); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); + HuPrcVSleep(); + } + } + else { + sp2C.x = 510.0f; + sp2C.y = 80.0f; + sp2C.z = 1500.0f; + Hu3D2Dto3D(&sp2C, 1, &sp20); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DModelPosSetV(lbl_1_bss_42, &sp20); + var_f31 = var_r31 / 20.0; + HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0f); + HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0f); + HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0f, 240.0f); + HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0f, 240.0f); + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } +loop_19: + fn_1_11020(); + fn_1_11264(0x330024, 0, 0); + if (lbl_1_bss_5A == 0) { + fn_1_11264(0x330025, 0, 1); + } + else { + fn_1_11264(0x33002A, 0, 1); + } + fn_1_11708(0x33008D); + for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) { + var_f31 = var_r31 / 10.0; + + HuSprTPLvlSet(lbl_1_bss_4A, 0, var_f31); + HuSprGrpPosSet(lbl_1_bss_4A, lbl_1_data_22[lbl_1_bss_5A * 2], lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]); + HuPrcVSleep(); + } + while (TRUE) { + HuPrcVSleep(); + if ((HuPadStkX[0] / 10) != 0) { + var_r29 = lbl_1_bss_5A; + if (HuPadStkX[0] < 0 && lbl_1_bss_5A > 0) { + lbl_1_bss_5A--; + } + if (HuPadStkX[0] > 0 && lbl_1_bss_5A < 1) { + lbl_1_bss_5A++; + } + if (lbl_1_bss_5A != var_r29) { + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + var_f31 = sind((90.0 * (var_r31 / 10.0))); + var_f30 = lbl_1_data_22[var_r29 * 2] + (var_f31 * (lbl_1_data_22[lbl_1_bss_5A * 2] - lbl_1_data_22[var_r29 * 2])); + HuSprGrpPosSet(lbl_1_bss_4A, var_f30, lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]); + HuPrcVSleep(); + } + if (lbl_1_bss_5A == 0) { + fn_1_11264(0x330025, 0, 1); + } + else { + fn_1_11264(0x33002A, 0, 1); + } + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + fn_1_111E0(); + fn_1_1190C(); + lbl_1_bss_60 = 1; + while (TRUE) { + HuPrcVSleep(); + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + if (lbl_1_bss_5A != 1 || lbl_1_bss_54 != 0) { + break; + } + HuAudFXPlay(4); + } + } + HuAudFXPlay(2); + fn_1_111E0(); + fn_1_1190C(); + lbl_1_bss_5E = -1; + var_r29 = lbl_1_bss_5A ^ 1; + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + if (var_r31 <= 0xA) { + var_f31 = var_r31 / 10.0; + HuSprTPLvlSet(lbl_1_bss_4A, 0, 1.0 - var_f31); + } + var_f31 = 1.0 - (var_r31 / 20.0); + + HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31); + if (lbl_1_bss_5A == 0) { + var_f31 = -var_f31; + } + HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f + (150.0f * var_f31), 240.0f); + HuPrcVSleep(); + } + for (var_r27 = 0;;) { + if (lbl_1_bss_5A == 0) { + var_r30 = fn_1_97D0(2, var_r27); + } + else { + var_r30 = fn_1_97D0(3, var_r27); + if (var_r30 != 0) { + mgTypeCurr = 2; + var_r30 = fn_1_524C(1); + if (var_r30 == 0) { + var_r27 = 1; + continue; + } + } + } + if (var_r30 == 0) { + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = var_r31 / 20.0; + HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31); + if (lbl_1_bss_5A != 0) { + var_f31 = -var_f31; + } + HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f - (150.0f * var_f31), 240.0f); + var_f31 = var_r31 / 20.0; + if (lbl_1_bss_5A == 0) { + var_r28 = -1; + } + else { + var_r28 = 1; + } + HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - cosd((90.0f * var_f31))))), 340.0f); + HuPrcVSleep(); + } + goto loop_19; + } + var_r27 = 1; + fn_1_1DA0(); + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = var_r31 / 20.0; + if (lbl_1_bss_5A == 0) { + var_r28 = -1; + } + else { + var_r28 = 1; + } + HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - sind((90.0f * var_f31))))), 340.0f); + HuPrcVSleep(); + } + if (lbl_1_bss_5A == 0) { + fn_1_40E4(); + } + if (lbl_1_bss_4 == 0) { + lbl_1_bss_4 = 1; + HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68); + } + fn_1_11020(); + fn_1_11264(0x33002C, 0, 0); + var_r30 = fn_1_11390(0); + if (var_r30 != -1) { + if (var_r30 != 1) { + break; + } + } + fn_1_111E0(); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + var_f31 = cosd((90.0 * (var_r31 / 10.0))); + HuSprGrpScaleSet(lbl_1_bss_46, 1.0f, var_f31); + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_46); + } + fn_1_111E0(); + fn_1_1190C(); + WipeCreate(2, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + mgBattleStarMax = 0; + HuSprGrpKill(lbl_1_bss_48); + HuSprGrpKill(lbl_1_bss_52); + HuSprGrpKill(lbl_1_bss_50); + HuSprGrpKill(lbl_1_bss_4C[0]); + HuSprGrpKill(lbl_1_bss_4C[1]); + HuSprGrpKill(lbl_1_bss_4A); + HuSprGrpKill(lbl_1_bss_46); + Hu3DModelKill(lbl_1_bss_42); + HuPrcKill(lbl_1_bss_8); + while (lbl_1_bss_4 != 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_5A == 0) { + block_92: + fn_1_2350(); + } + else { + block_93: + fn_1_4374(); + } + var_r26 = 1; + goto block_7; +} + +void fn_1_1774(void) +{ + ZtarDllUnkStruct sp8; + s16 var_r31; + s16 var_r30; + u8 *var_r29; + s16 var_r28; + AnimData *var_r27; + u8 *var_r26; + AnimData *var_r25; + AnimData *var_r24; + AnimData *var_r23; + + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); + lbl_1_bss_48 = HuSprGrpCreate(1); + var_r31 = HuSprCreate(var_r27, 0xC8, 0); + HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r31); + HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); + HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + sp8.unk_5A[var_r30] = sp8.unk_3A[var_r30] = -1; + } + var_r29 = MessData_MesPtrGet(messDataPtr, 0x170021); + for (var_r26 = var_r29; *var_r29 != 0; var_r29++) { + if (*var_r29 == 0xA) { + *var_r29 = 0x10; + } + } + lbl_1_bss_52 = sp8.unk_3A[fn_1_7754(&sp8, var_r26)]; + HuSprGrpPosSet(lbl_1_bss_52, 288.0f, -300.0f); + HuSprGrpDrawNoSet(lbl_1_bss_52, 0x7F); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 4)); + lbl_1_bss_50 = HuSprGrpCreate(1); + var_r31 = HuSprCreate(var_r27, 0x64, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r31); + HuSprGrpPosSet(lbl_1_bss_50, 288.0f, -300.0f); + HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 5)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 14)); + var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 64)); + var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 15)); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r28 = HuSprGrpCreate(4); + lbl_1_bss_4C[var_r30] = var_r28; + var_r31 = HuSprCreate(var_r27, 0x64, var_r30); + HuSprGrpMemberSet(var_r28, 0, var_r31); + var_r31 = HuSprCreate(var_r25, 0x6E, 0); + HuSprGrpMemberSet(var_r28, 1, var_r31); + var_r31 = HuSprCreate(var_r24, 0x78, 0); + HuSprGrpMemberSet(var_r28, 2, var_r31); + HuSprScaleSet(var_r28, 2, 0.5f, 0.5f); + var_r31 = HuSprCreate(var_r23, 0x82, 0); + HuSprGrpMemberSet(var_r28, 3, var_r31); + HuSprGrpPosSet(var_r28, 288.0f, -300.0f); + HuSprGrpDrawNoSet(var_r28, 0x7F); + } + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 6)); + lbl_1_bss_4A = HuSprGrpCreate(1); + var_r31 = HuSprCreate(var_r27, 0x32, 0); + HuSprGrpMemberSet(lbl_1_bss_4A, 0, var_r31); + HuSprGrpPosSet(lbl_1_bss_4A, 288.0f, -300.0f); + lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); + lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); + lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); + Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); + Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelPosSet(lbl_1_bss_42, 0.0f, 1000.0f, 0.0f); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); +} + +void fn_1_1CF0(void) +{ + float var_f31 = 0.0f; + ModelData *var_r31 = &Hu3DData[lbl_1_bss_42]; + + while (TRUE) { + var_r31->pos.y += sind(var_f31); + var_f31 += 3.0f; + if (var_f31 > 360.0f) { + var_f31 -= 360.0f; + } + HuPrcVSleep(); + } +} + +void fn_1_1DA0(void) +{ + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + AnimData *var_r30; + s16 var_r29; + s16 var_r28; + s16 var_r27; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + if (lbl_1_bss_5A == 0) { + var_r28 = HuSprGrpCreate(5); + lbl_1_bss_46 = var_r28; + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 17)); + var_r29 = HuSprCreate(var_r30, 0x78, 0); + HuSprGrpMemberSet(var_r28, 0, var_r29); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18)); + var_r29 = HuSprCreate(var_r30, 0x6E, 0); + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 1, (var_r31 * 0x30) - 0x18, -4.0f); + if (GWPlayerCfg[spC[var_r31]].iscom == 0) { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32)); + var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]); + } + else { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33)); + var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff); + } + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 2, (var_r31 * 0x30) - 0x18, 20.0f); + } + } + else { + var_r28 = HuSprGrpCreate(0xA); + lbl_1_bss_46 = var_r28; + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 16)); + var_r29 = HuSprCreate(var_r30, 0x78, 0); + HuSprGrpMemberSet(var_r28, 0, var_r29); + var_r27 = -0x4B; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18)); + var_r29 = HuSprCreate(var_r30, 0x6E, 0); + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 1, var_r27, 0.0f); + if (GWPlayerCfg[spC[var_r31]].iscom == 0) { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32)); + var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]); + } + else { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33)); + var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff); + } + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 2, var_r27, 22.0f); + var_r27 += 0x2A; + if (var_r31 == 1) { + var_r27 += 0x18; + } + } + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 10)); + var_r29 = HuSprCreate(var_r30, 0x5A, 0); + HuSprGrpMemberSet(var_r28, 9, var_r29); + } + HuSprGrpPosSet(var_r28, 0.0f, -100.0f); +} + +void fn_1_2350(void) +{ + s16 spC[4]; + s16 sp8[2]; + float var_f31; + s16 var_r31; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + if (lbl_1_bss_58 != 0) { + if (GWPlayerCoinWinGet(spC[0]) > 0) { + mgBattleStarMax++; + } + } + fn_1_33B0(); + Hu3DModelPosSet(lbl_1_bss_36[2], 500.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_36[3], 500.0f, 0.0f, 0.0f); + HuSprScaleSet(lbl_1_bss_50, 2, 0.0f, 0.0f); + if (lbl_1_bss_58 != 0) { + if (GWPlayerCoinWinGet(spC[0]) == 0) { + mgBattleStarMax++; + } + HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax); + HuSprScaleSet(lbl_1_bss_50, 1, 1.0f, 1.0f); + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + if (GWPlayerCoinWinGet(spC[0]) > 0) { + HuSprAttrReset(lbl_1_bss_44, 6, 4); + HuSprPosSet(lbl_1_bss_44, 6, ((mgBattleStarMax - 1) << 5) + 0x46, 340.0f); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + var_f31 = var_r31 / 60.0; + HuSprTPLvlSet(lbl_1_bss_44, 6, var_f31); + var_f31 = 1.0 + (5.0 * cosd((90.0f * var_f31))); + HuSprScaleSet(lbl_1_bss_44, 6, var_f31, var_f31); + if (var_r31 == 0x14) { + HuAudFXPlay(0x9A); + if (mgBattleStarMax < 6) { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][2], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][2], 0.0f, 10.0f, 0); + } + else { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][3], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][3], 0.0f, 10.0f, 0); + } + } + HuPrcVSleep(); + } + HuAudFXPlay(8); + if (mgBattleStarMax >= 6) { + HuPrcSleep(0x3C); + var_r31 = omMgIndexGet(0x29); + lbl_1_bss_54 = 1; + fn_1_11020(); + fn_1_11338(GWPlayerCfg[spC[0]].character, 0); + fn_1_11338(GWPlayerCfg[spC[1]].character, 1); + fn_1_11264(0x3300A0, 0, 0); + if (GWMGAvailGet(var_r31 + 0x191) == 0) { + GWMGAvailSet(var_r31 + 0x191); + GWGameStat.present[0x37] = 1; + fn_1_11264(0x330029, 0, 0); + } + fn_1_111E0(); + WipeCreate(2, 0, 0x1E); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } + else { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][0], 0.0f, 10.0f, 0x40000001); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + var_f31 = 1.0 - (var_r31 / 10.0); + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + goto block_39; + } + } + else { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][4], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, 0); + HuPrcSleep(0xB4); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x1E); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } + } + else { + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + block_39: + Hu3DMotionSet(lbl_1_bss_36[2], lbl_1_bss_E[2][1]); + Hu3DMotionSet(lbl_1_bss_36[3], lbl_1_bss_E[3][1]); + Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, -90.0f, 0.0f); + Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, -90.0f, 0.0f); + HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax + 1); + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + var_f31 = 1.0 - sind((90.0 * (var_r31 / 30.0))); + Hu3DModelPosSet(lbl_1_bss_36[2], 125.0f + (400.0f * var_f31), 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_36[3], 275.0f + (400.0f * var_f31), 0.0f, 0.0f); + if (var_r31 == 0x19) { + Hu3DMotionShiftSet(lbl_1_bss_36[2], lbl_1_bss_E[2][0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_36[3], lbl_1_bss_E[3][0], 0.0f, 10.0f, 0x40000001); + } + if ((GWPlayerCfg[2].character < 8) && ((var_r31 % 5) == 0)) { + HuAudFXPlay(GWPlayerCfg[2].character + 0xD5); + } + if ((GWPlayerCfg[3].character < 8) && (((var_r31 + 3) % 5) == 0)) { + HuAudFXPlay(GWPlayerCfg[3].character + 0xD5); + } + if (var_r31 > 0x14) { + var_f31 = 1.0 - ((var_r31 - 0x14) / 10.0); + Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, 90.0f * -var_f31, 0.0f); + Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, 90.0f * -var_f31, 0.0f); + } + if (var_r31 <= 0x14) { + var_f31 = 1.2 * sind((90.0 * (var_r31 / 20.0))); + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + } + else if (var_r31 > 0x14) { + var_f31 = 1.0 + (0.2 * cosd((90.0 * ((var_r31 - 0x14) / 10.0)))); + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + } + HuPrcVSleep(); + } + HuAudFXPlay(0x355); + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0)))); + HuSprScaleSet(lbl_1_bss_50, 2, var_f31, var_f31); + HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0); + HuPrcVSleep(); + } + fn_1_114EC(0x33004F, 1); + while (TRUE) { + if ((*HuPadBtnDown & 0x100) != 0) { + HuAudFXPlay(2); + if (mgBattleStarMax >= 5) { + GWSystem.mg_type = 0; + } + fn_1_51BC(1); + } + if ((*HuPadBtnDown & 0x200) != 0) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(3); + fn_1_1190C(); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } + HuSprGrpKill(lbl_1_bss_48); + HuSprGrpKill(lbl_1_bss_50); + HuSprGrpKill(lbl_1_bss_44); + Hu3DModelKill(lbl_1_bss_42); + HuPrcKill(lbl_1_bss_8); + Hu3DModelKill(lbl_1_bss_C); + CharModelKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + Hu3DModelKill(lbl_1_bss_36[var_r31]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][0]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][1]); + } + } + lbl_1_bss_58 = 0; + lbl_1_bss_5A = 0; +} + +s32 lbl_1_data_2C[6] = { + DATA_MAKE_NUM(DATADIR_ZTAR, 59), + DATA_MAKE_NUM(DATADIR_ZTAR, 34), + DATA_MAKE_NUM(DATADIR_ZTAR, 39), + DATA_MAKE_NUM(DATADIR_ZTAR, 44), + DATA_MAKE_NUM(DATADIR_ZTAR, 49), + DATA_MAKE_NUM(DATADIR_ZTAR, 54), +}; + +u8 lbl_1_data_44[6] = { 0, 1, 1, 2, 2, 3 }; + +void fn_1_33B0(void) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + s16 var_r30; + AnimData *var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + s16 var_r25; + s16 var_r24; + AnimData *var_r23; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); + lbl_1_bss_48 = HuSprGrpCreate(1); + var_r30 = HuSprCreate(var_r29, 0xC8, 0); + HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r30); + HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); + HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); + lbl_1_bss_50 = HuSprGrpCreate(3); + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 12)); + var_r30 = HuSprCreate(var_r29, 0x78, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r30); + HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f); + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 11)); + if ((mgBattleStarMax + 1) >= 7) { + var_r30 = HuSprCreate(var_r29, 0x64, 6); + } + else { + var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1); + } + HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30); + HuSprPosSet(lbl_1_bss_50, 1, 342.0f, 80.0f); + HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f); + HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); + var_r30 = HuSprCreate(var_r29, 0x64, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 2, var_r30); + HuSprPosSet(lbl_1_bss_50, 2, 288.0f, 240.0f); + HuSprDrawNoSet(lbl_1_bss_50, 2, 0); + HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f); + var_r27 = HuSprGrpCreate(7); + lbl_1_bss_44 = var_r27; + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 8)); + var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 7)); + var_r24 = mgBattleStarMax; + if (GWPlayerCoinWinGet(spC[0]) > 0) { + var_r24--; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (var_r31 >= var_r24) { + var_r30 = HuSprCreate(var_r23, 0x64, 0); + } + else { + var_r30 = HuSprCreate(var_r29, 0x64, 0); + } + HuSprGrpMemberSet(var_r27, var_r31, var_r30); + HuSprPosSet(var_r27, var_r31, (var_r31 << 5) + 0x46, 340.0f); + } + var_r30 = HuSprCreate(var_r29, 0x5A, 0); + HuSprGrpMemberSet(var_r27, 6, var_r30); + HuSprAttrSet(var_r27, 6, 4); + HuSprGrpPosSet(var_r27, 0.0f, 0.0f); + sp38.x = 510.0f; + sp38.y = 80.0f; + sp38.z = 1500.0f; + Hu3D2Dto3D(&sp38, 1, &sp2C); + lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); + lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); + lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); + Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); + GWPlayerCfg[spC[2]].character = mgIndexList[mgBattleStarMax * 2]; + GWPlayerCfg[spC[3]].character = mgIndexList[mgBattleStarMax * 2 + 1]; + GWPlayerCfg[spC[0]].group = GWPlayerCfg[spC[1]].group = 0; + GWPlayerCfg[spC[2]].group = GWPlayerCfg[spC[3]].group = 1; + GWPlayerCfg[spC[2]].iscom = GWPlayerCfg[spC[3]].iscom = 1; + GWPlayerCfg[spC[2]].diff = GWPlayerCfg[spC[3]].diff = lbl_1_data_44[mgBattleStarMax]; + var_r26 = -0x113; + if (lbl_1_bss_58 != 0) { + CharKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[spC[var_r31]].character < 8) { + CharARAMOpen(GWPlayerCfg[spC[var_r31]].character); + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = GWPlayerCfg[spC[var_r31]].character; + if (var_r28 != 0xFF) { + if (var_r28 < 8) { + lbl_1_bss_36[var_r31] = CharModelCreate(var_r28, 2); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, 0x5F0000); + lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, 0x5F0003); + if (var_r31 < 2) { + lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, 0x5F0048); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, 0x5F0017); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, 0x5F0018); + } + CharModelVoiceEnableSet(GWPlayerCfg[spC[var_r31]].character, lbl_1_bss_E[var_r31][1], 0); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + else { + var_r25 = var_r28 - 8; + lbl_1_bss_36[var_r31] = Hu3DModelCreateFile(lbl_1_data_2C[var_r25]); + lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 1); + lbl_1_bss_E[var_r31][1] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 2); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); + Hu3DModelAttrSet(lbl_1_bss_36[var_r31], 0x40000001); + Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r26, 0.0f, 0.0f); + Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); + var_r26 += 0x96; + if (var_r31 == 1) { + var_r26 += 0x64; + } + } + } + CharModelDataClose(-1); + Hu3DShadowCreate(20.0f, 500.0f, 8000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowSizeSet(0xC0); + sp20.x = sp20.y = sp20.z = 0.0f; + sp38.x = sp38.z = 100.0f; + sp38.y = 2000.0f; + sp14.x = sp14.y = 0.0f; + sp14.z = 1.0f; + Hu3DShadowPosSet(&sp38, &sp14, &sp20); + lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414); + Hu3DModelLayerSet(lbl_1_bss_C, 1); +} + +void fn_1_40E4(void) +{ + s16 sp14[4]; + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + var_r30 = 0; + for (var_r31 = var_r30; var_r31 < 8; var_r31++) { + if ((var_r31 != GWPlayerCfg[spC[0]].character) && (var_r31 != GWPlayerCfg[spC[1]].character)) { + sp14[var_r30++] = var_r31; + } + } + for (var_r31 = 0; var_r31 < 0x1E; var_r31++) { + var_r30 = frandmod(6); + var_r29 = frandmod(6); + var_r28 = sp14[var_r30]; + sp14[var_r30] = sp14[var_r29]; + sp14[var_r29] = var_r28; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + mgIndexList[var_r31] = sp14[var_r31]; + } + mgIndexList[6] = 0xC; + mgIndexList[7] = 9; + mgIndexList[8] = 0xB; + mgIndexList[9] = 0xA; + mgIndexList[0xA] = 8; + mgIndexList[0xB] = 0xD; + mgIndexList[0xC] = mgIndexList[0xD] = 0xFF; + GWPlayerCfg[spC[2]].character = mgIndexList[0]; + GWPlayerCfg[spC[3]].character = mgIndexList[1]; +} + +s16 lbl_1_data_4A[6] = { 0x3A, 0x36, 0x40, 0x4B, 0x46, 0x3E }; +s16 lbl_1_data_56[7] = { 0x3B, 0x38, 0x42, 0x4D, 0x48, 0x3F, 0 }; + +void fn_1_4374(void) +{ + s16 spC[4]; + s16 sp8[2]; + float var_f31; + s16 var_r31; + s16 var_r30; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + fn_1_4948(); + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + if (lbl_1_bss_58 != 0) { + var_r30 = 0; + for (var_r31 = var_r30; var_r31 < 4; var_r31++) { + if (GWPlayerCoinWinGet(spC[var_r31]) > 0) { + if (var_r30 == 0) { + HuAudFXPlay(0x9A); + } + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + HuAudFXPlay(lbl_1_data_4A[GWPlayerCfg[spC[var_r31]].character - 8]); + } + Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][3], 0.0f, 10.0f, 0); + var_r30++; + } + else { + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + HuAudFXPlay(lbl_1_data_56[GWPlayerCfg[spC[var_r31]].character - 8]); + } + Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][4], 0.0f, 10.0f, 0); + } + } + HuSprAttrReset(lbl_1_bss_50, 1, 4); + HuPrcSleep(0x78); + } + else { + HuAudFXPlay(0x355); + HuSprAttrReset(lbl_1_bss_50, 1, 4); + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0)))); + + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + HuSprTPLvlSet(lbl_1_bss_50, 1, var_r31 / 20.0); + HuPrcVSleep(); + } + } + fn_1_114EC(0x33004F, 1); + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + fn_1_51BC(2); + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(3); + fn_1_1190C(); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_48); + HuSprGrpKill(lbl_1_bss_50); + Hu3DModelKill(lbl_1_bss_42); + HuPrcKill(lbl_1_bss_8); + Hu3DModelKill(lbl_1_bss_C); + CharModelKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + Hu3DModelKill(lbl_1_bss_36[var_r31]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][0]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][1]); + } + } + lbl_1_bss_58 = 0; + lbl_1_bss_5A = 0; +} + +void fn_1_4948(void) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + AnimData *var_r27; + s16 var_r26; + s16 var_r25; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); + lbl_1_bss_48 = HuSprGrpCreate(1); + var_r29 = HuSprCreate(var_r27, 0xC8, 0); + HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r29); + HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); + HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); + lbl_1_bss_50 = HuSprGrpCreate(2); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 13)); + var_r29 = HuSprCreate(var_r27, 0x78, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r29); + HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f); + HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f); + HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); + var_r29 = HuSprCreate(var_r27, 0x64, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r29); + HuSprPosSet(lbl_1_bss_50, 1, 288.0f, 240.0f); + HuSprAttrSet(lbl_1_bss_50, 1, 4); + HuSprDrawNoSet(lbl_1_bss_50, 1, 0); + sp38.x = 510.0f; + sp38.y = 80.0f; + sp38.z = 1500.0f; + Hu3D2Dto3D(&sp38, 1, &sp2C); + lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); + lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); + lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); + Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); + var_r28 = -0x113; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = GWPlayerCfg[spC[var_r31]].character; + if (var_r30 < 8) { + lbl_1_bss_36[var_r31] = CharModelCreate(var_r30, 2); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0000); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, 0x5F0017); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, 0x5F0018); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + else { + var_r26 = var_r30 - 8; + var_r25 = Hu3DModelCreateFile(lbl_1_data_2C[var_r26]); + lbl_1_bss_36[var_r31] = var_r25; + lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 1); + lbl_1_bss_E[var_r31][3] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 3); + lbl_1_bss_E[var_r31][4] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 4); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); + Hu3DModelAttrSet(lbl_1_bss_36[var_r31], 0x40000001); + Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r28, 0.0f, 0.0f); + Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); + var_r28 += 0x96; + if (var_r31 == 1) { + var_r28 += 0x64; + } + } + CharModelDataClose(-1); + Hu3DShadowCreate(20.0f, 500.0f, 8000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowSizeSet(0xC0); + sp20.x = sp20.y = sp20.z = 0.0f; + sp38.x = sp38.z = 100.0f; + sp38.y = 2000.0f; + sp14.x = sp14.y = 0.0f; + sp14.z = 1.0f; + Hu3DShadowPosSet(&sp38, &sp14, &sp20); + lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414); + Hu3DModelLayerSet(lbl_1_bss_C, 1); +} + +void fn_1_51BC(s16 arg0) +{ + omOvlHisData *var_r31; + + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, 0x3C); + HuAudSeqAllFadeOut(0x3E8); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + var_r31 = omOvlHisGet(0); + omOvlHisChg(0, OVL_ZTAR, arg0, var_r31->stat); + omOvlCallEx(OVL_M433, 1, 0, 0); + while (TRUE) { + HuPrcVSleep(); + } +} + +float lbl_1_data_64[8] = { + -132.0f, + -12.0f, + 60.0f, + 132.0f, + -132.0f, + -60.0f, + 60.0f, + 132.0f, +}; + +u8 lbl_1_data_84[16] = { 0, 1, 2, 3, 1, 0, 2, 3, 2, 0, 1, 3, 3, 0, 1, 2 }; +u8 lbl_1_data_94[12] = { 0, 1, 2, 3, 0, 2, 1, 3, 0, 3, 1, 2 }; + +s32 fn_1_524C(s32 arg0) +{ + s16 spC; + float var_f31; + float var_f30; + float var_f29; + s16 var_r31; + s16 var_r30; + float *var_r29; + s16 var_r28; + s16 var_r27; + AnimData *var_r26; + s16 var_r25; + s16 var_r24; + s16 var_r23; + WindowData *var_r22; + + if (mgTypeCurr == 1) { + var_r29 = lbl_1_data_64; + var_f29 = 216.0f; + } + else { + var_r29 = &lbl_1_data_64[4]; + var_f29 = 288.0f; + } + var_r28 = HuSprGrpCreate(0x10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].character + DATA_MAKE_NUM(DATADIR_ZTAR, 69)); + var_r25 = HuSprCreate(var_r26, 4, 0); + HuSprGrpMemberSet(var_r28, var_r31 * 4, var_r25); + HuSprPosSet(var_r28, var_r31 * 4, var_r29[var_r31], 0.0f); + if (mgTypeCurr == 1) { + if (var_r31 == 0) { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89)); + } + else { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90)); + } + } + else if (var_r31 < 2) { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89)); + } + else { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90)); + } + var_r25 = HuSprCreate(var_r26, 3, 0); + HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 1, var_r25); + HuSprPosSet(var_r28, (var_r31 * 4) + 1, var_r29[var_r31], 0.0f); + if (GWPlayerCfg[var_r31].iscom != 0) { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 87)); + } + else { + var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].pad_idx + DATA_MAKE_NUM(DATADIR_ZTAR, 83)); + } + var_r25 = HuSprCreate(var_r26, 2, 1); + HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 2, var_r25); + HuSprPosSet(var_r28, (var_r31 * 4) + 2, var_r29[var_r31], 0.0f); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 88)); + var_r25 = HuSprCreate(var_r26, 2, GWPlayerCfg[var_r31].diff); + HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 3, var_r25); + HuSprPosSet(var_r28, (var_r31 * 4) + 3, var_r29[var_r31], 38.0f); + if (GWPlayerCfg[var_r31].iscom == 0) { + HuSprAttrSet(var_r28, (var_r31 * 4) + 3, 4); + } + } + var_r27 = HuSprGrpCreate(5); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 67), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x32, 0); + HuSprGrpMemberSet(var_r27, 0, var_r25); + HuSprTPLvlSet(var_r27, 0, 0.9f); + HuSprPosSet(var_r27, 0, 0.0f, 0.0f); + HuSprScaleSet(var_r27, 0, 1.1f, 1.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 65), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 0); + HuSprGrpMemberSet(var_r27, 1, var_r25); + HuSprPosSet(var_r27, 1, 0.0f, -90.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 66), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 0); + HuSprGrpMemberSet(var_r27, 2, var_r25); + HuSprPosSet(var_r27, 2, 0.0f, 0.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 1); + HuSprGrpMemberSet(var_r27, 3, var_r25); + HuSprPosSet(var_r27, 3, 180.0f, 0.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 0); + HuSprGrpMemberSet(var_r27, 4, var_r25); + HuSprPosSet(var_r27, 4, -180.0f, 0.0f); + HuSprGrpPosSet(var_r27, 288.0f, 240.0f); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + if (var_r31 <= 0x32) { + var_f31 = var_r31 / 50.0; + var_f30 = -300.0 + (560.0 * sind((90.0f * var_f31))); + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + else { + var_f31 = (var_r31 - 0x32) / 10.0; + var_f30 = 240.0 + (20.0 * cosd((90.0f * var_f31))); + var_f30 = var_f30; + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + HuPrcVSleep(); + } + var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0); + HuWinMesSpeedSet(var_r24, 0); + HuWinBGTPLvlSet(var_r24, 0.0f); + HuWinMesSet(var_r24, 0x1A0020); + var_r22 = &winData[var_r24]; + HuWinPriSet(var_r24, 5); + HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); + HuWinAttrSet(var_r24, 0x800); + var_r30 = 0; + var_r23 = 0; + while (TRUE) { + HuPrcVSleep(); + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + goto block_89; + } + spC = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(0x304); + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 4, -180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + var_r30--; + if (mgTypeCurr == 1) { + if (var_r30 < 0) { + var_r30 = 3; + } + if (var_r30 >= 4) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f); + } + } + else { + if (var_r30 < 0) { + var_r30 = 2; + } + if (var_r30 >= 3) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f); + } + } + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 4, -180.0 - (10.0 * cosd((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + } + else { + if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(0x304); + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 3, 180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + var_r30++; + if (mgTypeCurr == 1) { + if (var_r30 < 0) { + var_r30 = 3; + } + if (var_r30 >= 4) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f); + } + } + else { + if (var_r30 < 0) { + var_r30 = 2; + } + if (var_r30 >= 3) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f); + } + } + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 3, 180.0 + (10.0 * cosd((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + } + } + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + HuAudFXPlay(0x305); + if (mgTypeCurr == 1) { + GWPlayerCfg[lbl_1_data_84[var_r30 * 4]].group = 0; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + GWPlayerCfg[lbl_1_data_84[var_r30 * 4 + var_r31]].group = 1; + } + } + else { + for (var_r31 = 0; var_r31 < 2; var_r31++) { + GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 0; + } + for (var_r31 = 2; var_r31 < 4; var_r31++) { + GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 1; + } + } + if (arg0 != 0) { + var_r23 = 1; + } + else { + return 1; + } + block_89: + HuWinKill(var_r24); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + if (var_r31 <= 0xA) { + var_f31 = var_r31 / 10.0; + var_f30 = 240.0 + (20.0 * sind((90.0f * var_f31))); + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + else { + var_f31 = (var_r31 - 0xA) / 50.0; + var_f30 = -300.0 + (560.0 * cosd(90.0f * var_f31)); + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + HuPrcVSleep(); + } + HuSprGrpKill(var_r28); + HuSprGrpKill(var_r27); + return var_r23; + } + } +} + +void fn_1_66F8(void) +{ + s16 var_r31; + + while (TRUE) { + if (lbl_1_bss_60 != 0 || omSysExitReq) { + break; + } + HuPrcVSleep(); + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, 60); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuDataDirClose(0x160000); + while (lbl_1_bss_4 != 0) { + HuPrcVSleep(); + } + CharModelDataClose(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = -1; + } + mgPracticeEnableF = 0; + omOvlReturnEx(1, 1); + HuPrcEnd(); +} + +void fn_1_6804(void) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + s8 var_r31; + + CRot.y += 0.1f * HuPadStkX[0]; + CRot.x += 0.1f * HuPadStkY[0]; + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("%f,%f,%f\n", CRot.x, CRot.y, CRot.z); + OSReport("%f,%f,%f\n", Center.x, Center.y, Center.z); + OSReport("%f\n", CZoom); + } + if (CZoom < 100.0f) { + CZoom = 100.0f; + } + sp2C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); + sp2C.y = Center.y + (CZoom * -sind(CRot.x)); + sp2C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); + sp20.x = Center.x - sp2C.x; + sp20.y = Center.y - sp2C.y; + sp20.z = Center.z - sp2C.z; + sp14.x = sind(CRot.y) * sind(CRot.x); + sp14.y = cosd(CRot.x); + sp14.z = cosd(CRot.y) * sind(CRot.x); + var_f31 = CRot.z; + sp8.x = sp14.x * ((sp20.x * sp20.x) + ((1.0f - (sp20.x * sp20.x)) * cosd(var_f31))) + + sp14.y * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) - sp20.z * sind(var_f31)) + + sp14.z * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) + sp20.y * sind(var_f31)); + + sp8.y = sp14.y * ((sp20.y * sp20.y) + ((1.0f - (sp20.y * sp20.y)) * cosd(var_f31))) + + sp14.x * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) + sp20.z * sind(var_f31)) + + sp14.z * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) - sp20.x * sind(var_f31)); + + sp8.z = sp14.z * ((sp20.z * sp20.z) + ((1.0f - (sp20.z * sp20.z)) * cosd(var_f31))) + + (sp14.x * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) - sp20.y * sind(var_f31)) + + sp14.y * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) + sp20.x * sind(var_f31))); + PSVECCrossProduct(&sp14, &sp20, &sp20); + PSVECNormalize(&sp20, &sp20); + var_r31 = HuPadSubStkX[0] & 0xF8; + if (var_r31 != 0) { + Center.x += 0.05f * (sp20.x * var_r31); + Center.y += 0.05f * (sp20.y * var_r31); + Center.z += 0.05f * (sp20.z * var_r31); + } + PSVECNormalize(&sp8, &sp20); + var_r31 = -(HuPadSubStkY[0] & 0xF8); + if (var_r31 != 0) { + Center.x += 0.05f * (sp20.x * var_r31); + Center.y += 0.05f * (sp20.y * var_r31); + Center.z += 0.05f * (sp20.z * var_r31); + } +} + +void fn_1_7414(ModelData *model, Mtx matrix) +{ + Mtx sp8C; + Mtx sp5C; + Mtx sp2C; + GXTexObj spC; + s32 sp8; + + sp8 = 0; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&spC, GX_TEXMAP0); + PSMTXInverse(Hu3DCameraMtx, sp5C); + PSMTXConcat(sp5C, matrix, sp8C); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); + PSMTXConcat(sp2C, sp8C, sp8C); + GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, 0, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, 1, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + GXSetZMode(1, GX_LEQUAL, 0); + GXLoadPosMtxImm(matrix, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-500.0f, 0.0f, -500.0f); + GXPosition3f32(500.0f, 0.0f, -500.0f); + GXPosition3f32(500.0f, 0.0f, 500.0f); + GXPosition3f32(-500.0f, 0.0f, 500.0f); +} diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c new file mode 100644 index 00000000..5f0bd977 --- /dev/null +++ b/src/REL/ztardll/select.c @@ -0,0 +1,3196 @@ +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/ztardll.h" + +typedef void (*ZtarUnkFunc)(omObjData *, ...); + +typedef struct ZtarDllUnkStruct2 { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ ZtarUnkFunc unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ char pad_18[0x10]; /* maybe part of unk_14[5]? */ + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char pad_38[0x10]; /* maybe part of unk_34[5]? */ + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; +} ZtarDllUnkStruct2; /* size = 0x60 */ + +void fn_1_106E8(s32 arg0); +void fn_1_10764(s32 arg0); +void fn_1_108C8(s32); +void fn_1_10A80(void); +void fn_1_10B24(void); +s32 fn_1_10C18(s32 arg0); +s32 fn_1_10C98(s32 arg0); +float fn_1_10D60(float arg8, float arg9, float argA, float argB); +float fn_1_10E38(float arg8, float arg9, float argA, float argB); +void fn_1_10FBC(s32 arg0); +void fn_1_11960(void); +void fn_1_11C64(void); +void fn_1_11F68(void); +void fn_1_122A8(s32 arg0); +void fn_1_A02C(void); +void fn_1_A248(void); +void fn_1_A574(void); +void fn_1_A610(void); +void fn_1_A8E8(void); +void fn_1_ABC4(void); +void fn_1_AE94(void); +void fn_1_AEE4(omObjData *object, ZtarDllUnkStruct2 *arg1); +void fn_1_B468(omObjData *object, ZtarDllUnkStruct2 *arg1); +void fn_1_BA40(void); +void fn_1_BD7C(s32 arg0); +void fn_1_BFF0(s32 arg0); +void fn_1_C06C(s32 arg0, s32 arg1); +void fn_1_C4B8(s32 arg0); +void fn_1_C8EC(s32 arg0); +void fn_1_CAF0(void); +void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1); +void fn_1_DD8C(struct ZtarDllUnkStruct2 *arg0); +void fn_1_E4AC(struct ZtarDllUnkStruct2 *arg0); +void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1); +s32 fn_1_F214(struct ZtarDllUnkStruct2 *arg0); +void fn_1_FB38(void); +void fn_1_FD90(s32 arg0); + +extern s16 lbl_1_bss_4; + +s32 lbl_1_data_3C8[8] = { + 0x5F0000, + 0x1A0000, + 0x6D0000, + 0x8A0000, + 0x850000, + 0x110000, + 0xD0000, + 0x810000, +}; +s32 lbl_1_data_3E8[8] = { + 0x5E0000, + 0x190000, + 0x6C0000, + 0x890000, + 0x840000, + 0x100000, + 0xC0000, + 0x800000, +}; + +Process *lbl_1_bss_70; +s32 lbl_1_bss_74; +s32 lbl_1_bss_78[5]; +ZtarDllUnkStruct2 lbl_1_bss_8C[4]; +ZtarDllUnkStruct2 lbl_1_bss_20C; +s32 lbl_1_bss_26C[0x1B]; + +void fn_1_7C00(void) +{ + s16 var_r31; + s32 var_r30; + + CharKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].character < 8) { + var_r30 = HuDataDirReadAsync(lbl_1_data_3C8[GWPlayerCfg[var_r31].character]); + if (var_r30 != -1) { + while (HuDataGetAsyncStat(var_r30) == 0) { + HuPrcVSleep(); + } + } + CharARAMOpen(GWPlayerCfg[var_r31].character); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].character < 8) { + var_r30 = HuDataDirReadAsync(lbl_1_data_3E8[GWPlayerCfg[var_r31].character]); + if (var_r30 != -1) { + while (HuDataGetAsyncStat(var_r30) == 0) { + HuPrcVSleep(); + } + } + } + } + lbl_1_bss_4 = 0; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7D6C(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_70 = arg0; + fn_1_A02C(); + fn_1_BA40(); + fn_1_FB38(); + HuPrcChildCreate(fn_1_10A80, 0x3E8, 0x2000, 0, lbl_1_bss_70); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_10B24, 0x3E8, 0x2000, 0, lbl_1_bss_70); + } +} + +s32 fn_1_7E0C(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r29 = -1; + fn_1_A610(); + fn_1_11020(); + fn_1_11264(0x1A0005, -1, -1); + fn_1_10FBC(1); + fn_1_11708(0x330091); + lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_AEE4; + var_r29 = -1; + while (TRUE) { + fn_1_10FBC(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r29 != var_r30) { + var_r29 = var_r30; + fn_1_11264(var_r30 + 0x1A001B, -1, 1); + } + if (lbl_1_bss_20C.unk_28 == 0) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + } + fn_1_AE94(); + lbl_1_bss_20C.unk_04 = NULL; + fn_1_1190C(); + if (var_r28 == 1) { + var_r27 = 0; + var_r26 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r27++; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r26 < var_r27) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_8C[var_r31].unk_50 = 0; + var_r26++; + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + } + fn_1_111E0(); + fn_1_ABC4(); + return var_r28; +} + +s32 fn_1_8030(s32 arg0, s32 arg1) +{ + s32 sp10; + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + + sp10 = 0; + spC = 0; + var_r30 = 0; + if (arg1 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_CAF0(); + if (arg0 == 0) { + fn_1_C4B8(0); + } + fn_1_11020(); + fn_1_10FBC(1); + if (arg1 == 1) { + fn_1_11264(0x1E005E, -1, -1); + } + else { + fn_1_11264(0x1A0009, -1, -1); + } + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; + } + } + while (TRUE) { + fn_1_10FBC(1); + if ((lbl_1_bss_8C->unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + HuAudFXPlay(3); + if (lbl_1_bss_20C.unk_10 == 1) { + lbl_1_bss_20C.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 == 0) && (lbl_1_bss_8C[var_r31].unk_08 != 1)) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + fn_1_1190C(); + fn_1_111E0(); + if (var_r27 == 0) { + fn_1_C8EC(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = 0; + var_r29++; + } + } + if ((var_r29 == 0) || ((arg1 == 2) && (var_r29 == 2))) { + fn_1_C8EC(0); + return 2; + } + if (arg1 == 2) { + lbl_1_bss_8C[1].unk_4C = 0; + } + return 1; +} + +void fn_1_830C(s32 arg0) +{ + fn_1_8030(arg0, 4); +} + +s32 fn_1_8338(s32 arg0, s32 arg1) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + if (arg1 == 2) { + fn_1_C06C(0, 2); + } + else { + fn_1_C06C(0, 1); + } + } + fn_1_11020(); + while (TRUE) { + fn_1_10FBC(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + else { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_8C[var_r31].unk_0C = var_r27; + fn_1_DD8C(&lbl_1_bss_8C[var_r31]); + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_E548; + break; + } + } + while (TRUE) { + fn_1_10FBC(1); + if (((HuPadBtnDown[lbl_1_bss_8C->unk_58] & 0x200) != 0) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_8C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } + lbl_1_bss_8C[var_r30].unk_04 = NULL; + fn_1_11264(0x1A0022, -1, 1); + fn_1_10FBC(1); + fn_1_11708(0x330093); + var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_8C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_8C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_8C[var_r30].unk_08 = 0; + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == arg1) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_0C; + lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + } + break; + } + var_r24 = -1; + } + } + + fn_1_1190C(); + fn_1_111E0(); + if (var_r29 != 0) { + fn_1_C8EC(0); + } + return var_r29; +} + +void fn_1_8850(s32 arg0) +{ + fn_1_8338(arg0, 4); +} + +void fn_1_887C(void) +{ + fn_1_8030(0, 1); +} + +s32 fn_1_88A4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = -1; + fn_1_A8E8(); + fn_1_11020(); + fn_1_11264(0x1A0005, -1, -1); + fn_1_10FBC(1); + fn_1_11708(0x330091); + lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_B468; + while (TRUE) { + fn_1_10FBC(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r26 != var_r30) { + var_r26 = var_r30; + fn_1_11264(var_r30 + 0x330093, -1, 1); + } + if (lbl_1_bss_20C.unk_28 != 0) { + continue; + } + if ((*HuPadBtnDown & PAD_BUTTON_A) != 0) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if ((*HuPadBtnDown & PAD_BUTTON_B) != 0) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + fn_1_AE94(); + lbl_1_bss_20C.unk_04 = NULL; + fn_1_1190C(); + if (var_r28 == 1) { + var_r29 = 0; + var_r27 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r29++; + } + } + if (var_r29 >= 2) { + var_r29 = 2; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r27 < var_r29) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_8C[var_r31].unk_50 = 0; + lbl_1_bss_8C[var_r31].unk_4C = 0; + var_r27++; + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + lbl_1_bss_8C[var_r31].unk_4C = 1; + } + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + lbl_1_bss_8C[var_r31].unk_4C = 1; + } + } + } + fn_1_111E0(); + fn_1_ABC4(); + return var_r28; +} + +void fn_1_8B18(s32 arg0) +{ + fn_1_8030(arg0, 2); +} + +void fn_1_8B44(s32 arg0) +{ + fn_1_8338(arg0, 2); +} + +void fn_1_8B70(void) +{ + fn_1_7E0C(0); +} + +s32 fn_1_8B94(s32 arg0) +{ + s32 sp10; + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + sp10 = 0; + spC = 0; + var_r30 = 4; + var_r28 = 4; + if (var_r28 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_CAF0(); + if (arg0 == 0) { + fn_1_C4B8(3); + } + fn_1_11020(); + fn_1_10FBC(1); + fn_1_11264(0x1A0009, -1, -1); + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; + } + } + while (TRUE) { + fn_1_10FBC(1); + if ((lbl_1_bss_8C->unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) { + HuAudFXPlay(3); + if (lbl_1_bss_20C.unk_10 == 1) { + lbl_1_bss_20C.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 == 0) && (lbl_1_bss_8C[var_r31].unk_08 != 1)) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + fn_1_1190C(); + fn_1_111E0(); + if (var_r27 == 0) { + fn_1_C8EC(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = 1; + var_r29++; + } + } + if ((var_r29 == 0) || ((var_r28 == 2) && (var_r29 == 2))) { + fn_1_C8EC(3); + return 2; + } + if (var_r28 == 2) { + lbl_1_bss_8C[1].unk_4C = 0; + } + return 1; +} + +s32 fn_1_8E50(s32 arg0) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r28 = 4; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + fn_1_C06C(3, 3); + } + fn_1_11020(); + while (TRUE) { + fn_1_10FBC(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + else { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_8C[var_r31].unk_0C = var_r27; + fn_1_DD8C(&lbl_1_bss_8C[var_r31]); + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_E548; + break; + } + } + while (TRUE) { + fn_1_10FBC(1); + if ((HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_8C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + lbl_1_bss_8C[var_r31].unk_5C = 1; + } + } + lbl_1_bss_8C[var_r30].unk_04 = NULL; + fn_1_11264(0x1A0022, -1, 1); + fn_1_10FBC(1); + fn_1_11708(0x330093); + var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_8C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_8C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_8C[var_r30].unk_08 = 0; + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == var_r28) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_0C; + lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 == 4) { + } + else if (var_r29 == 0) { + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + break; + } + else { + break; + } + var_r24 = -1; + } + } + fn_1_1190C(); + fn_1_111E0(); + if (var_r29 != 0) { + fn_1_C8EC(3); + } + return var_r29; +} + +void fn_1_9350(s32 arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayer[var_r31].team = GWPlayerCfg[var_r31].group = lbl_1_bss_8C[var_r31].unk_4C; + GWPlayer[var_r31].com = GWPlayerCfg[var_r31].iscom = lbl_1_bss_8C[var_r31].unk_50; + GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff = lbl_1_bss_8C[var_r31].unk_54; + if (lbl_1_bss_74 != 0) { + if (lbl_1_bss_8C[var_r31].unk_5C <= 5) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_8C[var_r31].unk_5C <= 0xB) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C - 3; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = fn_1_10C98(lbl_1_bss_8C[var_r31].unk_5C - 4); + } + } + else if (arg0 == 1) { + if (var_r31 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = lbl_1_bss_8C[var_r31 - 1].unk_5C + 1; + if (lbl_1_bss_8C[var_r31].unk_5C >= 8) { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C; + } + GWPlayer[var_r31].port = GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_8C[var_r31].unk_58; + } + OSReport("\n\n#################### SET PLAYERDATA ####################\n"); + OSReport("ID) GRP:COM:DIF:CHR:PAD\n"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", var_r31, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom, GWPlayerCfg[var_r31].diff, + GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx); + } + OSReport("########################################################\n"); +} + +s32 lbl_1_data_4B4[4][2] = { + { -0x69, 0 }, + { -0x23, 0 }, + { 0x23, 0 }, + { 0x69, 0 }, +}; +s32 lbl_1_data_4D4[8][2] = { + { -0x7B, -0x34 }, + { -0x29, -0x34 }, + { 0x29, -0x34 }, + { 0x7B, -0x34 }, + { -0x7B, 0x34 }, + { -0x29, 0x34 }, + { 0x29, 0x34 }, + { 0x7B, 0x34 }, +}; +s32 lbl_1_data_514[0xE][2] = { + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_584[0x12][2] = { + { 0, 0 }, + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { 0, 0 }, + { 0, 0 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { 0, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_614[4][2] = { + { -0x45, -8 }, + { -0x17, -8 }, + { 0x17, -8 }, + { 0x45, -8 }, +}; +s32 lbl_1_data_634[2] = { 0, 0xFFFFFFF8 }; +s32 lbl_1_data_63C[2][2] = { + { -0x17, -8 }, + { 0x17, -8 }, +}; +s32 lbl_1_data_64C[4][2] = { + { -0x59, -8 }, + { -0x2B, -8 }, + { 0x2B, -8 }, + { 0x59, -8 }, +}; +s32 lbl_1_data_66C = -1; +s32 lbl_1_data_670 = -1; + +s32 fn_1_97D0(s32 arg0, s32 arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + + var_r30 = 0; + var_r27 = 0; + var_r26 = 0; + var_r29 = arg0; + if (arg0 == 3) { + lbl_1_bss_74 = 1; + } + else { + lbl_1_bss_74 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_4C = 0; + lbl_1_bss_8C[var_r31].unk_50 = 0; + lbl_1_bss_8C[var_r31].unk_54 = 0; + if (lbl_1_bss_74 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = var_r31 + 1; + } + else { + lbl_1_bss_8C[var_r31].unk_5C = var_r31; + } + lbl_1_bss_8C[var_r31].unk_58 = var_r31; + } + if (arg1 == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_4C = GWPlayerCfg[var_r31].group; + lbl_1_bss_8C[var_r31].unk_50 = GWPlayerCfg[var_r31].iscom; + lbl_1_bss_8C[var_r31].unk_54 = GWPlayerCfg[var_r31].diff; + lbl_1_bss_8C[var_r31].unk_5C = GWPlayerCfg[var_r31].character; + lbl_1_bss_8C[var_r31].unk_58 = GWPlayerCfg[var_r31].pad_idx; + lbl_1_bss_8C[var_r31].unk_08 = lbl_1_bss_8C[var_r31].unk_0C = lbl_1_bss_8C[var_r31].unk_10 = lbl_1_bss_8C[var_r31].unk_14 = 0; + lbl_1_bss_8C[var_r31].unk_28 = lbl_1_bss_8C[var_r31].unk_2C = lbl_1_bss_8C[var_r31].unk_30 = lbl_1_bss_8C[var_r31].unk_34 = 0; + switch (arg0) { + case 0: + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_08 = 1; + } + else { + var_r27 = 1; + } + break; + case 2: + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + break; + case 3: + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + if (lbl_1_bss_8C[var_r31].unk_5C <= 3) { + lbl_1_bss_8C[var_r31].unk_5C++; + } + else if (lbl_1_bss_8C[var_r31].unk_5C <= 7) { + lbl_1_bss_8C[var_r31].unk_5C += 3; + } + else { + lbl_1_bss_8C[var_r31].unk_5C = fn_1_10C18(lbl_1_bss_8C[var_r31].unk_5C) + 4; + } + break; + } + } + switch (arg0) { + case 0: + if (var_r27 == 1) { + var_r29 = 0x66; + var_r30 = 1; + } + else { + var_r29 = 0x65; + var_r30 = 0; + } + break; + case 1: + var_r29 = 0xC8; + break; + case 2: + if ((var_r27 == 1) && (var_r26 == 1)) { + var_r29 = 0x12E; + var_r30 = 1; + } + else { + var_r29 = 0x12D; + var_r30 = 0; + } + break; + case 3: + if (var_r27 == 1) { + var_r29 = 0x192; + var_r30 = 1; + } + else { + var_r29 = 0x191; + var_r30 = 0; + } + break; + } + } + while (TRUE) { + fn_1_10FBC(1); + if (var_r28 == 0x3E7) { + break; + } + switch (var_r29) { + case 0x0: + var_r29 = 0x64; + break; + case 0x1: + var_r29 = 0xC8; + break; + case 0x2: + var_r29 = 0x12C; + break; + case 0x3: + var_r29 = 0x190; + break; + case 0x64: + var_r28 = fn_1_7E0C(var_r30); + if (var_r28 != 0) { + var_r29 = 0x65; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x65: + var_r23 = fn_1_8030(var_r30, 4); + var_r28 = var_r23; + if (var_r28 == 1) { + var_r29 = 0x66; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x64; + var_r30 = 1; + } + break; + case 0x66: + var_r22 = fn_1_8338(var_r30, 4); + var_r28 = var_r22; + var_r28 = var_r28; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x65; + var_r30 = 1; + } + break; + case 0xC8: + var_r21 = fn_1_8030(0, 1); + var_r28 = var_r21; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12C: + var_r28 = fn_1_88A4(); + if (var_r28 != 0) { + var_r29 = 0x12D; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12D: + var_r20 = fn_1_8030(var_r30, 2); + var_r28 = var_r20; + if (var_r28 == 1) { + var_r29 = 0x12E; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12C; + var_r30 = 1; + } + break; + case 0x12E: + var_r19 = fn_1_8338(var_r30, 2); + var_r28 = var_r19; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12D; + var_r30 = 1; + } + break; + case 0x190: + var_r18 = fn_1_7E0C(0); + var_r28 = var_r18; + if (var_r28 != 0) { + var_r29 = 0x191; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x191: + var_r28 = fn_1_8B94(var_r30); + if (var_r28 == 1) { + var_r29 = 0x192; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x190; + var_r30 = 1; + } + break; + case 0x192: + var_r28 = fn_1_8E50(var_r30); + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x191; + var_r30 = 1; + } + break; + case 0x384: + fn_1_9350(arg0); + var_r24 = 1; + var_r28 = 0x3E7; + break; + case 0x385: + var_r24 = 0; + var_r28 = 0x3E7; + break; + } + } + return var_r24; +} + +void fn_1_9FDC(s32 arg0) +{ + fn_1_10764(arg0); +} + +void fn_1_A004(s32 arg0) +{ + fn_1_108C8(arg0); +} + +void fn_1_A02C(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r30 = HuSprGrpCreate(0xB); + lbl_1_bss_26C[0] = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x46)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x47)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 1, var_r29); + HuSprBankSet(var_r30, var_r31 + 1, var_r31); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x48)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x76C, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 3, var_r29); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + fn_1_A248(); + fn_1_A574(); +} + +void fn_1_A248(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } +} + +void fn_1_A3DC(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4 + 1][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } +} + +void fn_1_A574(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r30, 1.0f, 1.0f); +} + +void fn_1_A610(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[0]; + var_r29 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_10FBC(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_10FBC(0xA); +} + +void fn_1_A8E8(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[0]; + var_r29 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4 + 1][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_10FBC(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_10FBC(0xA); +} +void fn_1_ABC4(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[0]; + fn_1_10FBC(0xA); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, -390.0f); + var_r29 = lbl_1_bss_26C[0]; + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + HuSprAttrSet(var_r29, var_r30, 4); + } + HuSprGrpPosSet(var_r29, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r29, 1.0f, 1.0f); +} + +void fn_1_ADA4(s32 arg0) +{ + s32 var_r31 = lbl_1_bss_26C[0]; + HuSprAttrReset(var_r31, 1, 4); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 1, -155.0f, 0.0f); + HuSprPosSet(var_r31, 2, 155.0f, 0.0f); + if (arg0 == 2) { + HuSprPosSet(var_r31, 1, -80.0f, 0.0f); + HuSprPosSet(var_r31, 2, 80.0f, 0.0f); + } +} + +void fn_1_AE94(void) +{ + s32 var_r31 = lbl_1_bss_26C[0]; + HuSprAttrSet(var_r31, 1, 4); + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_AEE4(omObjData *object, ZtarDllUnkStruct2 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_26C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_20C.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_26C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + if (HuPadStkX[0] >= 5) { + var_r29++; + var_r26 = 1; + } + else if (HuPadStkX[0] <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_26C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_20C.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_10E38(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_10E38(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_10E38(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (155.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-155.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 1)) { + lbl_1_bss_8C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 0)) { + lbl_1_bss_8C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_10FBC(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_8C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_8C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_20C.unk_28 = 0; +} + +void fn_1_B468(omObjData *object, ZtarDllUnkStruct2 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_26C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_20C.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 2; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 > 2) { + var_r28 = 2; + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_26C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + HuSprPosSet(var_r25, 1, -80.0f, 0.0f); + HuSprPosSet(var_r25, 2, 80.0f, 0.0f); + if (HuPadStkX[0] >= 5) { + var_r29++; + var_r26 = 1; + } + else if (HuPadStkX[0] <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_26C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_20C.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_10E38(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_10E38(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_10E38(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (77.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-77.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 1)) { + lbl_1_bss_8C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 0)) { + lbl_1_bss_8C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_10FBC(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_8C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_8C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_20C.unk_28 = 0; +} + +void fn_1_BA40(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x36); + lbl_1_bss_26C[1] = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x4A)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + HuSprPosSet(var_r29, 0, 0.0f, 0.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x4B)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 1, var_r30); + HuSprPosSet(var_r29, 1, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x5A)); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x4C)), 0x76C, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 2, var_r30); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x5B)), 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1E, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x60)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x22, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x5F)); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x64)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x26, var_r30); + var_r30 = HuSprCreate(var_r27, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2A, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x65)); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x66)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2E, var_r30); + var_r30 = HuSprCreate(var_r27, 0x320, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x32, var_r30); + } + fn_1_BD7C(0); + fn_1_BFF0(0); +} + +void fn_1_BD7C(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_514[var_r31][0], lbl_1_data_514[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} + +void fn_1_BFF0(s32 arg0) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} +void fn_1_C06C(s32 arg0, s32 arg1) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[1]; + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_514[var_r31][0], lbl_1_data_514[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + if (arg1 == 1) { + fn_1_11960(); + } + if (arg1 == 2) { + fn_1_11C64(); + } + if (arg1 == 3) { + fn_1_11F68(); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_10FBC(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_C4B8(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[1]; + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_514[var_r31][0], lbl_1_data_514[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_10FBC(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_C8EC(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r29, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r29, 288.0f, 169.0f + var_f31); + } + } + HuSprGrpPosSet(var_r29, 288.0f, -331.0f); + var_r28 = lbl_1_bss_26C[1]; + for (var_r30 = 0; var_r30 < 0x36; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 288.0f, -331.0f); +} + +void fn_1_CAF0(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 0x1E, 0); + HuSprBankSet(var_r30, var_r31 + 0x22, 0); + HuSprBankSet(var_r30, var_r31 + 0x26, 0); + HuSprBankSet(var_r30, var_r31 + 0x2A, 0); + HuSprBankSet(var_r30, var_r31 + 0x2E, 0); + HuSprBankSet(var_r30, var_r31 + 0x32, 0); + } + if (lbl_1_bss_74 != 0) { + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_10FBC(1); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_74 != 0) { + var_f31 = fn_1_10E38(lbl_1_data_584[lbl_1_bss_8C[var_r29].unk_5C][0], lbl_1_data_584[var_r29 + 1][0], var_r31, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_584[lbl_1_bss_8C[var_r29].unk_5C][1], lbl_1_data_584[1][1], var_r31, 10.0f); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[lbl_1_bss_8C[var_r29].unk_5C % 4][0], lbl_1_data_4D4[var_r29][0], var_r31, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_4D4[(lbl_1_bss_8C[var_r29].unk_5C / 4) * 4][1], lbl_1_data_4D4[0][1], var_r31, 10.0f); + } + HuSprPosSet(var_r30, var_r29 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r30, var_r29 + 0x22, var_f31, var_f30); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r30, var_r31 + 0x1E, *lbl_1_data_584[var_r31 + 1], lbl_1_data_584[var_r31 + 1][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, *lbl_1_data_584[var_r31 + 1], lbl_1_data_584[var_r31 + 1][1]); + lbl_1_bss_8C[var_r31].unk_5C = var_r31 + 1; + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_08 = 0; + } + else { + HuSprPosSet(var_r30, var_r31 + 0x1E, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_5C = var_r31; + lbl_1_bss_8C[var_r31].unk_08 = 0; + } + } +} + +void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r24 = lbl_1_bss_26C[1]; + var_r27 = 0; + var_r26 = 0; + HuSprAttrReset(var_r24, arg1->unk_48 + 0x1E, 4); + HuSprAttrReset(var_r24, arg1->unk_48 + 0x22, 4); + if (lbl_1_bss_74 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + if (lbl_1_bss_74 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + fn_1_122A8(var_r21); + HuSprBankSet(var_r24, var_r21 + 2, 1); + } + else { + fn_1_122A8(arg1->unk_5C); + HuSprBankSet(var_r24, arg1->unk_5C + 2, 1); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 1); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 1); + } + else if (lbl_1_bss_74 != 0) { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_B) != 0) { + arg1->unk_08 = 0; + lbl_1_bss_20C.unk_10 = 1; + HuAudFXPlay(3); + if (lbl_1_bss_74 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r24, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r24, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 0); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 0); + } + if (lbl_1_bss_74 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + if (lbl_1_bss_74 != 0) { + loop_54: + var_r25 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0) + || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + } + else { + } + } + if (var_r28 != 4) { + goto loop_54; + } + } + else { + do { + var_r25 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 3) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + break; + } + } + else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + break; + } + else if (((var_r29 + var_r26) <= 1) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + break; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + break; + } + } + else { + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_74 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + HuAudFXPlay(0); + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r25; + if (lbl_1_bss_74 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(lbl_1_data_584[var_r19][0], lbl_1_data_584[var_r25][0], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_584[var_r19][1], lbl_1_data_584[var_r25][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + return; + } + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(*lbl_1_data_4D4[var_r23], *lbl_1_data_4D4[var_r30], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_4D4[var_r22 * 4][1], lbl_1_data_4D4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + } + } +} + +void fn_1_DD8C(ZtarDllUnkStruct2 *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_26C[1]; + do { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != arg0->unk_48) && (lbl_1_bss_8C[var_r29].unk_08 == 1) && (arg0->unk_5C == lbl_1_bss_8C[var_r29].unk_5C)) { + arg0->unk_5C += 1; + break; + } + } + } while (var_r29 != 4); + arg0->unk_54 = 0; + if (lbl_1_bss_74 != 0) { + var_r28 = 0; + if (arg0->unk_5C <= 5) { + var_r28 = arg0->unk_5C - 1; + } + else if (arg0->unk_5C <= 0xB) { + var_r28 = arg0->unk_5C - 3; + } + else { + var_r28 = arg0->unk_5C - 4; + } + HuSprBankSet(var_r30, var_r28 + 2, 0); + } + else { + HuSprBankSet(var_r30, arg0->unk_5C + 2, 0); + } + HuSprBankSet(var_r30, arg0->unk_48 + 0x26, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2A, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2E, arg0->unk_54); + HuSprBankSet(var_r30, arg0->unk_48 + 0x32, arg0->unk_54); + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + arg0->unk_10 = 0; + HuSprAttrReset(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrReset(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_E4AC(ZtarDllUnkStruct2 *arg0) +{ + s32 var_r30 = lbl_1_bss_26C[1]; + HuSprAttrSet(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) +{ + s32 sp8; + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + u32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r27 = lbl_1_bss_26C[1]; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk_54; + lbl_1_bss_20C.unk_30 = 0; + if (lbl_1_bss_74 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 1); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 1); + if (lbl_1_bss_74 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r21 + 2, 1); + fn_1_122A8(var_r21); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 1); + fn_1_122A8(arg1->unk_5C); + } + arg1->unk_54 = 0; + HuSprBankSet(var_r27, arg1->unk_48 + 0x2E, arg1->unk_54); + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_584[arg1->unk_5C][0], lbl_1_data_584[arg1->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_4D4[arg1->unk_5C % 4][0], lbl_1_data_4D4[(arg1->unk_5C / 4) * 4][1] + 0x23); + } + HuSprAttrReset(var_r27, arg1->unk_48 + 0x2E, 4); + } + else if (lbl_1_bss_74 != 0) { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (*HuPadStkY <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (*HuPadStkY >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (*HuPadStkY <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (*HuPadStkY >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) { + arg1->unk_08 = arg1->unk_10 = 0; + if (lbl_1_bss_74 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 0); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 0); + HuSprAttrSet(var_r27, arg1->unk_48 + 0x2E, 4); + HuAudFXPlay(3); + } + if (lbl_1_bss_74 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + if (lbl_1_bss_74 != 0) { + do { + fn_1_10FBC(1); + var_r24 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C)) + || (var_r24 == 0) || (var_r24 == 5) || (var_r24 == 6) || (var_r24 == 0xB)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 5) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 2) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 5) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 2) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + else { + do { + var_r24 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 3) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 1) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 3) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 1) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_74 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r24; + HuAudFXPlay(0); + if (lbl_1_bss_74 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(lbl_1_data_584[var_r19][0], lbl_1_data_584[var_r24][0], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_584[var_r19][1], lbl_1_data_584[var_r24][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + else { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(lbl_1_data_4D4[var_r23][0], lbl_1_data_4D4[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_4D4[var_r22 * 4][1], lbl_1_data_4D4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + } + } + lbl_1_bss_20C.unk_30 = 0; +} + +s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r28 = 0; + var_r29 = lbl_1_bss_26C[1]; +loop_1: + fn_1_10FBC(1); + var_r28 = 0; + var_r26 = arg0->unk_54; + if (HuPadStkX[lbl_1_bss_8C->unk_58] >= 5) { + block_3: + if (((GWGameStat.story_continue >> 4) & 1) == 1) { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 3) { + arg0->unk_54 = 0; + } + } + else { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 2) { + arg0->unk_54 = 0; + } + } + block_19: + if (arg0->unk_54 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_10FBC(1); + if (lbl_1_bss_74 != 0) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x2E, arg0->unk_54); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_10FBC(1); + if (lbl_1_bss_74 != 0) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), lbl_1_data_4D4[arg0->unk_5C % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + } + goto loop_1; + } + if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_RIGHT) { + goto block_3; + } + if (HuPadStkX[lbl_1_bss_8C->unk_58] <= -5) { + block_10: + if (((GWGameStat.story_continue >> 4) & 1) == 1) { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 3; + } + } + else { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 2; + } + } + goto block_19; + } + if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_LEFT) { + goto block_10; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + } + else { + goto block_19; + } + if (var_r27 == 1) { + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x32, arg0->unk_54); + HuSprAttrReset(var_r29, arg0->unk_48 + 0x32, 4); + HuSprAttrSet(var_r29, arg0->unk_48 + 0x2E, 4); + } + return var_r27; +} + +void fn_1_FB38(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x1B); + lbl_1_bss_26C[2] = var_r29; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x67)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x68)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 1, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x69)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 2, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x6A)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 3, var_r31); + for (var_r30 = 0; var_r30 < 0xE; var_r30++) { + var_r31 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MPEX, 0x6B)), 0x5A, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 4, var_r31); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x79)); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x7A)); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31 = HuSprCreate(var_r28, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0x12, var_r31); + var_r31 = HuSprCreate(var_r27, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0x16, var_r31); + } + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x7B)), 0x46, 0); + HuSprGrpMemberSet(var_r29, 0x1A, var_r31); + fn_1_FD90(0); + fn_1_106E8(0); +} + +void fn_1_FD90(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + + var_r30 = lbl_1_bss_26C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + switch (arg0) { + case 0: + HuSprAttrReset(var_r30, 2, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = GWPlayerCfg[var_r31].character; + var_r25 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r28 + 4, 4); + HuSprPosSet(var_r30, var_r28 + 4, lbl_1_data_614[var_r31][0], lbl_1_data_614[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r25); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_614[var_r31][0], lbl_1_data_614[var_r31][1] + 0x14); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_614[var_r31][0], lbl_1_data_614[var_r31][1] + 0x14); + } + } + break; + case 1: + HuSprAttrReset(var_r30, 0, 4); + var_r27 = GWPlayerCfg->character; + var_r24 = GWPlayerCfg->diff; + HuSprAttrReset(var_r30, var_r27 + 4, 4); + HuSprPosSet(var_r30, var_r27 + 4, 0.0f, lbl_1_data_634[1]); + if (GWPlayerCfg->iscom != 0) { + HuSprAttrReset(var_r30, 0x16, 4); + HuSprBankSet(var_r30, 0x16, var_r24); + HuSprPosSet(var_r30, var_r31 + 0x16, 0.0f, lbl_1_data_634[1] + 0x14); + } + else { + HuSprAttrReset(var_r30, 0x12, 4); + HuSprBankSet(var_r30, 0x12, 0); + HuSprPosSet(var_r30, 0x12, 0.0f, lbl_1_data_634[1] + 0x14); + } + break; + case 2: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r26 = GWPlayerCfg[var_r31].character; + var_r23 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r26 + 4, 4); + HuSprPosSet(var_r30, var_r26 + 4, lbl_1_data_63C[var_r31][0], lbl_1_data_63C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r23); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_63C[var_r31][0], lbl_1_data_63C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_63C[var_r31][0], lbl_1_data_63C[var_r31][1] + 0x19); + } + } + break; + case 3: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = GWPlayerCfg[var_r31].character; + var_r22 = GWPlayerCfg[var_r31].diff; + var_r29 = fn_1_10C18(var_r29); + HuSprAttrReset(var_r30, var_r29 + 4, 4); + HuSprPosSet(var_r30, var_r29 + 4, lbl_1_data_64C[var_r31][0], lbl_1_data_64C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r22); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_64C[var_r31][0], lbl_1_data_64C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_64C[var_r31][0], lbl_1_data_64C[var_r31][1] + 0x19); + } + } + HuSprAttrReset(var_r30, 0x1A, 4); + break; + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_106E8(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_10764(s32 arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_26C[2]; + fn_1_FD90(arg0); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f); +} + +void fn_1_108C8(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_26C[2]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r29, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r29, 112.0f, -428.0f); + var_r28 = lbl_1_bss_26C[2]; + for (var_r30 = 0; var_r30 < 0x1B; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 112.0f, -428.0f); +} + +void fn_1_10A80(void) +{ + omObjData *var_r31; + + var_r31 = NULL; + var_r31 = omAddObjEx(lbl_1_bss_70, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_20C.unk_00 = var_r31; + lbl_1_bss_20C.unk_04 = NULL; + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_20C.unk_04 != NULL) { + lbl_1_bss_20C.unk_04(lbl_1_bss_20C.unk_00, &lbl_1_bss_20C); + } + } +} + +void fn_1_10B24(void) +{ + s32 var_r31; + omObjData *var_r30; + + var_r31 = lbl_1_bss_78[0]; + lbl_1_bss_78[0] = var_r31 + 1; + var_r30 = NULL; + var_r30 = omAddObjEx(lbl_1_bss_70, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_8C[var_r31].unk_00 = var_r30; + lbl_1_bss_8C[var_r31].unk_04 = NULL; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_8C[var_r31].unk_04 != NULL) { + lbl_1_bss_8C[var_r31].unk_04(lbl_1_bss_8C[var_r31].unk_00, &lbl_1_bss_8C[var_r31]); + } + } +} + +s32 fn_1_10C18(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 9: + var_r31 = 8; + break; + case 10: + var_r31 = 9; + break; + case 11: + var_r31 = 0xA; + break; + case 12: + var_r31 = 0xB; + break; + case 13: + var_r31 = 0xC; + break; + case 8: + var_r31 = 0xD; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +s32 fn_1_10C98(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 8: + var_r31 = 9; + break; + case 9: + var_r31 = 0xA; + break; + case 10: + var_r31 = 0xB; + break; + case 11: + var_r31 = 0xC; + break; + case 12: + var_r31 = 0xD; + break; + case 13: + var_r31 = 8; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +float fn_1_10D18(float arg8, float arg9, float argA, float argB) +{ + if (argB <= argA) { + return arg9; + } + return arg8 + ((argA / argB) * (arg9 - arg8)); +} + +float fn_1_10D40(float arg8, float arg9, float argA) +{ + return (arg9 + (arg8 * (argA - 1.0f))) / argA; +} + +float fn_1_10D60(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg9; + } + return arg8 + ((arg9 - arg8) * (1.0 - cosd(((90.0f / argB) * argA)))); +} + +float fn_1_10E38(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg9; + } + return arg8 + ((arg9 - arg8) * sind(((90.0f / argB) * argA))); +} + +float fn_1_10F00(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg8; + } + return arg8 + ((arg9 - arg8) * sind(((360.0f / argB) * argA))); +} + +void fn_1_10FBC(s32 arg0) +{ + if (arg0 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg0); +} + +void fn_1_10FFC(void) +{ + HuWinInit(1); +} + +void fn_1_11020(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_data_66C == -1) { + var_r31 = 0x1C9; + var_r30 = 0x44; + var_r29 = 1.0f + ((576.0f - var_r31) / 2.0f); + var_r28 = 445.0f - var_r30; + lbl_1_data_66C = HuWinExCreateStyled(var_r29, var_r28, var_r31, var_r30, -1, 1); + winData[lbl_1_data_66C].active_pad = 1; + HuWinMesPalSet(lbl_1_data_66C, 7, 0, 0, 0); + HuWinExAnimIn(lbl_1_data_66C); + } +} + +void fn_1_111E0(void) +{ + if (lbl_1_data_66C != -1) { + HuWinMesSet(lbl_1_data_66C, 0x250004); + HuWinExAnimOut(lbl_1_data_66C); + HuWinExCleanup(lbl_1_data_66C); + lbl_1_data_66C = -1; + } +} + +void fn_1_11264(s32 arg0, s32 arg1, s32 arg2) +{ + if (lbl_1_data_66C != -1) { + if (arg2 == 1) { + HuWinMesSpeedSet(lbl_1_data_66C, 0); + } + else { + HuWinMesSpeedSet(lbl_1_data_66C, 1); + } + HuWinMesSet(lbl_1_data_66C, arg0); + if (arg1 <= 0) { + HuWinMesWait(lbl_1_data_66C); + return; + } + if (arg1 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg1); + } +} + +void fn_1_11338(u32 arg0, s32 arg1) +{ + if (lbl_1_data_66C != -1) { + HuWinInsertMesSet(lbl_1_data_66C, arg0, arg1); + } +} + +s32 fn_1_11390(s32 arg0) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + HuWinMesMaxSizeGet(1, spC, 0x1E0035); + var_r30 = spC[0]; + var_r29 = spC[1]; + var_r27 = 0x22C - var_r30; + var_r26 = 0x1BD - var_r29; + var_r31 = HuWinExCreateStyled(var_r27, var_r26, var_r30, var_r29, -1, 1); + winData[var_r31].active_pad = 1; + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + HuWinExAnimIn(var_r31); + HuWinMesSpeedSet(var_r31, 0); + HuWinMesSet(var_r31, 0x1E0035); + var_r28 = HuWinChoiceGet(var_r31, arg0); + HuWinMesSet(var_r31, 0x250004); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + + return var_r28; +} + +void fn_1_114EC(u32 arg0, s32 arg1) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_r29 = spC[0]; + var_r31 = spC[1]; + var_r28 = (0x240 - var_r29) / 2.0f; + if (arg1 == 1) { + var_r30 = 0x1BD - var_r31; + } + else { + var_r30 = 0x181 - var_r31; + } + if (lbl_1_data_670 != -1) { + fn_1_1190C(); + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + else { + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); + HuWinDispOn(lbl_1_data_670); + HuWinMesSet(lbl_1_data_670, arg0); + HuWinMesSpeedSet(lbl_1_data_670, 0); +} + +void fn_1_11708(u32 arg0) +{ + float sp8[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, sp8, arg0); + var_r30 = sp8[0]; + var_r31 = sp8[1]; + var_r28 = (0x240 - var_r30) / 2.0f; + var_r29 = 0x181 - var_r31; + if (lbl_1_data_670 != -1) { + fn_1_1190C(); + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + else { + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); + HuWinDispOn(lbl_1_data_670); + HuWinMesSet(lbl_1_data_670, arg0); + HuWinMesSpeedSet(lbl_1_data_670, 0); +} + +void fn_1_1190C(void) +{ + if (lbl_1_data_670 != -1) { + HuWinExCleanup(lbl_1_data_670); + lbl_1_data_670 = -1; + } +} + +void fn_1_11960(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_11C64(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_11F68(void) +{ + s32 var_r29; + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 1) { + if (lbl_1_bss_8C[var_r31].unk_5C <= 5) { + var_r29 = lbl_1_bss_8C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_8C[var_r31].unk_5C <= 0xB) { + var_r29 = lbl_1_bss_8C[var_r31].unk_5C - 3; + } + else { + var_r29 = lbl_1_bss_8C[var_r31].unk_5C - 4; + } + HuSprBankSet(var_r30, var_r29 + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, *lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C], + lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C][1]); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, *lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C], + lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C][1]); + } + else { + lbl_1_bss_8C[var_r31].unk_5C = 1; + } + } +} + +void fn_1_122A8(s32 arg0) +{ + s32 sp8[14] = { + 0x0000006D, + 0x0000006E, + 0x0000006F, + 0x00000070, + 0x00000071, + 0x00000072, + 0x00000073, + 0x00000074, + 0x00000039, + 0x00000040, + 0x0000004B, + 0x00000046, + 0x0000003E, + 0x0000003A, + }; + + if ((arg0 < 0) || (arg0 > 0xD)) { + return; + } + HuAudFXPlay(sp8[arg0]); +} diff --git a/src/game/gamework.c b/src/game/gamework.c index c7384f01..822bd129 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -251,7 +251,7 @@ s32 GWMGAvailGet(s32 id) } } -s32 GWMGAvailSet(s32 id) +void GWMGAvailSet(s32 id) { s32 word; s32 bit; @@ -364,4 +364,4 @@ void GWTotalStarsAdd(s16 amount) u16 GWTotalStarsGet(void) { return GWGameStat.total_stars; -} \ No newline at end of file +}