Merge pull request #387 from dbalatoni13/main

Applied DATA_MAKE_NUM and MAKE_MESSID macros
This commit is contained in:
Liam Coleman 2024-08-08 18:42:28 -05:00 committed by GitHub
commit 448e32332c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
116 changed files with 38174 additions and 37156 deletions

View file

@ -453,10 +453,10 @@ static s16 lbl_2_data_31E[] = {
};
static u32 playerCntMessTbl[] = {
0x00220002,
0x00220003,
0x00220004,
0x00220001
MAKE_MESSID(0x22, 0x02),
MAKE_MESSID(0x22, 0x03),
MAKE_MESSID(0x22, 0x04),
MAKE_MESSID(0x22, 0x01)
};
static void UpdatePlayerCnt(omObjData *object)
@ -602,16 +602,16 @@ static void InitPlayerCnt(omObjData *object)
HuSprAttrSet(group, index, HUSPR_ATTR_DISPOFF);
HuSprAttrSet(index2, index, HUSPR_ATTR_DISPOFF);
}
HuWinMesMaxSizeGet(1, sizeMax, 0x220000);
HuWinMesMaxSizeGet(1, sizeMax, MAKE_MESSID(0x22, 0x00));
index2 = HuWinCreate(-10000, 26, sizeMax[0], sizeMax[1], 0);
work->winHeader = index2;
HuWinMesColSet(index2, 4);
HuWinBGTPLvlSet(index2, 0);
HuWinMesSpeedSet(index2, 0);
HuWinMesSet(index2, 0x220000);
HuWinMesSet(index2, MAKE_MESSID(0x22, 0x00));
work->playerCntOld = work->playerCnt = configE3.playerCnt;
mess = playerCntMessTbl[work->playerCnt];
HuWinMesMaxSizeGet(4, sizeMax, 0x220001, 0x220002, 0x220003, 0x220004);
HuWinMesMaxSizeGet(4, sizeMax, MAKE_MESSID(0x22, 0x01), MAKE_MESSID(0x22, 0x02), MAKE_MESSID(0x22, 0x03), MAKE_MESSID(0x22, 0x04));
index2 = HuWinCreate(-10000, 58, sizeMax[0], sizeMax[1], 0);
work->winPlayer = index2;
work->winSize = *(Vec2f *)(sizeMax); //FIXME: Remove Cast
@ -1143,8 +1143,8 @@ typedef struct e3_rumble_cfg_work {
} E3RumbleCfgWork;
static u32 rumbleMess[] = {
0x220008,
0x220007
MAKE_MESSID(0x22, 0x08),
MAKE_MESSID(0x22, 0x07)
};
static void UpdateRumbleCfg(omObjData *object)
@ -1283,16 +1283,16 @@ static void InitRumbleCfg(omObjData *object)
HuSprAttrSet(group, index, HUSPR_ATTR_DISPOFF);
HuSprAttrSet(index2, index, HUSPR_ATTR_DISPOFF);
}
HuWinMesMaxSizeGet(1, sizeMax, 0x220006);
HuWinMesMaxSizeGet(1, sizeMax, MAKE_MESSID(0x22, 0x06));
index2 = HuWinCreate(-10000, 267, sizeMax[0], sizeMax[1], 0);
work->winHeader = index2;
HuWinMesColSet(index2, 4);
HuWinBGTPLvlSet(index2, 0);
HuWinMesSpeedSet(index2, 0);
HuWinMesSet(index2, 0x220006);
HuWinMesSet(index2, MAKE_MESSID(0x22, 0x06));
work->rumbleValOld = work->rumbleVal = configE3.rumble;
mess = rumbleMess[work->rumbleVal];
HuWinMesMaxSizeGet(2, sizeMax, 0x220007, 0x220008);
HuWinMesMaxSizeGet(2, sizeMax, MAKE_MESSID(0x22, 0x07), MAKE_MESSID(0x22, 0x08));
index2 = HuWinCreate(-10000, 299, sizeMax[0], sizeMax[1], 0);
work->winValue = index2;
work->winSize = *(Vec2f *)(sizeMax); //FIXME: Remove Cast
@ -1366,12 +1366,12 @@ static void UpdateModeSel(omObjData *object)
object->work[2] = 2;
work->boardOld = -1;
HuWinMesColSet(work->winMode, 4);
HuWinMesMaxSizeGet(1, winSize, 0x22000F);
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x0F));
HuWinCenterPosSet(work->winMode, (work->winSizeMode.x-winSize[0])/-2.0f, (work->winSizeMode.y-winSize[1])/-2.0f);
HuWinMesSet(work->winMode, 0x22000F);
HuWinMesMaxSizeGet(1, winSize, 0x220010);
HuWinMesSet(work->winMode, MAKE_MESSID(0x22, 0x0F));
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x10));
HuWinCenterPosSet(work->winBoard, (work->winSizeBoard.x-winSize[0])/-2.0f, (work->winSizeBoard.y-winSize[1])/-2.0f);
HuWinMesSet(work->winBoard, 0x220010);
HuWinMesSet(work->winBoard, MAKE_MESSID(0x22, 0x10));
}
} else if(btnDown & PAD_BUTTON_B) {
HuAudFXPlay(3);
@ -1405,12 +1405,12 @@ static void UpdateModeSel(omObjData *object)
work->modeOld = -1;
object->work[2] = 1;
HuWinMesColSet(work->winMode, 4);
HuWinMesMaxSizeGet(1, winSize, 0x220009);
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x09));
HuWinCenterPosSet(work->winMode, (work->winSizeMode.x-winSize[0])/-2.0f, (work->winSizeMode.y-winSize[1])/-2.0f);
HuWinMesSet(work->winMode, 0x220009);
HuWinMesMaxSizeGet(1, winSize, 0x22000A);
HuWinMesSet(work->winMode, MAKE_MESSID(0x22, 0x09));
HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x0A));
HuWinCenterPosSet(work->winBoard, (work->winSizeBoard.x-winSize[0])/-2.0f, (work->winSizeBoard.y-winSize[1])/-2.0f);
HuWinMesSet(work->winBoard, 0x22000A);
HuWinMesSet(work->winBoard, MAKE_MESSID(0x22, 0x0A));
} else if(btnDown & PAD_BUTTON_LEFT) {
HuAudFXPlay(0);
work->board--;
@ -1504,23 +1504,23 @@ static void InitModeSel(omObjData *object)
index++;
HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF);
HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF);
HuWinMesMaxSizeGet(2, &work->winSizeMode.x, 0x220009, 0x22000F);
HuWinMesMaxSizeGet(2, &work->winSizeMode.x, MAKE_MESSID(0x22, 0x09), MAKE_MESSID(0x22, 0x0F));
index2 = HuWinCreate(-10000, 350, work->winSizeMode.x, work->winSizeMode.y, 0);
work->winMode = index2;
HuWinMesColSet(index2, 4);
HuWinBGTPLvlSet(index2, 0);
HuWinMesSpeedSet(index2, 0);
HuWinMesMaxSizeGet(1, size, 0x220009);
HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x22, 0x09));
HuWinCenterPosSet(index2, (work->winSizeMode.x-size[0])/-2.0f, (work->winSizeMode.y-size[1])/-2.0f);
HuWinMesSet(index2, 0x220009);
HuWinMesMaxSizeGet(2, &work->winSizeBoard.x, 0x22000A, 0x220010);
HuWinMesSet(index2, MAKE_MESSID(0x22, 0x09));
HuWinMesMaxSizeGet(2, &work->winSizeBoard.x, MAKE_MESSID(0x22, 0x0A), MAKE_MESSID(0x22, 0x10));
index2 = HuWinCreate(-10000, 390, work->winSizeBoard.x, work->winSizeBoard.y, 0);
work->winBoard = index2;
HuWinBGTPLvlSet(index2, 0);
HuWinMesSpeedSet(index2, 0);
HuWinMesMaxSizeGet(1, size, 0x22000A);
HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x22, 0x0A));
HuWinCenterPosSet(index2, (work->winSizeBoard.x-size[0])/-2.0f, (work->winSizeBoard.y-size[1])/-2.0f);
HuWinMesSet(index2, 0x22000A);
HuWinMesSet(index2, MAKE_MESSID(0x22, 0x0A));
object->work[0] = 0;
object->work[1] = 0;
object->work[2] = 0;

View file

@ -94,19 +94,19 @@ static s16 mgOvlTbl[] = {
static s16 mgIdTbl[] = { 403, 404, 407, 410, 412, 415, 418, 419, 425, 426, 431, 436, 438, 0 };
static s32 mgNameTbl[] = {
0x00170003,
0x00170004,
0x00170007,
0x0017000A,
0x0017000C,
0x0017000F,
0x00170012,
0x00170013,
0x00170019,
0x0017001A,
0x0017001F,
0x00170024,
0x00170026,
MAKE_MESSID(0x17, 0x03),
MAKE_MESSID(0x17, 0x04),
MAKE_MESSID(0x17, 0x07),
MAKE_MESSID(0x17, 0x0A),
MAKE_MESSID(0x17, 0x0C),
MAKE_MESSID(0x17, 0x0F),
MAKE_MESSID(0x17, 0x12),
MAKE_MESSID(0x17, 0x13),
MAKE_MESSID(0x17, 0x19),
MAKE_MESSID(0x17, 0x1A),
MAKE_MESSID(0x17, 0x1F),
MAKE_MESSID(0x17, 0x24),
MAKE_MESSID(0x17, 0x26),
};
char lbl_2_data_A8[] = "\013TEST MINIGAME NAME01\n test";
@ -332,12 +332,12 @@ static void CreateMGSelect(omObjData *object)
temp_r30 = HuSprGrpCreate(3);
temp_r31->unk_1C = temp_r30;
HuSprGrpPosSet(temp_r30, 174.0f, 271.0f);
temp_r25 = HuSprAnimRead(HuDataReadNum(0x21, MEMORY_DEFAULT_NUM));
temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x21), MEMORY_DEFAULT_NUM));
temp_r31->unk_00[index2] = temp_r25;
temp_r29 = HuSprCreate(temp_r25, 0x7540, 0);
HuSprGrpMemberSet(temp_r30, index2, temp_r29);
index2++;
temp_r25 = HuSprAnimRead(HuDataReadNum(0x27, MEMORY_DEFAULT_NUM));
temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x27), MEMORY_DEFAULT_NUM));
temp_r31->unk_00[index2] = temp_r25;
temp_r29 = HuSprCreate(temp_r25, 0x64, 0);
HuSprGrpMemberSet(temp_r30, index2, temp_r29);
@ -346,9 +346,9 @@ static void CreateMGSelect(omObjData *object)
temp_r31->unk_42 = 0;
HuSprPosSet(temp_r30, index2, 0.0f, cursorYOfsTbl[temp_r31->unk_42]);
index2++;
temp_r25 = HuSprAnimRead(HuDataReadNum(0x35, MEMORY_DEFAULT_NUM));
temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x35), MEMORY_DEFAULT_NUM));
temp_r31->unk_00[index2++] = temp_r25;
temp_r23 = HuSprAnimRead(HuDataReadNum(0x36, MEMORY_DEFAULT_NUM));
temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x36), MEMORY_DEFAULT_NUM));
temp_r31->unk_00[index2++] = temp_r23;
temp_r30 = HuSprGrpCreate(2);
temp_r31->unk_1E = temp_r30;
@ -449,7 +449,7 @@ static void CreateMGPic(omObjData *object)
HuSprAttrSet(temp_r3, var_r30, 4);
}
index2 = var_r30;
temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x22, MEMORY_DEFAULT_NUM));
temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x22), MEMORY_DEFAULT_NUM));
temp_r28->unk_00[index2] = temp_r3_2;
group = HuSprCreate(temp_r3_2, 0x7540, 0);
HuSprGrpMemberSet(temp_r3, index2, group);
@ -478,7 +478,7 @@ static void CreateMGInterface(omObjData *object)
group = HuSprGrpCreate(1);
unkStruct->group = group;
HuSprGrpPosSet(group, 288.0f, 64.0f);
temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x24, MEMORY_DEFAULT_NUM));
temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x24), MEMORY_DEFAULT_NUM));
unkStruct->unk_00[index2] = temp_r3_2;
index = HuSprCreate(temp_r3_2, 0x2710, 0);
HuSprGrpMemberSet(group, 0, index);
@ -486,7 +486,7 @@ static void CreateMGInterface(omObjData *object)
group = HuSprGrpCreate(1);
unkStruct->group2 = group;
HuSprGrpPosSet(group, 444.0f, 384.0f);
temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x23, MEMORY_DEFAULT_NUM));
temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x23), MEMORY_DEFAULT_NUM));
unkStruct->unk_00[index2] = temp_r3_2;
index = HuSprCreate(temp_r3_2, 0x271A, 0);
HuSprGrpMemberSet(group, 0, index);

View file

@ -840,7 +840,7 @@ static void fn_1_2FA0(void)
HuSprGrpPosSet(temp_r24, 1000, 186);
HuSprPriSet(temp_r24, 0, 1000);
sp10[0] = HuWinCreate(1000, 186, 456, 42, 0);
HuWinMesSet(sp10[0], 0x240000+lbl_1_bss_10);
HuWinMesSet(sp10[0], MAKE_MESSID(0x24, lbl_1_bss_10));
HuWinBGTPLvlSet(sp10[0], 0.0f);
temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17));
temp_r23 = HuSprGrpCreate(1);
@ -849,11 +849,11 @@ static void fn_1_2FA0(void)
HuSprGrpPosSet(temp_r23, 1000, 242);
HuSprPriSet(temp_r23, 0, 1000);
sp10[1] = HuWinCreate(1000, 242, 456, 42, 0);
HuWinMesSet(sp10[1], lbl_1_bss_10+0x240001);
HuWinMesSet(sp10[1], lbl_1_bss_10+MAKE_MESSID(0x24, 0x01));
HuWinBGTPLvlSet(sp10[1], 0.0f);
temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18));
sp10[2] = HuWinCreate(1000, 292, 456, 42, 0);
HuWinMesSet(sp10[2], lbl_1_bss_10+0x240002);
HuWinMesSet(sp10[2], lbl_1_bss_10+MAKE_MESSID(0x24, 0x02));
HuWinBGTPLvlSet(sp10[2], 0.0f);
HuWinMesSpeedSet(sp10[2], 0);
temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18);
@ -861,7 +861,7 @@ static void fn_1_2FA0(void)
temp_r27 = HuWinCreate(1000, 292, 456, 42, 0);
HuWinBGTPLvlSet(temp_r27, 0.0f);
HuWinMesSpeedSet(temp_r27, 0);
HuWinMesSet(temp_r27, lbl_1_bss_10+0x240002);
HuWinMesSet(temp_r27, lbl_1_bss_10+MAKE_MESSID(0x24, 0x02));
temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18);
HuWinPriSet(temp_r27, 10);
HuWinSprPriSet(temp_r27, temp_r31, 11);
@ -908,16 +908,16 @@ static void fn_1_2FA0(void)
while(lbl_1_data_0 != 3) {
if(temp_r21 != lbl_1_bss_6) {
temp_f31 = 16.0f+(lbl_1_data_124[6]-217.0f);
HuWinMesSet(temp_r27, 0x240002+lbl_1_bss_10+temp_r21);
HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+temp_r21);
temp_r21 = lbl_1_bss_6;
if(lbl_1_bss_6 == 1) {
if(mgInfoTbl[lbl_1_bss_14].inst_mess[2]) {
HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6);
HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6);
} else {
HuWinMesSet(sp10[2], 0x240006+lbl_1_bss_10);
HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06)+lbl_1_bss_10);
}
} else {
HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6);
HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6);
}
for(temp_r31=0; temp_r31<=10; temp_r31++) {
HuWinPosSet(temp_r27, 30.0*sind(temp_r31*9.0f)+temp_f31, 200.0*(1.0-cosd(temp_r31*9.0f))+274.0);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -289,85 +289,86 @@ void fn_1_39C(omObjData *object)
void fn_1_400(omObjData *object)
{
switch (fn_1_38C()) {
case 0:
if (--lbl_1_bss_24) {
case 0:
if (--lbl_1_bss_24) {
break;
}
fn_1_37C(1);
lbl_1_bss_24 = 180;
break;
}
fn_1_37C(1);
lbl_1_bss_24 = 180;
break;
case 1:
if (--lbl_1_bss_24) {
case 1:
if (--lbl_1_bss_24) {
break;
}
fn_1_37C(2);
lbl_1_bss_C = MGSeqCreate(3, 0);
break;
}
fn_1_37C(2);
lbl_1_bss_C = MGSeqCreate(3, 0);
break;
case 2:
if (!MGSeqStatGet(lbl_1_bss_C)) {
fn_1_37C(3);
}
if (lbl_1_data_7C8 >= 0) {
case 2:
if (!MGSeqStatGet(lbl_1_bss_C)) {
fn_1_37C(3);
}
if (lbl_1_data_7C8 >= 0) {
break;
}
if (!(MGSeqStatGet(lbl_1_bss_C) & 16)) {
break;
}
lbl_1_data_7C8 = HuAudSeqPlay(69);
break;
}
if (!(MGSeqStatGet(lbl_1_bss_C) & 16)) {
case 3:
if (!fn_1_E48()) {
break;
}
fn_1_37C(4);
lbl_1_bss_C = MGSeqCreate(3, 1);
HuAudSeqFadeOut(lbl_1_data_7C8, 100);
break;
}
lbl_1_data_7C8 = HuAudSeqPlay(69);
break;
case 3:
if (!fn_1_E48()) {
case 4:
if (!MGSeqStatGet(lbl_1_bss_C)) {
fn_1_37C(5);
WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
lbl_1_bss_24 = 60;
}
case 5:
if (--lbl_1_bss_24) {
break;
}
fn_1_37C(6);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
break;
}
fn_1_37C(4);
lbl_1_bss_C = MGSeqCreate(3, 1);
HuAudSeqFadeOut(lbl_1_data_7C8, 100);
break;
case 4:
if (!MGSeqStatGet(lbl_1_bss_C)) {
fn_1_37C(5);
WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
lbl_1_bss_24 = 60;
}
case 5:
if (--lbl_1_bss_24) {
case 6:
if (WipeStatGet()) {
break;
}
fn_1_37C(7);
lbl_1_bss_24 = 180;
break;
}
fn_1_37C(6);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
break;
case 6:
if (WipeStatGet()) {
case 7:
if (--lbl_1_bss_24) {
break;
}
fn_1_37C(9);
fn_1_1160();
if (lbl_1_bss_38[0] >= 0) {
HuAudSStreamPlay(1);
}
else {
HuAudSStreamPlay(4);
}
lbl_1_bss_24 = 210;
break;
}
fn_1_37C(7);
lbl_1_bss_24 = 180;
break;
case 7:
if (--lbl_1_bss_24) {
case 8:
break;
}
fn_1_37C(9);
fn_1_1160();
if (lbl_1_bss_38[0] >= 0) {
HuAudSStreamPlay(1);
} else {
HuAudSStreamPlay(4);
}
lbl_1_bss_24 = 210;
break;
case 8:
break;
case 9:
if (--lbl_1_bss_24) {
case 9:
if (--lbl_1_bss_24) {
break;
}
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_784;
break;
default:
break;
}
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_784;
break;
default:
break;
}
if (omSysExitReq && !WipeStatGet()) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
@ -393,14 +394,37 @@ float lbl_1_data_81C[][2] = { { 0.0f, 0.0f }, { 0.0f, 0.0f }, { -46.0f, -2.0f },
float lbl_1_data_84C[][2] = { { 472.0f, 128.0f }, { 472.0f, 208.0f }, { 472.0f, 288.0f }, { 472.0f, 368.0f } };
s32 lbl_1_data_86C[] = { 0x00610000, 0x00610001, 0x00610002, 0x00610003, 0x00610004, 0x00610005, 0x00610006, 0x00610007 };
s32 lbl_1_data_86C[] = {
DATA_MAKE_NUM(DATADIR_MGCONST, 0x00),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x01),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x02),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x03),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x04),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x05),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x06),
DATA_MAKE_NUM(DATADIR_MGCONST, 0x07),
};
s32 lbl_1_data_88C = 0xFFFFFFFF;
u32 lbl_1_data_890[][2]
= { { 0x005F0000, 0x00000000 }, { 0x005F0002, 0x00000000 }, { 0x00230022, 0x00000001 }, { 0x005F0017, 0x00000000 }, { 0x005F0018, 0x00000000 } };
u32 lbl_1_data_890[][2] = {
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000000 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000000 },
{ DATA_MAKE_NUM(DATADIR_M404, 0x22), 0x00000001 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000 },
};
s32 lbl_1_data_8B8[] = { 0x00230001, 0x00230002, 0x00230003, 0x00230004, 0x00230005, 0x00230006, 0x00230007, 0x00230008 };
s32 lbl_1_data_8B8[] = {
DATA_MAKE_NUM(DATADIR_M404, 0x01),
DATA_MAKE_NUM(DATADIR_M404, 0x02),
DATA_MAKE_NUM(DATADIR_M404, 0x03),
DATA_MAKE_NUM(DATADIR_M404, 0x04),
DATA_MAKE_NUM(DATADIR_M404, 0x05),
DATA_MAKE_NUM(DATADIR_M404, 0x06),
DATA_MAKE_NUM(DATADIR_M404, 0x07),
DATA_MAKE_NUM(DATADIR_M404, 0x08),
};
float lbl_1_data_8D8[] = { 35.0f, 30.000002f, 25.0f, 20.0f };
@ -408,7 +432,11 @@ float (*lbl_1_data_8E8[])[2] = { lbl_1_data_0, lbl_1_data_248, lbl_1_data_4A8 };
u16 lbl_1_data_8F4[] = { 73, 76, 82, 0 };
s32 lbl_1_data_8FC[][2] = { { 0x00230013, 0x00230014 }, { 0x00230015, 0x00230016 }, { 0x00230017, 0x00230018 } };
s32 lbl_1_data_8FC[][2] = {
{ DATA_MAKE_NUM(DATADIR_M404, 0x13), DATA_MAKE_NUM(DATADIR_M404, 0x14) },
{ DATA_MAKE_NUM(DATADIR_M404, 0x15), DATA_MAKE_NUM(DATADIR_M404, 0x16) },
{ DATA_MAKE_NUM(DATADIR_M404, 0x17), DATA_MAKE_NUM(DATADIR_M404, 0x18) },
};
void fn_1_7E0(omObjData *object)
{
@ -426,26 +454,26 @@ void fn_1_7E0(omObjData *object)
for (var_r29 = 0; var_r29 < 4; var_r31++, var_r29++) {
for (var_r27 = var_r26[var_r29]->data, var_r30 = 0; var_r30 < 6; var_r30++) {
switch (lbl_1_data_810[var_r30]) {
case 0:
var_r31->unk_02[var_r30] = espEntry(0x610014, 1, 0);
espPriSet(var_r31->unk_02[var_r30], 256);
break;
case 1:
var_r31->unk_02[var_r30] = espEntry(0x610015, 0, 0);
espPriSet(var_r31->unk_02[var_r30], 257);
espColorSet(var_r31->unk_02[var_r30], 0, 0, 0);
espTPLvlSet(var_r31->unk_02[var_r30], 0.5f);
break;
case 2:
var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]);
espPriSet(var_r31->unk_02[var_r30], 255);
break;
case 3:
var_r31->unk_02[var_r30] = espEntry(0x610033, 1, 0);
espPriSet(var_r31->unk_02[var_r30], 255);
break;
default:
break;
case 0:
var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x14), 1, 0);
espPriSet(var_r31->unk_02[var_r30], 256);
break;
case 1:
var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x15), 0, 0);
espPriSet(var_r31->unk_02[var_r30], 257);
espColorSet(var_r31->unk_02[var_r30], 0, 0, 0);
espTPLvlSet(var_r31->unk_02[var_r30], 0.5f);
break;
case 2:
var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]);
espPriSet(var_r31->unk_02[var_r30], 255);
break;
case 3:
var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0);
espPriSet(var_r31->unk_02[var_r30], 255);
break;
default:
break;
}
espDispOff(var_r31->unk_02[var_r30]);
espDrawNoSet(var_r31->unk_02[var_r30], 0);
@ -469,30 +497,30 @@ void fn_1_A9C(omObjData *object)
var_r30 = object->data;
switch (fn_1_38C()) {
case 6:
for (var_r31 = 0; var_r31 < 4; var_r31++) {
for (var_r29 = 0; var_r29 < 6; var_r29++) {
espDispOn(var_r30[var_r31].unk_02[var_r29]);
case 6:
for (var_r31 = 0; var_r31 < 4; var_r31++) {
for (var_r29 = 0; var_r29 < 6; var_r29++) {
espDispOn(var_r30[var_r31].unk_02[var_r29]);
}
}
}
break;
case 7:
var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
for (var_r29 = 0, var_r31 = 0; var_r31 < 4; var_r31++) {
var_r28 = var_r27[var_r31]->data;
var_r30[var_r31].unk_00 = var_r28->unk_58;
if (var_r28->unk_00_field1) {
var_r29++;
break;
case 7:
var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
for (var_r29 = 0, var_r31 = 0; var_r31 < 4; var_r31++) {
var_r28 = var_r27[var_r31]->data;
var_r30[var_r31].unk_00 = var_r28->unk_58;
if (var_r28->unk_00_field1) {
var_r29++;
}
}
}
if ((var_r29 >= 4) && (lbl_1_bss_0 == 0)) {
HuAudFXPlay(1325);
lbl_1_bss_0 = 1;
}
if ((lbl_1_bss_0 == 0) && (lbl_1_data_88C < 0)) {
lbl_1_data_88C = HuAudFXPlay(1324);
}
break;
if ((var_r29 >= 4) && (lbl_1_bss_0 == 0)) {
HuAudFXPlay(1325);
lbl_1_bss_0 = 1;
}
if ((lbl_1_bss_0 == 0) && (lbl_1_data_88C < 0)) {
lbl_1_data_88C = HuAudFXPlay(1324);
}
break;
}
for (var_r31 = 0; var_r31 < 4; var_r31++) {
espBankSet(var_r30[var_r31].unk_02[3], var_r30[var_r31].unk_00 / 100);
@ -669,20 +697,21 @@ void fn_1_1344(omObjData *object)
memset(var_r31, 0, 484);
var_r31->unk_02 = lbl_1_bss_20++;
var_r31->unk_04 = GWPlayerCfg[var_r31->unk_02].pad_idx;
var_r31->unk_0C = var_r24 = GWPlayerCfg[var_r31->unk_02].character;
var_r31->unk_0E = GWPlayerCfg[var_r31->unk_02].diff;
var_r31->unk_10 = GWPlayerCfg[var_r31->unk_02].group;
object->model[0] = CharModelCreate(var_r24, 2);
Hu3DModelShadowSet(object->model[0]);
object->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_8B8[var_r24], MEMORY_DEFAULT_NUM, HEAP_DATA));
object->model[1] = Hu3DModelCreateFile(lbl_1_data_8B8[var_r24]);
Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]);
var_r31->unk_2C = 0;
for (var_r29 = 0; var_r29 < (u32)5; var_r29++) {
if (!lbl_1_data_890[var_r29][1]) {
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_890[var_r29][0]);
} else {
}
else {
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, var_r31->unk_0C + lbl_1_data_890[var_r29][0]);
}
}
@ -702,12 +731,12 @@ void fn_1_1344(omObjData *object)
var_r31->unk_44 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, MEMORY_DEFAULT_NUM);
DCInvalidateRange(var_r31->unk_44, var_r31->unk_48);
var_r31->unk_48 = fn_1_6248(var_r31->unk_44, var_r31->unk_48);
var_r31->unk_3C = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_8FC[lbl_1_bss_1C][0], MEMORY_DEFAULT_NUM, HEAP_DATA));
var_r31->unk_3C = HuSprAnimReadFile(lbl_1_data_8FC[lbl_1_bss_1C][0]);
DCFlushRangeNoSync(var_r31->unk_3C->bmp->data, (var_r31->unk_3C->bmp->pixSize * (var_r31->unk_3C->bmp->sizeX * var_r31->unk_3C->bmp->sizeY)) / 8);
var_r31->unk_54 = 0;
var_r31->unk_56 = fn_1_ED4(object);
var_r31->unk_40 = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_8FC[lbl_1_bss_1C][1], MEMORY_DEFAULT_NUM, HEAP_DATA));
var_r31->unk_50 = HuSprAnimRead(HuDataSelHeapReadNum(0x230019, MEMORY_DEFAULT_NUM, HEAP_DATA));
var_r31->unk_40 = HuSprAnimReadFile(lbl_1_data_8FC[lbl_1_bss_1C][1]);
var_r31->unk_50 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M404, 0x19));
DCFlushRangeNoSync(var_r31->unk_50->bmp->data, (var_r31->unk_50->bmp->pixSize * (var_r31->unk_50->bmp->sizeX * var_r31->unk_50->bmp->sizeY)) / 8);
Hu3DMotionOverlaySet(object->model[0], object->motion[2]);
object->trans.y = 1500.0f;
@ -744,7 +773,6 @@ void fn_1_1AFC(omObjData *object)
{
UnkM404Struct3 *var_r31;
var_r31 = object->data;
if (fn_1_38C() >= 1) {
if (var_r31->unk_00_field2) {
@ -873,7 +901,7 @@ float fn_1_2EBC(float arg0[], float arg8)
float fn_1_3A38(float arg0[], float arg8, float arg9)
{
volatile float sp40;
volatile float sp40;
volatile float sp3C;
float var_f24;
float var_f18;
@ -926,7 +954,8 @@ void fn_1_3F30(omObjData *object)
var_r31->unk_64 = 3.0f - (var_r31->unk_68 - var_r31->unk_64);
var_r31->unk_5E += 3;
var_r31->unk_68 = fn_1_2EBC(var_r31->unk_70[var_r31->unk_5E], 1.0f);
} else {
}
else {
var_r31->unk_64 += 3.0f;
}
var_r31->unk_60 = fn_1_3A38(var_r31->unk_70[var_r31->unk_5E], var_r31->unk_60, var_r31->unk_64);
@ -936,7 +965,8 @@ void fn_1_3F30(omObjData *object)
var_r31->unk_14 = fn_1_3E2C(var_r31->unk_14, atan2d(var_f24 - object->trans.x, -(var_f23 - object->trans.z)), 0.1f);
var_r31->unk_06 = (u8)(20.0 * sind(var_r31->unk_14));
var_r31->unk_07 = (u8)(20.0 * cosd(var_r31->unk_14));
} else {
}
else {
var_r31->unk_06 = 20;
var_r31->unk_07 = 0;
}
@ -961,7 +991,6 @@ void fn_1_44A0(omObjData *object)
s32 var_r28;
s16 var_r27;
var_r31 = object->data;
var_r28 = -1;
if (fn_1_38C() == 6) {
@ -969,104 +998,111 @@ void fn_1_44A0(omObjData *object)
}
if (fn_1_38C() == 3 && !var_r31->unk_00_field0) {
switch (var_r31->unk_12) {
case 0:
if (GWPlayerCfg[var_r31->unk_02].iscom == 0) {
var_r31->unk_06 = HuPadStkX[var_r31->unk_04];
var_r31->unk_07 = HuPadStkY[var_r31->unk_04];
var_r31->unk_08 = HuPadBtn[var_r31->unk_04];
var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04];
} else {
var_r31->unk_08 = var_r31->unk_0A = 0;
var_r31->unk_06 = var_r31->unk_07 = 0;
fn_1_3F30(object);
}
if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) {
var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07);
var_r31->unk_20 = 3.0f * sind(var_f31);
var_r31->unk_28 = 3.0f * cosd(var_f31);
var_r28 = 1;
if (var_r31->unk_20 > 0.0f) {
CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f);
} else {
CharModelMotionSpeedSet(var_r31->unk_0C, -0.5f);
case 0:
if (GWPlayerCfg[var_r31->unk_02].iscom == 0) {
var_r31->unk_06 = HuPadStkX[var_r31->unk_04];
var_r31->unk_07 = HuPadStkY[var_r31->unk_04];
var_r31->unk_08 = HuPadBtn[var_r31->unk_04];
var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04];
}
Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68);
if (var_r31->unk_2C == 0) {
Hu3DModelAttrReset(object->model[0], 0x40000400);
else {
var_r31->unk_08 = var_r31->unk_0A = 0;
var_r31->unk_06 = var_r31->unk_07 = 0;
fn_1_3F30(object);
}
if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) {
var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07);
var_r31->unk_20 = 3.0f * sind(var_f31);
var_r31->unk_28 = 3.0f * cosd(var_f31);
var_r28 = 1;
if (var_r31->unk_20 > 0.0f) {
CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f);
}
else {
CharModelMotionSpeedSet(var_r31->unk_0C, -0.5f);
}
Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68);
if (var_r31->unk_2C == 0) {
Hu3DModelAttrReset(object->model[0], 0x40000400);
Hu3DMotionOverlayTimeSet(object->model[0], 0.0f);
}
}
else {
var_r31->unk_20 = var_r31->unk_28 = 0.0f;
var_r28 = 0;
CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f);
Hu3DMotionOverlayTimeSet(object->model[0], 0.0f);
Hu3DModelAttrSet(object->model[0], 0x40000400);
}
} else {
var_r31->unk_20 = var_r31->unk_28 = 0.0f;
var_r28 = 0;
CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f);
Hu3DMotionOverlayTimeSet(object->model[0], 0.0f);
Hu3DModelAttrSet(object->model[0], 0x40000400);
}
sp8.x = object->trans.x;
sp8.z = object->trans.z;
object->trans.x += var_r31->unk_20;
object->trans.z += var_r31->unk_28;
if (object->trans.x < -90.0f) {
object->trans.x = -90.0f;
}
if (object->trans.x < (Center.x - 500.0f)) {
object->trans.x = Center.x - 500.0f;
} else if (object->trans.x > (550.0f + Center.x)) {
object->trans.x = 550.0f + Center.x;
}
if ((object->trans.x != sp8.x) || (object->trans.z != sp8.z)) {
if (var_r31->unk_74 < 0) {
var_r31->unk_74 = HuAudFXPlay(0x52B);
sp8.x = object->trans.x;
sp8.z = object->trans.z;
object->trans.x += var_r31->unk_20;
object->trans.z += var_r31->unk_28;
if (object->trans.x < -90.0f) {
object->trans.x = -90.0f;
}
} else if (var_r31->unk_74 >= 0) {
HuAudFXStop(var_r31->unk_74);
var_r31->unk_74 = -1;
}
var_r29 = &Hu3DData[object->model[2]];
if (object->trans.z < (var_r29->pos.z - 100.0f)) {
object->trans.z = var_r29->pos.z - 100.0f;
} else if (object->trans.z > ((100.0f + var_r29->pos.z) - 1.0f)) {
object->trans.z = (100.0f + var_r29->pos.z) - 1.0f;
}
if ((90.0f + object->trans.x) > 3000.0f) {
object->trans.x = 2910.0f;
var_r31->unk_12++;
var_r31->unk_2C = -1;
var_r28 = 1;
CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f);
Hu3DMotionOverlayReset(object->model[0]);
Hu3DModelAttrSet(object->model[1], 1);
if (var_r31->unk_74 >= 0) {
if (object->trans.x < (Center.x - 500.0f)) {
object->trans.x = Center.x - 500.0f;
}
else if (object->trans.x > (550.0f + Center.x)) {
object->trans.x = 550.0f + Center.x;
}
if ((object->trans.x != sp8.x) || (object->trans.z != sp8.z)) {
if (var_r31->unk_74 < 0) {
var_r31->unk_74 = HuAudFXPlay(0x52B);
}
}
else if (var_r31->unk_74 >= 0) {
HuAudFXStop(var_r31->unk_74);
var_r31->unk_74 = -1;
}
}
fn_1_5278(object);
if (var_r31->unk_74 >= 0) {
var_r27 = 64.0f + ((64.0f * (object->trans.x - Center.x)) / 500.0f);
if (var_r27 < 0) {
var_r27 = 0;
} else if (var_r27 > 127) {
var_r27 = 127;
var_r29 = &Hu3DData[object->model[2]];
if (object->trans.z < (var_r29->pos.z - 100.0f)) {
object->trans.z = var_r29->pos.z - 100.0f;
}
HuAudFXPanning(var_r31->unk_74, var_r27);
}
break;
case 1:
var_r28 = 1;
object->trans.x += 4.0000005f;
if (object->trans.x >= 3200.0f) {
var_r31->unk_12++;
var_r31->unk_38 = 0x3C;
}
break;
case 2:
var_r28 = 0;
object->rot.y += 0.1f * -object->rot.y;
if (--var_r31->unk_38 == 0) {
var_r31->unk_00_field0 = 1;
}
break;
else if (object->trans.z > ((100.0f + var_r29->pos.z) - 1.0f)) {
object->trans.z = (100.0f + var_r29->pos.z) - 1.0f;
}
if ((90.0f + object->trans.x) > 3000.0f) {
object->trans.x = 2910.0f;
var_r31->unk_12++;
var_r31->unk_2C = -1;
var_r28 = 1;
CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f);
Hu3DMotionOverlayReset(object->model[0]);
Hu3DModelAttrSet(object->model[1], 1);
if (var_r31->unk_74 >= 0) {
HuAudFXStop(var_r31->unk_74);
var_r31->unk_74 = -1;
}
}
fn_1_5278(object);
if (var_r31->unk_74 >= 0) {
var_r27 = 64.0f + ((64.0f * (object->trans.x - Center.x)) / 500.0f);
if (var_r27 < 0) {
var_r27 = 0;
}
else if (var_r27 > 127) {
var_r27 = 127;
}
HuAudFXPanning(var_r31->unk_74, var_r27);
}
break;
case 1:
var_r28 = 1;
object->trans.x += 4.0000005f;
if (object->trans.x >= 3200.0f) {
var_r31->unk_12++;
var_r31->unk_38 = 0x3C;
}
break;
case 2:
var_r28 = 0;
object->rot.y += 0.1f * -object->rot.y;
if (--var_r31->unk_38 == 0) {
var_r31->unk_00_field0 = 1;
}
break;
}
if (var_r28 >= 0 && var_r28 != var_r31->unk_2C) {
var_r31->unk_2C = var_r28;
@ -1115,7 +1151,8 @@ void fn_1_4F4C(omObjData *object)
}
if (var_r29 < 4) {
var_r30->unk_2C = 3;
} else {
}
else {
var_r30->unk_2C = 4;
}
CharModelMotionShiftSet(var_r30->unk_0C, object->motion[var_r30->unk_2C], 0.0f, 5.0f, 0);
@ -1170,9 +1207,13 @@ void fn_1_5598(Process *arg0)
void fn_1_55F0(void) { }
s32 lbl_1_data_930[] = { 0x0023000B, 0x0023000C, 0x0023000D, 0x0023000E, 0x0023000F, 0x00230010, 0x00230011, 0x00230012 };
s32 lbl_1_data_930[] = { DATA_MAKE_NUM(DATADIR_M404, 0x0B), DATA_MAKE_NUM(DATADIR_M404, 0x0C), DATA_MAKE_NUM(DATADIR_M404, 0x0D),
DATA_MAKE_NUM(DATADIR_M404, 0x0E), DATA_MAKE_NUM(DATADIR_M404, 0x0F), DATA_MAKE_NUM(DATADIR_M404, 0x10), DATA_MAKE_NUM(DATADIR_M404, 0x11),
DATA_MAKE_NUM(DATADIR_M404, 0x12) };
s32 lbl_1_data_950[] = { 0x0023001A, 0x0023001B, 0x0023001C, 0x0023001D, 0x0023001E, 0x0023001F, 0x00230020, 0x00230021 };
s32 lbl_1_data_950[] = { DATA_MAKE_NUM(DATADIR_M404, 0x1A), DATA_MAKE_NUM(DATADIR_M404, 0x1B), DATA_MAKE_NUM(DATADIR_M404, 0x1C),
DATA_MAKE_NUM(DATADIR_M404, 0x1D), DATA_MAKE_NUM(DATADIR_M404, 0x1E), DATA_MAKE_NUM(DATADIR_M404, 0x1F), DATA_MAKE_NUM(DATADIR_M404, 0x20),
DATA_MAKE_NUM(DATADIR_M404, 0x21) };
char *lbl_1_data_98C[] = { "kari00", "kari01", "kari02", "kari03" };
@ -1187,18 +1228,16 @@ void fn_1_55F4(omObjData *object)
{
s32 var_r30;
object->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(0x230009, MEMORY_DEFAULT_NUM, HEAP_DATA));
object->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(0x23000A, MEMORY_DEFAULT_NUM, HEAP_DATA));
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x09));
object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x0A));
Hu3DModelAttrSet(object->model[1], 0x40000001);
object->model[2] = Hu3DModelCreate(HuDataSelHeapReadNum(0x230000, MEMORY_DEFAULT_NUM, HEAP_DATA));
object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x00));
Hu3DModelShadowMapSet(object->model[2]);
for (var_r30 = 0; var_r30 < 4; var_r30++) {
object->model[var_r30 + 3]
= Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_930[GWPlayerCfg[var_r30].character], MEMORY_DEFAULT_NUM, HEAP_DATA));
object->model[var_r30 + 3] = Hu3DModelCreateFile(lbl_1_data_930[GWPlayerCfg[var_r30].character]);
Hu3DModelPosSet(object->model[var_r30 + 3], 0.0f, 0.0f, lbl_1_data_99C[var_r30]);
Hu3DAnimCreate(HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_950[GWPlayerCfg[var_r30].character], MEMORY_DEFAULT_NUM, HEAP_DATA)),
object->model[2], lbl_1_data_98C[var_r30]);
Hu3DAnimCreate(HuSprAnimReadFile(lbl_1_data_950[GWPlayerCfg[var_r30].character]), object->model[2], lbl_1_data_98C[var_r30]);
}
object->func = fn_1_57A0;
}
@ -1295,38 +1334,39 @@ void fn_1_5E74(AnimData *arg0, u16 arg1, u16 arg2, u16 arg3)
u8 temp_r0;
switch (arg0->bmp->pixSize) {
case 4:
var_r30 = lbl_1_data_9DC[0]; // 8
var_r29 = lbl_1_data_9DC[1]; // 8
break;
case 8:
var_r30 = lbl_1_data_9DC[2]; // 8
var_r29 = lbl_1_data_9DC[3]; // 4
break;
case 16:
var_r30 = lbl_1_data_9DC[4]; // 4
var_r29 = lbl_1_data_9DC[5]; // 4
break;
case 4:
var_r30 = lbl_1_data_9DC[0]; // 8
var_r29 = lbl_1_data_9DC[1]; // 8
break;
case 8:
var_r30 = lbl_1_data_9DC[2]; // 8
var_r29 = lbl_1_data_9DC[3]; // 4
break;
case 16:
var_r30 = lbl_1_data_9DC[4]; // 4
var_r29 = lbl_1_data_9DC[5]; // 4
break;
}
var_r31 = (void *)(((arg1/var_r30)*32)+(((arg1%8)*arg0->bmp->pixSize)/8)+(((arg0->bmp->sizeX / var_r30) * ((arg2 / var_r29) << 5))+((u32)arg0->bmp->data)+((arg0->bmp->pixSize * ((arg2 % var_r29) * 8)) / 8)));
var_r31 = (void *)(((arg1 / var_r30) * 32) + (((arg1 % 8) * arg0->bmp->pixSize) / 8)
+ (((arg0->bmp->sizeX / var_r30) * ((arg2 / var_r29) << 5)) + ((u32)arg0->bmp->data) + ((arg0->bmp->pixSize * ((arg2 % var_r29) * 8)) / 8)));
switch (arg0->bmp->pixSize) {
case 4:
if ((arg1 & 1) == 0) {
*var_r31 &= 0xF;
*var_r31 |= arg3 << 4;
case 4:
if ((arg1 & 1) == 0) {
*var_r31 &= 0xF;
*var_r31 |= arg3 << 4;
break;
}
*var_r31 &= 0xF0;
*var_r31 |= arg3;
break;
case 8:
*var_r31 |= arg3;
break;
case 16:
*((u16 *)var_r31) = arg3;
break;
}
*var_r31 &= 0xF0;
*var_r31 |= arg3;
break;
case 8:
*var_r31 |= arg3;
break;
case 16:
*((u16 *)var_r31) = arg3;
break;
}
}
@ -1340,42 +1380,44 @@ u16 fn_1_607C(AnimData *arg0, u16 arg1, u16 arg2)
u32 temp_r6;
u8 temp_r0;
u8 temp_r0_3;
switch (arg0->bmp->pixSize) {
case 4:
var_r31 = lbl_1_data_9F4[0];
var_r30 = lbl_1_data_9F4[1];
break;
case 8:
var_r31 = lbl_1_data_9F4[2];
var_r30 = lbl_1_data_9F4[3];
break;
case 16:
var_r31 = lbl_1_data_9F4[4];
var_r30 = lbl_1_data_9F4[5];
break;
case 4:
var_r31 = lbl_1_data_9F4[0];
var_r30 = lbl_1_data_9F4[1];
break;
case 8:
var_r31 = lbl_1_data_9F4[2];
var_r30 = lbl_1_data_9F4[3];
break;
case 16:
var_r31 = lbl_1_data_9F4[4];
var_r30 = lbl_1_data_9F4[5];
break;
}
var_r29 = (void *)(((arg1/var_r31)*32)+(((arg1%8)*arg0->bmp->pixSize)/8)+(((arg0->bmp->sizeX / var_r31) * ((arg2 / var_r30) << 5))+((u32)arg0->bmp->data)+((arg0->bmp->pixSize * ((arg2 % var_r30) * 8)) / 8)));
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r30;
(void)var_r30;
(void)var_r30;
var_r29 = (void *)(((arg1 / var_r31) * 32) + (((arg1 % 8) * arg0->bmp->pixSize) / 8)
+ (((arg0->bmp->sizeX / var_r31) * ((arg2 / var_r30) << 5)) + ((u32)arg0->bmp->data) + ((arg0->bmp->pixSize * ((arg2 % var_r30) * 8)) / 8)));
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r30;
(void)var_r30;
(void)var_r30;
switch (arg0->bmp->pixSize) {
case 4:
if ((arg1 & 1) == 0) {
var_r28 = *var_r29 >> 4;
} else {
var_r28 = *var_r29 & 0xF;
}
return var_r28;
case 8:
return *var_r29;
case 16:
return *((u16 *)var_r29);
case 4:
if ((arg1 & 1) == 0) {
var_r28 = *var_r29 >> 4;
}
else {
var_r28 = *var_r29 & 0xF;
}
return var_r28;
case 8:
return *var_r29;
case 16:
return *((u16 *)var_r29);
}
}
@ -1423,28 +1465,28 @@ void fn_1_66DC(omObjData *object)
var_r31 = Hu3DCamera;
switch (fn_1_38C()) {
case 1:
fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4));
if (lbl_1_bss_4 < 1.0f) {
lbl_1_bss_4 += 0.007999999f;
if (lbl_1_bss_4 > 1.0f) {
lbl_1_bss_4 = 1.0f;
case 1:
fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4));
if (lbl_1_bss_4 < 1.0f) {
lbl_1_bss_4 += 0.007999999f;
if (lbl_1_bss_4 > 1.0f) {
lbl_1_bss_4 = 1.0f;
}
}
}
break;
case 3:
Center.x += 2.0000002f;
Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x;
Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f;
break;
case 6:
fn_1_648C(1, 1, 0.0f);
break;
case 7:
if (Center.x < 3000.0f) {
Center.x += 25.0f;
}
default:
break;
break;
case 3:
Center.x += 2.0000002f;
Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x;
Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f;
break;
case 6:
fn_1_648C(1, 1, 0.0f);
break;
case 7:
if (Center.x < 3000.0f) {
Center.x += 25.0f;
}
default:
break;
}
}

View file

@ -2446,10 +2446,10 @@ void fn_1_9F78(void)
var_r30 = lbl_1_bss_9C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM406Struct8), MEMORY_DEFAULT_NUM);
memset(var_r30, 0, sizeof(UnkM406Struct8));
var_r30->unk_00 = HuSprAnimRead(HuDataReadNum(0x250040, MEMORY_DEFAULT_NUM));
var_r30->unk_04 = HuSprAnimRead(HuDataReadNum(0x250041, MEMORY_DEFAULT_NUM));
var_r30->unk_08 = HuSprAnimRead(HuDataReadNum(0x250042, MEMORY_DEFAULT_NUM));
var_r30->unk_0C = HuSprAnimRead(HuDataReadNum(0x250043, MEMORY_DEFAULT_NUM));
var_r30->unk_00 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x40), MEMORY_DEFAULT_NUM));
var_r30->unk_04 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x41), MEMORY_DEFAULT_NUM));
var_r30->unk_08 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x42), MEMORY_DEFAULT_NUM));
var_r30->unk_0C = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x43), MEMORY_DEFAULT_NUM));
var_r30->unk_24 = 0.0f;
var_r30->unk_28 = 0.0f;
var_r27 = fn_1_B474(var_r30->unk_00, 1);

View file

@ -251,16 +251,16 @@ char *lbl_1_data_1068[4] = {
};
s32 lbl_1_data_1078[10] = {
0x5F0037,
0x5F0055,
0x5F0039,
0x5F0054,
0x5F0041,
0x5F0056,
0x5F0050,
0x5F0016,
0x5F0053,
0x5F0023,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x37),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x55),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x39),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x54),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x41),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x56),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x53),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x23),
};
s32 lbl_1_data_10A0[8][4] = {

View file

@ -1,9 +1,10 @@
#include "src/REL/m407dll/m407dll.h"
#include "game/process.h"
#include "game/object.h"
#include "game/hsfmotion.h"
#include "game/hsfdraw.h"
#include "REL/m407dll.h"
typedef struct unkDominationData4 {
/* 0x00 */ u32 unk_00;
/* 0x04 */ u32 unk_04;
@ -28,11 +29,11 @@ omObjData* lbl_1_bss_37E0[100];
//data
s32 lbl_1_data_288[] = {
0x00260015,
0x00260016,
0x00260017,
0x00260018,
0x00260019
DATA_MAKE_NUM(DATADIR_M407, 0x15),
DATA_MAKE_NUM(DATADIR_M407, 0x16),
DATA_MAKE_NUM(DATADIR_M407, 0x17),
DATA_MAKE_NUM(DATADIR_M407, 0x18),
DATA_MAKE_NUM(DATADIR_M407, 0x19)
};
ObjFuncs lbl_1_data_29C[] = {
@ -143,7 +144,7 @@ void fn_1_46EC(omObjData* arg0) {
temp_r30->unk_00 = arg0->work[0];
temp_r30->unk_08 = arg0->work[1];
temp_r30->unk_1C = 0;
arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_288[temp_r30->unk_08], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_288[temp_r30->unk_08]);
Hu3DModelAttrSet(arg0->model[0], 0x4000);
Hu3DModelAttrSet(arg0->model[0], 0x40000002);
Hu3DModelAttrSet(arg0->model[0], 1);

View file

@ -1,51 +1,47 @@
#include "game/process.h"
#include "game/object.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/object.h"
#include "game/process.h"
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
//function signatures
void fn_1_162C(omObjData*);
void fn_1_1A8C(omObjData*);
// function signatures
void fn_1_162C(omObjData *);
void fn_1_1A8C(omObjData *);
//bss
Process* lbl_1_bss_2C;
omObjData* lbl_1_bss_28;
// bss
Process *lbl_1_bss_2C;
omObjData *lbl_1_bss_28;
s16 lbl_1_bss_24;
s32 lbl_1_bss_20;
//data
// data
s32 lbl_1_data_198[] = {
0x00260000,
0x00260002,
0x00260003,
0x00260001,
0x00260005,
0x00260006,
0x00260007,
0x00260008,
0x00260009,
0x0026000A,
0x0026000B,
0x0026000C,
0x00260004,
DATA_MAKE_NUM(DATADIR_M407, 0x00),
DATA_MAKE_NUM(DATADIR_M407, 0x02),
DATA_MAKE_NUM(DATADIR_M407, 0x03),
DATA_MAKE_NUM(DATADIR_M407, 0x01),
DATA_MAKE_NUM(DATADIR_M407, 0x05),
DATA_MAKE_NUM(DATADIR_M407, 0x06),
DATA_MAKE_NUM(DATADIR_M407, 0x07),
DATA_MAKE_NUM(DATADIR_M407, 0x08),
DATA_MAKE_NUM(DATADIR_M407, 0x09),
DATA_MAKE_NUM(DATADIR_M407, 0x0A),
DATA_MAKE_NUM(DATADIR_M407, 0x0B),
DATA_MAKE_NUM(DATADIR_M407, 0x0C),
DATA_MAKE_NUM(DATADIR_M407, 0x04),
};
Vec lbl_1_data_1CC[] = {
{600.0f, 3.0f, -300.0f},
{200.0f, 3.0f, -300.0f},
{-200.0f, 3.0f, -300.0f},
{-600.0f, 3.0f, -300.0f}
};
Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } };
Point3d lbl_1_data_1FC = {2000.0f, 3000.0f, 2000.0f};
Point3d lbl_1_data_208 = {-0.5f, -0.5f, -0.5f};
GXColor lbl_1_data_214 = {255, 255, 255, 255};
Point3d lbl_1_data_218 = {0.0f, 1.0f, 0.0f};
Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f };
Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f };
GXColor lbl_1_data_214 = { 255, 255, 255, 255 };
Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f };
void fn_1_14F0(Process* arg0, s32 arg1) {
LightData* sp10;
void fn_1_14F0(Process *arg0, s32 arg1)
{
LightData *sp10;
lbl_1_bss_2C = arg0;
lbl_1_bss_20 = arg1;
@ -57,7 +53,8 @@ void fn_1_14F0(Process* arg0, s32 arg1) {
sp10 = &Hu3DGlobalLight[lbl_1_bss_24];
}
void fn_1_15D8(void) {
void fn_1_15D8(void)
{
s32 i;
for (i = 0; i < 13; i++) {
@ -65,7 +62,8 @@ void fn_1_15D8(void) {
}
}
void fn_1_162C(omObjData* arg0) {
void fn_1_162C(omObjData *arg0)
{
s32 var_r30;
s32 var_r30_2;
s32 var_r30_3;
@ -73,50 +71,52 @@ void fn_1_162C(omObjData* arg0) {
s32 i;
arg0->func = fn_1_1A8C;
arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[2], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_198[2]);
Hu3DModelShadowMapSet(arg0->model[0]);
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[3], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_198[3]);
Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
Hu3DModelAttrSet(arg0->model[1], 1);
for (i = 0; i < ARRAY_COUNT(GWPlayerCfg); i++) {
arg0->model[i+2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[GWPlayerCfg[i].character + 4], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_198[GWPlayerCfg[i].character + 4]);
Hu3DModelAmbSet(arg0->model[i + 2], 1.0f, 1.0f, 1.0f);
Hu3DModelShadowMapSet(arg0->model[i + 2]);
}
for (i = 0; i < 5; i++) {
if (i == 0) {
arg0->model[i + 6] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[0], MEMORY_DEFAULT_NUM, HEAP_DATA));
} else {
arg0->model[i + 6] = Hu3DModelCreateFile(lbl_1_data_198[0]);
}
else {
arg0->model[i + 6] = Hu3DModelLink(arg0->model[6]);
}
Hu3DModelAmbSet(arg0->model[i + 6], 1.0f, 1.0f, 1.0f);
Hu3DModelShadowMapSet(arg0->model[i + 6]);
}
arg0->model[11] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[12], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[12] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[1], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[11] = Hu3DModelCreateFile(lbl_1_data_198[12]);
arg0->model[12] = Hu3DModelCreateFile(lbl_1_data_198[1]);
for (i = 0; i < 4; i++) {
Hu3DModelPosSetV(arg0->model[i + 2], &lbl_1_data_1CC[i]);
}
for (i = 0; i < 5; i++) {
Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32) i));
Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32)i));
}
Hu3DModelPosSet(arg0->model[11], 0.0f, 0.0f, -3900.0f);
Hu3DModelPosSet(arg0->model[12], 0.0f, 0.0f, 0.0f);
Hu3DModelAttrSet(arg0->model[12], 0x40000001);
if (lbl_1_bss_20 > 0) {
Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32) lbl_1_bss_20);
Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32)lbl_1_bss_20);
Hu3DModelAttrReset(arg0->model[1], 1);
}
}
void fn_1_1A8C(omObjData* arg0) {
void fn_1_1A8C(omObjData *arg0)
{
Point3d sp8;
sp8.x = lbl_1_data_1FC.x;
@ -124,4 +124,4 @@ void fn_1_1A8C(omObjData* arg0) {
sp8.z = lbl_1_data_1FC.z + Center.z;
Hu3DGLightPosSetV(lbl_1_bss_24, &sp8, &lbl_1_data_208);
Hu3DShadowPosSet(&sp8, &lbl_1_data_218, &Center);
}
}

View file

@ -1,27 +1,27 @@
#include "game/process.h"
#include "game/object.h"
#include "game/gamework_data.h"
#include "game/pad.h"
#include "game/objsub.h"
#include "game/chrman.h"
#include "game/hsfman.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/process.h"
#include "math.h"
#include "rel_sqrt_consts.h"
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
typedef void (*ObjFuncs)(omObjData*);
typedef void (*ObjFuncs)(omObjData *);
typedef struct unkDominationData {
u8 unk_00;
u8 unk_01;
u8 unk_02;
//padding unk_03
// padding unk_03
s32 unk_04;
s32 unk_08;
u8 unk_0C;
//padding unk_0D
// padding unk_0D
f32 unk_10;
f32 unk_14;
f32 unk_18;
@ -35,90 +35,150 @@ typedef struct unkDominationData {
s32 unk_38;
} unkDominationData;
//function signatures
void fn_1_628(omObjData*, s32);
void fn_1_64C(omObjData*);
void fn_1_99C(omObjData*);
void fn_1_A1C(omObjData* arg0);
// function signatures
void fn_1_628(omObjData *, s32);
void fn_1_64C(omObjData *);
void fn_1_99C(omObjData *);
void fn_1_A1C(omObjData *arg0);
void fn_1_26CC(u8);
void fn_1_4544(s32, s32, f32, f32, f32);
s16 fn_1_28B8(u8);
s16 fn_1_28E4(u8);
void fn_1_A88(omObjData* arg0);
void fn_1_A8C(omObjData* arg0);
void fn_1_C58(omObjData* arg0);
void fn_1_CF4(omObjData* arg0);
void fn_1_DB4(omObjData* arg0);
void fn_1_F8C(omObjData* arg0);
void fn_1_1074(omObjData* arg0);
void fn_1_11CC(omObjData* arg0);
void fn_1_13E4(omObjData* arg0);
void fn_1_1460(omObjData* arg0);
void fn_1_A88(omObjData *arg0);
void fn_1_A8C(omObjData *arg0);
void fn_1_C58(omObjData *arg0);
void fn_1_CF4(omObjData *arg0);
void fn_1_DB4(omObjData *arg0);
void fn_1_F8C(omObjData *arg0);
void fn_1_1074(omObjData *arg0);
void fn_1_11CC(omObjData *arg0);
void fn_1_13E4(omObjData *arg0);
void fn_1_1460(omObjData *arg0);
//bss
Process* lbl_1_bss_18;
omObjData* lbl_1_bss_8[4];
Process* lbl_1_bss_0[2];
// bss
Process *lbl_1_bss_18;
omObjData *lbl_1_bss_8[4];
Process *lbl_1_bss_0[2];
//data
// data
u32 lbl_1_data_0[8][8] = {
{0x005F0000, 0x005F0024, 0x005F0029, 0x005F0005, 0x005F0006, 0x005F004A, 0x005F004B, 0x005F0018},
{0x001A0000, 0x001A0024, 0x001A0029, 0x001A0005, 0x001A0006, 0x001A004A, 0x001A004B, 0x001A0018},
{0x006D0000, 0x006D0024, 0x006D0029, 0x006D0005, 0x006D0006, 0x006D004A, 0x006D004B, 0x006D0018},
{0x008A0000, 0x008A0024, 0x008A0029, 0x008A0005, 0x008A0006, 0x008A004A, 0x008A004B, 0x008A0018},
{0x00850000, 0x00850024, 0x00850029, 0x00850005, 0x00850006, 0x0085004A, 0x0085004B, 0x00850018},
{0x00110000, 0x00110024, 0x00110029, 0x00110005, 0x00110006, 0x0011004A, 0x0011004B, 0x00110018},
{0x000D0000, 0x000D0024, 0x000D0029, 0x000D0005, 0x000D0006, 0x000D004A, 0x000D004B, 0x000D0018},
{0x00810000, 0x00810024, 0x00810029, 0x00810005, 0x00810006, 0x0081004A, 0x0081004B, 0x00810018}
{
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x24),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x29),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x24),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x29),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x05),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x06),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x24),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x29),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x05),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x06),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x24),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x29),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x05),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x06),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x24),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x29),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x05),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x06),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x24),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x29),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x05),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x06),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x24),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x29),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x06),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18),
},
{
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x24),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x29),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x05),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x06),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x4A),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x4B),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18),
},
};
s32 lbl_1_data_100[] = {0x0026000D, 0x0026000E, 0x0026000F, 0x00260010, 0x00260011, 0x00260012, 0x00260013, 0x00260014};
s32 lbl_1_data_100[] = {
DATA_MAKE_NUM(DATADIR_M407, 0x0D),
DATA_MAKE_NUM(DATADIR_M407, 0x0E),
DATA_MAKE_NUM(DATADIR_M407, 0x0F),
DATA_MAKE_NUM(DATADIR_M407, 0x10),
DATA_MAKE_NUM(DATADIR_M407, 0x11),
DATA_MAKE_NUM(DATADIR_M407, 0x12),
DATA_MAKE_NUM(DATADIR_M407, 0x13),
DATA_MAKE_NUM(DATADIR_M407, 0x14),
};
char lbl_1_data_120[] = "test11_tex_we-itemhook-r";
char* lbl_1_data_13C[] = {
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120
};
char *lbl_1_data_13C[]
= { lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120 };
ObjFuncs lbl_1_data_15C[] = {
fn_1_A88,
fn_1_A8C,
fn_1_C58,
fn_1_CF4,
fn_1_DB4,
fn_1_F8C,
fn_1_1074,
fn_1_11CC,
fn_1_13E4,
fn_1_1460
};
ObjFuncs lbl_1_data_15C[] = { fn_1_A88, fn_1_A8C, fn_1_C58, fn_1_CF4, fn_1_DB4, fn_1_F8C, fn_1_1074, fn_1_11CC, fn_1_13E4, fn_1_1460 };
u8 lbl_1_data_184[4][2] = {
{0x3C, 0x0F},
{0x50, 0x0F},
{0x64, 0x14},
{0x78, 0x14}
};
u8 lbl_1_data_184[4][2] = { { 0x3C, 0x0F }, { 0x50, 0x0F }, { 0x64, 0x14 }, { 0x78, 0x14 } };
inline void SetDominationDataStuff(omObjData* arg0, s32 val0, s32 val1) {
unkDominationData* temp_r29 = arg0->data;
inline void SetDominationDataStuff(omObjData *arg0, s32 val0, s32 val1)
{
unkDominationData *temp_r29 = arg0->data;
temp_r29->unk_1C = val0;
temp_r29->unk_20 = val1;
}
void ObjectSetup(void) {
void ObjectSetup(void)
{
lbl_1_bss_0[0] = omInitObjMan(0x2F8, 0x2000);
omGameSysInit(lbl_1_bss_0[0]);
fn_1_4980(lbl_1_bss_0[0]);
}
void fn_1_F4(Process* arg0) {
void fn_1_F4(Process *arg0)
{
u32 i;
lbl_1_bss_18 = arg0;
@ -128,7 +188,8 @@ void fn_1_F4(Process* arg0) {
}
}
void fn_1_194(void) {
void fn_1_194(void)
{
s32 i;
for (i = 0; i < 4; i++) {
@ -136,7 +197,8 @@ void fn_1_194(void) {
}
}
void fn_1_1E4(void) {
void fn_1_1E4(void)
{
s32 i;
for (i = 0; i < 4; i++) {
@ -144,7 +206,8 @@ void fn_1_1E4(void) {
}
}
void fn_1_238(void) {
void fn_1_238(void)
{
s32 i;
for (i = 0; i < 4; i++) {
@ -152,7 +215,8 @@ void fn_1_238(void) {
}
}
void fn_1_28C(void) {
void fn_1_28C(void)
{
s32 i;
for (i = 0; i < 4; i++) {
@ -160,7 +224,8 @@ void fn_1_28C(void) {
}
}
void fn_1_2E0(void) {
void fn_1_2E0(void)
{
s32 i;
for (i = 0; i < 4; i++) {
@ -168,7 +233,8 @@ void fn_1_2E0(void) {
}
}
void fn_1_334(void) {
void fn_1_334(void)
{
s32 i;
for (i = 0; i < 4; i++) {
@ -176,19 +242,22 @@ void fn_1_334(void) {
}
}
void fn_1_388(u8 arg0, s32 arg1) {
omObjData* obj = lbl_1_bss_8[arg0];
unkDominationData* unkData = obj->data;
void fn_1_388(u8 arg0, s32 arg1)
{
omObjData *obj = lbl_1_bss_8[arg0];
unkDominationData *unkData = obj->data;
unkData->unk_38 = arg1;
}
void fn_1_3C4(u8 arg0) {
void fn_1_3C4(u8 arg0)
{
fn_1_628(lbl_1_bss_8[arg0], 8);
}
void fn_1_404(void) {
omObjData* temp_r31;
unkDominationData* unkData;
void fn_1_404(void)
{
omObjData *temp_r31;
unkDominationData *unkData;
s32 temp_r0;
u8 i;
@ -196,68 +265,74 @@ void fn_1_404(void) {
temp_r31 = lbl_1_bss_8[i];
unkData = temp_r31->data;
switch (unkData->unk_38) {
case 0:
fn_1_628(temp_r31, 9);
break;
case 1:
fn_1_628(temp_r31, 6);
break;
case 2:
fn_1_628(temp_r31, 9);
break;
case 0:
fn_1_628(temp_r31, 9);
break;
case 1:
fn_1_628(temp_r31, 6);
break;
case 2:
fn_1_628(temp_r31, 9);
break;
}
}
}
s32 fn_1_4C0(u8 arg0) {
unkDominationData* unkData;
s32 fn_1_4C0(u8 arg0)
{
unkDominationData *unkData;
if (arg0 >= 4) {
return -1;
}
unkData = lbl_1_bss_8[arg0]->data;
return unkData->unk_01;
}
s32 fn_1_508(u8 arg0) {
unkDominationData* unkData = lbl_1_bss_8[arg0]->data;
s32 fn_1_508(u8 arg0)
{
unkDominationData *unkData = lbl_1_bss_8[arg0]->data;
return unkData->unk_04;
}
s32 fn_1_53C(u8 arg0) {
return ((unkDominationData*)(lbl_1_bss_8[arg0]->data))->unk_1C == 0;
s32 fn_1_53C(u8 arg0)
{
return ((unkDominationData *)(lbl_1_bss_8[arg0]->data))->unk_1C == 0;
}
void fn_1_568(s16 arg0, s16 arg1, s16 arg2) {
unkDominationData* unkData;
void fn_1_568(s16 arg0, s16 arg1, s16 arg2)
{
unkDominationData *unkData;
unkData = lbl_1_bss_8[arg0]->data;
switch (arg1) {
case 0:
omVibrate(unkData->unk_00, arg2, 6, 6);
break;
case 1:
omVibrate(unkData->unk_00, arg2, 4, 2);
break;
case 2:
omVibrate(unkData->unk_00, arg2, 0xC, 0);
break;
case 0:
omVibrate(unkData->unk_00, arg2, 6, 6);
break;
case 1:
omVibrate(unkData->unk_00, arg2, 4, 2);
break;
case 2:
omVibrate(unkData->unk_00, arg2, 0xC, 0);
break;
}
}
void fn_1_628(omObjData* arg0, s32 arg1) {
unkDominationData* temp_r31;
void fn_1_628(omObjData *arg0, s32 arg1)
{
unkDominationData *temp_r31;
temp_r31 = arg0->data;
temp_r31->unk_1C = arg1;
temp_r31->unk_20 = 0;
}
void fn_1_64C(omObjData* arg0) {
void fn_1_64C(omObjData *arg0)
{
u32 temp_r29;
unkDominationData* temp_r27;
unkDominationData* temp_r31;
unkDominationData *temp_r27;
unkDominationData *temp_r31;
u32 i;
arg0->func = fn_1_A1C;
@ -276,14 +351,14 @@ void fn_1_64C(omObjData* arg0) {
temp_r31->unk_30 = (600.0f / (lbl_1_data_184[temp_r31->unk_02][0] - frandmod31(lbl_1_data_184[temp_r31->unk_02][1])));
temp_r31->unk_2C = temp_r31->unk_30;
arg0->model[0] = CharModelCreate(temp_r31->unk_01, 8);
arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_100[temp_r31->unk_01], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_100[temp_r31->unk_01]);
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
for (i = 0; i < 8; i++) {
arg0->motion[i] = CharModelMotionCreate(temp_r31->unk_01, lbl_1_data_0[temp_r31->unk_01][i]);
}
Hu3DModelShadowSet(arg0->model[0]);
Hu3DModelShadowSet(arg0->model[1]);
CharModelMotionDataClose(temp_r31->unk_01);
@ -296,47 +371,49 @@ void fn_1_64C(omObjData* arg0) {
SetDominationDataStuff(arg0, 0, 0);
}
void fn_1_99C(omObjData* arg0) {
void fn_1_99C(omObjData *arg0)
{
s32 i;
for (i = 0; i < 8; i++) {
Hu3DMotionKill(arg0->motion[i]);
}
for (i = 0; i < 2; i++){
for (i = 0; i < 2; i++) {
Hu3DModelKill(arg0->model[i]);
}
HuMemDirectFree(arg0->data);
}
void fn_1_A1C(omObjData* arg0) {
unkDominationData* temp_r31;
void fn_1_A1C(omObjData *arg0)
{
unkDominationData *temp_r31;
temp_r31 = arg0->data;
lbl_1_data_15C[temp_r31->unk_1C](arg0);
omSetTra(arg0, temp_r31->unk_10, temp_r31->unk_14, temp_r31->unk_18);
}
void fn_1_A88(omObjData* arg0) {
void fn_1_A88(omObjData *arg0) { }
}
void fn_1_A8C(omObjData* arg0) {
void fn_1_A8C(omObjData *arg0)
{
s32 var_r29;
unkDominationData* temp_r31;
unkDominationData *temp_r31;
var_r29 = 0;
temp_r31 = arg0->data;
temp_r31->unk_28 += 1.0f;
if (temp_r31->unk_04 == 0) {
var_r29 = (HuPadBtnDown[temp_r31->unk_0C] & 0x100) ? 1 : 0;
} else if ((u32) temp_r31->unk_28 >= (u32) temp_r31->unk_2C) {
}
else if ((u32)temp_r31->unk_28 >= (u32)temp_r31->unk_2C) {
var_r29 = 1;
temp_r31->unk_2C += temp_r31->unk_30;
}
if (var_r29 != 0) {
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[2], 0.0f, 0.0f, 0);
fn_1_4544(4, 0x10, 600.0f - (400.0f * temp_r31->unk_00), -20.0f, -450.0f);
@ -344,15 +421,16 @@ void fn_1_A8C(omObjData* arg0) {
temp_r31->unk_34 = 1;
return;
}
if ((temp_r31->unk_34 != 0) && (Hu3DMotionEndCheck(arg0->model[0]) != 0)) {
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 0.0f, 0x40000001);
temp_r31->unk_34 = 0;
}
}
void fn_1_C58(omObjData* arg0) {
unkDominationData* temp_r30;
void fn_1_C58(omObjData *arg0)
{
unkDominationData *temp_r30;
temp_r30 = arg0->data;
if (Hu3DMotionEndCheck(arg0->model[0]) != 0) {
@ -362,8 +440,9 @@ void fn_1_C58(omObjData* arg0) {
}
}
void fn_1_CF4(omObjData* arg0) {
unkDominationData* temp_r31;
void fn_1_CF4(omObjData *arg0)
{
unkDominationData *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_20 == 0) {
@ -375,56 +454,59 @@ void fn_1_CF4(omObjData* arg0) {
}
}
void fn_1_DB4(omObjData* arg0) {
void fn_1_DB4(omObjData *arg0)
{
f32 temp_f31;
f32 temp_f30;
unkDominationData* temp_r31;
unkDominationData *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_20 == 0) {
CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0);
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0);
temp_r31->unk_24 = 0.0f;
temp_r31->unk_20++;
}
temp_f31 = (32.0f * sin(1.0471975511965976)) - (9.8f * temp_r31->unk_24);
temp_f30 = 22.0f * cos(1.0471975511965976);
temp_r31->unk_18 = temp_r31->unk_18 + temp_f30;
temp_r31->unk_14 = temp_r31->unk_14 + temp_f31;
temp_r31->unk_24 += 0.3f;
if (!(temp_f31 < 0.0f) || !(temp_r31->unk_14 <= 30.0f)) {
return;
}
temp_r31->unk_14 = 30.0f;
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0);
SetDominationDataStuff(arg0, 0, 0);
}
//can also be placed into fn_1_F8C as static const
const s32 lbl_1_rodata_70[] = {0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2};
// can also be placed into fn_1_F8C as static const
const s32 lbl_1_rodata_70[] = { 0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2 };
void fn_1_F8C(omObjData* arg0) {
unkDominationData* temp_r31;
void fn_1_F8C(omObjData *arg0)
{
unkDominationData *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_20 == 0) {
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[5], 0.0f, 10.0f, 0);
HuAudFXPlay(lbl_1_rodata_70[temp_r31->unk_01]);
}
if (temp_r31->unk_20++ >= 120) {
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[0], 0.0f, 10.0f, 0x40000001);
SetDominationDataStuff(arg0, 0, 0);
}
}
void fn_1_1074(omObjData* arg0) {
unkDominationData* temp_r31;
void fn_1_1074(omObjData *arg0)
{
unkDominationData *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_20 == 0) {
@ -433,18 +515,19 @@ void fn_1_1074(omObjData* arg0) {
temp_r31->unk_24 = 0.0f;
temp_r31->unk_20 = 1;
}
temp_r31->unk_14 = (temp_r31->unk_14 + ((80.0 * sin(1.5707963267948966)) - (9.8 * temp_r31->unk_24)));
temp_r31->unk_24 += 0.3f;
if (!(temp_r31->unk_14 < 1000.0f)) {
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0);
SetDominationDataStuff(arg0, 7, 0);
}
}
void fn_1_11CC(omObjData* arg0) {
unkDominationData* temp_r31;
void fn_1_11CC(omObjData *arg0)
{
unkDominationData *temp_r31;
s16 temp;
temp_r31 = arg0->data;
@ -456,10 +539,10 @@ void fn_1_11CC(omObjData* arg0) {
temp_r31->unk_24 = 0.0f;
temp_r31->unk_20 = 1;
}
temp_r31->unk_14 = (temp_r31->unk_14 - (2.0f + (9.8f * temp_r31->unk_24)));
temp_r31->unk_24 += 0.3f;
if (!(temp_r31->unk_14 > 300.0f)) {
temp_r31->unk_14 = 300.0f;
CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0);
@ -473,16 +556,18 @@ void fn_1_11CC(omObjData* arg0) {
}
}
void fn_1_13E4(omObjData* arg0) {
unkDominationData* temp_r30;
void fn_1_13E4(omObjData *arg0)
{
unkDominationData *temp_r30;
temp_r30 = arg0->data;
CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[6], 0.0f, 10.0f, 0);
SetDominationDataStuff(arg0, 0, 0);
}
void fn_1_1460(omObjData* arg0) {
unkDominationData* temp_r30;
void fn_1_1460(omObjData *arg0)
{
unkDominationData *temp_r30;
temp_r30 = arg0->data;
CharModelVoiceEnableSet(temp_r30->unk_01, arg0->motion[7], 0);

View file

@ -1,42 +1,40 @@
#include "game/process.h"
#include "game/object.h"
#include "game/esprite.h"
#include "game/object.h"
#include "game/process.h"
#include "game/sprite.h"
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
typedef void (*ObjFuncs)(void);
typedef struct unkDominationData6 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C[8]; //what size is this??
/* 0x1C */ s32 unk_1C;
/* 0x20 */ f32 unk_20;
} unkDominationData6; //sizeof 0x24
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C[8]; // what size is this??
/* 0x1C */ s32 unk_1C;
/* 0x20 */ f32 unk_20;
} unkDominationData6; // sizeof 0x24
//func signatures
// func signatures
void fn_1_61A0(void);
void fn_1_6218(void);
void fn_1_62A0(void);
void fn_1_5FE4(omObjData* arg0);
void fn_1_5FE4(omObjData *arg0);
void fn_1_5FB4(s32 arg0);
s16 fn_1_28D4(void);
//bss
Process* lbl_1_bss_398C;
omObjData* lbl_1_bss_3988;
// bss
Process *lbl_1_bss_398C;
omObjData *lbl_1_bss_3988;
//data
ObjFuncs lbl_1_data_360[] = {
fn_1_61A0,
fn_1_6218,
fn_1_62A0
};
// data
ObjFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 };
void fn_1_5C5C(Process* arg0, s16 arg1) {
unkDominationData6* temp_r31;
void fn_1_5C5C(Process *arg0, s16 arg1)
{
unkDominationData6 *temp_r31;
u32 i;
lbl_1_bss_398C = arg0;
@ -45,21 +43,21 @@ void fn_1_5C5C(Process* arg0, s16 arg1) {
temp_r31 = lbl_1_bss_3988->data;
temp_r31->unk_08 = arg1;
temp_r31->unk_0A = 0;
temp_r31->unk_0C[6] = espEntry(0x260025, 2, 0);
temp_r31->unk_0C[6] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x25), 2, 0);
espTPLvlSet(temp_r31->unk_0C[6], 0.5f);
espPosSet(temp_r31->unk_0C[6], 508.0f, 64.0f);
temp_r31->unk_0C[7] = espEntry(0x260022, 1, 0);
temp_r31->unk_0C[7] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x22), 1, 0);
espPosSet(temp_r31->unk_0C[7], 480.0f, 56.0f);
for (i = 0; i < 3; i++) {
temp_r31->unk_0C[i] = espEntry(0x26001F, 0, 0);
temp_r31->unk_0C[i] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x1F), 0, 0);
espPosSet(temp_r31->unk_0C[i], i * 16 + 0x1F4, 56.0f);
espDispOff(temp_r31->unk_0C[i]);
}
for (i = 0; i < 3; i++) {
temp_r31->unk_0C[i+3] = espEntry(0x260020, 1, 0);
espPosSet(temp_r31->unk_0C[i+3], i * 16 + 0x1F4, 74.0f);
temp_r31->unk_0C[i + 3] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 1, 0);
espPosSet(temp_r31->unk_0C[i + 3], i * 16 + 0x1F4, 74.0f);
}
for (i = 0; i < 8; i++) {
@ -69,44 +67,49 @@ void fn_1_5C5C(Process* arg0, s16 arg1) {
fn_1_5FB4(0);
}
void fn_1_5ECC(void) {
void fn_1_5ECC(void)
{
s32 i;
unkDominationData6* temp_r30;
unkDominationData6 *temp_r30;
temp_r30 = lbl_1_bss_3988->data;
for (i = 0; i < 7; i++) {
espKill(temp_r30->unk_0C[i]);
}
HuMemDirectFree(lbl_1_bss_3988->data);
}
void fn_1_5F40(s32 arg0) {
void fn_1_5F40(s32 arg0)
{
switch (arg0) {
case 0:
fn_1_5FB4(1);
break;
case 1:
fn_1_5FB4(2);
break;
case 0:
fn_1_5FB4(1);
break;
case 1:
fn_1_5FB4(2);
break;
}
}
void fn_1_5F90(void) {
void fn_1_5F90(void)
{
fn_1_5FB4(0);
}
void fn_1_5FB4(s32 arg0) {
unkDominationData6* temp_r31;
void fn_1_5FB4(s32 arg0)
{
unkDominationData6 *temp_r31;
temp_r31 = lbl_1_bss_3988->data;
temp_r31->unk_00 = arg0;
temp_r31->unk_04 = 0;
}
void fn_1_5FE4(omObjData* arg0) {
void fn_1_5FE4(omObjData *arg0)
{
s16 temp_r31;
unkDominationData6* temp_r30;
unkDominationData6 *temp_r30;
temp_r30 = lbl_1_bss_3988->data;
lbl_1_data_360[temp_r30->unk_00]();
@ -114,19 +117,20 @@ void fn_1_5FE4(omObjData* arg0) {
espBankSet(temp_r30->unk_0C[0], temp_r31 / 100);
temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100));
espBankSet(temp_r30->unk_0C[1], (temp_r31 / 10));
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
espBankSet(temp_r30->unk_0C[2], temp_r31);
temp_r31 = temp_r30->unk_0A;
espBankSet(temp_r30->unk_0C[3], (temp_r31 / 100));
temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100));
espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10));
espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10));
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
espBankSet(temp_r30->unk_0C[5], temp_r31);
}
void fn_1_61A0(void) {
void fn_1_61A0(void)
{
s32 i;
unkDominationData6* temp_r31;
unkDominationData6 *temp_r31;
temp_r31 = lbl_1_bss_3988->data;
@ -138,9 +142,10 @@ void fn_1_61A0(void) {
}
}
void fn_1_6218(void) {
void fn_1_6218(void)
{
s16 i;
unkDominationData6* temp_r31;
unkDominationData6 *temp_r31;
temp_r31 = lbl_1_bss_3988->data;
@ -154,9 +159,10 @@ void fn_1_6218(void) {
temp_r31->unk_0A = fn_1_28D4();
}
void fn_1_62A0(void) {
void fn_1_62A0(void)
{
s32 i;
unkDominationData6* temp_r31;
unkDominationData6 *temp_r31;
temp_r31 = lbl_1_bss_3988->data;
@ -174,7 +180,8 @@ void fn_1_62A0(void) {
temp_r31->unk_20 = 1.2f;
temp_r31->unk_1C = 1;
}
} else {
}
else {
if ((temp_r31->unk_20 -= 0.04f) <= 1.0f) {
temp_r31->unk_20 = 1.0f;
temp_r31->unk_1C = 0;

View file

@ -1,45 +1,45 @@
#include "game/process.h"
#include "game/object.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/audio.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/object.h"
#include "game/process.h"
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
#define MAX_WHOMPS_PLAYER 160
#define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER * ARRAY_COUNT(GWPlayer)
#define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer)
#define MAX_WHOMPS_PLAYER 160
#define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER *ARRAY_COUNT(GWPlayer)
#define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer)
typedef void (*ObjFuncs)(omObjData*);
typedef void (*ObjFuncs)(omObjData *);
typedef struct unkDominationData7 {
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
/* 0x20 */ char unk_20[4];
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
} unkDominationData7; //sizeof 0x30
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
/* 0x20 */ char unk_20[4];
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
} unkDominationData7; // sizeof 0x30
//function signatures
void fn_1_3360(omObjData*);
void fn_1_3364(omObjData*);
void fn_1_34A4(omObjData*);
void fn_1_37B0(omObjData*);
void fn_1_36D0(omObjData*);
void fn_1_2B7C(omObjData*);
void fn_1_290C(omObjData*, s32);
void fn_1_31F8(omObjData*);
// function signatures
void fn_1_3360(omObjData *);
void fn_1_3364(omObjData *);
void fn_1_34A4(omObjData *);
void fn_1_37B0(omObjData *);
void fn_1_36D0(omObjData *);
void fn_1_2B7C(omObjData *);
void fn_1_290C(omObjData *, s32);
void fn_1_31F8(omObjData *);
void fn_1_4544(s32, s32, f32, f32, f32);
void fn_1_3BB8(s16, f32, f32);
void fn_1_568(s16, s16, s16);
//bss
Process* lbl_1_bss_37C0;
omObjData* lbl_1_bss_2DB0[MAX_WHOMPS];
// bss
Process *lbl_1_bss_37C0;
omObjData *lbl_1_bss_2DB0[MAX_WHOMPS];
s16 lbl_1_bss_1E98[MAX_WHOMPS][3];
s16 lbl_1_bss_68[MAX_WHOMPS][6];
s16 lbl_1_bss_66;
@ -47,23 +47,23 @@ s16 lbl_1_bss_64;
s16 lbl_1_bss_3A[21];
s16 lbl_1_bss_38;
//data
// data
s32 lbl_1_data_228[] = {
0x0026001C,
0x0026001D,
0x0026001E,
0x0026001B
DATA_MAKE_NUM(DATADIR_M407, 0x1C),
DATA_MAKE_NUM(DATADIR_M407, 0x1D),
DATA_MAKE_NUM(DATADIR_M407, 0x1E),
DATA_MAKE_NUM(DATADIR_M407, 0x1B),
};
s32 lbl_1_data_238[] = {
0x0026002E,
0x0026002F,
0x0026002D,
0x0026002A,
0x0026002C,
0x00260027,
0x00260028,
0x00260029
DATA_MAKE_NUM(DATADIR_M407, 0x2E),
DATA_MAKE_NUM(DATADIR_M407, 0x2F),
DATA_MAKE_NUM(DATADIR_M407, 0x2D),
DATA_MAKE_NUM(DATADIR_M407, 0x2A),
DATA_MAKE_NUM(DATADIR_M407, 0x2C),
DATA_MAKE_NUM(DATADIR_M407, 0x27),
DATA_MAKE_NUM(DATADIR_M407, 0x28),
DATA_MAKE_NUM(DATADIR_M407, 0x29),
};
ObjFuncs lbl_1_data_258[] = {
@ -74,8 +74,9 @@ ObjFuncs lbl_1_data_258[] = {
fn_1_36D0,
};
void fn_1_2354(Process* arg0) {
Process* sp8;
void fn_1_2354(Process *arg0)
{
Process *sp8;
u32 i;
u32 j;
@ -84,7 +85,7 @@ void fn_1_2354(Process* arg0) {
for (j = 0, i = 0; i < MAX_WHOMPS_ALL_PLAYERS; i++) {
lbl_1_bss_2DB0[i] = omAddObjEx(lbl_1_bss_37C0, 0x200, 3, 6, 2, fn_1_2B7C);
lbl_1_bss_2DB0[i]->work[0] = i;
lbl_1_bss_2DB0[i]->work[1] = 0;
lbl_1_bss_2DB0[i]->work[1] = 0;
}
j = j + i;
@ -92,7 +93,7 @@ void fn_1_2354(Process* arg0) {
for (i = 0; i < 4; i++) {
lbl_1_bss_2DB0[j + i] = omAddObjEx(lbl_1_bss_37C0, 0x200, 3, 6, 2, fn_1_2B7C);
lbl_1_bss_2DB0[j + i]->work[0] = j + i;
lbl_1_bss_2DB0[j + i]->work[1] = 1;
lbl_1_bss_2DB0[j + i]->work[1] = 1;
}
for (i = 0; i < 4; i++) {
@ -102,7 +103,8 @@ void fn_1_2354(Process* arg0) {
lbl_1_bss_64 = 0;
}
void fn_1_24F0(void) {
void fn_1_24F0(void)
{
u32 i;
for (i = 0; i < MAX_WHOMPS; i++) {
@ -111,7 +113,8 @@ void fn_1_24F0(void) {
}
}
void fn_1_2564(void) {
void fn_1_2564(void)
{
u32 i;
HuAudFXPlay(0x542);
@ -120,30 +123,32 @@ void fn_1_2564(void) {
}
}
void fn_1_25C0(void) {
void fn_1_25C0(void)
{
u32 i, j;
lbl_1_bss_38 = 0;
for (i = 0; i < 4; i++) {
if (lbl_1_bss_38 < lbl_1_bss_3A[i]) {
lbl_1_bss_38 = lbl_1_bss_3A[i];
}
}
}
lbl_1_bss_66 = 0;
for (i = 0; i < 4; i++) {
if (lbl_1_bss_3A[i] > 0) {
fn_1_290C(lbl_1_bss_2DB0[i], 3);
lbl_1_bss_66 += 1;
}
}
}
}
void fn_1_26CC(u8 arg0) {
void fn_1_26CC(u8 arg0)
{
u32 i;
omObjData* temp;
omObjData *temp;
i = lbl_1_bss_3A[arg0];
if (i < MAX_WHOMPS_PLAYER) {
@ -153,9 +158,10 @@ void fn_1_26CC(u8 arg0) {
}
}
void fn_1_2770(u8 arg0, s16 arg2) {
omObjData* temp_r30;
unkDominationData7* temp_r31;
void fn_1_2770(u8 arg0, s16 arg2)
{
omObjData *temp_r30;
unkDominationData7 *temp_r31;
temp_r30 = lbl_1_bss_2DB0[arg0 + MAX_WHOMPS_ALL_PLAYERS];
temp_r31 = temp_r30->data;
@ -165,35 +171,41 @@ void fn_1_2770(u8 arg0, s16 arg2) {
fn_1_290C(temp_r30, 2);
}
s32 fn_1_2880(void) {
s32 fn_1_2880(void)
{
return (lbl_1_bss_66 == 0) ? 1 : 0;
}
s16 fn_1_28B8(u8 arg0) {
s16 fn_1_28B8(u8 arg0)
{
return lbl_1_bss_3A[arg0];
}
s16 fn_1_28D4(void) {
s16 fn_1_28D4(void)
{
return lbl_1_bss_64;
}
s16 fn_1_28E4(u8 arg0) {
s16 fn_1_28E4(u8 arg0)
{
return lbl_1_bss_2DB0[arg0 + MAX_WHOMPS_ALL_PLAYERS]->model[0];
}
void fn_1_290C(omObjData* arg0, s32 arg1) {
unkDominationData7* temp_r31;
void fn_1_290C(omObjData *arg0, s32 arg1)
{
unkDominationData7 *temp_r31;
temp_r31 = arg0->data;
temp_r31->unk_24 = arg1;
temp_r31->unk_2C = 0;
}
void fn_1_2930(omObjData* arg0) {
unkDominationData7* temp_r28;
omObjData* temp_r29;
void fn_1_2930(omObjData *arg0)
{
unkDominationData7 *temp_r28;
omObjData *temp_r29;
u32 i;
unkDominationData7* temp_r31;
unkDominationData7 *temp_r31;
temp_r31 = arg0->data;
lbl_1_data_258[temp_r31->unk_24](arg0);
@ -208,30 +220,33 @@ void fn_1_2930(omObjData* arg0) {
if (temp_r31->unk_08.y < 0.0f) {
Hu3DModelShadowDispOff(arg0->model[0]);
} else {
}
else {
Hu3DModelShadowDispOn(arg0->model[0]);
}
temp_r31->unk_04 = 1;
}
if ((temp_r31->unk_08.y < 0.0f) || (temp_r31->unk_08.z < (Center.z - 2000.0f))) {
Hu3DModelAttrSet(arg0->model[0], 1);
} else {
}
else {
Hu3DModelAttrReset(arg0->model[0], 1);
}
omSetTra(arg0, temp_r31->unk_08.x, temp_r31->unk_08.y, temp_r31->unk_08.z);
omSetRot(arg0, temp_r31->unk_14.x, temp_r31->unk_14.y, temp_r31->unk_14.z);
if (temp_r31->unk_28 == 1) {
Hu3DModelPosSet(arg0->model[2], temp_r31->unk_08.x, 1.0f + temp_r31->unk_08.y, temp_r31->unk_08.z);
}
}
void fn_1_2B7C(omObjData* arg0) {
void fn_1_2B7C(omObjData *arg0)
{
u32 i;
unkDominationData7* temp_r30;
unkDominationData7 *temp_r30;
arg0->func = fn_1_2930;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData7), MEMORY_DEFAULT_NUM);
@ -242,72 +257,74 @@ void fn_1_2B7C(omObjData* arg0) {
}
for (i = 0; i < 6; i++) {
arg0->motion[i] = -1;
arg0->motion[i] = -1;
}
temp_r30->unk_00 = (u32) arg0->work[0];
temp_r30->unk_28 = (u32) arg0->work[1];
temp_r30->unk_00 = (u32)arg0->work[0];
temp_r30->unk_28 = (u32)arg0->work[1];
temp_r30->unk_04 = 0;
temp_r30->unk_2C = 0;
switch (temp_r30->unk_28) {
case 0:
temp_r30->unk_14.x = 0.0f;
temp_r30->unk_14.y = 180.0f;
temp_r30->unk_14.z = 0.0f;
if (temp_r30->unk_00 < 80) {
arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[1], MEMORY_DEFAULT_NUM, HEAP_DATA));
Hu3DModelAttrSet(arg0->model[0], 0x4000);
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
if (temp_r30->unk_00 == 0) {
arg0->motion[5] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[5], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->motion[3] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[7], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->motion[4] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[6], MEMORY_DEFAULT_NUM, HEAP_DATA));
} else {
arg0->motion[5] = lbl_1_bss_68[0][5];
arg0->motion[3] = lbl_1_bss_68[0][3];
arg0->motion[4] = lbl_1_bss_68[0][4];
}
Hu3DModelShadowSet(arg0->model[0]);
for (i = 0; i < 3; i++) {
lbl_1_bss_1E98[temp_r30->unk_00][i] = arg0->model[i];
}
case 0:
temp_r30->unk_14.x = 0.0f;
temp_r30->unk_14.y = 180.0f;
temp_r30->unk_14.z = 0.0f;
if (temp_r30->unk_00 < 80) {
arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[1]);
Hu3DModelAttrSet(arg0->model[0], 0x4000);
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
if (temp_r30->unk_00 == 0) {
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[5]);
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[7]);
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[6]);
}
else {
arg0->motion[5] = lbl_1_bss_68[0][5];
arg0->motion[3] = lbl_1_bss_68[0][3];
arg0->motion[4] = lbl_1_bss_68[0][4];
}
Hu3DModelShadowSet(arg0->model[0]);
for (i = 0; i < 3; i++) {
lbl_1_bss_1E98[temp_r30->unk_00][i] = arg0->model[i];
}
for (i = 0; i < 6; i++) {
lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i];
for (i = 0; i < 6; i++) {
lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i];
}
Hu3DMotionSet(arg0->model[0], arg0->motion[5]);
Hu3DModelAttrSet(arg0->model[0], 0x40000001);
temp_r30->unk_04 = 1;
}
Hu3DMotionSet(arg0->model[0], arg0->motion[5]);
Hu3DModelAttrSet(arg0->model[0], 0x40000001);
else {
temp_r30->unk_04 = 0;
}
break;
case 1:
temp_r30->unk_14.x = 0.0f;
temp_r30->unk_14.y = 0.0f;
temp_r30->unk_14.z = 0.0f;
arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[0]);
arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_228[2]);
arg0->model[2] = Hu3DModelCreateFile(lbl_1_data_228[3]);
Hu3DModelAttrSet(arg0->model[0], 0x4000);
Hu3DModelAttrSet(arg0->model[1], 0x4000);
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[2]);
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[4]);
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[3]);
arg0->motion[0] = Hu3DJointMotionFile(arg0->model[1], lbl_1_data_238[0]);
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], lbl_1_data_238[1]);
Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]);
Hu3DModelShadowSet(arg0->model[0]);
Hu3DModelShadowSet(arg0->model[1]);
Hu3DModelAttrSet(arg0->model[0], 1);
Hu3DModelAttrSet(arg0->model[1], 1);
Hu3DModelAttrSet(arg0->model[2], 1);
Hu3DModelAttrSet(arg0->model[2], 0x40000002);
Hu3DModelAttrSet(arg0->model[2], 0x40000001);
temp_r30->unk_04 = 1;
} else {
temp_r30->unk_04 = 0;
}
break;
case 1:
temp_r30->unk_14.x = 0.0f;
temp_r30->unk_14.y = 0.0f;
temp_r30->unk_14.z = 0.0f;
arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[0], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[2], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[3], MEMORY_DEFAULT_NUM, HEAP_DATA));
Hu3DModelAttrSet(arg0->model[0], 0x4000);
Hu3DModelAttrSet(arg0->model[1], 0x4000);
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
arg0->motion[2] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[2], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->motion[3] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[4], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->motion[5] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[3], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->motion[0] = Hu3DJointMotion(arg0->model[1], HuDataSelHeapReadNum(lbl_1_data_238[0], MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->motion[1] = Hu3DJointMotion(arg0->model[1], HuDataSelHeapReadNum(lbl_1_data_238[1], MEMORY_DEFAULT_NUM, HEAP_DATA));
Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]);
Hu3DModelShadowSet(arg0->model[0]);
Hu3DModelShadowSet(arg0->model[1]);
Hu3DModelAttrSet(arg0->model[0], 1);
Hu3DModelAttrSet(arg0->model[1], 1);
Hu3DModelAttrSet(arg0->model[2], 1);
Hu3DModelAttrSet(arg0->model[2], 0x40000002);
Hu3DModelAttrSet(arg0->model[2], 0x40000001);
temp_r30->unk_04 = 1;
break;
break;
}
temp_r30->unk_08.x = (600.0f - (400.0f * (temp_r30->unk_00 & 3)));
temp_r30->unk_08.y = 0.0f;
@ -315,133 +332,136 @@ void fn_1_2B7C(omObjData* arg0) {
fn_1_290C(arg0, 0);
}
void fn_1_31F8(omObjData* arg0) {
void fn_1_31F8(omObjData *arg0)
{
s32 i;
unkDominationData7* temp_r29;
unkDominationData7 *temp_r29;
temp_r29 = arg0->data;
switch (temp_r29->unk_28) { /* irregular */
case 0:
if (temp_r29->unk_00 == 0) {
switch (temp_r29->unk_28) { /* irregular */
case 0:
if (temp_r29->unk_00 == 0) {
for (i = 0; i < 6; i++) {
if (arg0->motion[i] != -1) {
Hu3DMotionKill(arg0->motion[i]);
}
}
}
if (temp_r29->unk_04 != 0) {
for (i = 0; i < 3; i++) {
if (arg0->model[i] != -1) {
Hu3DModelKill(arg0->model[i]);
}
}
}
break;
case 1:
for (i = 0; i < 6; i++) {
if (arg0->motion[i] != -1) {
Hu3DMotionKill(arg0->motion[i]);
}
}
}
if (temp_r29->unk_04 != 0) {
for (i = 0; i < 3; i++) {
if (arg0->model[i] != -1) {
Hu3DModelKill(arg0->model[i]);
}
}
}
}
break;
case 1:
for (i = 0; i < 6; i++) {
if (arg0->motion[i] != -1) {
Hu3DMotionKill(arg0->motion[i]);
}
}
for (i = 0; i < 3; i++) {
if (arg0->model[i] != -1) {
Hu3DModelKill(arg0->model[i]);
}
}
break;
break;
}
if (arg0->data) {
HuMemDirectFree(arg0->data);
}
}
void fn_1_3360(omObjData*) {
void fn_1_3360(omObjData *) { }
}
void fn_1_3364(omObjData* arg0) {
unkDominationData7* temp_r31;
void fn_1_3364(omObjData *arg0)
{
unkDominationData7 *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_2C == 0) {
Hu3DMotionSet(arg0->model[0], arg0->motion[4]);
Hu3DModelAttrReset(arg0->model[0], 0x40000001);
switch (temp_r31->unk_28) {
case 0:
fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z);
break;
case 1:
fn_1_4544(1, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z);
break;
case 0:
fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z);
break;
case 1:
fn_1_4544(1, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z);
break;
}
}
if (temp_r31->unk_2C == 0x2A) {
Hu3DModelShadowDispOff(arg0->model[0]);
}
if (Hu3DMotionEndCheck(*arg0->model) == 0) {
temp_r31->unk_2C++;
return;
}
temp_r31->unk_08.y = -300.0f;
Hu3DModelAttrSet(arg0->model[0], 1);
fn_1_290C(arg0, 0);
}
void fn_1_34A4(omObjData* arg0) {
unkDominationData7* temp_r30;
void fn_1_34A4(omObjData *arg0)
{
unkDominationData7 *temp_r30;
temp_r30 = arg0->data;
if (temp_r30->unk_2C == 0) {
if (temp_r30->unk_28 == 1) {
Hu3DModelAttrReset(arg0->model[0], 1);
Hu3DModelAttrReset(arg0->model[1], 1);
} else {
}
else {
Hu3DModelAttrReset(arg0->model[0], 1);
}
Hu3DMotionSet(arg0->model[0], arg0->motion[3]);
Hu3DModelAttrReset(arg0->model[0], 0x40000001);
switch (temp_r30->unk_28) { /* irregular */
case 0:
fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z);
HuAudFXPlay(0x543);
break;
case 1:
HuAudFXPlay(0x544);
fn_1_4544(1, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z);
break;
switch (temp_r30->unk_28) { /* irregular */
case 0:
fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z);
HuAudFXPlay(0x543);
break;
case 1:
HuAudFXPlay(0x544);
fn_1_4544(1, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z);
break;
}
temp_r30->unk_08.y = 0.0f;
}
if (temp_r30->unk_2C == 0xA) {
Hu3DModelShadowDispOn(arg0->model[0]);
}
if ((temp_r30->unk_2C == 0xA) && (temp_r30->unk_28 == 1)) {
Hu3DMotionSet(arg0->model[1], arg0->motion[1]);
Hu3DModelAttrReset(arg0->model[1], 0x40000001);
}
temp_r30->unk_2C++;
if (Hu3DMotionEndCheck(arg0->model[0]) != 0) {
Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, 0x40000001);
switch (temp_r30->unk_28) {
case 0:
fn_1_290C(arg0, 0);
return;
case 1:
fn_1_290C(arg0, 4);
break;
case 0:
fn_1_290C(arg0, 0);
return;
case 1:
fn_1_290C(arg0, 4);
break;
}
}
}
void fn_1_36D0(omObjData* arg0) {
unkDominationData7* sp8;
void fn_1_36D0(omObjData *arg0)
{
unkDominationData7 *sp8;
sp8 = arg0->data;
Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, 0x40000001);
@ -453,8 +473,9 @@ void fn_1_36D0(omObjData* arg0) {
fn_1_290C(arg0, 0);
}
void fn_1_37B0(omObjData* arg0) {
unkDominationData7* temp_r31;
void fn_1_37B0(omObjData *arg0)
{
unkDominationData7 *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_2C == 0) {
@ -479,7 +500,7 @@ void fn_1_37B0(omObjData* arg0) {
}
temp_r31->unk_14.x = (temp_r31->unk_2C == 1) ? -90.0f : -68.0f;
if (temp_r31->unk_2C == 1) {
fn_1_4544(3, 0, temp_r31->unk_08.x, 0.0f, 200.0f + temp_r31->unk_08.z);
HuAudFXPlay(0x544);
@ -487,7 +508,8 @@ void fn_1_37B0(omObjData* arg0) {
fn_1_3BB8((temp_r31->unk_00 >> 2) + 1, temp_r31->unk_08.x, temp_r31->unk_08.z);
}
lbl_1_bss_66 -= 1;
} else {
}
else {
fn_1_4544(2, 0, temp_r31->unk_08.x, 0.0f, 200.0f + temp_r31->unk_08.z);
HuAudFXPlay(0x543);
}

View file

@ -1,39 +1,42 @@
#include "src/REL/m407dll/m407dll.h"
#include "game/process.h"
#include "game/object.h"
#include "game/gamework_data.h"
#include "game/esprite.h"
#include "game/gamework_data.h"
#include "game/object.h"
#include "game/process.h"
#include "game/sprite.h"
#include "REL/m407dll.h"
typedef struct unkDominationData3 {
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s16 unk_18[4];
/* 0x20 */ f32 unk_20;
} unkDominationData3; //sizeof 0x24
/* 0x00 */ u32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s16 unk_18[4];
/* 0x20 */ f32 unk_20;
} unkDominationData3; // sizeof 0x24
//function signatures
// function signatures
void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2);
void fn_1_3D28(omObjData* arg0, s32 arg1);
void fn_1_3E34(omObjData*);
void fn_1_3F7C(omObjData* arg0);
void fn_1_3FF0(omObjData*);
void fn_1_3FF4(omObjData* arg0);
void fn_1_40F4(omObjData* arg0);
void fn_1_3D28(omObjData *arg0, s32 arg1);
void fn_1_3E34(omObjData *);
void fn_1_3F7C(omObjData *arg0);
void fn_1_3FF0(omObjData *);
void fn_1_3FF4(omObjData *arg0);
void fn_1_40F4(omObjData *arg0);
//bss
Process* lbl_1_bss_37D8;
omObjData* lbl_1_bss_37C8[4];
// bss
Process *lbl_1_bss_37D8;
omObjData *lbl_1_bss_37C8[4];
//data
// data
ObjFuncs lbl_1_data_278[] = {
fn_1_3FF0,
fn_1_3FF4,
fn_1_40F4,
};
void fn_1_3AC8(Process* arg0) {
void fn_1_3AC8(Process *arg0)
{
u32 i;
lbl_1_bss_37D8 = arg0;
@ -44,7 +47,8 @@ void fn_1_3AC8(Process* arg0) {
}
}
void fn_1_3B68(void) {
void fn_1_3B68(void)
{
u32 i;
for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) {
@ -52,10 +56,11 @@ void fn_1_3B68(void) {
}
}
void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) {
omObjData* obj;
void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9)
{
omObjData *obj;
Vec sp14;
unkDominationData3* temp_r31;
unkDominationData3 *temp_r31;
u32 i;
s16 temp;
@ -66,7 +71,7 @@ void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) {
temp = arg0;
espBankSet(temp_r31->unk_18[1], (temp / 100));
temp = (temp - ((temp / 100) * 100));
espBankSet(temp_r31->unk_18[2],(temp / 10));
espBankSet(temp_r31->unk_18[2], (temp / 10));
temp = (temp - ((temp / 10) * 10));
espBankSet(temp_r31->unk_18[3], temp);
sp14.x = arg8;
@ -79,17 +84,19 @@ void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) {
}
}
void fn_1_3D28(omObjData* arg0, s32 arg1) {
unkDominationData3* temp_r31;
void fn_1_3D28(omObjData *arg0, s32 arg1)
{
unkDominationData3 *temp_r31;
temp_r31 = arg0->data;
temp_r31->unk_04 = arg1;
temp_r31->unk_14 = 0;
}
void fn_1_3D4C(omObjData* arg0) {
void fn_1_3D4C(omObjData *arg0)
{
s32 temp_r5;
unkDominationData3* temp_r31;
unkDominationData3 *temp_r31;
temp_r31 = arg0->data;
lbl_1_data_278[temp_r31->unk_04](arg0);
@ -100,8 +107,9 @@ void fn_1_3D4C(omObjData* arg0) {
espPosSet(temp_r31->unk_18[3], 18.0f + temp_r31->unk_08.x, temp_r31->unk_08.y - 8.0f);
}
void fn_1_3E34(omObjData* arg0) {
unkDominationData3* temp_r31;
void fn_1_3E34(omObjData *arg0)
{
unkDominationData3 *temp_r31;
arg0->func = fn_1_3D4C;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData3), MEMORY_DEFAULT_NUM);
@ -109,24 +117,25 @@ void fn_1_3E34(omObjData* arg0) {
temp_r31->unk_00 = arg0->work[0];
temp_r31->unk_14 = 0;
temp_r31->unk_04 = 0;
temp_r31->unk_18[0] = espEntry(0x260026, 1, 0);
temp_r31->unk_18[1] = espEntry(0x260020, 0, 0);
temp_r31->unk_18[2] = espEntry(0x260020, 0, 0);
temp_r31->unk_18[3] = espEntry(0x260020, 0, 0);
temp_r31->unk_18[0] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x26), 1, 0);
temp_r31->unk_18[1] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0);
temp_r31->unk_18[2] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0);
temp_r31->unk_18[3] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0);
espDispOff(temp_r31->unk_18[0]);
espDispOff(temp_r31->unk_18[1]);
espDispOff(temp_r31->unk_18[2]);
espDispOff(temp_r31->unk_18[3]);
espScaleSet(temp_r31->unk_18[0], 1.8f, 1.8f);
temp_r31->unk_08.x = (f32) 0.0f;
temp_r31->unk_08.y = (f32) 0.0f;
temp_r31->unk_08.x = (f32)0.0f;
temp_r31->unk_08.y = (f32)0.0f;
fn_1_3D28(arg0, 0);
}
void fn_1_3F7C(omObjData* arg0) {
void fn_1_3F7C(omObjData *arg0)
{
s32 i;
unkDominationData3* temp_r29;
unkDominationData3 *temp_r29;
temp_r29 = arg0->data;
for (i = 0; i < ARRAY_COUNT(temp_r29->unk_18); i++) {
@ -138,12 +147,11 @@ void fn_1_3F7C(omObjData* arg0) {
}
}
void fn_1_3FF0(omObjData* arg0) {
void fn_1_3FF0(omObjData *arg0) { }
}
void fn_1_3FF4(omObjData* arg0) {
unkDominationData3* temp_r31;
void fn_1_3FF4(omObjData *arg0)
{
unkDominationData3 *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk_14 == 0) {
@ -166,8 +174,9 @@ void fn_1_3FF4(omObjData* arg0) {
}
}
void fn_1_40F4(omObjData* arg0) {
unkDominationData3* temp_r31;
void fn_1_40F4(omObjData *arg0)
{
unkDominationData3 *temp_r31;
temp_r31 = arg0->data;
@ -186,4 +195,3 @@ void fn_1_40F4(omObjData* arg0) {
espDispOff(temp_r31->unk_18[3]);
fn_1_3D28(arg0, 0);
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -13,10 +13,10 @@ void fn_1_BF88(s16 arg0, s16 arg1) {
lbl_1_bss_F0.unk4 = Hu3DHookFuncCreate(fn_1_CB98);
Hu3DModelLayerSet(lbl_1_bss_F0.unk4, 6);
lbl_1_bss_F0.unk0 = arg0;
var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8), 0x10000000);
var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8), MEMORY_DEFAULT_NUM);
lbl_1_bss_F0.unk10 = var_r29;
lbl_1_bss_F0.unk2 = arg1;
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), 0x10000000);
var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM);
lbl_1_bss_F0.unkC = var_r30;
for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) {
@ -264,7 +264,7 @@ void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) {
s32 var_r30;
unkStruct11* var_r31;
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), 0x10000000);
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), MEMORY_DEFAULT_NUM);
for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) {
var_r31->unk0.x = (-0.5f * arg8);
@ -287,7 +287,7 @@ void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) {
s32 var_r28;
Vec* var_r31;
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), 0x10000000);
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM);
for (var_r29 = 0; var_r29 < arg1; var_r29++) {
for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) {
@ -303,7 +303,7 @@ void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) {
s32 var_r28;
GXColor* var_r31;
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), 0x10000000U);
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM);
for (var_r29 = 0; var_r29 < arg1; var_r29++) {
for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) {
@ -319,7 +319,7 @@ void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) {
s32 var_r29;
Vec* var_r31;
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000U);
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM);
for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) {
var_r31->x = arg2->x;
@ -333,7 +333,7 @@ void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) {
s32 var_r29;
HsfVector2f* var_r31;
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), 0x10000000U);
var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM);
for (var_r28 = 0; var_r28 < arg1; var_r28++) {
for (var_r29 = 0; var_r29 < 4; var_r31++, arg2++, var_r29++) {
@ -371,14 +371,14 @@ void fn_1_D0E8(unkStruct8Sub* arg0) {
if (arg0->unk48 != NULL) {
HuMemDirectFree(arg0->unk48);
}
arg0->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), 0x10000000);
arg0->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), MEMORY_DEFAULT_NUM);
arg0->unk48->x = 0.0f;
arg0->unk48->y = 0.0f;
arg0->unk48->z = 1.0f;
if (arg0->unk3C != NULL) {
HuMemDirectFree(arg0->unk3C);
}
temp_r3_3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, 0x10000000);
temp_r3_3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, MEMORY_DEFAULT_NUM);
arg0->unk3C = temp_r3_3;
DCFlushRange(arg0->unk3C, 0x1000);
GXBeginDisplayList(temp_r3_3, 0x1000);
@ -526,9 +526,9 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) {
var_r30->unk30 = NULL;
var_r30->unk2 = arg0;
var_r30->unk4 = arg1;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8Sub), 0x10000000);
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8Sub), MEMORY_DEFAULT_NUM);
var_r30->unk3C = var_r31;
var_r30->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), 0x10000000);
var_r30->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), MEMORY_DEFAULT_NUM);
var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f;
var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 0.0f;
var_r30->unk24.x = var_r30->unk24.y = var_r30->unk24.z = 1.0f;
@ -551,7 +551,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) {
var_r31->unk4C.a = 0xFF;
var_r31->unk50.r = var_r31->unk50.g = var_r31->unk50.b = 0xFF;
var_r31->unk50.a = 0xFF;
var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), 0x10000000);
var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), MEMORY_DEFAULT_NUM);
for (var_r28 = 0; var_r28 < arg1; var_r28++) {
var_r31->unk54[var_r28].unk0 = var_r31->unk54[var_r28].unk1 = 0;
@ -644,7 +644,7 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) {
}
var_r31->unk8 = arg0;
var_r31->unk6 = 1;
temp_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000));
temp_r30 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM));
if ((arg1 == 0) || (arg2 == 0)) {
arg1 = temp_r30->bmp->sizeX;
arg2 = temp_r30->bmp->sizeY;
@ -716,7 +716,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) {
}
temp_f30 = temp_r30->unk50;
temp_f31 = temp_r30->unk4E;
var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000);
var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM);
for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) {
var_r29->unk0.x = (-0.5f * temp_f31);
@ -739,7 +739,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) {
temp_r31->unkC = 1.0f;
temp_r31->unk10 = 0.0f;
if (temp_r31->unk4 == NULL) {
temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, 0x10000000U);
temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, MEMORY_DEFAULT_NUM);
}
temp_r31->unk4[0].x = temp_r31->unk0 * temp_r30->unk54;
temp_r31->unk4[0].y = temp_r31->unk0 * temp_r30->unk58;
@ -1205,4 +1205,4 @@ void fn_1_F4F0(s16 arg0, u8 arg1) {
}
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -21,7 +21,7 @@ unkStruct9 lbl_1_bss_F0;
// data
u32 lbl_1_data_138 = 0xFFFF0000;
s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, 0x280032, 0x17, 0x18 };
s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, DATA_MAKE_NUM(DATADIR_M409, 0x32), 0x17, 0x18 };
GXColor lbl_1_data_158[8] = {
{ 0xFF, 0x00, 0x00, 0xFF },
{ 0x00, 0x00, 0xFF, 0xFF },
@ -61,7 +61,7 @@ void fn_1_67E0(Process* arg0) {
}
lbl_1_bss_39C = var_r30 = omAddObjEx(arg0, 0x40, 8, 0xA, 4, fn_1_91C0);
fn_1_BF88(0x40, 0x40);
fn_1_DF20(0x28002C, 0x40, 0x40);
fn_1_DF20(DATA_MAKE_NUM(DATADIR_M409, 0x2C), 0x40, 0x40);
temp_r28 = (u8)frand();
for (var_r31 = 0; var_r31 < (temp_r28 + 1); var_r31++) {
@ -95,7 +95,7 @@ void fn_1_6928(omObjData* arg0) {
s32 var_r30;
s32 var_r28;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), 0x10000000);
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), MEMORY_DEFAULT_NUM);
arg0->data = var_r31;
var_r31->unk0 = arg0->work[0];
var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character;
@ -133,12 +133,12 @@ void fn_1_6928(omObjData* arg0) {
Hu3DModelPosSet(var_r30, var_r31->unk24.x, var_r31->unk24.y, var_r31->unk24.z);
Hu3DModelRotSet(var_r30, 0.0f, 30.0f, 0.0f);
CharModelStepTypeSet(var_r31->unk1, 0);
arg0->model[1] = var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum(0x280012, 0x10000000, HEAP_DATA));
arg0->model[1] = var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x12));
Hu3DModelHookSet(arg0->model[0], (char*)sp38[var_r31->unk1], arg0->model[1]);
var_r30 = fn_1_DA48(2, 1);
var_r31->unk57 = var_r30;
lbl_1_bss_F0.unk10[var_r30].unk30 = fn_1_8838;
fn_1_E2A8(var_r30, 0, 0x28002B, 0x40, 0x40);
fn_1_E2A8(var_r30, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2B), 0x40, 0x40);
fn_1_F098(var_r30, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, lbl_1_data_158[var_r31->unk1].a);
fn_1_F024(var_r30, 1, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, 0x98);
fn_1_E85C(var_r30, 0, var_r31->unk24.x, 100.0f + var_r31->unk24.y, -1200.0f);
@ -149,7 +149,7 @@ void fn_1_6928(omObjData* arg0) {
fn_1_F408(var_r30, 1, 1);
var_r30 = fn_1_DA48(1, 1);
fn_1_DEF4(var_r30, 0, 0);
fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002D);
fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2D));
var_r31->unk58 = var_r30;
lbl_1_bss_F0.unk10[var_r30].unk30 = &fn_1_8D6C;
fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4);
@ -158,27 +158,27 @@ void fn_1_6928(omObjData* arg0) {
fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0.5f, 0.5f, 1.0f);
var_r31->unk59 = 0;
var_r31->unk60 = 0;
var_r30 = espEntry(0x280031, 1, 0);
var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x31), 1, 0);
var_r31->unk55 = var_r30;
espColorSet(var_r30, 0, 0, 0);
espTPLvlSet(var_r30, 0.5);
espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y);
espAttrSet(var_r30, 4);
var_r30 = espEntry(0x280030, 1, 0);
var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x30), 1, 0);
var_r31->unk54 = var_r30;
espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y);
espAttrSet(var_r30, 4);
var_r30 = espEntry(var_r31->unk1 + 0x610000, 1, 0);
var_r30 = espEntry(var_r31->unk1 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), 1, 0);
var_r31->unk56 = var_r30;
espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 27.0f, lbl_1_data_178[var_r31->unk0].y - 20.0f);
espAttrSet(var_r30, 4);
for (var_r28 = 0; var_r28 < 3; var_r28++) {
var_r30 = espEntry(0x61000A, 0, 0);
var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0A), 0, 0);
var_r31->unk5A[var_r28][0] = var_r30;
espAttrSet(var_r30, 4);
espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y);
var_r30 = espEntry(0x61000B, 0, 0);
var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0B), 0, 0);
var_r31->unk5A[var_r28][1] = var_r30;
espAttrSet(var_r30, 4);
espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y);
@ -286,7 +286,7 @@ void fn_1_7344(omObjData* arg0) {
Hu3DModelAttrSet(arg0->model[1], 1);
temp_r23 = fn_1_DA48(1, 1);
fn_1_DEF4(temp_r23, 0, 0);
fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002C);
fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C));
fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 20.0f + temp_r31->unk24.x, 100.0f + temp_r31->unk24.y, temp_r31->unk24.z - 25.0f);
fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f);
fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x80000000);
@ -693,7 +693,7 @@ void fn_1_91C0(omObjData* arg0) {
Hu3DModelAttrSet(var_r28, 0x40000001);
for (var_r30 = 0; var_r30 < 3; var_r30++) {
arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + 0x28000F, 0x10000000, HEAP_DATA));
arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x0F), MEMORY_DEFAULT_NUM, HEAP_DATA));
}
Hu3DMotionSet(var_r28, arg0->motion[0]);
omSetTra(arg0, 419.99997f, 250.0f, -180.0f);
@ -704,7 +704,7 @@ void fn_1_91C0(omObjData* arg0) {
}
for (var_r30 = 0; var_r30 < 8; var_r30++) {
var_r28 = Hu3DModelCreateFile(var_r30 + 0x28001B);
var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x1B));
arg0->model[var_r30 + 1] = var_r28;
Hu3DModelAttrSet(var_r28, 1);
}
@ -712,7 +712,7 @@ void fn_1_91C0(omObjData* arg0) {
for (var_r31 = lbl_1_bss_10C, var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) {
var_r28 = Hu3DModelCreateFile(var_r30 + 0x280013);
var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x13));
var_r31->unk0 = var_r28;
Hu3DModelLayerSet(var_r28, 3);
var_r31->unkC.x = -400.0f + (100.0f * var_r30);
@ -728,7 +728,7 @@ void fn_1_91C0(omObjData* arg0) {
var_r31->unk30.z = var_r31->unkC.z;
var_r31->unk48 = var_r30;
fn_1_DEF4((var_r31->unk1 = fn_1_DA48(1, 1)), 0, 0);
fn_1_E2A8(lbl_1_bss_F0.unk6, 0, var_r30 + 0x280023, 0x40, 0x40);
fn_1_E2A8(lbl_1_bss_F0.unk6, 0, var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x23), 0x40, 0x40);
fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f);
fn_1_F024(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0xFF, 0xFF, 0xFF, 0xA0);
fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x40000004);
@ -892,7 +892,7 @@ void fn_1_962C(omObjData* arg0) {
}
var_r26 = fn_1_DA48(1, 1);
fn_1_DEF4(var_r26, 0, 0);
fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002C);
fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C));
fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z);
fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4.0f, 4.0f, 1.0f);
fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x80000000);
@ -1232,4 +1232,4 @@ f32 fn_1_BF38(s16 arg0) {
hsfMotionData = motionData->unk_04->motion;
length = hsfMotionData->len;
return length;
}
}

View file

@ -20,21 +20,53 @@ char *lbl_1_data_140[] = { "dmy-itemhook-r", "dmy-itemhook-r", "dmy-itemhook-r",
char *lbl_1_data_16C[] = { "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" };
s32 lbl_1_data_18C[]
= { DATA_MAKE_NUM(DATADIR_M410, 0), DATA_MAKE_NUM(DATADIR_M410, 1), DATA_MAKE_NUM(DATADIR_M410, 2), DATA_MAKE_NUM(DATADIR_M410, 3),
DATA_MAKE_NUM(DATADIR_M410, 4), DATA_MAKE_NUM(DATADIR_M410, 5), DATA_MAKE_NUM(DATADIR_M410, 6), DATA_MAKE_NUM(DATADIR_M410, 7) };
s32 lbl_1_data_18C[] = {
DATA_MAKE_NUM(DATADIR_M410, 0),
DATA_MAKE_NUM(DATADIR_M410, 1),
DATA_MAKE_NUM(DATADIR_M410, 2),
DATA_MAKE_NUM(DATADIR_M410, 3),
DATA_MAKE_NUM(DATADIR_M410, 4),
DATA_MAKE_NUM(DATADIR_M410, 5),
DATA_MAKE_NUM(DATADIR_M410, 6),
DATA_MAKE_NUM(DATADIR_M410, 7),
};
u32 lbl_1_data_1AC[] = { 0, DATA_MAKE_NUM(DATADIR_M410, 70), DATA_MAKE_NUM(DATADIR_M410, 22), DATA_MAKE_NUM(DATADIR_M410, 30),
DATA_MAKE_NUM(DATADIR_M410, 38), DATA_MAKE_NUM(DATADIR_M410, 46), DATA_MAKE_NUM(DATADIR_M410, 62), DATA_MAKE_NUM(DATADIR_M410, 54),
DATA_MAKE_NUM(DATADIR_E3SETUP, 23), DATA_MAKE_NUM(DATADIR_E3SETUP, 24) };
u32 lbl_1_data_1AC[] = {
0,
DATA_MAKE_NUM(DATADIR_M410, 70),
DATA_MAKE_NUM(DATADIR_M410, 22),
DATA_MAKE_NUM(DATADIR_M410, 30),
DATA_MAKE_NUM(DATADIR_M410, 38),
DATA_MAKE_NUM(DATADIR_M410, 46),
DATA_MAKE_NUM(DATADIR_M410, 62),
DATA_MAKE_NUM(DATADIR_M410, 54),
DATA_MAKE_NUM(DATADIR_E3SETUP, 23),
DATA_MAKE_NUM(DATADIR_E3SETUP, 24),
};
UnkM410Struct10 lbl_1_data_1D4[] = { { 0.0f, 0.0f, 12.0f, 0x40000001 }, { 0.0f, 0.0f, 1.1999999, 0 }, { 0.0f, 0.0f, 12.0f, 0x40000001 },
{ 0.0f, 0.0f, 6.0f, 0 }, { 6.0f, 0.0f, 4.7999997f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 },
{ 0.0f, 0.0f, 12.0f, 0 }, { 0.0f, 0.0f, 12.0f, 0 } };
UnkM410Struct10 lbl_1_data_1D4[] = {
{ 0.0f, 0.0f, 12.0f, 0x40000001 },
{ 0.0f, 0.0f, 1.1999999, 0 },
{ 0.0f, 0.0f, 12.0f, 0x40000001 },
{ 0.0f, 0.0f, 6.0f, 0 },
{ 6.0f, 0.0f, 4.7999997f, 0 },
{ 0.0f, 0.0f, 1.1999999f, 0 },
{ 0.0f, 0.0f, 1.1999999f, 0 },
{ 0.0f, 0.0f, 1.1999999f, 0 },
{ 0.0f, 0.0f, 12.0f, 0 },
{ 0.0f, 0.0f, 12.0f, 0 },
};
s32 lbl_1_data_274[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_MGCONST, 1), DATA_MAKE_NUM(DATADIR_MGCONST, 2),
DATA_MAKE_NUM(DATADIR_MGCONST, 3), DATA_MAKE_NUM(DATADIR_MGCONST, 4), DATA_MAKE_NUM(DATADIR_MGCONST, 5), DATA_MAKE_NUM(DATADIR_MGCONST, 6),
DATA_MAKE_NUM(DATADIR_MGCONST, 7) };
s32 lbl_1_data_274[] = {
DATA_MAKE_NUM(DATADIR_MGCONST, 0),
DATA_MAKE_NUM(DATADIR_MGCONST, 1),
DATA_MAKE_NUM(DATADIR_MGCONST, 2),
DATA_MAKE_NUM(DATADIR_MGCONST, 3),
DATA_MAKE_NUM(DATADIR_MGCONST, 4),
DATA_MAKE_NUM(DATADIR_MGCONST, 5),
DATA_MAKE_NUM(DATADIR_MGCONST, 6),
DATA_MAKE_NUM(DATADIR_MGCONST, 7),
};
GXColor lbl_1_data_294[] = {
{ 102, 0, 0, 255 },
@ -144,9 +176,9 @@ void fn_1_80A0(omObjData *object)
for (var_r29 = 0; var_r29 < 10; var_r29++) {
if (lbl_1_data_1AC[var_r29] < 0x10000) {
object->motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_1AC[var_r29]);
} else {
object->motion[var_r29]
= Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r28 + lbl_1_data_1AC[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA));
}
else {
object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_1AC[var_r29]);
}
}
CharModelMotionDataClose(var_r28);
@ -178,40 +210,40 @@ void fn_1_8414(omObjData *object)
UnkM410Struct7 sp8 = { { 42, 78, 108, 125 } };
switch (var_r31->unk_34) {
case 0:
fn_1_9F70(object, 0);
if (fn_1_2804()) {
var_r31->unk_38 = 0;
var_r31->unk_34++;
}
break;
case 1:
if (var_r31->unk_38 >= sp8.unk_00[var_r31->unk_04]) {
var_r31->unk_28 = 1;
var_r31->unk_34++;
}
break;
case 2:
fn_1_96F4(object);
if (var_r31->unk_38 >= (2.8f + 0.00040000002f * frandmod(1000)) * 60.0f) {
var_r31->unk_2C = 1;
var_r31->unk_38 = 0;
var_r31->unk_34++;
}
break;
case 3:
if (var_r31->unk_24) {
if (var_r31->unk_38 >= 27.0f) {
var_r31->unk_30 = 1;
case 0:
fn_1_9F70(object, 0);
if (fn_1_2804()) {
var_r31->unk_38 = 0;
var_r31->unk_34++;
}
}
if (fn_1_9A90(object)) {
var_r31->unk_34++;
}
break;
case 4:
fn_1_9F70(object, 0);
break;
break;
case 1:
if (var_r31->unk_38 >= sp8.unk_00[var_r31->unk_04]) {
var_r31->unk_28 = 1;
var_r31->unk_34++;
}
break;
case 2:
fn_1_96F4(object);
if (var_r31->unk_38 >= (2.8f + 0.00040000002f * frandmod(1000)) * 60.0f) {
var_r31->unk_2C = 1;
var_r31->unk_38 = 0;
var_r31->unk_34++;
}
break;
case 3:
if (var_r31->unk_24) {
if (var_r31->unk_38 >= 27.0f) {
var_r31->unk_30 = 1;
}
}
if (fn_1_9A90(object)) {
var_r31->unk_34++;
}
break;
case 4:
fn_1_9F70(object, 0);
break;
}
}
fn_1_8A10(object);
@ -241,35 +273,37 @@ void fn_1_8678(omObjData *object)
}
}
switch (var_r31->unk_34) {
case 0:
if (fn_1_9F70(object, 0)) {
var_r31->unk_28 = 1;
}
fn_1_96F4(object);
if (var_r31->unk_18) {
var_r31->unk_34++;
}
break;
case 1:
if (!var_r31->unk_1C && !var_r31->unk_20) {
if (var_r31->unk_10 & 0x100) {
if (fn_1_281C() == 2) {
var_r31->unk_2C = 1;
}
} else if (var_r31->unk_10 & 0x200 && fn_1_281C() == 2) {
if (fabs(fn_1_30F0(var_r31->unk_3C, var_r31->unk_40)) < 45.0) {
var_r31->unk_30 = 1;
}
case 0:
if (fn_1_9F70(object, 0)) {
var_r31->unk_28 = 1;
}
var_r29 = 1;
} else if (var_r31->unk_24 && var_r31->unk_10 & 0x200) {
var_r31->unk_30 = 1;
}
if (fn_1_9A90(object) || fn_1_9C84(object)) {
var_r31->unk_36 = 0;
var_r31->unk_34--;
}
break;
fn_1_96F4(object);
if (var_r31->unk_18) {
var_r31->unk_34++;
}
break;
case 1:
if (!var_r31->unk_1C && !var_r31->unk_20) {
if (var_r31->unk_10 & 0x100) {
if (fn_1_281C() == 2) {
var_r31->unk_2C = 1;
}
}
else if (var_r31->unk_10 & 0x200 && fn_1_281C() == 2) {
if (fabs(fn_1_30F0(var_r31->unk_3C, var_r31->unk_40)) < 45.0) {
var_r31->unk_30 = 1;
}
}
var_r29 = 1;
}
else if (var_r31->unk_24 && var_r31->unk_10 & 0x200) {
var_r31->unk_30 = 1;
}
if (fn_1_9A90(object) || fn_1_9C84(object)) {
var_r31->unk_36 = 0;
var_r31->unk_34--;
}
break;
}
fn_1_8A10(object);
if (fn_1_281C() == 3 && var_r29) {
@ -286,32 +320,33 @@ void fn_1_88D8(omObjData *object)
var_r31 = object->data;
fn_1_8A10(object);
switch (var_r31->unk_34) {
case 0:
var_r31->unk_34++;
return;
case 1:
if (fn_1_2834() == 1) {
Hu3DModelHookReset(object->model[0]);
Hu3DModelAttrSet(object->model[1], 1);
if ((1 << object->work[0]) & fn_1_2864()) {
fn_1_9E0C(object, 8);
} else {
fn_1_9E0C(object, 9);
case 0:
var_r31->unk_34++;
return;
case 1:
if (fn_1_2834() == 1) {
Hu3DModelHookReset(object->model[0]);
Hu3DModelAttrSet(object->model[1], 1);
if ((1 << object->work[0]) & fn_1_2864()) {
fn_1_9E0C(object, 8);
}
else {
fn_1_9E0C(object, 9);
}
var_r31->unk_40 = 0.0f;
var_r31->unk_44 = 0.0f;
var_r31->unk_48 = 0.005f;
var_r31->unk_34++;
}
var_r31->unk_40 = 0.0f;
var_r31->unk_44 = 0.0f;
var_r31->unk_48 = 0.005f;
var_r31->unk_34++;
}
break;
case 2:
if (fn_1_9EFC(object)) {
fn_1_28AC(object->work[0]);
var_r31->unk_34++;
}
break;
default:
break;
break;
case 2:
if (fn_1_9EFC(object)) {
fn_1_28AC(object->work[0]);
var_r31->unk_34++;
}
break;
default:
break;
}
}
@ -351,72 +386,75 @@ void fn_1_8ABC(omObjData *object)
var_r31 = object->data;
var_r31->unk_10 = 0;
switch (var_r31->unk_50) {
case 0:
if (!var_r31->unk_18) {
return;
}
if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) {
var_f28 = 42.0f;
if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) {
var_f29 = 280.0f;
var_r31->unk_54 = 31.8f + frandmod(6);
} else {
var_f29 = 419.99997f;
var_r31->unk_54 = 9.0f + frandmod(15);
case 0:
if (!var_r31->unk_18) {
return;
}
var_f27 = var_f28 + var_r31->unk_54;
var_r29 = -1;
var_f31 = 10000.0f;
for (var_r30 = 0; var_r30 < 18; var_r30++) {
fn_1_7888(var_r30, (s32)var_f27, &sp28);
if (fabs(sp28.y - var_f29) > 10.0) {
continue;
if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) {
var_f28 = 42.0f;
if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) {
var_f29 = 280.0f;
var_r31->unk_54 = 31.8f + frandmod(6);
}
fn_1_7840(var_r30, &sp34);
if (fabs(sp34.x) < 1.9166667461395264) {
continue;
else {
var_f29 = 419.99997f;
var_r31->unk_54 = 9.0f + frandmod(15);
}
var_f30 = sp28.x - var_r31->unk_88.x;
if (sp34.x >= 0.0f) {
if (var_f30 < 0.0f) {
var_f27 = var_f28 + var_r31->unk_54;
var_r29 = -1;
var_f31 = 10000.0f;
for (var_r30 = 0; var_r30 < 18; var_r30++) {
fn_1_7888(var_r30, (s32)var_f27, &sp28);
if (fabs(sp28.y - var_f29) > 10.0) {
continue;
}
fn_1_7840(var_r30, &sp34);
if (fabs(sp34.x) < 1.9166667461395264) {
continue;
}
var_f30 = sp28.x - var_r31->unk_88.x;
if (sp34.x >= 0.0f) {
if (var_f30 < 0.0f) {
if (fabs(var_f30) < var_f31) {
var_r29 = var_r30;
var_f31 = fabs(var_f30);
}
}
}
else if (var_f30 > 0.0f) {
if (fabs(var_f30) < var_f31) {
var_r29 = var_r30;
var_f31 = fabs(var_f30);
}
}
} else if (var_f30 > 0.0f) {
if (fabs(var_f30) < var_f31) {
var_r29 = var_r30;
var_f31 = fabs(var_f30);
}
}
if (var_r29 < 0) {
return;
}
fn_1_7840(var_r29, &sp34);
var_f31 /= fabs(sp34.x);
var_r31->unk_52 = var_f27 + var_f31 - var_f28 - var_r31->unk_54;
}
if (var_r29 < 0) {
return;
else {
var_r31->unk_52 = 24.0f + frandmod(36);
var_r31->unk_54 = 12.0f + frandmod(18);
}
fn_1_7840(var_r29, &sp34);
var_f31 /= fabs(sp34.x);
var_r31->unk_52 = var_f27 + var_f31 - var_f28 - var_r31->unk_54;
} else {
var_r31->unk_52 = 24.0f + frandmod(36);
var_r31->unk_54 = 12.0f + frandmod(18);
}
var_r31->unk_50++;
return;
case 1:
if (!var_r31->unk_52) {
var_r31->unk_10 |= 256;
var_r31->unk_50++;
}
var_r31->unk_52--;
return;
case 2:
if (!var_r31->unk_54) {
var_r31->unk_10 |= 512;
var_r31->unk_50 = 0;
}
var_r31->unk_54--;
break;
return;
case 1:
if (!var_r31->unk_52) {
var_r31->unk_10 |= 256;
var_r31->unk_50++;
}
var_r31->unk_52--;
return;
case 2:
if (!var_r31->unk_54) {
var_r31->unk_10 |= 512;
var_r31->unk_50 = 0;
}
var_r31->unk_54--;
break;
}
}
@ -480,7 +518,8 @@ void fn_1_9040(omObjData *object)
sp2C.x = (0.016666668f * (sp20.x - var_r31->unk_70.x)) / var_f31;
sp2C.y = 0.016666668f * var_f27;
sp2C.z = (0.016666668f * (sp20.z - var_r31->unk_70.z)) / var_f31;
} else {
}
else {
if (var_r31->unk_20 != 0) {
var_f30 = -450.0f + (0.05f * frandmod(1000));
var_f29 = -100.0f;
@ -488,7 +527,8 @@ void fn_1_9040(omObjData *object)
sp20.x = var_r31->unk_70.x + (0.05f * (frandmod(2000) - 1000));
sp20.y = var_f29;
sp20.z = var_f30;
} else {
}
else {
var_f30 = -700.0f;
var_f29 = 420.0f;
if (var_r31->unk_68 < -600.0f) {
@ -516,7 +556,8 @@ void fn_1_9040(omObjData *object)
}
if (var_r28 >= 0 && var_f30 <= var_f25) {
fn_1_7888(var_r28, var_r27, &sp20);
} else {
}
else {
sp20.x = var_r31->unk_88.x;
sp20.y = var_f29;
sp20.z = -700.0f;
@ -585,7 +626,8 @@ void fn_1_96F4(omObjData *object)
}
if (var_r31->unk_18 != 0) {
Hu3DModelPosSet(object->model[1], 0.0f, 0.0f, 0.0f);
} else {
}
else {
Hu3DModelPosSet(object->model[1], var_r31->unk_70.x, var_r31->unk_70.y, var_r31->unk_70.z);
}
if (var_r31->unk_36 >= (60.0f * (var_f31 - 0.17f))) {
@ -621,7 +663,8 @@ s32 fn_1_9A90(omObjData *object)
var_r31->unk_1C = 0;
if (var_r31->unk_18) {
fn_1_9E0C(object, 7);
} else {
}
else {
var_r29 = 1;
fn_1_9E0C(object, 6);
}
@ -636,7 +679,8 @@ s32 fn_1_9A90(omObjData *object)
var_r31->unk_30 = 0;
}
}
} else if (var_r31->unk_18) {
}
else if (var_r31->unk_18) {
fn_1_9F70(object, 2);
}
return var_r29;
@ -658,12 +702,14 @@ s32 fn_1_9C84(omObjData *object)
var_r31->unk_30 = 0;
var_r31->unk_20 = 1;
var_r31->unk_36 = 0;
} else if (var_r31->unk_20) {
}
else if (var_r31->unk_20) {
if (var_r31->unk_18) {
if (var_r31->unk_36 >= 18.0f) {
fn_1_9040(object);
}
} else if (var_r31->unk_36 >= 30.0f && fn_1_9EFC(object)) {
}
else if (var_r31->unk_36 >= 30.0f && fn_1_9EFC(object)) {
var_r31->unk_30 = 0;
var_r31->unk_2C = 0;
var_r31->unk_20 = 0;
@ -786,49 +832,50 @@ void fn_1_A3C0(omObjData *object)
for (var_r29 = 0; var_r29 < 4; var_r29++, var_r31++) {
switch (var_r31->unk_14) {
case 0:
if (fn_1_281C() == 2) {
var_r31->unk_14 = 1;
}
break;
case 1:
var_r31->unk_18 = 0;
var_r31->unk_20 = var_r31->unk_08 % 10;
var_r31->unk_1C = (var_r31->unk_08 / 10) % 10;
espDispOn(var_r31->unk_3C[0]);
espDispOn(var_r31->unk_3C[1]);
espDispOn(var_r31->unk_40);
espDispOn(var_r31->unk_42);
espDispOn(var_r31->unk_44);
espBankSet(var_r31->unk_3C[0], var_r31->unk_1C);
espBankSet(var_r31->unk_3C[1], var_r31->unk_20);
espBankSet(var_r31->unk_40, var_r31->unk_24);
if (var_r31->unk_00) {
var_r31->unk_2C[0] = var_r31->unk_2C[1] = 0.5f;
var_r31->unk_14++;
} else {
var_r31->unk_00 = 1;
var_r31->unk_2C[0] = var_r31->unk_2C[1] = 1.0f;
var_r31->unk_14 += 3;
case 0:
if (fn_1_281C() == 2) {
var_r31->unk_14 = 1;
}
break;
case 1:
var_r31->unk_18 = 0;
var_r31->unk_20 = var_r31->unk_08 % 10;
var_r31->unk_1C = (var_r31->unk_08 / 10) % 10;
espDispOn(var_r31->unk_3C[0]);
espDispOn(var_r31->unk_3C[1]);
espDispOn(var_r31->unk_40);
espDispOn(var_r31->unk_42);
espDispOn(var_r31->unk_44);
espBankSet(var_r31->unk_3C[0], var_r31->unk_1C);
espBankSet(var_r31->unk_3C[1], var_r31->unk_20);
espBankSet(var_r31->unk_40, var_r31->unk_24);
if (var_r31->unk_00) {
var_r31->unk_2C[0] = var_r31->unk_2C[1] = 0.5f;
var_r31->unk_14++;
}
else {
var_r31->unk_00 = 1;
var_r31->unk_2C[0] = var_r31->unk_2C[1] = 1.0f;
var_r31->unk_14 += 3;
break;
}
case 2:
var_f31 = var_r31->unk_2C[0];
var_f31 += 0.10000001f;
if (var_f31 >= 1.5f) {
var_r31->unk_14++;
}
var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31;
break;
case 3:
var_f31 = var_r31->unk_2C[0];
var_f31 -= 0.10000001f;
if (var_f31 <= 1.0f) {
var_f31 = 1.0f;
var_r31->unk_14 = var_r31->unk_14 + 1;
}
var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31;
break;
}
case 2:
var_f31 = var_r31->unk_2C[0];
var_f31 += 0.10000001f;
if (var_f31 >= 1.5f) {
var_r31->unk_14++;
}
var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31;
break;
case 3:
var_f31 = var_r31->unk_2C[0];
var_f31 -= 0.10000001f;
if (var_f31 <= 1.0f) {
var_f31 = 1.0f;
var_r31->unk_14 = var_r31->unk_14 + 1;
}
var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31;
break;
}
var_r31->unk_18++;
@ -845,7 +892,8 @@ void fn_1_A3C0(omObjData *object)
var_r30->unk_00++;
if (var_r30->unk_00 < 12.0f) {
var_r30->unk_04 += 0.058333337f;
} else {
}
else {
var_r30->unk_04 += 0.025000002f;
var_r30->unk_0C -= 0.050000004f;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,40 +1,35 @@
#include "game/audio.h"
#include "game/chrman.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/hsfanim.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/minigame_seq.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/hsfman.h"
#include "game/hsfanim.h"
#include "game/hsfmotion.h"
#include "game/audio.h"
#include "game/wipe.h"
#include "game/sprite.h"
#include "game/chrman.h"
#include "game/pad.h"
#include "game/gamework_data.h"
#include "game/minigame_seq.h"
#include "game/frand.h"
#include "game/sprite.h"
#include "game/wipe.h"
#include "math.h"
#include "ext_math.h"
#include "math.h"
#include "REL/m416Dll.h"
GXColor lbl_1_data_268 = { 0, 0, 0, 255 };
Vec lbl_1_data_26C[8] = {
{ 70, 0, 70 },
{ 70, 0, -70 },
{ -70, 0, -70 },
{ -70, 0, 70 },
{ 70, 0, 70 },
{ 70, 0, -70 },
{ -70, 0, -70 },
{ -70, 0, 70 },
};
Vec lbl_1_data_2CC[2] = {
{ 370, 615, -245 },
{ -370, 615, -245 }
};
float lbl_1_data_2E4[2] = {
0, 1
{ 70, 0, 70 },
{ 70, 0, -70 },
{ -70, 0, -70 },
{ -70, 0, 70 },
{ 70, 0, 70 },
{ 70, 0, -70 },
{ -70, 0, -70 },
{ -70, 0, 70 },
};
Vec lbl_1_data_2CC[2] = { { 370, 615, -245 }, { -370, 615, -245 } };
float lbl_1_data_2E4[2] = { 0, 1 };
omObjData *lbl_1_bss_118C;
omObjData *lbl_1_bss_1188;
@ -58,274 +53,272 @@ void fn_1_8FF0(void);
void fn_1_79D0(Process *objman)
{
lbl_1_bss_118C = omAddObjEx(objman, 20, 2, 0, -1, fn_1_7A74);
lbl_1_bss_1188 = omAddObjEx(objman, 20, 10, 0, -1, fn_1_7F30);
fn_1_8EA0();
lbl_1_bss_118C = omAddObjEx(objman, 20, 2, 0, -1, fn_1_7A74);
lbl_1_bss_1188 = omAddObjEx(objman, 20, 10, 0, -1, fn_1_7F30);
fn_1_8EA0();
}
void fn_1_7A54(void)
{
fn_1_8FF0();
fn_1_8FF0();
}
void fn_1_7A74(omObjData *object)
{
s16 i;
object->model[0] = Hu3DModelCreateFile(0x2F0000);
Hu3DModelShadowMapSet(object->model[0]);
Hu3DModelLayerSet(object->model[0], 0);
object->trans.x = 0;
object->trans.y = 0;
object->trans.z = 0;
fn_1_8EB4(object->model[0]);
for(i=0; i<2; i++) {
lbl_1_bss_1174[i+2] = Hu3DLLightCreate(object->model[0], 0, 0, 0, 0, 0, 0, 0, 0, 0);
Hu3DLLightStaticSet(object->model[0], lbl_1_bss_1174[i+2], 1);
Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i+2], 45, 0.8, 3);
Hu3DLLightColorSet(object->model[0], lbl_1_bss_1174[i+2], 255, 160, 0, 255);
Hu3DLLightPosSet(object->model[0], lbl_1_bss_1174[i+2], lbl_1_data_2CC[i].x, 475, lbl_1_data_2CC[i].z, 0, 1, 0);
}
object->model[1] = Hu3DHookFuncCreate(fn_1_89BC);
Hu3DModelLayerSet(object->model[1], 1);
lbl_1_bss_1184 = GXGetTexBufferSize(640, 480, GX_TF_RGBA8, GX_FALSE, 0);
lbl_1_bss_1180 = HuMemDirectMallocNum(HEAP_DATA, lbl_1_bss_1184, MEMORY_DEFAULT_NUM);
memset(lbl_1_bss_1180, 0, lbl_1_bss_1184);
object->func = fn_1_7D74;
s16 i;
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x00));
Hu3DModelShadowMapSet(object->model[0]);
Hu3DModelLayerSet(object->model[0], 0);
object->trans.x = 0;
object->trans.y = 0;
object->trans.z = 0;
fn_1_8EB4(object->model[0]);
for (i = 0; i < 2; i++) {
lbl_1_bss_1174[i + 2] = Hu3DLLightCreate(object->model[0], 0, 0, 0, 0, 0, 0, 0, 0, 0);
Hu3DLLightStaticSet(object->model[0], lbl_1_bss_1174[i + 2], 1);
Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i + 2], 45, 0.8, 3);
Hu3DLLightColorSet(object->model[0], lbl_1_bss_1174[i + 2], 255, 160, 0, 255);
Hu3DLLightPosSet(object->model[0], lbl_1_bss_1174[i + 2], lbl_1_data_2CC[i].x, 475, lbl_1_data_2CC[i].z, 0, 1, 0);
}
object->model[1] = Hu3DHookFuncCreate(fn_1_89BC);
Hu3DModelLayerSet(object->model[1], 1);
lbl_1_bss_1184 = GXGetTexBufferSize(640, 480, GX_TF_RGBA8, GX_FALSE, 0);
lbl_1_bss_1180 = HuMemDirectMallocNum(HEAP_DATA, lbl_1_bss_1184, MEMORY_DEFAULT_NUM);
memset(lbl_1_bss_1180, 0, lbl_1_bss_1184);
object->func = fn_1_7D74;
}
void fn_1_7D74(omObjData *object)
{
s32 i;
for(i=0; i<2; i++) {
Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i+2], (15*sind(object->work[i]))+45, 0.8, 3);
object->work[i] += 8.0f;
if(object->work[i] > 360.0f) {
object->work[i] -= 360.0f;
}
}
s32 i;
for (i = 0; i < 2; i++) {
Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i + 2], (15 * sind(object->work[i])) + 45, 0.8, 3);
object->work[i] += 8.0f;
if (object->work[i] > 360.0f) {
object->work[i] -= 360.0f;
}
}
}
void fn_1_7F30(omObjData *object)
{
Mtx sp68;
Mtx sp38;
Mtx sp8;
s32 temp_r30;
Vec *temp_r29;
s32 temp_r28;
s32 temp_r27;
s16 temp_r26;
s16 temp_r25;
s16 temp_r24;
AnimData *temp_r23;
object->stat |= 0x100;
for(temp_r30=0; temp_r30<2; temp_r30++) {
if(temp_r30 == 0) {
temp_r25 = Hu3DModelCreateFile(0x2F0001);
temp_r26 = temp_r25;
} else {
temp_r24 = Hu3DModelLink(temp_r25);
temp_r26 = temp_r24;
}
object->model[temp_r30] = temp_r26;
Hu3DModelLayerSet(temp_r26, 2);
fn_1_8EB4(object->model[temp_r30]);
Hu3DModelPosSet(object->model[temp_r30], lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z);
}
temp_r23 = HuSprAnimReadFile(0x2F0006);
temp_r29 = &lbl_1_data_26C[0];
for(temp_r30=0; temp_r30<2; temp_r30++) {
for(temp_r27=0; temp_r27<4; temp_r27++, temp_r29++) {
temp_r28 = (temp_r30*4)+2;
temp_r28 = temp_r27+temp_r28;
object->model[temp_r28] = Hu3DParticleCreate(temp_r23, 50);
Hu3DParticleHookSet(object->model[temp_r28], fn_1_613C);
Hu3DParticleBlendModeSet(object->model[temp_r28], 1);
Hu3DModelLayerSet(object->model[temp_r28], 6);
Hu3DModelScaleSet(object->model[temp_r28], 0.5f, 0.7f, 0.5f);
MTXTrans(sp68, lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z);
MTXTrans(sp38, 0, -150, 0);
MTXConcat(sp68, sp38, sp68);
MTXTrans(sp8, temp_r29->x, temp_r29->y, temp_r29->z);
MTXConcat(sp68, sp8, sp68);
Hu3DModelPosSet(object->model[temp_r28], sp68[0][3], sp68[1][3], sp68[2][3]);
}
}
for(temp_r30=0; temp_r30<2; temp_r30++) {
lbl_1_bss_1174[temp_r30] = Hu3DLLightCreate(object->model[temp_r30], 0, 0, 0, 0, 0, 0, 0, 0, 0);
Hu3DLLightStaticSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1);
Hu3DLLightPointSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1000, 0.8, 3);
Hu3DLLightColorSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 255, 160, 0, 255);
Hu3DLLightPosSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], lbl_1_data_2CC[temp_r30].x, 475, lbl_1_data_2CC[temp_r30].z, 0, 1, 0);
}
object->work[0] = 0;
object->work[1] = 45;
lbl_1_bss_117C = 0;
object->func = fn_1_83B4;
Mtx sp68;
Mtx sp38;
Mtx sp8;
s32 temp_r30;
Vec *temp_r29;
s32 temp_r28;
s32 temp_r27;
s16 temp_r26;
s16 temp_r25;
s16 temp_r24;
AnimData *temp_r23;
object->stat |= 0x100;
for (temp_r30 = 0; temp_r30 < 2; temp_r30++) {
if (temp_r30 == 0) {
temp_r25 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x01));
temp_r26 = temp_r25;
}
else {
temp_r24 = Hu3DModelLink(temp_r25);
temp_r26 = temp_r24;
}
object->model[temp_r30] = temp_r26;
Hu3DModelLayerSet(temp_r26, 2);
fn_1_8EB4(object->model[temp_r30]);
Hu3DModelPosSet(object->model[temp_r30], lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z);
}
temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x06));
temp_r29 = &lbl_1_data_26C[0];
for (temp_r30 = 0; temp_r30 < 2; temp_r30++) {
for (temp_r27 = 0; temp_r27 < 4; temp_r27++, temp_r29++) {
temp_r28 = (temp_r30 * 4) + 2;
temp_r28 = temp_r27 + temp_r28;
object->model[temp_r28] = Hu3DParticleCreate(temp_r23, 50);
Hu3DParticleHookSet(object->model[temp_r28], fn_1_613C);
Hu3DParticleBlendModeSet(object->model[temp_r28], 1);
Hu3DModelLayerSet(object->model[temp_r28], 6);
Hu3DModelScaleSet(object->model[temp_r28], 0.5f, 0.7f, 0.5f);
MTXTrans(sp68, lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z);
MTXTrans(sp38, 0, -150, 0);
MTXConcat(sp68, sp38, sp68);
MTXTrans(sp8, temp_r29->x, temp_r29->y, temp_r29->z);
MTXConcat(sp68, sp8, sp68);
Hu3DModelPosSet(object->model[temp_r28], sp68[0][3], sp68[1][3], sp68[2][3]);
}
}
for (temp_r30 = 0; temp_r30 < 2; temp_r30++) {
lbl_1_bss_1174[temp_r30] = Hu3DLLightCreate(object->model[temp_r30], 0, 0, 0, 0, 0, 0, 0, 0, 0);
Hu3DLLightStaticSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1);
Hu3DLLightPointSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1000, 0.8, 3);
Hu3DLLightColorSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 255, 160, 0, 255);
Hu3DLLightPosSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], lbl_1_data_2CC[temp_r30].x, 475, lbl_1_data_2CC[temp_r30].z, 0, 1, 0);
}
object->work[0] = 0;
object->work[1] = 45;
lbl_1_bss_117C = 0;
object->func = fn_1_83B4;
}
void fn_1_83B4(omObjData *object)
{
float temp_f31;
s32 temp_r31;
Vec *temp_r29;
s32 temp_r28;
s32 temp_r27;
ModelData *temp_r26;
Mtx sp130[2];
Mtx sp100;
Mtx spD0;
Mtx spA0;
Mtx sp70;
Mtx sp40;
Mtx sp10;
float sp8[2];
MTXIdentity(sp100);
MTXIdentity(sp130[0]);
MTXIdentity(sp130[1]);
MTXIdentity(spD0);
MTXIdentity(spA0);
MTXIdentity(sp70);
MTXIdentity(sp40);
MTXIdentity(sp10);
lbl_1_bss_117C = fmod(1+lbl_1_bss_117C, 360);
sp8[0] = 20*sind(lbl_1_bss_117C);
sp8[1] = 20*cosd(lbl_1_bss_117C);
if(fn_1_1240() == 6) {
for(temp_r31=0; temp_r31<2; temp_r31++) {
temp_f31 = sp8[temp_r31]-lbl_1_bss_116C[temp_r31];
if(temp_f31*lbl_1_data_2E4[temp_r31] <= 0.0f) {
temp_r26 = &Hu3DData[object->model[temp_r31]];
HuAudFXEmiterPlay(1467, &temp_r26->pos);
}
lbl_1_data_2E4[temp_r31] = temp_f31;
}
}
lbl_1_bss_116C[0] = sp8[0];
lbl_1_bss_116C[1] = sp8[1];
temp_r29 = &lbl_1_data_26C[0];
for(temp_r31=0; temp_r31<2; temp_r31++) {
MTXRotDeg(sp130[temp_r31], 'y', lbl_1_bss_116C[temp_r31]);
for(temp_r28=0; temp_r28<4; temp_r28++, temp_r29++) {
temp_r27 = (temp_r31*4)+2;
temp_r27 = temp_r28+temp_r27;
MTXTrans(spA0, lbl_1_data_2CC[temp_r31].x, lbl_1_data_2CC[temp_r31].y, lbl_1_data_2CC[temp_r31].z);
MTXTrans(sp70, 0, -150, 0);
MTXConcat(spA0, sp70, spA0);
MTXTrans(sp40, temp_r29->x, temp_r29->y, temp_r29->z);
MTXConcat(sp130[temp_r31], sp40, sp10);
MTXConcat(spA0, sp10, spA0);
Hu3DModelPosSet(object->model[temp_r27], spA0[0][3], spA0[1][3], spA0[2][3]);
}
}
Hu3DModelRotSet(object->model[0], 0, lbl_1_bss_116C[0], 0);
Hu3DModelRotSet(object->model[1], 0, lbl_1_bss_116C[1], 0);
for(temp_r31=0; temp_r31<2; temp_r31++) {
Hu3DLLightPointSet(object->model[temp_r31], lbl_1_bss_1174[temp_r31], (15*sind(object->work[temp_r31]))+45, 0.9, 3);
object->work[temp_r31] += 8.0f;
if(object->work[temp_r31] > 360.0f) {
object->work[temp_r31] -= 360.0f;
}
}
float temp_f31;
s32 temp_r31;
Vec *temp_r29;
s32 temp_r28;
s32 temp_r27;
ModelData *temp_r26;
Mtx sp130[2];
Mtx sp100;
Mtx spD0;
Mtx spA0;
Mtx sp70;
Mtx sp40;
Mtx sp10;
float sp8[2];
MTXIdentity(sp100);
MTXIdentity(sp130[0]);
MTXIdentity(sp130[1]);
MTXIdentity(spD0);
MTXIdentity(spA0);
MTXIdentity(sp70);
MTXIdentity(sp40);
MTXIdentity(sp10);
lbl_1_bss_117C = fmod(1 + lbl_1_bss_117C, 360);
sp8[0] = 20 * sind(lbl_1_bss_117C);
sp8[1] = 20 * cosd(lbl_1_bss_117C);
if (fn_1_1240() == 6) {
for (temp_r31 = 0; temp_r31 < 2; temp_r31++) {
temp_f31 = sp8[temp_r31] - lbl_1_bss_116C[temp_r31];
if (temp_f31 * lbl_1_data_2E4[temp_r31] <= 0.0f) {
temp_r26 = &Hu3DData[object->model[temp_r31]];
HuAudFXEmiterPlay(1467, &temp_r26->pos);
}
lbl_1_data_2E4[temp_r31] = temp_f31;
}
}
lbl_1_bss_116C[0] = sp8[0];
lbl_1_bss_116C[1] = sp8[1];
temp_r29 = &lbl_1_data_26C[0];
for (temp_r31 = 0; temp_r31 < 2; temp_r31++) {
MTXRotDeg(sp130[temp_r31], 'y', lbl_1_bss_116C[temp_r31]);
for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r29++) {
temp_r27 = (temp_r31 * 4) + 2;
temp_r27 = temp_r28 + temp_r27;
MTXTrans(spA0, lbl_1_data_2CC[temp_r31].x, lbl_1_data_2CC[temp_r31].y, lbl_1_data_2CC[temp_r31].z);
MTXTrans(sp70, 0, -150, 0);
MTXConcat(spA0, sp70, spA0);
MTXTrans(sp40, temp_r29->x, temp_r29->y, temp_r29->z);
MTXConcat(sp130[temp_r31], sp40, sp10);
MTXConcat(spA0, sp10, spA0);
Hu3DModelPosSet(object->model[temp_r27], spA0[0][3], spA0[1][3], spA0[2][3]);
}
}
Hu3DModelRotSet(object->model[0], 0, lbl_1_bss_116C[0], 0);
Hu3DModelRotSet(object->model[1], 0, lbl_1_bss_116C[1], 0);
for (temp_r31 = 0; temp_r31 < 2; temp_r31++) {
Hu3DLLightPointSet(object->model[temp_r31], lbl_1_bss_1174[temp_r31], (15 * sind(object->work[temp_r31])) + 45, 0.9, 3);
object->work[temp_r31] += 8.0f;
if (object->work[temp_r31] > 360.0f) {
object->work[temp_r31] -= 360.0f;
}
}
}
void fn_1_8904(void *arg0, u8 arg1)
{
GXSetTexCopySrc(0, 0, 640, 480);
GXSetTexCopyDst(640, 480, GX_TF_RGBA8, GX_FALSE);
GXSetCopyClear(BGColor, 0xFFFFFF);
GXCopyTex(arg0, arg1);
DCFlushRange(arg0, lbl_1_bss_1184);
GXSetTexCopySrc(0, 0, 640, 480);
GXSetTexCopyDst(640, 480, GX_TF_RGBA8, GX_FALSE);
GXSetCopyClear(BGColor, 0xFFFFFF);
GXCopyTex(arg0, arg1);
DCFlushRange(arg0, lbl_1_bss_1184);
}
void fn_1_89BC(ModelData *model, Mtx mtx)
{
Mtx44 sp34;
GXTexObj sp14;
MTXOrtho(sp34, 0, 480, 0, 576, 0, 1000);
GXSetProjection(sp34, GX_ORTHOGRAPHIC);
MTXIdentity(mtx);
GXLoadPosMtxImm(mtx, GX_PNMTX0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);
GXSetChanAmbColor(GX_COLOR0A0, lbl_1_data_268);
GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_268);
GXSetNumTexGens(1);
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
GXSetNumTevStages(1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXInitTexObj(&sp14, lbl_1_bss_1180, 640, 480, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXLoadTexObj(&sp14, GX_TEXMAP0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_INVSRCALPHA, GX_BL_SRCALPHA, GX_LO_NOOP);
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(0, 0, -10);
GXTexCoord2f32(0, 0);
GXPosition3f32(576, 0, -10);
GXTexCoord2f32(1, 0);
GXPosition3f32(576, 480, -10);
GXTexCoord2f32(1, 1);
GXPosition3f32(0, 480, -10);
GXTexCoord2f32(0, 1);
GXEnd();
fn_1_8904(lbl_1_bss_1180, GX_FALSE);
Mtx44 sp34;
GXTexObj sp14;
MTXOrtho(sp34, 0, 480, 0, 576, 0, 1000);
GXSetProjection(sp34, GX_ORTHOGRAPHIC);
MTXIdentity(mtx);
GXLoadPosMtxImm(mtx, GX_PNMTX0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);
GXSetChanAmbColor(GX_COLOR0A0, lbl_1_data_268);
GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_268);
GXSetNumTexGens(1);
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY);
GXSetNumTevStages(1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXInitTexObj(&sp14, lbl_1_bss_1180, 640, 480, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXLoadTexObj(&sp14, GX_TEXMAP0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_INVSRCALPHA, GX_BL_SRCALPHA, GX_LO_NOOP);
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(0, 0, -10);
GXTexCoord2f32(0, 0);
GXPosition3f32(576, 0, -10);
GXTexCoord2f32(1, 0);
GXPosition3f32(576, 480, -10);
GXTexCoord2f32(1, 1);
GXPosition3f32(0, 480, -10);
GXTexCoord2f32(0, 1);
GXEnd();
fn_1_8904(lbl_1_bss_1180, GX_FALSE);
}
void fn_1_8EA0(void)
{
lbl_1_bss_1168 = 0;
lbl_1_bss_1168 = 0;
}
void fn_1_8EB4(s16 model)
{
HsfMaterial *temp_r31;
HsfData *temp_r30;
s32 temp_r29;
ModelData *temp_r28;
s16 *temp_r27;
s16 temp_r26;
temp_r28 = &Hu3DData[model];
temp_r30 = temp_r28->hsfData;
temp_r26 = temp_r30->materialCnt;
temp_r27 = &lbl_1_bss_968[lbl_1_bss_1168][0];
*temp_r27 = model;
temp_r31 = temp_r30->material;
for(temp_r29=0; temp_r29<temp_r26; temp_r31++, temp_r29++) {
temp_r31->vtxMode = 1;
}
lbl_1_bss_1168++;
HsfMaterial *temp_r31;
HsfData *temp_r30;
s32 temp_r29;
ModelData *temp_r28;
s16 *temp_r27;
s16 temp_r26;
temp_r28 = &Hu3DData[model];
temp_r30 = temp_r28->hsfData;
temp_r26 = temp_r30->materialCnt;
temp_r27 = &lbl_1_bss_968[lbl_1_bss_1168][0];
*temp_r27 = model;
temp_r31 = temp_r30->material;
for (temp_r29 = 0; temp_r29 < temp_r26; temp_r31++, temp_r29++) {
temp_r31->vtxMode = 1;
}
lbl_1_bss_1168++;
}
void fn_1_8F60(float arg0)
{
s16 *temp_r31;
s32 temp_r30;
temp_r31 = &lbl_1_bss_968[0][0];
for(temp_r30=0; temp_r30<lbl_1_bss_1168; temp_r31 += 4, temp_r30++) {
ModelData *sp8 = &Hu3DData[*temp_r31];
Hu3DModelAmbSet(*temp_r31, arg0, arg0, arg0);
}
s16 *temp_r31;
s32 temp_r30;
temp_r31 = &lbl_1_bss_968[0][0];
for (temp_r30 = 0; temp_r30 < lbl_1_bss_1168; temp_r31 += 4, temp_r30++) {
ModelData *sp8 = &Hu3DData[*temp_r31];
Hu3DModelAmbSet(*temp_r31, arg0, arg0, arg0);
}
}
void fn_1_8FF0(void)
{
}
void fn_1_8FF0(void) { }
void fn_1_8FF4(float arg0)
{
lbl_1_data_268.a = arg0*255;
}
lbl_1_data_268.a = arg0 * 255;
}

View file

@ -243,9 +243,9 @@ void fn_1_7C8C(omObjData *object)
if (lbl_1_data_90[var_r29][var_r27 + 1]) {
if (lbl_1_data_90[var_r29][0] < 65536) {
object->motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_90[var_r29][0]);
} else {
object->motion[var_r29]
= Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r28 + lbl_1_data_90[var_r29][0], MEMORY_DEFAULT_NUM, HEAP_DATA));
}
else {
object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_90[var_r29][0]);
}
}
}
@ -271,7 +271,8 @@ void fn_1_7C8C(omObjData *object)
if (var_r31->unk_0C) {
Vec sp18 = { 0.0f, 1.0f, 0.0f };
PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64);
} else {
}
else {
Vec spC = { 0.0f, 1.0f, 0.0f };
PSMTXIdentity(var_r31->unk_1C4);
C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f);
@ -322,7 +323,8 @@ void fn_1_82FC(omObjData *object)
if (fn_1_26F8() == 2) {
if (var_r31->unk_44) {
fn_1_ADC4(object);
} else {
}
else {
var_r31->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx];
var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx];
var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx];
@ -336,7 +338,8 @@ void fn_1_82FC(omObjData *object)
}
if ((s32)var_r31->unk_50 != 0) {
(void)var_r29;
} else {
}
else {
var_r29 = 1;
}
fn_1_9FF0(object);
@ -348,7 +351,8 @@ void fn_1_82FC(omObjData *object)
var_r31->unk_50 = 0;
object->func = fn_1_8B0C;
}
} else if (var_r31->unk_3C) {
}
else if (var_r31->unk_3C) {
var_r31->unk_40 = 1;
fn_1_2728(2);
var_r31->unk_50 = 0;
@ -377,7 +381,8 @@ void fn_1_86E8(omObjData *object)
if (var_r31->unk_44 != 0) {
var_r31->unk_1C = 0;
fn_1_B2C0(object);
} else {
}
else {
var_r31->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx];
var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx];
var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx];
@ -398,7 +403,8 @@ void fn_1_86E8(omObjData *object)
fn_1_9298(object);
if ((s32)var_r31->unk_50 != 0) {
(void)var_r29;
} else if (var_r31->unk_2C) {
}
else if (var_r31->unk_2C) {
var_r29 = 1;
}
fn_1_91E0(object);
@ -435,7 +441,8 @@ void fn_1_8B0C(omObjData *object)
if (var_r31->unk_24 > 1.0f) {
var_r31->unk_24 = 1.0f;
}
} else {
}
else {
var_r31->unk_20 = 0.0f;
var_r31->unk_24 = 0.01f;
fn_1_2770(object->work[0]);
@ -447,7 +454,8 @@ void fn_1_8B0C(omObjData *object)
var_r31->unk_28 = 0;
if (fn_1_2740(object->work[0]) >= 0) {
fn_1_B8A0(object, 1);
} else {
}
else {
fn_1_B8A0(object, 2);
}
var_r31->unk_50++;
@ -481,7 +489,8 @@ void fn_1_8D30(omObjData *object)
if (fn_1_2740(object->work[0]) >= 0) {
var_r31->unk_68 = 0.0f;
fn_1_B8A0(object, 1);
} else {
}
else {
fn_1_B8A0(object, 2);
}
var_r31->unk_50++;
@ -518,7 +527,8 @@ void fn_1_8E44(omObjData *object)
sp8.y = 0.0f;
if (PSVECMag(&sp8) > 0.0f) {
PSVECNormalize(&sp8, &sp8);
} else {
}
else {
sp8.x = 1.0f;
sp8.z = 0.0f;
}
@ -539,7 +549,8 @@ void fn_1_8E44(omObjData *object)
sp8.y = 0.0f;
if (PSVECMag(&sp8) > 0.0f) {
PSVECNormalize(&sp8, &sp8);
} else {
}
else {
sp8.x = 0.0f;
sp8.z = 1.0f;
}
@ -619,7 +630,8 @@ void fn_1_9298(omObjData *object)
var_r31->unk_B4.x += var_r31->unk_B4.y;
if (var_r31->unk_B4.x >= 360.0f) {
var_r31->unk_B4.x -= 360.0f;
} else if (var_r31->unk_B4.x < 0.0f) {
}
else if (var_r31->unk_B4.x < 0.0f) {
var_r31->unk_B4.x += 360.0f;
}
PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x);
@ -661,7 +673,8 @@ void fn_1_9298(omObjData *object)
case 2:
if (var_r31->unk_E0.y >= 0.0f) {
var_r31->unk_AC += (1.0f / 60.0f);
} else {
}
else {
var_r31->unk_AC -= (1.0f / 60.0f);
}
var_r31->unk_34 = 0;
@ -681,7 +694,8 @@ void fn_1_9298(omObjData *object)
var_r31->unk_E0.y = 0.0f;
fn_1_B8A0(object, 9);
var_r31->unk_A0++;
} else {
}
else {
var_r31->unk_E0.y += (0.016666668f * (0.016666668f * var_r31->unk_11C.w));
var_r31->unk_D4.y += var_r31->unk_E0.y;
if (var_r31->unk_D4.y <= var_r31->unk_F8.y) {
@ -762,7 +776,8 @@ void fn_1_9A1C(omObjData *object)
}
if (var_f31 == 0.0f) {
var_f30 = 11.5f;
} else {
}
else {
var_f30 = 23.0 - fabs(var_f31);
var_f30 = (0.5f * var_f30) * (var_f31 / fabs(var_f31));
}
@ -803,13 +818,15 @@ void fn_1_9C14(omObjData *object)
if (var_r31->unk_24 > var_f30) {
fn_1_B8A0(object, 4);
var_f29 = var_r31->unk_24;
} else {
}
else {
fn_1_B8A0(object, 3);
var_f29 = var_r31->unk_24 / var_f30;
}
CharModelMotionSpeedSet(var_r31->unk_00, var_f29);
}
} else {
}
else {
var_r31->unk_E0.x = var_r31->unk_E0.y = var_r31->unk_E0.z = 0.0f;
if (var_r31->unk_28 && CharModelMotionShiftIDGet(var_r31->unk_00) < 0) {
fn_1_B8A0(object, 0);
@ -890,7 +907,8 @@ void fn_1_9FF0(omObjData *object)
var_r31->unk_98 = var_r31->unk_F8.y - var_r31->unk_104.y;
var_r31->unk_98 += -0.27222225f;
var_r31->unk_30 = 0;
} else {
}
else {
var_r31->unk_98 = var_r31->unk_F8.y - var_r31->unk_104.y;
var_r31->unk_98 += -0.8166667f;
var_r31->unk_30 = 1;
@ -923,7 +941,8 @@ void fn_1_9FF0(omObjData *object)
var_f31 = 0.0f;
sp8.x = 1.0f;
sp8.y = sp8.z = 0.0f;
} else {
}
else {
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
@ -1003,7 +1022,8 @@ void fn_1_9FF0(omObjData *object)
}
PSVECScale(&sp14, &sp14, (0.0033333336f * var_f29) + var_r31->unk_144);
PSVECAdd(&var_r31->unk_14C, &sp14, &var_r31->unk_14C);
} else {
}
else {
PSVECScale(&var_r31->unk_14C, &var_r31->unk_14C, 0.98f);
}
var_r31->unk_14C.y = 0.0f;
@ -1020,12 +1040,14 @@ void fn_1_9FF0(omObjData *object)
sp8.x = var_r31->unk_14C.z;
sp8.y = 0.0f;
sp8.z = -var_r31->unk_14C.x;
} else {
}
else {
sp8.x = 1.0f;
sp8.y = sp8.z = 0.0f;
}
C_QUATRotAxisRad(&var_r31->unk_184, &sp8, 0.9424779f * var_f31);
} else {
}
else {
sp8.x = var_r31->unk_14C.z;
sp8.y = 0.0f;
sp8.z = -var_r31->unk_14C.x;
@ -1090,7 +1112,8 @@ void fn_1_ADC4(omObjData *object)
var_r31->unk_110 = sp28;
}
var_r31->unk_84 = 60.0f * ((0.23f - (0.04f * var_r31->unk_74)) + (0.001f * ((0.4f - (0.15f * var_r31->unk_74)) * frandmod(1000))));
} else {
}
else {
var_r31->unk_84--;
}
sp28 = var_r31->unk_110;
@ -1101,7 +1124,8 @@ void fn_1_ADC4(omObjData *object)
var_f31 = PSVECMag(&sp10);
if (var_r31->unk_48) {
var_r30 = 1;
} else {
}
else {
var_r30 = 0;
}
var_r29 = var_r30;
@ -1129,7 +1153,8 @@ void fn_1_B2C0(omObjData *object)
var_r29 = 0;
if (var_r31->unk_90) {
var_r31->unk_90--;
} else {
}
else {
var_r31->unk_88 = 1.0f;
if (frandmod(1000) < 500) {
var_r31->unk_88 = -1.0f;
@ -1142,7 +1167,8 @@ void fn_1_B2C0(omObjData *object)
if (lbl_1_bss_884 >= object->work[0]) {
if (lbl_1_bss_880) {
lbl_1_bss_880--;
} else {
}
else {
lbl_1_bss_880 = 60.0f * (8.0f + (0.004f * frandmod(1000)));
}
}
@ -1160,11 +1186,13 @@ void fn_1_B2C0(omObjData *object)
if (var_r31->unk_80 > 240.0f) {
var_r31->unk_80 = 1;
}
} else {
}
else {
var_r31->unk_80 = 60.0f * (0.00080000004f * ((1.05f - var_r31->unk_74) * frandmod(1000)));
var_r31->unk_80 += (var_r31->unk_8C * (30.0f + (0.03f * frandmod(1000))));
}
} else {
}
else {
var_r31->unk_80--;
if (!var_r31->unk_80) {
var_r31->unk_10 |= 256;

View file

@ -164,7 +164,7 @@ UnkM417Struct3 *fn_1_3574(omObjData *arg0, s16 arg1, s16 arg2)
var_r31 = var_r30;
for (var_r29 = 0; var_r29 < arg2; var_r29++, var_r31++, arg1++) {
var_r31->unk_00 = arg1;
arg0->model[arg1] = Hu3DModelCreate(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M417, 3), MEMORY_DEFAULT_NUM, HEAP_DATA));
arg0->model[arg1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M417, 3));
Hu3DModelLayerSet(arg0->model[var_r31->unk_00], 0);
var_f30 = frandmod(360);
var_f29 = frandmod(640);
@ -196,7 +196,8 @@ void fn_1_37A0(omObjData *object, UnkM417Struct3 *arg1)
var_r29 = 0;
if (arg1->unk_30 > arg1->unk_34) {
var_r29 = 1;
} else {
}
else {
PSVECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8);
var_f31 = PSVECMag(&sp8);
if (var_f31 < 50.0f) {
@ -247,7 +248,7 @@ void fn_1_3BC4(omObjData *object)
Hu3DModelLayerSet(object->model[1], 1);
object->model[2] = Hu3DHookFuncCreate(fn_1_6B60);
Hu3DModelLayerSet(object->model[2], 7);
var_r30 = Hu3DParticleCreate(HuSprAnimRead(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M417, 17), MEMORY_DEFAULT_NUM, HEAP_DATA)), 512);
var_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M417, 17)), 512);
object->model[3] = var_r30;
Hu3DModelLayerSet(var_r30, 4);
Hu3DParticleColSet(var_r30, 255, 255, 255);
@ -339,7 +340,8 @@ void fn_1_3D58(omObjData *object)
lbl_1_bss_178.unk_24[var_r29] = 0.0f;
var_f31 = 850.0f / var_f31;
PSVECScale(var_r28, var_r28, var_f31);
} else {
}
else {
lbl_1_bss_178.unk_28[var_r31] = 1;
lbl_1_bss_178.unk_1C[var_r31] = var_r30;
lbl_1_bss_178.unk_24[var_r30] = 1.0f;
@ -368,7 +370,8 @@ void fn_1_3D58(omObjData *object)
(*var_r27)[1] = lbl_1_bss_178.unk_1C[var_r29 + 30];
(*var_r27)[2] = lbl_1_bss_178.unk_1C[var_r29 + 1];
(*var_r27)[3] = lbl_1_bss_178.unk_1C[var_r29 + 31];
} else {
}
else {
var_r29 = var_r30 + (var_r31 * 30);
(*var_r27)[1] = lbl_1_bss_178.unk_1C[var_r29];
(*var_r27)[3] = lbl_1_bss_178.unk_1C[var_r29 + 30];
@ -447,7 +450,8 @@ void fn_1_4BC8(float arg8, float arg9)
if (arg9 < 0.0f) {
arg9 = 0.0f;
} else if (arg9 > 1.0f) {
}
else if (arg9 > 1.0f) {
arg9 = 1.0f;
}
var_f30 = 1.0f - arg9;
@ -474,7 +478,7 @@ void fn_1_4BC8(float arg8, float arg9)
return;
}
}
(void)var_r31;
(void)var_r31;
}
void fn_1_4E64(omObjData *object)
@ -521,12 +525,14 @@ void fn_1_4E64(omObjData *object)
}
if (PSVECMag(&var_r31->unk_04) > 800.0f && var_r31->unk_00 >= 2 && (var_r31->unk_1C -= 0.033333335f, var_r31->unk_1C < 0.0f)) {
var_r31->unk_00 = 0;
} else {
}
else {
if (var_r31->unk_00 < 2) {
PSVECSubtract(&sp8, &var_r31->unk_04, &sp20);
if (PSVECDotProduct(&sp14, &sp20) <= 0.0f) {
var_r31->unk_00 = 2;
} else {
}
else {
var_f31 = 1.2f * (PSVECMag(&sp20) / (var_r31->unk_18 * var_r31->unk_28));
if (var_f31 < 1.2f) {
if (var_f31 > 1.0f) {
@ -538,7 +544,8 @@ void fn_1_4E64(omObjData *object)
var_r29->unk_0C = var_f31;
}
}
} else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) {
}
else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) {
var_r31->unk_00 = 3;
fn_1_6D64(lbl_1_bss_58, 0, var_r31->unk_10, 20.0f + (40.0f * var_r31->unk_20), var_r31->unk_20);
sp2C.x = sind(var_r31->unk_10);
@ -631,7 +638,8 @@ void fn_1_57B0(omObjData *object)
var_r29->unk_0C += var_r29->unk_18;
if (var_r29->unk_0C >= 360.0f) {
var_r29->unk_0C -= 360.0f;
} else if (var_r29->unk_0C < 0.0f) {
}
else if (var_r29->unk_0C < 0.0f) {
var_r29->unk_0C += 360.0f;
}
var_f31 = var_r29->unk_0C;
@ -688,8 +696,8 @@ void fn_1_57B0(omObjData *object)
DCStoreRangeNoSync(lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 1080 * sizeof(GXColor));
DCStoreRangeNoSync(lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec2f));
PPCSync();
(void)var_r30;
(void)var_r30;
(void)var_r30;
(void)var_r30;
}
void fn_1_5E3C(omObjData *object)
@ -714,7 +722,8 @@ void fn_1_5E3C(omObjData *object)
GXColor1x16(var_r31);
GXTexCoord1x16(var_r31);
}
} else {
}
else {
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 59);
for (var_r30 = 29; var_r30 >= 0; var_r30--) {
var_r31 = lbl_1_bss_178.unk_1C[var_r30 + (var_r29 * 30)];
@ -936,7 +945,8 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA)
arg8 += 180.0f;
arg9 = 60.0f;
var_f27 = fn_1_75BC();
} else {
}
else {
var_r28 = 20.0f + (80.0f * argA);
var_f27 = 0.0f;
}
@ -972,7 +982,8 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA)
var_r31->unk40.r = 200.0f + (55.0f * var_f31);
var_r31->unk40.g = 220.0f + (20.0f * var_f31);
var_r31->unk40.b = 245.0f + (10.0f * var_f31);
} else {
}
else {
var_r31->unk2C = 100.0f + frandmod(100);
var_r31->unk40.a = frandmod(100) + 80;
var_r31->unk40.r = 200.0f + (55.0f * var_f31);
@ -1087,7 +1098,8 @@ void fn_1_7968(float arg8, float arg9, float argA, Vec *arg0)
if (var_r30 < 0) {
arg0->x = arg0->z = 0.0f;
arg0->y = 1.0f;
} else {
}
else {
*arg0 = lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4][var_r30];
}
}

View file

@ -442,7 +442,8 @@ void fn_1_330(omObjData *object)
if ((var_r26 & 16) && lbl_1_bss_48 == -1) {
lbl_1_bss_48 = HuAudSeqPlay(70);
}
} else {
}
else {
var_r26 = 0;
}
if (lbl_1_bss_50 == -1 || !var_r26) {
@ -463,7 +464,8 @@ void fn_1_330(omObjData *object)
MGSeqParamSet(lbl_1_bss_4C, 1, var_r25);
if (lbl_1_bss_58 == 600) {
lbl_1_bss_34 = 3.0f;
} else if (lbl_1_bss_58 == 1200) {
}
else if (lbl_1_bss_58 == 1200) {
lbl_1_bss_34 = 2.5f;
}
if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) {
@ -485,9 +487,11 @@ void fn_1_330(omObjData *object)
if (fn_1_2EDC()) {
if (lbl_1_bss_1C[0] == lbl_1_bss_1C[1]) {
var_r28 = 2;
} else if (lbl_1_bss_1C[0] > lbl_1_bss_1C[1]) {
}
else if (lbl_1_bss_1C[0] > lbl_1_bss_1C[1]) {
var_r28 = 0;
} else {
}
else {
var_r28 = 1;
}
if (var_r28 < 2) {
@ -505,7 +509,8 @@ void fn_1_330(omObjData *object)
}
lbl_1_bss_50 = MGSeqCreate(5, 3, sp8[0], sp8[1], -1, -1);
HuAudSStreamPlay(1);
} else {
}
else {
for (var_r27 = 0; var_r27 < 2; var_r27++) {
var_r30 = lbl_1_bss_8C[var_r27]->data;
for (var_r31 = 0; var_r31 < 2; var_r31++) {
@ -546,32 +551,32 @@ s32 lbl_1_data_10C = 66051;
s32 lbl_1_data_110[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
s32 lbl_1_data_150[8] = {
6225920,
1703936,
7143424,
9043968,
1114112,
8716288,
8454144,
851968,
DATADIR_MARIOMOT,
DATADIR_LUIGIMOT,
DATADIR_PEACHMOT,
DATADIR_YOSHIMOT,
DATADIR_DONKEYMOT,
DATADIR_WARIOMOT,
DATADIR_WALUIGIMOT,
DATADIR_DAISYMOT,
};
UnkM426Struct13 lbl_1_data_170[12] = {
{ 6225920, 0xFFFFFFFF },
{ 6225922, 0xFFFFFFFF },
{ 6225923, 0xFFFFFFFF },
{ 6225925, 0xFFFFFFFF },
{ 6225926, 0xFFFFFFFF },
{ 6225940, 0xFFFFFFFF },
{ 6225942, 0xFFFFFFFF },
{ 6225945, 0xFFFFFFFF },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 20), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 22), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), DATA_NUM_LISTEND },
{ 0, 0 },
{ 0, 1 },
{ 6225943, 0xFFFFFFFF },
{ 6226034, 0xFFFFFFFF },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_NUM_LISTEND },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 114), DATA_NUM_LISTEND },
};
s32 lbl_1_data_1D0[2] = { 3735584, 3735592 };
s32 lbl_1_data_1D0[2] = { DATA_MAKE_NUM(DATADIR_M426, 32), DATA_MAKE_NUM(DATADIR_M426, 40) };
void fn_1_DB8(omObjData *arg0)
{
@ -620,7 +625,8 @@ void fn_1_EB8(void)
}
if (var_r30 != 2) {
memcpy(&lbl_1_bss_18, &lbl_1_data_10C, 4);
} else {
}
else {
for (var_r31 = 0; var_r31 < 4; var_r31++) {
if (GWPlayerCfg[var_r31].group) {
lbl_1_bss_18[var_r30] = var_r31;
@ -721,14 +727,16 @@ void fn_1_125C(omObjData *object)
var_r31->unk_40 = lbl_1_data_0[var_r27].x;
if (var_r31->unk_40 < 0.0f) {
var_r31->unk_44 = 90.0f;
} else {
}
else {
var_r31->unk_44 = -90.0f;
}
var_r31->unk_48 = lbl_1_bss_8C[var_r31->unk_00];
var_r28 = var_r31->unk_48->data;
if (object != var_r28->unk_04[0]) {
var_r31->unk_4C = var_r28->unk_04[0];
} else {
}
else {
var_r31->unk_4C = var_r28->unk_04[1];
}
memset(&var_r31->unk_50, 0, 0x3C);
@ -751,13 +759,15 @@ void fn_1_125C(omObjData *object)
if (lbl_1_data_170[var_r29].unk_04 == -1) {
if ((var_r29 == 11) && (var_r31->unk_0C == 4)) {
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 114));
} else {
}
else {
object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_170[var_r29].unk_00);
}
if (var_r29 == 5) {
CharModelVoiceEnableSet(var_r31->unk_0C, object->motion[var_r29], 0);
}
} else {
}
else {
object->motion[var_r29] = Hu3DJointMotion(
object->model[0], HuDataSelHeapReadNum(var_r31->unk_0C + lbl_1_data_1D0[lbl_1_data_170[var_r29].unk_04], 268435456, HEAP_DATA));
}
@ -817,7 +827,8 @@ void fn_1_16F8(omObjData *object)
sp20 = sp1C = 0.0f;
sp10 = var_r21 = 0;
fn_1_2F5C(object, &sp20, &sp1C, &sp10);
} else {
}
else {
sp20 = HuPadStkX[var_r31->unk_10];
sp1C = HuPadStkY[var_r31->unk_10];
var_r21 = HuPadBtn[var_r31->unk_10];
@ -833,10 +844,11 @@ void fn_1_16F8(omObjData *object)
case 1:
if (var_r31->unk_90 == -1) {
var_r31->unk_90 = fn_1_48F0(object->trans.z);
} else {
}
else {
if (!lbl_1_bss_40) {
sp20 = sp1C = 0.0f;
sp10 = var_r21 = 0;
}
if (fabs(sp20) > 8.0) {
@ -850,7 +862,8 @@ void fn_1_16F8(omObjData *object)
}
if (var_r31->unk_94 != -1) {
var_f27 = 16.0f;
} else {
}
else {
var_f27 = 0.0f;
}
var_r31->unk_50[var_r31->unk_8C] = var_f27;
@ -863,22 +876,27 @@ void fn_1_16F8(omObjData *object)
var_f28 *= 0.06666667f;
if (var_r31->unk_98 != 0.0f) {
var_r26 = 3;
} else if (var_f28 <= 0.0f) {
}
else if (var_f28 <= 0.0f) {
if (lbl_1_bss_54 == 5) {
var_r26 = 8;
} else {
}
else {
var_r26 = 0;
}
} else if (var_f28 < 10.0f) {
}
else if (var_f28 < 10.0f) {
var_r26 = 1;
} else {
}
else {
var_r26 = 2;
}
if (var_r26 != var_r31->unk_28) {
var_r31->unk_28 = var_r26;
if (var_r26 == 3) {
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0);
} else {
}
else {
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001);
}
}
@ -887,7 +905,8 @@ void fn_1_16F8(omObjData *object)
if (var_f31 < 0.0f) {
var_r27 = var_r31->unk_90 - 1;
var_r25 = var_r31->unk_90 - 2;
} else {
}
else {
var_r27 = var_r31->unk_90 + 1;
var_r25 = var_r31->unk_90 + 2;
}
@ -924,7 +943,8 @@ void fn_1_16F8(omObjData *object)
var_r31->unk_3C = 0;
object->trans.x = var_f25;
object->trans.z = var_f24;
} else if (var_f27 != 0.0f) {
}
else if (var_f27 != 0.0f) {
var_f27 = 1.0f / var_f27;
object->trans.x += var_f28 * (var_f30 * var_f27);
object->trans.z += var_f28 * (var_f31 * var_f27);
@ -934,11 +954,13 @@ void fn_1_16F8(omObjData *object)
var_f31 = object->trans.z - var_f21;
if (fabs(var_f30) > 8.0 || fabs(var_f31) > 8.0) {
var_f26 = atan2d(var_f30, var_f31);
} else {
}
else {
if (fabs(sp20) > 8.0 || fabs(sp1C) > 8.0) {
var_f26 = atan2d(sp20, -sp1C);
var_f26 = var_f26;
} else {
}
else {
var_f26 = object->rot.y;
}
}
@ -950,7 +972,8 @@ void fn_1_16F8(omObjData *object)
var_r31->unk_28 = 9;
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 8.0f, 8.0f, 0);
}
} else if (sp10 & 256) {
}
else if (sp10 & 256) {
var_r31->unk_3C = 20;
}
}
@ -965,11 +988,13 @@ void fn_1_16F8(omObjData *object)
if (fn_1_4AF4(&lbl_1_bss_C, object->rot.y, 1)) {
if (!var_r31->unk_00) {
HuAudFXPlay(1601);
} else {
}
else {
HuAudFXPlay(1602);
}
}
} else if (var_r31->unk_2C >= 20) {
}
else if (var_r31->unk_2C >= 20) {
var_r31->unk_24 = 0;
var_r31->unk_2C = 0;
var_r31->unk_28 = 8;
@ -988,7 +1013,8 @@ void fn_1_16F8(omObjData *object)
if (fabs(object->trans.x) > 750.0) {
if (object->trans.x > 0.0f) {
object->trans.x = 750.0f;
} else {
}
else {
object->trans.x = -750.0f;
}
}
@ -1020,10 +1046,12 @@ void fn_1_16F8(omObjData *object)
if (lbl_1_bss_40 == 0) {
var_r31->unk_2C = 59;
}
} else if (var_r31->unk_2C == 60.0f) {
}
else if (var_r31->unk_2C == 60.0f) {
var_r31->unk_28 = 7;
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0);
} else if (var_r31->unk_2C >= 90.0f) {
}
else if (var_r31->unk_2C >= 90.0f) {
var_r31->unk_24 = 7;
var_r31->unk_28 = 8;
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001);
@ -1056,7 +1084,8 @@ void fn_1_16F8(omObjData *object)
object->rot.y = fn_1_770C(0.0f, object->rot.y, 10.0f);
if (var_r31->unk_24 == 8) {
var_r26 = 10;
} else {
}
else {
var_r26 = 11;
}
if (var_r26 != var_r31->unk_28) {
@ -1207,7 +1236,8 @@ void fn_1_2B74(Vec *arg0)
if (arg0->x < 0.0f) {
var_r26 = 0;
} else {
}
else {
var_r26 = 1;
}
if (lbl_1_bss_8C[var_r26]) {
@ -1226,21 +1256,26 @@ void fn_1_2B74(Vec *arg0)
var_r31->unk_90 = var_r31->unk_94 = -1;
if (!var_r29->unk_00) {
var_r31->unk_9C.x = -1.0f;
} else {
}
else {
var_r31->unk_9C.x = 1.0f;
}
if (fabs(var_r31->unk_4C->trans.z - var_r30->trans.z) < 100.0) {
var_r31->unk_90 = fn_1_48F0(var_r30->trans.z);
if (var_r31->unk_90 == 5) {
var_r31->unk_9C.z = -1.0f;
} else if (!var_r31->unk_90) {
}
else if (!var_r31->unk_90) {
var_r31->unk_9C.z = 1.0f;
} else if ((var_r31->unk_4C->trans.z - var_r30->trans.z) < 0.0f) {
}
else if ((var_r31->unk_4C->trans.z - var_r30->trans.z) < 0.0f) {
var_r31->unk_9C.z = 1.0f;
} else {
}
else {
var_r31->unk_9C.z = -1.0f;
}
} else {
}
else {
var_r31->unk_9C.z = 0.0f;
}
var_r31->unk_9C.y = 45.5f;
@ -1396,12 +1431,14 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3)
for (var_r30 = 0; var_r30 < 6; var_r27++, var_r30++) {
sp14[var_r27] = var_r30;
}
} else {
}
else {
if (var_r31->unk_90 < var_r29) {
for (var_r30 = 0; var_r30 < 3; var_r27++, var_r30++) {
sp14[var_r27] = var_r30;
}
} else {
}
else {
for (var_r30 = 3; var_r30 < 6; var_r27++, var_r30++) {
sp14[var_r27] = var_r30;
}
@ -1437,16 +1474,20 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3)
if (var_r29 == -1) {
if (var_r31->unk_90 < 3) {
var_r31->unk_B0 = 1;
} else {
}
else {
var_r31->unk_B0 = 4;
}
} else if (var_r29 > var_r31->unk_90) {
}
else if (var_r29 > var_r31->unk_90) {
var_r31->unk_B0 = 1;
} else {
}
else {
var_r31->unk_B0 = 4;
}
var_r31->unk_BC = 1;
} else {
}
else {
var_r31->unk_BC = 2;
}
var_r31->unk_B8 = 0;
@ -1525,7 +1566,8 @@ void fn_1_3714(omObjData *object)
var_r31->unk_20 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 6));
var_r31->unk_24 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 8));
var_r31->unk_28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 9));
} else {
}
else {
var_r31->unk_10 = Hu3DModelLink(var_r28->unk_10);
Hu3DModelShadowMapSet(var_r31->unk_10);
var_r31->unk_14 = Hu3DModelLink(var_r28->unk_14);
@ -1594,7 +1636,8 @@ void fn_1_3EFC(omObjData *object)
var_f30 = 50.0f + (-19.999998f * var_f31);
Hu3DModelPosSet(var_r30->unk_20, -500.0f, var_f30, var_r30->unk_38);
Hu3DModelPosSet(var_r30->unk_28, 500.0f, var_f29, var_r30->unk_38);
} else {
}
else {
var_f29 = 50.0f + (-19.999998f * var_f31);
var_f30 = 30.000002f + (19.999998f * var_f31);
Hu3DModelPosSet(var_r30->unk_1C, -500.0f, var_f30, var_r30->unk_38);
@ -1603,7 +1646,8 @@ void fn_1_3EFC(omObjData *object)
if (var_r30->unk_0C >= 2) {
if (var_r30->unk_04 == 0) {
HuAudFXPlay(1600);
} else {
}
else {
HuAudFXPlay(1599);
}
fn_1_4738(var_r28, var_r30->unk_04);
@ -1639,7 +1683,8 @@ void fn_1_3EFC(omObjData *object)
object->work[2] = 0;
}
lbl_1_bss_30--;
} else {
}
else {
if (object->work[0]) {
if (++object->work[0] >= 20) {
object->work[0] = 0;
@ -1835,7 +1880,8 @@ s32 fn_1_4AF4(Vec *arg0, float arg8, s32 arg1)
var_r30 = lbl_1_bss_78->data;
if (arg0->x < 0.0f) {
var_f28 = -500.0f;
} else {
}
else {
var_f28 = 500.0f;
}
for (var_r29 = 0; var_r29 < 6; var_r29++, var_r30++) {
@ -1856,7 +1902,8 @@ s32 fn_1_4AF4(Vec *arg0, float arg8, s32 arg1)
if (!var_r30->unk_08) {
return 0;
}
} else if (var_r30->unk_08 == 1) {
}
else if (var_r30->unk_08 == 1) {
return 0;
}
if (arg1) {
@ -1881,15 +1928,17 @@ void fn_1_4F14(omObjData *object)
for (var_r29 = 0; var_r29 < 6; var_r29++, var_r31++) {
if (var_r29 == 0) {
var_r31->unk_00 = Hu3DModelCreateFile(3735579);
} else {
}
else {
var_r31->unk_00 = Hu3DModelLink(var_r30->unk_00);
}
Hu3DModelShadowSet(var_r31->unk_00);
Hu3DModelLayerSet(var_r31->unk_00, 2);
if (var_r29 == 0) {
var_r31->unk_08 = Hu3DJointMotion(var_r31->unk_00, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M426, 28), MEMORY_DEFAULT_NUM, HEAP_DATA));
var_r31->unk_0C = Hu3DJointMotion(var_r31->unk_00, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M426, 29), MEMORY_DEFAULT_NUM, HEAP_DATA));
} else {
var_r31->unk_08 = Hu3DJointMotionFile(var_r31->unk_00, DATA_MAKE_NUM(DATADIR_M426, 28));
var_r31->unk_0C = Hu3DJointMotionFile(var_r31->unk_00, DATA_MAKE_NUM(DATADIR_M426, 29));
}
else {
var_r31->unk_08 = var_r30->unk_08;
var_r31->unk_0C = var_r30->unk_0C;
}
@ -1955,14 +2004,16 @@ void fn_1_5134(omObjData *object)
var_r31->unk_30 = 0;
var_r31->unk_28 = 3;
Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_0C, 0.0f, 8.0f, 0x40000001);
} else {
}
else {
var_r31->unk_48 = fn_1_770C(0.0f, var_r31->unk_48, 10.0f);
}
break;
case 3:
if (!var_r26) {
var_f31 = 90.0f;
} else {
}
else {
var_f31 = 270.0f;
}
if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) {
@ -1970,7 +2021,8 @@ void fn_1_5134(omObjData *object)
if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) {
var_r31->unk_34 = lbl_1_bss_34;
}
} else {
}
else {
var_r31->unk_48 = fn_1_770C(var_f31, var_r31->unk_48, 10.0f);
if ((var_r31->unk_34 -= 0.1f) < 0.0f) {
var_r31->unk_34 = 0.0f;
@ -1990,7 +2042,8 @@ void fn_1_5134(omObjData *object)
var_r31->unk_34 = 0.0f;
if (var_r31->unk_3C > 0.0f) {
var_r31->unk_3C = 399.0f;
} else {
}
else {
var_r31->unk_3C = -399.0f;
}
var_r31->unk_18 = 0;
@ -2002,7 +2055,8 @@ void fn_1_5134(omObjData *object)
lbl_1_bss_1C[0]--;
fn_1_3654(0);
HuAudFXPlay(1603);
} else {
}
else {
lbl_1_bss_1C[1]--;
fn_1_3654(1);
HuAudFXPlay(1604);
@ -2028,20 +2082,23 @@ void fn_1_5134(omObjData *object)
fn_1_2B74(&sp8);
if (var_r31->unk_3C < 0.0f) {
fn_1_46A4(var_r31->unk_24, 0);
} else {
}
else {
fn_1_46A4(var_r31->unk_24, 1);
}
var_r31->unk_28 = 5;
if (var_r26 == 0) {
var_r31->unk_4C += 30.000002f;
} else {
}
else {
var_r31->unk_4C -= 30.000002f;
}
if (fabs(var_r31->unk_4C) > 150.0) {
if (!var_r26) {
var_r31->unk_4C = 150.0f;
} else {
}
else {
var_r31->unk_4C = -150.0f;
}
}
@ -2067,7 +2124,8 @@ void fn_1_5134(omObjData *object)
if (!var_r31->unk_38) {
Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_3C, var_r31->unk_40, var_r31->unk_44);
Hu3DModelRotSet(var_r31->unk_00, 0.0f, var_r31->unk_48, 0.0f);
} else {
}
else {
Hu3DModelAttrSet(var_r31->unk_00, 1);
}
}
@ -2155,11 +2213,14 @@ s32 fn_1_5D3C(void)
}
if (var_r31->unk_3C < 0.0f) {
var_r30++;
} else if (var_r31->unk_3C > 0.0f) {
}
else if (var_r31->unk_3C > 0.0f) {
var_r29++;
} else if (frand() & 1) {
}
else if (frand() & 1) {
var_r30++;
} else {
}
else {
var_r29++;
}
}
@ -2194,7 +2255,8 @@ void fn_1_5EBC(omObjData *object)
if (var_r30 == 0) {
var_r31->unk_08 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 0), MEMORY_DEFAULT_NUM));
var_r31->unk_04 = fn_1_795C(var_r31->unk_08, 512);
} else {
}
else {
var_r31->unk_08 = var_r29->unk_08;
var_r31->unk_04 = fn_1_7DC8(var_r29->unk_04);
}
@ -2230,7 +2292,8 @@ void fn_1_6008(omObjData *object)
}
if (var_r30->unk_10 <= 0) {
Hu3DModelAttrSet(var_r30->unk_04, 1);
} else {
}
else {
Hu3DModelAttrReset(var_r30->unk_04, 1);
var_r26 = &Hu3DData[var_r30->unk_04];
var_r29 = var_r26->unk_120;
@ -2358,7 +2421,8 @@ s32 fn_1_63B8(s32 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor arg3)
var_r31->unk_30.x = arg1->x - var_r30->unk_14.x;
var_r31->unk_30.y = arg1->y - var_r30->unk_14.y;
var_r31->unk_30.z = arg1->z - var_r30->unk_14.z;
} else {
}
else {
var_r31->unk_30.x = var_r30->unk_14.x;
var_r31->unk_30.y = var_r30->unk_14.y;
var_r31->unk_30.z = var_r30->unk_14.z;
@ -2368,7 +2432,8 @@ s32 fn_1_63B8(s32 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor arg3)
var_r31->unk_04.x = arg2->x;
var_r31->unk_04.y = arg2->y;
var_r31->unk_04.z = arg2->z;
} else {
}
else {
var_r31->unk_04.x = var_r31->unk_04.y = var_r31->unk_04.z = 0.0f;
}
@ -2498,7 +2563,8 @@ void fn_1_6A34(omObjData *object)
for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) {
if (var_r29 == 0) {
var_r31->unk_00 = 100;
} else {
}
else {
var_r31->unk_00 = 490;
}
var_r31->unk_04 = 65;
@ -2570,10 +2636,11 @@ void fn_1_6DC0(omObjData *object)
if (var_r31->unk_0C) {
var_f31 = 1.0 + (0.8f * sind((180.0f * (var_r31->unk_0C / 20.0f))));
var_r31->unk_0C--;
} else {
}
else {
var_f31 = 1.0f;
}
var_r28 = lbl_1_bss_1C[var_r29];
var_r28 = lbl_1_bss_1C[var_r29];
if ((sp8[0] = var_r28 / 10) > 9) {
sp8[0] = 9;
}
@ -2635,7 +2702,8 @@ void fn_1_7328(s32 arg0)
for (var_r30 = 0; var_r30 < 6; var_r30++) {
if (arg0) {
espDispOn(var_r31->unk_14[var_r30]);
} else {
}
else {
espDispOff(var_r31->unk_14[var_r30]);
}
}
@ -2686,18 +2754,21 @@ float fn_1_75F4(float arg8, float arg9)
if (arg8 >= 360.0f) {
arg8 -= 360.0f;
} else if (arg8 < 0.0f) {
}
else if (arg8 < 0.0f) {
arg8 += 360.0f;
}
if (arg9 >= 360.0f) {
arg9 -= 360.0f;
} else if (arg9 < 0.0f) {
}
else if (arg9 < 0.0f) {
arg9 += 360.0f;
}
var_f31 = arg8 - arg9;
if (var_f31 <= -180.0f) {
var_f31 += 360.0f;
} else if (var_f31 >= 180.0f) {
}
else if (var_f31 >= 180.0f) {
var_f31 -= 360.0f;
}
return var_f31;
@ -2710,12 +2781,14 @@ float fn_1_770C(float arg8, float arg9, float argA)
if (arg8 >= 360.0) {
arg8 -= 360.0;
} else if (arg8 < 0.0) {
}
else if (arg8 < 0.0) {
arg8 += 360.0;
}
if (arg9 >= 360.0) {
arg9 -= 360.0;
} else if (arg9 < 0.0) {
}
else if (arg9 < 0.0) {
arg9 += 360.0;
}
var_f30 = 360.0 + (arg8 - arg9);
@ -2725,19 +2798,23 @@ float fn_1_770C(float arg8, float arg9, float argA)
if (var_f30 < 180.0) {
if (var_f30 <= argA) {
var_f31 = var_f30;
} else {
}
else {
var_f31 = argA;
}
} else if ((360.0 - var_f30) <= argA) {
}
else if ((360.0 - var_f30) <= argA) {
var_f31 = -(360.0 - var_f30);
} else {
}
else {
var_f31 = -argA;
}
var_f31 += arg9;
if (var_f31 >= 360.0) {
var_f31 -= 360.0;
var_f31 = var_f31;
} else if (var_f31 < 0.0) {
}
else if (var_f31 < 0.0) {
var_f31 += 360.0;
var_f31 = var_f31;
}
@ -2936,16 +3013,19 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
if (shadowModelDrawF != 0) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
} else {
}
else {
var_r21 = var_r31->unk_38->bmp->dataFmt & 15;
if (var_r21 == 7 || var_r21 == 8) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO);
} else {
}
else {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO);
}
if (arg0->attr & 2) {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
} else {
}
else {
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE);
}
}
@ -3000,7 +3080,8 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
var_r30++;
var_r30->x = var_r30->y = var_r30->z = 0.0f;
var_r30++;
} else {
}
else {
if (!var_r29->unk_2C) {
var_r28 = sp98;
var_r27 = sp38;
@ -3012,7 +3093,8 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++);
} else {
}
else {
PSVECScale(&lbl_1_data_22C[0], &sp98[0], var_r29->unk_28);
PSVECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28);
PSVECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28);
@ -3080,11 +3162,13 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1)
if (shadowModelDrawF) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
} else {
}
else {
var_r28 = var_r29->bmp->dataFmt & 15;
if (var_r28 == 7 || var_r28 == 8) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO);
} else {
}
else {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO);
}
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -39,14 +39,14 @@ float lbl_1_data_1D4[8] = {
};
u32 lbl_1_data_1F4[8] = {
0x5F0000,
0x5F0002,
0x5F0003,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03),
-1,
0x5F0048,
0x5F0049,
0x5F0017,
0x5F0072
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72)
};
char *lbl_1_data_230[8] = {
@ -621,7 +621,7 @@ void fn_1_9440(omObjData *object)
if(lbl_1_data_1F4[temp_r28] != -1) {
object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk8, lbl_1_data_1F4[temp_r28]);
} else {
object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], 0x3E0021+temp_r31->unk8);
object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M431, 0x21)+temp_r31->unk8);
}
if(temp_r28 == 4 || temp_r28 == 5) {
CharModelVoiceEnableSet(temp_r31->unk8, object->motion[temp_r28], 0);

View file

@ -1,23 +1,22 @@
#include "game/object.h"
#include "game/objsub.h"
#include "game/audio.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/audio.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/wipe.h"
#include "game/minigame_seq.h"
#include "game/gamework_data.h"
#include "REL/m434Dll.h"
#include "math.h"
#include "ext_math.h"
#include "game/gamework_data.h"
#include "game/minigame_seq.h"
#include "math.h"
#include "rel_sqrt_consts.h"
typedef struct camera_view {
float zoom;
Vec pos;
Vec rot;
float zoom;
Vec pos;
Vec rot;
} CameraView;
Vec lbl_1_data_0 = { -700, 2500, -700 };
@ -28,7 +27,6 @@ Vec lbl_1_data_28 = { -700, 2500, 700 };
Vec lbl_1_data_34 = { 0, 1, 0 };
Vec lbl_1_data_40 = { 0, 0, 0 };
omObjData *lbl_1_bss_3D4;
omObjData *lbl_1_bss_3D0;
omObjData *lbl_1_bss_3CC;
@ -61,58 +59,58 @@ void fn_1_16B4(void);
void ObjectSetup(void)
{
s32 i;
Process *objman;
OSReport("******* M434ObjectSetup *********\n");
objman = omInitObjMan(50, 8192);
omGameSysInit(objman);
CZoom = 2097.6f;
Center.x = 0;
Center.y = 172;
Center.z = 361;
CRot.x = -32;
CRot.y = 0;
CRot.z = 0;
for(i=0; i<4; i++) {
CZoomM[i] = CZoom;
CenterM[i] = Center;
CRotM[i] = CRot;
}
fn_1_16B4();
Hu3DCameraCreate(15);
Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f);
Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1);
Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f);
Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1);
lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti);
lbl_1_bss_3CC->work[0] = 4;
HuAudSndGrpSet(59);
lbl_1_data_C.x = -lbl_1_data_0.x;
lbl_1_data_C.y = -lbl_1_data_0.y;
lbl_1_data_C.z = -lbl_1_data_0.z;
VECNormalize(&lbl_1_data_C, &lbl_1_data_C);
lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24);
Hu3DGLightInfinitytSet(lbl_1_bss_3B0);
Hu3DGLightStaticSet(lbl_1_bss_3B0, 1);
for(i=0; i<4; i++) {
lbl_1_bss_3A0[i] = GWPlayerCfg[i].group;
}
lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC);
lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8);
fn_1_1DB0(objman);
fn_1_4854(objman);
fn_1_6860(objman);
fn_1_1104(objman);
s32 i;
Process *objman;
OSReport("******* M434ObjectSetup *********\n");
objman = omInitObjMan(50, 8192);
omGameSysInit(objman);
CZoom = 2097.6f;
Center.x = 0;
Center.y = 172;
Center.z = 361;
CRot.x = -32;
CRot.y = 0;
CRot.z = 0;
for (i = 0; i < 4; i++) {
CZoomM[i] = CZoom;
CenterM[i] = Center;
CRotM[i] = CRot;
}
fn_1_16B4();
Hu3DCameraCreate(15);
Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f);
Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1);
Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f);
Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1);
lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti);
lbl_1_bss_3CC->work[0] = 4;
HuAudSndGrpSet(59);
lbl_1_data_C.x = -lbl_1_data_0.x;
lbl_1_data_C.y = -lbl_1_data_0.y;
lbl_1_data_C.z = -lbl_1_data_0.z;
VECNormalize(&lbl_1_data_C, &lbl_1_data_C);
lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24);
Hu3DGLightInfinitytSet(lbl_1_bss_3B0);
Hu3DGLightStaticSet(lbl_1_bss_3B0, 1);
for (i = 0; i < 4; i++) {
lbl_1_bss_3A0[i] = GWPlayerCfg[i].group;
}
lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC);
lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8);
fn_1_1DB0(objman);
fn_1_4854(objman);
fn_1_6860(objman);
fn_1_1104(objman);
}
void fn_1_558(omObjData *object);
void fn_1_4FC(omObjData *object)
{
fn_1_1D64(0);
lbl_1_bss_3AA = 0;
lbl_1_bss_3A8 = 0;
object->func = fn_1_558;
fn_1_1D64(0);
lbl_1_bss_3AA = 0;
lbl_1_bss_3A8 = 0;
object->func = fn_1_558;
}
s32 lbl_1_data_70 = -1;
@ -122,138 +120,138 @@ void fn_1_1638(s32 arg0);
void fn_1_558(omObjData *object)
{
s32 temp_r31;
s32 temp_r29;
s32 sp10[2][4];
s32 sp8[2];
switch(fn_1_1D54()) {
case 0:
lbl_1_bss_3C2 = 60;
lbl_1_bss_3C0 = 60;
fn_1_1D64(1);
lbl_1_bss_10[1] = 60;
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
HuAudFXPlay(1736);
break;
case 1:
if(fn_1_10F4() == 2) {
if(lbl_1_bss_10[1] != 0) {
if(--lbl_1_bss_10[1] == 0) {
lbl_1_bss_3BC = MGSeqStartCreate();
HuAudStreamPlay("sound/mu_047a.adp", 1);
}
} else {
if(MGSeqStatGet(lbl_1_bss_3BC) == 0) {
fn_1_1D64(2);
HuAudFXPlay(1738);
lbl_1_bss_3B8 = MGSeqTimerCreate(60);
fn_1_1638(1);
}
if(lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) {
lbl_1_data_70 = HuAudSeqPlay(67);
}
}
}
break;
case 2:
if(--lbl_1_bss_3C0 == 0) {
lbl_1_bss_3C2--;
MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2);
lbl_1_bss_3C0 = 60;
}
if(!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) {
fn_1_1D64(3);
lbl_1_bss_10[1] = 60;
lbl_1_bss_3BC = MGSeqFinishCreate();
HuAudStreamFadeOut(30);
HuAudSeqFadeOut(lbl_1_data_70, 100);
}
break;
case 3:
if(lbl_1_bss_3B8 >= 0) {
MGSeqParamSet(lbl_1_bss_3B8, 2, -1);
lbl_1_bss_3B8 = -1;
}
if(MGSeqStatGet(lbl_1_bss_3BC) == 0) {
fn_1_1D64(4);
lbl_1_bss_10[1] = 60;
}
break;
case 4:
if(--lbl_1_bss_10[1] == 0) {
sp8[0] = sp8[1] = 0;
for(temp_r31=0; temp_r31<4; temp_r31++) {
temp_r29 = fn_1_1D74(temp_r31);
sp10[temp_r29][sp8[temp_r29]++] = temp_r31;
}
lbl_1_bss_3AA = fn_1_1CB8();
switch(lbl_1_bss_3AA) {
case -1:
lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character;
lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character;
MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1);
GWPlayerCoinWinSet(sp10[0][0], 10);
GWPlayerCoinWinSet(sp10[0][1], 10);
HuAudSStreamPlay(1);
break;
case 0:
MGSeqDrawCreate();
HuAudSStreamPlay(4);
break;
case 1:
lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character;
lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character;
MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1);
GWPlayerCoinWinSet(sp10[1][0], 10);
GWPlayerCoinWinSet(sp10[1][1], 10);
HuAudSStreamPlay(1);
break;
}
fn_1_1D64(5);
lbl_1_bss_10[1] = 210;
}
break;
case 5:
if(--lbl_1_bss_10[1] == 0) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_C64;
}
break;
}
for(temp_r31=0; temp_r31<4; temp_r31++) {
CZoomM[temp_r31] = CZoom;
CRotM[temp_r31] = CRot;
CenterM[temp_r31] = Center;
}
if(omSysExitReq && !WipeStatGet()) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_C64;
}
s32 temp_r31;
s32 temp_r29;
s32 sp10[2][4];
s32 sp8[2];
switch (fn_1_1D54()) {
case 0:
lbl_1_bss_3C2 = 60;
lbl_1_bss_3C0 = 60;
fn_1_1D64(1);
lbl_1_bss_10[1] = 60;
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
HuAudFXPlay(1736);
break;
case 1:
if (fn_1_10F4() == 2) {
if (lbl_1_bss_10[1] != 0) {
if (--lbl_1_bss_10[1] == 0) {
lbl_1_bss_3BC = MGSeqStartCreate();
HuAudStreamPlay("sound/mu_047a.adp", 1);
}
}
else {
if (MGSeqStatGet(lbl_1_bss_3BC) == 0) {
fn_1_1D64(2);
HuAudFXPlay(1738);
lbl_1_bss_3B8 = MGSeqTimerCreate(60);
fn_1_1638(1);
}
if (lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) {
lbl_1_data_70 = HuAudSeqPlay(67);
}
}
}
break;
case 2:
if (--lbl_1_bss_3C0 == 0) {
lbl_1_bss_3C2--;
MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2);
lbl_1_bss_3C0 = 60;
}
if (!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) {
fn_1_1D64(3);
lbl_1_bss_10[1] = 60;
lbl_1_bss_3BC = MGSeqFinishCreate();
HuAudStreamFadeOut(30);
HuAudSeqFadeOut(lbl_1_data_70, 100);
}
break;
case 3:
if (lbl_1_bss_3B8 >= 0) {
MGSeqParamSet(lbl_1_bss_3B8, 2, -1);
lbl_1_bss_3B8 = -1;
}
if (MGSeqStatGet(lbl_1_bss_3BC) == 0) {
fn_1_1D64(4);
lbl_1_bss_10[1] = 60;
}
break;
case 4:
if (--lbl_1_bss_10[1] == 0) {
sp8[0] = sp8[1] = 0;
for (temp_r31 = 0; temp_r31 < 4; temp_r31++) {
temp_r29 = fn_1_1D74(temp_r31);
sp10[temp_r29][sp8[temp_r29]++] = temp_r31;
}
lbl_1_bss_3AA = fn_1_1CB8();
switch (lbl_1_bss_3AA) {
case -1:
lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character;
lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character;
MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1);
GWPlayerCoinWinSet(sp10[0][0], 10);
GWPlayerCoinWinSet(sp10[0][1], 10);
HuAudSStreamPlay(1);
break;
case 0:
MGSeqDrawCreate();
HuAudSStreamPlay(4);
break;
case 1:
lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character;
lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character;
MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1);
GWPlayerCoinWinSet(sp10[1][0], 10);
GWPlayerCoinWinSet(sp10[1][1], 10);
HuAudSStreamPlay(1);
break;
}
fn_1_1D64(5);
lbl_1_bss_10[1] = 210;
}
break;
case 5:
if (--lbl_1_bss_10[1] == 0) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_C64;
}
break;
}
for (temp_r31 = 0; temp_r31 < 4; temp_r31++) {
CZoomM[temp_r31] = CZoom;
CRotM[temp_r31] = CRot;
CenterM[temp_r31] = Center;
}
if (omSysExitReq && !WipeStatGet()) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_C64;
}
}
void fn_1_C64(omObjData *object)
{
if(WipeStatGet()) {
return;
}
fn_1_1E44();
fn_1_4964();
fn_1_6A84();
fn_1_1684();
MGSeqKillAll();
HuAudFadeOut(1);
omOvlReturnEx(1, 1);
OSReport("******* M434Exit *********\n");
if (WipeStatGet()) {
return;
}
fn_1_1E44();
fn_1_4964();
fn_1_6A84();
fn_1_1684();
MGSeqKillAll();
HuAudFadeOut(1);
omOvlReturnEx(1, 1);
OSReport("******* M434Exit *********\n");
}
void fn_1_E44(omObjData *object);
@ -264,20 +262,19 @@ void fn_1_1A10(float arg0);
void fn_1_CC8(omObjData *object)
{
lbl_1_bss_8[0] = 0;
lbl_1_bss_8[1] = 140;
fn_1_16D8();
fn_1_1950(302, 0, 125, -188, -24, 28, 0);
fn_1_1A00(1);
object->func = fn_1_E44;
omSetStatBit(object, 0x100);
object->model[0] = Hu3DModelCreateFile(0x410007);
Hu3DModelCameraSet(object->model[0], 4);
Hu3DModelLayerSet(object->model[0], 4);
Hu3DModelPosSet(object->model[0], -50, -40, -540);
Hu3DMotionSpeedSet(object->model[0], 1);
Hu3DModelRotSet(object->model[0], 0, 70, 0);
lbl_1_bss_8[0] = 0;
lbl_1_bss_8[1] = 140;
fn_1_16D8();
fn_1_1950(302, 0, 125, -188, -24, 28, 0);
fn_1_1A00(1);
object->func = fn_1_E44;
omSetStatBit(object, 0x100);
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x07));
Hu3DModelCameraSet(object->model[0], 4);
Hu3DModelLayerSet(object->model[0], 4);
Hu3DModelPosSet(object->model[0], -50, -40, -540);
Hu3DMotionSpeedSet(object->model[0], 1);
Hu3DModelRotSet(object->model[0], 0, 70, 0);
}
s32 lbl_1_data_A4[] = { 74, 98 };
@ -287,335 +284,326 @@ void fn_1_10BC(omObjData *object);
void fn_1_E44(omObjData *object)
{
ModelData *temp_r31;
s32 temp_r30;
Vec sp8;
switch(lbl_1_bss_8[0]) {
case 0:
if(--lbl_1_bss_8[1] == 0) {
Hu3DModelAttrSet(object->model[0], 1);
lbl_1_bss_8[0] = 1;
}
for(temp_r30=0; temp_r30<2u; temp_r30++) {
if(lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) {
temp_r31 = &Hu3DData[object->model[0]];
sp8.x = temp_r31->pos.x+(lbl_1_data_AC[temp_r30]*cosd(temp_r31->rot.y));
sp8.y = -15.000001f;
sp8.z = temp_r31->pos.z-(lbl_1_data_AC[temp_r30]*sind(temp_r31->rot.y));
if(temp_r30 == 0) {
fn_1_47EC(&sp8);
HuAudFXPlay(1731);
} else {
fn_1_43AC(&sp8);
HuAudFXPlay(1739);
}
}
}
lbl_1_bss_4++;
break;
case 1:
lbl_1_bss_0 += 0.02f;
if(lbl_1_bss_0 >= 1.0f) {
lbl_1_bss_8[0] = 2;
lbl_1_bss_0 = 1.0f;
object->func = fn_1_10BC;
}
fn_1_1A10(lbl_1_bss_0);
break;
}
ModelData *temp_r31;
s32 temp_r30;
Vec sp8;
switch (lbl_1_bss_8[0]) {
case 0:
if (--lbl_1_bss_8[1] == 0) {
Hu3DModelAttrSet(object->model[0], 1);
lbl_1_bss_8[0] = 1;
}
for (temp_r30 = 0; temp_r30 < 2u; temp_r30++) {
if (lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) {
temp_r31 = &Hu3DData[object->model[0]];
sp8.x = temp_r31->pos.x + (lbl_1_data_AC[temp_r30] * cosd(temp_r31->rot.y));
sp8.y = -15.000001f;
sp8.z = temp_r31->pos.z - (lbl_1_data_AC[temp_r30] * sind(temp_r31->rot.y));
if (temp_r30 == 0) {
fn_1_47EC(&sp8);
HuAudFXPlay(1731);
}
else {
fn_1_43AC(&sp8);
HuAudFXPlay(1739);
}
}
}
lbl_1_bss_4++;
break;
case 1:
lbl_1_bss_0 += 0.02f;
if (lbl_1_bss_0 >= 1.0f) {
lbl_1_bss_8[0] = 2;
lbl_1_bss_0 = 1.0f;
object->func = fn_1_10BC;
}
fn_1_1A10(lbl_1_bss_0);
break;
}
}
void fn_1_1788(void);
void fn_1_10BC(omObjData *object)
{
fn_1_1788();
fn_1_1788();
object->func = NULL;
fn_1_1788();
fn_1_1788();
object->func = NULL;
}
s32 fn_1_10F4(void)
{
return lbl_1_bss_8[0];
return lbl_1_bss_8[0];
}
void fn_1_1150(omObjData *object);
u16 lbl_1_data_B4[6] = {
0, 1, 2, 3, 4, 4
};
u16 lbl_1_data_B4[6] = { 0, 1, 2, 3, 4, 4 };
float lbl_1_data_C0[6][2] = {
0,0,
0,0,
-33,-2,
-9,-2,
11,-2,
31,-2
};
float lbl_1_data_C0[6][2] = { 0, 0, 0, 0, -33, -2, -9, -2, 11, -2, 31, -2 };
float lbl_1_data_F0[2][2] = {
104, 56,
472, 56
};
float lbl_1_data_F0[2][2] = { 104, 56, 472, 56 };
typedef struct work_1150 {
s32 unk0;
s16 unk4;
s16 unk6[6];
u16 unk12;
s32 unk0;
s16 unk4;
s16 unk6[6];
u16 unk12;
} Work1150;
void fn_1_1104(Process *objman)
{
lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150);
lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150);
}
void fn_1_1470(omObjData *object);
void fn_1_1150(omObjData *object)
{
Work1150 *temp_r31;
u32 temp_r30;
s32 temp_r29;
temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2*sizeof(Work1150), MEMORY_DEFAULT_NUM);
object->data = temp_r31;
memset(object->data, 0, 2*sizeof(Work1150));
for(temp_r29=0; temp_r29<2; temp_r31++, temp_r29++) {
for(temp_r30=0; temp_r30<6; temp_r30++) {
switch(lbl_1_data_B4[temp_r30]) {
case 0:
temp_r31->unk6[temp_r30] = espEntry(0x61001D, 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0);
espTPLvlSet(temp_r31->unk6[temp_r30], 0.5);
break;
case 1:
temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? 0x61001B : 0x61001C, 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
break;
case 2:
temp_r31->unk6[temp_r30] = espEntry(0x41000C, 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75);
break;
case 3:
temp_r31->unk6[temp_r30] = espEntry(0x41000D, 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
break;
case 4:
temp_r31->unk6[temp_r30] = espEntry(0x610033, 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 255);
break;
}
espDispOff(temp_r31->unk6[temp_r30]);
espDrawNoSet(temp_r31->unk6[temp_r30], 0);
espAttrSet(temp_r31->unk6[temp_r30], 1);
espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0]+lbl_1_data_C0[temp_r30][0], lbl_1_data_F0[temp_r29][1]+lbl_1_data_C0[temp_r30][1]);
}
temp_r31->unk0 = -1;
}
HuDataDirClose(0x610000);
object->func = fn_1_1470;
Work1150 *temp_r31;
u32 temp_r30;
s32 temp_r29;
temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(Work1150), MEMORY_DEFAULT_NUM);
object->data = temp_r31;
memset(object->data, 0, 2 * sizeof(Work1150));
for (temp_r29 = 0; temp_r29 < 2; temp_r31++, temp_r29++) {
for (temp_r30 = 0; temp_r30 < 6; temp_r30++) {
switch (lbl_1_data_B4[temp_r30]) {
case 0:
temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0);
espTPLvlSet(temp_r31->unk6[temp_r30], 0.5);
break;
case 1:
temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B) : DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
break;
case 2:
temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M434, 0x0C), 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75);
break;
case 3:
temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M434, 0x0D), 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 256);
break;
case 4:
temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0);
espPriSet(temp_r31->unk6[temp_r30], 255);
break;
}
espDispOff(temp_r31->unk6[temp_r30]);
espDrawNoSet(temp_r31->unk6[temp_r30], 0);
espAttrSet(temp_r31->unk6[temp_r30], 1);
espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0] + lbl_1_data_C0[temp_r30][0],
lbl_1_data_F0[temp_r29][1] + lbl_1_data_C0[temp_r30][1]);
}
temp_r31->unk0 = -1;
}
HuDataDirClose(DATADIR_MGCONST);
object->func = fn_1_1470;
}
void fn_1_1470(omObjData *object)
{
float temp_f31;
Work1150 *temp_r31;
s32 temp_r30;
s32 temp_r29;
temp_r31 = object->data;
for(temp_r29=0; temp_r29<2; temp_r29++, temp_r31++) {
if(temp_r31->unk0 >= 0) {
if(temp_r31->unk0 == 0) {
for(temp_r30=0; temp_r30<6; temp_r30++) {
espDispOn(temp_r31->unk6[temp_r30]);
}
temp_r31->unk0++;
}
if(temp_r31->unk12) {
temp_r31->unk12--;
temp_f31 = (0.5*sind((180.0f*temp_r31->unk12)/16.0f))+1.0;
espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31);
espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31);
}
espBankSet(temp_r31->unk6[4], temp_r31->unk4/10);
espBankSet(temp_r31->unk6[5], temp_r31->unk4%10);
}
}
float temp_f31;
Work1150 *temp_r31;
s32 temp_r30;
s32 temp_r29;
temp_r31 = object->data;
for (temp_r29 = 0; temp_r29 < 2; temp_r29++, temp_r31++) {
if (temp_r31->unk0 >= 0) {
if (temp_r31->unk0 == 0) {
for (temp_r30 = 0; temp_r30 < 6; temp_r30++) {
espDispOn(temp_r31->unk6[temp_r30]);
}
temp_r31->unk0++;
}
if (temp_r31->unk12) {
temp_r31->unk12--;
temp_f31 = (0.5 * sind((180.0f * temp_r31->unk12) / 16.0f)) + 1.0;
espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31);
espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31);
}
espBankSet(temp_r31->unk6[4], temp_r31->unk4 / 10);
espBankSet(temp_r31->unk6[5], temp_r31->unk4 % 10);
}
}
}
void fn_1_1638(s32 arg0)
{
Work1150 *temp_r31;
s32 temp_r30;
temp_r31 = lbl_1_bss_3C4->data;
for(temp_r30=0; temp_r30<2; temp_r30++, temp_r31++) {
temp_r31->unk0 = 0;
}
Work1150 *temp_r31;
s32 temp_r30;
temp_r31 = lbl_1_bss_3C4->data;
for (temp_r30 = 0; temp_r30 < 2; temp_r30++, temp_r31++) {
temp_r31->unk0 = 0;
}
}
void fn_1_1684(void)
{
HuMemDirectFree(lbl_1_bss_3C4->data);
HuMemDirectFree(lbl_1_bss_3C4->data);
}
void fn_1_16B4(void)
{
lbl_1_bss_39C = 0;
lbl_1_bss_18 = 0;
lbl_1_bss_39C = 0;
lbl_1_bss_18 = 0;
}
void fn_1_16D8(void)
{
CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++];
temp_r31->zoom = CZoom;
temp_r31->pos.x = Center.x;
temp_r31->pos.y = Center.y;
temp_r31->pos.z = Center.z;
temp_r31->rot.x = CRot.x;
temp_r31->rot.y = CRot.y;
temp_r31->rot.z = CRot.z;
CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++];
temp_r31->zoom = CZoom;
temp_r31->pos.x = Center.x;
temp_r31->pos.y = Center.y;
temp_r31->pos.z = Center.z;
temp_r31->rot.x = CRot.x;
temp_r31->rot.y = CRot.y;
temp_r31->rot.z = CRot.z;
}
void fn_1_1788(void)
{
CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C];
CZoom = temp_r31->zoom;
Center.x = temp_r31->pos.x;
Center.y = temp_r31->pos.y;
Center.z = temp_r31->pos.z;
CRot.x = temp_r31->rot.x;
CRot.y = temp_r31->rot.y;
CRot.z = temp_r31->rot.z;
CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C];
CZoom = temp_r31->zoom;
Center.x = temp_r31->pos.x;
Center.y = temp_r31->pos.y;
Center.z = temp_r31->pos.z;
CRot.x = temp_r31->rot.x;
CRot.y = temp_r31->rot.y;
CRot.z = temp_r31->rot.z;
}
void fn_1_1838(CameraView *arg0)
{
CameraView *temp_r30;
CameraView sp8;
sp8 = lbl_1_bss_1C[lbl_1_bss_39C++];
temp_r30 = &sp8;
memcpy(temp_r30, arg0, sizeof(CameraView));
CZoom = arg0->zoom;
Center.x = arg0->pos.x;
Center.y = arg0->pos.y;
Center.z = arg0->pos.z;
CRot.x = arg0->rot.x;
CRot.y = arg0->rot.y;
CRot.z = arg0->rot.z;
CameraView *temp_r30;
CameraView sp8;
sp8 = lbl_1_bss_1C[lbl_1_bss_39C++];
temp_r30 = &sp8;
memcpy(temp_r30, arg0, sizeof(CameraView));
CZoom = arg0->zoom;
Center.x = arg0->pos.x;
Center.y = arg0->pos.y;
Center.z = arg0->pos.z;
CRot.x = arg0->rot.x;
CRot.y = arg0->rot.y;
CRot.z = arg0->rot.z;
}
void fn_1_1950(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6)
{
CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++];
temp_r31->zoom = CZoom = arg0;
temp_r31->pos.x = Center.x = arg1;
temp_r31->pos.y = Center.y = arg2;
temp_r31->pos.z = Center.z = arg3;
temp_r31->rot.x = CRot.x = arg4;
temp_r31->rot.y = CRot.y = arg5;
temp_r31->rot.z = CRot.z = arg6;
CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++];
temp_r31->zoom = CZoom = arg0;
temp_r31->pos.x = Center.x = arg1;
temp_r31->pos.y = Center.y = arg2;
temp_r31->pos.z = Center.z = arg3;
temp_r31->rot.x = CRot.x = arg4;
temp_r31->rot.y = CRot.y = arg5;
temp_r31->rot.z = CRot.z = arg6;
}
void fn_1_1A00(s32 arg0)
{
lbl_1_bss_18 = arg0;
lbl_1_bss_18 = arg0;
}
#define LERP_PARAM(view1, view2, field, weight) ((view1)->field+)
#define LERP_PARAM(view1, view2, field, weight) ((view1)->field +)
void fn_1_1A10(float arg0)
{
float weight;
CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C-1];
CameraView *view2 = view1-1;
if(lbl_1_bss_39C < 2) {
return;
}
switch(lbl_1_bss_18) {
case 0:
weight = arg0;
break;
case 1:
weight = sind(90.0f*arg0);
break;
case 2:
weight = sind(90.0f*arg0);
weight *= weight;
break;
}
CZoom = view1->zoom+(weight*(view2->zoom-view1->zoom));
Center.x = view1->pos.x+(weight*(view2->pos.x-view1->pos.x));
Center.y = view1->pos.y+(weight*(view2->pos.y-view1->pos.y));
Center.z = view1->pos.z+(weight*(view2->pos.z-view1->pos.z));
CRot.x = view1->rot.x+(weight*(view2->rot.x-view1->rot.x));
CRot.y = view1->rot.y+(weight*(view2->rot.y-view1->rot.y));
CRot.z = view1->rot.z+(weight*(view2->rot.z-view1->rot.z));
float weight;
CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C - 1];
CameraView *view2 = view1 - 1;
if (lbl_1_bss_39C < 2) {
return;
}
switch (lbl_1_bss_18) {
case 0:
weight = arg0;
break;
case 1:
weight = sind(90.0f * arg0);
break;
case 2:
weight = sind(90.0f * arg0);
weight *= weight;
break;
}
CZoom = view1->zoom + (weight * (view2->zoom - view1->zoom));
Center.x = view1->pos.x + (weight * (view2->pos.x - view1->pos.x));
Center.y = view1->pos.y + (weight * (view2->pos.y - view1->pos.y));
Center.z = view1->pos.z + (weight * (view2->pos.z - view1->pos.z));
CRot.x = view1->rot.x + (weight * (view2->rot.x - view1->rot.x));
CRot.y = view1->rot.y + (weight * (view2->rot.y - view1->rot.y));
CRot.z = view1->rot.z + (weight * (view2->rot.z - view1->rot.z));
}
void fn_1_1C44(s32 arg0, s32 arg1)
{
Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0];
temp_r31->unk4 += arg1;
temp_r31->unk12 = 16;
Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0];
temp_r31->unk4 += arg1;
temp_r31->unk12 = 16;
}
s32 fn_1_1C88(s32 arg0)
{
Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0];
return temp_r31->unk4;
Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0];
return temp_r31->unk4;
}
s32 fn_1_1CB8(void)
{
s32 temp_r31 = fn_1_1C88(0);
s32 temp_r30 = fn_1_1C88(1);
if(temp_r31 == temp_r30) {
return 0;
}
if(temp_r31 > temp_r30) {
return -1;
} else {
return 1;
}
s32 temp_r31 = fn_1_1C88(0);
s32 temp_r30 = fn_1_1C88(1);
if (temp_r31 == temp_r30) {
return 0;
}
if (temp_r31 > temp_r30) {
return -1;
}
else {
return 1;
}
}
s16 fn_1_1D44(void)
{
return lbl_1_bss_3C2;
return lbl_1_bss_3C2;
}
s32 fn_1_1D54(void)
{
return lbl_1_bss_10[0];
return lbl_1_bss_10[0];
}
void fn_1_1D64(s32 arg0)
{
lbl_1_bss_10[0] = arg0;
lbl_1_bss_10[0] = arg0;
}
s32 fn_1_1D74(s32 arg0)
{
return lbl_1_bss_3A0[arg0];
return lbl_1_bss_3A0[arg0];
}
s32 fn_1_1D8C(void)
{
return lbl_1_bss_3AA;
return lbl_1_bss_3AA;
}
void fn_1_1D9C(void)
{
lbl_1_bss_3A8 = 1;
lbl_1_bss_3A8 = 1;
}

File diff suppressed because it is too large Load diff

View file

@ -2324,7 +2324,7 @@ void fn_1_62BC(void *arg0)
// var_r30->unk_2C = 0.01f;
// var_r30->unk_28 = 0.01f;
// var_r30->unk_24 = 0.01f;
// var_r30->unk_7C = Hu3DModelCreateFile(0x45000B);
// var_r30->unk_7C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M438, 0x0B));
// var_r30->unk_7E = (30.0f * (0.000015258789f * fn_1_7DB4())) + 0x1E;
// var_r29 = 0;
// loop_6:

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -23,14 +23,14 @@ s16 lbl_1_bss_70;
s16 lbl_1_data_1D8 = 2;
s16 lbl_1_data_1DA = -1;
u32 lbl_1_data_1DC[8][2] = {
{ 0x5F0000, 0 },
{ 0x5F0002, 0 },
{ 0x5F0003, 0 },
{ 0x5F0038, 0 },
{ 0x5F0048, 0 },
{ 0x5F0017, 0 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x38), 0 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), 0 },
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 },
{ 0x47000C, 1 },
{ 0x5F0036, 0 }
{ DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), 0 }
};
f32 lbl_1_data_21C[4] = {
210.0f, 190.0f, 170.0f, 0.0f
@ -58,7 +58,7 @@ void fn_1_AEE4(omObjData* arg0) {
s16 var_r29;
unkObjStruct* temp_r31;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, 0x10000000);
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, MEMORY_DEFAULT_NUM);
temp_r31 = (unkObjStruct*)arg0->data;
memset(temp_r31, 0, 0x78);
arg0->stat |= 0x100;
@ -1145,4 +1145,4 @@ void fn_1_F4D4(unkObjStruct* arg0, u16 arg1, u16 arg2) {
s32 fn_1_F4FC(s32 arg0) {
return lbl_1_bss_B8[arg0];
}
}

File diff suppressed because it is too large Load diff

View file

@ -422,7 +422,7 @@ void fn_1_A90(Process *arg0)
for (var_r31 = 0; var_r31 < 1; var_r31++) {
omAddObjEx(arg0, 5, 0xA, 0x32, 0, fn_1_E88);
}
lbl_1_bss_11F00 = HuSprAnimRead(HuDataReadNum(0x49000A, MEMORY_DEFAULT_NUM));
lbl_1_bss_11F00 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M442, 0x0A), MEMORY_DEFAULT_NUM));
for (var_r31 = 0; var_r31 < 4; var_r31++) {
lbl_1_bss_11EEC[var_r31] = HuSprAnimRead(HuDataReadNum(sp8[var_r31], MEMORY_DEFAULT_NUM));
}
@ -466,13 +466,13 @@ s32 fn_1_E04(void)
}
s32 lbl_1_data_FC[7] = {
0x5F0000,
0x5F0002,
0x5F0003,
0x5F0005,
0x5F002B,
0x5F0048,
0x5F0018,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2B),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18),
};
s32 lbl_1_data_118[2] = { 0x490010, 0x490018 };
@ -505,7 +505,7 @@ void fn_1_E88(omObjData *object)
object->model[0] = CharModelCreate(var_r26, 8);
Hu3DModelLayerSet(object->model[0], 1);
Hu3DModelShadowSet(object->model[0]);
object->model[1] = Hu3DModelCreateFile(0x490001);
object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x01));
Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]);
var_r30->unk_30 = 0;
for (var_r29 = 0; var_r29 < 7; var_r29++) {
@ -1386,7 +1386,7 @@ void fn_1_3EC0(omObjData *object)
fn_1_4444(var_r31);
}
object->model[3] = Hu3DHookFuncCreate(fn_1_485C);
lbl_1_bss_11F10 = HuSprAnimRead(HuDataSelHeapReadNum(0x49000B, MEMORY_DEFAULT_NUM, HEAP_DATA));
lbl_1_bss_11F10 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M442, 0x0B));
object->model[4] = Hu3DHookFuncCreate(fn_1_54C8);
Hu3DModelLayerSet(object->model[4], 6);
for (var_r31 = 0; var_r31 < 15; var_r31++) {
@ -1394,7 +1394,7 @@ void fn_1_3EC0(omObjData *object)
}
memset(lbl_1_bss_119FC, 0, 0x271);
for (var_r31 = 0; var_r31 < 3; var_r31++) {
lbl_1_bss_11F04[var_r31] = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_1A0[var_r31], MEMORY_DEFAULT_NUM, HEAP_DATA));
lbl_1_bss_11F04[var_r31] = HuSprAnimReadFile(lbl_1_data_1A0[var_r31]);
}
object->model[5] = Hu3DHookFuncCreate(fn_1_5A48);
Hu3DModelLayerSet(object->model[5], 2);
@ -1913,7 +1913,7 @@ void fn_1_6D24(omObjData *object)
memset(var_r29, 0, sizeof(M442MainWork2));
var_r29->unk_16 = lbl_1_bss_11EE0++;
var_r29->unk_18 = 1.0f;
object->model[0] = Hu3DModelCreateFile(0x490002);
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x02));
Hu3DModelLayerSet(object->model[0], 7);
Hu3DModelAttrSet(object->model[0], 0x40000001);
Hu3DModelAttrSet(object->model[0], 1);

View file

@ -39,25 +39,25 @@ s32 fn_1_91AC(Process *arg0, s16 arg1)
var_r31 = lbl_1_bss_11F48->data;
var_r31->unk_08 = arg1;
var_r31->unk_0A = 0;
var_r31->unk_18 = espEntry(0x610023, 2, 0);
var_r31->unk_18 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x23), 2, 0);
espTPLvlSet(var_r31->unk_18, 0.5f);
espPosSet(var_r31->unk_18, 508.0f, 64.0f);
espColorSet(var_r31->unk_18, 0, 0, 0);
var_r31->unk_1A = espEntry(0x610037, 1, 0);
var_r31->unk_1A = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x37), 1, 0);
espPosSet(var_r31->unk_1A, 480.0f, 56.0f);
for (var_r30 = 0; var_r30 < 3; var_r30++) {
var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0);
var_r31->unk_0C[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x30), 0, 0);
espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1F4, 56.0f);
espDispOff(var_r31->unk_0C[var_r30]);
}
for (var_r30 = 0; var_r30 < 3; var_r30++) {
var_r31->unk_0C[var_r30 + 3] = espEntry(0x610031, 1, 0);
var_r31->unk_0C[var_r30 + 3] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x31), 1, 0);
espPosSet(var_r31->unk_0C[var_r30 + 3], (var_r30 * 0x10) + 0x1F4, 74.0f);
}
for (var_r30 = 0; var_r30 < 8; var_r30++) {
espDispOff(var_r31->unk_0C[var_r30]);
}
HuDataDirClose(0x610000);
HuDataDirClose(DATADIR_MGCONST);
return fn_1_9520(0);
}

File diff suppressed because it is too large Load diff

View file

@ -268,11 +268,11 @@ void fn_1_9418(s16 arg0)
Hu3DModelRotSet(lbl_1_bss_2D0, 0, 180, 0);
CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, 0x40000020);
HuPrcSleep(12);
HuWinMesMaxSizeGet(1, sp8, 0x1C000F);
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x0F));
temp_r29 = HuWinCreate(-10000, 340, sp8[0], sp8[1], 1);
HuWinMesSpeedSet(temp_r29, 0);
HuWinBGTPLvlSet(temp_r29, 0);
HuWinMesSet(temp_r29, 0x1C000F);
HuWinMesSet(temp_r29, MAKE_MESSID(0x1C, 0x0F));
CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[2]);
Hu3DModelAttrSet(lbl_1_bss_2D0, 0x40000002);
temp_f29 = Hu3DMotionTimeGet(lbl_1_bss_2D0);
@ -1198,4 +1198,4 @@ void fn_1_D1E0(s16 model)
}
}
lbl_1_bss_1884 = temp_r31;
}
}

View file

@ -14,11 +14,11 @@ unkStruct3* lbl_1_bss_18;
unkStruct2* fn_1_1C64(s32 arg0) {
unkStruct2* temp_r3;
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000U);
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM);
if (!temp_r3) {
return NULL;
}
temp_r3->unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 4, 0x10000000U);
temp_r3->unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 4, MEMORY_DEFAULT_NUM);
if (!temp_r3->unk0) {
HuMemDirectFree(temp_r3);
return NULL;
@ -75,7 +75,7 @@ s32 fn_1_1DEC(unkStruct2* arg0) {
unkStruct3* fn_1_1DF4(void* arg0) {
unkStruct3* temp_r3;
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000);
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM);
if (!temp_r3) {
return NULL;
}
@ -250,7 +250,7 @@ unkStruct4* m446CardCreate(s32 arg0) {
unkStruct4* temp_r31;
unkStruct3* temp_r30;
temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, 0x10000000U);
temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, MEMORY_DEFAULT_NUM);
if (!temp_r31) {
OSReport("[!] m446CardCreate ERROR...\n");
return NULL;
@ -521,4 +521,4 @@ void fn_1_2F64(unkStruct4* arg0) {
Hu3DModelScaleSet(arg0->unkA[0], arg0->unk58, arg0->unk58, arg0->unk58);
Hu3DModelScaleSet(arg0->unkA[1], arg0->unk58, arg0->unk58, arg0->unk58);
Hu3DModelRotSet(arg0->unkA[0], arg0->unk34.x, arg0->unk34.y, arg0->unk34.z);
}
}

View file

@ -1,27 +1,25 @@
#include "REL/m446Dll.h"
#include "math.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "math.h"
// bss
unkStruct3* lbl_1_bss_98;
unkStruct3 *lbl_1_bss_98;
// data
s32 lbl_1_data_3C8[9] = {
0x4D0012, 0x4D0013, 0x4D0014,
0x4D0015, 0x4D0016, 0x4D0017,
0x4D0018, 0x4D0019, 0x4D001A
};
s32 lbl_1_data_3C8[9] = { 0x4D0012, 0x4D0013, 0x4D0014, 0x4D0015, 0x4D0016, 0x4D0017, 0x4D0018, 0x4D0019, 0x4D001A };
s32 fn_1_72E0(void) {
s32 fn_1_72E0(void)
{
lbl_1_bss_98 = NULL;
return 1;
}
void fn_1_72F8(void) {
unkStruct3* var_r31;
unkStruct7* var_r30;
void fn_1_72F8(void)
{
unkStruct3 *var_r31;
unkStruct7 *var_r30;
var_r31 = lbl_1_bss_98;
if (var_r31) {
@ -33,10 +31,11 @@ void fn_1_72F8(void) {
}
}
void fn_1_7350(void) {
void fn_1_7350(void)
{
f32 temp_f31;
unkStruct3* var_r30;
unkStruct7* temp_r31;
unkStruct3 *var_r30;
unkStruct7 *temp_r31;
var_r30 = lbl_1_bss_98;
if (var_r30) {
@ -65,12 +64,13 @@ void fn_1_7350(void) {
}
}
unkStruct7* m446CursorCreate(s32 arg0) {
unkStruct7 *m446CursorCreate(s32 arg0)
{
s32 var_r30;
unkStruct7* var_r31;
unkStruct3* var_r29;
unkStruct7 *var_r31;
unkStruct3 *var_r29;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000);
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, MEMORY_DEFAULT_NUM);
if (!var_r31) {
return NULL;
}
@ -84,7 +84,7 @@ unkStruct7* m446CursorCreate(s32 arg0) {
var_r31->field00_bit3 = 0;
var_r31->unk8 = arg0;
var_r31->unk48 = 0;
var_r31->unkC[0] = Hu3DModelCreateFile(0x4D0009);
var_r31->unkC[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x09));
Hu3DModelLayerSet(var_r31->unkC[0], 6);
if (var_r31->unk8 == 0) {
for (var_r30 = 0; var_r30 < 9; var_r30++) {
@ -101,15 +101,17 @@ unkStruct7* m446CursorCreate(s32 arg0) {
}
if (lbl_1_bss_98) {
fn_1_1EC8(lbl_1_bss_98, var_r29);
} else {
}
else {
lbl_1_bss_98 = var_r29;
}
return var_r31;
}
void fn_1_76E8(unkStruct7* arg0) {
void fn_1_76E8(unkStruct7 *arg0)
{
s32 var_r29;
unkStruct3* var_r31;
unkStruct3 *var_r31;
var_r31 = lbl_1_bss_98;
if (var_r31) {
@ -134,7 +136,8 @@ void fn_1_76E8(unkStruct7* arg0) {
}
}
void fn_1_77C8(unkStruct7* arg0, u8 arg1) {
void fn_1_77C8(unkStruct7 *arg0, u8 arg1)
{
s32 var_r30;
arg0->field00_bit0 = 1;
@ -144,14 +147,16 @@ void fn_1_77C8(unkStruct7* arg0, u8 arg1) {
for (var_r30 = 0; var_r30 < 9; var_r30++) {
if (var_r30 == arg1) {
Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], 1);
} else {
}
else {
Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], 1);
}
}
}
}
void fn_1_7884(unkStruct7* arg0) {
void fn_1_7884(unkStruct7 *arg0)
{
s32 var_r30;
arg0->field00_bit0 = 0;
@ -163,7 +168,8 @@ void fn_1_7884(unkStruct7* arg0) {
}
}
void fn_1_7908(unkStruct7* arg0, Vec* arg1, s32 arg2) {
void fn_1_7908(unkStruct7 *arg0, Vec *arg1, s32 arg2)
{
arg0->unk38 = *arg1;
arg0->unk2C = arg0->unk20;
arg0->unk4C = 0.0f;
@ -171,7 +177,8 @@ void fn_1_7908(unkStruct7* arg0, Vec* arg1, s32 arg2) {
arg0->field00_bit1 = 1;
}
void fn_1_799C(unkStruct7* arg0) {
void fn_1_799C(unkStruct7 *arg0)
{
s32 var_r30;
if (arg0->unk8 == 0) {
@ -183,7 +190,8 @@ void fn_1_799C(unkStruct7* arg0) {
arg0->field00_bit3 = 1;
}
void fn_1_7A38(unkStruct7* arg0) {
void fn_1_7A38(unkStruct7 *arg0)
{
s32 var_r31;
if (arg0->unk8 == 0) {
@ -194,7 +202,8 @@ void fn_1_7A38(unkStruct7* arg0) {
arg0->field00_bit3 = 0;
}
void fn_1_7AB4(unkStruct7* arg0) {
void fn_1_7AB4(unkStruct7 *arg0)
{
f32 var_f31;
s32 temp_r29;
s32 var_r30;
@ -208,10 +217,11 @@ void fn_1_7AB4(unkStruct7* arg0) {
Hu3DModelScaleSet(arg0->unkC[temp_r29], arg0->unk44, arg0->unk44, arg0->unk44);
if (arg0->field00_bit2 != 0) {
var_f31 = 180.0f;
} else {
}
else {
var_f31 = 0.0f;
}
Hu3DModelRotSet(arg0->unkC[temp_r29], 0.0f, var_f31, 0.0f);
}
}
}
}

View file

@ -18,7 +18,7 @@ unkStruct5* fn_1_3064(void) {
s32 var_r30;
unkStruct5* temp_r3;
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, 0x10000000);
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM);
if (!temp_r3) {
return NULL;
}
@ -184,4 +184,4 @@ void fn_1_38E0(u32 arg0) {
s32 fn_1_38F0(void) {
return ((lbl_1_bss_20 = (lbl_1_bss_20 * 0x41C64E6D) + 0x3039) >> 16) % 32768;
}
}

View file

@ -96,7 +96,7 @@ unkStruct* m446FlowCreate(void) {
s32 var_r30;
unkStruct* temp_r3;
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, 0x10000000);
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, MEMORY_DEFAULT_NUM);
if (temp_r3 == 0) {
OSReport("[!] m446FlowCreate() ERROR...\n");
return NULL;
@ -635,9 +635,9 @@ s32 fn_1_1970(s16 arg0, s32 arg1, s32 arg2, s32 arg3) {
}
static const s32 lbl_1_rodata_18[12] = {
0x180003, 0x180004, 0x180005, 0x180006,
0x180007, 0x180008, 0x180009, 0x18000A,
0x18000B, 0x18000C, 0x18000D, 0
MAKE_MESSID(0x18, 0x03), MAKE_MESSID(0x18, 0x04), MAKE_MESSID(0x18, 0x05), MAKE_MESSID(0x18, 0x06),
MAKE_MESSID(0x18, 0x07), MAKE_MESSID(0x18, 0x08), MAKE_MESSID(0x18, 0x09), MAKE_MESSID(0x18, 0x0A),
MAKE_MESSID(0x18, 0x0B), MAKE_MESSID(0x18, 0x0C), MAKE_MESSID(0x18, 0x0D), 0
};
void fn_1_19D4(void) {
@ -652,11 +652,11 @@ void fn_1_19D4(void) {
HuWinBGTPLvlSet(temp_r3, 0.8f);
HuWinMesSpeedSet(temp_r3, 1);
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, 0x180001);
HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x01));
fn_1_18EC(temp_r3, 0x3C);
if (lbl_1_bss_10 < 2) {
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, 0x180002);
HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x02));
var_r30 = fn_1_1970(temp_r3, 0, 1, 0x3C);
} else {
var_r30 = 1;
@ -670,7 +670,7 @@ void fn_1_19D4(void) {
}
} else {
HuWinMesColSet(temp_r3, 0);
HuWinMesSet(temp_r3, 0x18000D);
HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x0D));
fn_1_18EC(temp_r3, 0x3C);
}
HuWinExAnimOut(temp_r3);

View file

@ -1,48 +1,102 @@
#include "REL/m446Dll.h"
#include "math.h"
#include "game/chrman.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/chrman.h"
#include "game/pad.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "math.h"
// cursor.c
extern unkStruct7 *m446CursorCreate(s32);
extern void fn_1_76E8(unkStruct7*);
extern void fn_1_77C8(unkStruct7*, u8);
extern void fn_1_76E8(unkStruct7 *);
extern void fn_1_77C8(unkStruct7 *, u8);
// bss
unkStruct3 *lbl_1_bss_30;
// data
s32 lbl_1_data_228[9] = {
0x4D000A, 0x4D000B, 0x4D000C,
0x4D000D, 0x4D000E, 0x4D000F,
0x4D0010, 0x4D0011, 0x4D0021
DATA_MAKE_NUM(DATADIR_M446, 10),
DATA_MAKE_NUM(DATADIR_M446, 11),
DATA_MAKE_NUM(DATADIR_M446, 12),
DATA_MAKE_NUM(DATADIR_M446, 13),
DATA_MAKE_NUM(DATADIR_M446, 14),
DATA_MAKE_NUM(DATADIR_M446, 15),
DATA_MAKE_NUM(DATADIR_M446, 16),
DATA_MAKE_NUM(DATADIR_M446, 17),
DATA_MAKE_NUM(DATADIR_M446, 33),
};
s32 lbl_1_data_24C[9][4] = {
{ 0x5F0000, 0x5F0036, 0x5F0017, 0x5F0072 },
{ 0x1A0000, 0x1A0036, 0x1A0017, 0x1A0072 },
{ 0x6D0000, 0x6D0036, 0x6D0017, 0x6D0072 },
{ 0x8A0000, 0x8A0036, 0x8A0017, 0x8A0072 },
{ 0x850000, 0x850036, 0x850017, 0x850072 },
{ 0x110000, 0x110036, 0x110017, 0x110072 },
{ 0x0D0000, 0x0D0036, 0x0D0017, 0x0D0072 },
{ 0x810000, 0x810036, 0x810017, 0x810072 },
{ 0x4D0022, 0x4D0023, 0x4D0025, 0x4D0024 }
};
m446Func8 lbl_1_data_2DC[5] = {NULL, fn_1_5B48, fn_1_5C24, fn_1_5D00, fn_1_6074};
s32 fn_1_480C(void) {
s32 lbl_1_data_24C[9][4] = {
{
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 54),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 23),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 54),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 54),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 23),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 54),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 54),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 23),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 54),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 54),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 23),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 54),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 114),
},
{
DATA_MAKE_NUM(DATADIR_M446, 0x22),
DATA_MAKE_NUM(DATADIR_M446, 0x23),
DATA_MAKE_NUM(DATADIR_M446, 0x25),
DATA_MAKE_NUM(DATADIR_M446, 0x24),
},
};
m446Func8 lbl_1_data_2DC[5] = { NULL, fn_1_5B48, fn_1_5C24, fn_1_5D00, fn_1_6074 };
s32 fn_1_480C(void)
{
lbl_1_bss_30 = 0;
return 1;
}
void fn_1_4824(void) {
unkStruct3* var_r31;
void* var_r30;
void fn_1_4824(void)
{
unkStruct3 *var_r31;
void *var_r30;
var_r31 = lbl_1_bss_30;
if (var_r31) {
@ -54,10 +108,11 @@ void fn_1_4824(void) {
}
}
void fn_1_487C(void) {
void fn_1_487C(void)
{
f32 temp_f31;
unkStruct8* temp_r31;
unkStruct3* var_r30;
unkStruct8 *temp_r31;
unkStruct3 *var_r30;
var_r30 = lbl_1_bss_30;
if (var_r30) {
@ -100,43 +155,48 @@ void fn_1_487C(void) {
}
}
unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1)
{
f32 var_f31;
s32 var_r27;
s32 var_r26;
s16 var_r25;
s16 var_r24;
unkStruct3* var_r28;
unkStruct3 *var_r28;
s32 var_r30;
unkStruct8* var_r31;
unkStruct8 *var_r31;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, 0x10000000);
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, MEMORY_DEFAULT_NUM);
if (!var_r31) {
return NULL;
}
var_r31->unk0 = arg0;
if (GWPlayerCfg[arg0].iscom != 0) {
var_r27 = 1;
} else {
}
else {
var_r27 = 0;
}
var_r31->unk68 = var_r27;
var_r31->unk4 = arg1;
if (GWPlayerCfg[arg0].character == 0xB) {
var_r26 = 1;
} else {
}
else {
var_r26 = 0;
}
var_r31->unk70 = var_r26;
if (var_r31->unk70 != 0) {
var_r25 = 8;
} else {
}
else {
var_r25 = GWPlayerCfg[arg0].character;
}
var_r31->unk64 = var_r25;
if (var_r31->unk68 != 0) {
var_r24 = 4;
} else {
}
else {
var_r24 = GWPlayerCfg[arg0].pad_idx;
}
var_r31->unk66 = var_r24;
@ -147,7 +207,8 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
var_r31->unk48.x = 0.0f;
if (var_r31->unk70 != 0) {
var_f31 = 70.0f;
} else {
}
else {
var_f31 = 0.0f;
}
var_r31->unk48.y = var_f31;
@ -163,7 +224,7 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
var_r31->unk1C = 0;
var_r31->unk98 = 0;
var_r31->unkB4 = 0;
for (var_r30 = 0; var_r30 < 3; var_r30++) {
var_r31->unk2C[var_r30] = NULL;
}
@ -174,19 +235,20 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
}
fn_1_7884(var_r31->unk8);
switch (var_r31->unk0) {
case 0:
var_r31->unk48.z = 150.0f;
var_r31->unk54.y = 180.0f;
break;
case 1:
var_r31->unk48.z = -150.0f;
var_r31->unk54.y = 0.0f;
break;
case 0:
var_r31->unk48.z = 150.0f;
var_r31->unk54.y = 180.0f;
break;
case 1:
var_r31->unk48.z = -150.0f;
var_r31->unk54.y = 0.0f;
break;
}
if (var_r31->unk70 != 0) {
var_r31->unk3C[0] = Hu3DModelCreateFile(0x4D0020);
var_r31->unk3C[1] = Hu3DModelCreateFile(0x4D0021);
} else {
var_r31->unk3C[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x20));
var_r31->unk3C[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x21));
}
else {
var_r31->unk3C[0] = CharModelCreate(var_r31->unk64, 2);
var_r31->unk3C[1] = Hu3DModelCreateFile(lbl_1_data_228[var_r31->unk64]);
}
@ -199,11 +261,12 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
Hu3DModelAttrSet(var_r31->unk3C[1], 1);
Hu3DModelPosSet(var_r31->unk3C[1], 2000.0f, 2000.0f, 2000.0f);
fn_1_637C(var_r31, 0);
for (var_r30 = 0; var_r30 < 4; var_r30++) {
if (var_r31->unk70 != 0) {
var_r31->unk40[var_r30] = Hu3DJointMotionFile(var_r31->unk3C[0], lbl_1_data_24C[var_r31->unk64][var_r30]);
} else {
}
else {
var_r31->unk40[var_r30] = CharModelMotionCreate(var_r31->unk64, lbl_1_data_24C[var_r31->unk64][var_r30]);
}
}
@ -212,7 +275,8 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
}
if (var_r31->unk70 != 0) {
Hu3DMotionSet(var_r31->unk3C[0], var_r31->unk40[0]);
} else {
}
else {
CharModelMotionSet(var_r31->unk64, var_r31->unk40[0]);
}
Hu3DModelAttrSet(var_r31->unk3C[0], 0x40000001);
@ -224,18 +288,20 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
}
if (lbl_1_bss_30) {
fn_1_1EC8(lbl_1_bss_30, var_r28);
} else {
}
else {
lbl_1_bss_30 = var_r28;
}
return var_r31;
}
void fn_1_509C(unkStruct8* arg0) {
void fn_1_509C(unkStruct8 *arg0)
{
s32 var_r29;
unkStruct3* var_r30;
unkStruct3 *var_r30;
var_r30 = lbl_1_bss_30;
do {
if (arg0 == var_r30->unk0) {
if (var_r30 == lbl_1_bss_30) {
@ -243,18 +309,20 @@ void fn_1_509C(unkStruct8* arg0) {
}
fn_1_1F04(var_r30);
fn_1_1E5C(var_r30);
for (var_r29 = 0; var_r29 < 4; var_r29++) {
if (arg0->unk70 != 0) {
Hu3DMotionKill(arg0->unk40[var_r29]);
} else {
}
else {
CharModelMotionKill(arg0->unk64, arg0->unk40[var_r29]);
}
}
if (arg0->unk70 != 0) {
Hu3DModelKill(arg0->unk3C[0]);
Hu3DModelKill(arg0->unk3C[1]);
} else {
}
else {
CharModelKill(arg0->unk64);
Hu3DModelKill(arg0->unk3C[1]);
}
@ -266,7 +334,8 @@ void fn_1_509C(unkStruct8* arg0) {
} while (var_r30);
}
s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
s32 m446PlayerAppendCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2)
{
Vec sp18;
Vec spC;
s32 temp_r0_2;
@ -278,13 +347,13 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
OSReport("m446PlayerAppendCard ERROR...\n");
return 0;
}
for (var_r29 = 0; var_r29 < 3; var_r29++) {
if (!arg0->unk2C[var_r29]) {
break;
}
}
if (var_r29 == 3) {
OSReport("m446PlayerAppendCard ERROR...\n");
return 0;
@ -302,15 +371,15 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
sp18.z = -45.0f;
break;
}
spC = arg1->unk34;
switch (arg0->unk0) {
case 0:
spC.y = 0.0f;
break;
case 1:
spC.y = 180.0f;
break;
case 0:
spC.y = 0.0f;
break;
case 1:
spC.y = 180.0f;
break;
}
switch (arg2) {
case 0:
@ -336,14 +405,16 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
if ((arg0->unk24 != 0) && (temp_r28 == 0)) {
HuAudFXPlay(0x76B);
fn_1_64BC(arg0, 1, 0x3C);
} else if ((arg0->unk20 != 0) && (temp_r27 == 0)) {
}
else if ((arg0->unk20 != 0) && (temp_r27 == 0)) {
HuAudFXPlay(0x76B);
fn_1_64BC(arg0, 0, 0x3C);
}
return 1;
}
s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
s32 m446PlayerRemoveCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2)
{
Vec spC;
s32 var_r30;
@ -351,7 +422,7 @@ s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
OSReport("m446PlayerRemoveCard ERROR...\n");
return 0;
}
for (var_r30 = 0; var_r30 < 3; var_r30++) {
if (arg0->unk2C[var_r30] == arg1) {
break;
@ -377,7 +448,8 @@ s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) {
return 1;
}
s32 fn_1_5648(unkStruct8* arg0, s32 arg1, unkStruct4** arg2) {
s32 fn_1_5648(unkStruct8 *arg0, s32 arg1, unkStruct4 **arg2)
{
if ((arg1 < 0) || (arg1 >= 3)) {
return 0;
}
@ -385,7 +457,8 @@ s32 fn_1_5648(unkStruct8* arg0, s32 arg1, unkStruct4** arg2) {
return 1;
}
s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
s32 fn_1_5678(unkStruct8 *arg0, unkStruct4 **arg1, s32 arg2)
{
s32 sp14[3];
Vec sp8;
s32 var_r28;
@ -394,7 +467,7 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
s32 var_r24;
s32 var_r27;
s32 var_r26;
unkStruct4* var_r29;
unkStruct4 *var_r29;
var_r27 = 0;
var_r26 = 0;
@ -412,14 +485,15 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
break;
}
}
} else {
}
else {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
var_r29 = arg0->unk2C[var_r30];
if (var_r29->unk0 != arg0->unk28) {
break;
}
}
var_r24 = fn_1_4720(arg0->unk4, var_r29->unk0);
if (var_r24 >= 2) {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
@ -429,11 +503,13 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
break;
}
}
} else {
}
else {
arg0->unk74 = (fn_1_38F0() % 3);
}
}
} else {
}
else {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
var_r29 = arg0->unk2C[var_r30];
sp14[var_r30] = fn_1_4720(arg0->unk4, var_r29->unk0);
@ -450,7 +526,8 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
}
if (var_r28 == 5) {
arg0->unk74 = (fn_1_38F0() % 3);
} else {
}
else {
arg0->unk74 = var_r30;
}
}
@ -459,22 +536,24 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
}
if (arg0->unk7C > 0) {
arg0->unk7C--;
} else {
}
else {
var_r27 = arg0->unk74 < arg0->unk10;
var_r26 = arg0->unk74 > arg0->unk10;
var_r25 = arg0->unk74 == arg0->unk10;
arg0->unk7C = 0x12;
}
} else {
}
else {
switch (arg0->unk0) {
case 0:
var_r27 = (HuPadDStkRep[arg0->unk66] & 1) != 0;
var_r26 = (HuPadDStkRep[arg0->unk66] & 2) != 0;
break;
case 1:
var_r27 = (HuPadDStkRep[arg0->unk66] & 2) != 0;
var_r26 = (HuPadDStkRep[arg0->unk66] & 1) != 0;
break;
case 0:
var_r27 = (HuPadDStkRep[arg0->unk66] & 1) != 0;
var_r26 = (HuPadDStkRep[arg0->unk66] & 2) != 0;
break;
case 1:
var_r27 = (HuPadDStkRep[arg0->unk66] & 2) != 0;
var_r26 = (HuPadDStkRep[arg0->unk66] & 1) != 0;
break;
}
var_r25 = (HuPadBtnDown[arg0->unk66] & 0x100) != 0;
}
@ -513,19 +592,22 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) {
return 0;
}
void fn_1_5B34(unkStruct8* arg0) {
void fn_1_5B34(unkStruct8 *arg0)
{
arg0->unk18 = 1;
arg0->unk1C = 0;
}
static const s32 lbl_1_rodata_1C8[4] = {0, 1, 2, 3};
static const s32 lbl_1_rodata_1C8[4] = { 0, 1, 2, 3 };
void fn_1_5B48(unkStruct8* arg0) {
void fn_1_5B48(unkStruct8 *arg0)
{
switch (arg0->unk1C) {
case 0:
if (arg0->unk70 != 0) {
Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[2], 0.0f, 10.0f, 0);
} else {
}
else {
CharModelMotionShiftSet(arg0->unk64, arg0->unk40[2], 0.0f, 10.0f, 0);
}
arg0->unk1C = 1;
@ -537,17 +619,20 @@ void fn_1_5B48(unkStruct8* arg0) {
}
}
void fn_1_5C10(unkStruct8* arg0) {
void fn_1_5C10(unkStruct8 *arg0)
{
arg0->unk18 = 2;
arg0->unk1C = 0;
}
void fn_1_5C24(unkStruct8* arg0) {
void fn_1_5C24(unkStruct8 *arg0)
{
switch (arg0->unk1C) {
case 0:
if (arg0->unk70 != 0) {
Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[3], 0.0f, 10.0f, 0);
} else {
}
else {
CharModelMotionShiftSet(arg0->unk64, arg0->unk40[3], 0.0f, 10.0f, 0);
}
arg0->unk1C = 1;
@ -559,12 +644,14 @@ void fn_1_5C24(unkStruct8* arg0) {
}
}
void fn_1_5CEC(unkStruct8* arg0) {
void fn_1_5CEC(unkStruct8 *arg0)
{
arg0->unk18 = 3;
arg0->unk1C = 0;
}
void fn_1_5D00(unkStruct8* arg0) {
void fn_1_5D00(unkStruct8 *arg0)
{
Vec sp8;
sp8 = arg0->unk54;
@ -573,7 +660,8 @@ void fn_1_5D00(unkStruct8* arg0) {
Hu3DModelAmbSet(arg0->unk3C[0], 0.8f, 0.8f, 0.8f);
if (arg0->unk70 != 0) {
Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[1], 0.0f, 10.0f, 0U);
} else {
}
else {
CharModelMotionShiftSet(arg0->unk64, arg0->unk40[1], 0.0f, 10.0f, 0x40000001U);
Hu3DMotionStartEndSet(arg0->unk3C[0], 0.0f, 59.0f);
}
@ -589,7 +677,8 @@ void fn_1_5D00(unkStruct8* arg0) {
}
}
void fn_1_5E54(unkStruct8* arg0, s32 arg1) {
void fn_1_5E54(unkStruct8 *arg0, s32 arg1)
{
Vec sp14;
Vec sp8;
f32 var_f31;
@ -598,11 +687,12 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) {
if (arg0->unk70 != 0) {
var_f31 = 95.0f;
} else {
}
else {
var_f31 = 80.0f;
}
sp14.y = var_f31;
switch (arg0->unk0) {
case 0:
sp14.x = -30.0f + (30.0f * arg1);
@ -615,14 +705,16 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) {
sp14.x = 30.0f - (30.0f * arg1);
if (arg0->unk70 != 0) {
var_f30 = 30.0f;
} else {
}
else {
var_f30 = 55.0f;
}
sp14.z = -50.0f - var_f30;
sp8.x = 0.0f;
if (arg0->unk70 != 0) {
var_f29 = 180.0f;
} else {
}
else {
var_f29 = -90.0f;
}
sp8.y = var_f29;
@ -635,11 +727,12 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) {
arg0->unk1C = 0;
}
void fn_1_6074(unkStruct8* arg0) {
void fn_1_6074(unkStruct8 *arg0)
{
Vec sp8;
f32 var_f31;
f32 var_f30;
switch (arg0->unk1C) {
case 0:
arg0->unk1C = 1;
@ -648,7 +741,8 @@ void fn_1_6074(unkStruct8* arg0) {
sp8 = arg0->unk48;
if (arg0->unk0 == 0) {
var_f31 = -25.0f;
} else {
}
else {
var_f31 = 25.0f;
}
sp8.z += var_f31;
@ -658,7 +752,8 @@ void fn_1_6074(unkStruct8* arg0) {
arg0->unk14 = 0;
break;
case 2:
if (arg0->unk14++ < 0x1E) break;
if (arg0->unk14++ < 0x1E)
break;
arg0->unk1C = 3;
case 3:
Hu3DModelAttrSet(arg0->unk3C[1], 0x40000001);
@ -669,13 +764,15 @@ void fn_1_6074(unkStruct8* arg0) {
if (arg0->unk14 == 1) {
Hu3DModelAttrReset(arg0->unk3C[1], 0x40000001);
}
if (arg0->unk14++ < 0x1E) break;
if (arg0->unk14++ < 0x1E)
break;
arg0->unk1C = 5;
case 5:
sp8 = arg0->unk48;
if (arg0->unk0 == 0) {
var_f30 = -50.0f;
} else {
}
else {
var_f30 = 50.0f;
}
sp8.z -= var_f30;
@ -691,7 +788,8 @@ void fn_1_6074(unkStruct8* arg0) {
}
}
void fn_1_6264(unkStruct8* arg0, Vec* arg1, s32 arg2) {
void fn_1_6264(unkStruct8 *arg0, Vec *arg1, s32 arg2)
{
arg0->unk8C = *arg1;
arg0->unk80 = arg0->unk54;
arg0->unkB8 = 0.0f;
@ -699,7 +797,8 @@ void fn_1_6264(unkStruct8* arg0, Vec* arg1, s32 arg2) {
arg0->unk98 = 1;
}
void fn_1_62F0(unkStruct8* arg0, Vec* arg1, s32 arg2) {
void fn_1_62F0(unkStruct8 *arg0, Vec *arg1, s32 arg2)
{
arg0->unkA8 = *arg1;
arg0->unk9C = arg0->unk48;
arg0->unkC0 = 0.0f;
@ -707,7 +806,8 @@ void fn_1_62F0(unkStruct8* arg0, Vec* arg1, s32 arg2) {
arg0->unkB4 = 1;
}
void fn_1_637C(unkStruct8* arg0, s32 arg1) {
void fn_1_637C(unkStruct8 *arg0, s32 arg1)
{
f32 var_f31;
arg0->unkC8 = arg1;
@ -719,7 +819,8 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) {
arg0->unk48.x = 0.0f;
if (arg0->unk70 != 0) {
var_f31 = 70.0f;
} else {
}
else {
var_f31 = 0.0f;
}
arg0->unk48.y = var_f31;
@ -732,8 +833,8 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) {
arg0->unk48.z = -150.0f;
arg0->unk54.y = 0.0f;
return;
}
break;
}
break;
case 1:
Hu3DModelAttrReset(arg0->unk3C[1], 1);
Hu3DModelAttrSet(arg0->unk3C[0], 1);
@ -741,31 +842,35 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) {
}
}
void fn_1_64BC(unkStruct8* arg0, s32 arg1, s32 arg2) {
void fn_1_64BC(unkStruct8 *arg0, s32 arg1, s32 arg2)
{
if (arg0->unk70 == 0) {
switch (arg1) {
case 0:
omVibrate(arg0->unk0, arg2, 6, 6);
return;
case 1:
omVibrate(arg0->unk0, arg2, 4, 2);
return;
case 2:
omVibrate(arg0->unk0, arg2, 12, 0);
break;
case 0:
omVibrate(arg0->unk0, arg2, 6, 6);
return;
case 1:
omVibrate(arg0->unk0, arg2, 4, 2);
return;
case 2:
omVibrate(arg0->unk0, arg2, 12, 0);
break;
}
}
}
static inline unkStruct8UnkC8(unkStruct8* arg0) {
static inline unkStruct8UnkC8(unkStruct8 *arg0)
{
if (arg0->unkC8 == 0) {
return 0;
} else {
}
else {
return 1;
}
}
void fn_1_6578(unkStruct8* arg0) {
void fn_1_6578(unkStruct8 *arg0)
{
s32 var_r30;
var_r30 = unkStruct8UnkC8(arg0);
@ -774,16 +879,17 @@ void fn_1_6578(unkStruct8* arg0) {
Hu3DModelScaleSet(arg0->unk3C[var_r30], arg0->unk60, arg0->unk60, arg0->unk60);
}
void fn_1_6620(unkStruct8* arg0) {
void fn_1_6620(unkStruct8 *arg0)
{
s32 var_r26;
unkStruct4* temp_r27;
unkStruct4* temp_r30;
unkStruct4 *temp_r27;
unkStruct4 *temp_r30;
s32 var_r29;
s32 var_r28;
arg0->unk20 = 0;
arg0->unk24 = 0;
for (var_r29 = 0; var_r29 < 3; var_r29++) {
temp_r30 = arg0->unk2C[var_r29];
if (temp_r30) {
@ -794,7 +900,7 @@ void fn_1_6620(unkStruct8* arg0) {
var_r26 = 0;
temp_r30 = arg0->unk2C[var_r29];
if (temp_r30) {
for (var_r28 = 0; var_r28 < 3; var_r28++) {
temp_r27 = arg0->unk2C[var_r28];
if ((var_r29 != var_r28) && (temp_r27) && (temp_r30->unk0 == temp_r27->unk0)) {
@ -805,10 +911,11 @@ void fn_1_6620(unkStruct8* arg0) {
arg0->unk28 = temp_r30->unk0;
if (var_r26 == 1) {
arg0->unk20 = 1;
} else if (var_r26 == 2) {
}
else if (var_r26 == 2) {
arg0->unk24 = 1;
}
for (var_r28 = 0; var_r28 < 3; var_r28++) {
temp_r27 = arg0->unk2C[var_r28];
if ((temp_r27) && (temp_r30->unk0 == temp_r27->unk0)) {
@ -819,4 +926,4 @@ void fn_1_6620(unkStruct8* arg0) {
}
}
}
}
}

View file

@ -108,7 +108,7 @@ unkStruct9* m446StageCreate(void) {
unkStruct3* temp_ret;
unkStruct9* var_r31;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000);
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM);
if (!var_r31) {
return NULL;
}
@ -208,4 +208,4 @@ void fn_1_852C(unkStruct9* arg0) {
void fn_1_860C(unkStruct9* arg0) {
arg0->unk28 = 1;
}
}

View file

@ -3,16 +3,18 @@
#include "game/pad.h"
// bss
unkStruct3* lbl_1_bss_28;
unkStruct3 *lbl_1_bss_28;
s32 fn_1_3924(void) {
s32 fn_1_3924(void)
{
lbl_1_bss_28 = NULL;
return 1;
}
void fn_1_393C(void) {
unkStruct3* var_r31;
unkStruct6* var_r30;
void fn_1_393C(void)
{
unkStruct3 *var_r31;
unkStruct6 *var_r30;
var_r31 = lbl_1_bss_28;
if (var_r31) {
@ -24,9 +26,10 @@ void fn_1_393C(void) {
}
}
void fn_1_3994(void) {
unkStruct4* sp8;
unkStruct3* var_r31;
void fn_1_3994(void)
{
unkStruct4 *sp8;
unkStruct3 *var_r31;
var_r31 = lbl_1_bss_28;
if (var_r31) {
@ -37,16 +40,17 @@ void fn_1_3994(void) {
}
}
unkStruct6* fn_1_39D0(void) {
unkStruct6 *fn_1_39D0(void)
{
s32 var_r30;
unkStruct3* var_r29;
unkStruct6* var_r31;
unkStruct3 *var_r29;
unkStruct6 *var_r31;
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, 0x10000000);
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, MEMORY_DEFAULT_NUM);
if (!var_r31) {
return NULL;
}
var_r31->unk4 = Hu3DModelCreateFile(0x4D0005);
var_r31->unk4 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x05));
Hu3DModelAmbSet(var_r31->unk4, 0.0f, 0.0f, 0.0f);
Hu3DModelShadowMapSet(var_r31->unk4);
Hu3DModelLayerSet(var_r31->unk4, 0);
@ -55,7 +59,7 @@ unkStruct6* fn_1_39D0(void) {
var_r31->unk60 = 10;
var_r31->unk5C = 0;
var_r31->unk6C = 0;
for (var_r30 = 0; var_r30 < 21; var_r30++) {
var_r31->unk8[var_r30] = NULL;
}
@ -68,14 +72,16 @@ unkStruct6* fn_1_39D0(void) {
}
if (lbl_1_bss_28) {
fn_1_1EC8(lbl_1_bss_28, var_r29);
} else {
}
else {
lbl_1_bss_28 = var_r29;
}
return var_r31;
}
void fn_1_3B4C(unkStruct6* arg0) {
unkStruct3* var_r31;
void fn_1_3B4C(unkStruct6 *arg0)
{
unkStruct3 *var_r31;
var_r31 = lbl_1_bss_28;
do {
@ -94,11 +100,12 @@ void fn_1_3B4C(unkStruct6* arg0) {
} while (var_r31);
}
s32 fn_1_3BF0(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) {
s32 fn_1_3BF0(unkStruct6 *arg0, unkStruct4 *arg1, s32 arg2)
{
Vec sp18;
Vec spC;
s32 temp_r29;
if (arg0->unk5C >= 21) {
return 0;
}
@ -138,10 +145,11 @@ s32 fn_1_3BF0(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) {
return 1;
}
s32 fn_1_3EB4(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) {
s32 fn_1_3EB4(unkStruct6 *arg0, unkStruct4 *arg1, s32 arg2)
{
Vec spC;
s32 var_r31;
for (var_r31 = 0; var_r31 < 0x15; var_r31++) {
if (arg0->unk8[var_r31] == arg1) {
arg0->unk8[var_r31] = NULL;
@ -165,7 +173,8 @@ s32 fn_1_3EB4(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) {
return 1;
}
s32 fn_1_3FD0(unkStruct6* arg0, s32 arg1, unkStruct4** arg2) {
s32 fn_1_3FD0(unkStruct6 *arg0, s32 arg1, unkStruct4 **arg2)
{
if ((arg1 < 0) || (arg1 >= 0x15)) {
return 0;
}
@ -173,21 +182,24 @@ s32 fn_1_3FD0(unkStruct6* arg0, s32 arg1, unkStruct4** arg2) {
return 1;
}
void fn_1_4000(unkStruct6* arg0, s32 arg1) {
void fn_1_4000(unkStruct6 *arg0, s32 arg1)
{
s32 var_r31;
unkStruct4* var_r30;
unkStruct4 *var_r30;
for (var_r31 = 0; var_r31 < 21; var_r31++) {
if (arg1 != 0) {
var_r30 = arg0->unk8[20 - var_r31];
} else {
}
else {
var_r30 = arg0->unk8[var_r31];
}
if ((var_r30) && (var_r30->unk64 == 0)) {
if (arg1 != 0) {
arg0->unk60 = (0x14 - var_r31);
return;
} else {
}
else {
arg0->unk60 = var_r31;
return;
}
@ -195,11 +207,12 @@ void fn_1_4000(unkStruct6* arg0, s32 arg1) {
}
}
s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s32 arg5) {
s32 fn_1_4088(unkStruct6 *arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4 **arg4, s32 arg5)
{
Vec sp10;
s32 var_r28;
s32 var_r27;
unkStruct4* temp_r26;
unkStruct4 *temp_r26;
s32 var_r25;
s32 var_r24;
s32 var_r23;
@ -214,11 +227,13 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
*arg4 = NULL;
if (arg2 >= 4) {
if (arg0->unk6C == 0) {
arg0->unk64 = (s32) (fn_1_38F0() % 21);
arg0->unk64 = (s32)(fn_1_38F0() % 21);
do {
if (!(temp_r26 = arg0->unk8[arg0->unk64]) || temp_r26->unk64 != 0) {
arg0->unk64 = ++arg0->unk64 % 21;
} else break;
}
else
break;
(void)temp_r26;
} while (TRUE);
arg0->unk6C = 1;
@ -226,7 +241,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
}
if ((arg0->unk68 > 0) && (arg5 == 0)) {
arg0->unk68 = (arg0->unk68 - 1);
} else {
}
else {
var_r28 = (arg0->unk64 / 7) < (arg0->unk60 / 7);
var_r27 = (arg0->unk64 / 7) > (arg0->unk60 / 7);
if ((var_r28 == 0) && (var_r27 == 0)) {
@ -236,7 +252,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
var_r23 = arg0->unk64 == arg0->unk60;
arg0->unk68 = 0x12;
}
} else if (arg5 == 0) {
}
else if (arg5 == 0) {
var_r25 = (HuPadDStkRep[arg2] & 1) != 0;
var_r24 = (HuPadDStkRep[arg2] & 2) != 0;
var_r28 = (HuPadDStkRep[arg2] & 8) != 0;
@ -246,7 +263,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
if (var_r25 != 0) {
if ((arg0->unk60 % 7) == 0) {
arg0->unk60 = (arg0->unk60 + 6);
} else {
}
else {
arg0->unk60 = (arg0->unk60 - 1);
}
HuAudFXPlay(0);
@ -254,7 +272,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
if (var_r24 != 0) {
if ((arg0->unk60 % 7) == 6) {
arg0->unk60 = (arg0->unk60 - 6);
} else {
}
else {
arg0->unk60 = (arg0->unk60 + 1);
}
HuAudFXPlay(0);
@ -262,7 +281,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
if (var_r28 != 0) {
if ((arg0->unk60 / 7) == 0) {
arg0->unk60 = (arg0->unk60 + 0xE);
} else {
}
else {
arg0->unk60 = (arg0->unk60 - 7);
}
HuAudFXPlay(0);
@ -270,7 +290,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
if (var_r27 != 0) {
if ((arg0->unk60 / 7) == 2) {
arg0->unk60 = (arg0->unk60 - 0xE);
} else {
}
else {
arg0->unk60 = (arg0->unk60 + 7);
}
HuAudFXPlay(0);
@ -295,36 +316,39 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s
return 1;
}
HuAudFXPlay(4);
} else {
HuAudFXPlay(4);
}
else {
HuAudFXPlay(4);
}
}
return 0;
}
void fn_1_46AC(unkStruct6* arg0) {
arg0->unk8[0] = (unkStruct4*)-1;
arg0->unk8[6] = (unkStruct4*)-1;
arg0->unk8[14] = (unkStruct4*)-1;
arg0->unk8[20] = (unkStruct4*)-1;
void fn_1_46AC(unkStruct6 *arg0)
{
arg0->unk8[0] = (unkStruct4 *)-1;
arg0->unk8[6] = (unkStruct4 *)-1;
arg0->unk8[14] = (unkStruct4 *)-1;
arg0->unk8[20] = (unkStruct4 *)-1;
}
void fn_1_46D0(unkStruct6* arg0) {
void fn_1_46D0(unkStruct6 *arg0)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 21; var_r31++) {
if (arg0->unk8[var_r31] == (unkStruct4*)-1) {
if (arg0->unk8[var_r31] == (unkStruct4 *)-1) {
arg0->unk8[var_r31] = 0;
}
}
}
s32 fn_1_4720(unkStruct6* arg0, s32 arg1) {
s32 fn_1_4720(unkStruct6 *arg0, s32 arg1)
{
s32 var_r29;
s32 var_r30;
unkStruct4* temp_r31;
unkStruct4 *temp_r31;
for (var_r29 = 0, var_r30 = 0; var_r30 < 21; var_r30++) {
temp_r31 = arg0->unk8[var_r30];
if ((temp_r31) && (temp_r31->unk64 == 0) && ((temp_r31->unk0 == arg1) || (arg1 == 5))) {
@ -334,15 +358,15 @@ s32 fn_1_4720(unkStruct6* arg0, s32 arg1) {
return var_r29;
}
void fn_1_4798(unkStruct6* arg0) {
unkStruct4* temp_r31;
void fn_1_4798(unkStruct6 *arg0)
{
unkStruct4 *temp_r31;
s32 var_r30;
for (var_r30 = 0; var_r30 < 0x15; var_r30++) {
temp_r31 = arg0->unk8[var_r30];
if (temp_r31 && (temp_r31->unk64 != 0)) {
fn_1_2794(temp_r31);
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,52 +1,52 @@
#include "REL/mgmodedll.h"
DataListModel lbl_1_data_490[] = {
{ 0x620000, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620001, 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620002, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620003, 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620004, 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x62005E, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x62005F, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620060, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620061, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620007, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x620008, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
};
DataListSprite lbl_1_data_768[] = {
{ 0x62000C, 0, 10, 288, -200, { 255, 255, 255, 255 } },
{ 0x620009, 0, 10, 288, -200, { 255, 255, 255, 255 } },
{ 0x62000A, 0, 10, 288, -200, { 255, 255, 255, 255 } },
{ 0x62000D, 4, 100, 288, 240, { 255, 255, 255, 255 } },
{ 0x620018, 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ 0x62001A, 4, 20, 288, 240, { 255, 255, 255, 255 } },
{ 0x62001B, 4, 30, 288, 240, { 255, 255, 255, 255 } },
{ 0x62001C, 4, 40, 288, 240, { 255, 255, 255, 255 } },
{ 0x62001D, 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ 0x62001E, 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ 0x62001F, 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ 0x620020, 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ 0x620021, 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ 0x620025, 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ 0x62000E, 4, 210, 288, 240, { 255, 255, 255, 255 } },
{ 0x62000F, 4, 210, 288, 240, { 255, 255, 255, 255 } },
{ 0x620019, 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ 0x620028, 4, 10, 288, 240, { 255, 255, 255, 255 } },
{ 0x620028, 4, 10, 288, 240, { 255, 255, 255, 255 } },
{ 0x62002A, 4, 10, 288, 240, { 255, 255, 255, 255 } },
{ 0x62002E, 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ 0x62002F, 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ 0x620032, 4, 5, 288, 240, { 255, 255, 255, 255 } },
{ 0x620031, 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ 0x620030, 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ 0x620029, 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ 0x620029, 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ 0x620033, 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ 0x620034, 4, 50, 288, 256, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } },
{ 0, 0, 0, 0, 0, { 0, 0, 0, 0 } },
};
@ -128,4 +128,4 @@ void fn_1_26BB0(void)
espKill(lbl_1_bss_2C2C[i]);
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1321,7 +1321,7 @@ void fn_1_6C18(void)
HuSprInit();
espInit();
HuPrcVSleep();
sprite = espEntry(0x860020, 5000, 0);
sprite = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 0x20), 5000, 0);
espPosSet(sprite, 288.0, 240.0);
espAttrReset(sprite, 4);
Hu3DBGColorSet(0, 0, 0);
@ -1337,4 +1337,4 @@ void fn_1_6C18(void)
while(WipeStatGet()) {
HuPrcVSleep();
}
}
}

View file

@ -1,14 +1,13 @@
#include "REL/mgmodedll.h"
#include "game/gamework_data.h"
#include "game/gamework.h"
#include "game/wipe.h"
#include "game/audio.h"
#include "game/gamework.h"
#include "game/gamework_data.h"
#include "game/wipe.h"
#include "game/chrman.h"
#include "math.h"
s16 lbl_1_bss_2C80[13];
s16 lbl_1_bss_2C66[13];
s16 lbl_1_bss_2C2C[29];
@ -24,25 +23,25 @@ s16 lbl_1_bss_20AA;
s16 lbl_1_bss_20A8;
s32 lbl_1_data_9C0[8] = {
0x005F0000,
0x001A0000,
0x006D0000,
0x008A0000,
0x00850000,
0x00110000,
0x000D0000,
0x00810000
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00),
};
s32 lbl_1_data_9E0[8] = {
0x005E0000,
0x00190000,
0x006C0000,
0x00890000,
0x00840000,
0x00100000,
0x000C0000,
0x00800000
DATADIR_MARIOMDL1,
DATADIR_LUIGIMDL1,
DATADIR_PEACHMDL1,
DATADIR_YOSHIMDL1,
DATADIR_WARIOMDL1,
DATADIR_DONKEYMDL1,
DATADIR_DAISYMDL1,
DATADIR_WALUIGIMDL1,
};
s16 lbl_1_data_A00 = -1;
@ -51,111 +50,111 @@ void fn_1_26C54(s16 layer);
void fn_1_26C28(void)
{
Hu3DLayerHookSet(2, fn_1_26C54);
Hu3DLayerHookSet(2, fn_1_26C54);
}
void fn_1_26C54(s16 layer)
{
Mtx44 proj;
Mtx modelview;
Vec pos, target, up;
GXColor color;
CameraData *camera = &Hu3DCamera[0];
MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far);
GXSetProjection(proj, GX_PERSPECTIVE);
GXSetViewport(0, 0, 640, 480, 0, 1);
GXSetScissor(0, 0, 640, 480);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
color.a = 255;
GXSetTevColor(GX_TEVREG0, color);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetNumTexGens(0);
GXSetNumTevStages(01);
GXSetCullMode(GX_CULL_NONE);
GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0);
GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE);
pos.x = pos.y = pos.z = 0;
target.x = target.y = 0;
target.z = -100;
up.x = up.z = 0;
up.y = 1;
MTXLookAt(modelview, &pos, &up, &target);
GXLoadPosMtxImm(modelview, GX_PNMTX0);
pos.x = (10000.0f*(-sin(camera->fov/2.0f)))*1.2f;
pos.y = (10000.0f*(-sin(camera->fov/2.0f)))*(5.0f/6.0f);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(-pos.x, -pos.y, -10000.0f);
GXPosition3f32(pos.x, -pos.y, -10000.0f);
GXPosition3f32(pos.x, pos.y, -10000.0f);
GXPosition3f32(-pos.x, pos.y, -10000.0f);
GXEnd();
Mtx44 proj;
Mtx modelview;
Vec pos, target, up;
GXColor color;
CameraData *camera = &Hu3DCamera[0];
MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far);
GXSetProjection(proj, GX_PERSPECTIVE);
GXSetViewport(0, 0, 640, 480, 0, 1);
GXSetScissor(0, 0, 640, 480);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
color.a = 255;
GXSetTevColor(GX_TEVREG0, color);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetNumTexGens(0);
GXSetNumTevStages(01);
GXSetCullMode(GX_CULL_NONE);
GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0);
GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE);
pos.x = pos.y = pos.z = 0;
target.x = target.y = 0;
target.z = -100;
up.x = up.z = 0;
up.y = 1;
MTXLookAt(modelview, &pos, &up, &target);
GXLoadPosMtxImm(modelview, GX_PNMTX0);
pos.x = (10000.0f * (-sin(camera->fov / 2.0f))) * 1.2f;
pos.y = (10000.0f * (-sin(camera->fov / 2.0f))) * (5.0f / 6.0f);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(-pos.x, -pos.y, -10000.0f);
GXPosition3f32(pos.x, -pos.y, -10000.0f);
GXPosition3f32(pos.x, pos.y, -10000.0f);
GXPosition3f32(-pos.x, pos.y, -10000.0f);
GXEnd();
}
void fn_1_27080(void)
{
s16 i;
s32 status;
CharModelDataClose(-1);
CharKill(-1);
for(i=0; i<4; i++) {
status = HuDataDirReadAsync(lbl_1_data_9C0[GWPlayerCfg[i].character]);
if(status != -1) {
while(!HuDataGetAsyncStat(status)) {
HuPrcVSleep();
}
}
CharARAMOpen(GWPlayerCfg[i].character);
}
for(i=0; i<2; i++) {
status = HuDataDirReadAsync(lbl_1_data_9E0[GWPlayerCfg[i].character]);
if(status != -1) {
while(!HuDataGetAsyncStat(status)) {
HuPrcVSleep();
}
}
}
lbl_1_bss_20AA = 0;
HuPrcEnd();
while(1) {
HuPrcVSleep();
}
s16 i;
s32 status;
CharModelDataClose(-1);
CharKill(-1);
for (i = 0; i < 4; i++) {
status = HuDataDirReadAsync(lbl_1_data_9C0[GWPlayerCfg[i].character]);
if (status != -1) {
while (!HuDataGetAsyncStat(status)) {
HuPrcVSleep();
}
}
CharARAMOpen(GWPlayerCfg[i].character);
}
for (i = 0; i < 2; i++) {
status = HuDataDirReadAsync(lbl_1_data_9E0[GWPlayerCfg[i].character]);
if (status != -1) {
while (!HuDataGetAsyncStat(status)) {
HuPrcVSleep();
}
}
}
lbl_1_bss_20AA = 0;
HuPrcEnd();
while (1) {
HuPrcVSleep();
}
}
s16 fn_1_271B4(s16 mgNo, s16 x, s16 y)
{
s16 time;
AnimData *anim;
s16 sprite;
s32 mgpic;
if(mgNo == -1) {
if(lbl_1_data_A00 == -1) {
s16 time;
AnimData *anim;
s16 sprite;
s32 mgpic;
if (mgNo == -1) {
if (lbl_1_data_A00 == -1) {
return;
}
for(time=0; time<=10; time++) {
HuSprGrpTPLvlSet(lbl_1_data_A00, 1.0-(time/10.0));
}
for (time = 0; time <= 10; time++) {
HuSprGrpTPLvlSet(lbl_1_data_A00, 1.0 - (time / 10.0));
HuPrcVSleep();
}
HuSprGrpKill(lbl_1_data_A00);
lbl_1_data_A00 = -1;
return;
}
if(lbl_1_data_A00 != -1) {
}
if (lbl_1_data_A00 != -1) {
HuSprGrpKill(lbl_1_data_A00);
}
lbl_1_data_A00 = HuSprGrpCreate(1);
mgpic = mgInfoTbl[mgNo].mg_pic[0];
if(GWMGAvailGet(mgNo+401)) {
if (GWMGAvailGet(mgNo + 401)) {
anim = HuSprAnimReadFile(mgpic);
} else {
anim = HuSprAnimReadFile(0x62002C);
}
else {
anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2C));
}
sprite = HuSprCreate(anim, 100, 0);
HuSprGrpMemberSet(lbl_1_data_A00, 0, sprite);
@ -167,110 +166,111 @@ s16 fn_1_271B4(s16 mgNo, s16 x, s16 y)
void fn_1_27418(void)
{
s16 i;
s16 j;
for(i=0; i<4; i++) {
lbl_1_bss_2C1C[i] = i;
}
for(i=0; i<4; i++) {
for(j=0; j<3-i; j++) {
if(GWPlayerCfg[lbl_1_bss_2C1C[j]].group > GWPlayerCfg[lbl_1_bss_2C1C[j+1]].group) {
s16 temp = lbl_1_bss_2C1C[j];
lbl_1_bss_2C1C[j] = lbl_1_bss_2C1C[j+1];
lbl_1_bss_2C1C[j+1] = temp;
}
}
}
for(i=0; i<4; i++) {
s16 charNo;
lbl_1_bss_2C24[i] = charNo = GWPlayerCfg[lbl_1_bss_2C1C[i]].character;
lbl_1_bss_2C14[i] = CharModelCreate(charNo, 2);
lbl_1_bss_2BC4[i][0] = CharModelMotionCreate(charNo, 0x5F0000);
lbl_1_bss_2BC4[i][1] = CharModelMotionCreate(charNo, 0x5F0002);
lbl_1_bss_2BC4[i][2] = CharModelMotionCreate(charNo, 0x5F0003);
lbl_1_bss_2BC4[i][3] = CharModelMotionCreate(charNo, 0x5F0048);
lbl_1_bss_2BC4[i][4] = CharModelMotionCreate(charNo, 0x5F0049);
lbl_1_bss_2BC4[i][5] = CharModelMotionCreate(charNo, 0x5F0017);
lbl_1_bss_2BC4[i][6] = CharModelMotionCreate(charNo, 0x5F0018);
CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][1], 0);
CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][2], 0);
Hu3DModelPosSet(lbl_1_bss_2C14[i], 600, 0, 800);
Hu3DModelLayerSet(lbl_1_bss_2C14[i], 3);
CharModelDataClose(charNo);
Hu3DModelShadowSet(lbl_1_bss_2C14[i]);
}
s16 i;
s16 j;
for (i = 0; i < 4; i++) {
lbl_1_bss_2C1C[i] = i;
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 3 - i; j++) {
if (GWPlayerCfg[lbl_1_bss_2C1C[j]].group > GWPlayerCfg[lbl_1_bss_2C1C[j + 1]].group) {
s16 temp = lbl_1_bss_2C1C[j];
lbl_1_bss_2C1C[j] = lbl_1_bss_2C1C[j + 1];
lbl_1_bss_2C1C[j + 1] = temp;
}
}
}
for (i = 0; i < 4; i++) {
s16 charNo;
lbl_1_bss_2C24[i] = charNo = GWPlayerCfg[lbl_1_bss_2C1C[i]].character;
lbl_1_bss_2C14[i] = CharModelCreate(charNo, 2);
lbl_1_bss_2BC4[i][0] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00));
lbl_1_bss_2BC4[i][1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02));
lbl_1_bss_2BC4[i][2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03));
lbl_1_bss_2BC4[i][3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48));
lbl_1_bss_2BC4[i][4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49));
lbl_1_bss_2BC4[i][5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17));
lbl_1_bss_2BC4[i][6] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18));
CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][1], 0);
CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][2], 0);
Hu3DModelPosSet(lbl_1_bss_2C14[i], 600, 0, 800);
Hu3DModelLayerSet(lbl_1_bss_2C14[i], 3);
CharModelDataClose(charNo);
Hu3DModelShadowSet(lbl_1_bss_2C14[i]);
}
}
s32 fn_1_2783C(s16 evtno)
{
s16 i;
omOvlHisData *his;
for(i=0; i<4; i++) {
GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68;
GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60;
GWPlayerCfg[i].pad_idx = lbl_1_bss_8.unk24[i].unk6C;
GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64;
}
WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
HuAudSeqAllFadeOut(1000);
while(WipeStatGet()) {
HuPrcVSleep();
}
CharKill(-1);
for(i=0; i<4; i++) {
CharARAMOpen(GWPlayerCfg[i].character);
}
HuAudVoiceInit(-1);
his = omOvlHisGet(0);
omOvlHisChg(0, OVL_MGMODE, evtno, his->stat);
omOvlCallEx(OVL_INST, 1, 0, 0);
while(1) {
HuPrcVSleep();
}
s16 i;
omOvlHisData *his;
for (i = 0; i < 4; i++) {
GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68;
GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60;
GWPlayerCfg[i].pad_idx = lbl_1_bss_8.unk24[i].unk6C;
GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64;
}
WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
HuAudSeqAllFadeOut(1000);
while (WipeStatGet()) {
HuPrcVSleep();
}
CharKill(-1);
for (i = 0; i < 4; i++) {
CharARAMOpen(GWPlayerCfg[i].character);
}
HuAudVoiceInit(-1);
his = omOvlHisGet(0);
omOvlHisChg(0, OVL_MGMODE, evtno, his->stat);
omOvlCallEx(OVL_INST, 1, 0, 0);
while (1) {
HuPrcVSleep();
}
}
void fn_1_279FC(s32 coinSkipF)
{
s16 i;
s16 mgNum;
for(mgNum=0; mgInfoTbl[mgNum].ovl != 65535; mgNum++);
for(i=0; i<9; i++) {
lbl_1_bss_2638[i] = lbl_1_bss_20AC[i] = 0;
}
for(i=0; i<mgNum; i++) {
s16 type = mgInfoTbl[i].type;
if(type >= 0 && type < 9) {
if(coinSkipF) {
s16 ovl = mgInfoTbl[i].ovl;
if(ovl == OVL_M408 || ovl == OVL_M422 || ovl == OVL_M430) {
continue;
}
}
lbl_1_bss_264C[type][lbl_1_bss_2638[type]] = i;
lbl_1_bss_2638[type]++;
if(GWMGAvailGet(i+401)) {
lbl_1_bss_20C0[type][lbl_1_bss_20AC[type]] = i;
lbl_1_bss_20AC[type]++;
}
}
}
s16 i;
s16 mgNum;
for (mgNum = 0; mgInfoTbl[mgNum].ovl != 65535; mgNum++)
;
for (i = 0; i < 9; i++) {
lbl_1_bss_2638[i] = lbl_1_bss_20AC[i] = 0;
}
for (i = 0; i < mgNum; i++) {
s16 type = mgInfoTbl[i].type;
if (type >= 0 && type < 9) {
if (coinSkipF) {
s16 ovl = mgInfoTbl[i].ovl;
if (ovl == OVL_M408 || ovl == OVL_M422 || ovl == OVL_M430) {
continue;
}
}
lbl_1_bss_264C[type][lbl_1_bss_2638[type]] = i;
lbl_1_bss_2638[type]++;
if (GWMGAvailGet(i + 401)) {
lbl_1_bss_20C0[type][lbl_1_bss_20AC[type]] = i;
lbl_1_bss_20AC[type]++;
}
}
}
}
void fn_1_27C0C(s16 type)
{
s16 i;
s16 j;
for(i=0; i<256;) {
for(j=0; j<lbl_1_bss_20AC[type]; j++, i++) {
if(i > 256) {
break;
}
mgIndexList[i] = lbl_1_bss_20C0[type][j];
}
}
for(i=0; i<256; i++) {
mgIndexList[i];
}
lbl_801D3E94 = 0;
}
s16 i;
s16 j;
for (i = 0; i < 256;) {
for (j = 0; j < lbl_1_bss_20AC[type]; j++, i++) {
if (i > 256) {
break;
}
mgIndexList[i] = lbl_1_bss_20C0[type][j];
}
}
for (i = 0; i < 256; i++) {
mgIndexList[i];
}
lbl_801D3E94 = 0;
}

View file

@ -1,43 +1,43 @@
#define HUSPR_USE_OLD_DEFS
#include "math.h"
#include "game/chrman.h"
#include "game/object.h"
#include "game/wipe.h"
#include "game/pad.h"
#include "game/hsfanim.h"
#include "game/hsfmotion.h"
#include "game/hsfex.h"
#include "game/printfunc.h"
#include "game/window.h"
#include "game/gamework_data.h"
#include "game/sprite.h"
#include "game/hsfanim.h"
#include "game/hsfex.h"
#include "game/hsfmotion.h"
#include "game/minigame_seq.h"
#include "game/object.h"
#include "game/pad.h"
#include "game/printfunc.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/wipe.h"
#include "math.h"
#include "REL/modeltestDll.h"
// -------------------------------------------------------------------------- //
s32 lbl_1_data_0[8] = {
0x005F001B,
0x005F0015,
0x005F0016,
0x005F0006,
0x005F0000,
0x005F0000,
0x005F0000,
0x005F0004,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x15),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x04),
};
const f64 unk_rodata_0 = 0.5;
const f64 unk_rodata_8 = 3.0;
omObjData * lbl_1_bss_9A4;
omObjData * lbl_1_bss_9A0;
omObjData *lbl_1_bss_9A4;
omObjData *lbl_1_bss_9A0;
// -------------------------------------------------------------------------- //
void ObjectSetup(void)
{
Process * prc;
Process *prc;
OSReport("******* MODELTESTObjectSetup *********\n");
prc = omInitObjMan(0x32, 0x2000);
@ -64,108 +64,110 @@ void ObjectSetup(void)
// -------------------------------------------------------------------------- //
char * lbl_1_data_D8[16] = {
"target1A",
"target1B",
"target2A",
"target2B",
"target3A",
"target3B",
"target4A",
"target4B",
"target5A",
"target5B",
"target6A",
"target6B",
"target7A",
"target7B",
"target8A",
"target8B"
};
char *lbl_1_data_D8[16] = { "target1A", "target1B", "target2A", "target2B", "target3A", "target3B", "target4A", "target4B", "target5A", "target5B",
"target6A", "target6B", "target7A", "target7B", "target8A", "target8B" };
HsfanimStruct00 lbl_1_data_118 = {
/* unk00 */ 40,
/* unk02 */ {0, 0},
/* unk04 */ 50.0f,
/* unk08 */ 0.0f,
/* unk0C */ 90.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f},
/* unk1C */ 50.0f,
/* unk20 */ 0.800000011920929f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 4,
/* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}},
/* unk3E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}},
/* unk00 */ 40,
/* unk02 */ { 0, 0 },
/* unk04 */ 50.0f,
/* unk08 */ 0.0f,
/* unk0C */ 90.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f },
/* unk1C */ 50.0f,
/* unk20 */ 0.800000011920929f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 4,
/* unk2E */
{ { /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255 },
{ /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 } },
/* unk3E */
{ { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 },
{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 } },
};
HsfanimStruct00 lbl_1_data_168[2] = {
{
/* unk00 */ 50,
/* unk02 */ {0, 0},
/* unk04 */ 5.0f,
/* unk08 */ 10.0f,
/* unk0C */ 10.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f},
/* unk1C */ 2.0f,
/* unk20 */ 1.0099999904632568f,
/* unk24 */ 30.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 2,
/* unk2E */ {{ /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
/* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
},
{
/* unk00 */ 30,
/* unk02 */ {0, 0},
/* unk04 */ 3.299999952316284f,
/* unk08 */ 10.0f,
/* unk0C */ 0.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f},
/* unk1C */ 2.0f,
/* unk20 */ 1.0f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9800000190734863f,
/* unk2C */ 2,
/* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
/* unk3E */ {{ /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0}, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
}};
HsfanimStruct00 lbl_1_data_168[2] = { {
/* unk00 */ 50,
/* unk02 */ { 0, 0 },
/* unk04 */ 5.0f,
/* unk08 */ 10.0f,
/* unk0C */ 10.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f },
/* unk1C */ 2.0f,
/* unk20 */ 1.0099999904632568f,
/* unk24 */ 30.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 2,
/* unk2E */
{ { /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255 }, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
/* unk3E */
{ { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
},
{
/* unk00 */ 30,
/* unk02 */ { 0, 0 },
/* unk04 */ 3.299999952316284f,
/* unk08 */ 10.0f,
/* unk0C */ 0.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f },
/* unk1C */ 2.0f,
/* unk20 */ 1.0f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9800000190734863f,
/* unk2C */ 2,
/* unk2E */
{ { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
/* unk3E */
{ { /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0 }, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
} };
HsfanimStruct00 lbl_1_data_208 = {
/* unk00 */ 40,
/* unk02 */ {0, 0},
/* unk04 */ 50.0f,
/* unk08 */ 0.0f,
/* unk0C */ 180.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f},
/* unk1C */ 30.0f,
/* unk20 */ 0.8999999761581421f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 4,
/* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}},
/* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
/* unk00 */ 40,
/* unk02 */ { 0, 0 },
/* unk04 */ 50.0f,
/* unk08 */ 0.0f,
/* unk0C */ 180.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f },
/* unk1C */ 30.0f,
/* unk20 */ 0.8999999761581421f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 4,
/* unk2E */
{ { /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255 },
{ /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 } },
/* unk3E */
{ { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
};
HsfanimStruct00 lbl_1_data_258 = {
/* unk00 */ 30,
/* unk02 */ {0, 0},
/* unk04 */ 50.0f,
/* unk08 */ 0.0f,
/* unk0C */ 90.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f},
/* unk1C */ 30.0f,
/* unk20 */ 0.949999988079071f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 2,
/* unk2E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
/* unk3E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}},
/* unk00 */ 30,
/* unk02 */ { 0, 0 },
/* unk04 */ 50.0f,
/* unk08 */ 0.0f,
/* unk0C */ 90.0f,
/* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f },
/* unk1C */ 30.0f,
/* unk20 */ 0.949999988079071f,
/* unk24 */ 20.0f,
/* unk28 */ 0.9900000095367432f,
/* unk2C */ 2,
/* unk2E */
{ { /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
/* unk3E */
{ { /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255 },
{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } },
};
const Point3d lbl_1_rodata_38 = {0.0f, 0.0f, 0.0f};
const Point3d lbl_1_rodata_44 = {0.0f, 1.0f, 0.0f};
const Point3d lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f };
const Point3d lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f };
s16 lbl_1_bss_99C;
s16 lbl_1_bss_99A;
s16 lbl_1_bss_98A[8];
@ -178,24 +180,24 @@ s16 lbl_1_bss_664[256];
s16 lbl_1_bss_460[258];
s16 lbl_1_bss_45A[3];
s16 lbl_1_bss_458;
AnimData * lbl_1_bss_454;
AnimData *lbl_1_bss_454;
s32 unk_bss_450;
HuObjUnk lbl_1_bss_40[20];
void * lbl_1_bss_30[4];
void *lbl_1_bss_30[4];
u8 lbl_1_bss_2C;
f32 lbl_1_bss_28;
s16 lbl_1_bss_24;
f32 lbl_1_bss_20;
Process * lbl_1_bss_18[2];
Process * lbl_1_bss_14;
Process * lbl_1_bss_10;
Process *lbl_1_bss_18[2];
Process *lbl_1_bss_14;
Process *lbl_1_bss_10;
s32 lbl_1_bss_C;
f32 lbl_1_bss_8;
static u8 unk_bss[8];
// -------------------------------------------------------------------------- //
void fn_1_29C(omObjData * arg0)
void fn_1_29C(omObjData *arg0)
{
Point3d sp20;
Point3d sp14;
@ -205,8 +207,8 @@ void fn_1_29C(omObjData * arg0)
s16 temp_r27;
u32 temp_r26;
s16 temp_r3;
void * temp_r29;
AnimData * temp_r28;
void *temp_r29;
AnimData *temp_r28;
f32 temp_r5;
f32 temp_f30;
s16 chrIdx;
@ -226,8 +228,7 @@ void fn_1_29C(omObjData * arg0)
sp20.z = 1000.0f;
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
for (var_r31 = 0; var_r31 < 1; ++var_r31)
{
for (var_r31 = 0; var_r31 < 1; ++var_r31) {
chrIdx = 0;
lbl_1_bss_98A[var_r31] = CharModelCreate(chrIdx, 2);
if (var_r31 == 1) {
@ -242,7 +243,7 @@ void fn_1_29C(omObjData * arg0)
lbl_1_bss_88A[var_r31][5] = CharModelMotionCreate(chrIdx, lbl_1_data_0[5]);
lbl_1_bss_88A[var_r31][6] = CharModelMotionCreate(chrIdx, lbl_1_data_0[6]);
lbl_1_bss_88A[var_r31][7] = CharModelMotionCreate(chrIdx, lbl_1_data_0[7]);
lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, 0x5F004D);
lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4D));
CharModelMotionSet(chrIdx, lbl_1_bss_88A[var_r31][0]);
Hu3DModelAttrSet(lbl_1_bss_98A[var_r31], 0x40000001U);
Hu3DModelPosSet(lbl_1_bss_98A[var_r31], (var_r31 / 4 * 0xC8) - 100, 0.0f, -(var_r31 % 4) * 0x96);
@ -256,26 +257,27 @@ void fn_1_29C(omObjData * arg0)
temp_r5 = OSTicksToMicroseconds(OSGetTick() - temp_r26);
OSReport("time %f\n", US_TO_60TH_SEC(temp_r5));
var_r31 = Hu3DModelCreateFile(0x700024);
var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x24));
Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f);
Hu3DModelShadowMapSet(var_r31);
var_r31 = Hu3DModelCreateFile(0x26001E);
temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(0x26002F, 0x10000000, 2));
var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M407, 0x1E));
temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M407, 0x2F), MEMORY_DEFAULT_NUM, 2));
Hu3DMotionSet(var_r31, temp_r27);
Hu3DModelAttrSet(var_r31, 0x40000001U);
for (var_r31 = 0; var_r31 < 10; ++var_r31) {
if (var_r31 == 0) {
lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(0x700019);
} else {
lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x19));
}
else {
lbl_1_bss_664[var_r31] = Hu3DModelLink(lbl_1_bss_664[0]);
}
Hu3DModelShadowSet(lbl_1_bss_664[var_r31]);
Hu3DModelPosSet(lbl_1_bss_664[var_r31], ((( var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-( var_r31 % 5) * 0x12C));
Hu3DModelPosSet(lbl_1_bss_664[var_r31], (((var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-(var_r31 % 5) * 0x12C));
Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x4000U);
Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x40000001U);
}
temp_r29 = HuDataSelHeapReadNum(0x700013, 0x10000000, 2);
temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_SAF, 0x13), MEMORY_DEFAULT_NUM, 2);
temp_r28 = HuSprAnimRead(temp_r29);
lbl_1_bss_99C = HuSprGrpCreate(0x14);
@ -289,7 +291,7 @@ void fn_1_29C(omObjData * arg0)
HuSprGrpDrawNoSet(lbl_1_bss_99C, 0x40);
lbl_1_bss_458 = 0x293;
lbl_1_bss_45A[0] = MGSeqTimerCreate(lbl_1_bss_458 / 60);
temp_r29 = HuDataSelHeapReadNum(0x120001, 0x10000000, 2);
temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), MEMORY_DEFAULT_NUM, 2);
temp_r28 = HuSprAnimRead(temp_r29);
lbl_1_bss_888 = Hu3DParManCreate(temp_r28, 0x3E8, &lbl_1_data_208);
Hu3DParManAttrSet(lbl_1_bss_888, 0x45);
@ -302,14 +304,15 @@ void fn_1_29C(omObjData * arg0)
Hu3DParManVecSet(lbl_1_bss_884, 0.0f, 1.0f, 0.0f);
Hu3DParManVacumeSet(lbl_1_bss_884, 500.0f, 0.0f, 0.0f, 1.0f);
Hu3DParManColorSet(lbl_1_bss_884, 0);
temp_r29 = HuDataSelHeapReadNum(0x120002, 0x10000000, 2);
temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), MEMORY_DEFAULT_NUM, 2);
temp_r28 = HuSprAnimRead(temp_r29);
for (var_r31 = 0; var_r31 < 10; ++var_r31) {
lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]);
Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864);
Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U);
Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0));
Hu3DParManPosSet(
lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0));
Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f);
}
@ -320,9 +323,7 @@ void fn_1_29C(omObjData * arg0)
// -------------------------------------------------------------------------- //
s32 unrefData[] = {
0,0,0
};
s32 unrefData[] = { 0, 0, 0 };
// -------------------------------------------------------------------------- //
@ -331,7 +332,7 @@ void fn_1_F38(void)
f32 var_f31;
var_f31 = 0.0f;
while(TRUE) {
while (TRUE) {
Hu3DModelRotSet(lbl_1_bss_460[0], 0.0f, var_f31, 0.0f);
var_f31 += 1.0f;
HuPrcVSleep();
@ -340,7 +341,8 @@ void fn_1_F38(void)
// -------------------------------------------------------------------------- //
static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) {
static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30)
{
s8 temp_r28;
temp_r28 = HuPadSubStkX[0] & 0xF8;
@ -360,13 +362,11 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) {
// -------------------------------------------------------------------------- //
const HuUnkF9C2 lbl_1_rodata_B8 = {
{8, 6, 4, 7, 9, 10, 11}
};
const HuUnkF9C2 lbl_1_rodata_B8 = { { 8, 6, 4, 7, 9, 10, 11 } };
// -------------------------------------------------------------------------- //
void fn_1_F9C(struct om_obj_data * omData)
void fn_1_F9C(struct om_obj_data *omData)
{
Point3d sp3C;
Point3d sp30;
@ -421,40 +421,40 @@ void fn_1_F9C(struct om_obj_data * omData)
s32 var_fake;
while (0) {
(void) temp_f30;
(void) temp_f30;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r30;
(void) var_r30;
(void) var_r30;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void) var_fake;
(void)temp_f30;
(void)temp_f30;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r31;
(void)var_r30;
(void)var_r30;
(void)var_r30;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_r29;
(void)var_fake;
(void)var_fake;
(void)var_fake;
(void)var_fake;
(void)var_fake;
(void)var_fake;
(void)var_fake;
(void)var_fake;
(void)var_fake;
}
}
@ -478,15 +478,15 @@ void fn_1_F9C(struct om_obj_data * omData)
temp_f31 = CRot.z;
sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0))
+ sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0))
+ sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0));
+ sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0))
+ sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0));
sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0))
+ sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0))
+ sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0));
+ sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0))
+ sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0));
sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0))
+ (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0))
+ (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0))
+ sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0)));
PSVECCrossProduct(&sp24, &sp30, &sp30);
@ -543,8 +543,8 @@ void fn_1_20F4(void)
{
s16 temp_r3;
s16 var_r29;
HsfObject * temp_r3_2;
HuObjUnk * temp_r31;
HsfObject *temp_r3_2;
HuObjUnk *temp_r31;
Mtx spC0;
Vec sp24;
Mtx sp90;
@ -553,49 +553,38 @@ void fn_1_20F4(void)
Vec sp18;
Vec spC;
f32 temp_f27;
f32 var_f29; // ! - uninitialized
s16 var_r27; // ! - uninitialized
f32 var_f29; // ! - uninitialized
s16 var_r27; // ! - uninitialized
s32 var_r26;
f32 temp_f30;
temp_r3 = Hu3DModelCreateFile(0x6C0000);
temp_r3 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00));
Hu3DModelPosSet(temp_r3, 0.0f, 0.0f, 100.0f);
for (var_r29 = 0; var_r29 < 16; ++var_r29)
{
for (var_r29 = 0; var_r29 < 16; ++var_r29) {
OSReport("%s\n", lbl_1_data_D8[var_r29]);
temp_r3_2 = Hu3DModelObjPtrGet(temp_r3, lbl_1_data_D8[var_r29]);
lbl_1_bss_40[var_r29].obj = temp_r3_2;
Hu3DMotionNoMotSet(temp_r3, lbl_1_data_D8[var_r29], 0x380);
lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x;
lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y;
lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z;
lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x;
lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y;
lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z;
lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x;
lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y;
lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z;
lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x;
lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y;
lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z;
lbl_1_bss_40[var_r29].scale.x = temp_r3_2->data.base.scale.x;
lbl_1_bss_40[var_r29].scale.y = temp_r3_2->data.base.scale.y;
lbl_1_bss_40[var_r29].scale.z = temp_r3_2->data.base.scale.z;
OSReport(
"%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n",
var_r29,
temp_r3_2->data.base.pos.x,
temp_r3_2->data.base.pos.y,
temp_r3_2->data.base.pos.z,
temp_r3_2->data.base.rot.x,
temp_r3_2->data.base.rot.y,
temp_r3_2->data.base.rot.z
);
OSReport("%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n", var_r29, temp_r3_2->data.base.pos.x, temp_r3_2->data.base.pos.y,
temp_r3_2->data.base.pos.z, temp_r3_2->data.base.rot.x, temp_r3_2->data.base.rot.y, temp_r3_2->data.base.rot.z);
}
while (TRUE)
{
while (TRUE) {
Hu3DModelObjMtxGet(temp_r3, "ske_skirt", sp30);
for (var_r29 = 0; var_r29 < 8; ++var_r29)
{
for (var_r29 = 0; var_r29 < 8; ++var_r29) {
temp_r31 = &lbl_1_bss_40[var_r29 * 2];
temp_r31->obj->data.curr.rot.x = temp_r31->rot.x;
temp_r31->obj->data.curr.rot.y = temp_r31->rot.y;
@ -634,15 +623,16 @@ void fn_1_20F4(void)
if (HuPadSubStkX[1] < 0) {
var_r26 = -HuPadSubStkX[1];
} else {
}
else {
var_r26 = HuPadSubStkX[1];
}
if (var_r26 < 0xA && ABS(HuPadSubStkY[1]) < 0xA) {
var_r27 = 0x168;
var_f29 = 0.0f;
} else {
}
else {
var_r27 = 180.0 * (atan2(HuPadSubStkX[1], HuPadSubStkY[1]) / M_PI);
temp_f30 = (HuPadSubStkX[1] * HuPadSubStkX[1]) + (HuPadSubStkY[1] * HuPadSubStkY[1]);
var_f29 = sqrtf(temp_f30);
@ -657,11 +647,11 @@ void fn_1_20F4(void)
// -------------------------------------------------------------------------- //
void fn_1_28F8(Point3d * arg0, Point3d * arg1)
void fn_1_28F8(Point3d *arg0, Point3d *arg1)
{
Point3d spC;
Mtx sp18;
CameraData * cam;
CameraData *cam;
f32 temp_f31;
f32 temp_f30;
@ -675,7 +665,8 @@ void fn_1_28F8(Point3d * arg0, Point3d * arg1)
arg1->y = 240.0f + (spC.y * (240.0f / temp_f30));
}
void fn_1_2AFC(void) {
void fn_1_2AFC(void)
{
s16 temp_r3;
HuWinInit(1);
@ -683,7 +674,7 @@ void fn_1_2AFC(void) {
HuWinMesSpeedSet(temp_r3, 3);
while (TRUE) {
HuWinMesSet(temp_r3, 0x200011);
HuWinMesSet(temp_r3, MAKE_MESSID(0x20, 0x11));
HuWinMesWait(temp_r3);
}
}
@ -692,12 +683,65 @@ void fn_1_2AFC(void) {
// unreferenced data
u8 lbl_1_data_322[54] = {
255, 255, 255, 255, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
255,
255,
255,
255,
0,
0,
60,
68,
155,
166,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
60,
68,
155,
166,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
63,
0,
0,
0,
0,
0,
0,
0,
63,
0,
0,
0,
0,
0,
0,
0,
};
// -------------------------------------------------------------------------- //
void fn_1_2B68(ModelData * mdl, Mtx arg1)
void fn_1_2B68(ModelData *mdl, Mtx arg1)
{
GXColor sp17;
Mtx sp150;
@ -708,7 +752,7 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1)
GXTexObj sp30;
f32 sp18[2][3];
Mtx44 sp50;
AnimBmpData * sp10;
AnimBmpData *sp10;
f32 temp_f31;
f32 var_f30; // ! - uninitialized
f32 var_f29; // ! - uninitialized
@ -716,7 +760,7 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1)
f32 var_f27; // ! - uninitialized
if (!lbl_1_bss_30[0]) {
lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), 0x10000000);
lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), MEMORY_DEFAULT_NUM);
}
GXSetTexCopySrc(0, 0, 640, 480);
@ -741,15 +785,10 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1)
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU, 0U, 0x7DU);
GXSetNumTevStages(1);
sp17.r =
sp17.g =
sp17.b =
sp17.a = 255;
sp17.r = sp17.g = sp17.b = sp17.a = 255;
GXSetChanMatColor(GX_COLOR0A0, sp17);
sp17.r =
sp17.g =
sp17.b = 128;
sp17.r = sp17.g = sp17.b = 128;
sp17.a = 255;
GXSetChanAmbColor(GX_COLOR0A0, sp17);

View file

@ -197,7 +197,7 @@ void fn_1_46F0(void)
var_r30 = var_r31;
lbl_1_bss_9EC[var_r31] = CharModelCreate(var_r30, 8);
Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]);
lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0002);
lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02));
CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]);
Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], 0x40000001U);
Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]);
@ -206,7 +206,7 @@ void fn_1_46F0(void)
CharModelMotionDataClose(var_r30);
}
var_r31 = Hu3DModelCreateFile(0x700024);
var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x24));
Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f);
Hu3DModelShadowMapSet(var_r31);
@ -228,4 +228,4 @@ void fn_1_46F0(void)
// -------------------------------------------------------------------------- //
// -------------------------------------------------------------------------- //
// -------------------------------------------------------------------------- //

View file

@ -177,114 +177,114 @@ void fn_1_5A60(omObjData *object)
}
u32 lbl_1_data_3B0[] = {
0x005D0000, 0x00000000,
0x005E0000, 0x00000000,
0x005E0001, 0x00000000,
0x005F0006, 0x00000001,
0x005F0000, 0x00000001,
0x005F0002, 0x00000001,
0x005F0003, 0x00000001,
0x005F0005, 0x00000000,
0x005F0017, 0x00000000,
0x005F0018, 0x00000000,
DATA_MAKE_NUM(DATADIR_MARIOMDL0, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), 0x00000000,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), 0x00000001,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000001,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000001,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0x00000001,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0x00000000,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_408[] = {
0x00170000, 0x00000000,
0x00170002, 0x00000000,
0x00170003, 0x00000000,
0x0017000D, 0x00000001,
0x00170005, 0x00000001,
0x00170007, 0x00000001,
0x00170008, 0x00000001,
0x0017000C, 0x00000000,
0x00170028, 0x00000000,
0x00170029, 0x00000000,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_LUIGI, 0x29), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_460[] = {
0x006A0000, 0x00000000,
0x006A0002, 0x00000000,
0x006A0003, 0x00000000,
0x006A000D, 0x00000001,
0x006A0005, 0x00000001,
0x006A0007, 0x00000001,
0x006A0008, 0x00000001,
0x006A000C, 0x00000000,
0x006A0028, 0x00000000,
0x006A0029, 0x00000000,
DATA_MAKE_NUM(DATADIR_PEACH, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_PEACH, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_PEACH, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_PEACH, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_PEACH, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_PEACH, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_PEACH, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_PEACH, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_PEACH, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_PEACH, 0x29), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_4B8[] = {
0x00870000, 0x00000000,
0x00870002, 0x00000000,
0x00870003, 0x00000000,
0x0087000D, 0x00000001,
0x00870005, 0x00000001,
0x00870007, 0x00000001,
0x00870008, 0x00000001,
0x0087000C, 0x00000000,
0x00870028, 0x00000000,
0x00870029, 0x00000000,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_YOSHI, 0x29), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_510[] = {
0x00820000, 0x00000000,
0x00820002, 0x00000000,
0x00820003, 0x00000000,
0x0082000D, 0x00000001,
0x00820005, 0x00000001,
0x00820007, 0x00000001,
0x00820008, 0x00000001,
0x0082000C, 0x00000000,
0x00820028, 0x00000000,
0x00820029, 0x00000000,
DATA_MAKE_NUM(DATADIR_WARIO, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_WARIO, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_WARIO, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_WARIO, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_WARIO, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_WARIO, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_WARIO, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_WARIO, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_WARIO, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_WARIO, 0x29), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_568[] = {
0x000E0000, 0x00000000,
0x000E0002, 0x00000000,
0x000E0003, 0x00000000,
0x000E000D, 0x00000001,
0x000E0005, 0x00000001,
0x000E0007, 0x00000001,
0x000E0008, 0x00000001,
0x000E000C, 0x00000000,
0x000E0028, 0x00000000,
0x000E0029, 0x00000000,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_DONKEY, 0x29), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_5C0[] = {
0x000A0000, 0x00000000,
0x000A0002, 0x00000000,
0x000A0003, 0x00000000,
0x000A000D, 0x00000001,
0x000A0005, 0x00000001,
0x000A0007, 0x00000001,
0x000A0008, 0x00000001,
0x000A000C, 0x00000000,
0x000A0028, 0x00000000,
0x000A0029, 0x00000000,
DATA_MAKE_NUM(DATADIR_DAISY, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_DAISY, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_DAISY, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_DAISY, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_DAISY, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_DAISY, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_DAISY, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_DAISY, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_DAISY, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_DAISY, 0x29), 0x00000000,
0x00000000, 0x00000000
};
u32 lbl_1_data_618[] = {
0x007E0000, 0x00000000,
0x007E0002, 0x00000000,
0x007E0003, 0x00000000,
0x007E000D, 0x00000001,
0x007E0005, 0x00000001,
0x007E0007, 0x00000001,
0x007E0008, 0x00000001,
0x007E000C, 0x00000000,
0x007E0028, 0x00000000,
0x007E0029, 0x00000000,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x00), 0x00000000,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x02), 0x00000000,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x03), 0x00000000,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0D), 0x00000001,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x05), 0x00000001,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x07), 0x00000001,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x08), 0x00000001,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0C), 0x00000000,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x28), 0x00000000,
DATA_MAKE_NUM(DATADIR_WALUIGI, 0x29), 0x00000000,
0x00000000, 0x00000000
};
@ -750,4 +750,4 @@ void fn_1_83B4(void)
}
HuPrcVSleep();
}
}
}

View file

@ -6,45 +6,45 @@ s16 lbl_1_bss_152[12];
s16 lbl_1_bss_150;
DataListModel lbl_1_data_428[] = {
{ 0x630000, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630000, 0x1, 2, 0, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630001, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630001, 0x1, 2, 2, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630002, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630002, 0x1, 2, 4, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630003, 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630004, 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630026, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630027, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630028, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630029, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x63002A, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x63002B, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x63002C, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x63002D, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x63002E, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ 0x630007, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x1, 2, 0, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x01), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x01), 0x1, 2, 2, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x02), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x02), 0x1, 2, 4, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x03), 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x04), 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x26), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x27), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x28), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x29), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x2A), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x2B), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x2C), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x2D), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x2E), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
{ -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } },
};
DataListSprite lbl_1_data_93C[] = {
{ 0x630009, 4, 2000, 288, 240, { 255, 255, 255, 255 } },
{ 0x630008, 4, 2000, 288, 100, { 255, 255, 255, 255 } },
{ 0x63000A, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x63000B, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x63000C, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x63001F, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x630020, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x630021, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x630022, 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ 0x63002F, 4, 2000, 288, 240, { 255, 255, 255, 255 } },
{ 0x63003C, 4, 2000, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x09), 4, 2000, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x08), 4, 2000, 288, 100, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x0A), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x0B), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x0C), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x1F), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x20), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x21), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x22), 4, 2000, 288, 300, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x2F), 4, 2000, 288, 240, { 255, 255, 255, 255 } },
{ DATA_MAKE_NUM(DATADIR_MODESEL, 0x3C), 4, 2000, 288, 240, { 255, 255, 255, 255 } },
{ 0, 0, 0, 0, 0, { 0, 0, 0, 0 } },
};
@ -127,4 +127,4 @@ void fn_1_C2BC(void)
espKill(lbl_1_bss_152[i]);
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,261 +1,245 @@
#define HUWIN_USE_OLD_DEFS
#include "game/object.h"
#include "game/gamework_data.h"
#include "game/audio.h"
#include "game/wipe.h"
#include "game/window.h"
#include "game/object.h"
#include "game/process.h"
#include "game/hsfman.h"
#include "game/pad.h"
#include "game/gamework_data.h"
#include "game/hsfanim.h"
#include "game/hsfman.h"
#include "game/object.h"
#include "game/pad.h"
#include "game/process.h"
#include "game/window.h"
#include "game/wipe.h"
#include "ext_math.h"
#include "REL/modeseldll.h"
#include "ext_math.h"
s16 lbl_1_data_80[] = {
16, 17, 18,
19, 20, 21
};
s32 lbl_1_data_8C[] = {
0x630030,
0x630032,
0x630034,
0x630036,
0x630038,
0x63003A
};
s16 lbl_1_data_80[] = { 16, 17, 18, 19, 20, 21 };
s32 lbl_1_data_A4[] = {
0x630031,
0x630033,
0x630035,
0x630037,
0x630039,
0x63003B
};
s32 lbl_1_data_8C[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x30), DATA_MAKE_NUM(DATADIR_MODESEL, 0x32), DATA_MAKE_NUM(DATADIR_MODESEL, 0x34),
DATA_MAKE_NUM(DATADIR_MODESEL, 0x36), DATA_MAKE_NUM(DATADIR_MODESEL, 0x38), DATA_MAKE_NUM(DATADIR_MODESEL, 0x3A) };
u32 lbl_1_data_BC[] = {
0x110001,
0x110002,
0x110003,
0x110004,
0x110005,
0x110006
};
s32 lbl_1_data_A4[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x31), DATA_MAKE_NUM(DATADIR_MODESEL, 0x33), DATA_MAKE_NUM(DATADIR_MODESEL, 0x35),
DATA_MAKE_NUM(DATADIR_MODESEL, 0x37), DATA_MAKE_NUM(DATADIR_MODESEL, 0x39), DATA_MAKE_NUM(DATADIR_MODESEL, 0x3B) };
u32 lbl_1_data_BC[] = { MAKE_MESSID(17, 1), MAKE_MESSID(17, 2), MAKE_MESSID(17, 3), MAKE_MESSID(17, 4), MAKE_MESSID(17, 5), MAKE_MESSID(17, 6) };
s16 lbl_1_bss_82;
s16 lbl_1_bss_80;
void fn_1_3668(void);
//Scratch is at https://decomp.me/scratch/iirXp
//Register allocation issues at line 180 with load of 1.0 double constant
// Scratch is at https://decomp.me/scratch/iirXp
// Register allocation issues at line 180 with load of 1.0 double constant
s32 fn_1_2490(void)
{
float sp10[2];
float sp8[2];
float temp_f31;
float temp_f30;
s16 temp_r31;
s16 temp_r30;
s16 temp_r29;
s16 temp_r28;
s16 temp_r27;
s16 temp_r26;
s32 temp_r25;
WindowData *temp_r24;
AnimData *temp_r23;
AnimData *temp_r22;
s16 temp_r21;
fn_1_3668();
fn_1_1EC0(1);
temp_r25 = HuAudFXPlay(2094);
if(omovlevtno) {
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
}
for(temp_r31=0; temp_r31<=20; temp_r31++) {
temp_f31 = 1.0-sind(90.0*(temp_r31/20.0));
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f+(200.0f*temp_f31), 0);
Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f+(200.0f*temp_f31), 0);
HuPrcVSleep();
}
HuPrcSleep(20);
Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002);
Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002);
HuAudFXPlay(2093);
HuPrcSleep(120);
HuAudFXPlay(2095);
for(temp_r31=0; temp_r31<=30; temp_r31++) {
temp_f31 = temp_r31/30.0;
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f-(20.0f*temp_f31), 0);
HuPrcVSleep();
}
HuWinMesMaxSizeBetGet(sp10, 0x110000, 0x110006);
lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432-sp10[1], sp10[0], sp10[1], -1, 0);
HuWinMesSpeedSet(lbl_1_bss_82, 0);
temp_r24 = &winData[lbl_1_bss_82];
temp_r24->active_pad = 1;
HuWinExAnimIn(lbl_1_bss_82);
HuWinMesSet(lbl_1_bss_82, 0x110000);
HuWinMesMaxSizeGet(1, sp8, 0x1A0020);
temp_r29 = HuWinCreate(-10000, 8+(432-sp10[1]-sp8[1]), sp8[0], sp8[1], 0);
HuWinMesSpeedSet(temp_r29, 0);
HuWinBGTPLvlSet(temp_r29, 0);
HuWinMesSet(temp_r29, 0x1A0020);
HuWinDispOff(temp_r29);
while(!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) {
HuPrcVSleep();
}
Hu3DModelAttrSet(lbl_1_bss_19A[15], 1);
for(temp_r31=0; temp_r31<6; temp_r31++) {
Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002);
Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0);
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0);
}
HuWinMesWait(lbl_1_bss_82);
lbl_1_bss_80 = temp_r26 = 0;
espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF);
espBankSet(lbl_1_bss_152[10], 0);
for(temp_r31=0; temp_r31<=10; temp_r31++) {
temp_f31 = temp_r31/10.0f;
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31));
espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*sind(90.0f*temp_f31)));
HuPrcVSleep();
}
HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]);
HuWinDispOn(temp_r29);
while(1) {
temp_r30 = 0;
if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) {
temp_r30 = -1;
} else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) {
temp_r30 = 1;
}
if(temp_r30) {
if(lbl_1_bss_80+temp_r30 < 0) {
lbl_1_bss_80 = 0;
} else if(lbl_1_bss_80+temp_r30 >= 6) {
lbl_1_bss_80 = 5;
} else {
lbl_1_bss_80 += temp_r30;
}
if(temp_r26 != lbl_1_bss_80) {
HuAudFXPlay(0);
for(temp_r31=0; temp_r31<=10; temp_r31++) {
temp_f31 = temp_r31/10.0f;
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0*cosd(90.0f*temp_f31));
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31));
espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(1.0-sind(180.0f*temp_f31))));
if(temp_r31 == 5) {
espBankSet(lbl_1_bss_152[10], lbl_1_bss_80);
}
HuPrcVSleep();
}
temp_r26 = lbl_1_bss_80;
HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]);
}
}
if(HuPadBtnDown[0] & PAD_BUTTON_A) {
HuAudFXPlay(2);
break;
} else if(HuPadBtnDown[0] & PAD_BUTTON_B) {
HuAudFXPlay(3);
HuAudFXStop(temp_r25);
return -1;
} else {
HuPrcVSleep();
continue;
}
}
Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002);
HuAudSeqAllFadeOut(1000);
for(temp_r31=0; temp_r31<=20; temp_r31++) {
temp_f31 = temp_r31/20.0f;
for(temp_r28=0; temp_r28<6; temp_r28++) {
if(temp_r28 != lbl_1_bss_80) {
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50-(300.0*(1.0-cosd(90.0f*temp_f31))), 0);
espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(cosd(90.0f*temp_f31))));
}
}
HuPrcVSleep();
}
HuWinKill(temp_r29);
HuWinExAnimOut(lbl_1_bss_82);
HuAudFXStop(temp_r25);
temp_r27 = HuSprGrpCreate(1);
temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0);
HuSprGrpMemberSet(temp_r27, 0, temp_r21);
HuSprPosSet(temp_r27, 0, 288.0f, 240.0f);
HuSprDrawNoSet(temp_r27, 0, 127);
HuPrcSleep(2);
espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF);
for(temp_r31=0; temp_r31<=10; temp_r31++) {
temp_f31 = temp_r31/10.0;
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f-(100.0f*temp_f31), 0);
HuPrcVSleep();
}
temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM));
temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM));
Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1");
Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2");
Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1);
Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0);
Hu3DModelAttrReset(lbl_1_bss_19A[22], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002);
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50);
Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f);
for(temp_r31=1; temp_r31<=20; temp_r31++) {
temp_f31 = temp_r31/20.0;
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0-(60.0*sind(90.0f*temp_f31)), 50);
HuPrcVSleep();
}
HuPrcSleep(90);
Hu3DFogSet(3000, 8000, 255, 255, 255);
Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002);
HuPrcSleep(60);
temp_f31 =0;
temp_f30 = 5;
while(!HuTHPEndCheck()) {
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f+(temp_f31/30.0f), 50.0f-temp_f31);
temp_f31 += temp_f30;
temp_f30 += 5.0f;
HuPrcVSleep();
}
_ClearFlag(FLAG_ID_MAKE(1, 11));
WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10);
while(WipeStatGet()) {
HuPrcVSleep();
}
HuTHPClose();
HuSprGrpKill(temp_r27);
return lbl_1_bss_80;
float sp10[2];
float sp8[2];
float temp_f31;
float temp_f30;
s16 temp_r31;
s16 temp_r30;
s16 temp_r29;
s16 temp_r28;
s16 temp_r27;
s16 temp_r26;
s32 temp_r25;
WindowData *temp_r24;
AnimData *temp_r23;
AnimData *temp_r22;
s16 temp_r21;
fn_1_3668();
fn_1_1EC0(1);
temp_r25 = HuAudFXPlay(2094);
if (omovlevtno) {
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30);
}
for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) {
temp_f31 = 1.0 - sind(90.0 * (temp_r31 / 20.0));
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f + (200.0f * temp_f31), 0);
Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f + (200.0f * temp_f31), 0);
HuPrcVSleep();
}
HuPrcSleep(20);
Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002);
Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002);
HuAudFXPlay(2093);
HuPrcSleep(120);
HuAudFXPlay(2095);
for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) {
temp_f31 = temp_r31 / 30.0;
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f - (20.0f * temp_f31), 0);
HuPrcVSleep();
}
HuWinMesMaxSizeBetGet(sp10, MAKE_MESSID(0x11, 0x00), MAKE_MESSID(0x11, 0x06));
lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432 - sp10[1], sp10[0], sp10[1], -1, 0);
HuWinMesSpeedSet(lbl_1_bss_82, 0);
temp_r24 = &winData[lbl_1_bss_82];
temp_r24->active_pad = 1;
HuWinExAnimIn(lbl_1_bss_82);
HuWinMesSet(lbl_1_bss_82, MAKE_MESSID(0x11, 0x00));
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1A, 0x20));
temp_r29 = HuWinCreate(-10000, 8 + (432 - sp10[1] - sp8[1]), sp8[0], sp8[1], 0);
HuWinMesSpeedSet(temp_r29, 0);
HuWinBGTPLvlSet(temp_r29, 0);
HuWinMesSet(temp_r29, MAKE_MESSID(0x1A, 0x20));
HuWinDispOff(temp_r29);
while (!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) {
HuPrcVSleep();
}
Hu3DModelAttrSet(lbl_1_bss_19A[15], 1);
for (temp_r31 = 0; temp_r31 < 6; temp_r31++) {
Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002);
Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0);
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0);
}
HuWinMesWait(lbl_1_bss_82);
lbl_1_bss_80 = temp_r26 = 0;
espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF);
espBankSet(lbl_1_bss_152[10], 0);
for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) {
temp_f31 = temp_r31 / 10.0f;
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0 * sind(90.0f * temp_f31));
espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * sind(90.0f * temp_f31)));
HuPrcVSleep();
}
HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]);
HuWinDispOn(temp_r29);
while (1) {
temp_r30 = 0;
if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) {
temp_r30 = -1;
}
else if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) {
temp_r30 = 1;
}
if (temp_r30) {
if (lbl_1_bss_80 + temp_r30 < 0) {
lbl_1_bss_80 = 0;
}
else if (lbl_1_bss_80 + temp_r30 >= 6) {
lbl_1_bss_80 = 5;
}
else {
lbl_1_bss_80 += temp_r30;
}
if (temp_r26 != lbl_1_bss_80) {
HuAudFXPlay(0);
for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) {
temp_f31 = temp_r31 / 10.0f;
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0 * cosd(90.0f * temp_f31));
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0 * sind(90.0f * temp_f31));
espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * (1.0 - sind(180.0f * temp_f31))));
if (temp_r31 == 5) {
espBankSet(lbl_1_bss_152[10], lbl_1_bss_80);
}
HuPrcVSleep();
}
temp_r26 = lbl_1_bss_80;
HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]);
}
}
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
HuAudFXPlay(2);
break;
}
else if (HuPadBtnDown[0] & PAD_BUTTON_B) {
HuAudFXPlay(3);
HuAudFXStop(temp_r25);
return -1;
}
else {
HuPrcVSleep();
continue;
}
}
Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002);
HuAudSeqAllFadeOut(1000);
for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) {
temp_f31 = temp_r31 / 20.0f;
for (temp_r28 = 0; temp_r28 < 6; temp_r28++) {
if (temp_r28 != lbl_1_bss_80) {
Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50 - (300.0 * (1.0 - cosd(90.0f * temp_f31))), 0);
espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * (cosd(90.0f * temp_f31))));
}
}
HuPrcVSleep();
}
HuWinKill(temp_r29);
HuWinExAnimOut(lbl_1_bss_82);
HuAudFXStop(temp_r25);
temp_r27 = HuSprGrpCreate(1);
temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0);
HuSprGrpMemberSet(temp_r27, 0, temp_r21);
HuSprPosSet(temp_r27, 0, 288.0f, 240.0f);
HuSprDrawNoSet(temp_r27, 0, 127);
HuPrcSleep(2);
espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF);
for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) {
temp_f31 = temp_r31 / 10.0;
Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f - (100.0f * temp_f31), 0);
HuPrcVSleep();
}
temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM));
temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM));
Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1");
Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2");
Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1);
Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0);
Hu3DModelAttrReset(lbl_1_bss_19A[22], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002);
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50);
Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f);
for (temp_r31 = 1; temp_r31 <= 20; temp_r31++) {
temp_f31 = temp_r31 / 20.0;
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0 - (60.0 * sind(90.0f * temp_f31)), 50);
HuPrcVSleep();
}
HuPrcSleep(90);
Hu3DFogSet(3000, 8000, 255, 255, 255);
Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002);
HuPrcSleep(60);
temp_f31 = 0;
temp_f30 = 5;
while (!HuTHPEndCheck()) {
Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f + (temp_f31 / 30.0f), 50.0f - temp_f31);
temp_f31 += temp_f30;
temp_f30 += 5.0f;
HuPrcVSleep();
}
_ClearFlag(FLAG_ID_MAKE(1, 11));
WipeColorSet(255, 255, 255);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10);
while (WipeStatGet()) {
HuPrcVSleep();
}
HuTHPClose();
HuSprGrpKill(temp_r27);
return lbl_1_bss_80;
}
void fn_1_3668(void)
{
Vec sp20;
Vec sp14;
Vec sp8;
Hu3DShadowCreate(20, 100, 5000);
Hu3DShadowTPLvlSet(0.3f);
Hu3DShadowSizeSet(192);
sp14.x = sp14.y = sp14.z = 0;
sp20.x = 0;
sp20.z = 300;
sp20.y = 400;
sp8.x = 0;
sp8.y = 1;
sp8.z = 0;
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
Hu3DModelAttrReset(lbl_1_bss_19A[15], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002);
Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0);
Hu3DModelAttrReset(lbl_1_bss_19A[14], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002);
Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0);
}
Vec sp20;
Vec sp14;
Vec sp8;
Hu3DShadowCreate(20, 100, 5000);
Hu3DShadowTPLvlSet(0.3f);
Hu3DShadowSizeSet(192);
sp14.x = sp14.y = sp14.z = 0;
sp20.x = 0;
sp20.z = 300;
sp20.y = 400;
sp8.x = 0;
sp8.y = 1;
sp8.z = 0;
Hu3DShadowPosSet(&sp20, &sp8, &sp14);
Hu3DModelAttrReset(lbl_1_bss_19A[15], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002);
Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0);
Hu3DModelAttrReset(lbl_1_bss_19A[14], 1);
Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002);
Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0);
}

View file

@ -21,54 +21,54 @@ typedef struct struct_data0 {
} StructData0;
StructData0 lbl_1_data_0[] = {
{ 0x680000, 0, 0, 0, 1 },
{ 0x680001, 0, 0, 0, 1 },
{ 0x680002, 0, 0, 0, 1 },
{ 0x680003, 0, 0, 0, 1 },
{ 0x680004, 0, 0, 0, 1 },
{ 0x680005, 0, 0, 0, 1 },
{ 0x680006, 0, 0, 0, 1 },
{ 0x680007, 0, 0, 0, 1 },
{ 0x680008, 0, 0, 0, 1 },
{ 0x680009, 0, 0, 0, 1 },
{ 0x68000A, 0, 0, 0, 1 },
{ 0x68000B, 0, 0, 0, 1 },
{ 0x68000C, 0, 0, 0, 1 },
{ 0x68000D, 0, 0, 0, 1 },
{ 0x68000E, 1, 0, 0, 1 },
{ 0x68000F, 0, 0, 0, 1 },
{ 0x680010, 0, 0, 0, 1 },
{ 0x680011, 0, 0, 0, 1 },
{ 0x680012, 0, 0, 0, 1 },
{ 0x680013, 0, 0, 0, 1 },
{ 0x680014, 0, 0, 0, 1 },
{ 0x680015, 0, 0, 0, 1 },
{ 0x680016, 0, 0, 0, 1 },
{ 0x680017, 0, 0, 0, 1 },
{ 0x680018, 0, 0, 0, 1 },
{ 0x680019, 0, 0, 0, 1 },
{ 0x68001A, 0, 0, 0, 1 },
{ 0x68001B, 0, 0, 0, 1 },
{ 0x68001C, 0, 0, 0, 1 },
{ 0x68001D, 0, 0, 0, 1 },
{ 0x68001E, 0, 0, 0, 1 },
{ 0x68001F, 0, 0, 0, 1 },
{ 0x680020, 0, 0, 0, 1 },
{ 0x680021, 0, 0, 0, 1 },
{ 0x680022, 0, 0, 0, 1 },
{ 0x680023, 0, 0, 0, 1 },
{ 0x680024, 0, 0, 0, 1 },
{ 0x680025, 0, 0, 0, 1 },
{ 0x680026, 0, 0, 0, 1 },
{ 0x680027, 0, 0, 0, 1 },
{ 0x680028, 0, 0, 0, 1 },
{ 0x680029, 0, 0, 0, 1 },
{ 0x68002A, 0, 0, 0, 1 },
{ 0x68002B, 0, 0, 0, 1 },
{ 0x68002C, 0, 0, 0, 1 },
{ 0x68002D, 0, 0, 0, 1 },
{ 0x68002E, 0, 0, 0, 1 },
{ 0x68002F, 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 },
};
char *lbl_1_data_430[] = {
@ -605,4 +605,4 @@ void fn_1_13A0(void)
while(1) {
HuPrcVSleep();
}
}
}

View file

@ -68,7 +68,7 @@ omObjData *OptionGuideCreate(void)
object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 12));
Hu3DModelLayerSet(object->model[0], 1);
for (i = 0; i < 3; i++) {
object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA));
object->motion[i] = Hu3DJointMotionFile(object->model[0], guideMotTbl[i]);
}
work->unk_5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC);
work->unk_60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC);
@ -217,7 +217,7 @@ static void UpdateGuide(omObjData *object)
static float LerpAngle(float start, float end, float time)
{
float angle;
float delta = fmod(end - start, 360.0);
if (0.0f > delta) {
delta += 360.0f;

View file

@ -56,7 +56,7 @@ omObjData *PresentGuideCreate(void)
Hu3DModelLayerSet(object->model[0], 1);
for (var_r29 = 0; var_r29 < 3; var_r29++) {
object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA));
object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], guideMotTbl[var_r29]);
}
Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, 0x40000001);
work->unk_50 = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 10);

View file

@ -104,7 +104,7 @@ static void ExecPresentView(omObjData *object)
case 6:
HuAudFXPlay(66);
PresentWinAnimIn(work->window);
PresentWinMesSet(work->window, 0x320002);
PresentWinMesSet(work->window, MAKE_MESSID(0x32, 0x02));
object->unk10 = 7;
case 7:
if (work->window->state) {

View file

@ -5,6 +5,7 @@
#include "game/hsfex.h"
#include "game/hsfman.h"
#include "game/wipe.h"
#include "game/window.h"
#include "REL/present.h"
@ -502,13 +503,13 @@ static void ExecSelectRoom(omObjData *object)
PresentWinAnimIn(work->presentDescWindow);
PresentWinAnimIn(work->btnLegendWindow);
if (work->constellationSelF) {
mess = 0x320080;
mess = MAKE_MESSID(0x32, 0x80);
}
else if (work->room == ROOM_TROPHY) {
mess = 0x320085;
mess = MAKE_MESSID(0x32, 0x85);
}
else {
mess = 0x32007e;
mess = MAKE_MESSID(0x32, 0x7e);
}
PresentWinMesSet(work->btnLegendWindow, mess);
switch (work->room) {
@ -522,36 +523,36 @@ static void ExecSelectRoom(omObjData *object)
case ROOM_WALUIGI:
if (work->constellationSelF) {
if (PresentUnlocked(object, work->room, ROOM_TROPHY)) {
mess = 0x320005;
mess = MAKE_MESSID(0x32, 0x05);
}
else {
mess = 0x320082;
mess = MAKE_MESSID(0x32, 0x82);
}
}
else if (UnlockedPresents(object, work->room) > 0) {
mess = 0x320001;
mess = MAKE_MESSID(0x32, 0x01);
}
else {
mess = 0x320081;
mess = MAKE_MESSID(0x32, 0x81);
}
PresentWinMesSet(work->presentDescWindow, mess);
PresentWinInsertMesSet(work->presentDescWindow, roomMessTbl[work->room], 0);
break;
case ROOM_TROPHY:
if (PresentUnlocked(object, ROOM_TROPHY, 0)) {
mess = 0x320041;
mess = MAKE_MESSID(0x32, 0x41);
}
else {
mess = 0x320084;
mess = MAKE_MESSID(0x32, 0x84);
}
PresentWinMesSet(work->presentDescWindow, mess);
break;
case ROOM_MG:
if (UnlockedPresents(object, ROOM_MG) > 0) {
mess = 0x320083;
mess = MAKE_MESSID(0x32, 0x83);
}
else {
mess = 0x320081;
mess = MAKE_MESSID(0x32, 0x81);
}
PresentWinMesSet(work->presentDescWindow, mess);
break;
@ -718,13 +719,13 @@ static void ExecSelectPresent(omObjData *object)
}
PresentWinAnimIn(work->presentDescWindow);
PresentWinAnimIn(work->btnLegendWindow);
PresentWinMesSet(work->btnLegendWindow, 0x32007F);
PresentWinMesSet(work->btnLegendWindow, MAKE_MESSID(0x32, 0x7F));
if (work->roomNotEmptyF) {
PresentWinMesSet(work->presentDescWindow, roomTbl[room].presentData[idxInRoom].descMess);
}
else {
PresentWinMesSet(work->presentDescWindow, 0x320003);
PresentWinMesSet(work->presentDescWindow, MAKE_MESSID(0x32, 0x03));
}
work->cursorTime = 0.0f;
work->cursorSpeed = 1.0f / 6.0f;
@ -1099,7 +1100,7 @@ static void ExecPresentGet(omObjData *object)
case 3:
PresentWinAnimIn(work->presentDescWindow);
PresentWinInsertMesSet(work->presentDescWindow, roomTbl[work->room].presentData[work->idxInRoom].nameMess, 0);
PresentWinMesSet(work->presentDescWindow, 0x320004);
PresentWinMesSet(work->presentDescWindow, MAKE_MESSID(0x32, 0x04));
PresentWinMesWait(work->presentDescWindow);
object->unk10 = 4;
case 4:

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -305,7 +305,7 @@ static void CreateStaff(void)
}
for (var_r31 = 0; var_r31 < 3; var_r31++) {
var_r29 = HuDataSelHeapReadNum(var_r31 + 0x73001A, MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r28 = HuSprAnimRead(var_r29);
var_r30 = HuSprCreate(var_r28, 256, 0);
staffLogoGroup[var_r31] = HuSprGrpCreate(1);
@ -319,7 +319,7 @@ static void CreateStaff(void)
HuSprGrpPosSet(thpGroup, 280.0f, 200.0f);
HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF);
HuTHPStop();
var_r29 = HuDataSelHeapReadNum(0x73001D, MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r28 = HuSprAnimRead(var_r29);
var_r30 = HuSprCreate(var_r28, 16385, 0);
thpCoverGroup = HuSprGrpCreate(1);

View file

@ -17,16 +17,16 @@ void fn_1_2D04(void)
m02GenDice spEC;
m02GenDice sp4C;
s32 sp24[10] = {
0x0076001C,
0x0076001D,
0x0076001E,
0x0076001F,
0x00760020,
0x00760021,
0x00760022,
0x00760023,
0x00760024,
0x00760025
DATA_MAKE_NUM(DATADIR_W02, 0x1C),
DATA_MAKE_NUM(DATADIR_W02, 0x1D),
DATA_MAKE_NUM(DATADIR_W02, 0x1E),
DATA_MAKE_NUM(DATADIR_W02, 0x1F),
DATA_MAKE_NUM(DATADIR_W02, 0x20),
DATA_MAKE_NUM(DATADIR_W02, 0x21),
DATA_MAKE_NUM(DATADIR_W02, 0x22),
DATA_MAKE_NUM(DATADIR_W02, 0x23),
DATA_MAKE_NUM(DATADIR_W02, 0x24),
DATA_MAKE_NUM(DATADIR_W02, 0x25)
};
Vec sp18;
Vec spC;
@ -43,7 +43,7 @@ void fn_1_2D04(void)
OSReport("gamble start %d\n", temp_r31);
sp8 = BoardSpaceGet(0, GWPlayer[temp_r31].space_curr);
BoardRollDispSet(0);
temp_r28 = BoardModelCreate(0x76000F, NULL, 0);
temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x0F), NULL, 0);
BoardModelVisibilitySet(temp_r28, 0);
switch(lbl_1_bss_54) {
case 0:
@ -78,9 +78,9 @@ void fn_1_2D04(void)
BoardModelHookReset(temp_r30);
BoardModelPosGet(temp_r30, &sp18);
BoardModelPosSetV(lbl_1_data_286, &sp18);
fn_1_121C(0x13000A);
fn_1_121C(MAKE_MESSID(0x13, 0x0A));
spEC.unk00 = 1;
spEC.unk04 = 0x76001B;
spEC.unk04 = DATA_MAKE_NUM(DATADIR_W02, 0x1B);
spEC.unk08 = sp24;
spEC.unk0C = sp18;
spEC.unk18 = 1;
@ -140,9 +140,9 @@ void fn_1_2D04(void)
temp_r27 = spEC.unk94;
if(temp_r27 == 10) {
HuAudPlayerVoicePlay(temp_r31, 302);
fn_1_121C(0x130010);
fn_1_121C(MAKE_MESSID(0x13, 0x10));
} else {
fn_1_121C(0x13000C);
fn_1_121C(MAKE_MESSID(0x13, 0x0C));
}
BoardPlayerMotBlendSet(temp_r31, 0, 15);
while(!BoardPlayerMotBlendCheck(temp_r31)) {
@ -189,10 +189,10 @@ void fn_1_2D04(void)
HuPrcVSleep();
}
if(sp4C.unk94 > temp_r27) {
fn_1_121C(0x13000D);
fn_1_121C(MAKE_MESSID(0x13, 0x0D));
} else {
HuAudPlayerVoicePlay(temp_r31, 302);
fn_1_121C(0x13000F);
fn_1_121C(MAKE_MESSID(0x13, 0x0F));
}
} else {
sp4C.unk94 = 0;
@ -214,7 +214,7 @@ void fn_1_2D04(void)
HuAudFXPlay(7);
HuPrcSleep(6);
}
fn_1_121C(0x13000E);
fn_1_121C(MAKE_MESSID(0x13, 0x0E));
} else {
temp_r26 = GWPlayer[temp_r31].space_curr;
BoardCameraTargetSpaceSet(temp_r26);
@ -320,4 +320,4 @@ void fn_1_394C(s32 arg0) {
while (lbl_1_bss_50) {
HuPrcVSleep();
}
}
}

View file

@ -3,20 +3,20 @@
typedef struct {
union {
/* 0x00 */ struct {
u8 unk7 : 1;
u8 unk6 : 1;
u8 unk3 : 3;
u8 unk1 : 2;
u8 unk0 : 1;
/* 0x00 */ struct {
u8 unk7 : 1;
u8 unk6 : 1;
u8 unk3 : 3;
u8 unk1 : 2;
u8 unk0 : 1;
};
u8 unk00;
};
u8 unk00;
};
/* 0x01 */ u8 unk01;
/* 0x02 */ u8 unk02;
/* 0x03 */ u8 unk03;
/* 0x04 */ s16 unk04;
/* 0x06 */ s16 unk06;
/* 0x01 */ u8 unk01;
/* 0x02 */ u8 unk02;
/* 0x03 */ u8 unk03;
/* 0x04 */ s16 unk04;
/* 0x06 */ s16 unk06;
} WorkGenDice;
/* EXTERN FUNCTIONS */
@ -24,7 +24,7 @@ void fn_1_13D0(void);
void fn_1_1574(m02GenDice *arg0);
void fn_1_1794(m02GenDice *arg0);
void fn_1_1850(omObjData *object);
void fn_1_1F94(m02GenDice* arg0, s32 arg1);
void fn_1_1F94(m02GenDice *arg0, s32 arg1);
void fn_1_2030(m02GenDice *arg0);
void fn_1_2100(m02GenDice *arg0, s32 arg1);
void fn_1_2220(m02GenDice *arg0);
@ -34,7 +34,8 @@ void fn_1_23B4(m02GenDice *arg0, s32 arg1);
void fn_1_272C(m02GenDice *arg0);
/* LOCAL FUNCTIONS */
void fn_1_1254(m02GenDice* arg0) {
void fn_1_1254(m02GenDice *arg0)
{
Vec sp8;
s32 i;
@ -61,11 +62,12 @@ void fn_1_1254(m02GenDice* arg0) {
}
}
void fn_1_13D0(void) {
void fn_1_13D0(void)
{
s32 var_r29;
s32 i;
s32 var_r30_2;
m02GenDice* temp_r31;
m02GenDice *temp_r31;
temp_r31 = HuPrcCurrentGet()->user_data;
temp_r31->unk36[0] = temp_r31->unk36[1] = temp_r31->unk36[2] = 0;
@ -74,17 +76,17 @@ void fn_1_13D0(void) {
while (temp_r31->unk96 < temp_r31->unk00) {
fn_1_1574(temp_r31);
fn_1_1794(temp_r31);
while (temp_r31->unk9C == 0) {
while (temp_r31->unk9C == 0) {
HuPrcVSleep();
}
fn_1_2220(temp_r31);
while (temp_r31->unk9C != 0) {
}
fn_1_2220(temp_r31);
while (temp_r31->unk9C != 0) {
HuPrcVSleep();
}
temp_r31->unk96 += 1;
}
temp_r31->unk96 += 1;
}
for ( i = 0; i < temp_r31->unk00; i++) {
for (i = 0; i < temp_r31->unk00; i++) {
var_r29 += temp_r31->unk36[i];
}
OSReport("Dice res: %d\n", var_r29);
@ -92,7 +94,7 @@ void fn_1_13D0(void) {
while (fn_1_233C(temp_r31) == 0) {
HuPrcVSleep();
}
temp_r31->unk94 = (s16) var_r29;
temp_r31->unk94 = (s16)var_r29;
temp_r31->unk28 = 1;
if (temp_r31->unk22 != 0) {
for (i = 0; i < temp_r31->unk00; i++) {
@ -102,11 +104,12 @@ void fn_1_13D0(void) {
HuPrcEnd();
}
while (TRUE) {
HuPrcVSleep();
HuPrcVSleep();
}
}
void fn_1_1518(m02GenDice* arg0) {
void fn_1_1518(m02GenDice *arg0)
{
OSReport("m02GenDiceKill\n");
if (arg0->unk2C) {
HuPrcKill(arg0->unk2C);
@ -115,12 +118,13 @@ void fn_1_1518(m02GenDice* arg0) {
fn_1_272C(arg0);
}
void fn_1_1574(m02GenDice* arg0) {
void fn_1_1574(m02GenDice *arg0)
{
Vec sp8;
f32 temp_f0;
omObjData* temp_r3;
omObjData *temp_r3;
s32 temp_r28;
WorkGenDice* temp_r29;
WorkGenDice *temp_r29;
temp_r28 = arg0->unk96;
arg0->unk30[temp_r28] = BoardModelCreate(arg0->unk04, NULL, 0);
@ -129,7 +133,7 @@ void fn_1_1574(m02GenDice* arg0) {
BoardModelMotionSpeedSet(arg0->unk30[temp_r28], 0);
BoardModelMotionTimeSet(arg0->unk30[temp_r28], arg0->unk98);
temp_r3 = omAddObjEx(boardObjMan, 0x102, 0U, 0U, -1, fn_1_1850);
temp_r29 = (WorkGenDice*) temp_r3->work;
temp_r29 = (WorkGenDice *)temp_r3->work;
temp_r29->unk7 = 0;
temp_r29->unk6 = 0;
@ -139,7 +143,7 @@ void fn_1_1574(m02GenDice* arg0) {
temp_r29->unk04 = 0;
temp_r29->unk01 = 3;
temp_r29->unk02 = 0;
temp_r3->unk10 = (u32) arg0;
temp_r3->unk10 = (u32)arg0;
arg0->unk3C[temp_r28] = temp_r3;
sp8 = arg0->unk0C;
sp8.y += (250.0f * arg0->unk24);
@ -153,8 +157,9 @@ void fn_1_1574(m02GenDice* arg0) {
HuAudFXPlay(0x302);
}
void fn_1_1794(m02GenDice* arg0) {
WorkGenDice* temp_r30;
void fn_1_1794(m02GenDice *arg0)
{
WorkGenDice *temp_r30;
temp_r30 = OM_GET_WORK_PTR(arg0->unk3C[arg0->unk96], WorkGenDice);
while (temp_r30->unk3 != 1) {
@ -162,10 +167,10 @@ void fn_1_1794(m02GenDice* arg0) {
}
}
s32 fn_1_17F4(m02GenDice* arg0)
s32 fn_1_17F4(m02GenDice *arg0)
{
WorkGenDice* temp;
if ( arg0->unk96 < 0) {
WorkGenDice *temp;
if (arg0->unk96 < 0) {
return 0;
}
temp = OM_GET_WORK_PTR(arg0->unk3C[arg0->unk96], WorkGenDice);
@ -177,121 +182,126 @@ s32 fn_1_17F4(m02GenDice* arg0)
void fn_1_1850(omObjData *object)
{
WorkGenDice *temp_r29;
m02GenDice *temp_r27;
s16 temp_r26;
s16 temp_r25;
float temp_f29;
float temp_f28;
float temp_f27;
temp_r27 = (m02GenDice *)object->unk10;
temp_r29 = OM_GET_WORK_PTR(object, WorkGenDice);
if(temp_r29->unk7 || BoardIsKill()) {
fn_1_1F94(temp_r27, temp_r29->unk1);
temp_r27->unk3C[temp_r29->unk1] = NULL;
omDelObjEx(HuPrcCurrentGet(), object);
return;
}
if(BoardPauseActiveCheck()) {
return;
}
switch(temp_r29->unk3) {
case 0:
if(temp_r29->unk06 >= 1080) {
temp_r29->unk3 = 1;
object->scale.x = object->scale.y = object->scale.z = 1;
object->rot.y = temp_r29->unk04 = 0;
} else {
if(!temp_r29->unk04 && temp_r27->unk88[temp_r29->unk1] == -1) {
temp_r27->unk88[temp_r29->unk1] = HuAudFXPlay(768);
}
object->rot.y = temp_r29->unk06%360;
temp_r29->unk06 += 25;
if(temp_r29->unk04 < 180) {
temp_f27 = 0;
temp_f28 = 1;
} else {
temp_f27 = 1;
temp_f28 = 0.5f;
}
object->scale.x = (temp_f28*sind((float)(temp_r29->unk04%180)))+temp_f27;
object->scale.y = object->scale.x;
object->scale.z = object->scale.x;
if(temp_r29->unk04 <= 360) {
if(temp_r29->unk04 < 180) {
temp_r29->unk04 += 6;
} else {
temp_r29->unk04 += 18;
}
if(temp_r29->unk04 > 360) {
temp_r29->unk04 = 360;
}
}
}
break;
case 1:
temp_r29->unk04 += 4;
if(temp_r29->unk04 > 360) {
temp_r29->unk04 -= 360;
}
OSs16tof32(&temp_r29->unk04, &temp_f29);
object->trans.y += sind(temp_f29)*0.2f;
break;
case 2:
temp_r29->unk04++;
if(temp_r29->unk04 >= 8) {
if(temp_r27->unk88[temp_r29->unk1] != -1) {
HuAudFXStop(temp_r27->unk88[temp_r29->unk1]);
temp_r27->unk88[temp_r29->unk1] = -1;
}
HuAudFXPlay(771);
HuAudFXPlay(780);
temp_r29->unk3 = 3;
temp_r29->unk04 = 0;
fn_1_23FC(temp_r27, temp_r27->unk36[temp_r29->unk1]);
fn_1_2100(temp_r27, temp_r29->unk1);
Hu3DParManPosSet(temp_r27->unk48[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z);
BoardModelVisibilitySet(temp_r27->unk30[temp_r29->unk1], 0);
} else {
OSs16tof32(&temp_r29->unk04, &temp_f29);
if(temp_r29->unk04 < 4) {
object->trans.y += (0.5f*temp_f29)+10.0f;
object->scale.x += (0.1f*sind(4.0f*temp_f29));
object->scale.y = object->scale.x;
object->scale.z = object->scale.x;
} else {
BoardModelAlphaSet(temp_r27->unk30[temp_r29->unk1], 255-(temp_r29->unk04*32));
}
object->trans.y += -0.49f*temp_f29*temp_f29;
}
break;
case 3:
if(++temp_r29->unk04 >= 150) {
temp_r29->unk7 = 1;
}
break;
}
if(!temp_r29->unk6 || temp_r29->unk3 != 3) {
if(temp_r29->unk02++ > temp_r29->unk01) {
temp_r29->unk02 = 0;
temp_r25 = BoardModelMotionTimeGet(temp_r27->unk30[temp_r29->unk1]);
do {
temp_r26 = BoardRandMod(temp_r27->unk1A);
} while(temp_r26 == temp_r25);
BoardModelMotionTimeSet(temp_r27->unk30[temp_r29->unk1], temp_r26+0.5f);
}
}
BoardModelPosSet(temp_r27->unk30[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z);
BoardModelRotSet(temp_r27->unk30[temp_r29->unk1], object->rot.x, object->rot.y, object->rot.z);
BoardModelScaleSet(temp_r27->unk30[temp_r29->unk1], object->scale.x, object->scale.y, object->scale.z);
WorkGenDice *temp_r29;
m02GenDice *temp_r27;
s16 temp_r26;
s16 temp_r25;
float temp_f29;
float temp_f28;
float temp_f27;
temp_r27 = (m02GenDice *)object->unk10;
temp_r29 = OM_GET_WORK_PTR(object, WorkGenDice);
if (temp_r29->unk7 || BoardIsKill()) {
fn_1_1F94(temp_r27, temp_r29->unk1);
temp_r27->unk3C[temp_r29->unk1] = NULL;
omDelObjEx(HuPrcCurrentGet(), object);
return;
}
if (BoardPauseActiveCheck()) {
return;
}
switch (temp_r29->unk3) {
case 0:
if (temp_r29->unk06 >= 1080) {
temp_r29->unk3 = 1;
object->scale.x = object->scale.y = object->scale.z = 1;
object->rot.y = temp_r29->unk04 = 0;
}
else {
if (!temp_r29->unk04 && temp_r27->unk88[temp_r29->unk1] == -1) {
temp_r27->unk88[temp_r29->unk1] = HuAudFXPlay(768);
}
object->rot.y = temp_r29->unk06 % 360;
temp_r29->unk06 += 25;
if (temp_r29->unk04 < 180) {
temp_f27 = 0;
temp_f28 = 1;
}
else {
temp_f27 = 1;
temp_f28 = 0.5f;
}
object->scale.x = (temp_f28 * sind((float)(temp_r29->unk04 % 180))) + temp_f27;
object->scale.y = object->scale.x;
object->scale.z = object->scale.x;
if (temp_r29->unk04 <= 360) {
if (temp_r29->unk04 < 180) {
temp_r29->unk04 += 6;
}
else {
temp_r29->unk04 += 18;
}
if (temp_r29->unk04 > 360) {
temp_r29->unk04 = 360;
}
}
}
break;
case 1:
temp_r29->unk04 += 4;
if (temp_r29->unk04 > 360) {
temp_r29->unk04 -= 360;
}
OSs16tof32(&temp_r29->unk04, &temp_f29);
object->trans.y += sind(temp_f29) * 0.2f;
break;
case 2:
temp_r29->unk04++;
if (temp_r29->unk04 >= 8) {
if (temp_r27->unk88[temp_r29->unk1] != -1) {
HuAudFXStop(temp_r27->unk88[temp_r29->unk1]);
temp_r27->unk88[temp_r29->unk1] = -1;
}
HuAudFXPlay(771);
HuAudFXPlay(780);
temp_r29->unk3 = 3;
temp_r29->unk04 = 0;
fn_1_23FC(temp_r27, temp_r27->unk36[temp_r29->unk1]);
fn_1_2100(temp_r27, temp_r29->unk1);
Hu3DParManPosSet(temp_r27->unk48[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z);
BoardModelVisibilitySet(temp_r27->unk30[temp_r29->unk1], 0);
}
else {
OSs16tof32(&temp_r29->unk04, &temp_f29);
if (temp_r29->unk04 < 4) {
object->trans.y += (0.5f * temp_f29) + 10.0f;
object->scale.x += (0.1f * sind(4.0f * temp_f29));
object->scale.y = object->scale.x;
object->scale.z = object->scale.x;
}
else {
BoardModelAlphaSet(temp_r27->unk30[temp_r29->unk1], 255 - (temp_r29->unk04 * 32));
}
object->trans.y += -0.49f * temp_f29 * temp_f29;
}
break;
case 3:
if (++temp_r29->unk04 >= 150) {
temp_r29->unk7 = 1;
}
break;
}
if (!temp_r29->unk6 || temp_r29->unk3 != 3) {
if (temp_r29->unk02++ > temp_r29->unk01) {
temp_r29->unk02 = 0;
temp_r25 = BoardModelMotionTimeGet(temp_r27->unk30[temp_r29->unk1]);
do {
temp_r26 = BoardRandMod(temp_r27->unk1A);
} while (temp_r26 == temp_r25);
BoardModelMotionTimeSet(temp_r27->unk30[temp_r29->unk1], temp_r26 + 0.5f);
}
}
BoardModelPosSet(temp_r27->unk30[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z);
BoardModelRotSet(temp_r27->unk30[temp_r29->unk1], object->rot.x, object->rot.y, object->rot.z);
BoardModelScaleSet(temp_r27->unk30[temp_r29->unk1], object->scale.x, object->scale.y, object->scale.z);
}
void fn_1_1F94(m02GenDice* arg0, s32 arg1) {
void fn_1_1F94(m02GenDice *arg0, s32 arg1)
{
if (arg0->unk30[arg1] != -1) {
BoardModelKill(arg0->unk30[arg1]);
arg0->unk30[arg1] = -1;
@ -305,157 +315,134 @@ void fn_1_1F94(m02GenDice* arg0, s32 arg1) {
void fn_1_2030(m02GenDice *arg0)
{
fn_1_1F94(arg0, 0);
fn_1_1F94(arg0, 1);
fn_1_1F94(arg0, 2);
fn_1_1F94(arg0, 0);
fn_1_1F94(arg0, 1);
fn_1_1F94(arg0, 2);
}
HsfanimStruct00 lbl_1_data_2D8 = {
150,
{ 0x00, 0x00 }, // padding?
50,
0,
65.0f,
{ 0.0f, -0.195f, 0.0f },
100.0f,
0.99f,
40.0f,
0.999f,
0x0004,
{
0xFF, 0xFF, 0x20, 0xFF,
0xFF, 0xFF, 0x00, 0xFF,
0xFF, 0xFF, 0x80, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF
},
{
0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xFF, 0x00
}
};
HsfanimStruct00 lbl_1_data_2D8 = { 150, { 0x00, 0x00 }, // padding?
50, 0, 65.0f, { 0.0f, -0.195f, 0.0f }, 100.0f, 0.99f, 40.0f, 0.999f, 0x0004,
{ 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00 } };
void fn_1_2100(m02GenDice *arg0, s32 arg1)
{
s16 temp_r29;
AnimData *temp_r28;
void *temp_r27;
temp_r27 = HuDataSelHeapReadNum(0x120001, MEMORY_DEFAULT_NUM, HEAP_DATA);
temp_r28 = HuSprAnimRead(temp_r27);
arg0->unk48[arg1] = Hu3DParManCreate(temp_r28, 100, &lbl_1_data_2D8);
Hu3DParManAttrSet(arg0->unk48[arg1], 0x108);
Hu3DParManRotSet(arg0->unk48[arg1], 0, 0, 0);
Hu3DParManVecSet(arg0->unk48[arg1], 0, 0.4f, 0.2f);
temp_r29 = Hu3DParManModelIDGet(arg0->unk48[arg1]);
Hu3DModelLayerSet(temp_r29, 2);
Hu3DParticleBlendModeSet(temp_r29, 0);
s16 temp_r29;
AnimData *temp_r28;
void *temp_r27;
temp_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), MEMORY_DEFAULT_NUM, HEAP_DATA);
temp_r28 = HuSprAnimRead(temp_r27);
arg0->unk48[arg1] = Hu3DParManCreate(temp_r28, 100, &lbl_1_data_2D8);
Hu3DParManAttrSet(arg0->unk48[arg1], 0x108);
Hu3DParManRotSet(arg0->unk48[arg1], 0, 0, 0);
Hu3DParManVecSet(arg0->unk48[arg1], 0, 0.4f, 0.2f);
temp_r29 = Hu3DParManModelIDGet(arg0->unk48[arg1]);
Hu3DModelLayerSet(temp_r29, 2);
Hu3DParticleBlendModeSet(temp_r29, 0);
}
void fn_1_2220(m02GenDice *arg0)
{
s32 temp_r30;
WorkGenDice *temp_r29;
temp_r30 = arg0->unk96;
temp_r29 = OM_GET_WORK_PTR(arg0->unk3C[temp_r30], WorkGenDice);
temp_r29->unk3 = 2;
temp_r29->unk04 = 0;
BoardModelMotionSpeedSet(arg0->unk30[temp_r30], 0);
arg0->unk36[temp_r30] = arg0->unk1C[temp_r30];
s32 temp_r30;
WorkGenDice *temp_r29;
temp_r30 = arg0->unk96;
temp_r29 = OM_GET_WORK_PTR(arg0->unk3C[temp_r30], WorkGenDice);
temp_r29->unk3 = 2;
temp_r29->unk04 = 0;
BoardModelMotionSpeedSet(arg0->unk30[temp_r30], 0);
arg0->unk36[temp_r30] = arg0->unk1C[temp_r30];
}
typedef struct {
u8 field0_bit0 : 1;
u8 field0_bit1 : 1;
u8 field0_bit2 : 1;
u8 field0_bit3 : 2;
s8 unk01;
s16 unk02;
s16 unk04[2];
float unk08;
u8 field0_bit0 : 1;
u8 field0_bit1 : 1;
u8 field0_bit2 : 1;
u8 field0_bit3 : 2;
s8 unk01;
s16 unk02;
s16 unk04[2];
float unk08;
} WorkGenDiceNum;
void fn_1_22BC(m02GenDice *arg0)
{
s32 temp_r31;
WorkGenDiceNum *temp_r30;
for(temp_r31=0; temp_r31<arg0->unk00; temp_r31++) {
if(arg0->unk50[temp_r31]) {
temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum);
temp_r30->field0_bit1 = 1;
temp_r30->field0_bit2 = 1;
temp_r30->unk02 = 0;
}
}
s32 temp_r31;
WorkGenDiceNum *temp_r30;
for (temp_r31 = 0; temp_r31 < arg0->unk00; temp_r31++) {
if (arg0->unk50[temp_r31]) {
temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum);
temp_r30->field0_bit1 = 1;
temp_r30->field0_bit2 = 1;
temp_r30->unk02 = 0;
}
}
}
s32 fn_1_233C(m02GenDice* arg0)
s32 fn_1_233C(m02GenDice *arg0)
{
s32 temp_r31;
WorkGenDiceNum *temp_r30;
for(temp_r31=0; temp_r31<arg0->unk00; temp_r31++) {
if(!arg0->unk50[temp_r31]) {
continue;
}
temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum);
if(temp_r30->field0_bit2) {
return 0;
}
}
return 1;
s32 temp_r31;
WorkGenDiceNum *temp_r30;
for (temp_r31 = 0; temp_r31 < arg0->unk00; temp_r31++) {
if (!arg0->unk50[temp_r31]) {
continue;
}
temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum);
if (temp_r30->field0_bit2) {
return 0;
}
}
return 1;
}
void fn_1_23B4(m02GenDice *arg0, s32 arg1)
{
WorkGenDiceNum *work;
if(!arg0->unk50[arg1]) {
return;
}
work = OM_GET_WORK_PTR(arg0->unk50[arg1], WorkGenDiceNum);
work->field0_bit0 = 1;
WorkGenDiceNum *work;
if (!arg0->unk50[arg1]) {
return;
}
work = OM_GET_WORK_PTR(arg0->unk50[arg1], WorkGenDiceNum);
work->field0_bit0 = 1;
}
void fn_1_25D0(omObjData *object);
void fn_1_23FC(m02GenDice *arg0, s32 arg1)
{
Vec spC;
s16 sp8[2];
WorkGenDiceNum *temp_r31;
s16 temp_r29;
omObjData *temp_r28;
s32 temp_r26;
s16 temp_r25;
temp_r26 = arg0->unk96;
if(arg1 > 99) {
arg1 = 99;
}
sp8[0] = arg1%10;
sp8[1] = arg1/10;
spC = arg0->unk0C;
spC.y += 300.0f;
temp_r28 = omAddObjEx(boardObjMan, 258, 0, 0, -1, fn_1_25D0);
temp_r28->unk10 = (u32)arg0;
temp_r31 = OM_GET_WORK_PTR(temp_r28, WorkGenDiceNum);
temp_r31->field0_bit0 = 0;
temp_r31->field0_bit1 = 0;
temp_r31->field0_bit2 = 0;
temp_r31->field0_bit3 = temp_r26;
temp_r31->unk08 = 0.3f;
temp_r31->unk01 = arg1;
temp_r31->unk02 = 360;
for(temp_r29=0; temp_r29<2; temp_r29++) {
temp_r25 = BoardModelCreate(arg0->unk08[sp8[temp_r29]], NULL, 0);
BoardModelPosSetV(temp_r25, &spC);
temp_r31->unk04[temp_r29] = temp_r25;
}
if(sp8[1] == 0) {
BoardModelVisibilitySet(temp_r31->unk04[1], 0);
}
arg0->unk50[temp_r26] = temp_r28;
Vec spC;
s16 sp8[2];
WorkGenDiceNum *temp_r31;
s16 temp_r29;
omObjData *temp_r28;
s32 temp_r26;
s16 temp_r25;
temp_r26 = arg0->unk96;
if (arg1 > 99) {
arg1 = 99;
}
sp8[0] = arg1 % 10;
sp8[1] = arg1 / 10;
spC = arg0->unk0C;
spC.y += 300.0f;
temp_r28 = omAddObjEx(boardObjMan, 258, 0, 0, -1, fn_1_25D0);
temp_r28->unk10 = (u32)arg0;
temp_r31 = OM_GET_WORK_PTR(temp_r28, WorkGenDiceNum);
temp_r31->field0_bit0 = 0;
temp_r31->field0_bit1 = 0;
temp_r31->field0_bit2 = 0;
temp_r31->field0_bit3 = temp_r26;
temp_r31->unk08 = 0.3f;
temp_r31->unk01 = arg1;
temp_r31->unk02 = 360;
for (temp_r29 = 0; temp_r29 < 2; temp_r29++) {
temp_r25 = BoardModelCreate(arg0->unk08[sp8[temp_r29]], NULL, 0);
BoardModelPosSetV(temp_r25, &spC);
temp_r31->unk04[temp_r29] = temp_r25;
}
if (sp8[1] == 0) {
BoardModelVisibilitySet(temp_r31->unk04[1], 0);
}
arg0->unk50[temp_r26] = temp_r28;
}
void fn_1_2694(WorkGenDiceNum *arg0);
@ -464,150 +451,147 @@ void fn_1_2BE4(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2);
void fn_1_25D0(omObjData *object)
{
WorkGenDiceNum *temp_r31;
m02GenDice *temp_r30;
temp_r30 = (m02GenDice *)object->unk10;
temp_r31 = OM_GET_WORK_PTR(object, WorkGenDiceNum);
if(temp_r31->field0_bit0 || BoardIsKill()) {
fn_1_2694(temp_r31);
temp_r30->unk50[temp_r31->field0_bit3] = NULL;
omDelObjEx(HuPrcCurrentGet(), object);
return;
}
if(BoardPauseActiveCheck()) {
return;
}
fn_1_2830(temp_r30, temp_r31, temp_r31->field0_bit1);
fn_1_2BE4(temp_r30, temp_r31, temp_r31->field0_bit1);
WorkGenDiceNum *temp_r31;
m02GenDice *temp_r30;
temp_r30 = (m02GenDice *)object->unk10;
temp_r31 = OM_GET_WORK_PTR(object, WorkGenDiceNum);
if (temp_r31->field0_bit0 || BoardIsKill()) {
fn_1_2694(temp_r31);
temp_r30->unk50[temp_r31->field0_bit3] = NULL;
omDelObjEx(HuPrcCurrentGet(), object);
return;
}
if (BoardPauseActiveCheck()) {
return;
}
fn_1_2830(temp_r30, temp_r31, temp_r31->field0_bit1);
fn_1_2BE4(temp_r30, temp_r31, temp_r31->field0_bit1);
}
void fn_1_2694(WorkGenDiceNum *arg0)
{
s32 i;
for(i=0; i<2; i++) {
if(arg0->unk04[i] == -1) {
continue;
}
OSReport("%d:GenDiceNumExitOM Kill %d\n", i, arg0->unk04[i]);
BoardModelKill(arg0->unk04[i]);
arg0->unk04[i] = -1;
(void)i;
}
s32 i;
for (i = 0; i < 2; i++) {
if (arg0->unk04[i] == -1) {
continue;
}
OSReport("%d:GenDiceNumExitOM Kill %d\n", i, arg0->unk04[i]);
BoardModelKill(arg0->unk04[i]);
arg0->unk04[i] = -1;
(void)i;
}
}
void fn_1_272C(m02GenDice *arg0)
{
s32 i;
WorkGenDiceNum *work;
s32 j;
for(i=0; i<3; i++) {
if(!arg0->unk50[i]) {
continue;
}
work = OM_GET_WORK_PTR(arg0->unk50[i], WorkGenDiceNum);
for(j=0; j<2; j++) {
if(work->unk04[j] == -1) {
continue;
}
OSReport("%d:GenDiceNumOMKillAll %d\n", j, work->unk04[j]);
BoardModelKill(work->unk04[j]);
work->unk04[j] = -1;
(void)j;
}
fn_1_23B4(arg0, i);
}
s32 i;
WorkGenDiceNum *work;
s32 j;
for (i = 0; i < 3; i++) {
if (!arg0->unk50[i]) {
continue;
}
work = OM_GET_WORK_PTR(arg0->unk50[i], WorkGenDiceNum);
for (j = 0; j < 2; j++) {
if (work->unk04[j] == -1) {
continue;
}
OSReport("%d:GenDiceNumOMKillAll %d\n", j, work->unk04[j]);
BoardModelKill(work->unk04[j]);
work->unk04[j] = -1;
(void)j;
}
fn_1_23B4(arg0, i);
}
}
void fn_1_2830(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2)
{
float temp_f31;
s16 temp_r31;
Vec *temp_r29;
s16 temp_r27;
s32 sp8 = 0;
Vec sp30;
Vec sp24;
Vec sp18 = { 288, 155, 1400 };
Vec sp54[2];
Vec sp3C[2] = {
{ 144, 155, 1400 },
{ 432, 155, 1400 }
};
Vec sp6C[3] = {
{ 144, 155, 1400 },
{ 432, 155, 1400 },
{ 288, 155, 1400 }
};
Vec spC = { 288, 176, 1400 };
temp_r27 = arg1->unk01/10;
if(arg2) {
temp_r29 = &spC;
temp_f31 = -20.0f*arg1->field0_bit3;
} else {
switch(arg0->unk00) {
case 1:
temp_r29 = &arg0->unk7C;
break;
case 2:
case 3:
temp_r29 = &arg0->unk64[arg1->field0_bit3];
break;
}
temp_f31 = 0;
}
for(temp_r31=0; temp_r31<2; temp_r31++) {
if(temp_r27 == 0) {
sp54[temp_r31].x = temp_r29->x;
} else {
if(temp_r31) {
sp54[temp_r31].x = temp_r29->x-30;
} else {
sp54[temp_r31].x = temp_r29->x+30;
}
}
sp54[temp_r31].y = temp_r29->y;
sp54[temp_r31].z = temp_r29->z+temp_f31;
}
for(temp_r31=0; temp_r31<2; temp_r31++) {
BoardModelPosGet(arg1->unk04[temp_r31], &sp30);
Hu3D2Dto3D(&sp54[temp_r31], 1, &sp54[temp_r31]);
VECSubtract(&sp54[temp_r31], &sp30, &sp24);
if(VECMag(&sp24) < 0.01f) {
arg1->field0_bit2 = 0;
if(arg2 && arg1->field0_bit3) {
BoardModelVisibilitySet(arg1->unk04[temp_r31], 0);
}
} else {
arg1->field0_bit2 = 1;
}
VECScale(&sp24, &sp24, arg1->unk08);
VECAdd(&sp30, &sp24, &sp30);
BoardModelPosSetV(arg1->unk04[temp_r31], &sp30);
}
float temp_f31;
s16 temp_r31;
Vec *temp_r29;
s16 temp_r27;
s32 sp8 = 0;
Vec sp30;
Vec sp24;
Vec sp18 = { 288, 155, 1400 };
Vec sp54[2];
Vec sp3C[2] = { { 144, 155, 1400 }, { 432, 155, 1400 } };
Vec sp6C[3] = { { 144, 155, 1400 }, { 432, 155, 1400 }, { 288, 155, 1400 } };
Vec spC = { 288, 176, 1400 };
temp_r27 = arg1->unk01 / 10;
if (arg2) {
temp_r29 = &spC;
temp_f31 = -20.0f * arg1->field0_bit3;
}
else {
switch (arg0->unk00) {
case 1:
temp_r29 = &arg0->unk7C;
break;
case 2:
case 3:
temp_r29 = &arg0->unk64[arg1->field0_bit3];
break;
}
temp_f31 = 0;
}
for (temp_r31 = 0; temp_r31 < 2; temp_r31++) {
if (temp_r27 == 0) {
sp54[temp_r31].x = temp_r29->x;
}
else {
if (temp_r31) {
sp54[temp_r31].x = temp_r29->x - 30;
}
else {
sp54[temp_r31].x = temp_r29->x + 30;
}
}
sp54[temp_r31].y = temp_r29->y;
sp54[temp_r31].z = temp_r29->z + temp_f31;
}
for (temp_r31 = 0; temp_r31 < 2; temp_r31++) {
BoardModelPosGet(arg1->unk04[temp_r31], &sp30);
Hu3D2Dto3D(&sp54[temp_r31], 1, &sp54[temp_r31]);
VECSubtract(&sp54[temp_r31], &sp30, &sp24);
if (VECMag(&sp24) < 0.01f) {
arg1->field0_bit2 = 0;
if (arg2 && arg1->field0_bit3) {
BoardModelVisibilitySet(arg1->unk04[temp_r31], 0);
}
}
else {
arg1->field0_bit2 = 1;
}
VECScale(&sp24, &sp24, arg1->unk08);
VECAdd(&sp30, &sp24, &sp30);
BoardModelPosSetV(arg1->unk04[temp_r31], &sp30);
}
}
void fn_1_2BE4(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2)
{
s32 temp_r29;
float temp_f30;
if(arg2) {
arg1->unk02 += 18;
if(arg1->unk02 >= 360) {
arg1->unk02 = 360;
}
} else {
arg1->unk02 -= 18;
if(arg1->unk02 <= 0) {
arg1->unk02 = 0;
}
}
OSs16tof32(&arg1->unk02, &temp_f30);
for(temp_r29=0; temp_r29<2; temp_r29++) {
if(arg1->unk04[temp_r29] == -1) {
continue;
}
BoardModelRotSet(arg1->unk04[temp_r29], 0, temp_f30, 0);
}
}
s32 temp_r29;
float temp_f30;
if (arg2) {
arg1->unk02 += 18;
if (arg1->unk02 >= 360) {
arg1->unk02 = 360;
}
}
else {
arg1->unk02 -= 18;
if (arg1->unk02 <= 0) {
arg1->unk02 = 0;
}
}
OSs16tof32(&arg1->unk02, &temp_f30);
for (temp_r29 = 0; temp_r29 < 2; temp_r29++) {
if (arg1->unk04[temp_r29] == -1) {
continue;
}
BoardModelRotSet(arg1->unk04[temp_r29], 0, temp_f30, 0);
}
}

View file

@ -89,17 +89,17 @@ void BoardCreate(void) {
boardData = get_current_board();
lbl_1_bss_0 = GWSystem.board_data;
BoardSpaceInit(0x760000);
lbl_1_data_280 = BoardModelCreate(0x760001, NULL, 0);
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W02, 0x00));
lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x01), NULL, 0);
fn_8006DDE8(lbl_1_data_280, -1.0f);
BoardModelPosSet(lbl_1_data_280, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_280, 0, 0x40000001);
BoardModelMotionSpeedSet(lbl_1_data_280, 0.1f);
lbl_1_data_282 = BoardModelCreate(0x760002, NULL, 0);
lbl_1_data_282 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x02), NULL, 0);
fn_8006DDE8(lbl_1_data_282, -1.0f);
BoardModelPosSet(lbl_1_data_282, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_282, 0, 0x40000001);
lbl_1_data_284 = BoardModelCreate(0x760003, lbl_1_data_288, 0);
lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x03), lbl_1_data_288, 0);
BoardModelPosSet(lbl_1_data_284, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_284, 1, 0x40000001);
lbl_1_data_286 = BoardModelCreate(0x20005, lbl_1_data_290, 0);
@ -132,8 +132,8 @@ void BoardCreate(void) {
fn_1_92C();
BoardModelPosGet(lbl_1_bss_30[13], &lbl_1_bss_20);
BoardModelPosGet(lbl_1_bss_30[14], &lbl_1_bss_14);
lbl_1_bss_2E = BoardModelCreate(0x760010, NULL, 1);
lbl_1_bss_2C = BoardModelCreate(0x760010, NULL, 1);
lbl_1_bss_2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x10), NULL, 1);
lbl_1_bss_2C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x10), NULL, 1);
fn_1_9250();
BoardSpaceWalkEventFuncSet(fn_1_800);
BoardSpaceWalkMiniEventFuncSet(fn_1_1128);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -69,11 +69,11 @@ void fn_1_BCFC(void) {
HuPrcVSleep();
}
BoardModelRotYSet(lbl_1_bss_30[15], -90.0f);
fn_1_121C(0x130000);
fn_1_121C(MAKE_MESSID(0x13, 0x00));
HuAudFXPlay(0x44);
temp_r29 = fn_1_BE88();
BoardStatusShowSetAll(0);
fn_1_121C(0x130001);
fn_1_121C(MAKE_MESSID(0x13, 0x01));
temp_r30 = fn_1_C108(temp_r29);
fn_1_CD04(temp_r30);
BoardCameraViewSet(1);
@ -104,7 +104,7 @@ s32 fn_1_BE88(void) {
if (coinAmount < 5) {
return var_r30;
}
fn_1_121C(0x130002);
fn_1_121C(MAKE_MESSID(0x13, 0x02));
do {
BoardWinCreateChoice(2, MAKE_MESSID(19, 29), 4, 0);
@ -153,17 +153,17 @@ s32 fn_1_BE88(void) {
// Coin amount is now the bribe amount in coins
switch (bribeChoice) {
case 0:
mesg = 0x130004;
mesg = MAKE_MESSID(0x13, 0x04);
coinAmount = 0x14;
var_r30 = 0x5A; // 90%
break;
case 1:
mesg = 0x130005;
mesg = MAKE_MESSID(0x13, 0x05);
coinAmount = 0xA;
var_r30 = 0x3C; // 60%
break;
case 2:
mesg = 0x130006;
mesg = MAKE_MESSID(0x13, 0x06);
coinAmount = 5;
var_r30 = 0x1E; // 30%
break;
@ -183,7 +183,7 @@ s32 fn_1_BE88(void) {
}
} while (rouletteChoice == 2); // While viewing map
if (var_r30 == -1) {
fn_1_121C(0x130007);
fn_1_121C(MAKE_MESSID(0x13, 0x07));
}
return var_r30;
}
@ -516,12 +516,12 @@ void fn_1_D3AC(void)
Vec sp20;
Vec sp14;
float sp8[3] = { 1.0f, 0.3f, 2.5f };
fn_1_121C(0x130008);
fn_1_121C(MAKE_MESSID(0x13, 0x08));
BoardStatusShowSetAll(1);
BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15);
BoardPlayerPosGet(lbl_1_bss_388, &sp14);
for(temp_r31=0; temp_r31<20; temp_r31++) {
sp38[temp_r31] = BoardModelCreate(0x7000A, NULL, 1);
sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1);
sp2C.x = (sp14.x-25.0f)+((1.0f/255.0f)*(frand8()*50.0f));
sp2C.y = (sp14.y+1200.0f)+(temp_r31*130.0f)+((1.0f/255.0f)*(frand8()*60.0f));
sp2C.z = (sp14.z-25.0f)+((1.0f/255.0f)*(frand8()*50.0f));
@ -603,11 +603,11 @@ s32 fn_1_D8C4(void)
s16 temp_r22;
u32 temp_r21;
fn_1_121C(0x130009);
fn_1_121C(MAKE_MESSID(0x13, 0x09));
temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800));
BoardModelPosGet(lbl_1_bss_30[3], &sp40);
for(temp_r31=0; temp_r31<4; temp_r31++) {
sp14[temp_r31] = BoardModelCreate(0x70000, NULL, 1);
sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1);
BoardModelLayerSet(sp14[temp_r31], 2);
for(temp_r28=0; temp_r28<temp_r29->link_cnt; temp_r28++) {
temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1;
@ -627,9 +627,9 @@ s32 fn_1_D8C4(void)
BoardModelScaleSetV(sp14[temp_r31], &sp1C);
}
temp_r25 = fn_1_E2AC();
HuWinMesMaxSizeGet(1, spC, 0x13001E);
HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E));
temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0);
HuWinMesSet(temp_r30, 0x13001E);
HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E));
HuWinBGTPLvlSet(temp_r30, 0);
HuWinMesSpeedSet(temp_r30, 0);
temp_r23 = GWPlayer[lbl_1_bss_388].port;
@ -811,4 +811,4 @@ void fn_1_E41C(void)
while(lbl_1_bss_38C) {
HuPrcVSleep();
}
}
}

View file

@ -25,25 +25,25 @@ s16 lbl_1_bss_1AC;
Vec lbl_1_bss_1A0;
s32 lbl_1_data_490[8] = {
0x0076002E,
0x0076002F,
0x00760030,
0x00760031,
0x00760032,
0x00760033,
0x00760034,
0x00760035
DATA_MAKE_NUM(DATADIR_W02, 0x2E),
DATA_MAKE_NUM(DATADIR_W02, 0x2F),
DATA_MAKE_NUM(DATADIR_W02, 0x30),
DATA_MAKE_NUM(DATADIR_W02, 0x31),
DATA_MAKE_NUM(DATADIR_W02, 0x32),
DATA_MAKE_NUM(DATADIR_W02, 0x33),
DATA_MAKE_NUM(DATADIR_W02, 0x34),
DATA_MAKE_NUM(DATADIR_W02, 0x35)
};
s32 lbl_1_data_4B0[8] = {
0x00760026,
0x00760027,
0x00760028,
0x00760029,
0x0076002A,
0x0076002B,
0x0076002C,
0x0076002D
DATA_MAKE_NUM(DATADIR_W02, 0x26),
DATA_MAKE_NUM(DATADIR_W02, 0x27),
DATA_MAKE_NUM(DATADIR_W02, 0x28),
DATA_MAKE_NUM(DATADIR_W02, 0x29),
DATA_MAKE_NUM(DATADIR_W02, 0x2A),
DATA_MAKE_NUM(DATADIR_W02, 0x2B),
DATA_MAKE_NUM(DATADIR_W02, 0x2C),
DATA_MAKE_NUM(DATADIR_W02, 0x2D)
};
s32 fn_1_9250(void)
@ -135,9 +135,9 @@ void fn_1_94C0(void)
BoardCameraRotSet(-10, -sp10.y);
BoardCameraZoomSet(900);
BoardStatusShowSetAll(0);
HuWinMesMaxSizeGet(1, sp8, 0x13001C);
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1C));
lbl_1_bss_1AC = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0);
HuWinMesSet(lbl_1_bss_1AC, 0x13001C);
HuWinMesSet(lbl_1_bss_1AC, MAKE_MESSID(0x13, 0x1C));
HuWinBGTPLvlSet(lbl_1_bss_1AC, 0);
HuWinMesSpeedSet(lbl_1_bss_1AC, 0);
fn_1_9EC4();
@ -238,7 +238,7 @@ void fn_1_9EC4(void)
s32 temp_r31;
s32 temp_r30;
for(temp_r31=0; temp_r31<15; temp_r31++) {
lbl_1_bss_34C[temp_r31] = BoardModelCreate(0x7000A, NULL, 1);
lbl_1_bss_34C[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1);
BoardModelVisibilitySet(lbl_1_bss_34C[temp_r31], 0);
lbl_1_bss_1C4[temp_r31] = 1;
}
@ -582,4 +582,4 @@ void fn_1_BB30(void)
HuPrcVSleep();
}
}
}

View file

@ -1,21 +1,21 @@
#include "REL/w03Dll.h"
#include "game/data.h"
#include "game/board/main.h"
#include "game/board/space.h"
#include "game/board/player.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/space.h"
#include "game/board/window.h"
#include "game/data.h"
#include "game/hsfman.h"
#include "game/hsfdraw.h"
#include "game/hsfman.h"
#include "game/pad.h"
#include "game/wipe.h"
//structs
// structs
typedef struct w03UnkStruct5 {
/* 0x00 */ struct {
/* 0x00 */ struct {
u8 unk00_bit0 : 1;
u8 unk00_bit1 : 2;
u8 unk00_bit3 : 1;
@ -27,21 +27,21 @@ typedef struct w03UnkStruct5 {
} w03UnkStruct5;
typedef struct w03UnkStruct4 {
/* 0x00 */ struct {
/* 0x00 */ struct {
u8 unk00_bit0 : 1;
};
};
} w03UnkStruct4;
typedef struct w03StructUnk3 {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 model;
/* 0x04 */ f32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 model;
/* 0x04 */ f32 unk_04;
/* 0x08 */ Vec unk_08;
/* 0x14 */ Vec unk_14;
} w03StructUnk3;
typedef struct w03StructUnk2 {
/* 0x00 */ struct {
/* 0x00 */ struct {
u8 unkbit_00 : 1;
u8 unkbit_01 : 2;
u8 unkbit_03 : 1;
@ -52,10 +52,10 @@ typedef struct w03StructUnk2 {
u8 unk_03;
s16 model;
char unk_06[2];
w03StructUnk3* unk_08;
w03StructUnk3 *unk_08;
} w03StructUnk2;
//function signatures
// function signatures
void fn_1_313C(void);
void fn_1_3218(void);
void fn_1_3304(void);
@ -67,44 +67,40 @@ void fn_1_3F5C(s32);
void fn_1_4354(s32);
void fn_1_48EC(s32);
void fn_1_4A9C(void);
void fn_1_50D4(omObjData* arg0);
void fn_1_50D4(omObjData *arg0);
void fn_1_5838(s32);
void fn_1_5AC8(omObjData* arg0);
void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1);
void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1);
f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1);
void fn_1_5AC8(omObjData *arg0);
void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1);
void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1);
f32 fn_1_61A4(omObjData *arg0, w03UnkStruct5 *arg1);
void fn_1_629C(s8 arg0);
s32 fn_1_62D0(void);
void fn_1_62FC(void);
//bss
// bss
float lbl_1_bss_80[20][2];
s8 lbl_1_bss_7D;
s8 lbl_1_bss_7C;
omObjData *lbl_1_bss_78;
omObjData *lbl_1_bss_74;
Process* lbl_1_bss_70;
Process *lbl_1_bss_70;
//data
// data
s16 lbl_1_data_310 = -1;
s16 lbl_1_data_312 = -1;
s16 lbl_1_data_314 = -1;
s16 lbl_1_data_316 = -1;
s32 lbl_1_data_318[] = {
DATA_MAKE_NUM(DATADIR_W03, 0x0016),
DATA_MAKE_NUM(DATADIR_W03, 0x0017),
DATA_MAKE_NUM(DATADIR_W03, 0x0018),
DATA_MAKE_NUM(DATADIR_W03, 0x0019),
DATA_MAKE_NUM(DATADIR_W03, 0x001A),
DATA_NUM_LISTEND
};
s32 lbl_1_data_318[] = { DATA_MAKE_NUM(DATADIR_W03, 0x0016), DATA_MAKE_NUM(DATADIR_W03, 0x0017), DATA_MAKE_NUM(DATADIR_W03, 0x0018),
DATA_MAKE_NUM(DATADIR_W03, 0x0019), DATA_MAKE_NUM(DATADIR_W03, 0x001A), DATA_NUM_LISTEND };
void fn_1_3058(void) {
lbl_1_data_310 = BoardModelCreate(0x770015, lbl_1_data_318, 0);
void fn_1_3058(void)
{
lbl_1_data_310 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x15), lbl_1_data_318, 0);
fn_1_3304();
}
s32 fn_1_309C(void) {
s32 fn_1_309C(void)
{
BoardRollDispSet(0);
lbl_1_bss_70 = HuPrcChildCreate(fn_1_313C, 0x2003U, 0x2000U, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_70, fn_1_3218);
@ -112,12 +108,13 @@ s32 fn_1_309C(void) {
while (lbl_1_bss_70) {
HuPrcVSleep();
}
BoardRollDispSet(1);
return lbl_1_bss_7C;
}
void fn_1_313C(void) {
void fn_1_313C(void)
{
s32 temp_r31;
temp_r31 = GWSystem.player_curr;
@ -138,8 +135,8 @@ void fn_1_313C(void) {
HuPrcEnd();
}
void fn_1_3218(void) {
void fn_1_3218(void)
{
if (lbl_1_data_316 != -1) {
HuWinKill(lbl_1_data_316);
lbl_1_data_316 = -1;
@ -154,20 +151,21 @@ void fn_1_3218(void) {
BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_312);
lbl_1_data_312 = -1;
}
lbl_1_bss_0->unk3 = 0;
lbl_1_bss_70 = 0;
}
void fn_1_3304(void) {
void fn_1_3304(void)
{
Vec sp8;
f32 temp_f31;
s32 var_r31;
if (lbl_1_bss_0->unk1 != 0) {
var_r31 = BoardSpaceFlagSearch(0, 0x4000);
} else {
}
else {
var_r31 = BoardSpaceFlagSearch(0, 0x8000);
}
@ -181,7 +179,8 @@ void fn_1_3304(void) {
BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001);
}
s32 fn_1_3478(s32 arg0) {
s32 fn_1_3478(s32 arg0)
{
Vec sp38;
Vec sp2C;
Vec sp20;
@ -214,20 +213,20 @@ s32 fn_1_3478(s32 arg0) {
PSVECSubtract(&sp38, &sp2C, &sp20);
float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f;
BoardPlayerMotBlendSet(arg0, (float_temp), 0xF);
while (BoardPlayerMotBlendCheck(arg0) == 0) {
HuPrcVSleep();
}
BoardPlayerIdleSet(arg0);
HuAudFXPlay(0x447);
BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, 0);
HuPrcSleep(6);
while (BoardModelMotionEndCheck(lbl_1_data_310) == 0) {
HuPrcVSleep();
}
BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001);
temp_r26 = BoardPlayerGetCharMess(arg0);
BoardWinCreate(2, MAKE_MESSID(22, 16), 8);
@ -245,26 +244,26 @@ s32 fn_1_3478(s32 arg0) {
while (var_r29 == 0) {
BoardWinCreateChoice(2, MAKE_MESSID(22, 17), 8, 0);
BoardWinAttrSet(0x10);
if (GWPlayer[arg0].com != 0) {
fn_1_4354(arg0);
}
BoardWinWait();
BoardWinKill();
switch (BoardWinChoiceGet()) {
case 0:
var_r29 = 1;
break;
case 2:
BoardViewMapExec(arg0);
break;
default:
case 1:
BoardWinCreate(2, MAKE_MESSID(22, 20), 8);
BoardWinWait();
BoardWinKill();
return 0;
case 0:
var_r29 = 1;
break;
case 2:
BoardViewMapExec(arg0);
break;
default:
case 1:
BoardWinCreate(2, MAKE_MESSID(22, 20), 8);
BoardWinWait();
BoardWinKill();
return 0;
}
}
@ -273,7 +272,7 @@ s32 fn_1_3478(s32 arg0) {
for (j = 0; j < 5; j++) {
BoardPlayerCoinsAdd(arg0, -1);
HuAudFXPlay(14);
HuPrcSleep(6);
HuPrcSleep(6);
}
HuAudFXPlay(15);
@ -281,7 +280,8 @@ s32 fn_1_3478(s32 arg0) {
return 1;
}
void fn_1_3814(s32 arg0) {
void fn_1_3814(s32 arg0)
{
Vec sp14;
Vec sp8;
f32 temp;
@ -289,11 +289,11 @@ void fn_1_3814(s32 arg0) {
BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001);
temp = (180.0f + BoardPlayerRotYGet(arg0));
BoardPlayerMotBlendSet(arg0, temp, 0xF);
while (BoardPlayerMotBlendCheck(arg0) == 0) {
HuPrcVSleep();
}
BoardCameraViewSet(1);
BoardCameraTargetPlayerSet(arg0);
@ -310,18 +310,21 @@ void fn_1_3814(s32 arg0) {
BoardCameraMotionWait();
}
void fn_1_3968(s32 arg0) {
void fn_1_3968(s32 arg0)
{
s32 var_r29 = 0;
s32 var_r28 = 0;
s32 sp48[] = {0x005F0065, 0x001A0065, 0x006D0065, 0x008A0065, 0x00850065, 0x00110065, 0x000D0065, 0x00810065};
s32 sp48[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x65), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x65), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x65),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x65), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x65), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x65),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x65), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x65) };
Vec sp3C;
Vec sp30;
Vec sp24;
Vec sp18;
s32 sp10[2] = {0x00770013, 0x00770014};
s32 sp10[2] = { 0x00770013, 0x00770014 };
f32 spC;
s16 sp8;
f32 temp_f30;
f32 temp_f28;
f32 temp_f31;
@ -332,7 +335,7 @@ void fn_1_3968(s32 arg0) {
lbl_1_data_314 = BoardModelCreate(sp10[lbl_1_bss_0->unk1], NULL, 0);
character = GWPlayer[arg0].character;
lbl_1_data_312 = BoardPlayerMotionCreate(arg0, sp48[character]);
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_310), "itemhook_oya", &sp3C);
BoardPlayerPosGet(arg0, &sp30);
temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30);
@ -341,13 +344,13 @@ void fn_1_3968(s32 arg0) {
PSVECScale(&sp24, &sp24, temp_f30 / 45.0f);
BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0);
HuPrcSleep(5);
spC = BoardPlayerRotYGet(arg0);
temp_f27 = 180.0f + spC;
var_r29 = 0;
sp8 = 0;
temp_f28 = 40.0f;
while (1) {
temp_f31 = __OSs16tof32(&sp8);
sp24.y = temp_f28 + (-0.08166667f * (0.75f * (temp_f31 * temp_f31)));
@ -359,16 +362,17 @@ void fn_1_3968(s32 arg0) {
sp30.x = sp3C.x;
sp30.z = sp3C.z;
}
if (var_r29 == 0) {
if (sp3C.y < sp30.y) {
var_r29 = 1;
}
} else {
}
else {
BoardDAngleCalcRange(&spC, temp_f27, 5.142857f);
BoardPlayerRotYSet(arg0, spC);
}
if (sp30.y <= sp3C.y && var_r29 != 0) {
sp30.y = sp3C.y;
break;
@ -376,39 +380,40 @@ void fn_1_3968(s32 arg0) {
BoardPlayerPosSetV(arg0, &sp30);
HuPrcVSleep();
sp8 += 1;
sp8 += 1;
}
BoardMusStart(1, 0x18, 0x7F, 0);
BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f);
BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0));
BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0));
BoardPlayerMotionStart(arg0, lbl_1_data_312, 0x40000001);
HuAudFXPlay(0x44F);
BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, 0);
sp18.x = -15.0f;
sp18.y = 180.0f;
sp18.z = 0.0f;
BoardCameraMotionStartEx(lbl_1_data_310, &sp18, NULL, 4000.0f, -1.0f, 336);
for (var_r28 = 0, sp8 = 0; ; sp8++) {
for (var_r28 = 0, sp8 = 0;; sp8++) {
if (var_r28 == 0) {
if (sp8 == 0x78U) {
WipeColorSet(0, 0, 0);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
var_r28 = 1;
}
} else if (WipeStatGet() == 0) {
}
else if (WipeStatGet() == 0) {
break;
}
HuPrcVSleep();
}
}
void fn_1_3E88(s32 arg0) {
void fn_1_3E88(s32 arg0)
{
lbl_1_bss_7D = 0;
fn_1_48EC(arg0);
fn_1_5838(arg0);
@ -433,7 +438,8 @@ void fn_1_3E88(s32 arg0) {
BoardAudSeqPause(0, 0, 0x3E8);
}
void fn_1_3F5C(s32 arg0) {
void fn_1_3F5C(s32 arg0)
{
Mtx sp38;
Vec sp2C;
Vec sp20;
@ -447,7 +453,8 @@ void fn_1_3F5C(s32 arg0) {
if (lbl_1_bss_0->unk1 != 0) {
lbl_1_bss_0->unk1 = 0;
var_r30 = BoardSpaceFlagSearch(0, 0x8000);
} else {
}
else {
lbl_1_bss_0->unk1 = 1;
var_r30 = BoardSpaceFlagSearch(0, 0x4000);
}
@ -458,7 +465,8 @@ void fn_1_3F5C(s32 arg0) {
if (lbl_1_bss_0->unk1 != 0) {
var_r31 = BoardSpaceFlagSearch(0, 0x4000);
} else {
}
else {
var_r31 = BoardSpaceFlagSearch(0, 0x8000);
}
@ -506,19 +514,21 @@ void fn_1_3F5C(s32 arg0) {
BoardWinKill();
}
void fn_1_4354(s32 arg0) {
void fn_1_4354(s32 arg0)
{
s32 sp8;
s32 starPos;
s32 var_r30;
var_r30 = 0;
starPos = GWSystem.star_pos;
if (lbl_1_bss_0->unk1 != 0) {
if ((starPos == 1) || (starPos == 2) || (starPos == 3) || (starPos == 4)) {
var_r30 = 1;
}
} else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) {
}
else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) {
var_r30 = 1;
}
@ -534,12 +544,10 @@ void fn_1_4354(s32 arg0) {
BoardComKeySetRight();
}
char *lbl_1_data_34C[] = {
"jyanA",
"jyanB"
};
char *lbl_1_data_34C[] = { "jyanA", "jyanB" };
void fn_1_4424(w03StructUnk2* arg0) {
void fn_1_4424(w03StructUnk2 *arg0)
{
Mtx sp108;
Mtx spD8;
Mtx spA8;
@ -562,9 +570,9 @@ void fn_1_4424(w03StructUnk2* arg0) {
f32 sp10;
f32 sp10_2;
s16 i;
char* temp_r22;
w03StructUnk3* temp_r27;
ModelData* temp_r28;
char *temp_r22;
w03StructUnk3 *temp_r27;
ModelData *temp_r28;
memset(&lbl_1_bss_80, 0, 0xA0);
sp48.x = sp54.x = 0.0f;
@ -576,7 +584,8 @@ void fn_1_4424(w03StructUnk2* arg0) {
if (lbl_1_bss_0->unk1 != 0) {
PSVECSubtract(&sp6C, &sp60, &sp3C);
} else {
}
else {
PSVECSubtract(&sp60, &sp6C, &sp3C);
}
@ -595,21 +604,21 @@ void fn_1_4424(w03StructUnk2* arg0) {
for (i = var_r25 = 0; i < 20;) {
Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0);
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54);
temp_r28->unk_64 = (f32) (temp_r28->unk_64 + temp_r28->unk_68);
temp_r28->unk_64 = (f32)(temp_r28->unk_64 + temp_r28->unk_68);
if (temp_r28->unk_64 > 400.0f) {
break;
}
if (var_r25 % 4 == 0 && ((s16) var_r25 != 0)) {
if (var_r25 % 4 == 0 && ((s16)var_r25 != 0)) {
temp_r27 = &arg0->unk_08[i];
temp_r27->unk_00 = 1;
temp_f30 = (0.5f - BoardRandFloat()) * 90;
OSf32tos16(&temp_f30, &sp8);
sp8 = (sp8 / 10) * 10;
OSs16tof32(&sp8, &temp_f30);
lbl_1_bss_80[i+1][0] = temp_f30;
lbl_1_bss_80[i+1][1] = temp_r28->unk_64;
lbl_1_bss_80[i + 1][0] = temp_f30;
lbl_1_bss_80[i + 1][1] = temp_r28->unk_64;
sp30 = sp48;
sp18 = sp54;
BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30);
@ -632,12 +641,13 @@ void fn_1_4424(w03StructUnk2* arg0) {
arg0->unk_03 = i;
}
void fn_1_48EC(s32 arg0) {
void fn_1_48EC(s32 arg0)
{
Vec spC;
omObjData* obj;
omObjData *obj;
s32 i;
w03StructUnk2* temp_r31;
w03StructUnk3* temp_r30;
w03StructUnk2 *temp_r31;
w03StructUnk3 *temp_r30;
obj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_50D4);
lbl_1_bss_74 = obj;
@ -648,9 +658,9 @@ void fn_1_48EC(s32 arg0) {
temp_r31->unkbit_04 = 0;
temp_r31->unk_02 = -1;
temp_r31->unkbit_01 = arg0;
temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, 0x10000000U);
temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, MEMORY_DEFAULT_NUM);
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC);
temp_r31->model = BoardModelCreate(0x770007, NULL, 0);
temp_r31->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x07), NULL, 0);
BoardModelVisibilitySet(temp_r31->model, 0);
BoardModelPosSetV(temp_r31->model, &spC);
BoardModelLayerSet(temp_r31->model, 2U);
@ -658,24 +668,26 @@ void fn_1_48EC(s32 arg0) {
for (i = 0; i < 80; i++) {
temp_r30 = &temp_r31->unk_08[i];
temp_r30->model = BoardModelCreate(0x70009, 0, 1);
temp_r30->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x09), 0, 1);
BoardModelVisibilitySet(temp_r30->model, 0);
BoardModelMotionStart(temp_r30->model, 0, 0x40000001U);
BoardModelMotionStart(temp_r30->model, 0, 0x40000001U);
}
fn_1_4424(temp_r31);
}
void fn_1_4A9C(void) {
void fn_1_4A9C(void)
{
OM_GET_WORK_PTR(lbl_1_bss_74, w03UnkStruct4)->unk00_bit0 = 1;
}
void fn_1_4ABC(w03StructUnk2* arg0) {
void fn_1_4ABC(w03StructUnk2 *arg0)
{
Vec sp8;
f32 temp_f31;
w03StructUnk3* temp_r31;
w03StructUnk3 *temp_r31;
s32 i;
BoardModelPosGet(lbl_1_data_310, &sp8);
sp8.y += 250.0f;
@ -691,10 +703,10 @@ void fn_1_4ABC(w03StructUnk2* arg0) {
HuAudFXPlay(7);
}
BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08);
}
}
}
//reg alloc hack
// reg alloc hack
(void)i;
(void)i;
@ -710,22 +722,25 @@ void fn_1_4ABC(w03StructUnk2* arg0) {
if (temp_r31->unk_08.y < -300.0f) {
temp_r31->unk_00 = -1;
BoardModelVisibilitySet(temp_r31->model, 0);
} else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) {
}
else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) {
temp_r31->unk_00 = -1;
BoardModelVisibilitySet(temp_r31->model, 0);
BoardPlayerCoinsAdd(arg0->unkbit_01, 1);
CharModelLayerSetAll(2);
CharModelCoinEffectCreate(1, &temp_r31->unk_08);
HuAudFXPlay(7);
} else {
}
else {
BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08);
}
}
}
}
}
s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) {
w03StructUnk2* temp_r31;
s32 fn_1_4D0C(w03StructUnk3 **arg0, s16 *arg1)
{
w03StructUnk2 *temp_r31;
if (!(lbl_1_bss_74)) {
return 0;
@ -737,13 +752,14 @@ s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) {
return 1;
}
void fn_1_4D60(w03StructUnk2* arg0) {
void fn_1_4D60(w03StructUnk2 *arg0)
{
Vec sp8;
f32 temp_f31;
f32 temp_f30;
s32 i;
s32 j;
w03StructUnk3* temp_r31;
w03StructUnk3 *temp_r31;
if (arg0->unk_02 == 1) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &sp8);
@ -769,20 +785,23 @@ void fn_1_4D60(w03StructUnk2* arg0) {
}
}
void fn_1_4F24(w03StructUnk2* arg0) {
void fn_1_4F24(w03StructUnk2 *arg0)
{
s32 var_r30 = 0;
s32 sp8[4] = {5, 10, 30, 40};
s32 sp8[4] = { 5, 10, 30, 40 };
s32 temp_r29;
s32 temp_r28;
if (arg0->unk_02 == -1) {
if (GWTeamGet()) {
if (GWPlayer[arg0->unkbit_01].rank == 0) {
var_r30 = 5;
} else if (GWPlayer[arg0->unkbit_01].rank == 1) {
}
else if (GWPlayer[arg0->unkbit_01].rank == 1) {
var_r30 = 20;
}
} else {
}
else {
var_r30 = sp8[GWPlayer[arg0->unkbit_01].rank];
}
@ -792,10 +811,12 @@ void fn_1_4F24(w03StructUnk2* arg0) {
if (temp_r29 < var_r30) {
if (temp_r28 < 30) {
arg0->unk_02 = 2;
} else {
}
else {
arg0->unk_02 = 1;
}
} else {
}
else {
arg0->unk_02 = 0;
}
@ -805,12 +826,13 @@ void fn_1_4F24(w03StructUnk2* arg0) {
}
}
void fn_1_50D4(omObjData* arg0) {
void fn_1_50D4(omObjData *arg0)
{
Vec sp50;
Vec sp44;
Vec sp38;
PlayerState* sp18;
PlayerState* sp14;
PlayerState *sp18;
PlayerState *sp14;
s16 sp10[2];
s16 spC[2];
f32 temp_f31;
@ -819,12 +841,12 @@ void fn_1_50D4(omObjData* arg0) {
s32 i, j, k;
s32 temp_r22;
s32 temp_r23;
w03StructUnk3* temp_r30;
w03StructUnk2* temp_r31;
w03StructUnk3* temp;
w03StructUnk3 *temp_r30;
w03StructUnk2 *temp_r31;
w03StructUnk3 *temp;
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2);
if ((temp_r31->unkbit_00 != 0) || (BoardIsKill() != 0)) {
for (i = 0; i < 80; i++) {
temp = &temp_r31->unk_08[i];
@ -834,28 +856,26 @@ void fn_1_50D4(omObjData* arg0) {
for (i = 0; i < 4; i++) {
BoardModelVisibilitySet(BoardPlayerModelGet(i), 1);
}
BoardModelKill(temp_r31->model);
HuMemDirectFree(temp_r31->unk_08);
lbl_1_bss_74 = 0;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
if (lbl_1_data_314 != -1) {
temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314);
if (temp_r31->unk_01 == 0) {
if ((lbl_1_bss_0->unk1 != 0) &&
((temp_f31 >= 212.0f)) ||
(lbl_1_bss_0->unk1 == 0) &&
((temp_f31 >= 86.0f))) {
if ((lbl_1_bss_0->unk1 != 0) && ((temp_f31 >= 212.0f)) || (lbl_1_bss_0->unk1 == 0) && ((temp_f31 >= 86.0f))) {
temp_r31->unk_01 = 1;
}
} else {
}
else {
fn_1_4F24(temp_r31);
}
if (temp_r31->unk_01 != 0) {
if (BoardModelMotionEndCheck(lbl_1_bss_C[2]) != 0) {
BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001);
@ -865,12 +885,13 @@ void fn_1_50D4(omObjData* arg0) {
BoardModelVisibilitySet(temp_r31->model, 0);
}
}
if (BoardModelMotionTimeGet(lbl_1_bss_C[2]) >= 170.0f) {
if (temp_r31->unkbit_04 == 0) {
if (temp_r31->unkbit_03 == 0) {
HuAudFXPlay(0x43C);
} else {
}
else {
HuAudFXPlay(0x43D);
}
temp_r31->unkbit_04 = 1;
@ -878,16 +899,17 @@ void fn_1_50D4(omObjData* arg0) {
if (temp_r31->unk_02 == 1) {
omVibrate(GWSystem.player_curr, 0xC, 4, 2);
fn_1_4D60(temp_r31);
} else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) {
}
else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) {
omVibrate(GWSystem.player_curr, 0xC, 0xC, 0);
BoardModelVisibilitySet(temp_r31->model, 1);
BoardModelMotionStart(temp_r31->model, 0, 0);
temp_r31->unkbit_03 = 1;
}
}
fn_1_4ABC(temp_r31);
for (i = 0; i < 4; i++) {
if (i != GWSystem.player_curr) {
BoardPlayerPosGet(i, &sp50);
@ -895,7 +917,8 @@ void fn_1_50D4(omObjData* arg0) {
PSVECSubtract(&sp50, &sp44, &sp38);
if (PSVECMag(&sp38) >= 2000.0f) {
BoardModelVisibilitySet(BoardPlayerModelGet(i), 0);
} else {
}
else {
BoardModelVisibilitySet(BoardPlayerModelGet(i), 1);
}
}
@ -903,11 +926,12 @@ void fn_1_50D4(omObjData* arg0) {
}
}
void fn_1_5838(s32 arg0) {
void fn_1_5838(s32 arg0)
{
Vec sp18;
Vec spC;
omObjData* obj;
w03UnkStruct5* temp_r31;
omObjData *obj;
w03UnkStruct5 *temp_r31;
obj = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, &fn_1_5AC8);
lbl_1_bss_78 = obj;
@ -918,18 +942,18 @@ void fn_1_5838(s32 arg0) {
temp_r31->unk00_bit3 = 0;
switch (GWPlayer[temp_r31->unk00_bit1].diff) {
case 0:
temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat()));
break;
case 1:
temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat()));
break;
case 2:
temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat()));
break;
case 3:
temp_r31->unk_08 = 0.0f;
break;
case 0:
temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat()));
break;
case 1:
temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat()));
break;
case 2:
temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat()));
break;
case 3:
temp_r31->unk_08 = 0.0f;
break;
}
BoardCameraMoveSet(0);
@ -950,9 +974,10 @@ void fn_1_5838(s32 arg0) {
BoardCameraTargetModelSet(-1);
}
void fn_1_5AC8(omObjData* arg0) {
void fn_1_5AC8(omObjData *arg0)
{
s32 temp_r0;
w03UnkStruct5* temp_r31;
w03UnkStruct5 *temp_r31;
temp_r31 = OM_GET_WORK_PTR(arg0, w03UnkStruct5);
@ -971,32 +996,29 @@ void fn_1_5AC8(omObjData* arg0) {
}
switch (temp_r31->unk00_bit4) {
case 1:
if (lbl_1_bss_7D != 0) {
fn_1_629C(2);
fn_1_62FC();
BoardCameraTargetModelSet(lbl_1_data_310);
BoardCameraMoveSet(1);
}
break;
case 2:
fn_1_5C5C(arg0, (w03UnkStruct5* ) temp_r31);
break;
case 3:
BoardCameraTargetModelSet(-1);
BoardCameraMoveSet(0);
temp_r31->unk00_bit0 = 1;
break;
case 1:
if (lbl_1_bss_7D != 0) {
fn_1_629C(2);
fn_1_62FC();
BoardCameraTargetModelSet(lbl_1_data_310);
BoardCameraMoveSet(1);
}
break;
case 2:
fn_1_5C5C(arg0, (w03UnkStruct5 *)temp_r31);
break;
case 3:
BoardCameraTargetModelSet(-1);
BoardCameraMoveSet(0);
temp_r31->unk00_bit0 = 1;
break;
}
}
char *lbl_1_data_35C[] = {
"jyanA",
"jyanB"
};
char *lbl_1_data_35C[] = { "jyanA", "jyanB" };
void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) {
void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1)
{
Mtx sp110;
Mtx spE0;
Mtx spB0;
@ -1009,8 +1031,8 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) {
Vec sp14;
Vec sp8;
s16 temp_r3;
char* temp_r27;
ModelData* temp_r30;
char *temp_r27;
ModelData *temp_r30;
if (((WipeStatGet() == 0) && (arg1->unk00_bit3) || (BoardModelMotionEndCheck(lbl_1_data_314) != 0))) {
fn_1_629C(3);
@ -1037,7 +1059,8 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) {
if (0.0f != temp_r30->unk_64) {
PSVECSubtract(&sp38, &sp44, &sp2C);
} else {
}
else {
sp2C.x = sp2C.y = sp2C.z = 0.0f;
}
@ -1068,14 +1091,16 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) {
BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI)));
}
void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) {
void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1)
{
f32 temp_f31 = 0.0f;
f32 var_f30;
f32 var_f29;
if (GWPlayer[arg1->unk00_bit1].com == 0) {
var_f30 = HuPadStkX[GWPlayer[arg1->unk00_bit1].port];
} else {
}
else {
var_f30 = fn_1_61A4(arg0, arg1);
}
@ -1083,7 +1108,8 @@ void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) {
if (temp_f31 < 0.0f) {
var_f29 = -temp_f31;
} else {
}
else {
var_f29 = temp_f31;
}
@ -1095,13 +1121,14 @@ void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) {
BoardDAngleCalcRange(&arg1->unk_04, temp_f31, 1.0f);
}
f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) {
w03StructUnk3* sp8;
f32 fn_1_61A4(omObjData *arg0, w03UnkStruct5 *arg1)
{
w03StructUnk3 *sp8;
f32 temp_f31;
s16 i;
w03StructUnk2* temp_r29;
w03StructUnk2 *temp_r29;
s16 var_r28;
f32* temp_r31;
f32 *temp_r31;
if (lbl_1_bss_74) {
temp_r29 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2);
@ -1116,28 +1143,31 @@ f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) {
temp_r31 = lbl_1_bss_80[i];
if ((temp_r31[1] < temp_f31) && (temp_r31[3] > temp_f31)) {
return -1.5f * temp_r31[2];
}
}
}
return 0.0f;
}
void fn_1_629C(s8 arg0) {
w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5);
void fn_1_629C(s8 arg0)
{
w03UnkStruct5 *temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5);
temp_r31->unk00_bit4 = arg0;
}
s32 fn_1_62D0(void) {
w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5);
s32 fn_1_62D0(void)
{
w03UnkStruct5 *temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5);
return temp_r31->unk00_bit4;
}
void fn_1_62FC(void) {
void fn_1_62FC(void)
{
f32 widthHeight[2];
s32 messageID = 0x000D0005;
s32 messageID = DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05);
f32 x;
f32 y;
HuWinMesMaxSizeGet(1, widthHeight, messageID);
x = -10000.0f;
y = 392.0f;

View file

@ -125,24 +125,24 @@ void BoardCreate(void) {
lbl_1_bss_0 = (w03State*)&GWSystem.board_data;
lbl_1_bss_0->unk3 = 0;
BoardSpaceInit(0x770000);
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W03, 0x00));
lbl_1_data_1E0 = BoardModelCreate(0x770001, NULL, 0);
lbl_1_data_1E0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x01), NULL, 0);
fn_8006DDE8(lbl_1_data_1E0, -1.0f);
BoardModelPosSet(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E0, 0, 0x40000001);
lbl_1_data_1E8 = BoardModelCreate(0x770003, NULL, 0);
lbl_1_data_1E8 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x03), NULL, 0);
fn_8006DDE8(lbl_1_data_1E8, -1.0f);
BoardModelPosSet(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f);
BoardModelLayerSet(lbl_1_data_1E8, 2);
lbl_1_data_1E2 = BoardModelCreate(0x770002, NULL, 0);
lbl_1_data_1E2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x02), NULL, 0);
fn_8006DDE8(lbl_1_data_1E2, -1.0f);
BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001);
lbl_1_data_1E4 = BoardModelCreate(0x77001B, lbl_1_data_20C, 0);
lbl_1_data_1E4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x1B), lbl_1_data_20C, 0);
BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001);
@ -473,4 +473,4 @@ void fn_1_10E4(omObjData* arg0) {
}
HuAudFXListnerUpdate(&sp14, &sp8);
}
}

View file

@ -1,17 +1,17 @@
#include "dolphin.h"
#include "game/chrman.h"
#include "game/object.h"
#include "REL/w03Dll.h"
#include "dolphin.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/space.h"
#include "game/minigame_seq.h"
#include "game/chrman.h"
#include "game/hsfdraw.h"
#include "game/minigame_seq.h"
#include "game/object.h"
#include "game/pad.h"
//structs
typedef struct someBits3 { //make sure this is defined correctly
// structs
typedef struct someBits3 { // make sure this is defined correctly
/* 0x00 */ struct {
u8 unk00_bit0 : 1;
u8 unk00_bit1 : 4;
@ -42,58 +42,61 @@ typedef struct unkTemp2 {
s8 unk4;
char unk_05[3];
f32 unk8;
unkTemp* unk_0C;
unkTemp *unk_0C;
} unkTemp2;
//function signatures
// function signatures
void fn_1_7C98(void);
void fn_1_7C38(void);
s32 fn_1_7D18(s32 arg0);
void fn_1_8140(s32 arg0);
void fn_1_81E0(s32 arg0);
void fn_1_8530(omObjData* arg0);
void fn_1_8530(omObjData *arg0);
void fn_1_84A8(s32 arg0);
void fn_1_8698(omObjData* arg0, someBits3* arg1);
void fn_1_8C08(omObjData* arg0, someBits3* arg1);
void fn_1_8E44(omObjData* arg0, someBits3* arg1);
void fn_1_9044(omObjData* arg0, someBits3* arg1);
void fn_1_8698(omObjData *arg0, someBits3 *arg1);
void fn_1_8C08(omObjData *arg0, someBits3 *arg1);
void fn_1_8E44(omObjData *arg0, someBits3 *arg1);
void fn_1_9044(omObjData *arg0, someBits3 *arg1);
void fn_1_91B8(void);
void fn_1_9230(s32 arg0);
void fn_1_9384(void);
void fn_1_9474(s32 arg0);
void fn_1_97F8(s32 arg0);
void fn_1_9A1C(unkTemp2* arg0);
void fn_1_9A1C(unkTemp2 *arg0);
//data
// data
s32 lbl_1_data_450 = -1;
s16 lbl_1_data_454 = -1;
s16 lbl_1_data_456 = -1;
s16 lbl_1_data_458 = -1;
s32 lbl_1_data_45C[] = {0x00770021, 0x00770022, -1};
s32 lbl_1_data_45C[] = { DATA_MAKE_NUM(DATADIR_W03, 0x21), DATA_MAKE_NUM(DATADIR_W03, 0x22), DATA_NUM_LISTEND };
//BSS
// BSS
char lbl_1_bss_150[0x30];
s16 lbl_1_bss_14E;
s8 lbl_1_bss_14C;
omObjData* lbl_1_bss_148;
omObjData* lbl_1_bss_144;
Process* lbl_1_bss_140;
omObjData *lbl_1_bss_148;
omObjData *lbl_1_bss_144;
Process *lbl_1_bss_140;
void fn_1_7ABC(void) {
lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0);
void fn_1_7ABC(void)
{
lbl_1_data_456 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x20), lbl_1_data_45C, 0);
BoardModelHookSet(lbl_1_bss_C[7], "phei", lbl_1_data_456);
BoardModelMotionStart(lbl_1_data_456, 2, 0x40000002);
BoardModelRotYSet(lbl_1_data_456, -45.0f);
}
void fn_1_7B58(void) {
void fn_1_7B58(void)
{
if (lbl_1_data_456 != -1) {
BoardModelKill(lbl_1_data_456);
lbl_1_data_456 = -1;
}
}
void fn_1_7BA8(void) {
void fn_1_7BA8(void)
{
BoardRollDispSet(0);
lbl_1_bss_140 = HuPrcChildCreate(&fn_1_7C98, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_140, &fn_1_7C38);
@ -103,7 +106,8 @@ void fn_1_7BA8(void) {
BoardRollDispSet(1);
}
void fn_1_7C38(void) {
void fn_1_7C38(void)
{
if (lbl_1_data_454 != -1) {
HuWinKill(lbl_1_data_454);
lbl_1_data_454 = -1;
@ -111,7 +115,8 @@ void fn_1_7C38(void) {
lbl_1_bss_140 = 0;
}
void fn_1_7C98(void) {
void fn_1_7C98(void)
{
s32 temp_r31;
temp_r31 = GWSystem.player_curr;
@ -125,7 +130,8 @@ void fn_1_7C98(void) {
HuPrcEnd();
}
s32 fn_1_7D18(s32 arg0) {
s32 fn_1_7D18(s32 arg0)
{
Point3d sp38;
Point3d sp2C;
Point3d sp20;
@ -136,7 +142,7 @@ s32 fn_1_7D18(s32 arg0) {
s16 space;
s16 temp_r28;
f32 arctan;
BoardWinCreateChoice(2, MAKE_MESSID(22, 21), 2, 0);
if (GWPlayer[arg0].com != 0) {
@ -176,7 +182,8 @@ s32 fn_1_7D18(s32 arg0) {
if (GWPlayer[arg0].character == 5) {
var_f31 = 54.000004f;
} else {
}
else {
var_f31 = 39.0f;
}
@ -204,9 +211,10 @@ s32 fn_1_7D18(s32 arg0) {
return 1;
}
void fn_1_8140(s32 arg0) {
void fn_1_8140(s32 arg0)
{
s16 temp_r31;
fn_1_81E0(arg0);
BoardMusStart(1, 0x16, 0x7F, 0);
temp_r31 = MGSeqStartCreate();
@ -226,35 +234,36 @@ void fn_1_8140(s32 arg0) {
}
s32 lbl_1_data_470[] = {
0x005F0066,
0x001A0066,
0x006D0066,
0x008A0066,
0x00850066,
0x00110066,
0x000D0066,
0x00810066
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x66),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x66),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x66),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x66),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x66),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x66),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x66),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x66),
};
s32 lbl_1_data_490[] = {
0x005F0067,
0x001A0067,
0x006D0067,
0x008A0067,
0x00850067,
0x00110067,
0x000D0067,
0x00810067
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x67),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x67),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x67),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x67),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x67),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x67),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x67),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x67),
};
void fn_1_81E0(s32 arg0) {
void fn_1_81E0(s32 arg0)
{
Point3d sp8;
omObjData* temp_r3;
omObjData *temp_r3;
f32 temp_f31;
s32 temp_r28;
s32 temp_r5;
s32 temp_r5_2;
someBits3* temp_r31;
someBits3 *temp_r31;
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_8530);
lbl_1_bss_144 = temp_r3;
@ -273,7 +282,7 @@ void fn_1_81E0(s32 arg0) {
temp_r31->unk_06[1] = BoardPlayerMotionCreate(arg0, lbl_1_data_470[temp_r28]);
temp_r31->unk_06[2] = BoardPlayerMotionCreate(arg0, lbl_1_data_490[temp_r28]);
temp_f31 = 0.3f;
temp_r31->unk_06[0] = BoardModelCreate(0x770009, NULL, 0);
temp_r31->unk_06[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x09), NULL, 0);
BoardModelVisibilitySet(temp_r31->unk_06[0], 0);
BoardPlayerPosGet(arg0, &sp8);
BoardModelPosSetV(temp_r31->unk_06[0], &sp8);
@ -283,10 +292,11 @@ void fn_1_81E0(s32 arg0) {
BoardModelMotionSpeedSet(lbl_1_data_456, temp_r3->trans.x);
BoardPlayerMotionStart(arg0, temp_r31->unk_06[1], 0x40000001);
BoardPlayerMotionSpeedSet(arg0, temp_r3->trans.x);
lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], 0x770025);
lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], DATA_MAKE_NUM(DATADIR_W03, 0x25));
}
void fn_1_8434(someBits3* arg0) {
void fn_1_8434(someBits3 *arg0)
{
if (arg0->unk_06[1] != -1) {
BoardPlayerMotionKill(arg0->unk00_bit5, arg0->unk_06[1]);
}
@ -298,9 +308,10 @@ void fn_1_8434(someBits3* arg0) {
}
}
void fn_1_84A8(s32 arg0) {
someBits3* temp_r31;
void fn_1_84A8(s32 arg0)
{
someBits3 *temp_r31;
if (lbl_1_bss_144) {
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_144, someBits3);
temp_r31->unk00_bit1 = arg0;
@ -310,12 +321,13 @@ void fn_1_84A8(s32 arg0) {
}
}
void fn_1_8530(omObjData* arg0) {
void fn_1_8530(omObjData *arg0)
{
s32 temp_r0;
someBits3* temp_r31;
someBits3 *temp_r31;
temp_r31 = OM_GET_WORK_PTR(arg0, someBits3);
if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
if (temp_r31->unk_04 != -1) {
MGSeqParamSet(temp_r31->unk_04, 2, -1);
@ -330,7 +342,7 @@ void fn_1_8530(omObjData* arg0) {
BoardModelKill(temp_r31->unk_06[0]);
}
lbl_1_bss_144 = NULL;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
@ -341,24 +353,25 @@ void fn_1_8530(omObjData* arg0) {
}
switch (temp_r31->unk00_bit1) {
case 0:
fn_1_8698(arg0, temp_r31);
return;
case 1:
fn_1_8C08(arg0, temp_r31);
return;
case 2:
fn_1_8E44(arg0, temp_r31);
return;
case 3:
fn_1_9044(arg0, temp_r31);
/* fallthrough */
case 4:
break;
case 0:
fn_1_8698(arg0, temp_r31);
return;
case 1:
fn_1_8C08(arg0, temp_r31);
return;
case 2:
fn_1_8E44(arg0, temp_r31);
return;
case 3:
fn_1_9044(arg0, temp_r31);
/* fallthrough */
case 4:
break;
}
}
void fn_1_8698(omObjData* arg0, someBits3* arg1) {
void fn_1_8698(omObjData *arg0, someBits3 *arg1)
{
s32 temp_r27;
u32 var_r28;
u32 var_r26;
@ -367,10 +380,12 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) {
if (arg1->unk3 != 0) {
arg1->unk3--;
} else {
}
else {
if (arg1->unk2 != 0) {
arg1->unk2--;
} else {
}
else {
MGSeqParamSet(arg1->unk_04, 2, -1);
arg1->unk_04 = -1;
arg1->unk00_bit1 = 1;
@ -384,7 +399,7 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) {
lbl_1_bss_14E = 30;
}
OSu16tof32((u16*)&lbl_1_bss_14E, &arg0->rot.x); //??
OSu16tof32((u16 *)&lbl_1_bss_14E, &arg0->rot.x); //??
BoardModelAttrReset(lbl_1_data_456, 0x40000002);
BoardModelAttrReset(lbl_1_bss_C[7], 0x40000002);
BoardModelAttrReset(lbl_1_bss_C[10], 0x40000002);
@ -407,35 +422,35 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) {
MGSeqParamSet(arg1->unk_04, 1, arg1->unk2);
arg1->unk3 = 60;
}
var_r26 = GWPlayer[arg1->unk00_bit5].port;
var_r28 = 0;
if ((GWPlayer[arg1->unk00_bit5].com) != 0) {
temp_r27 = BoardRandMod(100);
switch (GWPlayer[arg1->unk00_bit5].diff) {
case 0:
if (temp_r27 < 12) {
case 0:
if (temp_r27 < 12) {
var_r28 = 0x100;
}
break;
case 1:
if (temp_r27 < 22) {
var_r28 = 0x100;
}
break;
case 2:
if (temp_r27 < 50) {
var_r28 = 0x100;
}
break;
case 3:
var_r28 = 0x100;
}
break;
case 1:
if (temp_r27 < 22) {
var_r28 = 0x100;
}
break;
case 2:
if (temp_r27 < 50) {
var_r28 = 0x100;
}
break;
case 3:
var_r28 = 0x100;
break;
break;
}
} else {
}
else {
var_r28 = HuPadBtnDown[var_r26] & 0x100;
}
@ -450,7 +465,8 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) {
lbl_1_bss_14E += 1;
BoardModelVisibilitySet(arg1->unk_06[0], 1);
BoardModelRotYSet(arg1->unk_06[0], BoardPlayerRotYGet(arg1->unk00_bit5));
} else {
}
else {
arg0->trans.x *= 0.98f;
arg0->trans.y = 0.0f;
if (arg0->trans.x <= 1.0f) {
@ -477,15 +493,10 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) {
}
s8 lbl_1_data_4B0 = -1;
s32 lbl_1_data_4B4[] = {
0x00000440,
0x00000441,
0x00000442,
0x00000443,
0x00000444
};
s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, 0x00000442, 0x00000443, 0x00000444 };
void fn_1_8C08(omObjData* arg0, someBits3* arg1) {
void fn_1_8C08(omObjData *arg0, someBits3 *arg1)
{
Point3d spC;
f32 temp_f31;
f32 temp_f30;
@ -520,7 +531,8 @@ void fn_1_8C08(omObjData* arg0, someBits3* arg1) {
BoardPlayerMotionTimeSet(arg1->unk00_bit5, 2.0f * temp_f30);
}
void fn_1_8E44(omObjData* arg0, someBits3* arg1) {
void fn_1_8E44(omObjData *arg0, someBits3 *arg1)
{
Point3d sp8;
f32 temp_f1;
f32 temp_f31;
@ -558,7 +570,8 @@ void fn_1_8E44(omObjData* arg0, someBits3* arg1) {
BoardModelPosSetV(lbl_1_data_456, &sp8);
}
void fn_1_9044(omObjData* arg0, someBits3* arg1) {
void fn_1_9044(omObjData *arg0, someBits3 *arg1)
{
Vec sp8;
BoardModelRotGet(lbl_1_data_456, &sp8);
@ -580,9 +593,10 @@ void fn_1_9044(omObjData* arg0, someBits3* arg1) {
BoardModelRotSetV(lbl_1_data_456, &sp8);
}
s8 lbl_1_data_4C8[] = {1, 5, 10, 15, 20, 20};
s8 lbl_1_data_4C8[] = { 1, 5, 10, 15, 20, 20 };
void fn_1_91B8(void) {
void fn_1_91B8(void)
{
s8 temp_r3;
if (lbl_1_bss_14E == 0) {
@ -593,7 +607,8 @@ void fn_1_91B8(void) {
lbl_1_bss_14C = lbl_1_data_4C8[temp_r3];
}
void fn_1_9230(s32 arg0) {
void fn_1_9230(s32 arg0)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
@ -620,20 +635,22 @@ void fn_1_9230(s32 arg0) {
BoardCameraMotionWait();
}
void fn_1_9384(void) {
void fn_1_9384(void)
{
f32 widthHeight[2];
f32 x, y;
HuWinMesMaxSizeGet(1, widthHeight, 0x160019);
HuWinMesMaxSizeGet(1, widthHeight, MAKE_MESSID(0x16, 0x19));
x = -10000.0f;
y = 288.0f;
lbl_1_data_454 = HuWinCreate(x, y, widthHeight[0], widthHeight[1], 0);
HuWinBGTPLvlSet(lbl_1_data_454, 0.0f);
HuWinMesSpeedSet(lbl_1_data_454, 0);
HuWinMesSet(lbl_1_data_454, 0x160019U);
HuWinMesSet(lbl_1_data_454, MAKE_MESSID(0x16, 0x19));
}
void fn_1_9474(s32 arg0) {
void fn_1_9474(s32 arg0)
{
sprintf(lbl_1_bss_150, "%d", lbl_1_bss_14C);
BoardWinCreate(2, MAKE_MESSID(22, 23), 2);
BoardWinInsertMesSet((u32)lbl_1_bss_150, 4);
@ -664,14 +681,15 @@ void fn_1_9474(s32 arg0) {
BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002);
}
void fn_1_95B8(omObjData* arg0) {
void fn_1_95B8(omObjData *arg0)
{
f32 temp_f31;
s32 var_r25;
s32 var_r26;
s32 var_r27;
s32 var_r28;
unkTemp* var_r30;
unkTemp2* temp_r29;
unkTemp *var_r30;
unkTemp2 *temp_r29;
s32 i;
s32 temp;
@ -679,14 +697,14 @@ void fn_1_95B8(omObjData* arg0) {
if ((temp_r29->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
fn_1_9A1C(temp_r29);
HuMemDirectFree((void*)temp_r29->unk_0C);
HuMemDirectFree((void *)temp_r29->unk_0C);
lbl_1_bss_148 = 0;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
var_r30 = temp_r29->unk_0C;
for (var_r27 = i = 0; i < 20; i++, var_r30++) {
if (var_r30->unk0 == 0) {
var_r27++;
@ -697,7 +715,7 @@ void fn_1_95B8(omObjData* arg0) {
temp_r29->unk00_bit0 = 1;
return;
}
var_r25 = 0;
for (i = 0; i < 20; i++) {
var_r30 = &temp_r29->unk_0C[i];
@ -725,23 +743,23 @@ void fn_1_95B8(omObjData* arg0) {
}
}
void fn_1_97F8(s32 arg0) {
void fn_1_97F8(s32 arg0)
{
Point3d sp8;
f32 temp_f2;
f32 var_f31;
f64 temp_f1;
omObjData* temp_r3;
omObjData *temp_r3;
s32 i;
unkTemp2* temp_r30;
unkTemp* temp_r31;
unkTemp2 *temp_r30;
unkTemp *temp_r31;
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_95B8);
lbl_1_bss_148 = temp_r3;
temp_r30 = OM_GET_WORK_PTR(temp_r3, unkTemp2);
temp_r30->unk00_bit0 = 0;
temp_r30->unk4 = arg0;
temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, 0x10000000);
temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, MEMORY_DEFAULT_NUM);
BoardPlayerPosGet(arg0, &sp8);
temp_r30->unk8 = (80.0f + sp8.y);
memset(temp_r30->unk_0C, 0, 0x190);
@ -749,7 +767,8 @@ void fn_1_97F8(s32 arg0) {
for (i = 0; i < lbl_1_bss_14C; i++) {
if (i == 0) {
var_f31 = 0.0f;
} else {
}
else {
var_f31 = BoardRandFloat();
}
temp_r31 = &temp_r30->unk_0C[i];
@ -759,13 +778,14 @@ void fn_1_97F8(s32 arg0) {
temp_r31->unk8.y = 600.0f + sp8.y + (500.0f * BoardRandFloat());
temp_r31->unk1 = 0;
temp_r31->unk4 = BoardRandFloat() * 360.0f;
temp_r31->unk_02 = BoardModelCreate(0x7000A, NULL, 1);
temp_r31->unk_02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1);
}
}
void fn_1_9A1C(unkTemp2* arg0) {
void fn_1_9A1C(unkTemp2 *arg0)
{
s32 i;
unkTemp* temp;
unkTemp *temp;
for (i = 0; i < 20; i++) {
temp = &arg0->unk_0C[i];

View file

@ -1,25 +1,25 @@
#include "dolphin.h"
#include "REL/executor.h"
#include "game/process.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "REL/w03Dll.h"
#include "dolphin.h"
#include "dolphin/os/OSFastCast.h"
#include "ext_math.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/space.h"
#include "game/data.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/hsfdraw.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/minigame_seq.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/sprite.h"
#include "game/board/player.h"
#include "math.h"
#include "game/hsfman.h"
#include "dolphin/os/OSFastCast.h"
#include "game/minigame_seq.h"
#include "game/hsfdraw.h"
#include "game/hsfmotion.h"
#include "game/pad.h"
#include "game/frand.h"
#include "ext_math.h"
#include "game/process.h"
#include "game/sprite.h"
#include "math.h"
typedef struct someBits {
/* 0x00 */ struct {
@ -58,11 +58,11 @@ typedef struct w03UnkMG {
/* 0x16 */ s16 unk_16;
} w03UnkMG;
//external symbols
// external symbols
extern u16 HuPadBtnDown[4];
//function signatures
// function signatures
s32 BoardVecDAngleCalcRange(float *value, float min, float range);
void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix);
@ -70,23 +70,23 @@ void fn_1_BDAC(void);
void fn_1_BC7C(s16 arg0);
void fn_1_BBF8(void);
s32 fn_1_BBC4(void);
void fn_1_BB74(s8* arg0);
void fn_1_BB74(s8 *arg0);
s32 fn_1_BB48(void);
void fn_1_B8E8(s32 arg0);
void fn_1_B748(omObjData* arg0, someBits2* arg1);
void fn_1_B688(omObjData* arg0, someBits2* arg1);
void fn_1_B4AC(omObjData* arg0, someBits2* arg1);
void fn_1_B350(omObjData* arg0);
void fn_1_B748(omObjData *arg0, someBits2 *arg1);
void fn_1_B688(omObjData *arg0, someBits2 *arg1);
void fn_1_B4AC(omObjData *arg0, someBits2 *arg1);
void fn_1_B350(omObjData *arg0);
void fn_1_B0A4(s32 arg0);
u32 fn_1_AF24(s32 arg0);
s32 fn_1_AE4C(s32 arg0, s8* arg1);
s32 fn_1_AE4C(s32 arg0, s8 *arg1);
s32 fn_1_AE20(void);
void fn_1_ACD8(s32 arg0);
void fn_1_ABD0(omObjData* arg0, someBits* arg1);
void fn_1_AB18(omObjData* arg0, someBits* arg1);
void fn_1_ABD0(omObjData *arg0, someBits *arg1);
void fn_1_AB18(omObjData *arg0, someBits *arg1);
void fn_1_A8AC(s32 arg0);
void fn_1_A7A0(s32 arg0);
void fn_1_A994(omObjData* arg0);
void fn_1_A994(omObjData *arg0);
void fn_1_A5E0(s32 arg0);
void fn_1_A6B0(void);
void fn_1_A44C(s32 arg0);
@ -96,17 +96,15 @@ s32 fn_1_9CF4(s32 arg0);
void fn_1_9F78(void);
void fn_1_9FE4(void);
//data
// data
s16 lbl_1_data_4D8 = -1;
s16 lbl_1_data_4DA = -1;
s16 lbl_1_data_4DC = -1;
s32 lbl_1_data_4E0 = -1;
s16 lbl_1_data_4E4 = -1;
s8 lbl_1_data_4E6[] = {1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0};
s8 lbl_1_data_4E6[] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 };
char* lbl_1_data_508[] = {
"item", "item1", "item2"
};
char *lbl_1_data_508[] = { "item", "item1", "item2" };
s32 lbl_1_data_514[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D),
@ -125,23 +123,23 @@ s32 lbl_1_data_514[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 0x7B),
};
//BSS
// BSS
s8 lbl_1_bss_194[3];
AnimData* lbl_1_bss_190;
AnimData *lbl_1_bss_190;
s8 lbl_1_bss_18C;
omObjData* lbl_1_bss_188;
omObjData* lbl_1_bss_184;
Process* lbl_1_bss_180;
omObjData *lbl_1_bss_188;
omObjData *lbl_1_bss_184;
Process *lbl_1_bss_180;
void fn_1_9A7C(void) {
void fn_1_9A7C(void)
{
fn_1_BBF8();
}
void fn_1_9A9C(void) {
void fn_1_9A9C(void) { }
}
void fn_1_9AA0(void) {
void fn_1_9AA0(void)
{
BoardRollDispSet(0);
lbl_1_bss_180 = HuPrcChildCreate(fn_1_9C8C, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_180, fn_1_9B30);
@ -153,7 +151,8 @@ void fn_1_9AA0(void) {
BoardRollDispSet(1);
}
void fn_1_9B30(void) {
void fn_1_9B30(void)
{
fn_1_BDAC();
if (lbl_1_bss_188) {
@ -173,7 +172,7 @@ void fn_1_9B30(void) {
BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DC);
lbl_1_data_4DC = -1;
}
if (lbl_1_data_4DA != -1) {
BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DA);
lbl_1_data_4DA = -1;
@ -187,7 +186,8 @@ void fn_1_9B30(void) {
lbl_1_bss_180 = 0;
}
void fn_1_9C8C(void) {
void fn_1_9C8C(void)
{
s32 temp_r31;
temp_r31 = GWSystem.player_curr;
@ -201,7 +201,8 @@ void fn_1_9C8C(void) {
HuPrcEnd();
}
s32 fn_1_9CF4(s32 arg0) {
s32 fn_1_9CF4(s32 arg0)
{
Vec sp38;
Vec sp2C;
Vec sp20;
@ -248,7 +249,7 @@ s32 fn_1_9CF4(s32 arg0) {
BoardSpacePosGet(0, temp_r29, &sp38);
PSVECSubtract(&sp38, &sp2C, &sp20);
PSVECNormalize(&sp20, &sp20);
BoardPlayerRotYSet(arg0, (f32) (180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)));
BoardPlayerRotYSet(arg0, (f32)(180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)));
BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14);
while (GWPlayer[arg0].moving != 0) {
@ -264,12 +265,14 @@ s32 fn_1_9CF4(s32 arg0) {
return 1;
}
void fn_1_9F78(void) {
lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770023);
lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770024);
void fn_1_9F78(void)
{
lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], DATA_MAKE_NUM(DATADIR_W03, 0x23));
lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], DATA_MAKE_NUM(DATADIR_W03, 0x24));
}
void fn_1_9FE4(void) {
void fn_1_9FE4(void)
{
Vec sp30;
Vec sp24;
Vec sp18;
@ -340,7 +343,8 @@ void fn_1_9FE4(void) {
BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, 0x40000001);
}
void fn_1_A44C(s32 arg0) {
void fn_1_A44C(s32 arg0)
{
s16 temp_r30;
s32 temp_r29;
s32 temp_r28;
@ -391,7 +395,8 @@ void fn_1_A44C(s32 arg0) {
BoardWinKill();
}
void fn_1_A5E0(s32 arg0) {
void fn_1_A5E0(s32 arg0)
{
Vec sp14;
Vec sp8;
s16 spaceCur;
@ -409,26 +414,28 @@ void fn_1_A5E0(s32 arg0) {
BoardCameraMotionWait();
}
void fn_1_A6B0(void) {
void fn_1_A6B0(void)
{
f32 sp8[2];
f32 val1, val2;
HuWinMesMaxSizeGet(1, sp8, 0x16001F);
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x16, 0x1F));
val1 = -10000.0f;
val2 = 392.0f;
lbl_1_data_4D8 = HuWinCreate(val1, val2, sp8[0], sp8[1], 0);
HuWinBGTPLvlSet(lbl_1_data_4D8, 0.0f);
HuWinMesSpeedSet(lbl_1_data_4D8, 0);
HuWinMesSet(lbl_1_data_4D8, 0x16001F);
HuWinMesSet(lbl_1_data_4D8, MAKE_MESSID(0x16, 0x1F));
}
void fn_1_A7A0(s32 arg0) {
someBits* temp_r31;
omObjData* temp_r3;
void fn_1_A7A0(s32 arg0)
{
someBits *temp_r31;
omObjData *temp_r3;
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_A994);
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void *)fn_1_A994);
lbl_1_bss_188 = temp_r3;
temp_r31 = (someBits*)&temp_r3->work[0];
temp_r31 = (someBits *)&temp_r3->work[0];
temp_r31->unk00_bit0 = 0;
temp_r31->unk00_bit6 = 0;
temp_r31->unk00_bit4 = arg0;
@ -440,7 +447,8 @@ void fn_1_A7A0(s32 arg0) {
lbl_1_bss_18C = fn_1_AE4C(arg0, lbl_1_bss_194);
}
void fn_1_A8AC(s32 arg0) {
void fn_1_A8AC(s32 arg0)
{
Vec sp14;
Vec sp8;
f32 playerYRot;
@ -462,18 +470,19 @@ void fn_1_A8AC(s32 arg0) {
}
}
void fn_1_A994(omObjData* arg0) {
void fn_1_A994(omObjData *arg0)
{
s32 temp_r0;
someBits* temp_r31;
someBits *temp_r31;
temp_r31 = (someBits*)&lbl_1_bss_188->work[0];
if ((temp_r31->unk00_bit0 != 0)|| (BoardIsKill() != 0)) {
temp_r31 = (someBits *)&lbl_1_bss_188->work[0];
if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
if (temp_r31->unk4 != -1) {
MGSeqParamSet(temp_r31->unk4, 2, -1U);
temp_r31->unk4 = -1;
}
lbl_1_bss_188 = NULL;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
@ -481,10 +490,12 @@ void fn_1_A994(omObjData* arg0) {
if (temp_r31->unk00_bit6 == 0) {
if (temp_r31->unk2 != 0) {
temp_r31->unk2--;
} else {
}
else {
if (temp_r31->unk1 != 0) {
temp_r31->unk1--;
} else {
}
else {
fn_1_ACD8(2);
}
MGSeqParamSet(temp_r31->unk4, 1, temp_r31->unk1);
@ -493,27 +504,29 @@ void fn_1_A994(omObjData* arg0) {
}
switch (temp_r31->unk00_bit1) {
case 1:
fn_1_AB18(arg0, temp_r31);
return;
case 2:
fn_1_ABD0(arg0, temp_r31);
return;
case 3:
if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) {
temp_r31->unk00_bit0 = 1;
}
case 0:
break;
case 1:
fn_1_AB18(arg0, temp_r31);
return;
case 2:
fn_1_ABD0(arg0, temp_r31);
return;
case 3:
if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) {
temp_r31->unk00_bit0 = 1;
}
case 0:
break;
}
}
void fn_1_AB18(omObjData* arg0, someBits* arg1) {
void fn_1_AB18(omObjData *arg0, someBits *arg1)
{
u32 var_r31 = 0;
if (GWPlayer[arg1->unk00_bit4].com != 0) {
var_r31 = fn_1_AF24(arg1->unk00_bit4);
} else {
}
else {
var_r31 = HuPadBtnDown[GWPlayer[arg1->unk00_bit4].port];
}
if (var_r31 == 0x100) {
@ -521,14 +534,15 @@ void fn_1_AB18(omObjData* arg0, someBits* arg1) {
}
}
//TODO properly use inlines
void fn_1_ABD0(omObjData* arg0, someBits* arg1) {
// TODO properly use inlines
void fn_1_ABD0(omObjData *arg0, someBits *arg1)
{
s16 boardModelID;
PlayerState* playerStateCopy;
PlayerState *playerStateCopy;
s32 bit;
PlayerState* playerState;
PlayerState *playerState;
s16 temp, temp2;
bit = arg1->unk00_bit4;
playerState = &GWPlayer[bit];
playerStateCopy = playerState;
@ -551,40 +565,43 @@ void fn_1_ABD0(omObjData* arg0, someBits* arg1) {
}
}
void fn_1_ACD8(s32 arg0) {
someBits* temp_r31;
void fn_1_ACD8(s32 arg0)
{
someBits *temp_r31;
temp_r31 = (someBits*)&lbl_1_bss_188->work[0];
temp_r31 = (someBits *)&lbl_1_bss_188->work[0];
temp_r31->unk00_bit1 = arg0;
switch (arg0) {
case 0:
BoardPlayerIdleSet(temp_r31->unk00_bit4);
return;
case 2:
temp_r31->unk00_bit6 = 1;
if (lbl_1_data_4D8 != -1) {
HuWinKill(lbl_1_data_4D8);
lbl_1_data_4D8 = -1;
}
if (temp_r31->unk4 != -1) {
MGSeqParamSet(temp_r31->unk4, 2, -1U);
temp_r31->unk4 = -1;
}
BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0);
return;
case 3:
BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0);
break;
case 0:
BoardPlayerIdleSet(temp_r31->unk00_bit4);
return;
case 2:
temp_r31->unk00_bit6 = 1;
if (lbl_1_data_4D8 != -1) {
HuWinKill(lbl_1_data_4D8);
lbl_1_data_4D8 = -1;
}
if (temp_r31->unk4 != -1) {
MGSeqParamSet(temp_r31->unk4, 2, -1U);
temp_r31->unk4 = -1;
}
BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0);
return;
case 3:
BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0);
break;
}
}
s32 fn_1_AE20(void) {
someBits* temp_r31 = (someBits*)&lbl_1_bss_188->work[0];
s32 fn_1_AE20(void)
{
someBits *temp_r31 = (someBits *)&lbl_1_bss_188->work[0];
return temp_r31->unk00_bit1;
}
s32 fn_1_AE4C(s32 arg0, s8* arg1) {
s32 fn_1_AE4C(s32 arg0, s8 *arg1)
{
s32 temp_r30;
s32 temp_r29;
s32 temp_r28;
@ -597,23 +614,29 @@ s32 fn_1_AE4C(s32 arg0, s8* arg1) {
if (temp_r29 > temp_r28) {
if (temp_r29 > temp_r30) {
var_r31 = 0;
} else if (temp_r30 > temp_r28) {
}
else if (temp_r30 > temp_r28) {
var_r31 = 2;
} else {
}
else {
var_r31 = 1;
}
} else if (temp_r28 > temp_r30) {
}
else if (temp_r28 > temp_r30) {
var_r31 = 1;
} else if (temp_r30 > temp_r29) {
}
else if (temp_r30 > temp_r29) {
var_r31 = 2;
} else {
}
else {
var_r31 = 0;
}
return var_r31;
}
u32 fn_1_AF24(s32 arg0) {
u32 fn_1_AF24(s32 arg0)
{
s32 spC;
s32 sp8;
s16 temp_r31;
@ -623,18 +646,18 @@ u32 fn_1_AF24(s32 arg0) {
spC = 0;
switch (GWPlayer[arg0].diff) {
case 3:
var_r30 = 0;
break;
case 2:
var_r30 = 5;
break;
case 1:
var_r30 = 15;
break;
case 0:
var_r30 = 40;
break;
case 3:
var_r30 = 0;
break;
case 2:
var_r30 = 5;
break;
case 1:
var_r30 = 15;
break;
case 0:
var_r30 = 40;
break;
}
if ((var_r30 != 0) && (BoardRandMod(100) < var_r30)) {
return 0x100U;
@ -643,38 +666,39 @@ u32 fn_1_AF24(s32 arg0) {
temp_r31 = BoardModelMotionTimeGet(lbl_1_bss_C[9]);
switch (lbl_1_bss_18C) {
case 0:
if ((temp_r31 < 33) || (temp_r31 > 35)) {
case 0:
if ((temp_r31 < 33) || (temp_r31 > 35)) {
break;
}
return 0x100U;
case 1:
if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) {
return 0x100U;
}
break;
case 2:
if (temp_r31 >= 50) {
return 0x100U;
}
break;
}
return 0x100U;
case 1:
if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) {
return 0x100U;
}
break;
case 2:
if (temp_r31 >= 50) {
return 0x100U;
}
break;
}
return 0;
}
void fn_1_B0A4(s32 arg0) {
void fn_1_B0A4(s32 arg0)
{
Mtx sp18;
s32 spC[3];
s32 j;
s32 i;
s32 var_r31_2;
s32 temp_r29;
someBits2* temp_r30;
omObjData* temp_r3;
someBits2 *temp_r30;
omObjData *temp_r3;
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void*)fn_1_B350);
lbl_1_bss_184 = (void*)temp_r3;
temp_r30 = (someBits2*)&temp_r3->work[0];
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void *)fn_1_B350);
lbl_1_bss_184 = (void *)temp_r3;
temp_r30 = (someBits2 *)&temp_r3->work[0];
temp_r30->unk00_bit0 = 0;
temp_r30->unk00_bit1 = 0;
@ -691,14 +715,15 @@ void fn_1_B0A4(s32 arg0) {
if (spC[i] == -1) {
continue;
}
} else {
}
else {
continue;
}
i++;
}
fn_1_BBF8();
for (i = 0; i < ARRAY_COUNT(spC); i++) {
temp_r29 = spC[i];
temp_r30->unk3[i] = temp_r29;
@ -722,11 +747,12 @@ void fn_1_B0A4(s32 arg0) {
}
}
void fn_1_B350(omObjData* arg0) {
void fn_1_B350(omObjData *arg0)
{
s32 i;
someBits2* temp_r31;
someBits2 *temp_r31;
temp_r31 = (someBits2*)&arg0->work[0];
temp_r31 = (someBits2 *)&arg0->work[0];
if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) {
BoardModelHookReset(lbl_1_bss_C[9]);
@ -740,27 +766,28 @@ void fn_1_B350(omObjData* arg0) {
}
switch (temp_r31->unk00_bit1) {
case 1:
if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) {
BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A);
fn_1_B8E8(0);
case 1:
if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) {
BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A);
fn_1_B8E8(0);
return;
}
case 0:
break;
case 2:
fn_1_B4AC(arg0, temp_r31);
return;
}
case 0:
break;
case 2:
fn_1_B4AC(arg0, temp_r31);
return;
case 3:
fn_1_B688(arg0, temp_r31);
return;
case 4:
fn_1_B748(arg0, temp_r31);
break;
case 3:
fn_1_B688(arg0, temp_r31);
return;
case 4:
fn_1_B748(arg0, temp_r31);
break;
}
}
void fn_1_B4AC(omObjData* arg0, someBits2* arg1) {
void fn_1_B4AC(omObjData *arg0, someBits2 *arg1)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
@ -778,7 +805,7 @@ void fn_1_B4AC(omObjData* arg0, someBits2* arg1) {
sp8 = sp20;
arg1->unk2 = i;
break;
}
}
}
HuAudFXPlay(0x30C);
@ -792,7 +819,8 @@ void fn_1_B4AC(omObjData* arg0, someBits2* arg1) {
fn_1_BC7C(arg1->unk_06[arg1->unk2]);
}
void fn_1_B688(omObjData* arg0, someBits2* arg1) {
void fn_1_B688(omObjData *arg0, someBits2 *arg1)
{
Point3d sp8;
if (arg1->unk1-- != 0) {
@ -806,8 +834,9 @@ void fn_1_B688(omObjData* arg0, someBits2* arg1) {
fn_1_B8E8(0);
}
void fn_1_B748(omObjData* arg0, someBits2* arg1) {
void fn_1_B748(omObjData *arg0, someBits2 *arg1)
{
Vec sp14;
Point3d sp8;
f32 temp_f0;
@ -820,7 +849,7 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) {
}
if (arg1->unk1 < 90) {
OSu8tof32((u8*)&arg1->unk1, &temp_f0);
OSu8tof32((u8 *)&arg1->unk1, &temp_f0);
BoardModelPosGet(temp_r29, &sp8);
sp8.y += arg0->trans.y;
BoardModelPosSetV(temp_r29, &sp8);
@ -840,76 +869,81 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) {
fn_1_B8E8(0);
}
void fn_1_B8E8(s32 arg0) {
void fn_1_B8E8(s32 arg0)
{
Point3d sp14;
Point3d sp8;
f32 temp_f31;
someBits2* temp_r31;
someBits2 *temp_r31;
f32 temp;
temp_r31 = (someBits2*)&lbl_1_bss_184->work[0];
temp_r31 = (someBits2 *)&lbl_1_bss_184->work[0];
temp_r31->unk00_bit1 = arg0;
switch (arg0) {
case 1:
temp_f31 = 0.31666666f;
BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001);
BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31);
BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f);
return;
case 2:
temp_r31->unk00_bit6 = 1;
return;
case 3:
lbl_1_data_4E0 = HuAudFXPlay(0x35F);
BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8);
BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14);
temp = 50.0f + sp8.y;
lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f;
lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f;
lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f;
temp_r31->unk1 = 10;
return;
case 4:
BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14);
sp14.y += 30.000002f;
BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8);
lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f;
temp_r31->unk1 = 0;
case 1:
temp_f31 = 0.31666666f;
BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001);
BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31);
BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f);
return;
case 2:
temp_r31->unk00_bit6 = 1;
return;
case 3:
lbl_1_data_4E0 = HuAudFXPlay(0x35F);
BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8);
BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14);
temp = 50.0f + sp8.y;
lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f;
lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f;
lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f;
temp_r31->unk1 = 10;
return;
case 4:
BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14);
sp14.y += 30.000002f;
BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8);
lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f;
temp_r31->unk1 = 0;
}
}
s32 fn_1_BB48(void) {
someBits2* temp = (someBits2*)&lbl_1_bss_184->work[0];
s32 fn_1_BB48(void)
{
someBits2 *temp = (someBits2 *)&lbl_1_bss_184->work[0];
return temp->unk00_bit1;
}
void fn_1_BB74(s8* arg0) {
someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2);
void fn_1_BB74(s8 *arg0)
{
someBits2 *bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2);
s32 i;
for (i = 0; i < ARRAY_COUNT(bits->unk3); i++) {
arg0[i] = bits->unk3[i];
}
}
s32 fn_1_BBC4(void) {
someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2);
s32 fn_1_BBC4(void)
{
someBits2 *bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2);
return bits->unk3[bits->unk2];
}
void fn_1_BBF8(void) {
void fn_1_BBF8(void)
{
BoardModelMotionStart(lbl_1_bss_C[9], 0, 0);
BoardModelMotionSpeedSet(lbl_1_bss_C[9], 0.0f);
BoardModelMotionTimeSet(lbl_1_bss_C[9], 0.0f);
BoardModelAttrReset(lbl_1_bss_C[9], 0x40000004);
}
void fn_1_BC7C(s16 arg0)
{
ParticleData *particle;
void fn_1_BC7C(s16 arg0) {
ParticleData* particle;
lbl_1_bss_190 = HuSprAnimReadFile(0x120000);
lbl_1_bss_190 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00));
HuSprAnimLock(lbl_1_bss_190);
lbl_1_data_4E4 = Hu3DParticleCreate(lbl_1_bss_190, 100);
Hu3DParticleHookSet(lbl_1_data_4E4, fn_1_BE30);
@ -921,7 +955,8 @@ void fn_1_BC7C(s16 arg0) {
particle->unk_02 = arg0;
}
void fn_1_BDAC(void) {
void fn_1_BDAC(void)
{
if (lbl_1_data_4E4 != -1) {
Hu3DModelKill(lbl_1_data_4E4);
lbl_1_data_4E4 = -1;
@ -932,12 +967,13 @@ void fn_1_BDAC(void) {
}
}
void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) {
void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix)
{
Point3d sp8;
f32 temp_f30;
f32 temp_f29;
f32 temp_f31;
HsfanimStruct01* var_r31;
HsfanimStruct01 *var_r31;
s32 i, j;
if (particle->unk_34 == 0) {
@ -961,20 +997,20 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) {
}
}
if (j != particle->unk_30) {
temp_f30 = 360.0f * ((1.0f/255.0f) * frand8());
temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f/255.0f) * frand8())));
temp_f30 = 360.0f * ((1.0f / 255.0f) * frand8());
temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f / 255.0f) * frand8())));
var_r31->unk34.x = (sp8.x + (temp_f29 * sind(temp_f30)));
var_r31->unk34.z = (sp8.z + (temp_f29 * cosd(temp_f30)));
var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f/255.0f) * frand8())))));
var_r31->unk08.x = (0.5f + (3.0f * ((1.0f/255.0f) * frand8())));
var_r31->unk08.y = (0.3f + (2.0f * ((1.0f/255.0f) * frand8())));
var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f / 255.0f) * frand8())))));
var_r31->unk08.x = (0.5f + (3.0f * ((1.0f / 255.0f) * frand8())));
var_r31->unk08.y = (0.3f + (2.0f * ((1.0f / 255.0f) * frand8())));
var_r31->unk40.a = 180;
var_r31->unk2C = (15.0f * temp_f31);
var_r31->unk2C = (15.0f * temp_f31);
}
}
var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (0.0f != var_r31->unk2C) {
var_r31->unk34.y = (var_r31->unk34.y - var_r31->unk08.x);
@ -982,6 +1018,6 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) {
if (var_r31->unk2C <= 0.0f) {
var_r31->unk2C = 0.0f;
}
}
}
}
}

View file

@ -43,10 +43,10 @@ s16 lbl_1_data_388 = -1;
s16 lbl_1_data_38A = -1;
s16 lbl_1_data_38C = -1;
s32 lbl_1_data_390[] = {
0x00770026,
0x00770027,
0x00770028,
-1
DATA_MAKE_NUM(DATADIR_W03, 0x26),
DATA_MAKE_NUM(DATADIR_W03, 0x27),
DATA_MAKE_NUM(DATADIR_W03, 0x28),
DATA_NUM_LISTEND
};
void fn_1_63F4(s32 arg0) {
@ -70,8 +70,8 @@ void fn_1_6494(void) {
Vec sp8;
unkWorkStruct* temp_r31;
lbl_1_data_388 = BoardModelCreate(0x77000E, NULL, 0);
lbl_1_data_38C = BoardModelCreate(0x77000F, NULL, 0);
lbl_1_data_388 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0E), NULL, 0);
lbl_1_data_38C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0F), NULL, 0);
lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0);
BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001);
BoardModelHookSet(lbl_1_data_38A, "itemhook_R", lbl_1_data_38C);

View file

@ -31,7 +31,7 @@ void fn_1_785C(void) {
lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0);
temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0];
for (i = 0; i < ARRAY_COUNT(temp_r31->unk_00); i++) {
temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0);
temp_r31->unk_00[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x08), NULL, 0);
temp_r29 = kemuri_strings[i];
if (0.0f == temp_r31->unk_0C) {

View file

@ -371,7 +371,7 @@ void fn_1_1ED4(s32 arg0) {
Point3d spC;
f32 sp8;
lbl_1_data_284 = BoardModelCreate(0x77000C, NULL, 0);
lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0C), NULL, 0);
BoardModelVisibilitySet(lbl_1_data_284, 0);
BoardModelVisibilitySet(lbl_1_bss_6C, 0);
BoardModelPosGet(lbl_1_bss_6C, &spC);
@ -418,7 +418,7 @@ void fn_1_20E0(s32 arg0) {
f32 var_f31;
s32 i;
lbl_1_data_284 = BoardModelCreate(0x77000D, NULL, 0);
lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0D), NULL, 0);
BoardModelVisibilitySet(lbl_1_data_284, 0);
BoardModelVisibilitySet(lbl_1_bss_6C, 0);
BoardModelPosGet(lbl_1_bss_6C, &spC);
@ -606,7 +606,7 @@ s32 fn_1_2930(s32 arg0) {
void fn_1_2A40(void) {
lbl_1_bss_30 = 0.0f;
lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, 0x10000000U);
lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM);
lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44);
Hu3DModelLayerSet(lbl_1_data_286, 3);
}

View file

@ -163,7 +163,7 @@ static void fn_1_20EC(void) {
}
}
for (i = 0; i < 3; i++) {
lbl_1_bss_F4[i] = BoardModelCreate(0x70000, NULL, 1);
lbl_1_bss_F4[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1);
BoardModelLayerSet(lbl_1_bss_F4[i], 2);
BoardModelVisibilitySet(lbl_1_bss_F4[i], 0);
}

View file

@ -1,15 +1,15 @@
#include "REL/w05Dll.h"
#include "game/hsfdraw.h"
#include "game/audio.h"
#include "game/objsub.h"
#include "game/frand.h"
#include "game/chrman.h"
#include "game/frand.h"
#include "game/hsfdraw.h"
#include "game/objsub.h"
#include "game/board/audio.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/window.h"
#include "game/board/audio.h"
// bss
s16 lbl_1_bss_72[2];
@ -20,44 +20,60 @@ s16 lbl_1_bss_58[6];
// data
char *lbl_1_data_22C[6] = { "orange1", "orange2", "pine2", "pine1", "suika1", "suika2" };
s32 lbl_1_data_244[6] = { 0x00790027, 0x00790028, 0x00790029, 0x0079002A, 0x0079002B, 0xFFFFFFFF };
s32 lbl_1_data_244[6] = {
DATA_MAKE_NUM(DATADIR_W05, 0x27),
DATA_MAKE_NUM(DATADIR_W05, 0x28),
DATA_MAKE_NUM(DATADIR_W05, 0x29),
DATA_MAKE_NUM(DATADIR_W05, 0x2A),
DATA_MAKE_NUM(DATADIR_W05, 0x2B),
DATA_NUM_LISTEND,
};
Vec lbl_1_data_25C[6] = {
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 90.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 180.0f, 0.0f },
{ 0.0f, 270.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 180.0f, 0.0f },
{ 0.0f, 270.0f, 0.0f },
{ 0.0f, 90.0f, 0.0f },
};
Vec lbl_1_data_2A4[6] = {
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 300.0f, 0.0f },
{ 0.0f, 450.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 300.0f, 0.0f },
{ 0.0f, 450.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
};
s32 lbl_1_data_2EC[2] = { 0x76, 0x77 };
s32 lbl_1_data_2F4[6] = { 0x0079002C, 0x0079002D, 0x0079002E, 0x0079002C, 0x0079002F, 0x00790030 };
s32 lbl_1_data_2F4[6] = {
DATA_MAKE_NUM(DATADIR_W05, 0x2C),
DATA_MAKE_NUM(DATADIR_W05, 0x2D),
DATA_MAKE_NUM(DATADIR_W05, 0x2E),
DATA_MAKE_NUM(DATADIR_W05, 0x2C),
DATA_MAKE_NUM(DATADIR_W05, 0x2F),
DATA_MAKE_NUM(DATADIR_W05, 0x30),
};
void fn_1_3F74(void) {
void fn_1_3F74(void)
{
s32 var_r31;
BoardAudSeqPause(0, 1, 0x3E8);
for (var_r31 = 0x3C; var_r31 != 0; var_r31--) {
HuPrcVSleep();
}
BoardMusStart(1, 0x24, 0x7F, 0);
HuPrcEnd();
}
void fn_1_3FD8(void) {
void fn_1_3FD8(void)
{
s32 var_r31;
BoardAudSeqFadeOut(1, 0x3E8);
for (var_r31 = 0x3C; var_r31 != 0; var_r31--) {
HuPrcVSleep();
}
@ -65,7 +81,8 @@ void fn_1_3FD8(void) {
HuPrcEnd();
}
void fn_1_4034(s32 arg0) {
void fn_1_4034(s32 arg0)
{
Vec sp40;
Vec sp34;
Vec sp28;
@ -79,20 +96,20 @@ void fn_1_4034(s32 arg0) {
s16 var_r30;
s32 var_r27;
BoardSpace *var_r25;
omObjData* temp_r24;
omObjData *temp_r24;
BoardSpace *var_r28;
s32 var_r31;
s32 temp_r26;
lbl_1_bss_68 = GWSystem.player_curr;
sp10 = GWPlayer[lbl_1_bss_68].character;
for (var_r31 = 0; var_r31 < 2; var_r31++) {
lbl_1_bss_72[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_68, lbl_1_data_2EC[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_68].character]);
}
for (var_r31 = 0; var_r31 < 3; var_r31++) {
lbl_1_bss_6C[var_r31] = BoardModelCreate(0x7000A, NULL, 1);
lbl_1_bss_6C[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1);
BoardModelAttrSet(lbl_1_bss_6C[var_r31], 0x40000001);
BoardModelVisibilitySet(lbl_1_bss_6C[var_r31], 0);
}
@ -118,7 +135,7 @@ void fn_1_4034(s32 arg0) {
}
BoardPlayerIdleSet(lbl_1_bss_68);
HuPrcSleep(8);
lbl_1_bss_64 = BoardModelCreate(0x790026, lbl_1_data_244, 0);
lbl_1_bss_64 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x26), lbl_1_data_244, 0);
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[arg0], &sp40);
PSVECAdd(&sp40, &lbl_1_data_2A4[arg0], &sp40);
BoardModelMotionStart(lbl_1_bss_64, 4, 0);
@ -126,7 +143,7 @@ void fn_1_4034(s32 arg0) {
BoardModelPosSetV(lbl_1_bss_64, &sp40);
BoardModelRotSetV(lbl_1_bss_64, &lbl_1_data_25C[arg0]);
fn_1_66C0(0, &sp40);
var_r30 = 0;
while (BoardModelMotionTimeGet(lbl_1_bss_64) < BoardModelMotionMaxTimeGet(lbl_1_bss_64)) {
if (BoardModelMotionTimeGet(lbl_1_bss_64) > 50.0f && var_r30 == 0) {
@ -157,7 +174,8 @@ void fn_1_4034(s32 arg0) {
}
if ((arg0 & 1) != 0) {
var_r27 = arg0 - 1;
} else {
}
else {
var_r27 = arg0 + 1;
}
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[var_r27], &sp34);
@ -167,7 +185,7 @@ void fn_1_4034(s32 arg0) {
while (fn_1_1208(lbl_1_bss_64, temp_f25, 10.0f) == 0) {
HuPrcVSleep();
}
BoardPlayerPosGet(lbl_1_bss_68, &sp28);
var_f27 = sqrtf(((sp40.x - sp28.x) * (sp40.x - sp28.x)) + ((sp40.z - sp28.z) * (sp40.z - sp28.z)));
PSVECSubtract(&sp40, &sp28, &sp1C);
@ -176,7 +194,7 @@ void fn_1_4034(s32 arg0) {
BoardPlayerMotionStart(lbl_1_bss_68, 4, 0);
var_f26 = 0.0f;
temp_f22 = 15.0f;
loop_37:
sp1C.y = temp_f22 - (0.075f * (0.25f * (var_f26 * var_f26)));
var_f26++;
@ -190,28 +208,30 @@ loop_37:
if (sp28.y <= 20.0f + sp40.y) {
sp28.y = 20.0f + sp40.y;
} else {
}
else {
BoardPlayerPosSetV(lbl_1_bss_68, &sp28);
HuPrcVSleep();
goto loop_37;
}
BoardPlayerPosSetV(lbl_1_bss_68, &sp28);
BoardPlayerMotionStart(lbl_1_bss_68, lbl_1_bss_72[0], 0);
while (fn_1_1208(BoardPlayerModelGet(lbl_1_bss_68), temp_f25, 10.0f) == 0) {
HuPrcVSleep();
}
while (BoardPlayerMotionEndCheck(lbl_1_bss_68) == 0) {
HuPrcVSleep();
}
BoardPlayerMotionStart(lbl_1_bss_68, lbl_1_bss_72[1], 0x40000001);
HuPrcSleep(0x12);
temp_r24->work[1] = 1;
if (arg0 < 4) {
fn_1_4EB4(arg0, temp_r26, &sp34);
} else {
}
else {
fn_1_5794(arg0, temp_r26, &sp34);
}
BoardModelPosGet(lbl_1_bss_64, &sp40);
@ -222,7 +242,7 @@ loop_37:
while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) {
HuPrcVSleep();
}
fn_1_66C0(1, &sp40);
BoardModelMotionShiftSet(lbl_1_bss_64, 5, 0.0f, 5.0f, 0);
var_r30 = 0;
@ -272,7 +292,7 @@ loop_37:
for (var_r31 = 0; var_r31 < 2; var_r31++) {
BoardPlayerMotionKill(lbl_1_bss_68, lbl_1_bss_72[var_r31]);
}
fn_1_6670();
for (var_r31 = 0; var_r31 < 3; var_r31++) {
@ -280,7 +300,8 @@ loop_37:
}
}
void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) {
void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3)
{
Vec sp3C;
Vec sp30;
Vec sp24;
@ -291,8 +312,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) {
f32 var_f22;
f32 var_f24;
f32 var_f28;
omObjData* temp_r30;
omObjData* temp_r29;
omObjData *temp_r30;
omObjData *temp_r29;
s32 temp_r28;
temp_f23 = 10.0f;
@ -315,7 +336,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) {
sp30.y += 20.0f;
BoardPlayerPosSetV(lbl_1_bss_68, &sp30);
break;
} else {
}
else {
PSVECAdd(&sp3C, &sp24, &sp3C);
BoardModelPosSetV(lbl_1_bss_64, &sp3C);
sp30 = sp3C;
@ -336,17 +358,17 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) {
while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) {
HuPrcVSleep();
}
BoardPlayerPosGet(lbl_1_bss_68, &sp30);
var_f28 = sqrtf(((sp3C.x - sp30.x) * (sp3C.x - sp30.x)) + ((sp3C.z - sp30.z) * (sp3C.z - sp30.z)));
PSVECSubtract(&sp3C, &sp30, &sp24);
PSVECNormalize(&sp24, &sp24);
PSVECScale(&sp24, &sp24, var_f28 / 45.0f);
BoardPlayerMotionStart(lbl_1_bss_68, 4, 0);
var_f24 = 0.0f;
temp_f19 = 15.0f;
while (1) {
sp24.y = temp_f19 - (0.075f * (0.25f * (var_f24 * var_f24)));
var_f24++;
@ -359,7 +381,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) {
}
if (sp30.y <= sp3C.y && sp24.y < 0.0f) {
sp30.y = sp3C.y;
} else {
}
else {
BoardPlayerPosSetV(lbl_1_bss_68, &sp30);
HuPrcVSleep();
continue;
@ -369,7 +392,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) {
}
}
void fn_1_5648(void) {
void fn_1_5648(void)
{
Vec sp8;
s32 var_r31;
@ -391,7 +415,8 @@ void fn_1_5648(void) {
}
}
void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2)
{
Vec sp64;
Vec sp58;
Vec sp4C;
@ -400,16 +425,16 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
Vec sp28;
Vec sp1C;
f32 sp18;
Process* temp_r23;
Process *temp_r23;
f32 temp_f18;
f32 temp_f22;
f32 var_f27;
f32 var_f23;
f32 var_f28;
omObjData* temp_r27;
omObjData* var_r26;
omObjData* temp_r25;
omObjData* var_r24;
omObjData *temp_r27;
omObjData *var_r26;
omObjData *temp_r25;
omObjData *var_r24;
s32 var_r28;
s32 var_r29;
s32 var_r30;
@ -429,7 +454,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
PSVECScale(&sp40, &sp40, temp_f22);
if (arg0 == 5) {
var_r29 = 0x96;
} else {
}
else {
var_r29 = 0x5A;
}
var_f28 = 0.0f;
@ -442,7 +468,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
BoardModelPosGet(lbl_1_bss_64, &sp1C);
temp_r27 = fn_1_66C0(4, &sp1C);
temp_r25 = fn_1_66C0(5, &sp1C);
while (1) {
sp18 = BoardModelRotYGet(lbl_1_bss_64);
sp58 = sp64;
@ -455,7 +481,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
sp4C.y += 20.0f;
BoardPlayerPosSetV(lbl_1_bss_68, &sp4C);
break;
} else {
}
else {
PSVECAdd(&sp58, &sp40, &sp58);
sp64 = sp58;
if (var_r29 == 0) {
@ -469,24 +496,28 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
temp_r27->work[1] = 1;
temp_r25->work[1] = 1;
var_r30++;
} else if (var_r30 == 1 && var_f28 < -180.0f) {
HuAudFXStop(var_r28);
HuAudFXPlay(0x47D);
HuAudPlayerVoicePlay(lbl_1_bss_68, 0x125);
fn_1_66C0(3, &sp58);
var_r30++;
} else if ((var_r30 == 2) && (var_f28 < -360.0f)) {
var_r28 = HuAudFXPlay(0x47F);
HuAudFXPlay(0x481);
fn_1_66C0(3, &sp58);
var_r30++;
} else if ((var_r30 == 3) && (-540.0f == var_f28)) {
}
else if (var_r30 == 1 && var_f28 < -180.0f) {
HuAudFXStop(var_r28);
HuAudFXPlay(0x47D);
HuAudPlayerVoicePlay(lbl_1_bss_68, 0x125);
fn_1_66C0(3, &sp58);
var_r30++;
}
else if ((var_r30 == 2) && (var_f28 < -360.0f)) {
var_r28 = HuAudFXPlay(0x47F);
HuAudFXPlay(0x481);
fn_1_66C0(3, &sp58);
var_r30++;
}
else if ((var_r30 == 3) && (-540.0f == var_f28)) {
var_r30++;
BoardModelPosGet(lbl_1_bss_64, &sp1C);
var_r26 = fn_1_66C0(4, &sp1C);
var_r24 = fn_1_66C0(5, &sp1C);
}
} else {
}
else {
var_r29--;
}
BoardModelPosSetV(lbl_1_bss_64, &sp58);
@ -536,7 +567,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
if (sp4C.y <= sp58.y && sp40.y < 0.0f) {
sp4C.y = sp58.y;
break;
} else {
}
else {
BoardPlayerPosSetV(lbl_1_bss_68, &sp4C);
HuPrcVSleep();
}
@ -545,7 +577,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) {
HuPrcKill(temp_r23);
}
void fn_1_62AC(s32 arg0, Vec* arg1) {
void fn_1_62AC(s32 arg0, Vec *arg1)
{
Vec sp34;
Vec sp28;
Vec sp1C;
@ -578,7 +611,8 @@ void fn_1_62AC(s32 arg0, Vec* arg1) {
}
}
void fn_1_64BC(void) {
void fn_1_64BC(void)
{
Vec sp20;
Vec sp14;
Vec sp8;
@ -602,7 +636,8 @@ void fn_1_64BC(void) {
}
}
void fn_1_65E8(void) {
void fn_1_65E8(void)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 6; var_r31++) {
@ -611,7 +646,8 @@ void fn_1_65E8(void) {
}
}
void fn_1_6670(void) {
void fn_1_6670(void)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 6; var_r31++) {
@ -619,9 +655,10 @@ void fn_1_6670(void) {
}
}
omObjData* fn_1_66C0(u32 arg0, Vec* arg1) {
omObjData *fn_1_66C0(u32 arg0, Vec *arg1)
{
Vec sp8;
omObjData* temp_r31;
omObjData *temp_r31;
f32 temp_f31;
temp_r31 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_6914);
@ -665,7 +702,8 @@ omObjData* fn_1_66C0(u32 arg0, Vec* arg1) {
return temp_r31;
}
void fn_1_6914(omObjData* arg0) {
void fn_1_6914(omObjData *arg0)
{
Vec sp8;
if (arg0->work[1] != 0) {
@ -680,7 +718,8 @@ void fn_1_6914(omObjData* arg0) {
BoardModelKill(arg0->work[0]);
omDelObjEx(boardObjMan, arg0);
}
} else {
}
else {
switch (arg0->work[2]) {
case 0:
case 1:

View file

@ -12,7 +12,8 @@
// data
s32 lbl_1_data_150[5] = {
0x790021, 0x790022, 0x790023, 0x790024, 0x790025,
DATA_MAKE_NUM(DATADIR_W05, 0x21), DATA_MAKE_NUM(DATADIR_W05, 0x22), DATA_MAKE_NUM(DATADIR_W05, 0x23),
DATA_MAKE_NUM(DATADIR_W05, 0x24), DATA_MAKE_NUM(DATADIR_W05, 0x25),
};
s16 lbl_1_data_164 = 0xFFFF;
@ -36,7 +37,7 @@ void fn_1_14D0(void) {
}
u32 lbl_1_data_170[4] = { 0, 10, 25, 40 };
s32 lbl_1_data_180 = 0x79000C;
s32 lbl_1_data_180 = DATA_MAKE_NUM(DATADIR_W05, 0x0C);
s16 fn_1_14FC(void) {
s16 var_r31;
@ -112,10 +113,10 @@ void fn_1_155C(void) {
sprintf(sp18, "%d", lbl_1_bss_0->unk_00);
if (var_r30 > 0) {
if (var_r30 >= 5) {
var_r27 = 0x270001;
var_r27 = MAKE_MESSID(0x27, 0x01);
var_r30 = 5;
} else {
var_r27 = 0x270002;
var_r27 = MAKE_MESSID(0x27, 0x02);
}
sprintf(sp8, "%d", var_r30);
BoardWinCreate(2, var_r27, 7);
@ -198,7 +199,10 @@ void fn_1_155C(void) {
BoardRollDispSet(1);
}
s32 lbl_1_data_188[4] = { 0x79000C, 0x79000E, 0x79000F, 0x790010 };
s32 lbl_1_data_188[4] = {
DATA_MAKE_NUM(DATADIR_W05, 0x0C), DATA_MAKE_NUM(DATADIR_W05, 0x0E),
DATA_MAKE_NUM(DATADIR_W05, 0x0F),DATA_MAKE_NUM(DATADIR_W05, 0x10)
};
s32 lbl_1_data_198[2] = { 28, 25 };
void fn_1_1E44(void) {
@ -279,7 +283,7 @@ void fn_1_1E44(void) {
BoardWinWait();
BoardWinKill();
} else {
temp_r3 = BoardModelCreate(0x790004, NULL, 0);
temp_r3 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x04), NULL, 0);
BoardModelVisibilitySet(temp_r3, 0);
BoardModelLayerSet(temp_r3, 2U);
if (lbl_1_bss_0->unk_00 > BoardPlayerCoinsGet(lbl_1_bss_28)) {

View file

@ -1,8 +1,9 @@
#include "REL/w05Dll.h"
#include "game/gamework_data.h"
#include "game/chrman.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/board/audio.h"
#include "game/board/boo_house.h"
@ -17,68 +18,50 @@
// data
BoardMapObject lbl_1_data_0[7] = {
{ { 3300.0f, 100.0f, -900.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x790011
},
{ { -2550.0f, 0.0f, 1350.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x790014
},
{ { -3000.0f, 100.0f, -1050.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x79001A
},
{ { 2100.0f, 100.0f, -450.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x79001B
},
{ { -450.0f, 100.0f, -750.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x79000A
},
{ { -2710.0f, 0.0f, 1315.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x79000A
},
{ { 3055.0f, 100.0f, -815.0f },
{ 0.0f, 0.0f, 0.0f },
{ 1.0f, 1.0f, 1.0f },
0x79000A
},
{ { 3300.0f, 100.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x11) },
{ { -2550.0f, 0.0f, 1350.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x14) },
{ { -3000.0f, 100.0f, -1050.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x1A) },
{ { 2100.0f, 100.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x1B) },
{ { -450.0f, 100.0f, -750.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) },
{ { -2710.0f, 0.0f, 1315.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) },
{ { 3055.0f, 100.0f, -815.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) },
};
s16 lbl_1_data_118 = 0xFFFF;
s16 lbl_1_data_11A = 0xFFFF;
s16 lbl_1_data_11C = 0xFFFF;
s16 lbl_1_data_11E = 0xFFFF;
s16 lbl_1_data_120 = 0xFFFF;
s32 lbl_1_data_124[8] = {0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, 0x850000, 0x110000, 0xD0000, 0x810000};
s32 lbl_1_data_144[2] = {0x790006, 0xFFFFFFFF};
s32 lbl_1_data_124[8] = {
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00),
};
s32 lbl_1_data_144[2] = { DATA_MAKE_NUM(DATADIR_W05, 0x06), DATA_NUM_LISTEND };
s32 lbl_1_data_14C = 0xFFFFFFFF;
// bss
s16 lbl_1_bss_14[7];
s32* lbl_1_bss_10;
s32 *lbl_1_bss_10;
s16 lbl_1_bss_8[4];
Process* lbl_1_bss_4;
bitcopy* lbl_1_bss_0;
Process *lbl_1_bss_4;
bitcopy *lbl_1_bss_0;
void BoardCreate(void) {
void BoardCreate(void)
{
s32 sp8;
s32 var_r31;
BoardMapObject* temp_r30;
BoardMapObject *temp_r30;
sp8 = GWBoardGet();
lbl_1_bss_0 = (bitcopy*) GWSystem.board_data;
BoardSpaceInit(0x790000);
lbl_1_data_118 = BoardModelCreate(0x790001, NULL, 0);
lbl_1_data_120 = BoardModelCreate(0x790002, NULL, 0);
lbl_1_bss_0 = (bitcopy *)GWSystem.board_data;
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W05, 0x00));
lbl_1_data_118 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x01), NULL, 0);
lbl_1_data_120 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x02), NULL, 0);
fn_8006DDE8(lbl_1_data_118, -1.0f);
BoardModelPosSet(lbl_1_data_118, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_118, 0, 0x40000001);
@ -88,23 +71,24 @@ void BoardCreate(void) {
BoardModelMotionStart(lbl_1_data_120, 0, 0x40000001);
BoardModelMotionSpeedSet(lbl_1_data_120, 1.0f);
BoardModelLayerSet(lbl_1_data_120, 1);
lbl_1_data_11A = BoardModelCreate(0x790003, NULL, 0);
lbl_1_data_11A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x03), NULL, 0);
fn_8006DDE8(lbl_1_data_11A, -1.0f);
BoardModelPosSet(lbl_1_data_11A, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_11A, 0, 0x40000001);
lbl_1_data_11C = BoardModelCreate(0x790005, lbl_1_data_144, 0);
lbl_1_data_11C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x05), lbl_1_data_144, 0);
BoardModelPosSet(lbl_1_data_11C, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_11C, 1, 0x40000001);
lbl_1_data_11E = BoardModelCreate(0x2001C, &lbl_1_data_14C, 0);
BoardModelMotionStart(lbl_1_data_11E, 1, 0x40000001);
BoardLightHookSet(&fn_1_744, &fn_1_788);
for (var_r31 = 0; var_r31 < 7; var_r31++) {
temp_r30 = &lbl_1_data_0[var_r31];
if (temp_r30->data_num != -1) {
if ((var_r31 == 4) || (var_r31 == 5) || (var_r31 == 6)) {
lbl_1_bss_10 = &lbl_1_data_14C;
} else {
}
else {
lbl_1_bss_10 = NULL;
}
lbl_1_bss_14[var_r31] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_10, 0);
@ -129,7 +113,8 @@ void BoardCreate(void) {
BoardLotteryHostSet(lbl_1_data_11E);
}
void BoardDestroy(void) {
void BoardDestroy(void)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 7; var_r31++) {
@ -161,20 +146,21 @@ void BoardDestroy(void) {
BoardSpaceDestroy();
}
void fn_1_744(void) {
void fn_1_744(void)
{
s16 var_r31 = BoardModelIDGet(lbl_1_data_118);
Hu3DModelLightInfoSet(var_r31, 1);
}
void fn_1_788(void) {
}
void fn_1_788(void) { }
s32 fn_1_78C(void) {
s32 fn_1_78C(void)
{
s32 var_r30 = GWSystem.player_curr;
s32 var_r29 = GWPlayer[var_r30].space_curr;
s32 var_r28;
u32 temp_r3;
temp_r3 = BoardSpaceFlagGet(0, var_r29);
if ((temp_r3 & 2) != 0) {
fn_1_1E44();
@ -186,9 +172,10 @@ s32 fn_1_78C(void) {
}
}
s32 fn_1_82C(void) {
s32 fn_1_82C(void)
{
s32 temp_r30;
BoardSpace* temp_r3;
BoardSpace *temp_r3;
temp_r30 = GWSystem.player_curr;
temp_r3 = BoardSpaceGet(0, GWPlayer[temp_r30].space_curr);
@ -213,15 +200,16 @@ s32 fn_1_82C(void) {
return 0;
}
void fn_1_92C(void) {
void fn_1_92C(void)
{
fn_1_6B28();
fn_1_9680();
}
void fn_1_950(void) {
}
void fn_1_950(void) { }
void fn_1_954(void) {
void fn_1_954(void)
{
Vec sp14;
Vec sp8;
s32 var_r26;
@ -239,7 +227,7 @@ void fn_1_954(void) {
HuPrcEnd();
}
lbl_1_bss_8[0] = 0;
for (var_r31 = 1; var_r31 < 3;) {
lbl_1_bss_8[var_r31] = (u32)frandmod(0xE);
if ((lbl_1_bss_8[var_r31] == 0xA) || (lbl_1_bss_8[var_r31] == 0xD)) {
@ -260,7 +248,8 @@ void fn_1_954(void) {
if (GWPlayer[temp_r30].com != 0) {
if (BoardComPreferItemCheck(temp_r30, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) {
BoardComKeySetLeft();
} else {
}
else {
BoardComKeySetRight();
}
}
@ -297,7 +286,7 @@ void fn_1_954(void) {
temp_r27 = GWPlayer[temp_r30].space_curr;
var_r26 = BoardSpaceLinkFlagSearch(0, temp_r27, 0x02000000);
BoardPlayerMoveBetween(temp_r30, temp_r27, var_r26);
while (GWPlayer[temp_r30].moving != 0) {
HuPrcVSleep();
}
@ -314,28 +303,32 @@ void fn_1_954(void) {
HuPrcEnd();
}
void fn_1_D4C(void) {
void fn_1_D4C(void)
{
BoardWinKill();
CharModelDataClose(-1);
lbl_1_bss_4 = NULL;
}
void fn_1_D84(void) {
void fn_1_D84(void)
{
lbl_1_bss_4 = HuPrcChildCreate(fn_1_954, 0x2003U, 0x3000U, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_4, fn_1_D4C);
while (lbl_1_bss_4 != 0) {
HuPrcVSleep();
}
}
void fn_1_E04(void) {
void fn_1_E04(void)
{
HuPrcSleep(0x3C);
BoardMusStart(1, 0x23, 0x7F, 0);
HuPrcEnd();
}
void fn_1_E40(void) {
void fn_1_E40(void)
{
Vec sp20;
Vec sp14;
Vec sp8;
@ -350,7 +343,8 @@ void fn_1_E40(void) {
if (GWPlayer[temp_r31].com != 0) {
if (frandBool() != 0) {
BoardComKeySetLeft();
} else {
}
else {
BoardComKeySetRight();
}
}
@ -363,7 +357,7 @@ void fn_1_E40(void) {
BoardWinWait();
BoardWinKill();
BoardMGExit();
while (BoardMGDoneFlagGet() != 1) {
HuPrcVSleep();
}
@ -399,7 +393,8 @@ void fn_1_E40(void) {
BoardPlayerMotionStart(temp_r31, 1, 0x40000001);
}
s32 fn_1_1114(void) {
s32 fn_1_1114(void)
{
u32 temp_r31;
s16 var_r30 = GWPlayer[GWSystem.player_curr].space_curr;
@ -412,13 +407,15 @@ s32 fn_1_1114(void) {
while (lbl_1_bss_4 != 0) {
HuPrcVSleep();
}
} else if ((temp_r31 & 0x400000) != 0) {
}
else if ((temp_r31 & 0x400000) != 0) {
fn_1_E40();
}
BoardRollDispSet(1);
}
s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) {
s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9)
{
f32 var_f29;
f32 var_f31;
s32 var_r31;
@ -440,12 +437,15 @@ s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) {
if (var_f29 < 180.0f) {
if (var_f29 > arg9) {
var_f31 = var_f31 + arg9;
} else {
}
else {
var_f31 = arg8;
}
} else if ((360.0f - var_f29) > arg9) {
}
else if ((360.0f - var_f29) > arg9) {
var_f31 = var_f31 - arg9;
} else {
}
else {
var_f31 = arg8;
}
if (var_f31 < 0.0f) {
@ -455,7 +455,8 @@ s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) {
var_f31 -= 360.0f;
}
BoardModelRotYSet(arg0, var_f31);
} else {
}
else {
var_r31 = 1;
}
return var_r31;

View file

@ -1,25 +1,27 @@
#include "REL/w05Dll.h"
#include "game/hsfdraw.h"
#include "game/audio.h"
#include "game/objsub.h"
#include "game/frand.h"
#include "game/chrman.h"
#include "game/pad.h"
#include "game/frand.h"
#include "game/hsfdraw.h"
#include "game/minigame_seq.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/board/audio.h"
#include "game/board/model.h"
#include "game/board/window.h"
#include "game/board/audio.h"
s16 lbl_1_bss_102[3];
s16 lbl_1_bss_100;
s16 lbl_1_bss_FE;
s16 lbl_1_bss_D6[20];
s16 lbl_1_bss_D4;
omObjData* lbl_1_bss_D0;
omObjData* lbl_1_bss_CC;
omObjData* lbl_1_bss_C8;
omObjData *lbl_1_bss_D0;
omObjData *lbl_1_bss_CC;
omObjData *lbl_1_bss_C8;
s16 lbl_1_bss_C6;
s16 lbl_1_bss_C4;
s16 lbl_1_bss_C2;
@ -29,14 +31,16 @@ s32 lbl_1_bss_B8;
char *lbl_1_data_464[3] = { "gyoei", "gyoei1", "gyoei2" };
s32 lbl_1_data_470[3] = { 0x7B, 0x7C, 0x7D };
s32 lbl_1_data_47C[3] = { 0x00790016, 0x00790017, 0x00790018 };
s32 lbl_1_data_47C[3] = { DATA_MAKE_NUM(DATADIR_W05, 0x16), DATA_MAKE_NUM(DATADIR_W05, 0x17), DATA_MAKE_NUM(DATADIR_W05, 0x18) };
char *lbl_1_data_494[3] = { "uo", "uo1", "uo2" };
void fn_1_9680(void) {
void fn_1_9680(void)
{
BoardModelAttrSet(lbl_1_bss_14[1], 0x40000002U);
}
void fn_1_96B4(void) {
void fn_1_96B4(void)
{
BoardModelAttrReset(lbl_1_bss_14[1], 0x40000002);
BoardModelMotionTimeSet(lbl_1_bss_14[1], 0.0f);
@ -47,58 +51,63 @@ void fn_1_96B4(void) {
BoardModelMotionStartEndSet(lbl_1_bss_14[1], 0x3C, 0x64);
}
void fn_1_9760(void) {
void fn_1_9760(void)
{
BoardModelAttrReset(lbl_1_bss_14[1], 0x40000001);
BoardModelMotionStartEndSet(lbl_1_bss_14[1], 0, 0xA0);
}
void fn_1_97AC(void) {
void fn_1_97AC(void)
{
Vec sp8;
s32 var_r31;
lbl_1_bss_C0 = GWSystem.player_curr;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
lbl_1_bss_102[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_C0, lbl_1_data_470[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_C0].character]);
}
sp8.x = sp8.y = sp8.z = 1.0f;
lbl_1_bss_100 = BoardModelCreate(0x790015, NULL, 0);
lbl_1_bss_100 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x15), NULL, 0);
BoardModelScaleSetV(lbl_1_bss_100, &sp8);
BoardModelVisibilitySet(lbl_1_bss_100, 0);
lbl_1_bss_D4 = BoardModelCreate(0x79002C, NULL, 0);
lbl_1_bss_D4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x2C), NULL, 0);
BoardModelVisibilitySet(lbl_1_bss_D4, 0);
lbl_1_bss_C2 = frandmod(3U);
lbl_1_bss_FE = BoardModelCreate(lbl_1_data_47C[lbl_1_bss_C2], NULL, 0);
BoardModelVisibilitySet(lbl_1_bss_FE, 0);
for (var_r31 = 0; var_r31 < 0x14; var_r31++) {
lbl_1_bss_D6[var_r31] = BoardModelCreate(0x7000A, NULL, 1);
lbl_1_bss_D6[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1);
BoardModelVisibilitySet(lbl_1_bss_D6[var_r31], 0);
}
BoardPlayerPostTurnHookSet(lbl_1_bss_C0, (s32 (*)())fn_1_9B74);
BoardPlayerPostTurnHookSet(lbl_1_bss_C0, (s32(*)())fn_1_9B74);
lbl_1_bss_CC = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_9A68);
lbl_1_bss_D0 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_9C24);
lbl_1_bss_C6 = 0;
lbl_1_bss_C4 = 0;
}
void fn_1_9A68(omObjData* arg0) {
void fn_1_9A68(omObjData *arg0)
{
if ((lbl_1_bss_C4 != 0) && (BoardMGDoneFlagGet() == 1)) {
fn_1_9AF0();
omDelObjEx(boardObjMan, arg0);
}
}
void fn_1_9AC0(void) {
void fn_1_9AC0(void)
{
lbl_1_bss_C4 = 1;
BoardMGExit();
}
void fn_1_9AF0(void) {
void fn_1_9AF0(void)
{
s32 var_r31;
omDelObjEx(boardObjMan, lbl_1_bss_D0);
for (var_r31 = 0; var_r31 < 0x14; var_r31++) {
BoardModelKill(lbl_1_bss_D6[var_r31]);
}
@ -106,7 +115,8 @@ void fn_1_9AF0(void) {
BoardMGDoneFlagSet(0);
}
void fn_1_9B74(void) {
void fn_1_9B74(void)
{
HsfObject *var_r31;
omDelObjEx(boardObjMan, lbl_1_bss_C8);
BoardModelKill(lbl_1_bss_FE);
@ -115,7 +125,8 @@ void fn_1_9B74(void) {
BoardModelAttrReset(lbl_1_bss_14[1], 0x40000004);
}
void fn_1_9C24(omObjData* arg0) {
void fn_1_9C24(omObjData *arg0)
{
if (arg0->work[0] == 0) {
arg0->work[0] = MGSeqCreate(3, 0);
return;
@ -125,7 +136,8 @@ void fn_1_9C24(omObjData* arg0) {
}
}
void fn_1_9C98(dataCopy2* arg0) {
void fn_1_9C98(dataCopy2 *arg0)
{
Vec sp8;
Vec temp_r4;
@ -134,21 +146,22 @@ void fn_1_9C98(dataCopy2* arg0) {
BoardModelPosSetV(arg0->unk_0A, &sp8);
}
void fn_1_9D0C(omObjData* arg0) {
void fn_1_9D0C(omObjData *arg0)
{
Vec sp1C;
Vec sp10;
f32 sp8[2];
s32 var_r30;
dataCopy2* temp_r31;
dataCopy2 *temp_r31;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, 0x10000000);
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM);
temp_r31 = arg0->data;
temp_r31->unk_02 = 5;
temp_r31->unk_04 = 0x3C;
temp_r31->unk_00 = MGSeqCreate(1, temp_r31->unk_02, 0x120, 0x40);
HuWinMesMaxSizeGet(1, sp8, 0x27000E);
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x27, 0x0E));
temp_r31->unk_06 = HuWinCreate(-10000.0f, 368.0f, sp8[0], sp8[1], 0);
HuWinMesSet(temp_r31->unk_06, 0x27000E);
HuWinMesSet(temp_r31->unk_06, MAKE_MESSID(0x27, 0x0E));
HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f);
HuWinMesSpeedSet(temp_r31->unk_06, 0);
temp_r31->unk_08 = 1;
@ -158,7 +171,7 @@ void fn_1_9D0C(omObjData* arg0) {
for (var_r30 = 0; var_r30 < 3; var_r30++) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), lbl_1_data_494[var_r30], &temp_r31->unk_0C[var_r30]);
}
temp_r31->unk_0A = BoardModelCreate(0x790019, NULL, 0);
temp_r31->unk_0A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x19), NULL, 0);
BoardModelAttrSet(temp_r31->unk_0A, 0x40000001);
sp1C.x = sp1C.y = sp1C.z = 1.5f;
BoardModelScaleSetV(temp_r31->unk_0A, &sp1C);
@ -168,7 +181,8 @@ void fn_1_9D0C(omObjData* arg0) {
arg0->func = fn_1_9F24;
}
void fn_1_9F24(omObjData* arg0) {
void fn_1_9F24(omObjData *arg0)
{
Vec sp24;
Vec sp18;
Vec spC;
@ -176,7 +190,7 @@ void fn_1_9F24(omObjData* arg0) {
s16 sp8;
f32 var_f31;
u16 temp_r29;
dataCopy2* temp_r31;
dataCopy2 *temp_r31;
temp_r31 = arg0->data;
if (--temp_r31->unk_04 == 0) {
@ -189,7 +203,8 @@ void fn_1_9F24(omObjData* arg0) {
temp_r29 = GWPlayer[lbl_1_bss_C0].port;
if (GWPlayer[lbl_1_bss_C0].com != 0) {
fn_1_B2B0(arg0, &spA, &sp8);
} else {
}
else {
sp8 = HuPadDStkRep[temp_r29];
spA = HuPadBtnDown[temp_r29];
}
@ -201,10 +216,12 @@ void fn_1_9F24(omObjData* arg0) {
BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[0], 0);
BoardPlayerMotionSpeedSet(lbl_1_bss_C0, 0.5f);
arg0->func = fn_1_A224;
} else if ((temp_r31->unk_08 != 0) && ((sp8 & 1) != 0)) {
}
else if ((temp_r31->unk_08 != 0) && ((sp8 & 1) != 0)) {
HuAudFXPlay(0);
temp_r31->unk_08--;
} else if ((temp_r31->unk_08 != 2) && ((sp8 & 2) != 0)) {
}
else if ((temp_r31->unk_08 != 2) && ((sp8 & 2) != 0)) {
HuAudFXPlay(0);
temp_r31->unk_08++;
}
@ -216,7 +233,8 @@ void fn_1_9F24(omObjData* arg0) {
BoardModelPosSetV(temp_r31->unk_0A, &spC);
}
void fn_1_A224(omObjData* arg0) {
void fn_1_A224(omObjData *arg0)
{
Vec sp14;
Vec sp8;
f32 temp_f31;
@ -239,21 +257,22 @@ void fn_1_A224(omObjData* arg0) {
BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[1], 0);
BoardPlayerMotionSpeedSet(lbl_1_bss_C0, 0.5f);
switch (lbl_1_bss_C2) {
case 0:
omVibrate(lbl_1_bss_C0, 0x7FFF, 0xC, 0);
break;
case 1:
omVibrate(lbl_1_bss_C0, 0x7FFF, 4, 2);
break;
case 2:
omVibrate(lbl_1_bss_C0, 0x7FFF, 6, 6);
break;
case 0:
omVibrate(lbl_1_bss_C0, 0x7FFF, 0xC, 0);
break;
case 1:
omVibrate(lbl_1_bss_C0, 0x7FFF, 4, 2);
break;
case 2:
omVibrate(lbl_1_bss_C0, 0x7FFF, 6, 6);
break;
}
arg0->func = fn_1_A4F8;
}
}
void fn_1_A4F8(omObjData* arg0) {
void fn_1_A4F8(omObjData *arg0)
{
f32 temp_f31;
temp_f31 = BoardPlayerMotionMaxTimeGet(lbl_1_bss_C0);
@ -264,13 +283,14 @@ void fn_1_A4F8(omObjData* arg0) {
}
}
void fn_1_A5B0(omObjData* arg0) {
void fn_1_A5B0(omObjData *arg0)
{
Vec sp14;
Vec sp8;
HsfObject* temp_r28;
dataCopy2* temp_r30;
omObjData* temp_r29;
Vec* temp_r31;
HsfObject *temp_r28;
dataCopy2 *temp_r30;
omObjData *temp_r29;
Vec *temp_r31;
f32 temp_f30;
f32 var_f31;
@ -295,7 +315,7 @@ void fn_1_A5B0(omObjData* arg0) {
BoardModelVisibilitySet(lbl_1_bss_D4, 1);
BoardModelMotionTimeSet(lbl_1_bss_D4, 110.0f);
lbl_1_bss_C8 = temp_r29 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3C4);
temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000);
temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM);
temp_r31 = temp_r29->data;
lbl_1_bss_C8->work[1] = 1;
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), "fish", &sp14);
@ -323,7 +343,8 @@ void fn_1_A5B0(omObjData* arg0) {
BoardModelMotionSpeedSet(lbl_1_bss_100, var_f31);
}
void fn_1_A990(omObjData* arg0) {
void fn_1_A990(omObjData *arg0)
{
Vec sp8;
Process *var_r31;
@ -344,9 +365,10 @@ void fn_1_A990(omObjData* arg0) {
}
s16 lbl_1_data_4B2[3] = { 20, 10, 5 };
s32 lbl_1_data_4B8[3] = { 0x00270013, 0x00270014, 0x00270015 };
s32 lbl_1_data_4B8[3] = { MAKE_MESSID(0x27, 0x13), MAKE_MESSID(0x27, 0x14), MAKE_MESSID(0x27, 0x15) };
void fn_1_AB24(void) {
void fn_1_AB24(void)
{
Vec sp124[20];
Vec sp34[20];
Vec sp28;
@ -359,7 +381,7 @@ void fn_1_AB24(void) {
s32 var_r29;
s32 var_r31;
f32 var_f30;
Vec* temp_r4;
Vec *temp_r4;
temp_r30 = HuPrcCurrentGet()->user_data;
spC = temp_r30->data;
@ -367,7 +389,7 @@ void fn_1_AB24(void) {
BoardModelPosGet(lbl_1_bss_14[5], &sp1C);
var_f30 = (180.0 * (atan2((sp1C.z - sp28.z), (sp1C.x - sp28.x)) / M_PI));
BoardPlayerMotBlendSet(lbl_1_bss_C0, var_f30, 0xF);
while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) {
HuPrcVSleep();
}
@ -381,12 +403,12 @@ void fn_1_AB24(void) {
BoardWinWait();
BoardWinKill();
BoardPlayerMotBlendSet(lbl_1_bss_C0, 0, 0xF);
while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) {
HuPrcVSleep();
}
BoardPlayerPosGet(lbl_1_bss_C0, &sp28);
for (var_r31 = 0; var_r31 < lbl_1_bss_C6; var_r31++) {
BoardModelVisibilitySet(lbl_1_bss_D6[var_r31], 1);
sp124[var_r31] = sp28;
@ -400,7 +422,7 @@ void fn_1_AB24(void) {
}
var_f31 = -1.0f;
var_r29 = 0;
while (1) {
for (var_r31 = 0; var_r31 < lbl_1_bss_C6; var_r31++) {
if (var_r31 >= var_r29) {
@ -429,11 +451,12 @@ void fn_1_AB24(void) {
if (var_r29 == lbl_1_bss_C6) {
BoardPlayerMotionShiftSet(lbl_1_bss_C0, 7, 0.0f, 10.0f, 0);
break;
} else {
}
else {
HuPrcVSleep();
}
}
while (BoardPlayerMotionEndCheck(lbl_1_bss_C0) == 0) {
HuPrcVSleep();
}
@ -444,7 +467,8 @@ void fn_1_AB24(void) {
HuPrcEnd();
}
void fn_1_B214(omObjData* arg0) {
void fn_1_B214(omObjData *arg0)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
@ -456,8 +480,9 @@ void fn_1_B214(omObjData* arg0) {
omDelObjEx(boardObjMan, arg0);
}
void fn_1_B2B0(omObjData* arg0, u16* arg1, s16* arg2) {
dataCopy2* temp_r31;
void fn_1_B2B0(omObjData *arg0, u16 *arg1, s16 *arg2)
{
dataCopy2 *temp_r31;
temp_r31 = arg0->data;
*arg1 = 0;
@ -490,7 +515,8 @@ void fn_1_B2B0(omObjData* arg0, u16* arg1, s16* arg2) {
*arg2 = 2;
}
void fn_1_B3C4(omObjData* arg0) {
void fn_1_B3C4(omObjData *arg0)
{
Vec sp2C;
Vec sp20;
Vec sp14;
@ -526,9 +552,10 @@ void fn_1_B3C4(omObjData* arg0) {
if ((0.0f == BoardModelMotionTimeGet(lbl_1_bss_FE)) && (arg0->work[1] != 0)) {
HuAudFXPlay(0x484);
}
} else {
}
else {
arg0->work[0] += 1;
}
BoardModelPosSetV(lbl_1_bss_FE, &sp20);
}
}
}

View file

@ -1,16 +1,16 @@
#include "REL/w05Dll.h"
#include "game/hsfdraw.h"
#include "game/audio.h"
#include "game/objsub.h"
#include "game/frand.h"
#include "game/chrman.h"
#include "game/pad.h"
#include "game/frand.h"
#include "game/hsfdraw.h"
#include "game/minigame_seq.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/board/audio.h"
#include "game/board/model.h"
#include "game/board/window.h"
#include "game/board/audio.h"
// data
s32 lbl_1_data_310[2] = { 0x79, 0x7A };
@ -24,22 +24,23 @@ s16 lbl_1_bss_A4[3];
s16 lbl_1_bss_A2;
s16 lbl_1_bss_9E[2];
s16 lbl_1_bss_9C;
Process* lbl_1_bss_98;
omObjData* lbl_1_bss_94;
omObjData* lbl_1_bss_90;
omObjData* lbl_1_bss_8C;
Process *lbl_1_bss_98;
omObjData *lbl_1_bss_94;
omObjData *lbl_1_bss_90;
omObjData *lbl_1_bss_8C;
s32 lbl_1_bss_88;
s32 lbl_1_bss_7C[3];
AnimData* lbl_1_bss_78;
AnimData *lbl_1_bss_78;
void fn_1_6B28(void) {
void fn_1_6B28(void)
{
BoardModelAttrSet(*lbl_1_bss_14, 0x40000002U);
lbl_1_bss_98 = NULL;
lbl_1_bss_78 = NULL;
}
void fn_1_6B7C(void) {
void fn_1_6B7C(void)
{
Vec sp1C;
Vec sp10;
s32 spC;
@ -51,7 +52,7 @@ void fn_1_6B7C(void) {
for (var_r31 = 0; var_r31 < 2; var_r31++) {
lbl_1_bss_9E[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_B6, lbl_1_data_310[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_B6].character]);
}
lbl_1_bss_A2 = BoardModelCreate(0x790013, NULL, 0);
lbl_1_bss_A2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x13), NULL, 0);
BoardModelVisibilitySet(lbl_1_bss_A2, 0);
sp1C.x = sp1C.y = sp1C.z = 3.33333f;
BoardModelScaleSetV(lbl_1_bss_A2, &sp1C);
@ -63,11 +64,11 @@ void fn_1_6B7C(void) {
HuPrcVSleep();
}
BoardPlayerMotBlendSet(lbl_1_bss_B6, 0, 0xF);
while (BoardPlayerMotBlendCheck(lbl_1_bss_B6) == 0) {
HuPrcVSleep();
}
HuPrcSleep(0x3C);
BoardAudSeqPause(0, 1, 0x3E8);
HuAudFXPlay(0x30D);
@ -94,14 +95,14 @@ void fn_1_6B7C(void) {
BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002);
omVibrate(lbl_1_bss_B6, 0x7FFF, 6, 6);
HuAudFXPlay(0x492);
while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 90.0f) {
HuPrcVSleep();
}
BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f);
HuPadRumbleStop(GWPlayer[lbl_1_bss_B6].port);
BoardModelHookReset(lbl_1_bss_14[0]);
for (var_r31 = 0; var_r31 < 3; var_r31++) {
BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]);
}
@ -111,15 +112,16 @@ void fn_1_6B7C(void) {
lbl_1_bss_94 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_7284);
lbl_1_bss_8C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_78A0);
lbl_1_bss_90 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL);
lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, 0x10000000U);
lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, MEMORY_DEFAULT_NUM);
if (lbl_1_bss_78 == NULL) {
lbl_1_bss_78 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, HEAP_DATA));
lbl_1_bss_78 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00));
HuSprAnimLock(lbl_1_bss_78);
}
lbl_1_bss_9C = 0;
}
void fn_1_7284(omObjData* arg0) {
void fn_1_7284(omObjData *arg0)
{
if ((lbl_1_bss_9C != 0) && (BoardMGDoneFlagGet() == 1)) {
fn_1_77B0();
fn_1_7314();
@ -128,12 +130,14 @@ void fn_1_7284(omObjData* arg0) {
}
}
void fn_1_72E4(void) {
void fn_1_72E4(void)
{
lbl_1_bss_9C = 1;
BoardMGExit();
}
void fn_1_7314(void) {
void fn_1_7314(void)
{
s32 var_r31;
BoardModelHookReset(lbl_1_bss_14[0]);
@ -148,12 +152,14 @@ void fn_1_7314(void) {
}
}
void fn_1_73C0(void) {
void fn_1_73C0(void)
{
omDelObjEx(boardObjMan, lbl_1_bss_90);
BoardMGDoneFlagSet(0);
}
void fn_1_7400(void) {
void fn_1_7400(void)
{
while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 30.0f) {
HuPrcVSleep();
@ -162,42 +168,42 @@ void fn_1_7400(void) {
BoardModelMotionTimeSet(lbl_1_bss_14[0], 30.0f);
lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x1000, 0);
HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC);
lbl_1_bss_98->user_data = (void* )7;
lbl_1_bss_98->user_data = (void *)7;
HuPrcEnd();
}
s32 lbl_1_data_350[14] = {
0x0007006D, 0x0007006E, 0x0007006F, 0x00070070,
0x00070071, 0x00070072, 0x00070073, 0x00070074,
0x00070076, 0x00070077, 0x00070078, 0x00070079,
0x0007007A, 0x0007007B
DATA_MAKE_NUM(DATADIR_BOARD, 0x6D),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x6F),
DATA_MAKE_NUM(DATADIR_BOARD, 0x70),
DATA_MAKE_NUM(DATADIR_BOARD, 0x71),
DATA_MAKE_NUM(DATADIR_BOARD, 0x72),
DATA_MAKE_NUM(DATADIR_BOARD, 0x73),
DATA_MAKE_NUM(DATADIR_BOARD, 0x74),
DATA_MAKE_NUM(DATADIR_BOARD, 0x76),
DATA_MAKE_NUM(DATADIR_BOARD, 0x77),
DATA_MAKE_NUM(DATADIR_BOARD, 0x78),
DATA_MAKE_NUM(DATADIR_BOARD, 0x79),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7A),
DATA_MAKE_NUM(DATADIR_BOARD, 0x7B),
};
s16 lbl_1_data_388[92] = {
0, 1, -1, 2, 0, -1, 1, 2,
0, -1, 2, 1, 0, 2, -1, 1,
0, 2, 1, -1, 1, 2, -1, 0,
1, 2, 0, -1, 1, -1, 0, 2,
1, -1, 2, 0, 1, 0, 2, -1,
1, 0, -1, 2, 2, -1, 0, 1,
2, -1, 1, 0, 2, 0, 1, -1,
2, 0, -1, 1, 2, 1, -1, 0,
2, 1, 0, -1, -1, 0, 1, 2,
-1, 0, 2, 1, -1, 1, 2, 0,
-1, 1, 0, 2, -1, 2, 0, 1,
-1, 2, 1, 0
};
s16 lbl_1_data_388[92] = { 0, 1, -1, 2, 0, -1, 1, 2, 0, -1, 2, 1, 0, 2, -1, 1, 0, 2, 1, -1, 1, 2, -1, 0, 1, 2, 0, -1, 1, -1, 0, 2, 1, -1, 2, 0, 1, 0,
2, -1, 1, 0, -1, 2, 2, -1, 0, 1, 2, -1, 1, 0, 2, 0, 1, -1, 2, 0, -1, 1, 2, 1, -1, 0, 2, 1, 0, -1, -1, 0, 1, 2, -1, 0, 2, 1, -1, 1, 2, 0, -1, 1, 0,
2, -1, 2, 0, 1, -1, 2, 1, 0 };
f32 lbl_1_data_440[3] = {-90.0f, 0.0f, 90.0f};
f32 lbl_1_data_440[3] = { -90.0f, 0.0f, 90.0f };
void fn_1_74D0(s16 arg0[3]) {
void fn_1_74D0(s16 arg0[3])
{
f32 temp_f31;
s32 var_r31;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
lbl_1_bss_B0[var_r31] = arg0[var_r31];
}
for (var_r31 = 0; var_r31 < 3; var_r31++) {
lbl_1_bss_A4[var_r31] = BoardModelCreate(lbl_1_data_350[lbl_1_bss_B0[var_r31]], NULL, 0);
if (lbl_1_bss_B0[var_r31] == 0xB) {
@ -214,12 +220,12 @@ void fn_1_74D0(s16 arg0[3]) {
}
for (var_r31 = 0; var_r31 < 3; var_r31++) {
lbl_1_bss_AA[var_r31] = BoardModelCreate(0x790012, NULL, 1);
lbl_1_bss_AA[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x12), NULL, 1);
BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]);
BoardModelAttrSet(lbl_1_bss_AA[var_r31], 0x40000002);
BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f);
}
HuAudFXPlay(0x488);
BoardModelMotionTimeSet(lbl_1_bss_14[0], 0.0f);
BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0, 0x1E);
@ -227,7 +233,8 @@ void fn_1_74D0(s16 arg0[3]) {
HuPrcCreate(fn_1_7400, 0x2004, 0x1000, 0);
}
void fn_1_77B0(void) {
void fn_1_77B0(void)
{
HuAudFXPlay(0x489);
BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0x5A, 0x78);
BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f);
@ -243,7 +250,8 @@ void fn_1_77B0(void) {
}
}
void fn_1_78A0(omObjData* arg0) {
void fn_1_78A0(omObjData *arg0)
{
if (arg0->work[0] == 0) {
arg0->work[0] = MGSeqCreate(3, 0);
return;
@ -254,7 +262,8 @@ void fn_1_78A0(omObjData* arg0) {
}
}
void fn_1_7928(omObjData* arg0) {
void fn_1_7928(omObjData *arg0)
{
Process *temp;
if (((u32)lbl_1_bss_98->user_data & 0x10) != 0) {
temp = HuPrcCreate(fn_1_799C, 0x2004, 0x1800, 0);
@ -263,7 +272,8 @@ void fn_1_7928(omObjData* arg0) {
}
}
void fn_1_799C(void) {
void fn_1_799C(void)
{
Vec sp2C;
Vec sp20;
Vec sp14;
@ -275,7 +285,7 @@ void fn_1_799C(void) {
s32 temp_r31;
s32 var_r28;
s32 var_r29;
omObjData* temp_r30;
omObjData *temp_r30;
temp_r30 = HuPrcCurrentGet()->user_data;
BoardPlayerPosGet(lbl_1_bss_B6, &sp2C);
@ -285,7 +295,7 @@ void fn_1_799C(void) {
PSVECSubtract(&sp2C, &sp20, &sp14);
temp_f30 = PSVECMag(&sp14);
PSVECScale(&sp14, &sp14, 0.016666668);
for (var_r29 = 0; var_r29 < 0x3C; var_r29++) {
BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20);
PSVECAdd(&sp20, &sp14, &sp20);
@ -344,7 +354,7 @@ void fn_1_799C(void) {
HuPrcVSleep();
}
HuPrcSleep(0x1E);
while (HuAudSStreamStatGet(temp_r27) != 0) {
HuPrcVSleep();
}
@ -356,13 +366,15 @@ void fn_1_799C(void) {
HuPrcEnd();
}
void fn_1_7E4C(omObjData* arg0) {
void fn_1_7E4C(omObjData *arg0)
{
lbl_1_bss_9C = 1;
BoardMGExit();
omDelObjEx(boardObjMan, arg0);
}
void fn_1_7E94(dataCopy* arg0) {
void fn_1_7E94(dataCopy *arg0)
{
if (--arg0->unk_02 == 0) {
arg0->unk_02 = 0x3C;
if (--arg0->unk_00 >= 0) {
@ -371,19 +383,20 @@ void fn_1_7E94(dataCopy* arg0) {
}
}
void fn_1_7F04(omObjData* arg0) {
void fn_1_7F04(omObjData *arg0)
{
f32 sp8[2];
s32 var_r30;
s32 var_r28;
dataCopy* temp_r31;
dataCopy *temp_r31;
temp_r31 = arg0->data;
temp_r31->unk_00 = 5;
temp_r31->unk_02 = 0x3C;
temp_r31->unk_04 = MGSeqCreate(1, temp_r31->unk_00, 0x120, 0x40);
HuWinMesMaxSizeGet(1, sp8, 0x27000E);
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x27, 0x0E));
temp_r31->unk_06 = HuWinCreate(-10000.0f, 344.0f, sp8[0], sp8[1], 0);
HuWinMesSet(temp_r31->unk_06, 0x27000E);
HuWinMesSet(temp_r31->unk_06, MAKE_MESSID(0x27, 0x0E));
HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f);
HuWinMesSpeedSet(temp_r31->unk_06, 0);
temp_r31->unk_08 = 1;
@ -409,26 +422,28 @@ void fn_1_7F04(omObjData* arg0) {
arg0->func = fn_1_80D8;
}
void fn_1_80D8(omObjData* arg0) {
void fn_1_80D8(omObjData *arg0)
{
s32 sp10;
s32 spC;
s32 sp8;
f32 var_f31;
s32 temp_r30;
s32 var_r29;
dataCopy* temp_r31;
dataCopy *temp_r31;
temp_r31 = arg0->data;
fn_1_7E94(temp_r31);
temp_r30 = GWPlayer[lbl_1_bss_B6].port;
if (GWPlayer[lbl_1_bss_B6].com != 0) {
fn_1_8798(temp_r31, &sp10, &spC, &sp8);
} else {
}
else {
sp10 = HuPadStkX[temp_r30];
spC = HuPadStkY[temp_r30];
sp8 = HuPadBtnDown[temp_r30];
}
if (((sp8 & 0x100) != 0) || (temp_r31->unk_00 < 0)) {
MGSeqParamSet(temp_r31->unk_04, 2, -1);
HuWinKill(temp_r31->unk_06);
@ -442,12 +457,14 @@ void fn_1_80D8(omObjData* arg0) {
if (var_f31 < 0.0f) {
var_f31 += 360.0f;
}
if ((var_f31 > 170.0f) && (var_f31 < 190.0f)) {
var_r29 = 0;
} else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) {
}
else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) {
var_r29 = 1;
} else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) {
}
else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) {
var_r29 = 2;
}
if (var_r29 != -1) {
@ -457,9 +474,10 @@ void fn_1_80D8(omObjData* arg0) {
}
}
void fn_1_8410(omObjData* arg0) {
void fn_1_8410(omObjData *arg0)
{
s32 temp_r30;
dataCopy* temp_r31;
dataCopy *temp_r31;
temp_r31 = arg0->data;
if (BoardPlayerMotionTimeGet(lbl_1_bss_B6) >= 30.0f) {
@ -470,13 +488,14 @@ void fn_1_8410(omObjData* arg0) {
temp_r30 |= 0x1C0;
lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x4000, 0);
HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC);
lbl_1_bss_98->user_data = (void*)temp_r30;
lbl_1_bss_98->user_data = (void *)temp_r30;
lbl_1_bss_8C->work[0] = temp_r31->unk_08;
arg0->func = fn_1_850C;
}
}
void fn_1_850C(omObjData* arg0) {
void fn_1_850C(omObjData *arg0)
{
Vec sp14;
Vec sp8;
f32 temp_f31;
@ -495,7 +514,8 @@ void fn_1_850C(omObjData* arg0) {
}
}
void fn_1_8668(omObjData* arg0) {
void fn_1_8668(omObjData *arg0)
{
s32 var_r30;
if (arg0->work[0] == 0) {
@ -504,7 +524,7 @@ void fn_1_8668(omObjData* arg0) {
arg0->func = NULL;
lbl_1_bss_8C->func = fn_1_7928;
BoardModelKill(lbl_1_bss_A2);
for (var_r30 = 0; var_r30 < 2; var_r30++) {
BoardPlayerMotionKill(lbl_1_bss_B6, lbl_1_bss_9E[var_r30]);
}
@ -513,7 +533,8 @@ void fn_1_8668(omObjData* arg0) {
arg0->work[0] -= 1;
}
void fn_1_8798(dataCopy* arg0, s32* arg1, s32* arg2, s32* arg3) {
void fn_1_8798(dataCopy *arg0, s32 *arg1, s32 *arg2, s32 *arg3)
{
*arg1 = *arg2 = *arg3 = 0;
if (arg0->unk_10 != 0) {
arg0->unk_10 -= 1;
@ -532,17 +553,19 @@ void fn_1_8798(dataCopy* arg0, s32* arg1, s32* arg2, s32* arg3) {
*arg2 = (frandBool() * 0x8C) - 0x46;
}
void* fn_1_8884(void) {
void *fn_1_8884(void)
{
if (lbl_1_bss_98 == NULL) {
return NULL;
}
return lbl_1_bss_98->user_data;
}
void fn_1_88B8(void) {
void fn_1_88B8(void)
{
s32 userData = (s32)lbl_1_bss_98->user_data;
userData |= 8;
lbl_1_bss_98->user_data = (void* ) (userData);
lbl_1_bss_98->user_data = (void *)(userData);
while (((u32)fn_1_8884() & 0x20) == 0) {
HuPrcVSleep();
@ -551,7 +574,8 @@ void fn_1_88B8(void) {
lbl_1_bss_98 = NULL;
}
void fn_1_896C(void) {
void fn_1_896C(void)
{
Vec sp18;
Vec spC;
f32 sp8;
@ -565,7 +589,7 @@ void fn_1_896C(void) {
ParticleData *var_r27;
temp_r30 = (u32)HuPrcCurrentGet()->user_data;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
var_r29 = (1 << var_r31);
if ((temp_r30 & var_r29) != 0) {
@ -573,7 +597,8 @@ void fn_1_896C(void) {
if ((temp_r30 & 0x80) != 0) {
BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0, 0x28);
BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 0.0f);
} else {
}
else {
BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0xA, 0x28);
BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f);
}
@ -581,11 +606,12 @@ void fn_1_896C(void) {
}
if ((temp_r30 & 0x80) != 0) {
HuPrcSleep(0x19);
} else {
}
else {
HuPrcSleep(0xF);
}
spC.x = spC.y = spC.z = 0.0f;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
var_r29 = (1 << var_r31);
if ((temp_r30 & var_r29) != 0) {
@ -606,7 +632,8 @@ void fn_1_896C(void) {
if ((temp_r30 & 0x100) != 0) {
lbl_1_bss_88 = HuAudFXPlay(0x35F);
HuAudFXPlay(0x310);
} else {
}
else {
HuAudFXPlay(0x362);
}
}
@ -614,7 +641,7 @@ void fn_1_896C(void) {
temp_f29 = 150.0f + sp18.y;
sp8 = 0.0f;
var_f31 = 12.0f;
while (1) {
for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) {
var_r29 = (1 << var_r31);
@ -626,7 +653,7 @@ void fn_1_896C(void) {
}
spC.x = spC.y = spC.z = sp8;
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //!
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec *)&sp8); //!
BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18);
sp18.y += var_f31;
if (sp18.y >= temp_f29) {
@ -639,7 +666,8 @@ void fn_1_896C(void) {
var_f31 *= 0.95f;
if (var_r28 > 0) {
HuPrcVSleep();
} else {
}
else {
break;
}
}
@ -650,12 +678,12 @@ void fn_1_896C(void) {
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], &spC);
}
}
temp_r30 = (u32) HuPrcCurrentGet()->user_data | 0x10;
HuPrcCurrentGet()->user_data = (void*)temp_r30;
temp_r30 = (u32)HuPrcCurrentGet()->user_data | 0x10;
HuPrcCurrentGet()->user_data = (void *)temp_r30;
var_f30 = 0.0f;
while (1) {
temp_r30 = (u32) HuPrcCurrentGet()->user_data;
temp_r30 = (u32)HuPrcCurrentGet()->user_data;
if ((temp_r30 & 8) == 0) {
for (var_r31 = 0; var_r31 < 3; var_r31++) {
var_r29 = (1 << var_r31);
@ -670,7 +698,8 @@ void fn_1_896C(void) {
var_f30 -= 360.0f;
}
HuPrcVSleep();
} else {
}
else {
break;
}
}
@ -689,7 +718,7 @@ void fn_1_896C(void) {
sp8 = 0.0f;
}
spC.x = spC.y = spC.z = sp8;
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //!
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec *)&sp8); //!
BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18);
sp18.y += var_f31;
if (sp18.y <= (temp_f29 - 150.0f)) {
@ -704,11 +733,12 @@ void fn_1_896C(void) {
var_f31 *= 0.98f;
if (var_r28 > 0) {
HuPrcVSleep();
} else {
}
else {
break;
}
}
for (var_r31 = 0; var_r31 < 3; var_r31++) {
var_r29 = (1 << var_r31);
if ((temp_r30 & var_r29) != 0) {
@ -719,13 +749,14 @@ void fn_1_896C(void) {
}
temp_r30 = (u32)HuPrcCurrentGet()->user_data;
temp_r30 |= 0x20;
HuPrcCurrentGet()->user_data = (void*)temp_r30;
HuPrcCurrentGet()->user_data = (void *)temp_r30;
while (1) {
HuPrcVSleep();
}
}
void fn_1_91DC(void) {
void fn_1_91DC(void)
{
u32 temp_r30;
s32 var_r29;
s32 var_r31;
@ -741,9 +772,10 @@ void fn_1_91DC(void) {
}
}
void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
void fn_1_9268(ModelData *model, ParticleData *particle, f32 (*matrix)[4])
{
Vec sp8;
HsfanimStruct01* var_r31;
HsfanimStruct01 *var_r31;
f32 temp_f30;
f32 temp_f29;
f32 temp_f31;
@ -761,12 +793,13 @@ void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
BoardModelScaleGet(particle->unk_02, &sp8);
temp_f31 = sp8.x;
BoardModelPosGet(particle->unk_02, &sp8);
for (var_r29 = 0; var_r29 < 0x16; var_r29++) {
var_r31 = particle->unk_48;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk2C == 0.0f) break;
if (var_r31->unk2C == 0.0f)
break;
}
if (var_r28 != particle->unk_30) {
temp_f30 = 360.0f * (0.003921569f * (s32)(frand() & 0xFF));
@ -790,4 +823,4 @@ void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
}
}
}
}
}

View file

@ -7,7 +7,7 @@
#include "game/board/player.h"
// data
s32 lbl_1_data_1A8[3] = { 0x0079001F, 0x00790020, 0xFFFFFFFF };
s32 lbl_1_data_1A8[3] = { DATA_MAKE_NUM(DATADIR_W05, 0x1F), DATA_MAKE_NUM(DATADIR_W05, 0x20), DATA_NUM_LISTEND };
char *lbl_1_data_1C4[2] = { "monkyA", "monkyB"};
s32 lbl_1_data_1CC[3] = { 0x78, 0x6F, 0x70 };
@ -29,7 +29,7 @@ void fn_1_2B40(void) {
BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f);
for (var_r31 = 0; var_r31 < 2; var_r31++) {
lbl_1_bss_4E[var_r31] = BoardModelCreate(0x79001E, lbl_1_data_1A8, 0);
lbl_1_bss_4E[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1E), lbl_1_data_1A8, 0);
BoardModelAttrSet(lbl_1_bss_4E[var_r31], 0x40000001);
}
BoardModelHookSet(lbl_1_bss_14[2], lbl_1_data_1C4[0], lbl_1_bss_4E[0]);
@ -53,8 +53,8 @@ void fn_1_2C7C(s32 arg0) {
BoardModelPosGet(lbl_1_bss_4A, &lbl_1_bss_38);
lbl_1_bss_38.x -= 140.0f;
}
lbl_1_bss_44[0] = BoardModelCreate(0x79001C, NULL, 0);
lbl_1_bss_44[1] = BoardModelCreate(0x79001D, NULL, 0);
lbl_1_bss_44[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1C), NULL, 0);
lbl_1_bss_44[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1D), NULL, 0);
BoardModelVisibilitySet(lbl_1_bss_44[0], 0);
BoardModelVisibilitySet(lbl_1_bss_44[1], 0);
BoardModelAttrSet(lbl_1_bss_44[0], 0x40000001);

View file

@ -422,12 +422,12 @@ static void fn_1_9E5C(s32 arg0) {
HuAudFXPlay(0x51);
var_r30 = BoardPlayerCoinsGet(arg0);
if (var_r30 != 0) {
var_r29 = 0x300003;
var_r29 = MAKE_MESSID(48, 3);
var_r28 = -1;
var_r30 = BoardPlayerCoinsGet(arg0) - (var_r30 >> 1);
var_r25 = 8;
} else {
var_r29 = 0x300005;
var_r29 = MAKE_MESSID(48, 5);
var_r28 = 1;
var_r30 = 50;
var_r25 = 7;
@ -466,9 +466,9 @@ static void fn_1_9E5C(s32 arg0) {
HuPrcVSleep();
}
if (var_r28 == -1) {
var_r29 = 0x300004;
var_r29 = MAKE_MESSID(48, 4);
} else {
var_r29 = 0x300006;
var_r29 = MAKE_MESSID(48, 6);
}
BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0);
HuAudFXPlay(0x3A);
@ -801,7 +801,7 @@ static void fn_1_B27C(s32 arg0) {
BoardMusStart(1, 6, 0x7F, 0);
BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, 0);
HuPrcSleep(8);
var_r29 = 0x300026;
var_r29 = MAKE_MESSID(48, 38);
var_r27 = 50;
BoardWinCreate(2, var_r29, 5);
BoardWinWait();
@ -820,7 +820,7 @@ static void fn_1_B27C(s32 arg0) {
while (!BoardModelMotionEndCheck(lbl_1_data_498)) {
HuPrcVSleep();
}
var_r29 = 0x300027;
var_r29 = MAKE_MESSID(48, 39);
BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0);
HuAudFXPlay(0x3A);
BoardWinCreate(2, var_r29, 5);
@ -1222,7 +1222,7 @@ void fn_1_CD0C(void) {
while (!BoardViewMoveCheck()) {
HuPrcVSleep();
}
BoardWinCreate(3, 0x300001, -1);
BoardWinCreate(3, MAKE_MESSID(48, 1), -1);
BoardWinWait();
BoardWinKill();
}

View file

@ -134,9 +134,9 @@ void BoardCreate(void)
BoardBooHouseHostSet(boardBooHouseHostMdl);
BoardShopHostSet(boardShopHostMdl);
BoardLotteryHostSet(boardLotteryHostMdl);
HuWinMesMaxSizeGet(1, size, 0x2E003A);
HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x2E, 0x3A));
tutorialExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1);
HuWinMesSet(tutorialExitWin, 0x2E003A);
HuWinMesSet(tutorialExitWin, MAKE_MESSID(0x2E, 0x3A));
HuWinMesSpeedSet(tutorialExitWin, 0);
HuWinPriSet(tutorialExitWin, 1);
HuWinMesPalSet(tutorialExitWin, 7, 0, 0, 0);

View file

@ -17,14 +17,14 @@ s16 lbl_1_data_6 = 0xFFFF;
s16 lbl_1_data_8 = 0xFFFF;
s16 lbl_1_data_A = 0xFFFF;
s32 lbl_1_data_C[] = {
0x005F0000,
0x001A0000,
0x006D0000,
0x008A0000,
0x00850000,
0x00110000,
0x000D0000,
0x00810000,
DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00),
};
s32 unkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 42), -1 };
@ -50,12 +50,12 @@ void BoardCreate(void)
lbl_1_bss_0->unk_04 = 0;
lbl_1_bss_0->unk_06 = 0;
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W20, 0));
lbl_1_data_0 = BoardModelCreate(0x7C0001, NULL, 0);
lbl_1_data_0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W20, 0x01), NULL, 0);
fn_8006DDE8(lbl_1_data_0, -1.0f);
BoardModelPosSet(lbl_1_data_0, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_0, 0, 0x40000001);
BoardModelMotionSpeedSet(lbl_1_data_0, 1.0f);
lbl_1_data_2 = BoardModelCreate(0x7C0002, NULL, 0);
lbl_1_data_2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W20, 0x02), NULL, 0);
fn_8006DDE8(lbl_1_data_2, -1.0f);
BoardModelPosSet(lbl_1_data_2, 0.0f, 0.0f, 0.0f);
BoardModelMotionStart(lbl_1_data_2, 0, 0x40000001);

View file

@ -3,17 +3,56 @@
#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 };
0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x03), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x04), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x05),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x06), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x07), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x08),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x09), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0F),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x10), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x11), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x12),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x13), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x14), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x15),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x16), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x17), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x18),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x19), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1B),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1E),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1F), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x20), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x21),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x22), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x23), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x24),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x25), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x26), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x27),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x28), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0D),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x29), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2A),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2D),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2F), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x30),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x31), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x32), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x33),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x34), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x35), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x36),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x37), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x38), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x39),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3C),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3F),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x40), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x41), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x42),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B),
DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) };
s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1)
{

View file

@ -120,7 +120,7 @@ void fn_1_424(void)
var_r27 = 0;
fn_1_7D6C(lbl_1_bss_68);
HuPrcVSleep();
HuDataDirClose(0x640000);
HuDataDirClose(DATADIR_MPEX);
lbl_1_bss_5A = 0;
if (mgQuitExtraF != 0) {
mgQuitExtraF = 0;
@ -192,14 +192,14 @@ block_7:
}
loop_19:
fn_1_11020();
fn_1_11264(0x330024, 0, 0);
fn_1_11264(MAKE_MESSID(0x33, 0x24), 0, 0);
if (lbl_1_bss_5A == 0) {
fn_1_11264(0x330025, 0, 1);
fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1);
}
else {
fn_1_11264(0x33002A, 0, 1);
fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1);
}
fn_1_11708(0x33008D);
fn_1_11708(MAKE_MESSID(0x33, 0x8D));
for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) {
var_f31 = var_r31 / 10.0;
@ -226,10 +226,10 @@ loop_19:
HuPrcVSleep();
}
if (lbl_1_bss_5A == 0) {
fn_1_11264(0x330025, 0, 1);
fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1);
}
else {
fn_1_11264(0x33002A, 0, 1);
fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1);
}
}
}
@ -324,7 +324,7 @@ loop_19:
HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68);
}
fn_1_11020();
fn_1_11264(0x33002C, 0, 0);
fn_1_11264(MAKE_MESSID(0x33, 0x2C), 0, 0);
var_r30 = fn_1_11390(0);
if (var_r30 != -1) {
if (var_r30 != 1) {
@ -392,7 +392,7 @@ void fn_1_1774(void)
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);
var_r29 = MessData_MesPtrGet(messDataPtr, MAKE_MESSID(0x17, 0x21));
for (var_r26 = var_r29; *var_r29 != 0; var_r29++) {
if (*var_r29 == 0xA) {
*var_r29 = 0x10;
@ -588,11 +588,11 @@ void fn_1_2350(void)
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);
fn_1_11264(MAKE_MESSID(0x33, 0xA0), 0, 0);
if (GWMGAvailGet(var_r31 + 0x191) == 0) {
GWMGAvailSet(var_r31 + 0x191);
GWGameStat.present[0x37] = 1;
fn_1_11264(0x330029, 0, 0);
fn_1_11264(MAKE_MESSID(0x33, 0x29), 0, 0);
}
fn_1_111E0();
WipeCreate(2, 0, 0x1E);
@ -671,7 +671,7 @@ void fn_1_2350(void)
HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0);
HuPrcVSleep();
}
fn_1_114EC(0x33004F, 1);
fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1);
while (TRUE) {
if ((*HuPadBtnDown & 0x100) != 0) {
HuAudFXPlay(2);
@ -827,12 +827,12 @@ void fn_1_33B0(void)
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);
lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00));
lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03));
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);
lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48));
lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17));
lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18));
}
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);
@ -966,7 +966,7 @@ void fn_1_4374(void)
HuPrcVSleep();
}
}
fn_1_114EC(0x33004F, 1);
fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1);
while (TRUE) {
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
HuAudFXPlay(2);
@ -1058,9 +1058,9 @@ void fn_1_4948(void)
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);
lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00));
lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17));
lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18));
Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f);
}
else {
@ -1236,7 +1236,7 @@ s32 fn_1_524C(s32 arg0)
var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0);
HuWinMesSpeedSet(var_r24, 0);
HuWinBGTPLvlSet(var_r24, 0.0f);
HuWinMesSet(var_r24, 0x1A0020);
HuWinMesSet(var_r24, MAKE_MESSID(0x1A, 0x20));
var_r22 = &winData[var_r24];
HuWinPriSet(var_r24, 5);
HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f);
@ -1393,7 +1393,7 @@ void fn_1_66F8(void)
while (WipeStatGet() != 0) {
HuPrcVSleep();
}
HuDataDirClose(0x160000);
HuDataDirClose(DATADIR_INSTPIC);
while (lbl_1_bss_4 != 0) {
HuPrcVSleep();
}

View file

@ -77,24 +77,24 @@ 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,
DATADIR_MARIOMOT,
DATADIR_LUIGIMOT,
DATADIR_PEACHMOT,
DATADIR_YOSHIMOT,
DATADIR_WARIOMOT,
DATADIR_DONKEYMOT,
DATADIR_DAISYMOT,
DATADIR_WALUIGIMOT,
};
s32 lbl_1_data_3E8[8] = {
0x5E0000,
0x190000,
0x6C0000,
0x890000,
0x840000,
0x100000,
0xC0000,
0x800000,
DATADIR_MARIOMDL1,
DATADIR_LUIGIMDL1,
DATADIR_PEACHMDL1,
DATADIR_YOSHIMDL1,
DATADIR_WARIOMDL1,
DATADIR_DONKEYMDL1,
DATADIR_DAISYMDL1,
DATADIR_WALUIGIMDL1,
};
s32 lbl_1_bss_26C[0x1B];
@ -164,9 +164,9 @@ s32 fn_1_7E0C(s32 arg0)
var_r29 = -1;
fn_1_A610();
fn_1_11020();
fn_1_11264(0x1A0005, -1, -1);
fn_1_11264(MAKE_MESSID(0x1A, 0x05), -1, -1);
fn_1_10FBC(1);
fn_1_11708(0x330091);
fn_1_11708(MAKE_MESSID(0x33, 0x91));
lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_AEE4;
var_r29 = -1;
while (TRUE) {
@ -179,7 +179,7 @@ s32 fn_1_7E0C(s32 arg0)
}
if (var_r29 != var_r30) {
var_r29 = var_r30;
fn_1_11264(var_r30 + 0x1A001B, -1, 1);
fn_1_11264(var_r30 + MAKE_MESSID(0x1A, 0x1B), -1, 1);
}
if (lbl_1_bss_20C.unk_28 == 0) {
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
@ -253,12 +253,12 @@ s32 fn_1_8030(s32 arg0, s32 arg1)
fn_1_11020();
fn_1_10FBC(1);
if (arg1 == 1) {
fn_1_11264(0x1E005E, -1, -1);
fn_1_11264(MAKE_MESSID(0x1E, 0x5E), -1, -1);
}
else {
fn_1_11264(0x1A0009, -1, -1);
fn_1_11264(MAKE_MESSID(0x1A, 0x09), -1, -1);
}
fn_1_11708(0x330092);
fn_1_11708(MAKE_MESSID(0x33, 0x92));
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;
@ -352,15 +352,15 @@ s32 fn_1_8338(s32 arg0, s32 arg1)
}
}
if (var_r26 == -1) {
fn_1_11338(var_r25 + 0x1A0023, 1);
fn_1_11264(0x1A0028, -1, var_r26);
fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1);
fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26);
}
else {
fn_1_11338(var_r25 + 0x1A0023, 1);
fn_1_11264(0x1A0028, -1, var_r26);
fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1);
fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26);
}
var_r26 = 1;
fn_1_11708(0x330092);
fn_1_11708(MAKE_MESSID(0x33, 0x92));
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;
@ -389,9 +389,9 @@ s32 fn_1_8338(s32 arg0, s32 arg1)
}
}
lbl_1_bss_8C[var_r30].unk_04 = NULL;
fn_1_11264(0x1A0022, -1, 1);
fn_1_11264(MAKE_MESSID(0x1A, 0x22), -1, 1);
fn_1_10FBC(1);
fn_1_11708(0x330093);
fn_1_11708(MAKE_MESSID(0x33, 0x93));
var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]);
if (var_r29 == 1) {
HuAudFXPlay(2);
@ -470,9 +470,9 @@ s32 fn_1_88A4(void)
var_r26 = -1;
fn_1_A8E8();
fn_1_11020();
fn_1_11264(0x1A0005, -1, -1);
fn_1_11264(MAKE_MESSID(0x1A, 0x05), -1, -1);
fn_1_10FBC(1);
fn_1_11708(0x330091);
fn_1_11708(MAKE_MESSID(0x33, 0x91));
lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_B468;
while (TRUE) {
fn_1_10FBC(1);
@ -484,7 +484,7 @@ s32 fn_1_88A4(void)
}
if (var_r26 != var_r30) {
var_r26 = var_r30;
fn_1_11264(var_r30 + 0x330093, -1, 1);
fn_1_11264(var_r30 + MAKE_MESSID(0x33, 0x93), -1, 1);
}
if (lbl_1_bss_20C.unk_28 != 0) {
continue;
@ -581,8 +581,8 @@ s32 fn_1_8B94(s32 arg0)
}
fn_1_11020();
fn_1_10FBC(1);
fn_1_11264(0x1A0009, -1, -1);
fn_1_11708(0x330092);
fn_1_11264(MAKE_MESSID(0x1A, 0x09), -1, -1);
fn_1_11708(MAKE_MESSID(0x33, 0x92));
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;
@ -668,15 +668,15 @@ s32 fn_1_8E50(s32 arg0)
}
}
if (var_r26 == -1) {
fn_1_11338(var_r25 + 0x1A0023, 1);
fn_1_11264(0x1A0028, -1, var_r26);
fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1);
fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26);
}
else {
fn_1_11338(var_r25 + 0x1A0023, 1);
fn_1_11264(0x1A0028, -1, var_r26);
fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1);
fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26);
}
var_r26 = 1;
fn_1_11708(0x330092);
fn_1_11708(MAKE_MESSID(0x33, 0x92));
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;
@ -705,9 +705,9 @@ s32 fn_1_8E50(s32 arg0)
}
}
lbl_1_bss_8C[var_r30].unk_04 = NULL;
fn_1_11264(0x1A0022, -1, 1);
fn_1_11264(MAKE_MESSID(0x1A, 0x22), -1, 1);
fn_1_10FBC(1);
fn_1_11708(0x330093);
fn_1_11708(MAKE_MESSID(0x33, 0x93));
var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]);
if (var_r29 == 1) {
HuAudFXPlay(2);
@ -2947,7 +2947,7 @@ void fn_1_11020(void)
void fn_1_111E0(void)
{
if (lbl_1_data_66C != -1) {
HuWinMesSet(lbl_1_data_66C, 0x250004);
HuWinMesSet(lbl_1_data_66C, MAKE_MESSID(0x25, 0x04));
HuWinExAnimOut(lbl_1_data_66C);
HuWinExCleanup(lbl_1_data_66C);
lbl_1_data_66C = -1;
@ -2993,7 +2993,7 @@ s32 fn_1_11390(s32 arg0)
s32 var_r27;
s32 var_r26;
HuWinMesMaxSizeGet(1, spC, 0x1E0035);
HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x1E, 0x35));
var_r30 = spC[0];
var_r29 = spC[1];
var_r27 = 0x22C - var_r30;
@ -3003,9 +3003,9 @@ s32 fn_1_11390(s32 arg0)
HuWinMesPalSet(var_r31, 7, 0, 0, 0);
HuWinExAnimIn(var_r31);
HuWinMesSpeedSet(var_r31, 0);
HuWinMesSet(var_r31, 0x1E0035);
HuWinMesSet(var_r31, MAKE_MESSID(0x1E, 0x35));
var_r28 = HuWinChoiceGet(var_r31, arg0);
HuWinMesSet(var_r31, 0x250004);
HuWinMesSet(var_r31, MAKE_MESSID(0x25, 0x04));
HuWinExAnimOut(var_r31);
HuWinExCleanup(var_r31);

View file

@ -1,11 +1,11 @@
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/star.h"
#include "game/board/window.h"
#include "game/flag.h"
#include "game/objsub.h"
#include "game/process.h"
#include "game/board/main.h"
#include "game/board/player.h"
#include "game/board/model.h"
#include "game/board/star.h"
#include "game/board/window.h"
#include "math.h"
#define BLOCK_SPAWN 0
@ -21,7 +21,7 @@ typedef struct {
u8 opened : 1;
u8 unk00_field5 : 1;
};
s16 hit_y_velocity;
s16 target_y_pos;
} BlockWork;
@ -30,7 +30,7 @@ typedef struct {
struct {
u8 kill : 1;
};
u8 lifetime;
s8 model_index;
s16 model;
@ -38,19 +38,19 @@ typedef struct {
static void BlockProc(void);
static void DestroyBlock(void);
static void ExecBlockObj(omObjData* arg0);
static void ExecBlockObj(omObjData *arg0);
static void CreateBlockObj(s32 arg0);
static void DestroyBlockObj(BlockWork* unused0, omObjData* unused1);
static void SpawnBlock(BlockWork* arg0, omObjData* arg1);
static void HitBlock(BlockWork* arg0, omObjData* arg1);
static void OpenBlock(BlockWork* arg0, omObjData* arg1);
static void DestroyBlockObj(BlockWork *unused0, omObjData *unused1);
static void SpawnBlock(BlockWork *arg0, omObjData *arg1);
static void HitBlock(BlockWork *arg0, omObjData *arg1);
static void OpenBlock(BlockWork *arg0, omObjData *arg1);
static void SetBlockOpen(void);
static void SetBlockStop(void);
static void WaitBlockHit(void);
static void CreateCoinMdl(void);
static void KillCoinMdl(void);
static void PopupCoin(void);
static void PopupCoinExec(omObjData* arg0);
static void PopupCoinExec(omObjData *arg0);
extern s8 boardTutorialBlockF;
extern s8 boardTutorialBlockItem;
@ -62,37 +62,41 @@ static f32 rotMax;
static f32 scaleAngle;
static f32 rotY;
static omObjData* blockObj;
static Process* blockProc;
static omObjData *blockObj;
static Process *blockProc;
static s16 coinMdl[10] = { -1, -1, -1, -1 };
static s32 coinF[10];
s32 BoardBlockExec(s32 arg0) {
s32 BoardBlockExec(s32 arg0)
{
if (BoardPlayerSizeGet(arg0) == 2) {
return 0;
}
blockProc = HuPrcChildCreate(BlockProc, 0x2003, 0x3800U, 0, boardMainProc);
HuPrcDestructorSet2(blockProc, DestroyBlock);
while (blockProc != NULL) {
HuPrcVSleep();
}
return 0;
}
static void BlockProc(void) {
s32 sp14[8] = {0x005F0060, 0x001A0060, 0x006D0060, 0x008A0060, 0x00850060, 0x00110060, 0x000D0060, 0x00810060};
static void BlockProc(void)
{
s32 sp14[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x60), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x60),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x60), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x60),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x60), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x60) };
Point3d sp8;
s32 var_r28;
s32 i;
s32 player;
BlockWork* work;
s32* temp_r4;
BlockWork *work;
s32 *temp_r4;
s32 player_character;
player = GWSystem.player_curr;
player_character = GWPlayer[player].character;
@ -101,12 +105,12 @@ static void BlockProc(void) {
BoardPlayerMotBlendSet(player, 0, 0xF);
omVibrate(player, 12, 12, 0);
CreateBlockObj(player);
work = OM_GET_WORK_PTR(blockObj, BlockWork);
while (work->state != BLOCK_HIT) {
HuPrcVSleep();
}
BoardCameraViewSet(3);
BoardCameraMotionWait();
BoardWinCreate(0, 0x10000, -1);
@ -123,7 +127,7 @@ static void BlockProc(void) {
HuPrcVSleep();
}
BoardPlayerIdleSet(player);
if (work->contains_star != 0) {
SetBlockStop();
BoardModelPosGet(starMdl, &sp8);
@ -134,10 +138,11 @@ static void BlockProc(void) {
if (_CheckFlag(FLAG_ID_MAKE(1, 11)) == 0) {
BoardAudSeqPause(0, 0, 1000);
}
} else {
}
else {
for (i = 0; i < 0x14; i++) {
WaitBlockHit();
BoardPlayerMotionStart(player, (s32) jumpMot, 0);
BoardPlayerMotionStart(player, (s32)jumpMot, 0);
BoardPlayerMotionSpeedSet(player, 2);
while (BoardPlayerMotionTimeGet(player) < 4) {
HuPrcVSleep();
@ -152,29 +157,30 @@ static void BlockProc(void) {
HuAudFXPlay(7);
HuPrcVSleep();
}
SetBlockStop();
}
BoardWinCreate(0, work->contains_star != 0 ? MAKE_MESSID(1, 1) : MAKE_MESSID(1, 2), -1);
BoardWinWait();
BoardWinKill();
KillCoinMdl();
work->kill = 1;
BoardPlayerIdleSet((s32) player);
BoardPlayerIdleSet((s32)player);
HuPrcVSleep();
if ((_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) && work->contains_star == 0) {
BoardTutorialHookExec(0x16, 0);
}
BoardCameraViewSet(2);
BoardCameraMotionWait();
HuPrcEnd();
}
static void DestroyBlock(void) {
static void DestroyBlock(void)
{
if (jumpMot != -1) {
BoardPlayerMotionKill(GWSystem.player_curr, jumpMot);
jumpMot = -1;
@ -183,71 +189,74 @@ static void DestroyBlock(void) {
blockProc = 0;
}
static void CreateBlockObj(s32 arg0) {
static void CreateBlockObj(s32 arg0)
{
Point3d player_pos;
BlockWork* work;
BlockWork *work;
s8 contains_star;
BoardPlayerPosGet(arg0, &player_pos);
starMdl = BoardModelCreate(0x70004, NULL, 0);
starMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 4), NULL, 0);
BoardModelVisibilitySet(starMdl, 0);
BoardModelMotionSpeedSet(starMdl, 0);
BoardModelLayerSet(starMdl, 2U);
blockObj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, ExecBlockObj);
work = OM_GET_WORK_PTR(blockObj, BlockWork);
work->kill = 0;
work->unk00_field2 = 0;
work->opened = 0;
work->unk00_field5 = 0;
work->state = BLOCK_SPAWN;
blockObj->trans.x = player_pos.x;
blockObj->trans.y = 270 + player_pos.y;
blockObj->trans.z = player_pos.z;
blockObj->scale.x = blockObj->scale.y = blockObj->scale.z = 0.01;
blockObj->rot.x = blockObj->rot.y = blockObj->rot.z = 0.0;
scaleAngle = 0;
rotY = 0;
rotMax = 30;
BoardModelVisibilitySet(starMdl, 1);
if (BoardRandFloat() > 0.5f) {
contains_star = 0;
} else {
}
else {
contains_star = 1;
}
work->contains_star = contains_star;
if (boardTutorialBlockF != 0) {
work->contains_star = boardTutorialBlockItem;
boardTutorialBlockF = 0;
}
HuAudFXPlay(0x302);
if (work->contains_star == 0) {
CreateCoinMdl();
}
}
static void ExecBlockObj(omObjData* arg0) {
BlockWork* work;
static void ExecBlockObj(omObjData *arg0)
{
BlockWork *work;
work = OM_GET_WORK_PTR(arg0, BlockWork);
if (work->kill != 0 || BoardIsKill() != 0) {
DestroyBlockObj(work, arg0);
blockObj = 0;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
switch (work->state) {
case BLOCK_SPAWN:
SpawnBlock(work, arg0);
@ -259,30 +268,33 @@ static void ExecBlockObj(omObjData* arg0) {
OpenBlock(work, arg0);
break;
}
if (work->unk00_field5 != 0) {
BoardModelVisibilitySet(starMdl, 0);
}
BoardModelPosSet(starMdl, arg0->trans.x, arg0->trans.y, arg0->trans.z);
BoardModelRotSet(starMdl, arg0->rot.x, arg0->rot.y, arg0->rot.z);
BoardModelScaleSet(starMdl, arg0->scale.x, arg0->scale.y, arg0->scale.z);
}
static void DestroyBlockObj(BlockWork* unused0, omObjData* unused1) {
static void DestroyBlockObj(BlockWork *unused0, omObjData *unused1)
{
if (starMdl != -1) {
BoardModelKill(starMdl);
starMdl = -1;
}
}
static void SpawnBlock(BlockWork* arg0, omObjData* arg1) {
static void SpawnBlock(BlockWork *arg0, omObjData *arg1)
{
if (scaleAngle < 90.0f) {
scaleAngle += 3.75f;
if (scaleAngle > 90.0f) {
scaleAngle = 90.0f;
}
} else {
}
else {
rotMax *= 0.5f;
if (rotMax < 0.8f) {
rotY = 0.0f;
@ -291,31 +303,33 @@ static void SpawnBlock(BlockWork* arg0, omObjData* arg1) {
arg0->state = BLOCK_HIT;
}
}
if (rotY < 360.0f) {
rotY += rotMax;
if (rotY > 360.0f) {
rotY = 360.0f;
}
}
arg1->rot.y = rotY;
arg1->scale.x = arg1->scale.y = arg1->scale.z = sin(M_PI * scaleAngle / 180.0);
}
static void HitBlock(BlockWork* arg0, omObjData* arg1) {
static void HitBlock(BlockWork *arg0, omObjData *arg1)
{
float var_f30;
arg0->hit_y_velocity += 3;
if (arg0->hit_y_velocity > 0x168) {
arg0->hit_y_velocity -= 0x168;
}
OSs16tof32(&arg0->hit_y_velocity, &var_f30);
arg1->trans.y += 0.2f * sin((M_PI * var_f30) / 180.0);
}
static void OpenBlock(BlockWork* arg0, omObjData* arg1) {
static void OpenBlock(BlockWork *arg0, omObjData *arg1)
{
f32 target_y_pos;
if (arg0->opened == 0) {
@ -323,16 +337,17 @@ static void OpenBlock(BlockWork* arg0, omObjData* arg1) {
HuAudFXPlay(0x33B);
BoardModelMotionStart(starMdl, 0, 0);
}
if (arg0->unk00_field2 == 0) {
OSf32tos16(&arg1->trans.y, &arg0->target_y_pos);
arg1->trans.y += 80.0f;
arg0->unk00_field2 = 1;
} else {
}
else {
OSs16tof32(&arg0->target_y_pos, &target_y_pos);
arg1->trans.y += -8.0f;
if (arg1->trans.y < target_y_pos) {
arg1->trans.y = target_y_pos;
arg0->state = BLOCK_HIT;
@ -340,43 +355,48 @@ static void OpenBlock(BlockWork* arg0, omObjData* arg1) {
}
}
static void SetBlockOpen(void) {
BlockWork* work;
static void SetBlockOpen(void)
{
BlockWork *work;
work = OM_GET_WORK_PTR(blockObj, BlockWork);
work->state = BLOCK_OPEN;
}
static void SetBlockStop(void) {
BlockWork* work;
static void SetBlockStop(void)
{
BlockWork *work;
work = OM_GET_WORK_PTR(blockObj, BlockWork);
work->unk00_field5 = 1;
}
static void WaitBlockHit(void) {
BlockWork* work;
static void WaitBlockHit(void)
{
BlockWork *work;
work = OM_GET_WORK_PTR(blockObj, BlockWork);
while (work->state != BLOCK_HIT) {
HuPrcVSleep();
}
}
static void CreateCoinMdl(void) {
static void CreateCoinMdl(void)
{
s32 i;
for (i = 0; i < 10; i += 1) {
coinMdl[i] = BoardModelCreate(0x7000A, NULL, 1);
coinMdl[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1);
BoardModelVisibilitySet(coinMdl[i], 0);
coinF[i] = 0;
}
}
static void KillCoinMdl(void) {
static void KillCoinMdl(void)
{
s32 i;
for (i = 0; i < 0xA; i += 1) {
if (coinMdl[i] != -1) {
BoardModelKill(coinMdl[i]);
@ -386,77 +406,81 @@ static void KillCoinMdl(void) {
}
}
static inline s32 FindCoinModel(s16 *out_model) {
static inline s32 FindCoinModel(s16 *out_model)
{
s32 i;
for (i = 0; i < 10; i++) {
if (coinF[i] == 0) {
*out_model = coinMdl[i];
return i;
}
}
return -1;
}
static void PopupCoin(void) {
static void PopupCoin(void)
{
Point3d star_pos;
omObjData* coinObj;
omObjData *coinObj;
s32 model_index;
s16 model;
CoinWork* work;
CoinWork *work;
do {
HuPrcVSleep();
model_index = FindCoinModel(&model);
} while (model_index == -1);
coinObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, PopupCoinExec);
work = OM_GET_WORK_PTR(coinObj, CoinWork);
work->kill = 0;
work->lifetime = 10;
work->model = model;
work->model_index = model_index;
coinObj->trans.x = 15.0f;
coinObj->trans.y = 40.0f;
BoardModelPosGet(starMdl, &star_pos);
BoardModelPosSetV(work->model, &star_pos);
BoardModelVisibilitySet(work->model, 1);
}
static void PopupCoinExec(omObjData* obj) {
static void PopupCoinExec(omObjData *obj)
{
Point3d coin_pos;
Point3d coin_rot;
CoinWork* work;
CoinWork *work;
work = OM_GET_WORK_PTR(obj, CoinWork);
if (work->kill != 0 || BoardIsKill() != 0) {
BoardModelVisibilitySet(work->model, 0);
coinF[work->model_index] = 0;
omDelObjEx(HuPrcCurrentGet(), obj);
return;
}
if (work->lifetime != 0) {
work->lifetime -= 1;
} else {
}
else {
work->kill = 1;
return;
}
BoardModelPosGet(work->model, &coin_pos);
coin_pos.y += obj->trans.y;
BoardModelPosSetV(work->model, &coin_pos);
BoardModelRotGet(work->model, &coin_rot);
coin_rot.y += obj->trans.x;
if (coin_rot.y > 360.0f) {
coin_rot.y -= 360.0f;
}
BoardModelRotSetV(work->model, &coin_rot);
}

View file

@ -1,19 +1,18 @@
#include "game/board/boo_house.h"
#include "game/msm.h"
#include "game/hsfdraw.h"
#include "game/gamework_data.h"
#include "game/board/player.h"
#include "game/board/model.h"
#include "game/board/com.h"
#include "game/board/audio.h"
#include "game/board/boo.h"
#include "game/board/com.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/star.h"
#include "game/board/ui.h"
#include "game/board/view.h"
#include "game/board/audio.h"
#include "game/board/main.h"
#include "game/board/star.h"
#include "game/board/player.h"
#include "game/board/window.h"
#include "game/gamework_data.h"
#include "game/hsfdraw.h"
#include "game/msm.h"
#include "ext_math.h"
@ -22,34 +21,78 @@ static s16 houseMdl[6];
// data
static s32 hostMesTbl[6][6] = {
{ 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 },
{ 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 },
{ 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D },
{ 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 },
{ 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 },
{ 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F },
{
DATA_MAKE_NUM(DATADIR_BOARD, 0x0C),
DATA_MAKE_NUM(DATADIR_BOARD, 0x0D),
DATA_MAKE_NUM(DATADIR_BOARD, 0x0E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x0F),
DATA_MAKE_NUM(DATADIR_BOARD, 0x10),
DATA_MAKE_NUM(DATADIR_BOARD, 0x11),
},
{
DATA_MAKE_NUM(DATADIR_BOARD, 0x12),
DATA_MAKE_NUM(DATADIR_BOARD, 0x13),
DATA_MAKE_NUM(DATADIR_BOARD, 0x14),
DATA_MAKE_NUM(DATADIR_BOARD, 0x15),
DATA_MAKE_NUM(DATADIR_BOARD, 0x16),
DATA_MAKE_NUM(DATADIR_BOARD, 0x17),
},
{
DATA_MAKE_NUM(DATADIR_BOARD, 0x18),
DATA_MAKE_NUM(DATADIR_BOARD, 0x19),
DATA_MAKE_NUM(DATADIR_BOARD, 0x1A),
DATA_MAKE_NUM(DATADIR_BOARD, 0x1B),
DATA_MAKE_NUM(DATADIR_BOARD, 0x1C),
DATA_MAKE_NUM(DATADIR_BOARD, 0x1D),
},
{
DATA_MAKE_NUM(DATADIR_BOARD, 0x1E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x1F),
DATA_MAKE_NUM(DATADIR_BOARD, 0x20),
DATA_MAKE_NUM(DATADIR_BOARD, 0x21),
DATA_MAKE_NUM(DATADIR_BOARD, 0x22),
DATA_MAKE_NUM(DATADIR_BOARD, 0x23),
},
{
DATA_MAKE_NUM(DATADIR_BOARD, 0x24),
DATA_MAKE_NUM(DATADIR_BOARD, 0x25),
DATA_MAKE_NUM(DATADIR_BOARD, 0x26),
DATA_MAKE_NUM(DATADIR_BOARD, 0x27),
DATA_MAKE_NUM(DATADIR_BOARD, 0x28),
DATA_MAKE_NUM(DATADIR_BOARD, 0x29),
},
{
DATA_MAKE_NUM(DATADIR_BOARD, 0x2A),
DATA_MAKE_NUM(DATADIR_BOARD, 0x2B),
DATA_MAKE_NUM(DATADIR_BOARD, 0x2C),
DATA_MAKE_NUM(DATADIR_BOARD, 0x2D),
DATA_MAKE_NUM(DATADIR_BOARD, 0x2E),
DATA_MAKE_NUM(DATADIR_BOARD, 0x2F),
},
};
static BoardModelParam houseMdlTbl[6] = {
{ 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF },
{ 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF },
{ 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF },
{ 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF },
{ 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF },
{ 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
{ DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x00), { 0, 1, 0, 0, 0 }, 0xFFFF },
{ DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x01), { 1, 1, 0, 0, 0 }, 0xFFFF },
{ DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x03), { 1, 1, 0, 0, 0 }, 0xFFFF },
{ DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x04), { 1, 1, 0, 0, 0 }, 0xFFFF },
{ DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x04), { 1, 1, 0, 0, 0 }, 0xFFFF },
{ DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x07), { 0, 1, 0, 0, 0 }, 0xFFFF },
};
static s32 booMotTbl[3] = {
0x20013, 0x20016, 0xFFFFFFFF
DATA_MAKE_NUM(DATADIR_BGUEST, 0x13),
DATA_MAKE_NUM(DATADIR_BGUEST, 0x16),
DATA_NUM_LISTEND,
};
static s32 houseMotTbl[9][3] = {
{ 0x20001, 0x20003, 0x20004 },
{ 0x20009, 0x2000B, 0x2000C },
{ 0x2000E, 0x20010, 0x20011 },
{ 0x20018, 0x2001A, 0x2001B },
{ 0x2001D, 0x2001F, 0x20020 },
{ 0x20022, 0x20024, 0x20025 },
{ 0x20018, 0x2001A, 0x2001B },
{ 0x20001, 0x20003, 0x20004 },
{ 0x20001, 0x20003, 0x20004 }
static s32 hostMotTbl[9][3] = {
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x0E), DATA_MAKE_NUM(DATADIR_BGUEST, 0x10), DATA_MAKE_NUM(DATADIR_BGUEST, 0x11) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x1D), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1F), DATA_MAKE_NUM(DATADIR_BGUEST, 0x20) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x22), DATA_MAKE_NUM(DATADIR_BGUEST, 0x24), DATA_MAKE_NUM(DATADIR_BGUEST, 0x25) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) },
{ DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) },
};
// sbss
@ -58,16 +101,16 @@ static s8 stealTarget;
static s8 comStarStealTarget;
static s32 comCoinStealTarget;
static s8 stealAmountStr[8];
static Process* houseProc;
static Process *houseProc;
// sdata
static s16 houseShowMot = 0xFFFF;
static s16 houseHideMot = 0xFFFF;
static s16 ballMdl = 0xFFFF;
static s16 booMdl = 0xFFFF;
static s16 lbl_801D37F8 = 0xFFFF;
static s16 smokeMdl = 0xFFFF;
static s16 hostMdl = 0xFFFF;
static s16 houseMot[3] = { 0xFFFF, 0xFFFF, 0xFFFF };
static s16 hostMot[3] = { 0xFFFF, 0xFFFF, 0xFFFF };
// determined functions
static void ExecBooHouse(void);
@ -87,15 +130,18 @@ static void ApplyBooLight(void);
static void SetBooBallPos(void);
// FUNCTIONS //
void BoardBooHouseHostSet(s16 arg0) {
void BoardBooHouseHostSet(s16 arg0)
{
hostMdl = arg0;
}
s16 BoardBooHouseHostGet(void) {
s16 BoardBooHouseHostGet(void)
{
return hostMdl;
}
void BoardBooHouseCreate(void) {
void BoardBooHouseCreate(void)
{
Vec sp14;
Vec sp8;
@ -107,17 +153,19 @@ void BoardBooHouseCreate(void) {
if (hostMdl != -1) {
BoardModelVisibilitySet(hostMdl, 0);
}
HuDataDirClose(0x90000);
HuDataDirClose(DATADIR_BYOKODORI);
}
void BoardBooHouseKill(void) {
void BoardBooHouseKill(void)
{
if (houseMdl[0] != -1) {
BoardModelKill(houseMdl[0]);
houseMdl[0] = -1;
}
}
void BoardBooHouseExec(s32 arg0) {
void BoardBooHouseExec(s32 arg0)
{
currPlayer = arg0;
if (BoardPlayerSizeGet(currPlayer) != 2) {
BoardRollDispSet(0);
@ -130,7 +178,8 @@ void BoardBooHouseExec(s32 arg0) {
}
}
static void ExecBooHouse(void) {
static void ExecBooHouse(void)
{
Vec sp38;
Vec sp2C;
Vec sp20;
@ -145,7 +194,7 @@ static void ExecBooHouse(void) {
s32 var_r26;
_SetFlag(0x10018);
var_r28 = BoardDataDirReadAsync(0x90000);
var_r28 = BoardDataDirReadAsync(DATADIR_BYOKODORI);
var_r30 = GWPlayer[currPlayer].space_curr;
BoardPlayerIdleSet(currPlayer);
if (BoardPlayerCoinsGet(currPlayer) < 5) {
@ -159,7 +208,8 @@ static void ExecBooHouse(void) {
if (GWPlayer[currPlayer].com != 0) {
if (BoardBooComUseCheck(currPlayer) != 0) {
BoardComKeySetLeft();
} else {
}
else {
BoardComKeySetRight();
}
}
@ -168,13 +218,13 @@ static void ExecBooHouse(void) {
BoardDataAsyncWait(var_r28);
HuPrcEnd();
}
for (var_r26 = var_r31 = 0; var_r31 < 4; var_r31++) {
if (currPlayer != var_r31) {
var_r26 += GWStarsGet(var_r31);
}
}
for (var_r27 = var_r31 = 0; var_r31 < 4; var_r31++) {
if (currPlayer != var_r31) {
var_r27 += BoardPlayerCoinsGet(var_r31);
@ -203,7 +253,7 @@ static void ExecBooHouse(void) {
BoardPlayerMoveBetween(currPlayer, var_r30, temp_r29);
BoardPlayerIdleSet(currPlayer);
BoardMusStart(1, 1, 0x7F, 0);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[0], 0.0f, 10.0f, 0x40000001);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001);
BoardWinCreate(2, hostMesTbl[GWBoardGet()][0], BoardWinPortraitGet());
BoardWinWait();
@ -245,7 +295,7 @@ repeatWindowView:
BoardStatusShowSet(currPlayer, 0);
HuPrcVSleep();
}
BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[1], 0.0f, 10.0f, 0x40000001);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001);
CloseBooHouse();
BoardCameraViewSet(1);
BoardCameraRotSet(0.0f, 0.0f);
@ -259,13 +309,14 @@ repeatWindowView:
HuPrcEnd();
}
static void DestroyBooHouse(void) {
static void DestroyBooHouse(void)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
if (houseMot[var_r31] != -1) {
BoardModelMotionKill(BoardBooHouseHostGet(), houseMot[var_r31]);
houseMot[var_r31] = -1;
if (hostMot[var_r31] != -1) {
BoardModelMotionKill(BoardBooHouseHostGet(), hostMot[var_r31]);
hostMot[var_r31] = -1;
}
}
if (houseShowMot != -1) {
@ -278,12 +329,13 @@ static void DestroyBooHouse(void) {
}
BoardWinKill();
KillBooHouseModel();
HuDataDirClose(0x90000);
HuDataDirClose(DATADIR_BYOKODORI);
_ClearFlag(0x10018);
houseProc = 0;
}
static void PickComStealType(s32 arg0) {
static void PickComStealType(s32 arg0)
{
s32 var_r31;
s32 var_r30;
s32 var_r28;
@ -297,10 +349,11 @@ static void PickComStealType(s32 arg0) {
}
if (BoardPlayerCoinsGet(arg0) >= 0x32) {
for (var_r31 = 0; var_r31 < 4; var_r31++) {
if ((var_r31 != arg0) && (GWStarsGet(var_r31) != 0) && (((s32) GWSystem.team == 0) || (var_r31 != BoardPlayerSameTeamFind(arg0)))) {
if ((var_r31 != arg0) && (GWStarsGet(var_r31) != 0) && (((s32)GWSystem.team == 0) || (var_r31 != BoardPlayerSameTeamFind(arg0)))) {
if (var_r30 != 0) {
BoardComKeySetDown();
} else {
}
else {
BoardComKeySetUp();
}
return;
@ -310,7 +363,8 @@ static void PickComStealType(s32 arg0) {
BoardComKeySetUp();
}
static void OpenBooHouse(void) {
static void OpenBooHouse(void)
{
s16 temp_r31;
s32 temp_r5;
s32 var_r30;
@ -318,11 +372,11 @@ static void OpenBooHouse(void) {
ballMdl = BoardBooCreate(currPlayer, 0);
temp_r31 = BoardBooHouseHostGet();
BoardModelMotionStart(temp_r31, 1, 0x40000001);
for (var_r30 = 0; var_r30 < 3; var_r30++) {
houseMot[var_r30] = BoardModelMotionCreate(temp_r31, houseMotTbl[GWBoardGet()][var_r30]);
hostMot[var_r30] = BoardModelMotionCreate(temp_r31, hostMotTbl[GWBoardGet()][var_r30]);
}
BoardModelMotionStart(temp_r31, houseMot[0], 0x40000001);
BoardModelMotionStart(temp_r31, hostMot[0], 0x40000001);
BoardModelVisibilitySet(temp_r31, 1);
HuAudFXPlay(0x337);
HuAudFXPlay(0x344);
@ -337,7 +391,8 @@ static void OpenBooHouse(void) {
BoardModelHookSet(houseMdl[0], "yoko06", temp_r31);
if (GWBoardGet() == BOARD_ID_MAIN6) {
BoardModelPosSet(temp_r31, 0.0f, 0.0f, -25.0f);
} else {
}
else {
BoardModelPosSet(temp_r31, 0.0f, 0.0f, 0.0f);
}
BoardModelMotionStart(houseMdl[3], 0, 0x40000001);
@ -346,9 +401,9 @@ static void OpenBooHouse(void) {
BoardModelMotionStart(booMdl, 1, 0x40000001);
BoardModelVisibilitySet(booMdl, 1);
BoardModelHookSet(houseMdl[0], "yoko8", booMdl);
lbl_801D37F8 = BoardModelCreate(0x90008, NULL, 0);
BoardModelVisibilitySet(lbl_801D37F8, 0);
BoardModelLayerSet(lbl_801D37F8, 2);
smokeMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x08), NULL, 0);
BoardModelVisibilitySet(smokeMdl, 0);
BoardModelLayerSet(smokeMdl, 2);
BoardModelMotionStart(houseMdl[1], 0, 0x40000001);
while (BoardModelMotionTimeGet(houseMdl[0]) < 90.0f) {
@ -358,16 +413,17 @@ static void OpenBooHouse(void) {
BoardModelMotionShiftSet(houseMdl[1], houseHideMot, 0.0f, 10.0f, 0x40000001);
BoardModelHookObjReset(houseMdl[0], "yoko02");
SetBooBallPos();
BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[2], 0.0f, 10.0f, 0);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[2], 0.0f, 10.0f, 0);
}
static void CloseBooHouse(void) {
static void CloseBooHouse(void)
{
BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f);
BoardModelHookSet(houseMdl[0], "yoko02", ballMdl);
BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0);
BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, 0);
HuPrcSleep(0xA);
while (BoardModelMotionShiftIDGet(houseMdl[0]) != -1) {
HuPrcVSleep();
}
@ -376,7 +432,7 @@ static void CloseBooHouse(void) {
}
HuAudFXPlay(0x336);
BoardAudSeqFadeOut(1, 0x3E8);
while (BoardModelMotionEndCheck(houseMdl[0]) == 0) {
HuPrcVSleep();
}
@ -385,7 +441,8 @@ static void CloseBooHouse(void) {
ballMdl = -1;
}
static void CreateBooHouseModel(void) {
static void CreateBooHouseModel(void)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 6; var_r31++) {
@ -393,11 +450,12 @@ static void CreateBooHouseModel(void) {
houseMdl[var_r31] = BoardModelCreateParam(&houseMdlTbl[var_r31], 0, 0);
}
}
houseShowMot = BoardModelMotionCreate(houseMdl[0], 0x90009);
houseHideMot = BoardModelMotionCreate(houseMdl[1], 0x9000A);
houseShowMot = BoardModelMotionCreate(houseMdl[0], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x09));
houseHideMot = BoardModelMotionCreate(houseMdl[1], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x0A));
}
static void KillBooHouseModel(void) {
static void KillBooHouseModel(void)
{
s32 temp_r4;
s32 var_r31;
@ -411,28 +469,29 @@ static void KillBooHouseModel(void) {
BoardModelKill(booMdl);
booMdl = -1;
}
if (lbl_801D37F8 != -1) {
BoardModelKill(lbl_801D37F8);
lbl_801D37F8 = -1;
if (smokeMdl != -1) {
BoardModelKill(smokeMdl);
smokeMdl = -1;
}
BoardModelVisibilitySet(BoardBooHouseHostGet(), 0);
}
static void ExecNullSteal(void) {
static void ExecNullSteal(void)
{
HuAudFXPlay(0x4C);
BoardWinCreate(2, hostMesTbl[GWBoardGet()][5], BoardWinPortraitGet());
BoardWinWait();
BoardWinKill();
}
static void ExecStarSteal(void) {
static void ExecStarSteal(void)
{
Vec sp14;
Vec sp8;
s32 temp_r29;
s32 var_r30;
s32 var_r31;
for (var_r30 = 0; var_r30 < 0x32; var_r30++) {
BoardPlayerCoinsAdd(currPlayer, -1);
HuAudFXPlay(0xE);
@ -444,16 +503,16 @@ static void ExecStarSteal(void) {
BoardWinWait();
BoardWinKill();
BoardStatusShowSetAll(0);
while (BoardPickerDoneCheck() == 0) {
HuPrcVSleep();
}
HuAudFXPlay(0x4C);
Hu3DModelObjPosGet(BoardModelIDGet(houseMdl[0]), "yoko8", &sp14);
sp14.y += 20.0f;
BoardModelMotionStart(lbl_801D37F8, 0, 0);
BoardModelVisibilitySet(lbl_801D37F8, 1);
BoardModelPosSetV(lbl_801D37F8, &sp14);
BoardModelMotionStart(smokeMdl, 0, 0);
BoardModelVisibilitySet(smokeMdl, 1);
BoardModelPosSetV(smokeMdl, &sp14);
HuPrcSleep(5);
for (var_r31 = 0xFF; var_r31 > 0; var_r31 -= 0x33) {
@ -464,11 +523,11 @@ static void ExecStarSteal(void) {
HuPrcVSleep();
}
BoardModelVisibilitySet(booMdl, 0);
while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) {
while (BoardModelMotionEndCheck(smokeMdl) == 0) {
HuPrcVSleep();
}
BoardModelVisibilitySet(lbl_801D37F8, 0);
BoardModelVisibilitySet(smokeMdl, 0);
BoardCameraMotionStartEx(ballMdl, NULL, NULL, 325.0f, -1.0f, 0x15);
temp_r29 = BoardBooStealMain();
sp8.x = 0.0f;
@ -479,11 +538,11 @@ static void ExecStarSteal(void) {
if (temp_r29 == 0) {
BoardModelMotionStart(booMdl, 2, 0x40000001);
}
BoardModelMotionStart(lbl_801D37F8, 0, 0);
BoardModelVisibilitySet(lbl_801D37F8, 1);
BoardModelMotionStart(smokeMdl, 0, 0);
BoardModelVisibilitySet(smokeMdl, 1);
HuPrcSleep(0xB);
BoardModelVisibilitySet(booMdl, 1);
for (var_r31 = 0; var_r31 < 0xFF; var_r31 += 0x33) {
if (var_r31 > 0xFF) {
var_r31 = 0xFF;
@ -492,21 +551,21 @@ static void ExecStarSteal(void) {
HuPrcVSleep();
}
BoardModelAlphaSet(booMdl, -1);
while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) {
while (BoardModelMotionEndCheck(smokeMdl) == 0) {
HuPrcVSleep();
}
BoardModelVisibilitySet(lbl_801D37F8, 0);
BoardModelVisibilitySet(smokeMdl, 0);
}
static void ExecCoinSteal(void) {
static void ExecCoinSteal(void)
{
Vec sp14;
Vec sp8;
s32 temp_r29;
s32 var_r30;
s32 var_r31;
for (var_r30 = 0; var_r30 < 5; var_r30++) {
BoardPlayerCoinsAdd(currPlayer, -1);
HuAudFXPlay(0xE);
@ -518,16 +577,16 @@ static void ExecCoinSteal(void) {
BoardWinWait();
BoardWinKill();
BoardStatusShowSetAll(0);
while (BoardPickerDoneCheck() == 0) {
HuPrcVSleep();
}
HuAudFXPlay(0x4C);
Hu3DModelObjPosGet(BoardModelIDGet(houseMdl[0]), "yoko8", &sp14);
sp14.y += 20.0f;
BoardModelMotionStart(lbl_801D37F8, 0, 0);
BoardModelVisibilitySet(lbl_801D37F8, 1);
BoardModelPosSetV(lbl_801D37F8, &sp14);
BoardModelMotionStart(smokeMdl, 0, 0);
BoardModelVisibilitySet(smokeMdl, 1);
BoardModelPosSetV(smokeMdl, &sp14);
HuPrcSleep(5);
for (var_r31 = 0xFF; var_r31 > 0; var_r31 -= 0x33) {
@ -538,11 +597,11 @@ static void ExecCoinSteal(void) {
HuPrcVSleep();
}
BoardModelVisibilitySet(booMdl, 0);
while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) {
while (BoardModelMotionEndCheck(smokeMdl) == 0) {
HuPrcVSleep();
}
BoardModelVisibilitySet(lbl_801D37F8, 0);
BoardModelVisibilitySet(smokeMdl, 0);
BoardCameraMotionStartEx(ballMdl, NULL, NULL, 325.0f, -1.0f, 0x15);
temp_r29 = BoardBooStealMain();
sp8.x = 0.0f;
@ -553,11 +612,11 @@ static void ExecCoinSteal(void) {
if (temp_r29 == 0) {
BoardModelMotionStart(booMdl, 2, 0x40000001);
}
BoardModelMotionStart(lbl_801D37F8, 0, 0);
BoardModelVisibilitySet(lbl_801D37F8, 1);
BoardModelMotionStart(smokeMdl, 0, 0);
BoardModelVisibilitySet(smokeMdl, 1);
HuPrcSleep(0xB);
BoardModelVisibilitySet(booMdl, 1);
for (var_r31 = 0; var_r31 < 0xFF; var_r31 += 0x33) {
if (var_r31 > 0xFF) {
var_r31 = 0xFF;
@ -566,14 +625,15 @@ static void ExecCoinSteal(void) {
HuPrcVSleep();
}
BoardModelAlphaSet(booMdl, -1);
while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) {
while (BoardModelMotionEndCheck(smokeMdl) == 0) {
HuPrcVSleep();
}
BoardModelVisibilitySet(lbl_801D37F8, 0);
BoardModelVisibilitySet(smokeMdl, 0);
}
void ApplySteal(void) {
void ApplySteal(void)
{
s16 spA;
s16 sp8;
s32 temp_r30;
@ -589,7 +649,7 @@ void ApplySteal(void) {
BoardModelAlphaSet(booMdl, 0xFF);
var_f31 = BoardDAngleCalc(180.0f + BoardPlayerRotYGet(currPlayer));
BoardPlayerMotBlendSet(currPlayer, var_f31, 0xF);
while (BoardPlayerMotBlendCheck(currPlayer) == 0) {
HuPrcVSleep();
}
@ -597,9 +657,11 @@ void ApplySteal(void) {
var_r31 = BoardBooStealValueGet(&spA, &sp8);
if (var_r31 == 0) {
ApplyBooLight();
} else if (stealTarget == 0) {
}
else if (stealTarget == 0) {
ApplyCoinSteal(spA, sp8);
} else {
}
else {
ApplyStarSteal();
}
BoardWinCreate(2, hostMesTbl[GWBoardGet()][4], BoardWinPortraitGet());
@ -607,31 +669,36 @@ void ApplySteal(void) {
BoardWinKill();
}
void ApplyCoinSteal(s16 arg0, s16 arg1) {
void ApplyCoinSteal(s16 arg0, s16 arg1)
{
u32 var_r31;
s32 var_r30;
if ((s16) arg1 == 0) {
var_r31 = 0x70009;
} else if ((s16) arg1 < 3) {
var_r31 = 0x70008;
} else if ((s16) arg1 < 6) {
var_r31 = 0x70007;
} else if ((s16) arg1 < 8) {
var_r31 = 0x70006;
} else {
var_r31 = 0x70005;
if ((s16)arg1 == 0) {
var_r31 = MAKE_MESSID(7, 9);
}
else if ((s16)arg1 < 3) {
var_r31 = MAKE_MESSID(7, 8);
}
else if ((s16)arg1 < 6) {
var_r31 = MAKE_MESSID(7, 7);
}
else if ((s16)arg1 < 8) {
var_r31 = MAKE_MESSID(7, 6);
}
else {
var_r31 = MAKE_MESSID(7, 5);
}
sprintf(&stealAmountStr, "%d", arg0);
HuAudFXPlay(0x4B);
BoardWinCreate(2, var_r31, 3);
BoardWinInsertMesSet((s32) &stealAmountStr, 0);
BoardWinInsertMesSet((s32)&stealAmountStr, 0);
BoardWinWait();
BoardWinKill();
BoardStatusShowSetForce(currPlayer);
BoardStatusShowSet(currPlayer, 1);
BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, 0);
for (var_r30 = 0; var_r30 < arg0; var_r30++) {
BoardPlayerCoinsAdd(currPlayer, 1);
HuAudFXPlay(0xE);
@ -641,7 +708,8 @@ void ApplyCoinSteal(s16 arg0, s16 arg1) {
BoardPlayerMotionEndWait(currPlayer);
}
void ApplyStarSteal(void) {
void ApplyStarSteal(void)
{
s32 temp_r31;
HuAudFXPlay(0x4C);
@ -660,7 +728,7 @@ void ApplyStarSteal(void) {
HuPrcSleep(0xA);
temp_r31 = HuAudSStreamPlay(6);
BoardPlayerMotionEndWait(currPlayer);
while (msmStreamGetStatus(temp_r31) != 0) {
HuPrcVSleep();
}
@ -669,7 +737,8 @@ void ApplyStarSteal(void) {
BoardPlayerVoiceEnableSet(currPlayer, 7, 1);
}
void ApplyBooLight(void) {
void ApplyBooLight(void)
{
BoardWinCreate(2, MAKE_MESSID(7, 11), 3);
BoardWinWait();
BoardWinKill();
@ -679,7 +748,8 @@ void ApplyBooLight(void) {
}
}
void SetBooBallPos(void) {
void SetBooBallPos(void)
{
Mtx sp14;
Vec sp8;
s16 var_r31;
@ -690,7 +760,8 @@ void SetBooBallPos(void) {
BoardModelPosSetV(ballMdl, &sp8);
}
s32 BoardBooComUseCheck(s32 arg0) {
s32 BoardBooComUseCheck(s32 arg0)
{
s32 var_r31;
u32 var_r30;
s32 var_r29;
@ -703,23 +774,23 @@ s32 BoardBooComUseCheck(s32 arg0) {
comStarStealTarget = comCoinStealTarget = -1;
var_r26 = var_r27 = -1;
switch (GWPlayer[arg0].diff) {
case 0:
var_r30 = 0x5F;
break;
case 1:
var_r30 = 0x32;
break;
case 2:
var_r30 = 5;
break;
case 3:
var_r30 = 0;
break;
case 0:
var_r30 = 0x5F;
break;
case 1:
var_r30 = 0x32;
break;
case 2:
var_r30 = 5;
break;
case 3:
var_r30 = 0;
break;
}
for (var_r31 = 0; var_r31 < 4; var_r31++) {
if (var_r31 != arg0) {
if ((s32) GWSystem.team == 0 || var_r31 != BoardPlayerSameTeamFind(arg0)) {
if ((s32)GWSystem.team == 0 || var_r31 != BoardPlayerSameTeamFind(arg0)) {
if (BoardPlayerItemFind(var_r31, 8) == -1 || BoardRandMod(0x64) < var_r30) {
var_r29 = BoardPlayerCoinsGet(var_r31);
var_r28 = GWStarsGet(var_r31);
@ -731,7 +802,7 @@ s32 BoardBooComUseCheck(s32 arg0) {
}
if (var_r26 < var_r28) {
var_r26 = var_r28;
comStarStealTarget = (s8) var_r31;
comStarStealTarget = (s8)var_r31;
}
}
}
@ -745,7 +816,8 @@ s32 BoardBooComUseCheck(s32 arg0) {
return 1;
}
void BoardBooHouseTutorialExec(void) {
void BoardBooHouseTutorialExec(void)
{
Vec sp38;
Vec sp2C;
Vec sp20;
@ -759,7 +831,7 @@ void BoardBooHouseTutorialExec(void) {
s32 var_r31;
s32 var_r30;
temp_r27 = BoardDataDirReadAsync(0x90000);
temp_r27 = BoardDataDirReadAsync(DATADIR_BYOKODORI);
temp_r29 = BoardSpaceFlagSearch(0, 0x08000000);
BoardDataAsyncWait(temp_r27);
temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000);
@ -775,22 +847,22 @@ void BoardBooHouseTutorialExec(void) {
sp8.y = 150.0f;
sp8.z = 0.0f;
BoardCameraMotionStartEx(houseMdl[0], &sp14, &sp8, 1370.0f, -1.0f, 0x15);
for (var_r31 = 0; var_r31 < 6; var_r31++) {
if (var_r31 != 0) {
houseMdl[var_r31] = BoardModelCreateParam(&houseMdlTbl[var_r31], NULL, NULL);
}
}
houseShowMot = BoardModelMotionCreate(houseMdl[0], 0x90009);
houseHideMot = BoardModelMotionCreate(houseMdl[1], 0x9000A);
houseShowMot = BoardModelMotionCreate(houseMdl[0], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x09));
houseHideMot = BoardModelMotionCreate(houseMdl[1], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x0A));
OpenBooHouse();
while (BoardModelMotionEndCheck(BoardBooHouseHostGet()) == 0) {
HuPrcVSleep();
}
BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[0], 0.0f, 10.0f, 0x40000001);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001);
BoardTutorialHookExec(0x1C, 0);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[1], 0.0f, 10.0f, 0x40000001);
BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001);
BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f);
BoardModelHookSet(houseMdl[0], "yoko02", ballMdl);
BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0);
@ -810,7 +882,7 @@ void BoardBooHouseTutorialExec(void) {
BoardModelHookReset(houseMdl[0]);
BoardBooKill();
ballMdl = -1;
for (var_r30 = 1; var_r30 < 6; var_r30++) {
if (houseMdl[var_r30] != -1) {
BoardModelKill(houseMdl[var_r30]);
@ -821,9 +893,9 @@ void BoardBooHouseTutorialExec(void) {
BoardModelKill(booMdl);
booMdl = -1;
}
if (lbl_801D37F8 != -1) {
BoardModelKill(lbl_801D37F8);
lbl_801D37F8 = -1;
if (smokeMdl != -1) {
BoardModelKill(smokeMdl);
smokeMdl = -1;
}
BoardModelVisibilitySet(BoardBooHouseHostGet(), 0);
}

Some files were not shown because too many files have changed in this diff Show more