commit
e728cf7d87
21 changed files with 872 additions and 437 deletions
|
|
@ -118,7 +118,7 @@ lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double
|
||||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte
|
lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte
|
||||||
lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 data:string
|
lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 data:string
|
||||||
lbl_1_data_26 = .data:0x00000026; // type:object size:0x20
|
lbl_1_data_26 = .data:0x00000026; // type:object size:0x20
|
||||||
lbl_1_data_46 = .data:0x00000046; // type:object size:0xA
|
lbl_1_data_46 = .data:0x00000046; // type:object size:0x8
|
||||||
lbl_1_data_50 = .data:0x00000050; // type:object size:0x20
|
lbl_1_data_50 = .data:0x00000050; // type:object size:0x20
|
||||||
lbl_1_data_70 = .data:0x00000070; // type:object size:0x20
|
lbl_1_data_70 = .data:0x00000070; // type:object size:0x20
|
||||||
lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string
|
lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string
|
||||||
|
|
@ -147,4 +147,5 @@ lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float
|
||||||
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float
|
lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float
|
||||||
lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float
|
lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float
|
||||||
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte
|
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte
|
||||||
lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:4byte
|
lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte
|
||||||
|
lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte
|
||||||
|
|
|
||||||
|
|
@ -4927,7 +4927,7 @@ lbl_8012E70A = .data:0x8012E70A; // type:object size:0xB data:string
|
||||||
lbl_8012E715 = .data:0x8012E715; // type:object size:0x273
|
lbl_8012E715 = .data:0x8012E715; // type:object size:0x273
|
||||||
lbl_8012E988 = .data:0x8012E988; // type:object size:0x12 data:string
|
lbl_8012E988 = .data:0x8012E988; // type:object size:0x12 data:string
|
||||||
lbl_8012E99A = .data:0x8012E99A; // type:object size:0xD6
|
lbl_8012E99A = .data:0x8012E99A; // type:object size:0xD6
|
||||||
sndGrpTable = .data:0x8012EA70; // type:object size:0x5B0
|
HuSndGrpTbl = .data:0x8012EA70; // type:object size:0x5B0
|
||||||
lbl_8012F020 = .data:0x8012F020; // type:object size:0x94
|
lbl_8012F020 = .data:0x8012F020; // type:object size:0x94
|
||||||
lbl_8012F0B4 = .data:0x8012F0B4; // type:object size:0x11 data:string
|
lbl_8012F0B4 = .data:0x8012F0B4; // type:object size:0x11 data:string
|
||||||
lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A
|
lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,15 @@
|
||||||
|
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
|
|
||||||
|
typedef struct hu_snd_grp_data {
|
||||||
|
/* 0x00 */ s16 ovl;
|
||||||
|
/* 0x02 */ s16 grpset;
|
||||||
|
/* 0x04 */ s32 auxANo;
|
||||||
|
/* 0x08 */ s32 auxBNo;
|
||||||
|
/* 0x0C */ s8 auxAVol;
|
||||||
|
/* 0x0D */ s8 auxBVol;
|
||||||
|
} HuSndGrpData;
|
||||||
|
|
||||||
void HuAudInit(void);
|
void HuAudInit(void);
|
||||||
s32 HuAudStreamPlay(void);
|
s32 HuAudStreamPlay(void);
|
||||||
void HuAudStreamVolSet(s16 vol);
|
void HuAudStreamVolSet(s16 vol);
|
||||||
|
|
@ -64,4 +73,6 @@ extern float Snd3DDistOffset;
|
||||||
extern s32 musicOffF;
|
extern s32 musicOffF;
|
||||||
extern u8 fadeStat;
|
extern u8 fadeStat;
|
||||||
|
|
||||||
|
extern HuSndGrpData HuSndGrpTbl[];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ typedef struct system_state {
|
||||||
};
|
};
|
||||||
/* 0x32 */ s8 unk_32;
|
/* 0x32 */ s8 unk_32;
|
||||||
/* 0x34 */ u16 mg_next;
|
/* 0x34 */ u16 mg_next;
|
||||||
/* 0x36 */ s16 mg_next_type;
|
/* 0x36 */ s16 mg_type;
|
||||||
/* 0x38 */ u16 unk_38;
|
/* 0x38 */ u16 unk_38;
|
||||||
/* 0x3A */ u8 flag[3][16];
|
/* 0x3A */ u8 flag[3][16];
|
||||||
/* 0x6A */ u8 unk_6A[0x72];
|
/* 0x6A */ u8 unk_6A[0x72];
|
||||||
|
|
@ -153,6 +153,16 @@ static inline s32 GWTeamGet(void)
|
||||||
return GWSystem.team;
|
return GWSystem.team;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline s32 GWMGTypeGet(void)
|
||||||
|
{
|
||||||
|
return GWSystem.mg_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void GWMGTypeSet(s32 type)
|
||||||
|
{
|
||||||
|
GWSystem.mg_type = type;
|
||||||
|
}
|
||||||
|
|
||||||
static inline s32 GWPartyGet(void)
|
static inline s32 GWPartyGet(void)
|
||||||
{
|
{
|
||||||
return GWSystem.party;
|
return GWSystem.party;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "game/hsfformat.h"
|
#include "game/hsfformat.h"
|
||||||
#include "game/hsfman.h"
|
#include "game/hsfman.h"
|
||||||
#include "game/sprite.h"
|
#include "game/animdata.h"
|
||||||
|
|
||||||
typedef struct model_data ModelData;
|
typedef struct model_data ModelData;
|
||||||
typedef struct particle_data ParticleData;
|
typedef struct particle_data ParticleData;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
#define _GAME_HSFFORMAT_H
|
#define _GAME_HSFFORMAT_H
|
||||||
|
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
#include "game/sprite.h"
|
#include "game/animdata.h"
|
||||||
|
|
||||||
#define HSF_OBJ_NULL1 0
|
#define HSF_OBJ_NULL1 0
|
||||||
#define HSF_OBJ_REPLICA 1
|
#define HSF_OBJ_REPLICA 1
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,39 @@
|
||||||
#define _GAME_MINIGAME_SEQ_H
|
#define _GAME_MINIGAME_SEQ_H
|
||||||
|
|
||||||
#include "game/object.h"
|
#include "game/object.h"
|
||||||
|
#include "stdarg.h"
|
||||||
|
|
||||||
|
typedef struct seq_work SeqWork;
|
||||||
|
|
||||||
|
typedef int (*SeqUpdateFunc)(SeqWork *work);
|
||||||
|
typedef int (*SeqInitFunc)(SeqWork *work, va_list params);
|
||||||
|
|
||||||
|
typedef struct seq_work {
|
||||||
|
SeqUpdateFunc update;
|
||||||
|
char *data;
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float scale_x;
|
||||||
|
float scale_y;
|
||||||
|
float unk_18;
|
||||||
|
float angle;
|
||||||
|
float win_scale;
|
||||||
|
float unk_24;
|
||||||
|
s16 time;
|
||||||
|
s16 time_max;
|
||||||
|
s16 timer_val;
|
||||||
|
s16 state;
|
||||||
|
s16 alt_word_len;
|
||||||
|
s16 word_len;
|
||||||
|
s16 param[2];
|
||||||
|
s16 type;
|
||||||
|
s16 spr_grp[16];
|
||||||
|
s16 sprite[16];
|
||||||
|
u8 seq_no;
|
||||||
|
u8 stat;
|
||||||
|
u8 unk_7C;
|
||||||
|
u8 unk_7D;
|
||||||
|
} SeqWork;
|
||||||
|
|
||||||
void MGSeqInit(void);
|
void MGSeqInit(void);
|
||||||
void MGSeqMain(void);
|
void MGSeqMain(void);
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,6 @@ void HuSprGrpCenterSet(s16 group, float x, float y);
|
||||||
void HuSprGrpZRotSet(s16 group, float z_rot);
|
void HuSprGrpZRotSet(s16 group, float z_rot);
|
||||||
void HuSprGrpScaleSet(s16 group, float x, float y);
|
void HuSprGrpScaleSet(s16 group, float x, float y);
|
||||||
void HuSprGrpTPLvlSet(s16 group, float tp_lvl);
|
void HuSprGrpTPLvlSet(s16 group, float tp_lvl);
|
||||||
s32 HuSprGrpDrawNoSet(s16 group, s32 draw_no);
|
|
||||||
void HuSprDrawNoSet(s16 group, s16 member, s32 draw_no);
|
void HuSprDrawNoSet(s16 group, s16 member, s32 draw_no);
|
||||||
void HuSprPriSet(s16 group, s16 member, s16 prio);
|
void HuSprPriSet(s16 group, s16 member, s16 prio);
|
||||||
void HuSprGrpScissorSet(s16 group, s16 x, s16 y, s16 w, s16 h);
|
void HuSprGrpScissorSet(s16 group, s16 x, s16 y, s16 w, s16 h);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef _GAME_WINDOW_H
|
#ifndef _GAME_WINDOW_H
|
||||||
#define _GAME_WINDOW_H
|
#define _GAME_WINDOW_H
|
||||||
|
|
||||||
#include "game/sprite.h"
|
#include "game/animdata.h"
|
||||||
#include "dolphin.h"
|
#include "dolphin.h"
|
||||||
|
|
||||||
#define MAKE_MESSID(bank, mess) (((bank) << 16)+(mess))
|
#define MAKE_MESSID(bank, mess) (((bank) << 16)+(mess))
|
||||||
|
|
|
||||||
411
src/REL/instDll/main.c
Normal file
411
src/REL/instDll/main.c
Normal file
|
|
@ -0,0 +1,411 @@
|
||||||
|
#include "game/object.h"
|
||||||
|
#include "game/objsub.h"
|
||||||
|
#include "game/pad.h"
|
||||||
|
#include "game/gamework_data.h"
|
||||||
|
#include "game/hsfman.h"
|
||||||
|
#include "game/hsfmotion.h"
|
||||||
|
|
||||||
|
#include "game/wipe.h"
|
||||||
|
#include "game/flag.h"
|
||||||
|
#include "game/minigame_seq.h"
|
||||||
|
#include "game/data.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
#include "game/window.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
#include "math.h"
|
||||||
|
|
||||||
|
#include "rel_sqrt_consts.h"
|
||||||
|
|
||||||
|
void HuSprGrpDrawNoSet(s16 group, s32 draw_no);
|
||||||
|
static s16 lbl_1_data_0 = 1;
|
||||||
|
|
||||||
|
static omObjData *lbl_1_bss_60;
|
||||||
|
static omObjData *lbl_1_bss_5C;
|
||||||
|
static Process *lbl_1_bss_58;
|
||||||
|
static Vec lbl_1_bss_40[2];
|
||||||
|
static Vec lbl_1_bss_28[2];
|
||||||
|
static float lbl_1_bss_20[2];
|
||||||
|
static s32 lbl_1_bss_1C;
|
||||||
|
static AnimData *lbl_1_bss_18;
|
||||||
|
static u16 lbl_1_bss_14;
|
||||||
|
static u16 lbl_1_bss_12;
|
||||||
|
static u16 lbl_1_bss_10;
|
||||||
|
static float lbl_1_bss_C;
|
||||||
|
static u8 lbl_1_bss_8;
|
||||||
|
static u16 lbl_1_bss_6;
|
||||||
|
static u16 lbl_1_bss_4;
|
||||||
|
static s32 lbl_1_bss_0;
|
||||||
|
|
||||||
|
static void fn_1_994(void);
|
||||||
|
static void fn_1_17E4(void);
|
||||||
|
static void fn_1_220C(void);
|
||||||
|
static void fn_1_2804(void);
|
||||||
|
static void fn_1_2FA0(void);
|
||||||
|
static void fn_1_4174(omObjData *object);
|
||||||
|
static void fn_1_4528(omObjData *object);
|
||||||
|
|
||||||
|
void ModuleProlog(void)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
omOvlHisData *his;
|
||||||
|
s32 light;
|
||||||
|
OSReport("******* INST ObjectSetup *********\n");
|
||||||
|
lbl_1_bss_58 = omInitObjMan(50, 8192);
|
||||||
|
omGameSysInit(lbl_1_bss_58);
|
||||||
|
lbl_1_bss_8 = GWLanguageGet();
|
||||||
|
lbl_1_bss_14 = GWSystem.mg_next;
|
||||||
|
lbl_1_bss_10 = 0;
|
||||||
|
lbl_1_bss_4 = 0;
|
||||||
|
_ClearFlag(0x1000C);
|
||||||
|
for(i=0; HuSndGrpTbl[i].ovl != OVL_INVALID; i++) {
|
||||||
|
if(HuSndGrpTbl[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(HuSndGrpTbl[i].ovl != OVL_INVALID) {
|
||||||
|
HuAudSndGrpSetSet(HuSndGrpTbl[i].grpset);
|
||||||
|
}
|
||||||
|
if(mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) {
|
||||||
|
if(GWMGTypeGet() == -1) {
|
||||||
|
GWMGTypeSet(frandmod(3));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
GWMGTypeSet(-1);
|
||||||
|
}
|
||||||
|
HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir);
|
||||||
|
his = omOvlHisGet(0);
|
||||||
|
omOvlHisChg(0, OVL_RESULT, his->event, his->stat);
|
||||||
|
if(omovlevtno == 0 && mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) {
|
||||||
|
s32 team_cnt[2];
|
||||||
|
s32 team_players[2][2];
|
||||||
|
team_cnt[0] = team_cnt[1] = 0;
|
||||||
|
for(i=0; i<4; i++) {
|
||||||
|
team_players[GWPlayerCfg[i].group][team_cnt[GWPlayerCfg[i].group]++] = i;
|
||||||
|
}
|
||||||
|
if(frand() & 1) {
|
||||||
|
GWPlayerCfg[team_players[0][0]].group = 0;
|
||||||
|
GWPlayerCfg[team_players[0][1]].group = 1;
|
||||||
|
} else {
|
||||||
|
GWPlayerCfg[team_players[0][0]].group = 1;
|
||||||
|
GWPlayerCfg[team_players[0][1]].group = 0;
|
||||||
|
}
|
||||||
|
if(frand() & 1) {
|
||||||
|
GWPlayerCfg[team_players[1][0]].group = 2;
|
||||||
|
GWPlayerCfg[team_players[1][1]].group = 3;
|
||||||
|
} else {
|
||||||
|
GWPlayerCfg[team_players[1][0]].group = 3;
|
||||||
|
GWPlayerCfg[team_players[1][1]].group = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(mgInfoTbl[lbl_1_bss_14].type == 3
|
||||||
|
|| mgInfoTbl[lbl_1_bss_14].type == 5
|
||||||
|
|| mgInfoTbl[lbl_1_bss_14].type == 6
|
||||||
|
|| mgInfoTbl[lbl_1_bss_14].type == 8
|
||||||
|
|| !_CheckFlag(0xB)) {
|
||||||
|
HuDataDirClose(DATADIR_INST);
|
||||||
|
omSysPauseEnable(1);
|
||||||
|
omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lbl_1_bss_40[0].x = -67.0f;
|
||||||
|
lbl_1_bss_40[0].y = 40.0f;
|
||||||
|
lbl_1_bss_40[0].z = 0.0f;
|
||||||
|
lbl_1_bss_28[0].x = 260.0f;
|
||||||
|
lbl_1_bss_28[0].y = -103.0f;
|
||||||
|
lbl_1_bss_28[0].z = -18.0f;
|
||||||
|
lbl_1_bss_20[0] = 2885.0f;
|
||||||
|
lbl_1_bss_C = 20.0f;
|
||||||
|
lbl_1_bss_12 = GWSystem.board;
|
||||||
|
if(mgBoardHostEnableF) {
|
||||||
|
lbl_1_bss_12 = 1;
|
||||||
|
}
|
||||||
|
lbl_1_bss_40[1].x = lbl_1_bss_40[1].y = lbl_1_bss_40[1].z = 0.0f;
|
||||||
|
lbl_1_bss_28[1].x = lbl_1_bss_28[1].y = lbl_1_bss_28[1].z = 0.0f;
|
||||||
|
lbl_1_bss_20[1] = 1000.0f;
|
||||||
|
omSysPauseEnable(0);
|
||||||
|
Hu3DCameraCreate(3);
|
||||||
|
Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f);
|
||||||
|
Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1);
|
||||||
|
Hu3DCameraPerspectiveSet(2, 30.0f, 20.0f, 15000.0f, 1.2f);
|
||||||
|
Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1);
|
||||||
|
light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255);
|
||||||
|
Hu3DGLightInfinitytSet(light);
|
||||||
|
HuPrcChildCreate(fn_1_994, 100, 12288, 0, lbl_1_bss_58);
|
||||||
|
HuPrcChildCreate(fn_1_17E4, 100, 12288, 0, lbl_1_bss_58);
|
||||||
|
HuPrcChildCreate(fn_1_220C, 100, 12288, 0, lbl_1_bss_58);
|
||||||
|
HuPrcChildCreate(fn_1_2804, 100, 12288, 0, lbl_1_bss_58);
|
||||||
|
HuPrcChildCreate(fn_1_2FA0, 100, 12288, 0, lbl_1_bss_58);
|
||||||
|
lbl_1_bss_5C = omAddObjEx(lbl_1_bss_58, 32730, 0, 0, -1, fn_1_4174);
|
||||||
|
omAddObjEx(lbl_1_bss_58, 0, 32, 32, -1, fn_1_4528);
|
||||||
|
HuAudSeqPlay(59);
|
||||||
|
Hu3DBGColorSet(0, 0, 0);
|
||||||
|
HuWinInit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static s8 lbl_1_data_26[][4] = {
|
||||||
|
{ 3, 2, 1, 0 },
|
||||||
|
{ 1, 1, 1, 0 },
|
||||||
|
{ 1, 1, 0, 0 },
|
||||||
|
{ 0, 1, 2, 3 },
|
||||||
|
{ 3, 2, 1, 0 },
|
||||||
|
{ 0, -1, -1, -1 },
|
||||||
|
{ 0, -1, -1, -1 },
|
||||||
|
{ 3, 2, 1, 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static s8 lbl_1_data_46[] = {
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
4
|
||||||
|
};
|
||||||
|
|
||||||
|
static s32 lbl_1_data_50[] = {
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 0),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 1),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 2),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 3),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 4),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 0),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 5),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static s32 lbl_1_data_70[] = {
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 9),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 10),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 11),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 12),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 13),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 14),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 14),
|
||||||
|
DATA_MAKE_NUM(DATADIR_INST, 9),
|
||||||
|
};
|
||||||
|
|
||||||
|
static void fn_1_50B0(ModelData *model, Mtx mtx);
|
||||||
|
static void fn_1_5B64(ModelData *model, Mtx mtx);
|
||||||
|
|
||||||
|
static void fn_1_994(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
Vec pos;
|
||||||
|
Vec target;
|
||||||
|
Vec up;
|
||||||
|
|
||||||
|
Vec spC;
|
||||||
|
Process *process;
|
||||||
|
|
||||||
|
s16 i;
|
||||||
|
s16 model;
|
||||||
|
s16 num_coms;
|
||||||
|
s16 j;
|
||||||
|
s16 btns;
|
||||||
|
s32 status;
|
||||||
|
s32 done;
|
||||||
|
s16 group;
|
||||||
|
s32 pic;
|
||||||
|
omOvlHisData *his;
|
||||||
|
s16 sprite;
|
||||||
|
AnimData *anim;
|
||||||
|
float pos_z;
|
||||||
|
float time;
|
||||||
|
float fov_vel;
|
||||||
|
float rot_x;
|
||||||
|
|
||||||
|
|
||||||
|
process = HuPrcCurrentGet();
|
||||||
|
status = -1;
|
||||||
|
group = HuSprGrpCreate(1);
|
||||||
|
anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_70[mgInfoTbl[lbl_1_bss_14].type], MEMORY_DEFAULT_NUM));
|
||||||
|
sprite = HuSprCreate(anim, 0, 0);
|
||||||
|
HuSprGrpMemberSet(group, 0, sprite);
|
||||||
|
HuSprGrpDrawNoSet(group, 127);
|
||||||
|
HuSprPosSet(group, 0, 288, 240);
|
||||||
|
if(GWMGTypeGet() == -1) {
|
||||||
|
pic = mgInfoTbl[lbl_1_bss_14].inst_pic[0];
|
||||||
|
} else {
|
||||||
|
pic = mgInfoTbl[lbl_1_bss_14].inst_pic[GWMGTypeGet()];
|
||||||
|
}
|
||||||
|
lbl_1_bss_18 = HuSprAnimRead(HuDataReadNumHeapShortForce(pic, MEMORY_DEFAULT_NUM, HEAP_DATA));
|
||||||
|
Hu3DShadowCreate(20, 500, 8000);
|
||||||
|
Hu3DShadowTPLvlSet(0);
|
||||||
|
Hu3DShadowSizeSet(192);
|
||||||
|
target.x = target.y = target.z = 0;
|
||||||
|
pos.x = pos.z = 100.0f;
|
||||||
|
pos.y = 7000.0f;
|
||||||
|
up.x = up.y = 0.0f;
|
||||||
|
up.z = 1.0f;
|
||||||
|
Hu3DShadowPosSet(&pos, &up, &target);
|
||||||
|
model = Hu3DModelCreateFile(lbl_1_data_50[mgInfoTbl[lbl_1_bss_14].type]);
|
||||||
|
lbl_1_bss_1C = model;
|
||||||
|
Hu3DModelPosSet(model, 0, 2000, 0);
|
||||||
|
Hu3DModelAttrSet(model, 0x40000002);
|
||||||
|
Hu3DModelCameraSet(model, 1);
|
||||||
|
Hu3DModelShadowSet(model);
|
||||||
|
i = Hu3DHookFuncCreate(fn_1_5B64);
|
||||||
|
Hu3DModelPosSet(i, 0, -200, 0);
|
||||||
|
Hu3DModelCameraSet(i, 1);
|
||||||
|
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
|
||||||
|
while(WipeStatGet()) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
pos_z = -500.0f;
|
||||||
|
for(i=0; i<=50; i++) {
|
||||||
|
Hu3DModelPosSet(model, 0.0f, 2500.0*cos(M_PI*(i*1.8f)/180.0)-200.0, pos_z);
|
||||||
|
Hu3DModelRotSet(model, 0, 0, 45.0f*(1.0f-(i/50.0f)));
|
||||||
|
pos_z += 50.0/7.0;
|
||||||
|
Hu3DShadowTPLvlSet(0.5*(i/50.0f));
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuAudFXPlay(1211);
|
||||||
|
Hu3DModelAttrReset(model, 0x40000002);
|
||||||
|
for(i=1; i<=20; i++) {
|
||||||
|
Hu3DModelPosSet(model, 0.0f, (200.0*(sin(M_PI*(i*2.25f)/180.0)*(1.0/sin(M_PI/4))))-200.0, pos_z);
|
||||||
|
rot_x = (20-i)*cos(M_PI*(i*13.5f)/180.0);
|
||||||
|
Hu3DModelRotSet(model, rot_x, 0.0f, 0.0f);
|
||||||
|
pos_z += 50.0/7.0;
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
Hu3DModelPosSet(model, 0.0f, 0.0f, 0.0f);
|
||||||
|
Hu3DModelAttrSet(model, 0x40000002);
|
||||||
|
HuPrcSleep(10);
|
||||||
|
HuAudFXPlay(1212);
|
||||||
|
Hu3DModelAttrReset(model, 0x40000002);
|
||||||
|
i = Hu3DHookFuncCreate(fn_1_50B0);
|
||||||
|
|
||||||
|
Hu3DModelCameraSet(i, 1);
|
||||||
|
Hu3DModelPosSet(i, 0, 415, 0);
|
||||||
|
lbl_1_data_0 = 0;
|
||||||
|
while(Hu3DMotionTimeGet(model) < 80.0f) {
|
||||||
|
if(Hu3DMotionTimeGet(model) > 30.0f) {
|
||||||
|
lbl_1_data_0 = 2;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
Hu3DModelAttrSet(model, 0x40000002);
|
||||||
|
HuDataDirClose(DATADIR_INST);
|
||||||
|
status = HuDataDirReadAsync(mgInfoTbl[lbl_1_bss_14].data_dir);
|
||||||
|
while(lbl_1_data_0 != 1) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
done = 0;
|
||||||
|
for(i=num_coms=0; i<4; i++) {
|
||||||
|
if(GWPlayerCfg[i].iscom) {
|
||||||
|
num_coms++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i=0;
|
||||||
|
while(1) {
|
||||||
|
if(!done) {
|
||||||
|
for(btns=j=0; j<4; j++) {
|
||||||
|
if(!GWPlayerCfg[j].iscom) {
|
||||||
|
btns |= HuPadBtnDown[GWPlayerCfg[j].pad_idx];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((btns == PAD_BUTTON_START) || omSysExitReq || (num_coms == 4 && i > 60)) {
|
||||||
|
HuAudFXPlay(2);
|
||||||
|
done = 1;
|
||||||
|
}
|
||||||
|
if(btns == PAD_TRIGGER_Z) {
|
||||||
|
HuAudFXPlay(1);
|
||||||
|
done = 1;
|
||||||
|
his = omOvlHisGet(0);
|
||||||
|
omOvlHisChg(0, OVL_INST, 1, his->stat);
|
||||||
|
_SetFlag(0x1000C);
|
||||||
|
}
|
||||||
|
if(mgInstExitEnableF && (btns & PAD_BUTTON_B)) {
|
||||||
|
HuAudFXPlay(3);
|
||||||
|
if(status != -1) {
|
||||||
|
while(!HuDataGetAsyncStat(status)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||||
|
HuAudSeqAllFadeOut(500);
|
||||||
|
while(WipeStatGet()) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir);
|
||||||
|
if(mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) {
|
||||||
|
for(num_coms=0; num_coms<4; num_coms++) {
|
||||||
|
GWPlayerCfg[num_coms].group = GWPlayerCfg[num_coms].group/2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
omOvlReturnEx(1, 1);
|
||||||
|
HuPrcEnd();
|
||||||
|
while(1) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!lbl_1_bss_4 || !done) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(status != -1) {
|
||||||
|
while(!HuDataGetAsyncStat(status)) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spC = lbl_1_bss_40[0];
|
||||||
|
pos = lbl_1_bss_28[0];
|
||||||
|
pos_z = lbl_1_bss_20[0];
|
||||||
|
WipeColorSet(255, 255, 255);
|
||||||
|
lbl_1_data_0 = 3;
|
||||||
|
HuPrcSleep(20);
|
||||||
|
lbl_1_data_0 = 4;
|
||||||
|
HuPrcSleep(10);
|
||||||
|
|
||||||
|
Hu3DModelAttrReset(model, 0x40000002);
|
||||||
|
HuPrcSleep(10);
|
||||||
|
fov_vel = 0;
|
||||||
|
for(i=0; i<=60; i++) {
|
||||||
|
time = i/60.0f;
|
||||||
|
lbl_1_bss_40[0].x = spC.x+((-65.0f-spC.x)*time);
|
||||||
|
lbl_1_bss_40[0].y = spC.y+((8.0f-spC.y)*time);
|
||||||
|
lbl_1_bss_40[0].z = spC.z+(-spC.z)*time;
|
||||||
|
lbl_1_bss_28[0].x = pos.x+((17.0f-pos.x)*time);
|
||||||
|
lbl_1_bss_28[0].y = pos.y+((5.0f-pos.y)*time);
|
||||||
|
lbl_1_bss_28[0].z = pos.z+((-188.0f-pos.z)*time);
|
||||||
|
lbl_1_bss_20[0] = pos_z+((1173.0f-pos_z)*time);
|
||||||
|
if(i == 30) {
|
||||||
|
HuAudFXPlay(1210);
|
||||||
|
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30);
|
||||||
|
HuAudSeqAllFadeOut(1000);
|
||||||
|
}
|
||||||
|
if(i == 40) {
|
||||||
|
Hu3DModelAttrSet(model, 0x40000002);
|
||||||
|
}
|
||||||
|
if(i > 20) {
|
||||||
|
lbl_1_bss_C += fov_vel;
|
||||||
|
fov_vel += 0.04;
|
||||||
|
}
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
while(WipeStatGet()) {
|
||||||
|
lbl_1_bss_C += fov_vel;
|
||||||
|
fov_vel += 0.04;
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
lbl_1_data_0 = 6;
|
||||||
|
HuPrcVSleep();
|
||||||
|
omSysPauseEnable(1);
|
||||||
|
if(omSysExitReq) {
|
||||||
|
HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir);
|
||||||
|
omOvlReturnEx(1, 1);
|
||||||
|
} else {
|
||||||
|
omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0);
|
||||||
|
}
|
||||||
|
HuPrcEnd();
|
||||||
|
while(1) {
|
||||||
|
HuPrcVSleep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
#include "game/printfunc.h"
|
#include "game/printfunc.h"
|
||||||
#include "game/window.h"
|
#include "game/window.h"
|
||||||
#include "game/gamework_data.h"
|
#include "game/gamework_data.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
|
||||||
#include "REL/modeltestDll.h"
|
#include "REL/modeltestDll.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include "game/ClusterExec.h"
|
#include "game/ClusterExec.h"
|
||||||
#include "game/EnvelopeExec.h"
|
#include "game/EnvelopeExec.h"
|
||||||
#include "game/hsfmotion.h"
|
#include "game/hsfmotion.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
|
||||||
float GetClusterCurve(HsfTrack *arg0, float arg1) {
|
float GetClusterCurve(HsfTrack *arg0, float arg1) {
|
||||||
float *var_r30;
|
float *var_r30;
|
||||||
|
|
|
||||||
223
src/game/audio.c
223
src/game/audio.c
|
|
@ -5,15 +5,6 @@
|
||||||
#include "game/wipe.h"
|
#include "game/wipe.h"
|
||||||
#include "game/gamework_data.h"
|
#include "game/gamework_data.h"
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
/* 0x00 */ s16 unk00;
|
|
||||||
/* 0x02 */ s16 unk02;
|
|
||||||
/* 0x04 */ s32 unk04;
|
|
||||||
/* 0x08 */ s32 unk08;
|
|
||||||
/* 0x0C */ s8 unk0C;
|
|
||||||
/* 0x0D */ s8 unk0D;
|
|
||||||
} sndGrpTableData;
|
|
||||||
|
|
||||||
static s32 HuSePlay(s32 arg0, UnkMsmStruct_01 *arg1);
|
static s32 HuSePlay(s32 arg0, UnkMsmStruct_01 *arg1);
|
||||||
|
|
||||||
extern s16 omSysExitReq;
|
extern s16 omSysExitReq;
|
||||||
|
|
@ -346,111 +337,111 @@ s32 HuAudSStreamStatGet(s32 arg0) {
|
||||||
return msmStreamGetStatus(arg0);
|
return msmStreamGetStatus(arg0);
|
||||||
}
|
}
|
||||||
|
|
||||||
sndGrpTableData sndGrpTable[] = {
|
HuSndGrpData HuSndGrpTbl[] = {
|
||||||
{ OVL_BOOT , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_BOOT, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_INST , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_INST, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_M401 , 0x0012, 0, 2, 0x40, 0x40 },
|
{ OVL_M401, 18, 0, 2, 64, 64 },
|
||||||
{ OVL_M402 , 0x0013, 0, 3, 0x30, 0x20 },
|
{ OVL_M402, 19, 0, 3, 48, 32 },
|
||||||
{ OVL_M403 , 0x0014, 0, 1, 0xFF, 0xFF },
|
{ OVL_M403, 20, 0, 1, -1, -1 },
|
||||||
{ OVL_M404 , 0x0015, 0, 1, 0xFF, 0xFF },
|
{ OVL_M404, 21, 0, 1, -1, -1 },
|
||||||
{ OVL_M405 , 0x0016, 0, 1, 0x40, 0x20 },
|
{ OVL_M405, 22, 0, 1, 64, 32 },
|
||||||
{ OVL_M406 , 0x0017, 0, 1, 0xFF, 0xFF },
|
{ OVL_M406, 23, 0, 1, -1, -1 },
|
||||||
{ OVL_M407 , 0x0018, 0, 1, 0xFF, 0xFF },
|
{ OVL_M407, 24, 0, 1, -1, -1 },
|
||||||
{ OVL_M408 , 0x0019, 0, 1, 0xFF, 0xFF },
|
{ OVL_M408, 25, 0, 1, -1, -1 },
|
||||||
{ OVL_M409 , 0x001A, 0, 4, 0xFF, 0xFF },
|
{ OVL_M409, 26, 0, 4, -1, -1 },
|
||||||
{ OVL_M410 , 0x001B, 0, 1, 0xFF, 0xFF },
|
{ OVL_M410, 27, 0, 1, -1, -1 },
|
||||||
{ OVL_M411 , 0x001C, 0, 1, 0xFF, 0xFF },
|
{ OVL_M411, 28, 0, 1, -1, -1 },
|
||||||
{ OVL_M412 , 0x001D, 0, 1, 0xFF, 0xFF },
|
{ OVL_M412, 29, 0, 1, -1, -1 },
|
||||||
{ OVL_M413 , 0x001E, 0, 1, 0xFF, 0xFF },
|
{ OVL_M413, 30, 0, 1, -1, -1 },
|
||||||
{ OVL_M414 , 0x001F, 0, 1, 0xFF, 0xFF },
|
{ OVL_M414, 31, 0, 1, -1, -1 },
|
||||||
{ OVL_M415 , 0x0020, 0, 1, 0xFF, 0xFF },
|
{ OVL_M415, 32, 0, 1, -1, -1 },
|
||||||
{ OVL_M416 , 0x0021, 0, 1, 0xFF, 0xFF },
|
{ OVL_M416, 33, 0, 1, -1, -1 },
|
||||||
{ OVL_M417 , 0x0022, 0, 1, 0xFF, 0xFF },
|
{ OVL_M417, 34, 0, 1, -1, -1 },
|
||||||
{ OVL_M418 , 0x0023, 0, 1, 0x40, 0x40 },
|
{ OVL_M418, 35, 0, 1, 64, 64 },
|
||||||
{ OVL_M419 , 0x0024, 0, 6, 0xFF, 0xFF },
|
{ OVL_M419, 36, 0, 6, -1, -1 },
|
||||||
{ OVL_M420 , 0x0025, 0, 1, 0xFF, 0xFF },
|
{ OVL_M420, 37, 0, 1, -1, -1 },
|
||||||
{ OVL_M421 , 0x0026, 0, 1, 0xFF, 0xFF },
|
{ OVL_M421, 38, 0, 1, -1, -1 },
|
||||||
{ OVL_M422 , 0x0027, 0, 1, 0xFF, 0xFF },
|
{ OVL_M422, 39, 0, 1, -1, -1 },
|
||||||
{ OVL_M423 , 0x0028, 0, 1, 0xFF, 0xFF },
|
{ OVL_M423, 40, 0, 1, -1, -1 },
|
||||||
{ OVL_M424 , 0x0029, 0, 1, 0xFF, 0xFF },
|
{ OVL_M424, 41, 0, 1, -1, -1 },
|
||||||
{ OVL_M425 , 0x002A, 0, 1, 0xFF, 0xFF },
|
{ OVL_M425, 42, 0, 1, -1, -1 },
|
||||||
{ OVL_M426 , 0x002B, 0, 1, 0xFF, 0xFF },
|
{ OVL_M426, 43, 0, 1, -1, -1 },
|
||||||
{ OVL_M427 , 0x002C, 0, 1, 0x40, 0x48 },
|
{ OVL_M427, 44, 0, 1, 64, 72 },
|
||||||
{ OVL_M428 , 0x002D, 0, 1, 0xFF, 0xFF },
|
{ OVL_M428, 45, 0, 1, -1, -1 },
|
||||||
{ OVL_M429 , 0x002E, 0, 1, 0xFF, 0xFF },
|
{ OVL_M429, 46, 0, 1, -1, -1 },
|
||||||
{ OVL_M430 , 0x002F, 0, 1, 0xFF, 0xFF },
|
{ OVL_M430, 47, 0, 1, -1, -1 },
|
||||||
{ OVL_M431 , 0x0030, 0, 1, 0xFF, 0xFF },
|
{ OVL_M431, 48, 0, 1, -1, -1 },
|
||||||
{ OVL_M432 , 0x0031, 0, 1, 0x30, 0x20 },
|
{ OVL_M432, 49, 0, 1, 48, 32 },
|
||||||
{ OVL_M433 , 0x0032, 0, 1, 0xFF, 0xFF },
|
{ OVL_M433, 50, 0, 1, -1, -1 },
|
||||||
{ OVL_M434 , 0x0033, 0, 1, 0xFF, 0xFF },
|
{ OVL_M434, 51, 0, 1, -1, -1 },
|
||||||
{ OVL_M435 , 0x0034, 0, 9, 0x20, 0x40 },
|
{ OVL_M435, 52, 0, 9, 32, 64 },
|
||||||
{ OVL_M436 , 0x0035, 0, 10, 0x20, 0x40 },
|
{ OVL_M436, 53, 0, 10, 32, 64 },
|
||||||
{ OVL_M437 , 0x0036, 0, 1, 0x20, 0x40 },
|
{ OVL_M437, 54, 0, 1, 32, 64 },
|
||||||
{ OVL_M438 , 0x0037, 0, 11, 0xFF, 0xFF },
|
{ OVL_M438, 55, 0, 11, -1, -1 },
|
||||||
{ OVL_M439 , 0x0038, 0, 12, 0x30, 0x20 },
|
{ OVL_M439, 56, 0, 12, 48, 32 },
|
||||||
{ OVL_M440 , 0x0039, 0, 1, 0xFF, 0xFF },
|
{ OVL_M440, 57, 0, 1, -1, -1 },
|
||||||
{ OVL_M441 , 0x003A, 0, 1, 0xFF, 0xFF },
|
{ OVL_M441, 58, 0, 1, -1, -1 },
|
||||||
{ OVL_M442 , 0x003B, 0, 1, 0xFF, 0xFF },
|
{ OVL_M442, 59, 0, 1, -1, -1 },
|
||||||
{ OVL_M443 , 0x003C, 0, 1, 0xFF, 0xFF },
|
{ OVL_M443, 60, 0, 1, -1, -1 },
|
||||||
{ OVL_M444 , 0x003D, 0, 1, 0xFF, 0xFF },
|
{ OVL_M444, 61, 0, 1, -1, -1 },
|
||||||
{ OVL_M445 , 0x003E, 0, 1, 0xFF, 0xFF },
|
{ OVL_M445, 62, 0, 1, -1, -1 },
|
||||||
{ OVL_M446 , 0x003F, 0, 1, 0xFF, 0xFF },
|
{ OVL_M446, 63, 0, 1, -1, -1 },
|
||||||
{ OVL_M447 , 0x0040, 0, 1, 0xFF, 0xFF },
|
{ OVL_M447, 64, 0, 1, -1, -1 },
|
||||||
{ OVL_M448 , 0x0041, 0, 1, 0xFF, 0xFF },
|
{ OVL_M448, 65, 0, 1, -1, -1 },
|
||||||
{ OVL_M449 , 0x0042, 0, 1, 0xFF, 0xFF },
|
{ OVL_M449, 66, 0, 1, -1, -1 },
|
||||||
{ OVL_M450 , 0x0043, 0, 13, 0x40, 0x40 },
|
{ OVL_M450, 67, 0, 13, 64, 64 },
|
||||||
{ OVL_M451 , 0x0044, 0, 1, 0xFF, 0xFF },
|
{ OVL_M451, 68, 0, 1, -1, -1 },
|
||||||
{ OVL_M453 , 0x0045, 0, 1, 0xFF, 0xFF },
|
{ OVL_M453, 69, 0, 1, -1, -1 },
|
||||||
{ OVL_M455 , 0x0046, 0, 1, 0xFF, 0xFF },
|
{ OVL_M455, 70, 0, 1, -1, -1 },
|
||||||
{ OVL_M456 , 0x0047, 0, 1, 0xFF, 0xFF },
|
{ OVL_M456, 71, 0, 1, -1, -1 },
|
||||||
{ OVL_M457 , 0x0048, 0, 14, 0x40, 0x20 },
|
{ OVL_M457, 72, 0, 14, 64, 32 },
|
||||||
{ OVL_M458 , 0x0049, 0, 15, 0x40, 0x20 },
|
{ OVL_M458, 73, 0, 15, 64, 32 },
|
||||||
{ OVL_M459 , 0x004A, 0, 1, 0xFF, 0xFF },
|
{ OVL_M459, 74, 0, 1, -1, -1 },
|
||||||
{ OVL_M460 , 0x004B, 0, 1, 0xFF, 0xFF },
|
{ OVL_M460, 75, 0, 1, -1, -1 },
|
||||||
{ OVL_M461 , 0x004C, 0, 1, 0xFF, 0xFF },
|
{ OVL_M461, 76, 0, 1, -1, -1 },
|
||||||
{ OVL_M462 , 0x004D, 0, 1, 0xFF, 0xFF },
|
{ OVL_M462, 77, 0, 1, -1, -1 },
|
||||||
{ OVL_M463 , 0x004E, 0, 1, 0xFF, 0xFF },
|
{ OVL_M463, 78, 0, 1, -1, -1 },
|
||||||
{ OVL_MENT , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_MENT, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_MGMODE , 0x0001, 0, 1, 0xFF, 0xFF },
|
{ OVL_MGMODE, 1, 0, 1, -1, -1 },
|
||||||
{ OVL_MODESEL , 0x0000, 0, 1, 0xFF, 0xFF },
|
{ OVL_MODESEL, 0, 0, 1, -1, -1 },
|
||||||
{ OVL_MODELTEST, 0x0012, 0, 1, 0xFF, 0xFF },
|
{ OVL_MODELTEST, 18, 0, 1, -1, -1 },
|
||||||
{ OVL_MSETUP , 0x0000, 0, 1, 0xFF, 0xFF },
|
{ OVL_MSETUP, 0, 0, 1, -1, -1 },
|
||||||
{ OVL_MSTORY , 0x0005, 0, 1, 0xFF, 0xFF },
|
{ OVL_MSTORY, 5, 0, 1, -1, -1 },
|
||||||
{ OVL_MSTORY2 , 0x0005, 0, 1, 0xFF, 0xFF },
|
{ OVL_MSTORY2, 5, 0, 1, -1, -1 },
|
||||||
{ OVL_MSTORY3 , 0x0008, 0, 1, 0xFF, 0xFF },
|
{ OVL_MSTORY3, 8, 0, 1, -1, -1 },
|
||||||
{ OVL_NIS , 0x0009, 0, 1, 0xFF, 0xFF },
|
{ OVL_NIS, 9, 0, 1, -1, -1 },
|
||||||
{ OVL_OPTION , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_OPTION, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_PRESENT , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_PRESENT, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_RESULT , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_RESULT, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_SAF , 0x0000, 0, 2, 0x7F, 0x7F },
|
{ OVL_SAF, 0, 0, 2, 127, 127 },
|
||||||
{ OVL_SELMENU , 0x0000, 0, 1, 0xFF, 0xFF },
|
{ OVL_SELMENU, 0, 0, 1, -1, -1 },
|
||||||
{ OVL_W01 , 0x0009, 0, 1, 0xFF, 0xFF },
|
{ OVL_W01, 9, 0, 1, -1, -1 },
|
||||||
{ OVL_W02 , 0x000A, 0, 1, 0xFF, 0xFF },
|
{ OVL_W02, 10, 0, 1, -1, -1 },
|
||||||
{ OVL_W03 , 0x000B, 0, 1, 0xFF, 0xFF },
|
{ OVL_W03, 11, 0, 1, -1, -1 },
|
||||||
{ OVL_W04 , 0x000C, 0, 1, 0xFF, 0xFF },
|
{ OVL_W04, 12, 0, 1, -1, -1 },
|
||||||
{ OVL_W05 , 0x000D, 0, 1, 0xFF, 0xFF },
|
{ OVL_W05, 13, 0, 1, -1, -1 },
|
||||||
{ OVL_W06 , 0x000E, 0, 1, 0xFF, 0xFF },
|
{ OVL_W06, 14, 0, 1, -1, -1 },
|
||||||
{ OVL_W10 , 0x000F, 0, 1, 0xFF, 0xFF },
|
{ OVL_W10, 15, 0, 1, -1, -1 },
|
||||||
{ OVL_W20 , 0x0010, 0, 1, 0xFF, 0xFF },
|
{ OVL_W20, 16, 0, 1, -1, -1 },
|
||||||
{ OVL_W21 , 0x0011, 0, 1, 0xFF, 0xFF },
|
{ OVL_W21, 17, 0, 1, -1, -1 },
|
||||||
{ OVL_MPEX , 0x0004, 0, 1, 0xFF, 0xFF },
|
{ OVL_MPEX, 4, 0, 1, -1, -1 },
|
||||||
{ OVL_ZTAR , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_ZTAR, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_E3SETUP , 0x0000, 0, 1, 0xFF, 0xFF },
|
{ OVL_E3SETUP, 0, 0, 1, -1, -1 },
|
||||||
{ OVL_STAFF , 0xFFFF, 0, 1, 0xFF, 0xFF },
|
{ OVL_STAFF, -1, 0, 1, -1, -1 },
|
||||||
{ OVL_INVALID , 0xFFFF, 0, 1, 0x00, 0x00 }
|
{ OVL_INVALID, -1, 0, 1, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
void HuAudDllSndGrpSet(u16 ovl) {
|
void HuAudDllSndGrpSet(u16 ovl) {
|
||||||
sndGrpTableData *var_r31;
|
HuSndGrpData *var_r31;
|
||||||
s16 var_r29;
|
s16 var_r29;
|
||||||
|
|
||||||
var_r31 = sndGrpTable;
|
var_r31 = HuSndGrpTbl;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (var_r31->unk00 == ovl) {
|
if (var_r31->ovl == ovl) {
|
||||||
var_r29 = var_r31->unk02;
|
var_r29 = var_r31->grpset;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (var_r31->unk00 == OVL_INVALID) {
|
if (var_r31->ovl == OVL_INVALID) {
|
||||||
var_r29 = 0x12;
|
var_r29 = 0x12;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -459,14 +450,14 @@ void HuAudDllSndGrpSet(u16 ovl) {
|
||||||
if (var_r29 != -1) {
|
if (var_r29 != -1) {
|
||||||
OSReport("SOUND ##########################\n");
|
OSReport("SOUND ##########################\n");
|
||||||
HuAudSndGrpSetSet(var_r29);
|
HuAudSndGrpSetSet(var_r29);
|
||||||
if (var_r31->unk04 != auxANoBak || var_r31->unk08 != auxBNoBak) {
|
if (var_r31->auxANo != auxANoBak || var_r31->auxBNo != auxBNoBak) {
|
||||||
msmSysSetAux(var_r31->unk04, var_r31->unk08);
|
msmSysSetAux(var_r31->auxANo, var_r31->auxBNo);
|
||||||
OSReport("Change AUX %d,%d\n", var_r31->unk04, var_r31->unk08);
|
OSReport("Change AUX %d,%d\n", var_r31->auxANo, var_r31->auxBNo);
|
||||||
auxANoBak = var_r31->unk04;
|
auxANoBak = var_r31->auxANo;
|
||||||
auxBNoBak = var_r31->unk08;
|
auxBNoBak = var_r31->auxBNo;
|
||||||
HuPrcVSleep();
|
HuPrcVSleep();
|
||||||
}
|
}
|
||||||
HuAudAUXVolSet(var_r31->unk0C, var_r31->unk0D);
|
HuAudAUXVolSet(var_r31->auxAVol, var_r31->auxBVol);
|
||||||
OSReport("##########################\n");
|
OSReport("##########################\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -549,7 +540,7 @@ void HuAudAUXVolSet(s8 arg0, s8 arg1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void HuAudVoiceInit(s16 ovl) {
|
void HuAudVoiceInit(s16 ovl) {
|
||||||
sndGrpTableData *var_r29;
|
HuSndGrpData *var_r29;
|
||||||
OSTick temp_r23;
|
OSTick temp_r23;
|
||||||
s16 temp_r26;
|
s16 temp_r26;
|
||||||
s16 temp_r25;
|
s16 temp_r25;
|
||||||
|
|
@ -559,12 +550,12 @@ void HuAudVoiceInit(s16 ovl) {
|
||||||
s16 i;
|
s16 i;
|
||||||
|
|
||||||
if (ovl != OVL_INVALID) {
|
if (ovl != OVL_INVALID) {
|
||||||
var_r29 = sndGrpTable;
|
var_r29 = HuSndGrpTbl;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (var_r29->unk00 == ovl && var_r29->unk02 == -1) {
|
if (var_r29->ovl == ovl && var_r29->grpset == -1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (var_r29->unk00 == OVL_INVALID) {
|
if (var_r29->ovl == OVL_INVALID) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var_r29++;
|
var_r29++;
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
|
void HuSprGrpDrawNoSet(s16 group, s32 draw_no);
|
||||||
|
|
||||||
#define ABS(x) (((x) < 0) ? -(x) : (x))
|
#define ABS(x) (((x) < 0) ? -(x) : (x))
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,7 @@ void BoardSaveInit(s32 board)
|
||||||
GWSystem.bowser_event = 0;
|
GWSystem.bowser_event = 0;
|
||||||
GWSystem.unk_32 = 1;
|
GWSystem.unk_32 = 1;
|
||||||
GWSystem.mg_next = 0;
|
GWSystem.mg_next = 0;
|
||||||
GWSystem.mg_next_type = 0;
|
GWMGTypeSet(0);
|
||||||
GWSystem.unk_38 = 0;
|
GWSystem.unk_38 = 0;
|
||||||
GWSystem.block_pos = 0;
|
GWSystem.block_pos = 0;
|
||||||
memset(GWSystem.board_data, 0, 32);
|
memset(GWSystem.board_data, 0, 32);
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,7 @@ static void ExecMGSetup(void) {
|
||||||
BoardDataAsyncWait(var_r22);
|
BoardDataAsyncWait(var_r22);
|
||||||
var_r24 = mgNext + 0x191;
|
var_r24 = mgNext + 0x191;
|
||||||
BoardMGSetupPlayPush(mgType, var_r24);
|
BoardMGSetupPlayPush(mgType, var_r24);
|
||||||
GWSystem.mg_next_type = -1;
|
GWMGTypeSet(-1);
|
||||||
GWMGAvailSet(var_r24);
|
GWMGAvailSet(var_r24);
|
||||||
GWSystem.mg_next = var_r24 - 0x191;
|
GWSystem.mg_next = var_r24 - 0x191;
|
||||||
_SetFlag(0x10002U);
|
_SetFlag(0x10002U);
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
#include "game/hsfmotion.h"
|
#include "game/hsfmotion.h"
|
||||||
#include "game/object.h"
|
#include "game/object.h"
|
||||||
#include "game/process.h"
|
#include "game/process.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
#include "game/init.h"
|
#include "game/init.h"
|
||||||
#include "game/memory.h"
|
#include "game/memory.h"
|
||||||
#include "game/process.h"
|
#include "game/process.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
|
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -4,6 +4,7 @@
|
||||||
#include "game/window.h"
|
#include "game/window.h"
|
||||||
#include "game/flag.h"
|
#include "game/flag.h"
|
||||||
#include "game/card.h"
|
#include "game/card.h"
|
||||||
|
#include "game/sprite.h"
|
||||||
#include "game/gamework_data.h"
|
#include "game/gamework_data.h"
|
||||||
#include "data_num/win.h"
|
#include "data_num/win.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,7 @@ void HuSprGrpTPLvlSet(s16 group, float tp_lvl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 HuSprGrpDrawNoSet(s16 group, s32 draw_no)
|
void HuSprGrpDrawNoSet(s16 group, s32 draw_no)
|
||||||
{
|
{
|
||||||
HuSprGrp *group_ptr = &HuSprGrpData[group];
|
HuSprGrp *group_ptr = &HuSprGrpData[group];
|
||||||
s16 i;
|
s16 i;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue