Matched REL/w06/main
This commit is contained in:
parent
b2993d1ba1
commit
bce4e4f2b9
6 changed files with 393 additions and 32 deletions
|
|
@ -3,14 +3,14 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global
|
||||||
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
|
||||||
BoardCreate = .text:0x000000E0; // type:function size:0x4C4
|
BoardCreate = .text:0x000000E0; // type:function size:0x4C4
|
||||||
BoardDestroy = .text:0x000005A4; // type:function size:0x18C
|
BoardDestroy = .text:0x000005A4; // type:function size:0x18C
|
||||||
fn_1_730 = .text:0x00000730; // type:function size:0x6C
|
fn_1_730 = .text:0x00000730; // type:function size:0x6C scope:local
|
||||||
fn_1_79C = .text:0x0000079C; // type:function size:0x20
|
fn_1_79C = .text:0x0000079C; // type:function size:0x20 scope:local
|
||||||
fn_1_7BC = .text:0x000007BC; // type:function size:0x144
|
fn_1_7BC = .text:0x000007BC; // type:function size:0x144 scope:local
|
||||||
fn_1_900 = .text:0x00000900; // type:function size:0x84
|
fn_1_900 = .text:0x00000900; // type:function size:0x84 scope:local
|
||||||
fn_1_984 = .text:0x00000984; // type:function size:0x3C
|
fn_1_984 = .text:0x00000984; // type:function size:0x3C scope:local
|
||||||
fn_1_9C0 = .text:0x000009C0; // type:function size:0x168
|
fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 scope:local
|
||||||
fn_1_B28 = .text:0x00000B28; // type:function size:0x34
|
fn_1_B28 = .text:0x00000B28; // type:function size:0x34 scope:local
|
||||||
fn_1_B5C = .text:0x00000B5C; // type:function size:0x214
|
fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 scope:local
|
||||||
fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC
|
fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC
|
||||||
fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8
|
fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8
|
||||||
fn_1_1054 = .text:0x00001054; // type:function size:0x90
|
fn_1_1054 = .text:0x00001054; // type:function size:0x90
|
||||||
|
|
@ -121,16 +121,16 @@ fn_1_CC90 = .text:0x0000CC90; // type:function size:0x7C
|
||||||
fn_1_CD0C = .text:0x0000CD0C; // type:function size:0x398
|
fn_1_CD0C = .text:0x0000CD0C; // type:function size:0x398
|
||||||
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
|
||||||
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
|
||||||
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
|
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float
|
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
|
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float
|
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:4byte
|
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:4byte
|
||||||
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte
|
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:4byte
|
||||||
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float
|
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float
|
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float
|
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float
|
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float
|
||||||
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float
|
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float
|
lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float
|
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float
|
||||||
|
|
@ -268,14 +268,14 @@ lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double
|
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double
|
||||||
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float
|
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float
|
||||||
lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float
|
lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 scope:local
|
||||||
lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte
|
lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 data:2byte
|
lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 data:2byte
|
lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 data:2byte
|
lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 scope:local data:2byte
|
||||||
lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8
|
lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 scope:local
|
||||||
lbl_1_data_100 = .data:0x00000100; // type:object size:0x8
|
lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 scope:local
|
||||||
lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0
|
lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 scope:local
|
||||||
lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte
|
lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte
|
lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte
|
||||||
lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3
|
lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3
|
||||||
|
|
@ -333,8 +333,8 @@ lbl_1_data_510 = .data:0x00000510; // type:object size:0x20
|
||||||
lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string
|
lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string
|
||||||
lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string
|
lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte
|
||||||
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte
|
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte
|
||||||
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte
|
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte
|
||||||
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte
|
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte
|
lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||||
motTbl = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte
|
motTbl = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte
|
||||||
tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte
|
tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte
|
||||||
w10ExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte
|
tutorialExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte
|
||||||
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte
|
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte
|
||||||
hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte
|
hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte
|
||||||
hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte
|
hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte
|
||||||
|
|
|
||||||
|
|
@ -1135,10 +1135,10 @@ config.libs = [
|
||||||
Object(NonMatching, "REL/w05Dll/mg_coin.c"),
|
Object(NonMatching, "REL/w05Dll/mg_coin.c"),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Rel('w05Dll',
|
Rel('w06Dll',
|
||||||
objects = {
|
objects = {
|
||||||
Object(Matching, "REL/board_executor.c"),
|
Object(Matching, "REL/board_executor.c"),
|
||||||
Object(NonMatching, "REL/w06Dll/main.c"),
|
Object(Matching, "REL/w06Dll/main.c"),
|
||||||
Object(NonMatching, "REL/w06Dll/mg_item.c"),
|
Object(NonMatching, "REL/w06Dll/mg_item.c"),
|
||||||
Object(NonMatching, "REL/w06Dll/mg_coin.c"),
|
Object(NonMatching, "REL/w06Dll/mg_coin.c"),
|
||||||
Object(NonMatching, "REL/w06Dll/fire.c"),
|
Object(NonMatching, "REL/w06Dll/fire.c"),
|
||||||
|
|
|
||||||
36
include/REL/w06Dll.h
Executable file
36
include/REL/w06Dll.h
Executable file
|
|
@ -0,0 +1,36 @@
|
||||||
|
#ifndef REL_W06_H
|
||||||
|
#define REL_W06_H
|
||||||
|
|
||||||
|
#include "dolphin/types.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MAPOBJ_MAX = 6
|
||||||
|
};
|
||||||
|
|
||||||
|
extern void fn_1_D70(void);
|
||||||
|
extern void fn_1_F6C(void);
|
||||||
|
extern void fn_1_1054(void); // return s32?
|
||||||
|
|
||||||
|
extern void fn_1_4878(void);
|
||||||
|
extern void fn_1_4A10(void);
|
||||||
|
extern void fn_1_4A60(void); // return s32?
|
||||||
|
|
||||||
|
extern void fn_1_6EF0(void); // return s32?
|
||||||
|
|
||||||
|
extern void fn_1_7BB0(void);
|
||||||
|
extern void fn_1_7F3C(void);
|
||||||
|
extern void fn_1_8264(s32 arg0, s16 arg1);
|
||||||
|
|
||||||
|
extern void fn_1_8F20(void);
|
||||||
|
extern void fn_1_91D8(void);
|
||||||
|
extern void fn_1_9294(s32 arg0, s32 arg1);
|
||||||
|
extern s32 fn_1_92D8(s32 arg0, s32 arg1);
|
||||||
|
extern void fn_1_C108(s32 arg0);
|
||||||
|
extern void fn_1_C2B4(void);
|
||||||
|
extern void fn_1_CC90(void);
|
||||||
|
extern void fn_1_CD0C(void);
|
||||||
|
|
||||||
|
extern s16 lbl_1_bss_C[MAPOBJ_MAX];
|
||||||
|
extern void *lbl_1_bss_0;
|
||||||
|
|
||||||
|
#endif
|
||||||
325
src/REL/w06Dll/main.c
Executable file
325
src/REL/w06Dll/main.c
Executable file
|
|
@ -0,0 +1,325 @@
|
||||||
|
#include "REL/w06Dll.h"
|
||||||
|
#include "REL/board_executor.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/flag.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "game/process.h"
|
||||||
|
#include "game/board/boo_house.h"
|
||||||
|
#include "game/board/lottery.h"
|
||||||
|
#include "game/board/main.h"
|
||||||
|
#include "game/board/map_object.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 "dolphin.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
struct {
|
||||||
|
u8 unk00_field0 : 1;
|
||||||
|
};
|
||||||
|
s8 unk01[10];
|
||||||
|
} Bss8Work;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* 0x00 */ s32 unk00;
|
||||||
|
/* 0x04 */ Vec unk04;
|
||||||
|
} Data108Struct; // Size 0x10
|
||||||
|
|
||||||
|
static void fn_1_730(void);
|
||||||
|
static void fn_1_79C(void);
|
||||||
|
static s32 fn_1_7BC(void);
|
||||||
|
static s32 fn_1_900(void);
|
||||||
|
static s32 fn_1_984(void);
|
||||||
|
static void fn_1_9C0(void);
|
||||||
|
static void fn_1_B28(void);
|
||||||
|
static void fn_1_B5C(omObjData *arg0);
|
||||||
|
|
||||||
|
s16 lbl_1_bss_C[MAPOBJ_MAX];
|
||||||
|
|
||||||
|
static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = {
|
||||||
|
{ { 450.0f, 200.0f, -2950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 6) },
|
||||||
|
{ { -1650.0f, 0.0f, 2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 8) },
|
||||||
|
{ { 2700.0f, 100.0f, -1950.0f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 5) },
|
||||||
|
{ { -3000.0f, 0.0f, 2550.0f }, { 0.0f, 89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 5) },
|
||||||
|
{ { -1800.0f, 0.0f, 2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 33) },
|
||||||
|
{ { 300.0f, 200.0f, -2850.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 33) }
|
||||||
|
};
|
||||||
|
|
||||||
|
static omObjData *lbl_1_bss_8;
|
||||||
|
static s32 lbl_1_bss_4;
|
||||||
|
void *lbl_1_bss_0;
|
||||||
|
|
||||||
|
static s16 lbl_1_data_F0 = -1;
|
||||||
|
static s16 lbl_1_data_F2 = -1;
|
||||||
|
static s16 lbl_1_data_F4 = -1;
|
||||||
|
static s16 lbl_1_data_F6 = -1;
|
||||||
|
|
||||||
|
static s32 lbl_1_data_F8[] = {
|
||||||
|
DATA_MAKE_NUM(DATADIR_W06, 18),
|
||||||
|
-1
|
||||||
|
};
|
||||||
|
|
||||||
|
static s32 lbl_1_data_100[] = {
|
||||||
|
DATA_MAKE_NUM(DATADIR_BGUEST, 34),
|
||||||
|
-1
|
||||||
|
};
|
||||||
|
|
||||||
|
static Data108Struct lbl_1_data_108[] = {
|
||||||
|
0x00000002, { -3359.9998f, 170.0f, -3559.9998f },
|
||||||
|
0x0000002A, { 3540.0002f, 170.0f, 1320.0f },
|
||||||
|
0x00000052, { -710.0f, 170.0f, -4580.0f },
|
||||||
|
0x0000007A, { -3670.0f, 170.0f, 1020.0f },
|
||||||
|
0x000000A2, { 1970.0001f, 170.0f, -3840.0002f },
|
||||||
|
0x000000CA, { -3160.0f, 170.0f, -3770.0f },
|
||||||
|
0x000000F2, { -3500.0f, 170.0f, -2340.0f },
|
||||||
|
0x0000011A, { -3700.0f, 170.0f, -810.00005f },
|
||||||
|
0x00000142, { 100.0f, 170.0f, -4100.0f },
|
||||||
|
0x0000016A, { 3290.0002f, 170.0f, -340.0f }
|
||||||
|
};
|
||||||
|
|
||||||
|
void BoardCreate(void) {
|
||||||
|
BoardMapObject *temp_r30;
|
||||||
|
s32 *var_r29;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
lbl_1_bss_0 = GWSystem.board_data;
|
||||||
|
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W06, 0));
|
||||||
|
lbl_1_data_F0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 1), NULL, 0);
|
||||||
|
fn_8006DDE8(lbl_1_data_F0, -1.0f);
|
||||||
|
BoardModelMotionStart(lbl_1_data_F0, 0, 0x40000001);
|
||||||
|
lbl_1_data_F2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 2), NULL, 0);
|
||||||
|
fn_8006DDE8(lbl_1_data_F2, -1.0f);
|
||||||
|
BoardModelPosSet(lbl_1_data_F2, 0.0f, 0.0f, 0.0f);
|
||||||
|
BoardModelMotionStart(lbl_1_data_F2, 0, 0x40000001);
|
||||||
|
lbl_1_data_F4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 17), lbl_1_data_F8, 0);
|
||||||
|
BoardModelPosSet(lbl_1_data_F4, 0.0f, 0.0f, 0.0f);
|
||||||
|
BoardModelMotionStart(lbl_1_data_F4, 1, 0x40000001);
|
||||||
|
lbl_1_data_F6 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 33), lbl_1_data_100, 0);
|
||||||
|
BoardModelPosSet(lbl_1_data_F6, 0.0f, 0.0f, 0.0f);
|
||||||
|
BoardModelMotionStart(lbl_1_data_F6, 1, 0x40000001);
|
||||||
|
for (i = 0; i < MAPOBJ_MAX; i++) {
|
||||||
|
temp_r30 = &lbl_1_data_0[i];
|
||||||
|
if (temp_r30->data_num != -1) {
|
||||||
|
if (i == 4 || i == 5) {
|
||||||
|
var_r29 = lbl_1_data_100;
|
||||||
|
} else {
|
||||||
|
var_r29 = NULL;
|
||||||
|
}
|
||||||
|
lbl_1_bss_C[i] = BoardModelCreate(temp_r30->data_num, var_r29, 0);
|
||||||
|
BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->pos);
|
||||||
|
BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->rot);
|
||||||
|
BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->scale);
|
||||||
|
BoardModelVisibilitySet(lbl_1_bss_C[i], 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[4], 1, 0x40000001);
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[5], 1, 0x40000001);
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[2], 0, 0);
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_C[2], 0.0f);
|
||||||
|
BoardModelLayerSet(lbl_1_bss_C[2], 1);
|
||||||
|
BoardModelMotionStart(lbl_1_bss_C[3], 0, 0);
|
||||||
|
BoardModelMotionSpeedSet(lbl_1_bss_C[3], 0.0f);
|
||||||
|
BoardModelLayerSet(lbl_1_bss_C[3], 1);
|
||||||
|
fn_1_D70();
|
||||||
|
fn_1_4878();
|
||||||
|
fn_1_7BB0();
|
||||||
|
fn_1_8F20();
|
||||||
|
BoardLightHookSet(fn_1_730, fn_1_79C);
|
||||||
|
BoardSpaceWalkEventFuncSet(fn_1_7BC);
|
||||||
|
BoardSpaceWalkMiniEventFuncSet(fn_1_900);
|
||||||
|
BoardSpaceLandEventFuncSet(fn_1_984);
|
||||||
|
BoardStarHostSet(lbl_1_data_F4);
|
||||||
|
BoardBooHouseHostSet(lbl_1_data_F6);
|
||||||
|
BoardLotteryHostSet(lbl_1_data_F6);
|
||||||
|
BoardShopHostSet(lbl_1_data_F6);
|
||||||
|
BoardJunctionMaskSet(0x3000);
|
||||||
|
boardTurnFunc = fn_1_C2B4;
|
||||||
|
boardStarShowNextHook = fn_1_CD0C;
|
||||||
|
boardTurnStartFunc = fn_1_9294;
|
||||||
|
boardStarGiveHook = fn_1_CC90;
|
||||||
|
boardBowserHook = fn_1_C108;
|
||||||
|
fn_1_9C0();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoardDestroy(void) {
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
fn_1_B28();
|
||||||
|
boardTurnFunc
|
||||||
|
= (void*) boardStarShowNextHook
|
||||||
|
= (void*) boardTurnStartFunc
|
||||||
|
= (void*) boardStarGiveHook
|
||||||
|
= (void*) boardBowserHook = NULL;
|
||||||
|
fn_1_91D8();
|
||||||
|
fn_1_7F3C();
|
||||||
|
fn_1_F6C();
|
||||||
|
fn_1_4A10();
|
||||||
|
for (i = 0; i < MAPOBJ_MAX; i++) {
|
||||||
|
BoardModelKill(lbl_1_bss_C[i]);
|
||||||
|
lbl_1_bss_C[i] = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_F6 != -1) {
|
||||||
|
BoardModelKill(lbl_1_data_F6);
|
||||||
|
lbl_1_data_F6 = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_F4 != -1) {
|
||||||
|
BoardModelKill(lbl_1_data_F4);
|
||||||
|
lbl_1_data_F4 = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_F0 != -1) {
|
||||||
|
BoardModelKill(lbl_1_data_F0);
|
||||||
|
lbl_1_data_F0 = -1;
|
||||||
|
}
|
||||||
|
if (lbl_1_data_F2 != -1) {
|
||||||
|
BoardModelKill(lbl_1_data_F2);
|
||||||
|
lbl_1_data_F2 = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_730(void) {
|
||||||
|
s16 var_r31;
|
||||||
|
|
||||||
|
var_r31 = BoardModelIDGet(lbl_1_data_F0);
|
||||||
|
Hu3DModelLightInfoSet(var_r31, 1);
|
||||||
|
Hu3DFogSet(4200.0f, 30000.0f, 0xF8, 0x30, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_79C(void) {
|
||||||
|
Hu3DFogClear();
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 fn_1_7BC(void) {
|
||||||
|
s32 sp10[] = { 0, 1 };
|
||||||
|
s32 sp8[] = { 0x300, 0xC0 };
|
||||||
|
BoardSpace *temp_r31;
|
||||||
|
s16 temp_r28;
|
||||||
|
s32 temp_r27;
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
|
||||||
|
temp_r27 = GWSystem.player_curr;
|
||||||
|
temp_r28 = GWPlayer[temp_r27].space_curr;
|
||||||
|
if (fn_1_92D8(temp_r27, temp_r28) != 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 2; i++) {
|
||||||
|
if (BoardSpaceLinkFlagSearch(0, temp_r28, sp8[i]) == -1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
temp_r31 = BoardSpaceGet(0, temp_r28);
|
||||||
|
for (j = 0; j < temp_r31->link_cnt; j++) {
|
||||||
|
if ((BoardSpaceFlagGet(0, temp_r31->link[j]) & 0x04000000) == 0) {
|
||||||
|
fn_1_8264(sp10[i], temp_r31->link[j]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 fn_1_900(void) {
|
||||||
|
s16 var_r30;
|
||||||
|
s32 temp_r31;
|
||||||
|
|
||||||
|
var_r30 = GWPlayer[GWSystem.player_curr].space_curr;
|
||||||
|
temp_r31 = BoardSpaceFlagGet(0, var_r30) & 0x600000;
|
||||||
|
if (temp_r31 == 0x200000) {
|
||||||
|
fn_1_1054(); // TODO: return?
|
||||||
|
} else if (temp_r31 == 0x400000) {
|
||||||
|
fn_1_4A60(); // TODO: return?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 fn_1_984(void) {
|
||||||
|
if (BoardPlayerSizeGet(GWSystem.player_curr) != 2) {
|
||||||
|
fn_1_6EF0(); // TODO: return?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_9C0(void) {
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
omObjData *temp_r3;
|
||||||
|
Bss8Work *temp_r30;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B5C);
|
||||||
|
lbl_1_bss_8 = temp_r3;
|
||||||
|
temp_r30 = OM_GET_WORK_PTR(temp_r3, Bss8Work);
|
||||||
|
temp_r30->unk00_field0 = 0;
|
||||||
|
BoardCameraPosGet(&sp14);
|
||||||
|
BoardCameraDirGet(&sp8);
|
||||||
|
HuAudFXListnerSetEX(&sp14, &sp8, 6600.0f, 36000.0f, 0.0f, 1650.0f, 1650.0f);
|
||||||
|
for (i = 0; i < 10; i++) {
|
||||||
|
temp_r30->unk01[i] = 0;
|
||||||
|
}
|
||||||
|
if (!_CheckFlag(0x10010)) {
|
||||||
|
if (lbl_1_bss_4 == 0) {
|
||||||
|
HuAudFXPauseAll(1);
|
||||||
|
lbl_1_bss_4 = 1;
|
||||||
|
}
|
||||||
|
} else if (lbl_1_bss_4 != 0) {
|
||||||
|
HuAudFXPauseAll(0);
|
||||||
|
lbl_1_bss_4 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_B28(void) {
|
||||||
|
if (lbl_1_bss_8) {
|
||||||
|
OM_GET_WORK_PTR(lbl_1_bss_8, Bss8Work)->unk00_field0 = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void fn_1_B5C(omObjData *arg0) {
|
||||||
|
Bss8Work *temp_r30;
|
||||||
|
Vec sp14;
|
||||||
|
Vec sp8;
|
||||||
|
s16 temp_r28;
|
||||||
|
s16 var_r29;
|
||||||
|
s16 i;
|
||||||
|
|
||||||
|
temp_r30 = OM_GET_WORK_PTR(arg0, Bss8Work);
|
||||||
|
if (temp_r30->unk00_field0 != 0 || BoardIsKill()) {
|
||||||
|
HuAudFXListnerKill();
|
||||||
|
lbl_1_bss_8 = NULL;
|
||||||
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
temp_r28 = BoardModelMotionTimeGet(lbl_1_data_F0);
|
||||||
|
BoardCameraDirGet(&sp8);
|
||||||
|
BoardCameraTargetGet(&sp14);
|
||||||
|
sp14.y += 2000.0f;
|
||||||
|
if (!_CheckFlag(0x10010)) {
|
||||||
|
if (lbl_1_bss_4 == 0) {
|
||||||
|
HuAudFXPauseAll(1);
|
||||||
|
lbl_1_bss_4 = 1;
|
||||||
|
}
|
||||||
|
} else if (lbl_1_bss_4 != 0) {
|
||||||
|
HuAudFXPauseAll(0);
|
||||||
|
lbl_1_bss_4 = 0;
|
||||||
|
}
|
||||||
|
if (!_CheckFlag(0x1001C)) {
|
||||||
|
for (var_r29 = i = 0; i < 10; i++) {
|
||||||
|
if (temp_r30->unk01[i] != 0) {
|
||||||
|
var_r29++;
|
||||||
|
} else if (temp_r28 == lbl_1_data_108[i].unk00) {
|
||||||
|
HuAudFXEmiterPlay(0x4A1, &lbl_1_data_108[i].unk04);
|
||||||
|
temp_r30->unk01[i] = 1;
|
||||||
|
goto block_20;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (var_r29 < 10) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (i = 0; i < 10; i++) {
|
||||||
|
temp_r30->unk01[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
block_20:
|
||||||
|
HuAudFXListnerUpdate(&sp14, &sp8);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue