Matched REL/w04/main + bridge + boo_event
This commit is contained in:
parent
019ac65f49
commit
1e255d3ea4
9 changed files with 2169 additions and 171 deletions
1215
src/REL/w04Dll/boo_event.c
Executable file
1215
src/REL/w04Dll/boo_event.c
Executable file
File diff suppressed because it is too large
Load diff
297
src/REL/w04Dll/bridge.c
Executable file
297
src/REL/w04Dll/bridge.c
Executable file
|
|
@ -0,0 +1,297 @@
|
|||
#include "REL/w04Dll.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/memory.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/window.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/board/model.h"
|
||||
#include "game/board/player.h"
|
||||
#include "game/board/space.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
|
||||
static void fn_1_17B4(s16 arg0, s16 arg1);
|
||||
static void fn_1_191C(void);
|
||||
static void fn_1_1B98(s16 arg0);
|
||||
static void fn_1_1C2C(void);
|
||||
static void fn_1_1E60(void);
|
||||
static void fn_1_2008(void);
|
||||
|
||||
static Process *lbl_1_bss_3C[3];
|
||||
Process *lbl_1_bss_38;
|
||||
|
||||
static s32 lbl_1_data_298[] = {
|
||||
DATA_MAKE_NUM(DATADIR_W04, 32),
|
||||
-1
|
||||
};
|
||||
|
||||
void fn_1_12FC(void) {
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
s16 *temp_r3;
|
||||
s32 var_r29;
|
||||
s32 i;
|
||||
|
||||
sp8.x = sp8.y = sp8.z = 1.5f;
|
||||
for (i = 0; i < 3; i++) {
|
||||
lbl_1_bss_3C[i] = HuPrcChildCreate(fn_1_1E60, 0x2003, 0x1000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_3C[i], fn_1_2008);
|
||||
temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 5 * sizeof(s16), MEMORY_DEFAULT_NUM);
|
||||
lbl_1_bss_3C[i]->user_data = temp_r3;
|
||||
temp_r3[0] = i;
|
||||
temp_r3[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 31), lbl_1_data_298, 1);
|
||||
BoardModelScaleSetV(temp_r3[1], &sp8);
|
||||
temp_r3[2] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 33), NULL, 1);
|
||||
BoardModelAttrSet(temp_r3[2], 0x40000001);
|
||||
BoardModelHookSet(temp_r3[1], "itemhook_R", temp_r3[2]);
|
||||
BoardModelMotionStart(temp_r3[1], 1, 0x40000001);
|
||||
var_r29 = (0x8000 >> i);
|
||||
var_r29 |= 0x1000;
|
||||
temp_r3[3] = BoardSpaceFlagSearch(0, var_r29);
|
||||
var_r29 = (0x8000 >> i);
|
||||
var_r29 |= 0x800;
|
||||
temp_r3[4] = BoardSpaceFlagSearch(0, var_r29);
|
||||
BoardSpacePosGet(0, temp_r3[3], &sp14);
|
||||
BoardModelPosSetV(temp_r3[1], &sp14);
|
||||
}
|
||||
sp8.x = sp8.y = sp8.z = 2.0f;
|
||||
BoardModelScaleSetV(lbl_1_bss_14[11], &sp8);
|
||||
fn_1_1C2C();
|
||||
if (lbl_1_bss_0[0] & 1) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[5], 108.0f);
|
||||
fn_1_17B4(0, 1);
|
||||
BoardModelAttrSet(lbl_1_bss_14[5], 0x40000002);
|
||||
return;
|
||||
}
|
||||
BoardModelAttrReset(lbl_1_bss_14[5], 0x40000002);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 60);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[5], 0.0f);
|
||||
fn_1_17B4(1, 1);
|
||||
}
|
||||
|
||||
void fn_1_15C8(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
HuPrcKill(lbl_1_bss_3C[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static s32 lbl_1_data_2AC[8] = {
|
||||
DATA_MAKE_NUM(DATADIR_MARIOMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_PEACHMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_WARIOMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_DAISYMOT, 28),
|
||||
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28)
|
||||
};
|
||||
|
||||
void fn_1_1618(void) {
|
||||
s32 temp_r31;
|
||||
s16 temp_r30;
|
||||
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
temp_r30 = BoardPlayerMotionCreate(temp_r31, lbl_1_data_2AC[GWPlayer[temp_r31].character]);
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
BoardPlayerMotBlendSet(temp_r31, 180, 15);
|
||||
BoardCameraViewSet(2);
|
||||
while (!BoardPlayerMotBlendCheck(temp_r31)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardCameraMotionWait();
|
||||
*lbl_1_bss_0 ^= 1;
|
||||
fn_1_191C();
|
||||
fn_1_1C2C();
|
||||
HuAudPlayerVoicePlay(temp_r31, 0x128);
|
||||
BoardPlayerMotionStart(temp_r31, temp_r30, 0);
|
||||
while (!BoardPlayerMotionEndCheck(temp_r31)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(30);
|
||||
if (!(*lbl_1_bss_0 & 1)) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 24), 11);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
}
|
||||
BoardPlayerMotionShiftSet(temp_r31, 1, 0.0f, 10.0f, 0x40000001);
|
||||
BoardCameraViewSet(1);
|
||||
BoardCameraMotionWait();
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
BoardPlayerMotionKill(temp_r31, temp_r30);
|
||||
HuPrcKill(NULL);
|
||||
while (TRUE) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_17B4(s16 arg0, s16 arg1) {
|
||||
float var_f30;
|
||||
float var_f31;
|
||||
s32 i;
|
||||
|
||||
if (arg0 != 0) {
|
||||
var_f31 = 0.0f;
|
||||
var_f30 = 255.0f / arg1;
|
||||
} else {
|
||||
var_f31 = 255.0f;
|
||||
var_f30 = -255.0f / arg1;
|
||||
}
|
||||
for (i = 0; i < arg1; i++) {
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], var_f31);
|
||||
var_f31 += var_f30;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if (arg0 != 0) {
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], 0xFF);
|
||||
} else {
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_191C(void) {
|
||||
float var_f31;
|
||||
float temp_f29;
|
||||
float var_f30;
|
||||
float temp_f28;
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
|
||||
HuAudFXPlay(0x4B);
|
||||
if (*lbl_1_bss_0 & 1) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 23), 11);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
omVibrate(GWSystem.player_curr, 12, 6, 6);
|
||||
HuAudFXPlay(0x45E);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[5], 59.0f);
|
||||
var_f31 = 255.0f;
|
||||
temp_f29 = -5.1f;
|
||||
for (var_r31 = 0; var_r31 < 50; var_r31++) {
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], var_f31);
|
||||
var_f31 += temp_f29;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], 0);
|
||||
BoardModelAttrSet(lbl_1_bss_14[5], 0x40000002);
|
||||
} else {
|
||||
omVibrate(GWSystem.player_curr, 12, 6, 6);
|
||||
HuAudFXPlay(0x45D);
|
||||
BoardModelAttrReset(lbl_1_bss_14[5], 0x40000002);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[5], 110.0f);
|
||||
var_f30 = 0.0f;
|
||||
temp_f28 = 3.642857f;
|
||||
for (var_r30 = 0; var_r30 < 70; var_r30++) {
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], var_f30);
|
||||
var_f30 += temp_f28;
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelAlphaSet(lbl_1_bss_14[11], 0xFF);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 60);
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_1B98(s16 arg0) {
|
||||
BoardSpace *temp_r3;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < BoardSpaceCountGet(0); i++) {
|
||||
temp_r3 = BoardSpaceGet(0, i + 1);
|
||||
if (temp_r3->flag & 0x20) {
|
||||
if (arg0 != 0) {
|
||||
temp_r3->flag |= 0x04000000;
|
||||
} else {
|
||||
temp_r3->flag &= ~0x04000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_1C2C(void) {
|
||||
s16 *var_r28;
|
||||
s32 i;
|
||||
|
||||
if (*lbl_1_bss_0 == 0) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[3], 0, 80);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[0], 1);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[1], 1);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[2], 1);
|
||||
fn_1_1B98(0);
|
||||
for (i = 0; i < 3; i++) {
|
||||
var_r28 = lbl_1_bss_3C[i]->user_data;
|
||||
BoardModelMotionStartEndSet(var_r28[2], 0, 20);
|
||||
}
|
||||
} else {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[3], 100, 100);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[3], 100.0f);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[0], 0);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[1], 0);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[2], 0);
|
||||
fn_1_1B98(1);
|
||||
for (i = 0; i < 3; i++) {
|
||||
var_r28 = lbl_1_bss_3C[i]->user_data;
|
||||
BoardModelMotionStartEndSet(var_r28[2], 25, 25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_1E60(void) {
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
float temp_f31;
|
||||
s16 *temp_r31;
|
||||
s16 var_r29;
|
||||
s16 var_r28;
|
||||
s16 i;
|
||||
|
||||
temp_r31 = HuPrcCurrentGet()->user_data;
|
||||
var_r29 = temp_r31[3];
|
||||
var_r28 = temp_r31[4];
|
||||
while (TRUE) {
|
||||
BoardSpacePosGet(0, var_r29, &sp14);
|
||||
BoardSpacePosGet(0, var_r28, &sp8);
|
||||
PSVECSubtract(&sp8, &sp14, &sp20);
|
||||
PSVECScale(&sp20, &sp20, 0.008333334f);
|
||||
temp_f31 = 180.0 * (atan2(sp8.x - sp14.x, sp8.z - sp14.z) / M_PI);
|
||||
BoardModelPosGet(temp_r31[1], &sp14);
|
||||
while (fn_1_1130(temp_r31[1], temp_f31, 2.5f) == 0) {
|
||||
if (*lbl_1_bss_0 == 0) {
|
||||
BoardModelAlphaSet(temp_r31[1], 0xFF);
|
||||
} else {
|
||||
BoardModelAlphaSet(temp_r31[1], 0);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for (i = 0; i < 120; i++) {
|
||||
if (*lbl_1_bss_0 == 0) {
|
||||
BoardModelAlphaSet(temp_r31[1], 0xFF);
|
||||
} else {
|
||||
BoardModelAlphaSet(temp_r31[1], 0);
|
||||
}
|
||||
PSVECAdd(&sp14, &sp20, &sp14);
|
||||
BoardModelPosSetV(temp_r31[1], &sp14);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
i = var_r29;
|
||||
var_r29 = var_r28;
|
||||
var_r28 = i;
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_2008(void) {
|
||||
s16 *temp_r31;
|
||||
|
||||
temp_r31 = HuPrcCurrentGet()->user_data;
|
||||
BoardModelKill(temp_r31[1]);
|
||||
HuMemDirectFree(temp_r31);
|
||||
}
|
||||
445
src/REL/w04Dll/main.c
Executable file
445
src/REL/w04Dll/main.c
Executable file
|
|
@ -0,0 +1,445 @@
|
|||
#include "REL/w04Dll.h"
|
||||
#include "REL/board_executor.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/object.h"
|
||||
#include "game/window.h"
|
||||
#include "game/board/boo_house.h"
|
||||
#include "game/board/com.h"
|
||||
#include "game/board/lottery.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/board/model.h"
|
||||
#include "game/board/player.h"
|
||||
#include "game/board/shop.h"
|
||||
#include "game/board/space.h"
|
||||
#include "game/board/star.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
|
||||
static void fn_1_750(void);
|
||||
static void fn_1_794(void);
|
||||
static s32 fn_1_798(void);
|
||||
static s32 fn_1_7FC(void);
|
||||
static void fn_1_930(void);
|
||||
static void fn_1_954(void);
|
||||
static void fn_1_958(void);
|
||||
static void fn_1_CF8(void);
|
||||
static void fn_1_D30(void);
|
||||
static void fn_1_DB0(void);
|
||||
static s32 fn_1_103C(void);
|
||||
|
||||
s16 lbl_1_bss_14[MAPOBJ_MAX];
|
||||
|
||||
BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = {
|
||||
{ { 750.0f, 0.0f, 1500.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 5) },
|
||||
{ { -1500.0f, 0.0f, 150.0f }, { 0.0f, 89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 5) },
|
||||
{ { 1200.0f, 0.0f, -1650.0f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 5) },
|
||||
{ { -1950.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 4) },
|
||||
{ { 2100.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 18) },
|
||||
{ { -150.0f, 0.0f, -150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 23) },
|
||||
{ { 3000.0f, 0.0f, -600.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 12) },
|
||||
{ { -1500.0f, 0.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 15) },
|
||||
{ { -1950.0f, 0.0f, -2000.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 34) },
|
||||
{ { -1350.0f, 50.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 34) },
|
||||
{ { 2750.0f, 0.0f, -600.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 34) },
|
||||
{ { -150.0f, 0.0f, -100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 29) },
|
||||
{ { 2850.0f, 0.0f, -1500.0f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) },
|
||||
{ { -3150.0f, 0.0f, 300.0f }, { 0.0f, 89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) },
|
||||
{ { 2850.0f, 0.0f, 0.000003f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) },
|
||||
{ { 900.0f, 0.0f, 2250.0f }, { 0.0f, 180.00001f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) }
|
||||
};
|
||||
|
||||
static s32 *lbl_1_bss_10;
|
||||
static s16 lbl_1_bss_8[4];
|
||||
static Process *lbl_1_bss_4;
|
||||
s8 *lbl_1_bss_0;
|
||||
|
||||
static s16 lbl_1_data_280 = -1;
|
||||
static s16 lbl_1_data_282 = -1;
|
||||
static s16 lbl_1_data_284 = -1;
|
||||
static s16 lbl_1_data_286 = -1;
|
||||
|
||||
static s32 lbl_1_data_288[] = {
|
||||
DATA_MAKE_NUM(DATADIR_W04, 8),
|
||||
-1
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_290[] = {
|
||||
DATA_MAKE_NUM(DATADIR_BGUEST, 24),
|
||||
-1
|
||||
};
|
||||
|
||||
void BoardCreate(void) {
|
||||
BoardMapObject *temp_r30;
|
||||
s32 sp8;
|
||||
s32 i;
|
||||
|
||||
omDBGMenuButton = 1;
|
||||
sp8 = GWBoardGet();
|
||||
lbl_1_bss_0 = (s8*) GWSystem.board_data;
|
||||
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W04, 0));
|
||||
lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 1), 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, 1.0f);
|
||||
lbl_1_data_282 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 2), 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(DATA_MAKE_NUM(DATADIR_W04, 7), 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(DATA_MAKE_NUM(DATADIR_BGUEST, 18), lbl_1_data_290, 0);
|
||||
BoardModelMotionStart(lbl_1_data_286, 1, 0x40000001);
|
||||
BoardLightHookSet(fn_1_750, fn_1_794);
|
||||
for (i = 0; i < 16; i++) {
|
||||
temp_r30 = &lbl_1_data_0[i];
|
||||
if (temp_r30->data_num != -1) {
|
||||
if (i == 8 || i == 9 || i == 10 || i == 11) {
|
||||
lbl_1_bss_10 = lbl_1_data_290;
|
||||
} else {
|
||||
lbl_1_bss_10 = NULL;
|
||||
}
|
||||
lbl_1_bss_14[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_10, 0);
|
||||
BoardModelPosSetV(lbl_1_bss_14[i], &temp_r30->pos);
|
||||
BoardModelRotSetV(lbl_1_bss_14[i], &temp_r30->rot);
|
||||
BoardModelScaleSetV(lbl_1_bss_14[i], &temp_r30->scale);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[i], 1);
|
||||
if (lbl_1_bss_10 != NULL) {
|
||||
BoardModelMotionStart(lbl_1_bss_14[i], 1, 0x40000001);
|
||||
}
|
||||
}
|
||||
}
|
||||
BoardModelAlphaSet(lbl_1_bss_14[8], 0);
|
||||
BoardModelVisibilitySet(lbl_1_bss_14[8], 0);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 60);
|
||||
BoardModelAttrSet(lbl_1_bss_14[5], 0x40000001);
|
||||
BoardModelAttrSet(lbl_1_bss_14[4], 0x40000001);
|
||||
fn_1_930();
|
||||
fn_1_12FC();
|
||||
fn_1_6024();
|
||||
BoardModelAttrSet(lbl_1_bss_14[0], 0x40000001);
|
||||
BoardModelAttrSet(lbl_1_bss_14[1], 0x40000001);
|
||||
BoardModelAttrSet(lbl_1_bss_14[2], 0x40000001);
|
||||
BoardModelAttrSet(lbl_1_bss_14[3], 0x40000001);
|
||||
BoardSpaceWalkEventFuncSet(fn_1_7FC);
|
||||
BoardSpaceWalkMiniEventFuncSet(fn_1_103C);
|
||||
BoardSpaceLandEventFuncSet(fn_1_798);
|
||||
BoardStarHostSet(lbl_1_data_284);
|
||||
BoardBooHouseHostSet(lbl_1_data_286);
|
||||
BoardShopHostSet(lbl_1_data_286);
|
||||
BoardLotteryHostSet(lbl_1_data_286);
|
||||
BoardJunctionMaskSet(0x100);
|
||||
BoardJunctionMaskSet(0x40);
|
||||
}
|
||||
|
||||
void BoardDestroy(void) {
|
||||
s32 i;
|
||||
|
||||
fn_1_15C8();
|
||||
for (i = 0; i < MAPOBJ_MAX; i++) {
|
||||
if (lbl_1_bss_14[i] != 0) {
|
||||
BoardModelKill(lbl_1_bss_14[i]);
|
||||
lbl_1_bss_14[i] = 0;
|
||||
}
|
||||
}
|
||||
if (lbl_1_data_286 != -1) {
|
||||
BoardModelKill(lbl_1_data_286);
|
||||
lbl_1_data_286 = -1;
|
||||
}
|
||||
if (lbl_1_data_284 != -1) {
|
||||
BoardModelKill(lbl_1_data_284);
|
||||
lbl_1_data_284 = -1;
|
||||
}
|
||||
if (lbl_1_data_280 != -1) {
|
||||
BoardModelKill(lbl_1_data_280);
|
||||
lbl_1_data_280 = -1;
|
||||
}
|
||||
if (lbl_1_data_282 != -1) {
|
||||
BoardModelKill(lbl_1_data_282);
|
||||
lbl_1_data_282 = -1;
|
||||
}
|
||||
BoardSpaceDestroy();
|
||||
}
|
||||
|
||||
static void fn_1_750(void) {
|
||||
s16 var_r31;
|
||||
|
||||
var_r31 = BoardModelIDGet(lbl_1_data_280);
|
||||
Hu3DModelLightInfoSet(var_r31, 1);
|
||||
}
|
||||
|
||||
static void fn_1_794(void) {
|
||||
}
|
||||
|
||||
static s32 fn_1_798(void) {
|
||||
s32 var_r31;
|
||||
s32 var_r30;
|
||||
s32 sp8;
|
||||
|
||||
var_r31 = GWSystem.player_curr;
|
||||
var_r30 = GWPlayer[var_r31].space_curr;
|
||||
sp8 = BoardSpaceFlagGet(0, var_r30);
|
||||
fn_1_9EBC();
|
||||
}
|
||||
|
||||
static s32 fn_1_7FC(void) {
|
||||
s32 temp_r31;
|
||||
BoardSpace *temp_r3;
|
||||
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
if (BoardPlayerSizeGet(temp_r31) == 2) {
|
||||
return 0;
|
||||
}
|
||||
if (GWPlayer[temp_r31].bowser_suit) {
|
||||
return 0;
|
||||
}
|
||||
temp_r3 = BoardSpaceGet(0, GWPlayer[temp_r31].space_curr);
|
||||
if (temp_r3->flag & 0x80) {
|
||||
fn_1_2058();
|
||||
return 1;
|
||||
}
|
||||
if (temp_r3->flag & 0x100) {
|
||||
if (lbl_1_bss_0[0] & 1) {
|
||||
fn_1_55B4();
|
||||
} else {
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
BoardPlayerIdleSet(temp_r31);
|
||||
BoardWinCreate(0, MAKE_MESSID(32, 25), -1);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void fn_1_930(void) {
|
||||
fn_1_A0F8();
|
||||
fn_1_C7A0();
|
||||
}
|
||||
|
||||
static void fn_1_954(void) {
|
||||
}
|
||||
|
||||
static void fn_1_958(void) {
|
||||
Vec sp8;
|
||||
u32 temp_r3;
|
||||
s32 temp_r27;
|
||||
s32 temp_r31;
|
||||
s32 var_r26;
|
||||
s32 var_r30;
|
||||
s32 var_r29;
|
||||
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
if (BoardPlayerItemCount(temp_r31) == 3) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 12), 3);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
HuPrcEnd();
|
||||
}
|
||||
lbl_1_bss_8[0] = 0;
|
||||
var_r30 = 1;
|
||||
while (var_r30 < 3) {
|
||||
lbl_1_bss_8[var_r30] = frandmod(14);
|
||||
if (lbl_1_bss_8[var_r30] != 10 && lbl_1_bss_8[var_r30] != 13) {
|
||||
for (var_r29 = 0; var_r29 < var_r30; var_r29++) {
|
||||
if (lbl_1_bss_8[var_r30] == lbl_1_bss_8[var_r29]) {
|
||||
lbl_1_bss_8[var_r30] = -1;
|
||||
}
|
||||
}
|
||||
if (lbl_1_bss_8[var_r30] != -1) {
|
||||
var_r30++;
|
||||
}
|
||||
}
|
||||
}
|
||||
fn_1_BB00(lbl_1_bss_8);
|
||||
BoardWinCreateChoice(2, MAKE_MESSID(32, 13), 3, 0);
|
||||
if (GWPlayer[temp_r31].com) {
|
||||
if (BoardComPreferItemCheck(temp_r31, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) {
|
||||
BoardComKeySetLeft();
|
||||
} else {
|
||||
BoardComKeySetRight();
|
||||
}
|
||||
}
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
temp_r3 = BoardWinChoiceGet();
|
||||
if (temp_r3 == 1 || temp_r3 == -1) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 14), 3);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
BoardMGExit();
|
||||
fn_1_C2BC();
|
||||
while (BoardMGDoneFlagGet() != 1) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardMGDoneFlagSet(0);
|
||||
fn_1_BA7C();
|
||||
HuPrcEnd();
|
||||
}
|
||||
temp_r27 = GWPlayer[temp_r31].space_curr;
|
||||
var_r26 = BoardSpaceLinkFlagSearch(0, temp_r27, 0x02000000);
|
||||
BoardPlayerMoveBetween(temp_r31, temp_r27, var_r26);
|
||||
while (GWPlayer[temp_r31].moving) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotionStart(temp_r31, 1, 0x40000001);
|
||||
BoardPlayerPosGet(temp_r31, &sp8);
|
||||
sp8.y += 5.0f;
|
||||
BoardPlayerPosSetV(temp_r31, &sp8);
|
||||
BoardCameraViewSet(2);
|
||||
BoardPlayerMotBlendSet(temp_r31, 180, 15);
|
||||
while (!BoardPlayerMotBlendCheck(temp_r31)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardCameraMotionWait();
|
||||
fn_1_A1F0();
|
||||
while (BoardEventFlagGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while (GWPlayer[temp_r31].moving) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotionStart(temp_r31, 1, 0x40000001);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
static void fn_1_CF8(void) {
|
||||
BoardWinKill();
|
||||
CharModelDataClose(-1);
|
||||
lbl_1_bss_4 = NULL;
|
||||
}
|
||||
|
||||
static void fn_1_D30(void) {
|
||||
lbl_1_bss_4 = HuPrcChildCreate(fn_1_958, 0x2003, 0x2000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_4, fn_1_CF8);
|
||||
while (lbl_1_bss_4) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_DB0(void) {
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
s32 temp_r31;
|
||||
s32 temp_r3;
|
||||
s32 temp_r29;
|
||||
s32 temp_r3_2;
|
||||
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
BoardWinCreateChoice(2, MAKE_MESSID(32, 17), 3, 0);
|
||||
if (GWPlayer[temp_r31].com) {
|
||||
if (frand() & 1) {
|
||||
BoardComKeySetLeft();
|
||||
} else {
|
||||
BoardComKeySetRight();
|
||||
}
|
||||
}
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
temp_r3 = BoardWinChoiceGet();
|
||||
if (temp_r3 == 1 || temp_r3 == -1) {
|
||||
BoardWinCreate(2, MAKE_MESSID(32, 18), 3);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
BoardMGExit();
|
||||
while (BoardMGDoneFlagGet() != 1) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardMGDoneFlagSet(0);
|
||||
return;
|
||||
}
|
||||
sp20.x = -45.0f;
|
||||
sp20.y = sp20.z = 0.0f;
|
||||
sp14.y = 50.0f;
|
||||
sp14.x = sp14.z = 0.0f;
|
||||
BoardCameraMotionStartEx(lbl_1_bss_14[7], &sp20, &sp14, 1200.0f, 25.0f, 21);
|
||||
temp_r29 = GWPlayer[temp_r31].space_curr;
|
||||
temp_r3_2 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000);
|
||||
BoardSpacePosGet(0, temp_r3_2, &sp8);
|
||||
BoardPlayerMoveBetween(temp_r31, temp_r29, temp_r3_2);
|
||||
while (GWPlayer[temp_r31].moving) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotionStart(temp_r31, 1, 0x40000001);
|
||||
fn_1_C7D4();
|
||||
while (GWPlayer[temp_r31].moving) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while (BoardEventFlagGet() != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while (GWPlayer[temp_r31].moving) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotionStart(temp_r31, 1, 0x40000001);
|
||||
}
|
||||
|
||||
static s32 fn_1_103C(void) {
|
||||
s16 var_r30;
|
||||
u32 temp_r31;
|
||||
|
||||
var_r30 = GWPlayer[GWSystem.player_curr].space_curr;
|
||||
temp_r31 = BoardSpaceFlagGet(0, var_r30) & 0x600000;
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
if (temp_r31 & 0x200000) {
|
||||
lbl_1_bss_4 = HuPrcChildCreate(fn_1_958, 0x2003, 0x2000, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_4, fn_1_CF8);
|
||||
while (lbl_1_bss_4) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
} else if (temp_r31 & 0x400000) {
|
||||
fn_1_DB0();
|
||||
}
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
}
|
||||
|
||||
s32 fn_1_1130(s16 arg0, float arg1, float arg2) {
|
||||
float var_f29;
|
||||
float var_f31;
|
||||
s32 var_r31;
|
||||
|
||||
var_r31 = 0;
|
||||
var_f31 = BoardModelRotYGet(arg0);
|
||||
arg1 = fmod(arg1, 360.0);
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (arg1 < 0.0f) {
|
||||
arg1 += 360.0f;
|
||||
}
|
||||
if (var_f31 != arg1) {
|
||||
var_f29 = arg1 - var_f31;
|
||||
if (var_f29 < 0.0f) {
|
||||
var_f29 += 360.0f;
|
||||
}
|
||||
if (var_f29 < 180.0f) {
|
||||
if (var_f29 > arg2) {
|
||||
var_f31 = var_f31 + arg2;
|
||||
} else {
|
||||
var_f31 = arg1;
|
||||
}
|
||||
} else if (360.0f - var_f29 > arg2) {
|
||||
var_f31 = var_f31 - arg2;
|
||||
} else {
|
||||
var_f31 = arg1;
|
||||
}
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
if (var_f31 >= 360.0f) {
|
||||
var_f31 -= 360.0f;
|
||||
}
|
||||
BoardModelRotYSet(arg0, var_f31);
|
||||
} else {
|
||||
var_r31 = 1;
|
||||
}
|
||||
return var_r31;
|
||||
}
|
||||
|
|
@ -15,7 +15,7 @@ Vec CRotM[16];
|
|||
Vec CenterM[16];
|
||||
float CZoomM[16];
|
||||
|
||||
omObjData *omDBGMenuButton;
|
||||
s16 omDBGMenuButton;
|
||||
|
||||
void omOutView(omObjData *object)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue