More board PAL ports

This commit is contained in:
gamemasterplc 2024-11-16 09:49:45 -06:00
parent 4ee28d83a1
commit 9c3ad6ccfe
13 changed files with 886 additions and 663 deletions

View file

@ -132,6 +132,12 @@ static void ExecCharWheel(omObjData *arg0) {
temp_r31 = OM_GET_WORK_PTR(arg0, CharWheelWork);;
if (temp_r31->unk00_field0 != 0 || BoardIsKill()) {
KillCharWheelSpr();
#if VERSION_PAL
if (wheelFXStat != -1) {
HuAudFXStop(wheelFXStat);
wheelFXStat = -1;
}
#endif
charWheelObj = NULL;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
@ -322,7 +328,13 @@ static void UpdateCharWheel(CharWheelWork *arg0) {
}
var_f23 = 8191.0f - 8191.0f * (var_f25 / wheelSpeed);
OSf32tos16(&var_f23, &var_r17);
#if VERSION_PAL
if(wheelFXStat != -1) {
HuAudFXPitchSet(wheelFXStat, -var_r17);
}
#else
HuAudFXPitchSet(wheelFXStat, -var_r17);
#endif
if (var_f25 > -0.0000001f && var_f25 < 0.0000001f) {
arg0->unk00_field3 = 3;
if (wheelFXStat != -1) {
@ -379,7 +391,14 @@ static void GrowCharWheel(CharWheelWork *arg0) {
}
arg0->unk02 = 90;
arg0->unk00_field3 = 2;
#if VERSION_PAL
if(!BoardIsKill()) {
wheelFXStat = HuAudFXPlay(0x30A);
}
#else
wheelFXStat = HuAudFXPlay(0x30A);
#endif
}
OSs8tof32(&arg0->unk02, &temp_f30);
HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30));

View file

@ -112,7 +112,7 @@ static AnimData *genieParticleAnim;
static s16 geniePlayerMot[3];
static Process *itemProc;
s32 lbl_801D37A0[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 };
static s32 itemMotTbl[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 };
static void (*itemFuncTbl[])(void) = { ExecItemMini, ExecItemMega, ExecItemMiniSuper, ExecItemMegaSuper, ExecItemHammer, ExecItemPipe, ExecItemSwap,
ExecItemSpark, ExecItemLight, ExecItemWhistle, ExecItemBowser, ExecItemBooBall, ExecItemGenie, ExecItemBag };
@ -1183,7 +1183,7 @@ static void ExecItemSpark(void)
BoardModelLayerSet(temp_r30, 3);
BoardModelVisibilitySet(temp_r30, 0);
HuAudFXPlay(0x350);
suitMdl = BoardModelCreate(itemMdlTbl[currItem], lbl_801D37A0, 0);
suitMdl = BoardModelCreate(itemMdlTbl[currItem], itemMotTbl, 0);
BoardModelLayerSet(suitMdl, 2);
ItemShowProc(NULL, NULL);
temp_r28 = GWPlayer[currItemRestore].space_curr;

View file

@ -139,6 +139,71 @@ s32 BoardRollExec(s32 arg0)
return destMode;
}
static void RollWinCreate(s32 playerNo)
{
float sp8[2];
float posX;
float posY;
s32 var_r29;
s32 var_r27;
s32 temp_r25;
if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) {
var_r27 = BoardPlayerItemCount(playerNo);
if (GWTeamGet()) {
temp_r25 = BoardPlayerSameTeamFind(playerNo);
var_r27 += BoardPlayerItemCount(temp_r25);
}
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) {
var_r29 = MAKE_MESSID(0x09, 0x04);
}
else {
var_r29 = MAKE_MESSID(0x09, 0x02);
}
if (inputTimer != 0) {
var_r29 = MAKE_MESSID(0x30, 0x25);
}
HuWinMesMaxSizeGet(1, sp8, var_r29);
#if VERSION_PAL
posY = HU_DISP_HEIGHT - 176;
switch (GWGameStat.language) {
case 0:
case 4:
posX = -10000.0f;
break;
case 3:
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 32.0f);
break;
case 5:
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
posY = 258;
break;
default:
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
break;
}
#else
switch (GWGameStat.language) {
case 0:
posX = -10000.0f;
break;
case 1:
posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
break;
}
posY = HU_DISP_HEIGHT - 176;
#endif
rollWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0);
HuWinBGTPLvlSet(rollWin, 0.0f);
HuWinMesSpeedSet(rollWin, 0);
HuWinMesSet(rollWin, var_r29);
}
}
void BoardRollKill(void)
{
if (rollProc) {
@ -177,15 +242,11 @@ void BoardRollWinDispSet(s32 arg0)
static void RollMain(void)
{
float sp8[2];
float var_f31;
float var_f30;
s32 var_r28;
s32 var_r27;
s32 temp_r26;
s32 temp_r25;
s32 var_r30;
s32 var_r29;
s32 i;
diceValue[0] = diceValue[1] = diceValue[2] = 0;
@ -195,37 +256,7 @@ static void RollMain(void)
BoardCameraMotionWait();
BoardCameraTargetModelSet(-1);
for (i = 0; i < numDice; i++) {
temp_r26 = rollPlayer;
if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) {
var_r27 = BoardPlayerItemCount(temp_r26);
if (GWTeamGet()) {
temp_r25 = BoardPlayerSameTeamFind(temp_r26);
var_r27 += BoardPlayerItemCount(temp_r25);
}
if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) {
var_r29 = MAKE_MESSID(0x09, 0x04);
}
else {
var_r29 = MAKE_MESSID(0x09, 0x02);
}
if (inputTimer != 0) {
var_r29 = MAKE_MESSID(0x30, 0x25);
}
HuWinMesMaxSizeGet(1, sp8, var_r29);
switch (GWGameStat.language) {
case 0:
var_f31 = -10000.0f;
break;
case 1:
var_f31 = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f);
break;
}
var_f30 = HU_DISP_HEIGHT - 176;
rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0);
HuWinBGTPLvlSet(rollWin, 0.0f);
HuWinMesSpeedSet(rollWin, 0);
HuWinMesSet(rollWin, var_r29);
}
RollWinCreate(rollPlayer);
DiceCreate(i);
DiceWaitFull(i);
DoInput(i);

View file

@ -984,7 +984,12 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) {
omObjData *temp_r30;
ItemChoiceWork *var_r31;
s16 spC;
s16 i;
#if VERSION_PAL
for(i=0; i<6; i++) {
cursorPosTbl[i][0] = 190;
}
#endif
temp_r30 = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, UpdateShopItemChoice);
itemChoiceObj = temp_r30;
itemChoice = -1;
@ -996,11 +1001,29 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) {
var_r31->unk02 = 0;
var_r31->unk03 = arg1;
var_r31->unk06 = HuSprGrpCreate(1);
#if VERSION_PAL
if (GWLanguageGet() != 0) {
s16 winId = BoardWinIDGet();
if(winId != -1) {
WindowData *winP = &winData[winId];
for(i=0; i<6; i++) {
cursorPosTbl[i][0] = winP->pos_x+96;
}
} else {
for(i=0; i<6; i++) {
cursorPosTbl[i][0] = 166;
}
}
}
temp_r30->trans.x = cursorPosTbl[0][0];
temp_r30->trans.y = cursorPosTbl[0][1];
#else
temp_r30->trans.x = cursorPosTbl[0][0];
temp_r30->trans.y = cursorPosTbl[0][1];
if (GWLanguageGet() != 0) {
temp_r30->trans.x -= 24.0f;
}
#endif
if (GWPlayer[arg0].com) {
var_r31->unk01 = GWMessDelayGet();
}
@ -1032,9 +1055,11 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) {
temp_r28 = arg1->unk02;
arg0->trans.x = cursorPosTbl[arg1->unk02][0];
arg0->trans.y = cursorPosTbl[arg1->unk02][1];
#if VERSION_NTSC
if (GWLanguageGet() != 0) {
arg0->trans.x -= 24.0f;
}
#endif
if (GWPlayer[arg1->unk00_field1].com) {
GetShopItemChoiceInput(arg1, arg0, &sp8);
} else {

View file

@ -74,7 +74,7 @@ static Process *starProc;
static s16 starParman = -1;
static s16 hostMdl = -1;
const s32 lbl_8011E040[9] = {
static const s32 starMesTbl1[9] = {
MAKE_MESSID(12, 0),
MAKE_MESSID(12, 9),
MAKE_MESSID(12, 18),
@ -86,7 +86,7 @@ const s32 lbl_8011E040[9] = {
MAKE_MESSID(12, 0)
};
const s32 lbl_8011E064[9][2] = {
static const s32 starMesTbl2[9][2] = {
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
{ MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) },
{ MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) },
@ -249,12 +249,12 @@ static void ExecStar(void) {
BoardCameraViewSet(3);
BoardCameraMotionWait();
if (GWStarsGet(temp_r31) >= 999) {
temp_r29 = lbl_8011E040[temp_r27] + 5;
temp_r29 = starMesTbl1[temp_r27] + 5;
BoardWinCreate(0, temp_r29, BoardWinPortraitGetStar());
BoardWinWait();
BoardWinKill();
} else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) {
temp_r29 = lbl_8011E040[temp_r27] + 2;
temp_r29 = starMesTbl1[temp_r27] + 2;
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
BoardWinWait();
BoardWinKill();
@ -263,7 +263,7 @@ static void ExecStar(void) {
while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) {
HuPrcVSleep();
}
temp_r29 = lbl_8011E040[temp_r27];
temp_r29 = starMesTbl1[temp_r27];
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
BoardWinInsertMesSet(BoardPlayerGetCharMess(temp_r31), 0);
BoardWinWait();
@ -275,12 +275,12 @@ static void ExecStar(void) {
HuPrcVSleep();
}
if (GWSystem.last5_effect == 4) {
temp_r29 = lbl_8011E040[temp_r27] + 8;
temp_r29 = starMesTbl1[temp_r27] + 8;
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
BoardWinWait();
break;
}
temp_r29 = lbl_8011E040[temp_r27] + 1;
temp_r29 = starMesTbl1[temp_r27] + 1;
BoardWinCreateChoice(1, temp_r29, BoardWinPortraitGetStar(), 0);
BoardWinAttrSet(0x10);
if (GWPlayer[temp_r31].com) {
@ -294,7 +294,7 @@ static void ExecStar(void) {
switch (BoardWinChoiceGet()) {
case 0:
if (BoardPlayerCoinsGet(temp_r31) < 20) {
temp_r29 = lbl_8011E040[temp_r27] + 2;
temp_r29 = starMesTbl1[temp_r27] + 2;
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
BoardWinWait();
BoardStatusShowSet(temp_r31, 0);
@ -306,7 +306,7 @@ static void ExecStar(void) {
}
goto block_A;
case 1:
temp_r29 = lbl_8011E040[temp_r27] + 4;
temp_r29 = starMesTbl1[temp_r27] + 4;
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
BoardWinWait();
BoardStatusShowSet(temp_r31, 0);
@ -326,7 +326,7 @@ static void ExecStar(void) {
}
}
block_A:
temp_r29 = lbl_8011E040[temp_r27] + 3;
temp_r29 = starMesTbl1[temp_r27] + 3;
BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar());
BoardWinWait();
BoardWinKill();
@ -734,9 +734,9 @@ void BoardStarShowNext(s32 arg0) {
HuPrcVSleep();
}
if (var_r28 == 0) {
var_r30 = lbl_8011E040[GWBoardGet()] + 6;
var_r30 = starMesTbl1[GWBoardGet()] + 6;
} else {
var_r30 = lbl_8011E064[GWBoardGet()][0];
var_r30 = starMesTbl2[GWBoardGet()][0];
}
BoardWinCreate(3, var_r30, -1);
BoardWinPause();
@ -748,9 +748,9 @@ void BoardStarShowNext(s32 arg0) {
BoardWinKill();
HuPrcSleep(3);
if (var_r28 == 0) {
var_r30 = lbl_8011E040[GWBoardGet()] + 7;
var_r30 = starMesTbl1[GWBoardGet()] + 7;
} else {
var_r30 = lbl_8011E064[GWBoardGet()][1];
var_r30 = starMesTbl2[GWBoardGet()][1];
}
BoardWinCreate(3, var_r30, -1);
BoardWinWait();

View file

@ -1951,28 +1951,32 @@ static void UpdateItemWindow(omObjData *arg0) {
static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) {
float spC[2];
float var_f31;
float var_f30;
float var_f29;
float posX;
float posY;
float yOfs;
s32 var_r30;
#if VERSION_NTSC
switch (GWGameStat.language) {
case 1:
var_f31 = 0.0f;
yOfs = 0.0f;
break;
case 0:
var_f31 = 0.0f;
yOfs = 0.0f;
break;
}
#else
yOfs = 0;
#endif
if (arg1 != 0) {
var_r30 = MAKE_MESSID(0x10, 0x1A);
} else {
var_r30 = MAKE_MESSID(0x10, 0x1B);
}
HuWinMesMaxSizeGet(1, spC, var_r30);
var_f30 = -10000.0f;
var_f29 = var_f31 + (HU_DISP_HEIGHT-128);
arg0->unk06 = HuWinCreate(var_f30, var_f29, spC[0], spC[1], 0);
posX = -10000.0f;
posY = yOfs + (HU_DISP_HEIGHT-128);
arg0->unk06 = HuWinCreate(posX, posY, spC[0], spC[1], 0);
HuWinBGTPLvlSet(arg0->unk06, 0.0f);
HuWinMesSpeedSet(arg0->unk06, 0);
HuWinMesSet(arg0->unk06, var_r30);