Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eacafb838b | ||
|
|
0b964b2f98 | ||
|
|
75c841640c | ||
|
|
c43393160d | ||
|
|
e79fa6a486 | ||
|
|
60a9cf9edf |
33 changed files with 4825 additions and 80 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -11,3 +11,7 @@ orig/*/*
|
||||||
/*.txt
|
/*.txt
|
||||||
ctx.c
|
ctx.c
|
||||||
tools/output/*
|
tools/output/*
|
||||||
|
rels_to_mod.py
|
||||||
|
orig/root
|
||||||
|
*.iso
|
||||||
|
mod_root/
|
||||||
|
|
@ -91,6 +91,7 @@ f9e8d9c4581d44488adaffa3d46d9bc835d4f9bd build/GMPE01_00/w03Dll/w03Dll.rel
|
||||||
821126eeb7054150744b925cc4cb06c751ddcefd build/GMPE01_00/w04Dll/w04Dll.rel
|
821126eeb7054150744b925cc4cb06c751ddcefd build/GMPE01_00/w04Dll/w04Dll.rel
|
||||||
d29f7ccadcba23c8446d05101c4efa5caba26dfd build/GMPE01_00/w05Dll/w05Dll.rel
|
d29f7ccadcba23c8446d05101c4efa5caba26dfd build/GMPE01_00/w05Dll/w05Dll.rel
|
||||||
d11a7a6d44189ba8d1e3a7168ea640ea9f2152fe build/GMPE01_00/w06Dll/w06Dll.rel
|
d11a7a6d44189ba8d1e3a7168ea640ea9f2152fe build/GMPE01_00/w06Dll/w06Dll.rel
|
||||||
|
f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPE01_00/w07Dll/w07Dll.rel
|
||||||
54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c build/GMPE01_00/w10Dll/w10Dll.rel
|
54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c build/GMPE01_00/w10Dll/w10Dll.rel
|
||||||
98cc41456afa9e1ccbb8e03718b8d3cb64e4e86f build/GMPE01_00/w20Dll/w20Dll.rel
|
98cc41456afa9e1ccbb8e03718b8d3cb64e4e86f build/GMPE01_00/w20Dll/w20Dll.rel
|
||||||
b888f2c6703e680699ff8c59ad9200b9d78d30a1 build/GMPE01_00/w21Dll/w21Dll.rel
|
b888f2c6703e680699ff8c59ad9200b9d78d30a1 build/GMPE01_00/w21Dll/w21Dll.rel
|
||||||
|
|
|
||||||
|
|
@ -471,6 +471,11 @@ modules:
|
||||||
symbols: config/GMPE01_00/rels/w06Dll/symbols.txt
|
symbols: config/GMPE01_00/rels/w06Dll/symbols.txt
|
||||||
splits: config/GMPE01_00/rels/w06Dll/splits.txt
|
splits: config/GMPE01_00/rels/w06Dll/splits.txt
|
||||||
links: []
|
links: []
|
||||||
|
- object: orig/GMPE01_00/files/dll/w07Dll.rel
|
||||||
|
hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9
|
||||||
|
symbols: config/GMPE01_00/rels/w07Dll/symbols.txt
|
||||||
|
splits: config/GMPE01_00/rels/w07Dll/splits.txt
|
||||||
|
links: []
|
||||||
- object: orig/GMPE01_00/files/dll/w10Dll.rel
|
- object: orig/GMPE01_00/files/dll/w10Dll.rel
|
||||||
hash: 54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c
|
hash: 54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c
|
||||||
symbols: config/GMPE01_00/rels/w10Dll/symbols.txt
|
symbols: config/GMPE01_00/rels/w10Dll/symbols.txt
|
||||||
|
|
|
||||||
3
config/GMPE01_00/rels/w07Dll/splits.txt
Normal file
3
config/GMPE01_00/rels/w07Dll/splits.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
Sections:
|
||||||
|
.ctors type:rodata align:4
|
||||||
|
.dtors type:rodata align:4
|
||||||
2
config/GMPE01_00/rels/w07Dll/symbols.txt
Normal file
2
config/GMPE01_00/rels/w07Dll/symbols.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||||
|
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||||
1
configure
vendored
1
configure
vendored
|
|
@ -1 +0,0 @@
|
||||||
python3 configure.py "$@"
|
|
||||||
12
configure.py
12
configure.py
|
|
@ -1541,6 +1541,18 @@ config.libs = [
|
||||||
Object(Matching, "REL/w06Dll/bowser.c"),
|
Object(Matching, "REL/w06Dll/bowser.c"),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
Rel(
|
||||||
|
"w07Dll", # Custom Board
|
||||||
|
objects={
|
||||||
|
Object(Matching, "REL/board_executor.c"),
|
||||||
|
# Object(Matching, "REL/w07Dll/main.c"),
|
||||||
|
# Object(Matching, "REL/w06Dll/mg_item.c"),
|
||||||
|
# Object(Matching, "REL/w06Dll/mg_coin.c"),
|
||||||
|
# Object(Matching, "REL/w06Dll/fire.c"),
|
||||||
|
# Object(Matching, "REL/w06Dll/bridge.c"),
|
||||||
|
# Object(Matching, "REL/w06Dll/bowser.c"),
|
||||||
|
},
|
||||||
|
),
|
||||||
Rel(
|
Rel(
|
||||||
"w10Dll", # Tutorial board
|
"w10Dll", # Tutorial board
|
||||||
objects={
|
objects={
|
||||||
|
|
|
||||||
74
dolphin_rels_to_mod.py
Normal file
74
dolphin_rels_to_mod.py
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
|
||||||
|
"""
|
||||||
|
Usage: extract an mp4 iso to mod_root/orig/
|
||||||
|
Build the dtk project, then run this script which you can then run your mod changes by running
|
||||||
|
mod_root/mod/sys/main.dol in dolphin
|
||||||
|
"""
|
||||||
|
|
||||||
|
def copy_build_files_to_mod(src_dir, dest_dir):
|
||||||
|
#copy dol
|
||||||
|
build_dol = "build/GMPE01_00/main.dol"
|
||||||
|
mod_dol_dir = "mod_root/mod/sys/main.dol"
|
||||||
|
shutil.copy(build_dol, mod_dol_dir)
|
||||||
|
print(f"Copied {build_dol} to {mod_dol_dir}")
|
||||||
|
|
||||||
|
#copy rels
|
||||||
|
rel_files_found = False
|
||||||
|
for root, dirs, files in os.walk(src_dir):
|
||||||
|
for file in files:
|
||||||
|
if file.endswith('.rel'):
|
||||||
|
rel_files_found = True
|
||||||
|
source_path = os.path.join(root, file)
|
||||||
|
destination_path = os.path.join(dest_dir, file)
|
||||||
|
|
||||||
|
# Create destination directory if it doesn't exist
|
||||||
|
os.makedirs(os.path.dirname(destination_path), exist_ok=True)
|
||||||
|
|
||||||
|
# Copy .rel file to root/dll/
|
||||||
|
shutil.copy(source_path, destination_path)
|
||||||
|
|
||||||
|
print(f"{file} found and copied to {destination_path}")
|
||||||
|
|
||||||
|
if not rel_files_found:
|
||||||
|
print("No .rel files found.")
|
||||||
|
|
||||||
|
def copy_mod_orig_to_mod(mod_orig, mod_dir):
|
||||||
|
# Ensure the mod directory exists
|
||||||
|
os.makedirs(mod_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# Iterate through all items in the source directory
|
||||||
|
for item in os.listdir(mod_orig):
|
||||||
|
s = os.path.join(mod_orig, item)
|
||||||
|
d = os.path.join(mod_dir, item)
|
||||||
|
# If the item is a directory, copy it to the destination
|
||||||
|
if os.path.isdir(s):
|
||||||
|
shutil.copytree(s, d, dirs_exist_ok=True)
|
||||||
|
print(f"Copied directory {s} to {d}")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
src_directory = "build/GMPE01_00"
|
||||||
|
rels_destination_directory = "mod_root/mod/files/dll"
|
||||||
|
mod_dest = "mod_root/"
|
||||||
|
mod_orig = "mod_root/orig/"
|
||||||
|
mod_dir = "mod_root/mod/"
|
||||||
|
|
||||||
|
if not os.path.isdir(mod_dest):
|
||||||
|
raise FileNotFoundError(f"The directory {mod_dest} does not exist. Manually create a mod_root/ directory at the root of the project.")
|
||||||
|
if not os.path.isdir(mod_orig):
|
||||||
|
raise FileNotFoundError(f"The directory {mod_orig} does not exist. Extract the entire iso to mod_root/orig/")
|
||||||
|
|
||||||
|
if '--clean' in sys.argv:
|
||||||
|
print("--clean option detected. Copying directories from mod_root/orig/ to mod_root/mod/.")
|
||||||
|
copy_mod_orig_to_mod(mod_orig, mod_dir)
|
||||||
|
elif not os.path.isdir(mod_dir):
|
||||||
|
os.makedirs(mod_dir)
|
||||||
|
print(f"{mod_dir} created.")
|
||||||
|
copy_mod_orig_to_mod(mod_orig, mod_dir)
|
||||||
|
|
||||||
|
copy_build_files_to_mod(src_directory, rels_destination_directory)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
@ -138,3 +138,4 @@ DATADIR_DEFINE(YOSHIMDL0, "data/yoshimdl0.bin")
|
||||||
DATADIR_DEFINE(YOSHIMDL1, "data/yoshimdl1.bin")
|
DATADIR_DEFINE(YOSHIMDL1, "data/yoshimdl1.bin")
|
||||||
DATADIR_DEFINE(YOSHIMOT, "data/yoshimot.bin")
|
DATADIR_DEFINE(YOSHIMOT, "data/yoshimot.bin")
|
||||||
DATADIR_DEFINE(ZTAR, "data/ztar.bin")
|
DATADIR_DEFINE(ZTAR, "data/ztar.bin")
|
||||||
|
DATADIR_DEFINE(W07, "data/w07.bin")
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
#define BOARD_ID_TUTORIAL 6 //TUTORIAL_BOARD
|
#define BOARD_ID_TUTORIAL 6 //TUTORIAL_BOARD
|
||||||
#define BOARD_ID_EXTRA1 7 //MEGA_BOARD_MAYHEM
|
#define BOARD_ID_EXTRA1 7 //MEGA_BOARD_MAYHEM
|
||||||
#define BOARD_ID_EXTRA2 8 //MINI_BOARD_MAD_DASH
|
#define BOARD_ID_EXTRA2 8 //MINI_BOARD_MAD_DASH
|
||||||
|
#define BOARD_ID_CUSTOM 9 //Custom Test Board
|
||||||
|
|
||||||
#define BOARD_FABS(value) ((value < 0) ? -(value) : (value))
|
#define BOARD_FABS(value) ((value < 0) ? -(value) : (value))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ typedef struct system_state {
|
||||||
/* 0x06 */ u8 star_flag;
|
/* 0x06 */ u8 star_flag;
|
||||||
/* 0x07 */ u8 star_total;
|
/* 0x07 */ u8 star_total;
|
||||||
/* 0x08 */ struct {
|
/* 0x08 */ struct {
|
||||||
u8 star_pos : 3;
|
u16 star_pos : 3;
|
||||||
u8 board : 5;
|
u16 board : 10; //double board count
|
||||||
};
|
};
|
||||||
/* 0x09 */ s8 last5_effect;
|
/* 0x09 */ s8 last5_effect;
|
||||||
/* 0x0A */ s8 player_curr;
|
/* 0x0A */ s8 player_curr;
|
||||||
|
|
|
||||||
|
|
@ -97,3 +97,4 @@ OVL_DEFINE(OVL_W10, "dll/w10dll.rel")
|
||||||
OVL_DEFINE(OVL_W20, "dll/w20dll.rel")
|
OVL_DEFINE(OVL_W20, "dll/w20dll.rel")
|
||||||
OVL_DEFINE(OVL_W21, "dll/w21dll.rel")
|
OVL_DEFINE(OVL_W21, "dll/w21dll.rel")
|
||||||
OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel")
|
OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel")
|
||||||
|
OVL_DEFINE(OVL_W07, "dll/w07Dll.rel")
|
||||||
|
|
@ -161,7 +161,8 @@ void fn_1_EC(void)
|
||||||
OVL_W04,
|
OVL_W04,
|
||||||
OVL_W05,
|
OVL_W05,
|
||||||
OVL_W06,
|
OVL_W06,
|
||||||
OVL_W10
|
OVL_W10,
|
||||||
|
OVL_W07
|
||||||
};
|
};
|
||||||
WipeColorSet(255, 255, 255);
|
WipeColorSet(255, 255, 255);
|
||||||
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
|
||||||
|
|
|
||||||
1176
src/REL/w07Dll/big_boo.c
Normal file
1176
src/REL/w07Dll/big_boo.c
Normal file
File diff suppressed because it is too large
Load diff
1198
src/REL/w07Dll/boo_event.c
Normal file
1198
src/REL/w07Dll/boo_event.c
Normal file
File diff suppressed because it is too large
Load diff
314
src/REL/w07Dll/bridge.c
Normal file
314
src/REL/w07Dll/bridge.c
Normal file
|
|
@ -0,0 +1,314 @@
|
||||||
|
#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/process.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 "ext_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 void fn_1_2044(void);
|
||||||
|
|
||||||
|
static Process *lbl_1_bss_3C[3];
|
||||||
|
static 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->unk00 & 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]);
|
||||||
|
BoardRollDispSet(0);
|
||||||
|
BoardPlayerMotBlendSet(temp_r31, 180, 15);
|
||||||
|
BoardCameraViewSet(2);
|
||||||
|
while (!BoardPlayerMotBlendCheck(temp_r31)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
lbl_1_bss_0->unk00 ^= 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->unk00 & 1)) {
|
||||||
|
BoardWinCreate(2, MAKE_MESSID(32, 24), 11);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
}
|
||||||
|
BoardPlayerMotionShiftSet(temp_r31, 1, 0.0f, 10.0f, 0x40000001);
|
||||||
|
BoardCameraViewSet(1);
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
BoardRollDispSet(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->unk00 & 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->unk00 == 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 = atan2d(sp8.x - sp14.x, sp8.z - sp14.z);
|
||||||
|
BoardModelPosGet(temp_r31[1], &sp14);
|
||||||
|
while (fn_1_1130(temp_r31[1], temp_f31, 2.5f) == 0) {
|
||||||
|
if (lbl_1_bss_0->unk00 == 0) {
|
||||||
|
BoardModelAlphaSet(temp_r31[1], 0xFF);
|
||||||
|
} else {
|
||||||
|
BoardModelAlphaSet(temp_r31[1], 0);
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
for (i = 0; i < 120; i++) {
|
||||||
|
if (lbl_1_bss_0->unk00 == 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_2044(void) {
|
||||||
|
lbl_1_bss_38 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_2058(void) {
|
||||||
|
s32 sp8;
|
||||||
|
|
||||||
|
sp8 = GWSystem.player_curr;
|
||||||
|
lbl_1_bss_38 = HuPrcChildCreate(fn_1_1618, 0x2003, 0x2000, 0, boardMainProc);
|
||||||
|
HuPrcDestructorSet2(lbl_1_bss_38, fn_1_2044);
|
||||||
|
while (lbl_1_bss_38) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
446
src/REL/w07Dll/main.c
Normal file
446
src/REL/w07Dll/main.c
Normal file
|
|
@ -0,0 +1,446 @@
|
||||||
|
#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/process.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;
|
||||||
|
UnkW04BoardData *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 = (UnkW04BoardData*) 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->unk00 & 1) {
|
||||||
|
fn_1_55B4();
|
||||||
|
} else {
|
||||||
|
BoardRollDispSet(0);
|
||||||
|
BoardPlayerIdleSet(temp_r31);
|
||||||
|
BoardWinCreate(0, MAKE_MESSID(32, 25), -1);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
BoardRollDispSet(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;
|
||||||
|
BoardRollDispSet(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();
|
||||||
|
}
|
||||||
|
BoardRollDispSet(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 += arg2;
|
||||||
|
} else {
|
||||||
|
var_f31 = arg1;
|
||||||
|
}
|
||||||
|
} else if (360.0f - var_f29 > arg2) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
663
src/REL/w07Dll/mg_coin.c
Normal file
663
src/REL/w07Dll/mg_coin.c
Normal file
|
|
@ -0,0 +1,663 @@
|
||||||
|
#include "REL/w04Dll.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/chrman.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/frand.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "game/hsfdraw.h"
|
||||||
|
#include "game/hsfmotion.h"
|
||||||
|
#include "game/minigame_seq.h"
|
||||||
|
#include "game/msm.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "game/objsub.h"
|
||||||
|
#include "game/pad.h"
|
||||||
|
#include "game/process.h"
|
||||||
|
#include "game/window.h"
|
||||||
|
#include "game/board/audio.h"
|
||||||
|
#include "game/board/main.h"
|
||||||
|
#include "game/board/model.h"
|
||||||
|
#include "game/board/player.h"
|
||||||
|
#include "game/board/window.h"
|
||||||
|
|
||||||
|
static void fn_1_CF8C(omObjData *arg0);
|
||||||
|
static void fn_1_D0AC(void);
|
||||||
|
static void fn_1_D0DC(void);
|
||||||
|
static void fn_1_D174(omObjData *arg0);
|
||||||
|
static void fn_1_D230(omObjData *arg0);
|
||||||
|
static void fn_1_D2A4(omObjData *arg0);
|
||||||
|
static void fn_1_D554(omObjData *arg0);
|
||||||
|
static void fn_1_D6A8(omObjData *arg0);
|
||||||
|
static void fn_1_D70C(omObjData *arg0);
|
||||||
|
static void fn_1_D770(void);
|
||||||
|
static void fn_1_E004(void);
|
||||||
|
static void fn_1_E144(omObjData *arg0);
|
||||||
|
static void fn_1_E18C(omObjData *arg0);
|
||||||
|
static void fn_1_E374(omObjData *arg0);
|
||||||
|
static void fn_1_E4C0(omObjData *arg0);
|
||||||
|
static void fn_1_E6AC(omObjData *arg0);
|
||||||
|
static s16 fn_1_E880(omObjData *arg0);
|
||||||
|
|
||||||
|
static u16 lbl_1_bss_326;
|
||||||
|
static s16 lbl_1_bss_324;
|
||||||
|
static omObjData *lbl_1_bss_320;
|
||||||
|
static omObjData *lbl_1_bss_31C;
|
||||||
|
static omObjData *lbl_1_bss_318;
|
||||||
|
static s16 lbl_1_bss_314;
|
||||||
|
static Vec lbl_1_bss_308;
|
||||||
|
static Vec lbl_1_bss_2FC;
|
||||||
|
static s16 lbl_1_bss_2FA;
|
||||||
|
static s16 lbl_1_bss_2F8;
|
||||||
|
static s16 lbl_1_bss_2D0[20];
|
||||||
|
static u16 lbl_1_bss_2C2[7];
|
||||||
|
static u16 lbl_1_bss_2B4[7];
|
||||||
|
static s32 lbl_1_bss_2B0;
|
||||||
|
|
||||||
|
static s32 lbl_1_data_588 = -1;
|
||||||
|
|
||||||
|
static char *lbl_1_data_5BC[] = {
|
||||||
|
"pia1", "pia2", "pia3", "pia4",
|
||||||
|
"pia5", "pia6", "pia7", "pia8",
|
||||||
|
"pia9"
|
||||||
|
};
|
||||||
|
|
||||||
|
static u16 lbl_1_data_5E0[] = {
|
||||||
|
0x0100, 0x0200, 0x0040, 0x0020,
|
||||||
|
0x0800, 0x0400, 0x0010
|
||||||
|
};
|
||||||
|
|
||||||
|
static s32 lbl_1_data_5F0[] = {
|
||||||
|
0x0000046D,
|
||||||
|
0x0000046E,
|
||||||
|
0x0000046F,
|
||||||
|
0x00000470,
|
||||||
|
0x00000471,
|
||||||
|
0x00000472,
|
||||||
|
0x00000473,
|
||||||
|
0x00000474
|
||||||
|
};
|
||||||
|
|
||||||
|
void fn_1_C7A0(void) {
|
||||||
|
BoardModelAttrSet(lbl_1_bss_14[7], 0x40000002);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_C7D4(void) {
|
||||||
|
Vec sp38;
|
||||||
|
Vec sp2C;
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
float temp_f30;
|
||||||
|
float var_f31;
|
||||||
|
float var_f29;
|
||||||
|
s16 temp_r30;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
BoardModelLayerSet(lbl_1_bss_14[9], 1);
|
||||||
|
lbl_1_bss_324 = GWSystem.player_curr;
|
||||||
|
lbl_1_data_588 = -1;
|
||||||
|
lbl_1_bss_2FA = 0;
|
||||||
|
for (i = 0; i < 7; i++) {
|
||||||
|
lbl_1_bss_2B4[i] = 0;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 7; i++) {
|
||||||
|
do {
|
||||||
|
temp_r30 = frandmod(7);
|
||||||
|
} while (lbl_1_bss_2B4[temp_r30] != 0);
|
||||||
|
lbl_1_bss_2B4[temp_r30] = i + 1;
|
||||||
|
lbl_1_bss_2C2[temp_r30] = lbl_1_data_5E0[i];
|
||||||
|
}
|
||||||
|
for (i = 0; i < 7; i++) {
|
||||||
|
OSReport("%d: %d %04X\n", i, lbl_1_bss_2B4[i], lbl_1_bss_2C2[i]);
|
||||||
|
}
|
||||||
|
lbl_1_bss_2F8 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 16), NULL, 0);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
|
||||||
|
BoardModelAttrSet(lbl_1_bss_2F8, 0x40000002);
|
||||||
|
for (i = 0; i < 20; i++) {
|
||||||
|
lbl_1_bss_2D0[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2D0[i], 0);
|
||||||
|
}
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_324, 0xB4, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardWinCreate(2, MAKE_MESSID(32, 19), 3);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &lbl_1_bss_308);
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[9], &lbl_1_bss_2FC);
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &sp38);
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[0], &sp2C);
|
||||||
|
sp20 = sp2C;
|
||||||
|
sp20.z = sp38.z;
|
||||||
|
sp20.y = sp38.y;
|
||||||
|
BoardPlayerPosLerpStart(lbl_1_bss_324, &sp38, &sp20, 0x3C);
|
||||||
|
while (fn_1_1130(lbl_1_bss_14[9], 270.0f, 30.0f) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[9], &sp8);
|
||||||
|
sp14 = sp8;
|
||||||
|
sp14.x = sp2C.x;
|
||||||
|
PSVECSubtract(&sp14, &sp8, &sp38);
|
||||||
|
PSVECScale(&sp38, &sp38, 0.022727273f);
|
||||||
|
for (i = 0; i < 44; i++) {
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[9], &sp8);
|
||||||
|
PSVECAdd(&sp8, &sp38, &sp8);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_14[9], &sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(lbl_1_bss_14[9], &sp14);
|
||||||
|
while (fn_1_1130(lbl_1_bss_14[9], 0.0f, 30.0f) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
while (GWPlayer[lbl_1_bss_324].moving) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_324, 0xB4, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0);
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
temp_f30 = 8.0f;
|
||||||
|
PSVECSubtract(&sp2C, &sp20, &sp38);
|
||||||
|
PSVECScale(&sp38, &sp38, 0.05f);
|
||||||
|
while (TRUE) {
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &sp20);
|
||||||
|
sp38.y = temp_f30 - var_f31 * var_f31 * 0.25f * 0.075f;
|
||||||
|
var_f31 += 1.0f;
|
||||||
|
PSVECAdd(&sp38, &sp20, &sp20);
|
||||||
|
sp14 = sp2C;
|
||||||
|
sp14.y = sp20.y;
|
||||||
|
PSVECSubtract(&sp14, &sp20, &sp14);
|
||||||
|
var_f29 = PSVECMag(&sp14);
|
||||||
|
if (var_f29 <= 1.0f) {
|
||||||
|
sp38.x = sp38.z = 0.0f;
|
||||||
|
sp20.x = sp2C.x;
|
||||||
|
sp20.z = sp2C.z;
|
||||||
|
}
|
||||||
|
if (sp20.y <= sp2C.y && sp38.y < 0.0f) {
|
||||||
|
sp20.y = sp2C.y;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_324, &sp20);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_324, &sp20);
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_324, 0x5A, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuPrcSleep(60);
|
||||||
|
lbl_1_bss_320 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_CF8C);
|
||||||
|
lbl_1_bss_318 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_D174);
|
||||||
|
lbl_1_bss_31C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL);
|
||||||
|
lbl_1_bss_318->scale.x = 255.0f;
|
||||||
|
lbl_1_bss_314 = 0;
|
||||||
|
lbl_1_bss_326 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_CF8C(omObjData *arg0) {
|
||||||
|
s32 spC;
|
||||||
|
|
||||||
|
if (lbl_1_data_588 != -1) {
|
||||||
|
spC = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
|
||||||
|
if (msmMusGetStatus(lbl_1_data_588) == 0) {
|
||||||
|
HuAudSeqFadeOut(lbl_1_data_588, 100);
|
||||||
|
lbl_1_bss_2FA = 1;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_2FA == 1 && msmMusGetStatus(lbl_1_data_588) == 0) {
|
||||||
|
lbl_1_data_588 = -1;
|
||||||
|
BoardAudSeqPause(0, 0, 1000);
|
||||||
|
OSReport("BGM1 Restore\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_326 != 0 && BoardMGDoneFlagGet() == 1) {
|
||||||
|
fn_1_D0DC();
|
||||||
|
omDelObjEx(boardObjMan, arg0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D0AC(void) {
|
||||||
|
lbl_1_bss_326 = 1;
|
||||||
|
BoardMGExit();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D0DC(void) {
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
omDelObjEx(boardObjMan, lbl_1_bss_31C);
|
||||||
|
BoardModelKill(lbl_1_bss_2F8);
|
||||||
|
for (i = 0; i < 20; i++) {
|
||||||
|
BoardModelKill(lbl_1_bss_2D0[i]);
|
||||||
|
}
|
||||||
|
BoardModelLayerSet(lbl_1_bss_14[9], 0);
|
||||||
|
BoardMGDoneFlagSet(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D174(omObjData *arg0) {
|
||||||
|
UnkMsmStruct_03 sp8;
|
||||||
|
|
||||||
|
if (arg0->work[0] == 0) {
|
||||||
|
arg0->work[0] = MGSeqCreate(3, 0);
|
||||||
|
BoardAudSeqPause(0, 1, 1000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (MGSeqStatGet(arg0->work[0]) == 0) {
|
||||||
|
sp8.unk00 = 1;
|
||||||
|
sp8.unk06 = 0;
|
||||||
|
sp8.unk05 = 0x7F;
|
||||||
|
sp8.unk04 = 1;
|
||||||
|
lbl_1_data_588 = msmMusPlay(0x1D, &sp8);
|
||||||
|
arg0->func = fn_1_D230;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D230(omObjData *arg0) {
|
||||||
|
s32 temp_r3;
|
||||||
|
|
||||||
|
temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
|
||||||
|
if (temp_r3 >= 10 && temp_r3 <= 19) {
|
||||||
|
arg0->work[1]++;
|
||||||
|
arg0->func = fn_1_D2A4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D2A4(omObjData *arg0) {
|
||||||
|
Vec sp18;
|
||||||
|
Vec spC;
|
||||||
|
float sp8;
|
||||||
|
ModelData *temp_r30;
|
||||||
|
s32 temp_r3;
|
||||||
|
|
||||||
|
temp_r30 = &Hu3DData[BoardModelIDGet(lbl_1_bss_2F8)];
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_bss_14[9]);
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[9], &spC);
|
||||||
|
if (arg0->scale.x != 0.0f) {
|
||||||
|
arg0->scale.x -= 8.5f;
|
||||||
|
if (arg0->scale.x < 0.0f) {
|
||||||
|
arg0->scale.x = 0.0f;
|
||||||
|
}
|
||||||
|
BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
|
||||||
|
if (temp_r3 >= 20 && temp_r3 <= 29) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp18);
|
||||||
|
spC.x = sp18.x;
|
||||||
|
BoardModelPosSetV(lbl_1_bss_14[9], &spC);
|
||||||
|
arg0->func = fn_1_D554;
|
||||||
|
if (arg0->work[1] < 8) {
|
||||||
|
BoardModelHookReset(lbl_1_bss_14[7]);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2F8, 1);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_2F8, lbl_1_bss_2B4[arg0->work[1] - 1]);
|
||||||
|
BoardModelHookSet(lbl_1_bss_14[7], lbl_1_data_5BC[arg0->work[1]], lbl_1_bss_2F8);
|
||||||
|
Hu3DMotionExec(BoardModelIDGet(lbl_1_bss_2F8), temp_r30->unk_08, temp_r30->unk_64, 0);
|
||||||
|
}
|
||||||
|
lbl_1_bss_31C->work[0] = 60;
|
||||||
|
lbl_1_bss_31C->unk10 = frandmod(40) + 10;
|
||||||
|
lbl_1_bss_31C->work[1] = arg0->work[1];
|
||||||
|
lbl_1_bss_31C->func = fn_1_E18C;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D554(omObjData *arg0) {
|
||||||
|
float sp8;
|
||||||
|
|
||||||
|
sp8 = BoardModelRotYGet(lbl_1_bss_14[9]);
|
||||||
|
arg0->scale.x += 8.5f;
|
||||||
|
if (arg0->scale.x > 255.0f) {
|
||||||
|
arg0->scale.x = 255.0f;
|
||||||
|
}
|
||||||
|
BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x);
|
||||||
|
if (arg0->scale.x == 255.0f) {
|
||||||
|
arg0->work[0] = 0;
|
||||||
|
lbl_1_bss_31C->work[1] = arg0->work[1];
|
||||||
|
arg0->scale.x = 255.0f;
|
||||||
|
BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x);
|
||||||
|
if (arg0->work[1] == 8) {
|
||||||
|
arg0->func = fn_1_D70C;
|
||||||
|
lbl_1_bss_31C->work[2] = 1;
|
||||||
|
lbl_1_bss_31C->func = fn_1_E374;
|
||||||
|
} else {
|
||||||
|
arg0->func = fn_1_D6A8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D6A8(omObjData *arg0) {
|
||||||
|
if (arg0->work[0] != 0) {
|
||||||
|
BoardModelHookReset(lbl_1_bss_14[7]);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
|
||||||
|
arg0->func = fn_1_D230;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_D70C(omObjData *arg0) {
|
||||||
|
Process *var_r30;
|
||||||
|
|
||||||
|
if (arg0->work[0] == 1) {
|
||||||
|
var_r30 = HuPrcCreate(fn_1_D770, 0x2004, 0x1800, 0);
|
||||||
|
var_r30->user_data = arg0;
|
||||||
|
arg0->func = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s16 lbl_1_data_62C[] = {
|
||||||
|
1, 3, 5, 7, 10, 14, 18, 20
|
||||||
|
};
|
||||||
|
|
||||||
|
static void fn_1_D770(void) {
|
||||||
|
Vec sp114[20];
|
||||||
|
Vec sp24[20];
|
||||||
|
Vec sp18;
|
||||||
|
Vec spC;
|
||||||
|
float temp_f29;
|
||||||
|
float var_f30;
|
||||||
|
float var_f31;
|
||||||
|
char sp8[4];
|
||||||
|
Process *temp_r3;
|
||||||
|
omObjData *var_r28;
|
||||||
|
s32 var_r29;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
lbl_1_bss_314 = lbl_1_data_62C[lbl_1_bss_314 - 1];
|
||||||
|
sprintf(sp8, "%d", lbl_1_bss_314);
|
||||||
|
BoardWinCreate(2, MAKE_MESSID(32, 20), 3);
|
||||||
|
BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_324, 0, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &sp18);
|
||||||
|
for (i = 0; i < lbl_1_bss_314; i++) {
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2D0[i], 1);
|
||||||
|
sp114[i] = sp18;
|
||||||
|
sp114[i].y += 800.0f + i * 120;
|
||||||
|
sp114[i].x += -25.0f + 50.0f * frand8() * 0.003921569f;
|
||||||
|
sp114[i].z += -25.0f + 50.0f * frand8() * 0.003921569f;
|
||||||
|
sp24[i].x = sp24[i].z = 0.0f;
|
||||||
|
sp24[i].y = 360.0f * frand8() * 0.003921569f;
|
||||||
|
BoardModelPosSetV(lbl_1_bss_2D0[i], &sp114[i]);
|
||||||
|
BoardModelRotSetV(lbl_1_bss_2D0[i], &sp24[i]);
|
||||||
|
}
|
||||||
|
var_f31 = -1.0f;
|
||||||
|
var_r29 = 0;
|
||||||
|
while (TRUE) {
|
||||||
|
for (i = 0; i < lbl_1_bss_314; i++) {
|
||||||
|
if (i < var_r29) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
sp114[i].y += var_f31;
|
||||||
|
BoardModelPosSetV(lbl_1_bss_2D0[i], &sp114[i]);
|
||||||
|
sp24[i].y += 45.0f;
|
||||||
|
if (sp24[i].y >= 360.0f) {
|
||||||
|
sp24[i].y -= 360.0f;
|
||||||
|
}
|
||||||
|
BoardModelRotSetV(lbl_1_bss_2D0[i], &sp24[i]);
|
||||||
|
if (sp114[i].y <= sp18.y + 80.0f) {
|
||||||
|
spC = sp114[i];
|
||||||
|
CharModelCoinEffectCreate(1, &spC);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2D0[i], 0);
|
||||||
|
var_r29 += 1;
|
||||||
|
BoardPlayerCoinsAdd(lbl_1_bss_324, 1);
|
||||||
|
HuAudFXPlay(7);
|
||||||
|
omVibrate(lbl_1_bss_324, 12, 6, 6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_f31 *= 1.05f;
|
||||||
|
if (var_f31 < -20.0f) {
|
||||||
|
var_f31 = -20.0f;
|
||||||
|
}
|
||||||
|
if (var_r29 == lbl_1_bss_314) {
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_324, 7, 0.0f, 10.0f, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
while (!BoardPlayerMotionEndCheck(lbl_1_bss_324)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardWinCreate(2, MAKE_MESSID(32, 21), 3);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
temp_r3 = HuPrcCreate(fn_1_E004, 0x2004, 0x1000, 0);
|
||||||
|
temp_r3->user_data = NULL;
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0);
|
||||||
|
var_f30 = 0.0f;
|
||||||
|
temp_f29 = 8.0f;
|
||||||
|
lbl_1_bss_308.z = sp18.z + 100.0f;
|
||||||
|
lbl_1_bss_308.x = sp18.x + 50.0f;
|
||||||
|
PSVECSubtract(&lbl_1_bss_308, &sp18, &spC);
|
||||||
|
PSVECScale(&spC, &spC, 0.04f);
|
||||||
|
while (TRUE) {
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &sp18);
|
||||||
|
spC.y = temp_f29 - var_f30 * var_f30 * 0.25f * 0.075f;
|
||||||
|
var_f30 += 1.0f;
|
||||||
|
PSVECAdd(&spC, &sp18, &sp18);
|
||||||
|
sp114[0] = lbl_1_bss_308;
|
||||||
|
sp114[0].y = sp18.y;
|
||||||
|
PSVECSubtract(&sp114[0], &sp18, &sp114[0]);
|
||||||
|
var_f31 = PSVECMag(&sp114[0]);
|
||||||
|
if (var_f31 <= 1.0f) {
|
||||||
|
spC.x = spC.z = 0.0f;
|
||||||
|
sp18.x = lbl_1_bss_308.x;
|
||||||
|
sp18.z = lbl_1_bss_308.z;
|
||||||
|
}
|
||||||
|
if (sp18.y <= lbl_1_bss_308.y && spC.y < 0.0f) {
|
||||||
|
sp18.y = lbl_1_bss_308.y;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_324, &sp18);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_324, &sp18);
|
||||||
|
omVibrate(lbl_1_bss_324, 12, 6, 6);
|
||||||
|
while (!temp_r3->user_data) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuPrcKill(temp_r3);
|
||||||
|
var_r28 = HuPrcCurrentGet()->user_data;
|
||||||
|
var_r28->func = fn_1_E144;
|
||||||
|
HuPrcEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_E004(void) {
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
while (fn_1_1130(lbl_1_bss_14[9], 90.0f, 30.0f) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[9], &sp14);
|
||||||
|
PSVECSubtract(&lbl_1_bss_2FC, &sp14, &sp8);
|
||||||
|
PSVECScale(&sp8, &sp8, 0.1f);
|
||||||
|
for (i = 0; i < 10; i++) {
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[9], &sp14);
|
||||||
|
PSVECAdd(&sp14, &sp8, &sp14);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_14[9], &sp14);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(lbl_1_bss_14[9], &lbl_1_bss_2FC);
|
||||||
|
while (fn_1_1130(lbl_1_bss_14[9], 0.0f, 30.0f) == 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuPrcCurrentGet()->user_data = (void*) 1;
|
||||||
|
while (TRUE) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_E144(omObjData *arg0) {
|
||||||
|
lbl_1_bss_326 = 1;
|
||||||
|
BoardMGExit();
|
||||||
|
omDelObjEx(boardObjMan, arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_E18C(omObjData *arg0) {
|
||||||
|
s32 var_r29;
|
||||||
|
s16 var_r28;
|
||||||
|
s16 var_r30;
|
||||||
|
|
||||||
|
var_r29 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
|
||||||
|
if (var_r29 >= 20 && var_r29 <= 29) {
|
||||||
|
var_r28 = GWPlayer[lbl_1_bss_324].port;
|
||||||
|
var_r30 = 0;
|
||||||
|
if (GWPlayer[lbl_1_bss_324].com) {
|
||||||
|
if (--arg0->unk10 == 0) {
|
||||||
|
var_r30 = fn_1_E880(arg0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var_r30 = HuPadBtnDown[var_r28];
|
||||||
|
}
|
||||||
|
if (var_r30 & 0xF70) {
|
||||||
|
if ((var_r30 & lbl_1_bss_2C2[arg0->work[1] - 1]) && !(var_r30 & ~lbl_1_bss_2C2[arg0->work[1] - 1])) {
|
||||||
|
arg0->work[2] = 1;
|
||||||
|
} else {
|
||||||
|
arg0->work[2] = 0;
|
||||||
|
}
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
|
||||||
|
arg0->func = fn_1_E374;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
|
||||||
|
arg0->work[2] = 0;
|
||||||
|
arg0->func = fn_1_E374;
|
||||||
|
lbl_1_bss_318->work[0] = 1;
|
||||||
|
fn_1_E374(arg0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_E374(omObjData *arg0) {
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
s32 temp_r3;
|
||||||
|
|
||||||
|
temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
|
||||||
|
if (temp_r3 >= 30 && temp_r3 <= 39) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp14);
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &sp20);
|
||||||
|
PSVECSubtract(&sp14, &sp20, &sp8);
|
||||||
|
PSVECScale(&sp8, &sp8, 0.04f);
|
||||||
|
arg0->trans.x = sp8.x;
|
||||||
|
arg0->trans.z = sp8.z;
|
||||||
|
arg0->trans.y = 5.0f;
|
||||||
|
arg0->rot.x = 0.0f;
|
||||||
|
arg0->scale.x = sp14.x;
|
||||||
|
arg0->scale.y = sp14.y;
|
||||||
|
arg0->scale.z = sp14.z;
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0);
|
||||||
|
arg0->func = fn_1_E4C0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_E4C0(omObjData *arg0) {
|
||||||
|
Vec sp2C;
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
float var_f31;
|
||||||
|
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_324, &sp2C);
|
||||||
|
sp14.x = arg0->scale.x;
|
||||||
|
sp14.y = arg0->scale.y;
|
||||||
|
sp14.z = arg0->scale.z;
|
||||||
|
sp20.x = arg0->trans.x;
|
||||||
|
sp20.z = arg0->trans.z;
|
||||||
|
sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f;
|
||||||
|
arg0->rot.x += 1.0f;
|
||||||
|
PSVECAdd(&sp2C, &sp20, &sp2C);
|
||||||
|
sp8 = sp2C;
|
||||||
|
sp8.y = sp14.y;
|
||||||
|
PSVECSubtract(&sp14, &sp8, &sp8);
|
||||||
|
var_f31 = PSVECMag(&sp8);
|
||||||
|
if (var_f31 <= 1.0f) {
|
||||||
|
arg0->trans.x = arg0->trans.z = 0.0f;
|
||||||
|
sp2C.x = sp14.x;
|
||||||
|
sp2C.z = sp14.z;
|
||||||
|
}
|
||||||
|
if (sp2C.y <= sp14.y && sp20.y < 0.0f) {
|
||||||
|
sp2C.y = sp14.y;
|
||||||
|
BoardPlayerIdleSet(lbl_1_bss_324);
|
||||||
|
arg0->work[3] = 0;
|
||||||
|
if (arg0->work[2] != 0) {
|
||||||
|
arg0->func = fn_1_E6AC;
|
||||||
|
} else {
|
||||||
|
lbl_1_bss_318->work[0] = 1;
|
||||||
|
HuAudFXPlay(0x475);
|
||||||
|
arg0->func = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_324, &sp2C);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_E6AC(omObjData *arg0) {
|
||||||
|
Vec sp8;
|
||||||
|
float var_f31;
|
||||||
|
|
||||||
|
if (arg0->work[3] == 0) {
|
||||||
|
lbl_1_bss_2B0 = -1;
|
||||||
|
var_f31 = 4.0f + 20.0f * (arg0->work[1] - 1);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_14[7], var_f31);
|
||||||
|
BoardModelAttrReset(lbl_1_bss_14[7], 0x40000002);
|
||||||
|
lbl_1_bss_314++;
|
||||||
|
arg0->work[3] = 1;
|
||||||
|
arg0->work[0] = 0x10;
|
||||||
|
lbl_1_bss_2B0 = HuAudFXPlay(lbl_1_data_5F0[arg0->work[1] - 1]);
|
||||||
|
}
|
||||||
|
if (--arg0->work[0] != 0) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp8);
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_324, &sp8);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_2B0 >= 0) {
|
||||||
|
HuAudFXStop(lbl_1_bss_2B0);
|
||||||
|
}
|
||||||
|
lbl_1_bss_318->work[0] = 1;
|
||||||
|
BoardModelAttrSet(lbl_1_bss_14[7], 0x40000002);
|
||||||
|
arg0->func = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static s16 fn_1_E880(omObjData *arg0) {
|
||||||
|
s16 temp_r28;
|
||||||
|
s16 var_r30;
|
||||||
|
s32 temp_r29;
|
||||||
|
|
||||||
|
temp_r28 = GWPlayer[lbl_1_bss_324].diff;
|
||||||
|
var_r30 = 0;
|
||||||
|
temp_r29 = frandmod(100);
|
||||||
|
switch (temp_r28) {
|
||||||
|
case 0:
|
||||||
|
if (temp_r29 < 35) {
|
||||||
|
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
|
||||||
|
} else if (temp_r29 < 90) {
|
||||||
|
var_r30 = -1;
|
||||||
|
} else {
|
||||||
|
arg0->unk10 = 100;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (temp_r29 < 55) {
|
||||||
|
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
|
||||||
|
} else if (temp_r29 < 90) {
|
||||||
|
var_r30 = -1;
|
||||||
|
} else {
|
||||||
|
arg0->unk10 = 100;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (temp_r29 < 85) {
|
||||||
|
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
|
||||||
|
} else {
|
||||||
|
var_r30 = -1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return var_r30;
|
||||||
|
}
|
||||||
656
src/REL/w07Dll/mg_item.c
Normal file
656
src/REL/w07Dll/mg_item.c
Normal file
|
|
@ -0,0 +1,656 @@
|
||||||
|
#include "REL/w04Dll.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/frand.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "game/hsfanim.h"
|
||||||
|
#include "game/hsfdraw.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/minigame_seq.h"
|
||||||
|
#include "game/objsub.h"
|
||||||
|
#include "game/pad.h"
|
||||||
|
#include "game/process.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
#include "game/window.h"
|
||||||
|
#include "game/board/audio.h"
|
||||||
|
#include "game/board/main.h"
|
||||||
|
#include "game/board/model.h"
|
||||||
|
#include "game/board/player.h"
|
||||||
|
#include "game/board/window.h"
|
||||||
|
|
||||||
|
#include "dolphin.h"
|
||||||
|
#include "ext_math.h"
|
||||||
|
|
||||||
|
static void fn_1_A71C(void);
|
||||||
|
static void fn_1_A7E8(void);
|
||||||
|
static void fn_1_C388(ModelData *model, ParticleData *particle, Mtx matrix);
|
||||||
|
|
||||||
|
static s16 lbl_1_bss_2AC;
|
||||||
|
static s16 lbl_1_bss_2A6[3];
|
||||||
|
static s16 lbl_1_bss_29E[4];
|
||||||
|
static s16 lbl_1_bss_298[3];
|
||||||
|
static float lbl_1_bss_294;
|
||||||
|
static s32 lbl_1_bss_290_pad;
|
||||||
|
static s32 lbl_1_bss_28C;
|
||||||
|
static AnimData *lbl_1_bss_288;
|
||||||
|
|
||||||
|
static char *lbl_1_data_51C[] = {
|
||||||
|
"item1", "item2", "item3",
|
||||||
|
"switch1", "switch2", "switch3"
|
||||||
|
};
|
||||||
|
|
||||||
|
static s32 lbl_1_data_534[] = {
|
||||||
|
0x00000466,
|
||||||
|
0x00000467,
|
||||||
|
0x00000468
|
||||||
|
};
|
||||||
|
|
||||||
|
static s32 lbl_1_data_540[] = {
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 109),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 110),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 111),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 112),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 113),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 114),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 115),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 116),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 118),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 119),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 120),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 121),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 122),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 123),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W02, 24),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W02, 25),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W02, 26),
|
||||||
|
-1
|
||||||
|
};
|
||||||
|
|
||||||
|
void fn_1_A0F8(void) {
|
||||||
|
Vec sp8;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
lbl_1_bss_29E[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 13), NULL, 1);
|
||||||
|
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]);
|
||||||
|
BoardModelAttrSet(lbl_1_bss_29E[i], 0x40000002);
|
||||||
|
}
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[6], &sp8);
|
||||||
|
lbl_1_bss_294 = sp8.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_A1F0(void) {
|
||||||
|
Vec sp38[3];
|
||||||
|
Vec sp2C;
|
||||||
|
Vec sp20;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
float var_f31;
|
||||||
|
s16 temp_r29;
|
||||||
|
s32 var_r30;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
lbl_1_bss_2AC = GWSystem.player_curr;
|
||||||
|
temp_r29 = BoardModelMotionCreate(lbl_1_bss_14[10], DATA_MAKE_NUM(DATADIR_BGUEST, 25));
|
||||||
|
HuPrcSleep(60);
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
for (i = 0; i < 30; i++) {
|
||||||
|
var_f31 += 3.0f;
|
||||||
|
BoardModelRotYSet(lbl_1_bss_14[10], var_f31);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelMotionStart(lbl_1_bss_14[10], temp_r29, 0);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i], &sp38[i]);
|
||||||
|
}
|
||||||
|
while (TRUE) {
|
||||||
|
var_r30 = 0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelPosGet(lbl_1_bss_298[i], &sp2C);
|
||||||
|
sp2C.y += 2.0f;
|
||||||
|
if (sp2C.y >= sp38[i].y) {
|
||||||
|
sp2C.y = sp38[i].y;
|
||||||
|
var_r30++;
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[i], &sp2C);
|
||||||
|
}
|
||||||
|
if (var_r30 == 3) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i], lbl_1_bss_298[i]);
|
||||||
|
}
|
||||||
|
while (BoardModelMotionTimeGet(lbl_1_bss_14[10]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[10])) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelMotionShiftSet(lbl_1_bss_14[10], 1, 0.0f, 5.0f, 0x40000001);
|
||||||
|
BoardAudSeqPause(0, 1, 1000);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
|
||||||
|
BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002);
|
||||||
|
HuPrcSleep(20);
|
||||||
|
HuAudFXPlay(0x469);
|
||||||
|
HuPrcSleep(50);
|
||||||
|
BoardMusStart(1, 0x1E, 0x7F, 0);
|
||||||
|
HuAudFXPlay(0x46C);
|
||||||
|
while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < 202.0f) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_14[6], 202.0f);
|
||||||
|
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
|
||||||
|
BoardModelMotionKill(lbl_1_bss_14[10], temp_r29);
|
||||||
|
sp14.x = -35.0f;
|
||||||
|
sp14.y = sp14.z = 0.0f;
|
||||||
|
sp8.x = 0.0f;
|
||||||
|
sp8.y = 0.0f;
|
||||||
|
sp8.z = -150.0f;
|
||||||
|
BoardCameraMotionStartEx(lbl_1_bss_14[6], &sp14, &sp8, 1500.0f, 25.0f, 21);
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp2C);
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[4], &sp20);
|
||||||
|
sp20.z = sp2C.z - 50.0f;
|
||||||
|
sp20.y = sp2C.y;
|
||||||
|
BoardPlayerPosLerpStart(lbl_1_bss_2AC, &sp2C, &sp20, 0x3C);
|
||||||
|
while (GWPlayer[lbl_1_bss_2AC].moving) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0xB4, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardCameraMotionWait();
|
||||||
|
fn_1_A7E8();
|
||||||
|
BoardMGExit();
|
||||||
|
while (TRUE) {
|
||||||
|
if (BoardMGDoneFlagGet() == 1) {
|
||||||
|
BoardMGDoneFlagSet(0);
|
||||||
|
fn_1_BA7C();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuPrcEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_A71C(void) {
|
||||||
|
Vec sp8;
|
||||||
|
float var_f31;
|
||||||
|
s16 temp_r31;
|
||||||
|
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
temp_r31 = (s16) HuPrcCurrentGet()->user_data;
|
||||||
|
while (TRUE) {
|
||||||
|
BoardModelPosGet(temp_r31, &sp8);
|
||||||
|
sp8.y += 0.25 * sind(var_f31);
|
||||||
|
var_f31 += 5.0f;
|
||||||
|
if (var_f31 >= 360.0f) {
|
||||||
|
var_f31 -= 360.0f;
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(temp_r31, &sp8);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_A7E8(void) {
|
||||||
|
Vec sp54[3];
|
||||||
|
Vec sp48;
|
||||||
|
Vec sp3C;
|
||||||
|
Vec sp30;
|
||||||
|
Vec sp24;
|
||||||
|
Vec sp18;
|
||||||
|
float sp10[2];
|
||||||
|
float var_f29;
|
||||||
|
float var_f30;
|
||||||
|
float var_f31;
|
||||||
|
Process *var_r20;
|
||||||
|
s16 var_r30;
|
||||||
|
s16 var_r28;
|
||||||
|
s16 var_r27;
|
||||||
|
s16 var_r26;
|
||||||
|
s16 var_r25;
|
||||||
|
s16 var_r24;
|
||||||
|
u16 temp_r29;
|
||||||
|
u16 var_r23;
|
||||||
|
s16 var_r22;
|
||||||
|
s16 var_r21;
|
||||||
|
s16 var_r19;
|
||||||
|
u16 temp_r18;
|
||||||
|
u16 var_r17;
|
||||||
|
ParticleData *spC;
|
||||||
|
s32 sp8;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
var_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 14), NULL, 0);
|
||||||
|
BoardModelAttrSet(var_r28, 0x40000001);
|
||||||
|
BoardModelVisibilitySet(var_r28, 0);
|
||||||
|
var_r30 = 1;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i + 3], &sp54[i]);
|
||||||
|
sp54[i].y += 50.0f;
|
||||||
|
}
|
||||||
|
var_r25 = MGSeqCreate(3, 0);
|
||||||
|
while (MGSeqStatGet(var_r25) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
var_r24 = 5;
|
||||||
|
var_r21 = 60;
|
||||||
|
var_r25 = MGSeqCreate(1, var_r24, 0x120, 0x40);
|
||||||
|
HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(32, 22));
|
||||||
|
var_r27 = HuWinCreate(-10000.0f, 368.0f, sp10[0], sp10[1], 0);
|
||||||
|
HuWinMesSet(var_r27, MAKE_MESSID(32, 22));
|
||||||
|
HuWinBGTPLvlSet(var_r27, 0.0f);
|
||||||
|
HuWinMesSpeedSet(var_r27, 0);
|
||||||
|
BoardModelVisibilitySet(var_r28, 1);
|
||||||
|
BoardModelPosSetV(var_r28, &sp54[var_r30]);
|
||||||
|
var_r22 = 30;
|
||||||
|
var_r19 = 0;
|
||||||
|
temp_r18 = GWPlayer[lbl_1_bss_2AC].port;
|
||||||
|
while (TRUE) {
|
||||||
|
var_r21--;
|
||||||
|
if (var_r21 == 0) {
|
||||||
|
var_r21 = 60;
|
||||||
|
if (--var_r24 < 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
MGSeqParamSet(var_r25, 1, var_r24);
|
||||||
|
}
|
||||||
|
if (GWPlayer[lbl_1_bss_2AC].com) {
|
||||||
|
if (var_r22 != 0) {
|
||||||
|
var_r22--;
|
||||||
|
} else {
|
||||||
|
var_r22 = frandmod(30) + 15;
|
||||||
|
if (frandBool() || var_r19 == 3) {
|
||||||
|
var_r17 = 0x100;
|
||||||
|
} else {
|
||||||
|
if (frandBool()) {
|
||||||
|
var_r23 = 1;
|
||||||
|
} else {
|
||||||
|
var_r23 = 2;
|
||||||
|
}
|
||||||
|
var_r19++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var_r17 = HuPadBtnDown[temp_r18];
|
||||||
|
var_r23 = HuPadDStkRep[temp_r18];
|
||||||
|
}
|
||||||
|
if (var_r17 & 0x100) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((var_r23 & 1) && var_r30 != 0) {
|
||||||
|
HuAudFXPlay(0);
|
||||||
|
var_r30--;
|
||||||
|
}
|
||||||
|
if ((var_r23 & 2) && var_r30 != 2) {
|
||||||
|
HuAudFXPlay(0);
|
||||||
|
var_r30++;
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(var_r28, &sp54[var_r30]);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuAudFXPlay(2);
|
||||||
|
MGSeqParamSet(var_r25, 2, -1);
|
||||||
|
HuWinKill(var_r27);
|
||||||
|
for (i = 0; i < 360; i += 12) {
|
||||||
|
sp48.x = sp48.y = sp48.z = 1.0 + 0.8f * sind(i % 180);
|
||||||
|
BoardModelScaleSetV(var_r28, &sp48);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelVisibilitySet(var_r28, 0);
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp18);
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0);
|
||||||
|
var_f30 = 0.0f;
|
||||||
|
var_f29 = 12.0f;
|
||||||
|
sp3C = sp54[var_r30];
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
PSVECSubtract(&sp3C, &sp30, &sp3C);
|
||||||
|
PSVECScale(&sp3C, &sp3C, 0.05f);
|
||||||
|
while (TRUE) {
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f;
|
||||||
|
var_f30 += 1.0f;
|
||||||
|
PSVECAdd(&sp3C, &sp30, &sp30);
|
||||||
|
if (sp30.y <= sp54[var_r30].y - 40.0f && sp3C.y < 0.0f) {
|
||||||
|
sp30.y = sp54[var_r30].y - 40.0f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
|
||||||
|
sp48 = sp54[var_r30];
|
||||||
|
sp48.y = sp30.y = 0.0f;
|
||||||
|
PSVECSubtract(&sp48, &sp30, &sp30);
|
||||||
|
var_f31 = PSVECMag(&sp30);
|
||||||
|
if (var_f31 <= 1.0f) {
|
||||||
|
sp3C.x = sp3C.z = 0.0f;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardAudSeqFadeOut(1, 100);
|
||||||
|
HuAudFXPlay(lbl_1_data_534[var_r30]);
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_29E[var_r30], 0.0f);
|
||||||
|
BoardModelAttrReset(lbl_1_bss_29E[var_r30], 0x40000002);
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001);
|
||||||
|
while (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) < BoardModelMotionMaxTimeGet(lbl_1_bss_29E[var_r30])) {
|
||||||
|
if (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) >= 13.0f) {
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
sp30.y += 1.0f;
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
temp_r29 = frandmod(3);
|
||||||
|
BoardModelHookReset(lbl_1_bss_14[6]);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]);
|
||||||
|
if (i != temp_r29) {
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_298[i], 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[1], lbl_1_bss_298[temp_r29]);
|
||||||
|
BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002);
|
||||||
|
HuPrcSleep(30);
|
||||||
|
HuAudFXPlay(0x310);
|
||||||
|
while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[6])) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelHookReset(lbl_1_bss_14[6]);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]);
|
||||||
|
}
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[1], &sp24);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24);
|
||||||
|
var_r20 = HuPrcChildCreate(fn_1_A71C, 0x2002, 0x800, 0, boardMainProc);
|
||||||
|
var_r20->user_data = (void*) lbl_1_bss_298[temp_r29];
|
||||||
|
var_r26 = Hu3DParticleCreate(lbl_1_bss_288, 100);
|
||||||
|
spC = Hu3DData[var_r26].unk_120;
|
||||||
|
spC->unk_02 = lbl_1_bss_298[temp_r29];
|
||||||
|
Hu3DParticleHookSet(var_r26, fn_1_C388);
|
||||||
|
Hu3DParticleColSet(var_r26, 0xFF, 0xFF, 0);
|
||||||
|
Hu3DModelPosSet(var_r26, 0.0f, 0.0f, 0.0f);
|
||||||
|
Hu3DParticleBlendModeSet(var_r26, 1);
|
||||||
|
Hu3DModelLayerSet(var_r26, 2);
|
||||||
|
lbl_1_bss_28C = HuAudFXPlay(0x35F);
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0);
|
||||||
|
var_f30 = 0.0f;
|
||||||
|
var_f29 = 12.0f;
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
PSVECSubtract(&sp18, &sp30, &sp3C);
|
||||||
|
PSVECScale(&sp3C, &sp3C, 0.05f);
|
||||||
|
while (TRUE) {
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f;
|
||||||
|
var_f30 += 1.0f;
|
||||||
|
PSVECAdd(&sp3C, &sp30, &sp30);
|
||||||
|
if (sp30.y < sp18.y) {
|
||||||
|
sp30.y = sp18.y;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
|
||||||
|
sp48 = sp18;
|
||||||
|
sp48.y = sp30.y = 0.0f;
|
||||||
|
PSVECSubtract(&sp48, &sp30, &sp30);
|
||||||
|
var_f31 = PSVECMag(&sp30);
|
||||||
|
if (var_f31 <= 1.0f) {
|
||||||
|
sp3C.x = sp3C.z = 0.0f;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
omVibrate(lbl_1_bss_2AC, 12, 6, 6);
|
||||||
|
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001);
|
||||||
|
BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24);
|
||||||
|
sp3C = sp24;
|
||||||
|
sp3C.z += 100.0f;
|
||||||
|
PSVECSubtract(&sp3C, &sp24, &sp3C);
|
||||||
|
PSVECScale(&sp3C, &sp3C, 0.033333335f);
|
||||||
|
for (i = 0; i < 30; i++) {
|
||||||
|
BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24);
|
||||||
|
PSVECAdd(&sp24, &sp3C, &sp24);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
sp24.y = sp30.y;
|
||||||
|
BoardPlayerPosLerpStart(lbl_1_bss_2AC, &sp30, &sp24, 0x3C);
|
||||||
|
while (GWPlayer[lbl_1_bss_2AC].moving) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0, 0xF);
|
||||||
|
while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
var_f31 = 90.0f;
|
||||||
|
for (i = 0; i < 15; i++) {
|
||||||
|
var_f31 -= 3.0f;
|
||||||
|
BoardModelRotYSet(lbl_1_bss_14[10], var_f31);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardWinCreate(2, MAKE_MESSID(32, 15), 3);
|
||||||
|
BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_2A6[temp_r29]), 0);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
HuAudFXPlay(0x30D);
|
||||||
|
HuPrcKill(var_r20);
|
||||||
|
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
|
||||||
|
BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24);
|
||||||
|
var_f29 = 1.0f;
|
||||||
|
var_f31 = (sp30.y - sp24.y) / 30.0f;
|
||||||
|
var_f30 = -0.04f;
|
||||||
|
var_r27 = 0;
|
||||||
|
HuAudFXFadeOut(lbl_1_bss_28C, 0x1F3);
|
||||||
|
while (var_r27 == 0) {
|
||||||
|
sp24.y += var_f31;
|
||||||
|
var_f29 += var_f30;
|
||||||
|
if (var_f29 < 0.0f) {
|
||||||
|
var_f29 = 0.0f;
|
||||||
|
var_r27 = 1;
|
||||||
|
}
|
||||||
|
sp48.x = sp48.y = sp48.z = var_f29;
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24);
|
||||||
|
BoardModelScaleSetV(lbl_1_bss_298[temp_r29], &sp48);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuAudFXStop(lbl_1_bss_28C);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_298[temp_r29], 0);
|
||||||
|
BoardPlayerItemAdd(lbl_1_bss_2AC, lbl_1_bss_2A6[temp_r29]);
|
||||||
|
omVibrate(lbl_1_bss_2AC, 12, 6, 6);
|
||||||
|
sp8 = HuAudSStreamPlay(2);
|
||||||
|
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 7, 0.0f, 5.0f, 0);
|
||||||
|
while (!BoardPlayerMotionEndCheck(lbl_1_bss_2AC)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
var_f31 = 45.0f;
|
||||||
|
for (i = 0; i < 15; i++) {
|
||||||
|
var_f31 -= 3.0f;
|
||||||
|
BoardModelRotYSet(lbl_1_bss_14[10], var_f31);
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardModelRotYSet(lbl_1_bss_14[10], 0.0f);
|
||||||
|
HuPrcSleep(30);
|
||||||
|
while (HuAudSStreamStatGet(sp8) != 0) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
BoardAudSeqPause(0, 0, 1000);
|
||||||
|
BoardWinCreate(2, MAKE_MESSID(32, 16), 3);
|
||||||
|
BoardWinWait();
|
||||||
|
BoardWinKill();
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
|
||||||
|
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
|
||||||
|
Hu3DModelKill(var_r26);
|
||||||
|
BoardModelKill(var_r28);
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_BA7C(void) {
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelKill(lbl_1_bss_298[i]);
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_288) {
|
||||||
|
HuSprAnimKill(lbl_1_bss_288);
|
||||||
|
lbl_1_bss_288 = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_BB00(s16 *arg0) {
|
||||||
|
Vec sp54[3];
|
||||||
|
Vec sp30[3];
|
||||||
|
Vec sp24;
|
||||||
|
Vec sp18;
|
||||||
|
float spC[3];
|
||||||
|
float temp_f28;
|
||||||
|
float var_f27;
|
||||||
|
float var_f29;
|
||||||
|
s32 var_r30;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
lbl_1_bss_2A6[i] = arg0[i];
|
||||||
|
lbl_1_bss_298[i] = BoardModelCreate(lbl_1_data_540[lbl_1_bss_2A6[i]], NULL, 0);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_298[i], 0);
|
||||||
|
if (lbl_1_bss_2A6[i] == 11) {
|
||||||
|
BoardModelAttrSet(lbl_1_bss_298[i], 0x40000001);
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_2A6[i] == 5) {
|
||||||
|
Hu3DData[BoardModelIDGet(lbl_1_bss_298[i])].unk_F0[1][3] = -50.0f;
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_2A6[i] == 4) {
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_298[i], 0.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lbl_1_bss_288 == NULL) {
|
||||||
|
lbl_1_bss_288 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0));
|
||||||
|
HuSprAnimLock(lbl_1_bss_288);
|
||||||
|
}
|
||||||
|
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
|
||||||
|
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
|
||||||
|
sp18.x = sp18.y = sp18.z = 0.0f;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i], &sp54[i]);
|
||||||
|
sp54[i].y += -50.0f;
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_298[i], 1);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[i], &sp54[i]);
|
||||||
|
BoardModelPosGet(lbl_1_bss_14[10], &sp24);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[i], &sp24);
|
||||||
|
BoardModelScaleSetV(lbl_1_bss_298[i], &sp18);
|
||||||
|
PSVECSubtract(&sp54[i], &sp24, &sp30[i]);
|
||||||
|
PSVECNormalize(&sp30[i], &sp30[i]);
|
||||||
|
spC[i] = 0.0f;
|
||||||
|
}
|
||||||
|
sp30[0].y = 16.0f;
|
||||||
|
sp30[1].y = 13.0f;
|
||||||
|
sp30[2].y = 10.0f;
|
||||||
|
HuAudFXPlay(0x362);
|
||||||
|
var_f29 = 0.0f;
|
||||||
|
while (TRUE) {
|
||||||
|
var_r30 = 0;
|
||||||
|
var_f29 += 0.05f;
|
||||||
|
if (var_f29 > 1.0f) {
|
||||||
|
var_f29 = 1.0f;
|
||||||
|
}
|
||||||
|
sp18.x = sp18.y = sp18.z = var_f29;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelPosGet(lbl_1_bss_298[i], &sp24);
|
||||||
|
temp_f28 = sp30[i].y - spC[i] * spC[i] * 0.25f * 0.075f;
|
||||||
|
sp24.x += 6.55f * sp30[i].x;
|
||||||
|
sp24.z += 6.55f * sp30[i].z;
|
||||||
|
sp24.y += temp_f28;
|
||||||
|
var_f27 = VECDistanceXZ(&sp54[i], &sp24);
|
||||||
|
if (var_f27 < 3.0f) {
|
||||||
|
sp30[i].x = sp30[i].z = 0.0f;
|
||||||
|
sp24.x = sp54[i].x;
|
||||||
|
sp24.z = sp54[i].z;
|
||||||
|
}
|
||||||
|
if (sp24.y <= sp54[i].y && temp_f28 < 0.0f) {
|
||||||
|
sp24.y = sp54[i].y;
|
||||||
|
var_r30++;
|
||||||
|
}
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[i], &sp24);
|
||||||
|
BoardModelScaleSetV(lbl_1_bss_298[i], &sp18);
|
||||||
|
spC[i] += 1.0f;
|
||||||
|
}
|
||||||
|
if (var_r30 == 3) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
BoardModelPosSetV(lbl_1_bss_298[i], &sp54[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_C2BC(void) {
|
||||||
|
Vec sp8;
|
||||||
|
float var_f31;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
|
||||||
|
var_f31 = 1.0f;
|
||||||
|
for (i = 0; i < 20; i++) {
|
||||||
|
var_f31 -= 0.05f;
|
||||||
|
if (var_f31 < 0.0f) {
|
||||||
|
var_f31 = 0.0f;
|
||||||
|
}
|
||||||
|
sp8.x = sp8.y = sp8.z = var_f31;
|
||||||
|
for (j = 0; j < 3; j++) {
|
||||||
|
BoardModelScaleSetV(lbl_1_bss_298[j], &sp8);
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_C388(ModelData *model, ParticleData *particle, Mtx matrix) {
|
||||||
|
Vec sp8;
|
||||||
|
HsfanimStruct01 *var_r31;
|
||||||
|
float var_f31;
|
||||||
|
float temp_f30;
|
||||||
|
float temp_f29;
|
||||||
|
s32 var_r28;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (particle->unk_34 == 0) {
|
||||||
|
var_r31 = particle->unk_48;
|
||||||
|
for (i = 0; i < particle->unk_30; i++, var_r31++) {
|
||||||
|
var_r31->unk40.a = 0;
|
||||||
|
var_r31->unk2C = 0.0f;
|
||||||
|
}
|
||||||
|
particle->unk_00 = 0;
|
||||||
|
}
|
||||||
|
BoardModelScaleGet(particle->unk_02, &sp8);
|
||||||
|
var_f31 = sp8.x;
|
||||||
|
BoardModelPosGet(particle->unk_02, &sp8);
|
||||||
|
for (i = 0; i < 22; i++) {
|
||||||
|
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_r28 != particle->unk_30) {
|
||||||
|
temp_f30 = 0.003921569f * frand8() * 360.0f;
|
||||||
|
temp_f29 = var_f31 * (20.0f + 0.003921569f * frand8() * 60.0f);
|
||||||
|
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 + var_f31 * (-30.0f + 0.003921569f * frand8() * 40.0f);
|
||||||
|
var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f;
|
||||||
|
var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f;
|
||||||
|
var_r31->unk40.a = 0xB4;
|
||||||
|
var_r31->unk2C = var_f31 * 15.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var_r31 = particle->unk_48;
|
||||||
|
for (i = 0; i < particle->unk_30; i++, var_r31++) {
|
||||||
|
if (var_r31->unk2C != 0.0f) {
|
||||||
|
var_r31->unk34.y -= var_r31->unk08.x;
|
||||||
|
var_r31->unk2C -= var_r31->unk08.y;
|
||||||
|
if (var_r31->unk2C <= 0.0f) {
|
||||||
|
var_r31->unk2C = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -8,10 +8,18 @@ static s16 boardSeq[2][2];
|
||||||
|
|
||||||
static s32 boardFX = -1;
|
static s32 boardFX = -1;
|
||||||
|
|
||||||
|
//mod: add new music id for extra board
|
||||||
static s16 boardMusTbl[] = {
|
static s16 boardMusTbl[] = {
|
||||||
0x000D, 0x0011, 0x0015,
|
/* [BOARD_ID_MAIN1] */ 0x000D,
|
||||||
0x001C, 0x0021, 0x0025,
|
/* [BOARD_ID_MAIN2] */ 0x0011,
|
||||||
0x0028, 0x0029, 0x002A
|
/* [BOARD_ID_MAIN3] */ 0x0015,
|
||||||
|
/* [BOARD_ID_MAIN4] */ 0x001C,
|
||||||
|
/* [BOARD_ID_MAIN5] */ 0x0021,
|
||||||
|
/* [BOARD_ID_MAIN6] */ 0x0025,
|
||||||
|
/* [BOARD_ID_TUTORIAL] */ 0x0028,
|
||||||
|
/* [BOARD_ID_EXTRA1] */ 0x0029,
|
||||||
|
/* [BOARD_ID_EXTRA2] */ 0x002A,
|
||||||
|
/* [BOARD_ID_CUSTOM] */ 0x002A,
|
||||||
};
|
};
|
||||||
|
|
||||||
void BoardMusStartBoard(void) {
|
void BoardMusStartBoard(void) {
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,7 @@ static void ExecBattle(void) {
|
||||||
s32 var_r23;
|
s32 var_r23;
|
||||||
MgInfo *var_r29;
|
MgInfo *var_r29;
|
||||||
s32 var_r27 = 0;
|
s32 var_r27 = 0;
|
||||||
|
//mod: extend for custom board
|
||||||
s32 sp8[] = {
|
s32 sp8[] = {
|
||||||
DATADIR_W01,
|
DATADIR_W01,
|
||||||
DATADIR_W02,
|
DATADIR_W02,
|
||||||
|
|
@ -159,7 +160,8 @@ static void ExecBattle(void) {
|
||||||
DATADIR_W06,
|
DATADIR_W06,
|
||||||
DATADIR_W10,
|
DATADIR_W10,
|
||||||
DATADIR_W20,
|
DATADIR_W20,
|
||||||
DATADIR_W21
|
DATADIR_W21,
|
||||||
|
DATADIR_W07
|
||||||
};
|
};
|
||||||
|
|
||||||
var_r29 = mgInfoTbl;
|
var_r29 = mgInfoTbl;
|
||||||
|
|
|
||||||
|
|
@ -182,13 +182,22 @@ static s32 booSfxTbl[4][8] = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static s32 hostMess[] = {
|
static s32 hostMess[] = {
|
||||||
MAKE_MESSID(7, 14),
|
MAKE_MESSID(7, 14),
|
||||||
MAKE_MESSID(7, 20),
|
MAKE_MESSID(7, 20),
|
||||||
MAKE_MESSID(7, 26),
|
MAKE_MESSID(7, 26),
|
||||||
MAKE_MESSID(7, 32),
|
MAKE_MESSID(7, 32),
|
||||||
MAKE_MESSID(7, 38),
|
MAKE_MESSID(7, 38),
|
||||||
MAKE_MESSID(7, 44)
|
MAKE_MESSID(7, 44),
|
||||||
|
|
||||||
|
//dummy data for tutorial and extra board
|
||||||
|
MAKE_MESSID(7, 44),
|
||||||
|
MAKE_MESSID(7, 44),
|
||||||
|
MAKE_MESSID(7, 44),
|
||||||
|
|
||||||
|
//custom board data
|
||||||
|
MAKE_MESSID(7, 44),
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 ballMdlTbl[] = {
|
static s32 ballMdlTbl[] = {
|
||||||
|
|
|
||||||
|
|
@ -21,35 +21,57 @@
|
||||||
static s16 houseMdl[6];
|
static s16 houseMdl[6];
|
||||||
|
|
||||||
// data
|
// data
|
||||||
static s32 hostMesTbl[6][6] = {
|
//mod: extend for custom board
|
||||||
{ 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 },
|
static s32 hostMesTbl[10][9] = {
|
||||||
{ 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 },
|
/* [BOARD_ID_MAIN1] */ { 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 },
|
||||||
{ 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D },
|
/* [BOARD_ID_MAIN2] */ { 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 },
|
||||||
{ 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 },
|
/* [BOARD_ID_MAIN3] */ { 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D },
|
||||||
{ 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 },
|
/* [BOARD_ID_MAIN4] */ { 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 },
|
||||||
{ 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F },
|
/* [BOARD_ID_MAIN5] */ { 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 },
|
||||||
|
/* [BOARD_ID_MAIN6] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F },
|
||||||
|
|
||||||
|
//dummy data for tutorial and extra board
|
||||||
|
/* [BOARD_ID_TUTORIAL] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F },
|
||||||
|
/* [BOARD_ID_EXTRA2] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F },
|
||||||
|
|
||||||
|
//custom board data
|
||||||
|
/* [BOARD_ID_CUSTOM] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F },
|
||||||
};
|
};
|
||||||
static BoardModelParam houseMdlTbl[6] = {
|
|
||||||
{ 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
//mod: extend for custom board
|
||||||
{ 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
static BoardModelParam houseMdlTbl[10] = {
|
||||||
{ 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
/* [BOARD_ID_MAIN1] */ { 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
{ 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
/* [BOARD_ID_MAIN2] */ { 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
{ 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
/* [BOARD_ID_MAIN3] */ { 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
{ 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
/* [BOARD_ID_MAIN4] */ { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
|
/* [BOARD_ID_MAIN5] */ { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
|
/* [BOARD_ID_MAIN6] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
|
|
||||||
|
//dummy data for tutorial and extra board
|
||||||
|
/* [BOARD_ID_TUTORIAL] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
|
/* [BOARD_ID_EXTRA1] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
|
/* [BOARD_ID_EXTRA2] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
|
|
||||||
|
//custom board data
|
||||||
|
/* [BOARD_ID_CUSTOM] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF },
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 booMotTbl[3] = {
|
static s32 booMotTbl[3] = {
|
||||||
0x20013, 0x20016, 0xFFFFFFFF
|
0x20013, 0x20016, 0xFFFFFFFF
|
||||||
};
|
};
|
||||||
static s32 houseMotTbl[9][3] = {
|
|
||||||
{ 0x20001, 0x20003, 0x20004 },
|
//mod: add entry for custom board
|
||||||
{ 0x20009, 0x2000B, 0x2000C },
|
static s32 houseMotTbl[10][3] = {
|
||||||
{ 0x2000E, 0x20010, 0x20011 },
|
/* [BOARD_ID_MAIN1] */ { 0x20001, 0x20003, 0x20004 },
|
||||||
{ 0x20018, 0x2001A, 0x2001B },
|
/* [BOARD_ID_MAIN2] */ { 0x20009, 0x2000B, 0x2000C },
|
||||||
{ 0x2001D, 0x2001F, 0x20020 },
|
/* [BOARD_ID_MAIN3] */ { 0x2000E, 0x20010, 0x20011 },
|
||||||
{ 0x20022, 0x20024, 0x20025 },
|
/* [BOARD_ID_MAIN4] */ { 0x20018, 0x2001A, 0x2001B },
|
||||||
{ 0x20018, 0x2001A, 0x2001B },
|
/* [BOARD_ID_MAIN5] */ { 0x2001D, 0x2001F, 0x20020 },
|
||||||
{ 0x20001, 0x20003, 0x20004 },
|
/* [BOARD_ID_MAIN6] */ { 0x20022, 0x20024, 0x20025 },
|
||||||
{ 0x20001, 0x20003, 0x20004 }
|
/* [BOARD_ID_TUTORIAL] */ { 0x20018, 0x2001A, 0x2001B },
|
||||||
|
/* [BOARD_ID_EXTRA1] */ { 0x20001, 0x20003, 0x20004 },
|
||||||
|
/* [BOARD_ID_EXTRA2] */ { 0x20001, 0x20003, 0x20004 },
|
||||||
|
/* [BOARD_ID_CUSTOM] */ { 0x20001, 0x20003, 0x20004 }
|
||||||
};
|
};
|
||||||
|
|
||||||
// sbss
|
// sbss
|
||||||
|
|
|
||||||
|
|
@ -736,9 +736,9 @@ s32 BoardComJunctionInputGet(s32 item, Vec *input, s32 num_dirs, float *dirs) {
|
||||||
choose_path = 0;
|
choose_path = 0;
|
||||||
}
|
}
|
||||||
if (choose_path != 0) {
|
if (choose_path != 0) {
|
||||||
if (board >= 0 && board <= 5) {
|
if (board >= BOARD_ID_MAIN1 && board <= BOARD_ID_MAIN6) {
|
||||||
space_next = BoardComPathBestGet(space);
|
space_next = BoardComPathBestGet(space);
|
||||||
} else if (board == 7) {
|
} else if (board == BOARD_ID_EXTRA1) {
|
||||||
space_next = BoardComPathBestGetFlag(space, 0x10000000, 10);
|
space_next = BoardComPathBestGetFlag(space, 0x10000000, 10);
|
||||||
}
|
}
|
||||||
if (space_next == -1) {
|
if (space_next == -1) {
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,12 @@ static s32 itemMdlTbl[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 forceMoveSfxTbl[] = {
|
static s32 forceMoveSfxTbl[] = {
|
||||||
0x38, 0x45, 0x42, 0x4D, 0x48, 0x3F
|
0x38,
|
||||||
|
0x45,
|
||||||
|
0x42,
|
||||||
|
0x4D,
|
||||||
|
0x48,
|
||||||
|
0x3F
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 callMotTbl[] = {
|
static s32 callMotTbl[] = {
|
||||||
|
|
@ -194,22 +199,39 @@ static char *callHookTbl[] = {
|
||||||
"c007m01-itemhook-r"
|
"c007m01-itemhook-r"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: add data for custom board
|
||||||
static s32 callAttackMotTbl[] = {
|
static s32 callAttackMotTbl[] = {
|
||||||
DATA_MAKE_NUM(DATADIR_W01, 31),
|
DATA_MAKE_NUM(DATADIR_W01, 31),
|
||||||
DATA_MAKE_NUM(DATADIR_W02, 5),
|
DATA_MAKE_NUM(DATADIR_W02, 5),
|
||||||
DATA_MAKE_NUM(DATADIR_W03, 29),
|
DATA_MAKE_NUM(DATADIR_W03, 29),
|
||||||
DATA_MAKE_NUM(DATADIR_W04, 9),
|
DATA_MAKE_NUM(DATADIR_W04, 9),
|
||||||
DATA_MAKE_NUM(DATADIR_W05, 7),
|
DATA_MAKE_NUM(DATADIR_W05, 7),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 19),
|
||||||
|
|
||||||
|
//dummy data for tutorial and extra board
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 19),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 19),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 19),
|
||||||
|
|
||||||
|
//Mod TODO: update this to w07
|
||||||
DATA_MAKE_NUM(DATADIR_W06, 19)
|
DATA_MAKE_NUM(DATADIR_W06, 19)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: add data for custom board
|
||||||
static s32 callAttackMotTbl2[] = {
|
static s32 callAttackMotTbl2[] = {
|
||||||
DATA_MAKE_NUM(DATADIR_W01, 32),
|
DATA_MAKE_NUM(DATADIR_W01, 32),
|
||||||
DATA_MAKE_NUM(DATADIR_W02, 6),
|
DATA_MAKE_NUM(DATADIR_W02, 6),
|
||||||
DATA_MAKE_NUM(DATADIR_W03, 30),
|
DATA_MAKE_NUM(DATADIR_W03, 30),
|
||||||
DATA_MAKE_NUM(DATADIR_W04, 10),
|
DATA_MAKE_NUM(DATADIR_W04, 10),
|
||||||
DATA_MAKE_NUM(DATADIR_W05, 8),
|
DATA_MAKE_NUM(DATADIR_W05, 8),
|
||||||
DATA_MAKE_NUM(DATADIR_W06, 20)
|
DATA_MAKE_NUM(DATADIR_W06, 20),
|
||||||
|
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 20),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 20),
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 20),
|
||||||
|
|
||||||
|
//Mod TODO: update this to w07
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 20),
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 suitMotTbl[][2] = {
|
static s32 suitMotTbl[][2] = {
|
||||||
|
|
|
||||||
|
|
@ -247,6 +247,7 @@ void BoardLotteryInit(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static void CreateModel(void) {
|
static void CreateModel(void) {
|
||||||
s32 i;
|
s32 i;
|
||||||
s32 sp10[4] = {
|
s32 sp10[4] = {
|
||||||
|
|
@ -259,7 +260,8 @@ static void CreateModel(void) {
|
||||||
DATA_MAKE_NUM(DATADIR_BKUJIYA, 3),
|
DATA_MAKE_NUM(DATADIR_BKUJIYA, 3),
|
||||||
DATA_MAKE_NUM(DATADIR_BKUJIYA, 4)
|
DATA_MAKE_NUM(DATADIR_BKUJIYA, 4)
|
||||||
};
|
};
|
||||||
s32 sp20[9][4] = {
|
//mod: extend for custom board
|
||||||
|
s32 sp20[10][4] = {
|
||||||
{
|
{
|
||||||
DATA_MAKE_NUM(DATADIR_BGUEST, 1),
|
DATA_MAKE_NUM(DATADIR_BGUEST, 1),
|
||||||
DATA_MAKE_NUM(DATADIR_BGUEST, 2),
|
DATA_MAKE_NUM(DATADIR_BGUEST, 2),
|
||||||
|
|
@ -308,6 +310,13 @@ static void CreateModel(void) {
|
||||||
DATA_MAKE_NUM(DATADIR_BGUEST, 44),
|
DATA_MAKE_NUM(DATADIR_BGUEST, 44),
|
||||||
DATA_MAKE_NUM(DATADIR_BGUEST, 45)
|
DATA_MAKE_NUM(DATADIR_BGUEST, 45)
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
DATA_MAKE_NUM(DATADIR_BGUEST, 42),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BGUEST, 43),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BGUEST, 44),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BGUEST, 45)
|
||||||
|
},
|
||||||
|
//Mod TODO: added for custom board
|
||||||
{
|
{
|
||||||
DATA_MAKE_NUM(DATADIR_BGUEST, 42),
|
DATA_MAKE_NUM(DATADIR_BGUEST, 42),
|
||||||
DATA_MAKE_NUM(DATADIR_BGUEST, 43),
|
DATA_MAKE_NUM(DATADIR_BGUEST, 43),
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,10 @@ void BoardObjectSetup(BoardFunc create, BoardFunc destroy)
|
||||||
case OVL_W21:
|
case OVL_W21:
|
||||||
GWSystem.board = BOARD_ID_EXTRA2;
|
GWSystem.board = BOARD_ID_EXTRA2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OVL_W07:
|
||||||
|
GWSystem.board = BOARD_ID_CUSTOM;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -678,6 +682,7 @@ static void CreateBoard(void)
|
||||||
|
|
||||||
static void DestroyBoard(void)
|
static void DestroyBoard(void)
|
||||||
{
|
{
|
||||||
|
//mod: extend for custom board
|
||||||
s32 dir_table[] = {
|
s32 dir_table[] = {
|
||||||
DATADIR_W01,
|
DATADIR_W01,
|
||||||
DATADIR_W02,
|
DATADIR_W02,
|
||||||
|
|
@ -687,7 +692,8 @@ static void DestroyBoard(void)
|
||||||
DATADIR_W06,
|
DATADIR_W06,
|
||||||
DATADIR_W10,
|
DATADIR_W10,
|
||||||
DATADIR_W20,
|
DATADIR_W20,
|
||||||
DATADIR_W21
|
DATADIR_W21,
|
||||||
|
DATADIR_W07
|
||||||
};
|
};
|
||||||
BoardTauntKill();
|
BoardTauntKill();
|
||||||
BoardAudSeqFadeOutAll();
|
BoardAudSeqFadeOutAll();
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,19 @@ static Vec statusLayout2Vs2[4] = {
|
||||||
{ 406.0f, 260.0f, 0.0f },
|
{ 406.0f, 260.0f, 0.0f },
|
||||||
{ 406.0f, 348.0f, 0.0f },
|
{ 406.0f, 348.0f, 0.0f },
|
||||||
};
|
};
|
||||||
static s32 luckyMessTbl[9] = {
|
|
||||||
0x00140000, 0x00140005, 0x0014000A, 0x0014000F,
|
//mod: extend for custom board
|
||||||
0x00140014, 0x00140019, 0x00140000, 0x00140000,
|
static s32 luckyMessTbl[10] = {
|
||||||
|
0x00140000,
|
||||||
|
0x00140005,
|
||||||
|
0x0014000A,
|
||||||
|
0x0014000F,
|
||||||
|
0x00140014,
|
||||||
|
0x00140019,
|
||||||
|
0x00140000,
|
||||||
|
0x00140000,
|
||||||
|
0x00140000,
|
||||||
|
//added for custom board
|
||||||
0x00140000
|
0x00140000
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -144,10 +154,18 @@ static inline s32 setupObjGet(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ExecMGSetup(void) {
|
static void ExecMGSetup(void) {
|
||||||
s32 sp60[9] = {
|
s32 sp60[10] = {
|
||||||
0x750000, 0x760000, 0x770000,
|
0x750000,
|
||||||
0x780000, 0x790000, 0x7A0000,
|
0x760000,
|
||||||
0x7B0000, 0x7C0000, 0x7D0000
|
0x770000,
|
||||||
|
0x780000,
|
||||||
|
0x790000,
|
||||||
|
0x7A0000,
|
||||||
|
0x7B0000,
|
||||||
|
0x7C0000,
|
||||||
|
0x7D0000,
|
||||||
|
//added for custom board
|
||||||
|
0x7D0000
|
||||||
};
|
};
|
||||||
Vec sp54;
|
Vec sp54;
|
||||||
u16 var_r24;
|
u16 var_r24;
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ static float padConfigPosTbl[4][2] = {
|
||||||
{ 458.0f, 160.0f }
|
{ 458.0f, 160.0f }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static s32 boardLogoTbl[] = {
|
static s32 boardLogoTbl[] = {
|
||||||
DATA_MAKE_NUM(DATADIR_BOARD, 87),
|
DATA_MAKE_NUM(DATADIR_BOARD, 87),
|
||||||
DATA_MAKE_NUM(DATADIR_BOARD, 88),
|
DATA_MAKE_NUM(DATADIR_BOARD, 88),
|
||||||
|
|
@ -122,6 +123,8 @@ static s32 boardLogoTbl[] = {
|
||||||
DATA_MAKE_NUM(DATADIR_BOARD, 92),
|
DATA_MAKE_NUM(DATADIR_BOARD, 92),
|
||||||
DATA_MAKE_NUM(DATADIR_BOARD, 87),
|
DATA_MAKE_NUM(DATADIR_BOARD, 87),
|
||||||
DATA_MAKE_NUM(DATADIR_BOARD, 93),
|
DATA_MAKE_NUM(DATADIR_BOARD, 93),
|
||||||
|
DATA_MAKE_NUM(DATADIR_BOARD, 94),
|
||||||
|
//added for custom board
|
||||||
DATA_MAKE_NUM(DATADIR_BOARD, 94)
|
DATA_MAKE_NUM(DATADIR_BOARD, 94)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -288,7 +291,7 @@ void CreatePauseScreen(void) {
|
||||||
HuSprZRotSet(pauseSprGrp, 2, -30.0f);
|
HuSprZRotSet(pauseSprGrp, 2, -30.0f);
|
||||||
HuSprPosSet(pauseSprGrp, 2, 87.0f, 245.0f);
|
HuSprPosSet(pauseSprGrp, 2, 87.0f, 245.0f);
|
||||||
HuSprAttrSet(pauseSprGrp, 2, 8);
|
HuSprAttrSet(pauseSprGrp, 2, 8);
|
||||||
if (GWBoardGet() == 7 || GWBoardGet() == 8) {
|
if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) {
|
||||||
HuSprAttrSet(pauseSprGrp, 2, 4);
|
HuSprAttrSet(pauseSprGrp, 2, 4);
|
||||||
}
|
}
|
||||||
if (GWPartyGet() == 1) {
|
if (GWPartyGet() == 1) {
|
||||||
|
|
@ -332,7 +335,7 @@ void CreatePauseScreen(void) {
|
||||||
hostOldLayer = BoardModelLayerGet(hostMdl);
|
hostOldLayer = BoardModelLayerGet(hostMdl);
|
||||||
BoardModelLayerSet(hostMdl, 6);
|
BoardModelLayerSet(hostMdl, 6);
|
||||||
sp24.x = 68.0f;
|
sp24.x = 68.0f;
|
||||||
if (GWBoardGet() == 3) {
|
if (GWBoardGet() == BOARD_ID_MAIN4) {
|
||||||
sp24.y = 464.0f;
|
sp24.y = 464.0f;
|
||||||
} else {
|
} else {
|
||||||
sp24.y = 434.0f;
|
sp24.y = 434.0f;
|
||||||
|
|
@ -466,7 +469,7 @@ static void DeletePauseScreen(void) {
|
||||||
BoardModelVisibilitySet(hostMdl, 1);
|
BoardModelVisibilitySet(hostMdl, 1);
|
||||||
BoardModelMtxSet(hostMdl, &sp8);
|
BoardModelMtxSet(hostMdl, &sp8);
|
||||||
BoardStarHostSet(hostMdl);
|
BoardStarHostSet(hostMdl);
|
||||||
if (GWBoardGet() == 7 || GWBoardGet() == 8) {
|
if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) {
|
||||||
BoardModelVisibilitySet(hostMdl, 0);
|
BoardModelVisibilitySet(hostMdl, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1278,7 +1281,7 @@ static void CreatePauseControlWin(void) {
|
||||||
HuWinMesSpeedSet(settingsControlWin, 0);
|
HuWinMesSpeedSet(settingsControlWin, 0);
|
||||||
HuWinMesSet(settingsControlWin, var_r31);
|
HuWinMesSet(settingsControlWin, var_r31);
|
||||||
HuWinDispOff(settingsControlWin);
|
HuWinDispOff(settingsControlWin);
|
||||||
if (GWBoardGet() == 7 || GWBoardGet() == 8) {
|
if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) {
|
||||||
var_r31 = MAKE_MESSID(16, 73);
|
var_r31 = MAKE_MESSID(16, 73);
|
||||||
} else {
|
} else {
|
||||||
var_r31 = MAKE_MESSID(16, 52);
|
var_r31 = MAKE_MESSID(16, 52);
|
||||||
|
|
@ -1325,7 +1328,7 @@ static s32 WaitPauseInput(void) {
|
||||||
u32 temp_r30;
|
u32 temp_r30;
|
||||||
|
|
||||||
mainScreenF = 1;
|
mainScreenF = 1;
|
||||||
if (GWBoardGet() == 7 || GWBoardGet() == 8) {
|
if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) {
|
||||||
var_r28 = 1;
|
var_r28 = 1;
|
||||||
} else {
|
} else {
|
||||||
var_r28 = 0;
|
var_r28 = 0;
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,7 @@ static s8 defaultItemTbl[5] = {
|
||||||
0x05, 0x07, 0x02, 0x03, 0x00
|
0x05, 0x07, 0x02, 0x03, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static s32 hostMessTbl[] = {
|
static s32 hostMessTbl[] = {
|
||||||
0x000F0004,
|
0x000F0004,
|
||||||
0x000F0007,
|
0x000F0007,
|
||||||
|
|
@ -123,6 +124,8 @@ static s32 hostMessTbl[] = {
|
||||||
0x000F0013,
|
0x000F0013,
|
||||||
0x000F0004,
|
0x000F0004,
|
||||||
0x000F0024,
|
0x000F0024,
|
||||||
|
0x000F0024,
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
0x000F0024
|
0x000F0024
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -133,7 +136,8 @@ static s8 itemPriceTbl[] = {
|
||||||
30, 30, 0, 0
|
30, 30, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 shopMotTbl[9][3] = {
|
//mod: extend for custom data
|
||||||
|
static s32 shopMotTbl[10][3] = {
|
||||||
{ 0x00020001, 0x00020003, 0x00020004 },
|
{ 0x00020001, 0x00020003, 0x00020004 },
|
||||||
{ 0x00020009, 0x0002000B, 0x0002000C },
|
{ 0x00020009, 0x0002000B, 0x0002000C },
|
||||||
{ 0x0002000E, 0x00020010, 0x00020011 },
|
{ 0x0002000E, 0x00020010, 0x00020011 },
|
||||||
|
|
@ -142,6 +146,9 @@ static s32 shopMotTbl[9][3] = {
|
||||||
{ 0x00020022, 0x00020024, 0x00020025 },
|
{ 0x00020022, 0x00020024, 0x00020025 },
|
||||||
{ 0x00020009, 0x0002000B, 0x0002000C },
|
{ 0x00020009, 0x0002000B, 0x0002000C },
|
||||||
{ 0x0002002A, 0x0002002C, 0x0002002D },
|
{ 0x0002002A, 0x0002002C, 0x0002002D },
|
||||||
|
{ 0x0002002A, 0x0002002C, 0x0002002D },
|
||||||
|
|
||||||
|
//Mod TODO: fix for custom data
|
||||||
{ 0x0002002A, 0x0002002C, 0x0002002D }
|
{ 0x0002002A, 0x0002002C, 0x0002002D }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,8 @@ static Process *starProc;
|
||||||
static s16 starParman = -1;
|
static s16 starParman = -1;
|
||||||
static s16 hostMdl = -1;
|
static s16 hostMdl = -1;
|
||||||
|
|
||||||
const s32 lbl_8011E040[9] = {
|
//mod: extend for custom board
|
||||||
|
const s32 lbl_8011E040[10] = {
|
||||||
MAKE_MESSID(12, 0),
|
MAKE_MESSID(12, 0),
|
||||||
MAKE_MESSID(12, 9),
|
MAKE_MESSID(12, 9),
|
||||||
MAKE_MESSID(12, 18),
|
MAKE_MESSID(12, 18),
|
||||||
|
|
@ -81,10 +82,13 @@ const s32 lbl_8011E040[9] = {
|
||||||
MAKE_MESSID(12, 45),
|
MAKE_MESSID(12, 45),
|
||||||
MAKE_MESSID(12, 0),
|
MAKE_MESSID(12, 0),
|
||||||
MAKE_MESSID(12, 0),
|
MAKE_MESSID(12, 0),
|
||||||
|
MAKE_MESSID(12, 0),
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
MAKE_MESSID(12, 0)
|
MAKE_MESSID(12, 0)
|
||||||
};
|
};
|
||||||
|
|
||||||
const s32 lbl_8011E064[9][2] = {
|
//mod: extend for custom board
|
||||||
|
const s32 lbl_8011E064[10][2] = {
|
||||||
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
||||||
{ MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) },
|
{ MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) },
|
||||||
{ MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) },
|
{ MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) },
|
||||||
|
|
@ -93,6 +97,9 @@ const s32 lbl_8011E064[9][2] = {
|
||||||
{ MAKE_MESSID(21, 39), MAKE_MESSID(21, 45) },
|
{ MAKE_MESSID(21, 39), MAKE_MESSID(21, 45) },
|
||||||
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
||||||
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
||||||
|
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) },
|
||||||
|
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }
|
{ MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -107,12 +114,21 @@ s32 boardStarSndTbl[] = {
|
||||||
0x000002E0
|
0x000002E0
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 hostMotTbl[9][2] = {
|
//mod: extend for custom board
|
||||||
|
static s32 hostMotTbl[10][2] = {
|
||||||
{ DATA_MAKE_NUM(DATADIR_W01, 33), DATA_MAKE_NUM(DATADIR_BOARD, 157) },
|
{ DATA_MAKE_NUM(DATADIR_W01, 33), DATA_MAKE_NUM(DATADIR_BOARD, 157) },
|
||||||
{ DATA_MAKE_NUM(DATADIR_W02, 7), DATA_MAKE_NUM(DATADIR_BOARD, 158) },
|
{ DATA_MAKE_NUM(DATADIR_W02, 7), DATA_MAKE_NUM(DATADIR_BOARD, 158) },
|
||||||
{ DATA_MAKE_NUM(DATADIR_W03, 31), DATA_MAKE_NUM(DATADIR_BOARD, 159) },
|
{ DATA_MAKE_NUM(DATADIR_W03, 31), DATA_MAKE_NUM(DATADIR_BOARD, 159) },
|
||||||
{ DATA_MAKE_NUM(DATADIR_W04, 11), DATA_MAKE_NUM(DATADIR_BOARD, 160) },
|
{ DATA_MAKE_NUM(DATADIR_W04, 11), DATA_MAKE_NUM(DATADIR_BOARD, 160) },
|
||||||
{ DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) },
|
{ DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) },
|
||||||
|
{ DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) },
|
||||||
|
|
||||||
|
//dummy data for tutorial and extra board
|
||||||
|
{ DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) },
|
||||||
|
{ DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) },
|
||||||
|
{ DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) },
|
||||||
|
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
{ DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }
|
{ DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,8 @@ static s32 hitFX[4] = {
|
||||||
-1, -1, -1, -1
|
-1, -1, -1, -1
|
||||||
};
|
};
|
||||||
|
|
||||||
static s32 startMesTbl[9][5] = {
|
//mod: extend for custom data
|
||||||
|
static s32 startMesTbl[10][5] = {
|
||||||
{ 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C },
|
{ 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C },
|
||||||
{ 0x00150002, 0x00150008, 0x0015000E, 0x00150017, 0x0015001D },
|
{ 0x00150002, 0x00150008, 0x0015000E, 0x00150017, 0x0015001D },
|
||||||
{ 0x00150003, 0x00150009, 0x0015000F, 0x00150018, 0x0015001E },
|
{ 0x00150003, 0x00150009, 0x0015000F, 0x00150018, 0x0015001E },
|
||||||
|
|
@ -98,13 +99,24 @@ static s32 startMesTbl[9][5] = {
|
||||||
{ 0x00150006, 0x0015000C, 0x00150012, 0x0015001B, 0x00150021 },
|
{ 0x00150006, 0x0015000C, 0x00150012, 0x0015001B, 0x00150021 },
|
||||||
{ 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C },
|
{ 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C },
|
||||||
{ 0x00150033, 0x00150034, 0x00150035, 0x00150036, 0x00150037 },
|
{ 0x00150033, 0x00150034, 0x00150035, 0x00150036, 0x00150037 },
|
||||||
|
{ 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F },
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
{ 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F }
|
{ 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static s32 logoSprTbl[] = {
|
static s32 logoSprTbl[] = {
|
||||||
0x00070057, 0x00070058, 0x00070059,
|
0x00070057,
|
||||||
0x0007005A, 0x0007005B, 0x0007005C,
|
0x00070058,
|
||||||
0x00070057, 0x0007005D, 0x0007005E
|
0x00070059,
|
||||||
|
0x0007005A,
|
||||||
|
0x0007005B,
|
||||||
|
0x0007005C,
|
||||||
|
0x00070057,
|
||||||
|
0x0007005D,
|
||||||
|
0x0007005E,
|
||||||
|
//Mod TODO: custom board data
|
||||||
|
0x0007005E
|
||||||
};
|
};
|
||||||
|
|
||||||
void BoardStartExec(void) {
|
void BoardStartExec(void) {
|
||||||
|
|
|
||||||
|
|
@ -58,40 +58,94 @@ static float overhead2DPos[][2] = {
|
||||||
{ 288.0f, 72.0f }
|
{ 288.0f, 72.0f }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static float mapViewMinZ[] = {
|
static float mapViewMinZ[] = {
|
||||||
-2000.0f, -1500.0f, -2200.0f,
|
-2000.0f,
|
||||||
-1800.0f, -2100.0f, -3000.0f,
|
-1500.0f,
|
||||||
-3000.0f, -1800.0f, -1800.0f
|
-2200.0f,
|
||||||
|
-1800.0f,
|
||||||
|
-2100.0f,
|
||||||
|
-3000.0f,
|
||||||
|
-3000.0f,
|
||||||
|
-1800.0f,
|
||||||
|
-1800.0f,
|
||||||
|
//Mod TODO: fix data for custom board
|
||||||
|
-1800.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static float mapViewMaxZ[] = {
|
static float mapViewMaxZ[] = {
|
||||||
2300.0f, 2500.0f, 2600.0f,
|
2300.0f,
|
||||||
2000.0f, 2300.0f, 2500.0f,
|
2500.0f,
|
||||||
2500.0f, 2000.0f, 2000.0f
|
2600.0f,
|
||||||
|
2000.0f,
|
||||||
|
2300.0f,
|
||||||
|
2500.0f,
|
||||||
|
2500.0f,
|
||||||
|
2000.0f,
|
||||||
|
2000.0f,
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
|
2000.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static float mapViewMinX[] = {
|
static float mapViewMinX[] = {
|
||||||
-3000.0f, -3000.0f, -3000.0f,
|
-3000.0f,
|
||||||
-3000.0f, -3000.0f, -3000.0f,
|
-3000.0f,
|
||||||
-3000.0f, -2000.0f, -2000.0f
|
-3000.0f,
|
||||||
|
-3000.0f,
|
||||||
|
-3000.0f,
|
||||||
|
-3000.0f,
|
||||||
|
-3000.0f,
|
||||||
|
-2000.0f,
|
||||||
|
-2000.0f,
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
|
-2000.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static float mapViewMaxX[] = {
|
static float mapViewMaxX[] = {
|
||||||
3000.0f, 3000.0f, 3000.0f,
|
3000.0f,
|
||||||
3000.0f, 3000.0f, 3000.0f,
|
3000.0f,
|
||||||
3000.0f, 1600.0f, 2000.0f
|
3000.0f,
|
||||||
|
3000.0f,
|
||||||
|
3000.0f,
|
||||||
|
3000.0f,
|
||||||
|
3000.0f,
|
||||||
|
1600.0f,
|
||||||
|
2000.0f,
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
|
2000.0f,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static float overheadCamZoom[] = {
|
static float overheadCamZoom[] = {
|
||||||
14370.0f, 14500.0f, 15000.0f,
|
14370.0f,
|
||||||
15000.0f, 13000.0f, 15000.0f,
|
14500.0f,
|
||||||
100.0f, 10000.0f, 10000.0f
|
15000.0f,
|
||||||
|
15000.0f,
|
||||||
|
13000.0f,
|
||||||
|
15000.0f,
|
||||||
|
100.0f,
|
||||||
|
10000.0f,
|
||||||
|
10000.0f,
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
|
10000.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//mod: extend for custom board
|
||||||
static float overheadCamPosZ[] = {
|
static float overheadCamPosZ[] = {
|
||||||
0.0f, 0.0f, 0.0f,
|
0.0f,
|
||||||
0.0f, 0.0f, 0.0f,
|
0.0f,
|
||||||
0.0f, -160.0f, 0.0f
|
0.0f,
|
||||||
|
0.0f,
|
||||||
|
0.0f,
|
||||||
|
0.0f,
|
||||||
|
0.0f,
|
||||||
|
-160.0f,
|
||||||
|
0.0f,
|
||||||
|
//Mod TODO: fix for custom board data
|
||||||
|
0.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
void BoardViewOverheadExec(s32 arg0) {
|
void BoardViewOverheadExec(s32 arg0) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue