diff --git a/include/game/audio.h b/include/game/audio.h index 7392530a..7481c410 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -58,8 +58,8 @@ void HuAudSndCommonGrpSet(s16 arg0, s32 arg1); void HuAudAUXSet(s32 arg0, s32 arg1); void HuAudAUXVolSet(s8 arg0, s8 arg1); void HuAudVoiceInit(s16 ovl); -void HuAudPlayerVoicePlay(s16 arg0, s16 arg1); -void HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); +s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1); +s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1); s32 HuAudCharVoicePlay(s16 arg0, s16 arg1); s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 3d81e3bf..a9c1eacc 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -57,6 +57,7 @@ s32 lbl_1_bss_174; s16 lbl_1_bss_172; s16 lbl_1_bss_170; s16 lbl_1_bss_168[4]; +s16 lbl_1_bss_158[8]; AnimData *lbl_1_bss_144[5]; AnimData *lbl_1_bss_E4[8][3]; AnimData *lbl_1_bss_E0; @@ -64,11 +65,14 @@ s16 lbl_1_bss_CE[9]; s16 lbl_1_bss_9E[8][3]; s16 lbl_1_bss_9C; s16 lbl_1_bss_5C[8][4]; +s16 lbl_1_bss_54[4]; s16 lbl_1_bss_52; s16 lbl_1_bss_4A[4]; s16 lbl_1_bss_42[4]; s16 lbl_1_bss_3A[4]; s16 lbl_1_bss_12[4][5]; +s16 lbl_1_bss_A[4]; +s16 lbl_1_bss_8; s32 lbl_1_bss_4; s32 lbl_1_bss_0; @@ -433,7 +437,7 @@ void fn_1_B78(void) model = Hu3DModelCreateFile(0x6F0007); for(i=0; i<8; i++) { j = Hu3DModelLink(model); - lbl_1_bss_168[i] = j; + lbl_1_bss_158[i] = j; pos = lbl_1_data_0[i+4].pos; pos.x += 5.0f; pos.y += 3.0f; @@ -474,4 +478,367 @@ void fn_1_B78(void) HuSprAttrSet(group, 3, 4); HuSprDrawNoSet(group, 3, 127); (void)sprite; +} + +void fn_1_1F4C(void) +{ + float temp_f31; + float temp_f30; + + s16 i; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s32 status; + s32 temp_r26; + s32 sp24[4]; + float sp14[4]; + s16 sp8[5]; + + + + fn_1_423C(sp8); + for(i=0; i<4; i++) { + fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]); + sp24[i] = 0; + } + temp_r29 = (lbl_1_bss_174) ? 3 : 10; + for(temp_r30=0; temp_r30<=temp_r29; temp_r30++) { + temp_f31 = sin(M_PI*((90.0/temp_r29)*temp_r30)/180.0); + for(i=0; i<4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + } + HuPrcVSleep(); + } + for(i=0; i<4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], 1.0f, 1.0f); + } + for(temp_r28=0; temp_r28<=14;) { + for(i=0; i<4; i++) { + if(GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { + HuSprAttrReset(lbl_1_bss_9C, i, 4); + } + HuSprScaleSet(lbl_1_bss_9C, i, sin(M_PI*((120.0f/14.0f)*temp_r28)/180.0)*(0.8*(1.0/sin((M_PI*2)/3))), 0.8*(sin(M_PI*((120.0f/14.0f)*temp_r28)/180.0)*(1.0/sin((M_PI*2)/3)))); + } + temp_r28 += (lbl_1_bss_174) ? 2 : 1; + HuPrcVSleep(); + } + if(!lbl_1_bss_174) { + HuPrcSleep(15); + } + for(i=0; i<4; i++) { + sp14[i] = 0.0f; + } + for(i=temp_r30=0; i<4; i++) { + temp_r30 += sp8[i]; + } + status = -1; + if(temp_r30) { + status = HuAudFXPlay(23); + } + temp_r30 = 0; + temp_f30 = temp_r30; + temp_r30 = 0; + while(1) { + temp_r26 = 0 ; + temp_f30 += (lbl_1_bss_174) ? 1.0f : 0.2f; + temp_r30 = temp_f30; + for(i=temp_r29=0; i<4; i++) { + if(sp8[lbl_1_bss_4A[i]]-temp_r30 <= 0) { + if(!sp24[lbl_1_bss_4A[i]] && sp8[lbl_1_bss_4A[i]] != 0) { + sp24[lbl_1_bss_4A[i]] = 1; + if(!temp_r26) { + HuAudFXPlay(9); + temp_r26 = 1; + } + } + + temp_r29++; + fn_1_3CAC(lbl_1_bss_3A[i], 0); + fn_1_3B50(lbl_1_bss_CE[(i*2)+1], sp8[lbl_1_bss_4A[i]]+BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + if(!sp14[i]) { + continue; + } + sp14[i] += 20.0f; + if(sp14[i] >= 360.0f) { + sp14[i] -= 360.0f; + } + Hu3DModelRotSet(lbl_1_bss_1A9C[i+8], 0.0f, sp14[i], 0.0f); + } else { + fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]-temp_r30); + fn_1_3B50(lbl_1_bss_CE[(i*2)+1], (s32)temp_r30+BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + sp14[i] += 20.0f; + if(sp14[i] >= 360.0f) { + sp14[i] -= 360.0f; + } + Hu3DModelRotSet(lbl_1_bss_1A9C[i+8], 0.0f, sp14[i], 0.0f); + } + } + if(temp_r29 == 4) { + break; + } + HuPrcVSleep(); + } + if(status != -1) { + HuAudFXStop(status); + } + temp_r29 = 0; + while(1) { + for(i=temp_r30=0; i<4; i++) { + if(sp14[i]) { + sp14[i] += 20.0f; + if(sp14[i] >= 360.0f) { + sp14[i] -= 360.0f; + } + Hu3DModelRotSet(lbl_1_bss_1A9C[i+8], 0.0f, sp14[i], 0.0f); + } else { + temp_r30++; + } + } + if(temp_r30 >= 4) { + break; + } + HuPrcVSleep(); + temp_r29++; + } + if(temp_r29 < 30) { + HuPrcSleep(30-temp_r29); + } + temp_r29 = (lbl_1_bss_174) ? 3 : 10; + for(temp_r30=0; temp_r30<=temp_r29; temp_r30++) { + temp_f31 = cos(M_PI*((90.0/temp_r29)*temp_r30)/180.0); + for(i=0; i<4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + } + HuPrcVSleep(); + } + for(i=0; i<4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + } +} + +void fn_1_2ADC(void) +{ + float temp_f31; + s16 i; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + float sp54[4]; + Vec sp48; + s32 sp38[4] = { -1, -1, -1, -1 }; + s16 sp30[4]; + s16 sp28[4]; + s16 sp20[4]; + s16 sp18[4]; + s16 sp10[4]; + s16 sp8[4]; + for(i=0; i<4; i++) { + sp30[i] = sp28[i] = lbl_1_bss_4A[i]; + sp18[i] = sp20[i] = lbl_1_bss_42[i]; + sp10[i] = BoardPlayerCoinsGet(lbl_1_bss_4A[i]); + sp8[i] = GWStarsGet(lbl_1_bss_4A[i]); + } + fn_1_3E08(); + for(i=0; i<4; i++) { + if(sp30[i] != lbl_1_bss_4A[i] || sp18[i] != lbl_1_bss_42[i]) { + break; + } + } + if(i == 4) { + lbl_1_bss_0 = 1; + return; + } + lbl_1_data_380 = HuSprGrpCreate(4); + for(i=0; i<4; i++) { + temp_r24 = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); + HuSprGrpMemberSet(lbl_1_data_380, i, temp_r24); + HuSprPosSet(lbl_1_data_380, i, lbl_1_data_3F8[(i*2)], lbl_1_data_3F8[(i*2)+1]); + HuSprAttrSet(lbl_1_data_380, i, 4); + temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; + lbl_1_bss_54[i] = lbl_1_bss_A[i] = Hu3DModelLink(lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]]); + Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); + Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); + if(sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { + Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); + Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + } else { + Hu3DModelAttrSet(lbl_1_bss_A[i], 1); + } + } + for(i=0; i<4; i++) { + sp54[i] = 0; + } + temp_r25 = 0; + temp_r28 = 0; + while(1) { + for(temp_r26=i=0; i<4; i++) { + if(sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { + temp_r26++; + fn_1_3B50(lbl_1_bss_CE[(i*2)], GWStarsGet(lbl_1_bss_4A[i])); + fn_1_3B50(lbl_1_bss_CE[(i*2)+1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + } else { + if(temp_r28 > (i*20)) { + temp_r27 = temp_r28-(i*20); + if(temp_r27 <= 20) { + if(temp_r27 <= 10) { + HuSprScaleSet(lbl_1_bss_52, i, 1.0f, sin(M_PI*(9.0f*temp_r27)/180.0)); + } else { + HuSprAttrSet(lbl_1_bss_52, i, 4); + HuSprAttrReset(lbl_1_data_380, i, 4); + HuSprScaleSet(lbl_1_data_380, i, 1.0f, sin(M_PI*(9.0f*(temp_r27-10))/180.0)); + } + temp_f31 = temp_r27/20.0f; + temp_r29 = GWStarsGet(sp28[i])+(temp_f31*(GWStarsGet(lbl_1_bss_4A[i])-GWStarsGet(sp28[i]))); + fn_1_3B50(lbl_1_bss_CE[(i*2)], temp_r29); + temp_r29 = BoardPlayerCoinsGet(sp28[i])+(temp_f31*(BoardPlayerCoinsGet(lbl_1_bss_4A[i])-BoardPlayerCoinsGet(sp28[i]))); + fn_1_3B50(lbl_1_bss_CE[(i*2)+1], temp_r29); + } else { + temp_r30 = GWPlayerCfg[sp28[i]].character; + Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); + temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; + Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + fn_1_3B50(lbl_1_bss_CE[(i*2)], GWStarsGet(lbl_1_bss_4A[i])); + fn_1_3B50(lbl_1_bss_CE[(i*2)+1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + for(temp_r29=0; temp_r29<4; temp_r29++) { + if(sp28[temp_r29] == lbl_1_bss_4A[i]) { + break; + } + } + if(lbl_1_bss_42[i] != sp20[temp_r29]) { + if(lbl_1_bss_42[i] < sp20[temp_r29]) { + Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][1], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + } else { + Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][2], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + } + if(lbl_1_bss_42[i] == 0) { + sp38[lbl_1_bss_4A[i]] = HuAudPlayerVoicePlay(lbl_1_bss_4A[i], 293); + } + if(!temp_r25) { + temp_r25 = 1; + HuAudFXPlay(27); + } + } + sp30[i] = lbl_1_bss_4A[i]; + sp18[i] = lbl_1_bss_42[i]; + } + } + sp54[i] += 20.0f; + if(sp54[i] >= 360.0f) { + sp54[i] -= 360.0f; + } + temp_r30 = GWPlayerCfg[sp28[i]].character; + Hu3DModelRotSet(lbl_1_bss_5C[temp_r30][sp18[i]], sp54[i]/(4-i), sp54[i], 0.0f); + } + } + if(temp_r28 <= 10) { + for(i=0; i<4; i++) { + HuSprScaleSet(lbl_1_bss_9C, i, cos(M_PI*(9.0f*temp_r28)/180.0), cos(M_PI*(9.0f*temp_r28)/180.0)); + } + } else { + for(i=0; i<4; i++) { + HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + } + } + if(temp_r26 >= 4) { + break; + } + if(lbl_1_bss_174) { + temp_r28 += 2; + } + HuPrcVSleep(); + temp_r28++; + } + for(i=0; i<4; i++) { + HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + } + lbl_1_bss_0 = 1; +} + +void fn_1_3B50(s16 group, s16 value) +{ + s16 digit; + s16 digit_value; + if(value > 999) { + value = 999; + } + digit = 0; + digit_value = value/100; + if(digit_value != 0) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value*100; + digit_value = value/10; + if(digit_value != 0 || digit == 1) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value*10; + HuSprBankSet(group, digit, value); + HuSprAttrReset(group, digit, 4); + digit++; + for(digit_value=digit; digit_value<3; digit_value++) { + HuSprAttrSet(group, digit_value, 4); + } +} + +void fn_1_3CAC(s16 group, s16 value) +{ + s16 digit; + s16 digit_value; + if(value > 999) { + value = 999; + } + digit = 2; + digit_value = value/100; + if(digit_value != 0) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value*100; + digit_value = value/10; + if(digit_value != 0 || digit == 3) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value*10; + HuSprBankSet(group, digit, value); + HuSprAttrReset(group, digit, 4); + digit++; + for(digit_value=digit; digit_value<5; digit_value++) { + HuSprAttrSet(group, digit_value, 4); + } +} + +void fn_1_3E08(void) +{ + s16 i; + s16 j; + for(i=0; i<4; i++) { + lbl_1_bss_42[i] = BoardPlayerRankCalc(i); + lbl_1_bss_4A[i] = i; + } + for(j=1; j<4; j++) { + for(i=0; i<4-j; i++) { + if(lbl_1_bss_42[i] > lbl_1_bss_42[i+1]) { + s16 temp = lbl_1_bss_42[i]; + lbl_1_bss_42[i] = lbl_1_bss_42[i+1]; + lbl_1_bss_42[i+1] = temp; + temp = lbl_1_bss_4A[i]; + lbl_1_bss_4A[i] = lbl_1_bss_4A[i+1]; + lbl_1_bss_4A[i+1] = temp; + } + } + } } \ No newline at end of file diff --git a/src/game/audio.c b/src/game/audio.c index 804da97f..1348bd5b 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -597,16 +597,16 @@ void HuAudVoiceInit(s16 ovl) { } } -void HuAudPlayerVoicePlay(s16 arg0, s16 arg1) { +s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1) { s16 temp_r31 = GWPlayerCfg[arg0].character; - HuAudCharVoicePlay(temp_r31, arg1); + return HuAudCharVoicePlay(temp_r31, arg1); } -void HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) { +s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) { s16 temp_r31 = GWPlayerCfg[arg0].character; - HuAudCharVoicePlayPos(temp_r31, arg1, arg2); + return HuAudCharVoicePlayPos(temp_r31, arg1, arg2); } void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1) {