diff --git a/config/GMPE01_00/rels/resultDll/symbols.txt b/config/GMPE01_00/rels/resultDll/symbols.txt index acded739..64910ff2 100644 --- a/config/GMPE01_00/rels/resultDll/symbols.txt +++ b/config/GMPE01_00/rels/resultDll/symbols.txt @@ -31,70 +31,70 @@ fn_1_927C = .text:0x0000927C; // type:function size:0x138 fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 _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:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -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_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -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_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte -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_11C = .rodata:0x0000011C; // 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:0x8 data:double -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:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -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:0x8 data:float +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:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +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_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +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_F4 = .rodata:0x000000F4; // type:object size:0x10 scope:local data:4byte +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_11C = .rodata:0x0000011C; // 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:0x8 scope:local data:double +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:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +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:0x8 scope:local 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 @@ -137,20 +137,20 @@ lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data: lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 scope:local data:string lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 scope:local lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 -lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string -lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB data:string +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 scope:local data:string +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB scope:local data:string lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 lbl_1_data_780 = .data:0x00000780; // type:object size:0x70 diff --git a/configure.py b/configure.py index 859c3d18..e02757d7 100644 --- a/configure.py +++ b/configure.py @@ -1053,7 +1053,7 @@ config.libs = [ Rel('resultDll', objects = { Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/resultDll/main.c"), + Object(Matching, "REL/resultDll/main.c"), Object(NonMatching, "REL/resultDll/battle.c"), Object(Matching, "REL/resultDll/datalist.c"), } diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 3f757674..b7839e9f 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -937,7 +937,7 @@ void fn_1_423C(s16 *data) } else if(sp8[0] ==2) { sp10[0] = 0.5f; } else if(sp8[0] == 3) { - sp10[0] = 1.0f/3.0f; + sp10[0] = 0.3333333f; } else if(sp8[0] == 1 && sp8[1] == 2) { sp10[0] = 0.6f; sp10[1] = 0.2f; @@ -1040,5 +1040,261 @@ Vec lbl_1_data_488[] = { void fn_1_47FC(void) { + s16 temp_r31; + s16 temp_r24; + s16 temp_r21; + s16 temp_r20; + s16 temp_r19; + s16 temp_r18; + s16 temp_r17; + Vec sp40; + Vec sp34; + s16 sp2C[4]; + s16 sp28[2]; + s16 sp24[2]; + s16 sp20[2]; + s16 sp1C[2]; + s16 sp18[2]; + AnimData *sp14; + s32 sp10; + s16 spC; + s16 spA; + s16 sp8; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while(WipeStatGet()) { + HuPrcVSleep(); + } + espAttrSet(lbl_1_bss_1A1A[0], 4); + espAttrSet(lbl_1_bss_1A1A[1], 4); + for(temp_r31=0; temp_r31<2; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31+6], 1); + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31+10], 1); + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + espAttrSet(lbl_1_bss_1A1A[temp_r31+6], 4); + } + for(temp_r31=4; temp_r31<8; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], 1); + } + for(temp_r31=4; temp_r31<8; temp_r31++) { + HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + for(temp_r19=0; temp_r19<4; temp_r19++) { + Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], 1); + } + Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], 1); + } + HuSprGrpKill(lbl_1_bss_9C); + HuSprGrpKill(lbl_1_bss_52); + if(lbl_1_data_380 != -1) { + HuSprGrpKill(lbl_1_data_380); + } + sp28[0] = sp28[1] = 0; + sp24[0] = sp24[1] = 0; + sp1C[0] = 0; + sp1C[1] = 2; + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r17 = GWPlayer[temp_r31].team; + sp28[temp_r17] += BoardPlayerCoinsGet(temp_r31); + sp24[temp_r17] += GWStarsGet(temp_r31); + sp2C[sp1C[temp_r17]++] = GWPlayerCfg[temp_r31].character; + } + sp18[0] = 0; + sp18[1] = 1; + if(sp24[0] > sp24[1]) { + lbl_1_bss_8 = 0; + } else { + if(sp24[0] == sp24[1]) { + if(sp28[0] > sp28[1]) { + lbl_1_bss_8 =0; + } else if(sp28[0] == sp28[1]) { + sp18[0] = sp18[1] = 0; + lbl_1_bss_8 = 0; + } else { + lbl_1_bss_8 = 1; + } + } else { + lbl_1_bss_8 = 1; + } + } + HuSprAttrReset(lbl_1_bss_170, 0, 4); + HuSprAttrReset(lbl_1_bss_170, 1, 4); + HuSprPosSet(lbl_1_bss_170, 1, 0, -180); + HuSprAttrReset(lbl_1_bss_170, 2, 4); + HuSprAttrReset(lbl_1_bss_170, 3, 4); + if(lbl_1_bss_8 == 0) { + sp20[0] = -55; + sp20[1] = 115; + } else { + sp20[0] = 115; + sp20[1] = -55; + temp_r24 = sp2C[0]; + sp2C[0] = sp2C[2]; + sp2C[2] = temp_r24; + temp_r24 = sp2C[1]; + sp2C[1] = sp2C[3]; + sp2C[3] = temp_r24; + temp_r24 = sp28[0]; + sp28[0] = sp28[1]; + sp28[1] = temp_r24; + temp_r24 = sp24[0]; + sp24[0] = sp24[1]; + sp24[1] = temp_r24; + } + HuSprPosSet(lbl_1_bss_170, 2, 0, sp20[0]); + HuSprPosSet(lbl_1_bss_170, 3, 0, sp20[1]); + HuSprGrpPosSet(lbl_1_bss_170, 288, 240); + for(temp_r31=0; temp_r31<4; temp_r31++) { + if(temp_r31 < 2) { + sp10 = 0; + } else { + sp10 = 1; + } + temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; + Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); + Hu3DModelAttrReset(temp_r18, 1); + Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); + Hu3DModelPosSetV(temp_r18, &sp40); + Hu3DModelRotSet(temp_r18, 0, 0, 0); + sp34 = lbl_1_data_488[temp_r31]; + sp34.y += 5.0f; + sp34.x += 3.0f; + sp34.z += 200.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_168[temp_r31], &sp40); + } + spC = HuSprGrpCreate(2); + for(temp_r31=0; temp_r31<2; temp_r31++) { + sp14 = HuSprAnimReadFile(0x6F0016+sp18[temp_r31]); + spA = HuSprCreate(sp14, temp_r31, 0); + HuSprGrpMemberSet(spC, temp_r31, spA); + HuSprPosSet(spC, temp_r31, (lbl_1_data_488[temp_r31*2].x)-80.0f, lbl_1_data_488[temp_r31*2].y); + sp34 = lbl_1_data_488[temp_r31*2]; + sp34.x += 180.0f; + sp34.y -= 35.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31+4], &sp40); + sp34.y += 5.0f; + sp34.x += 3.0f; + sp34.z += 200.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_158[temp_r31*2], &sp40); + espPosSet(lbl_1_bss_1A1A[(temp_r31*2)+2], 230.0f+lbl_1_data_488[temp_r31*2].x, lbl_1_data_488[temp_r31*2].y-35.0f); + fn_1_3B50(lbl_1_bss_CE[temp_r31*2], sp24[temp_r31]); + HuSprGrpPosSet(lbl_1_bss_CE[temp_r31*2], 320.0f+lbl_1_data_488[temp_r31*2].x, lbl_1_data_488[temp_r31*2].y-35.0f); + sp34 = lbl_1_data_488[temp_r31*2]; + sp34.x += 180.0f; + sp34.y += 35.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31+8], &sp40); + sp34.y += 5.0f; + sp34.x += 3.0f; + sp34.z += 200.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_158[(temp_r31*2)+1], &sp40); + espPosSet(lbl_1_bss_1A1A[(temp_r31*2)+3], 230.0f+lbl_1_data_488[temp_r31*2].x, 35.0f+lbl_1_data_488[temp_r31*2].y); + fn_1_3B50(lbl_1_bss_CE[(temp_r31*2)+1], sp28[temp_r31]); + HuSprGrpPosSet(lbl_1_bss_CE[(temp_r31*2)+1], 320.0f+lbl_1_data_488[temp_r31*2].x, 35.0f+lbl_1_data_488[temp_r31*2].y); + } + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while(WipeStatGet()) { + HuPrcVSleep(); + } + temp_r21 = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(temp_r21, 0); + HuWinBGTPLvlSet(temp_r21, 0); + HuWinPriSet(temp_r21, 5); + HuWinAttrSet(temp_r21, 0x800); + HuWinMesSet(temp_r21, 0x240007); + HuPrcSleep(4); + temp_r31 = 0; + while(1) { + if(lbl_1_bss_4 && temp_r31 > 120) { + break; + } + for(temp_r20=sp8=0; temp_r20<4; temp_r20++) { + if(!GWPlayerCfg[temp_r20].iscom) { + sp8 |= HuPadBtnDown[GWPlayerCfg[temp_r20].pad_idx]; + } + } + if(sp8 & PAD_BUTTON_A) { + HuAudFXPlay(28); + break; + } + HuPrcVSleep(); + temp_r31++; + } + HuWinKill(temp_r21); +} + +void fn_1_5880(omObjData *object) +{ + Vec pos; + Vec offset; + Vec dir; + Vec y_offset; + + f32 z_rot; + s8 stick_pos; + if(HuPadBtn[0] & PAD_BUTTON_UP) { + CRot.x += 2.0f; + } + if(HuPadBtn[0] & PAD_BUTTON_DOWN) { + CRot.x -= 2.0f; + } + if(HuPadBtn[0] & PAD_BUTTON_LEFT) { + CRot.y += 2.0f; + } + if(HuPadBtn[0] & PAD_BUTTON_RIGHT) { + CRot.y -= 2.0f; + } + if(HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("CRot %f,%f,%f\n", CRot.x, CRot.y, CRot.z); + OSReport("Center %f,%f,%f\n", Center.x, Center.y, Center.z); + OSReport("CZoom %f\n", CZoom); + } + + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; + + pos.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); + pos.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); + pos.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + offset.x = Center.x - pos.x; + offset.y = Center.y - pos.y; + offset.z = Center.z - pos.z; + dir.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + dir.y = cos((M_PI * CRot.x) / 180.0); + dir.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + z_rot = CRot.z; + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) + + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) + + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) + + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) + + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); + + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) + + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) + + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + + PSVECCrossProduct(&dir, &offset, &offset); + PSVECNormalize(&offset, &offset); + stick_pos = (HuPadSubStkX[0] & 0xF8); + if (stick_pos != 0) { + Center.x += 0.05f * (offset.x * stick_pos); + Center.y += 0.05f * (offset.y * stick_pos); + Center.z += 0.05f * (offset.z * stick_pos); + } + PSVECNormalize(&y_offset, &offset); + stick_pos = -(HuPadSubStkY[0] & 0xF8); + if (stick_pos != 0) { + Center.x += 0.05f * (offset.x * stick_pos); + Center.y += 0.05f * (offset.y * stick_pos); + Center.z += 0.05f * (offset.z * stick_pos); + } } \ No newline at end of file