Add more gamework setters
This commit is contained in:
parent
13e3527197
commit
70c811ea73
9 changed files with 95 additions and 76 deletions
|
|
@ -4,6 +4,9 @@
|
|||
#include "dolphin.h"
|
||||
#include "game/flag.h"
|
||||
|
||||
//HACK: to prevent prototype errors
|
||||
extern void HuPadRumbleAllStop(void);
|
||||
|
||||
typedef struct player_config {
|
||||
s16 character;
|
||||
s16 pad_idx;
|
||||
|
|
@ -175,16 +178,34 @@ static inline s32 GWRumbleGet(void)
|
|||
return GWGameStat.rumble;
|
||||
}
|
||||
|
||||
static inline void GWRumbleSet(s32 value)
|
||||
{
|
||||
GWGameStat.rumble = value;
|
||||
if(value == 0) {
|
||||
HuPadRumbleAllStop();
|
||||
}
|
||||
}
|
||||
|
||||
static inline s32 GWMGExplainGet(void)
|
||||
{
|
||||
return GWSystem.explain_mg;
|
||||
}
|
||||
|
||||
static inline void GWMGExplainSet(s32 value)
|
||||
{
|
||||
GWSystem.explain_mg = value;
|
||||
}
|
||||
|
||||
static inline s32 GWMGShowComGet(void)
|
||||
{
|
||||
return GWSystem.show_com_mg;
|
||||
}
|
||||
|
||||
static inline void GWMGShowComSet(s32 value)
|
||||
{
|
||||
GWSystem.show_com_mg = value;
|
||||
}
|
||||
|
||||
static inline s32 GWMGListGet(void)
|
||||
{
|
||||
if (GWSystem.mg_list == 3) {
|
||||
|
|
@ -193,6 +214,11 @@ static inline s32 GWMGListGet(void)
|
|||
return GWSystem.mg_list;
|
||||
}
|
||||
|
||||
static inline void GWMGListSet(s32 value)
|
||||
{
|
||||
GWSystem.mg_list = value;
|
||||
}
|
||||
|
||||
static inline s32 GWMessSpeedGet(void)
|
||||
{
|
||||
if (GWSystem.mess_speed == 3) {
|
||||
|
|
@ -201,10 +227,33 @@ static inline s32 GWMessSpeedGet(void)
|
|||
return GWSystem.mess_speed;
|
||||
}
|
||||
|
||||
static inline void GWMessSpeedSet(s32 value)
|
||||
{
|
||||
GWSystem.mess_speed = value;
|
||||
switch(value) {
|
||||
case 0:
|
||||
GWSystem.mess_delay = 16;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
GWSystem.mess_delay = 48;
|
||||
break;
|
||||
|
||||
default:
|
||||
GWSystem.mess_delay = 32;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void GWSaveModeSet(s32 value)
|
||||
{
|
||||
GWSystem.save_mode = value;
|
||||
}
|
||||
|
||||
static inline s32 GWSaveModeGet(void)
|
||||
{
|
||||
if (GWSystem.save_mode == 3) {
|
||||
GWSystem.save_mode = 1;
|
||||
GWSaveModeSet(1);
|
||||
}
|
||||
return GWSystem.save_mode;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,14 +129,13 @@ static void fn_1_32F0(omObjData *arg0) {
|
|||
fn_1_39E0(temp_r31->unk00, 1, 1);
|
||||
temp_r31->unk20 = 1;
|
||||
temp_r31->unk28 = 0;
|
||||
GWGameStat.rumble = 1;
|
||||
GWRumbleSet(1);
|
||||
arg0->unk10 = 3;
|
||||
} else if (fn_1_584(4) != 0 && temp_r31->unk20 != 0) {
|
||||
fn_1_39E0(temp_r31->unk00, 0, 1);
|
||||
temp_r31->unk20 = 0;
|
||||
temp_r31->unk28 = 0;
|
||||
GWGameStat.rumble = 0;
|
||||
HuPadRumbleAllStop();
|
||||
GWRumbleSet(0);
|
||||
arg0->unk10 = 3;
|
||||
}
|
||||
}
|
||||
|
|
@ -201,7 +200,7 @@ static omObjData *fn_1_38BC(void) {
|
|||
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
|
||||
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 2));
|
||||
Hu3DModelAttrSet(temp_r31->model[0], 0x40000002);
|
||||
if (GWGameStat.rumble != 0) {
|
||||
if (GWRumbleGet()) {
|
||||
Hu3DMotionTimeSet(temp_r31->model[0], 60.0f);
|
||||
} else {
|
||||
Hu3DMotionTimeSet(temp_r31->model[0], 0.0f);
|
||||
|
|
@ -319,7 +318,7 @@ static omObjData *fn_1_3F28(void) {
|
|||
|
||||
temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL);
|
||||
temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 11));
|
||||
if (GWGameStat.rumble != 0) {
|
||||
if (GWRumbleGet()) {
|
||||
Hu3DModelAttrReset(temp_r31->model[0], 1);
|
||||
} else {
|
||||
Hu3DModelAttrSet(temp_r31->model[0], 1);
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ static void fn_1_6E8(void) {
|
|||
}
|
||||
SLCommonSet();
|
||||
if (SLSave() == 0) {
|
||||
GWSystem.save_mode = 1;
|
||||
GWSaveModeSet(1);
|
||||
}
|
||||
WipeCreate(2, 0, 0x14);
|
||||
while (WipeStatGet() != 0) {
|
||||
|
|
|
|||
|
|
@ -998,7 +998,7 @@ void fn_1_461C(void)
|
|||
HuPrcVSleep();
|
||||
}
|
||||
if(GWSaveModeGet() == 2) {
|
||||
GWSystem.save_mode = 1;
|
||||
GWSaveModeSet(1);
|
||||
}
|
||||
if(GWPartyGet() == 1) {
|
||||
GWGameStat.party_continue = 1;
|
||||
|
|
@ -1011,7 +1011,7 @@ void fn_1_461C(void)
|
|||
if(SLSave()) {
|
||||
saveExecF = 1;
|
||||
} else {
|
||||
GWSystem.save_mode = 1;
|
||||
GWSaveModeSet(1);
|
||||
}
|
||||
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
|
||||
while(WipeStatGet()) {
|
||||
|
|
|
|||
|
|
@ -154,25 +154,24 @@ static void FortuneMain(void)
|
|||
while(fortunePlatformObj) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
if(GWPlayer[GWSystem.player_curr].com) {
|
||||
if((int)GWSystem.show_com_mg == 0) {
|
||||
HuPrcSleep(60);
|
||||
for(i=0; i<4; i++) {
|
||||
s32 bit11 = GWPlayer[i].team_backup;
|
||||
GWPlayer[i].team = bit11;
|
||||
GWPlayerCfg[i].group = bit11;
|
||||
}
|
||||
ConfigComFortune();
|
||||
FortunePostMG();
|
||||
BoardMusStartBoard();
|
||||
ExecComFortuneWin();
|
||||
return;
|
||||
if(GWPlayer[GWSystem.player_curr].com && !GWMGShowComGet()) {
|
||||
HuPrcSleep(60);
|
||||
for(i=0; i<4; i++) {
|
||||
s32 bit11 = GWPlayer[i].team_backup;
|
||||
GWPlayer[i].team = bit11;
|
||||
GWPlayerCfg[i].group = bit11;
|
||||
}
|
||||
ConfigComFortune();
|
||||
FortunePostMG();
|
||||
BoardMusStartBoard();
|
||||
ExecComFortuneWin();
|
||||
return;
|
||||
} else {
|
||||
GWMGAvailSet(444);
|
||||
GWSystem.mg_next = 43;
|
||||
_SetFlag(0x10005);
|
||||
BoardNextOvlSet(OVL_M444);
|
||||
}
|
||||
GWMGAvailSet(444);
|
||||
GWSystem.mg_next = 43;
|
||||
_SetFlag(0x10005);
|
||||
BoardNextOvlSet(OVL_M444);
|
||||
}
|
||||
|
||||
static void FortunePostMG(void)
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ void BoardStoryConfigSet(s32 mg_list, s32 diff_story)
|
|||
GWSystem.team = 0;
|
||||
GWSystem.diff_story = diff_story;
|
||||
GWSystem.bonus_star = 0;
|
||||
GWSystem.mg_list = mg_list;
|
||||
GWMGListSet(mg_list);
|
||||
GWPlayer[0].handicap = 0;
|
||||
GWPlayer[1].handicap = 0;
|
||||
GWPlayer[2].handicap = 0;
|
||||
|
|
@ -365,7 +365,7 @@ void BoardPartyConfigSet(s32 team, s32 bonus_star, s32 mg_list, s32 max_turn, s3
|
|||
GWSystem.team = team;
|
||||
GWSystem.diff_story = 0;
|
||||
GWSystem.bonus_star = bonus_star;
|
||||
GWSystem.mg_list = mg_list;
|
||||
GWMGListSet(mg_list);
|
||||
GWSystem.max_turn = max_turn;
|
||||
memset(GWPlayer, 0, 4*sizeof(PlayerState));
|
||||
GWPlayer[0].handicap = p1_handicap;
|
||||
|
|
@ -613,27 +613,12 @@ s32 BoardStartCheck(void)
|
|||
static void CreateBoard(void)
|
||||
{
|
||||
s32 guest_status;
|
||||
s32 mess_speed;
|
||||
|
||||
GWSystem.mg_next = -1;
|
||||
if(!GWGameStat.field10E_bit5 && GWMGListGet() == 2) {
|
||||
GWSystem.mg_list = 0;
|
||||
}
|
||||
mess_speed = GWMessSpeedGet();
|
||||
GWSystem.mess_speed = mess_speed;
|
||||
switch(mess_speed) {
|
||||
case 0:
|
||||
GWSystem.mess_delay = 16;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
GWSystem.mess_delay = 48;
|
||||
break;
|
||||
|
||||
default:
|
||||
GWSystem.mess_delay = 32;
|
||||
break;
|
||||
GWMGListSet(0);
|
||||
}
|
||||
GWMessSpeedSet(GWMessSpeedGet());
|
||||
if(GWMGExplainGet()) {
|
||||
_SetFlag(FLAG_ID_MAKE(0, 11));
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -483,8 +483,6 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
ConfigWork *temp_r31;
|
||||
s16 temp_r28;
|
||||
s32 var_r29;
|
||||
s32 var_r27;
|
||||
s32 var_r26;
|
||||
|
||||
temp_r31 = OM_GET_WORK_PTR(arg0, ConfigWork);
|
||||
if (temp_r31->unk00_field0 != 0 || BoardIsKill()) {
|
||||
|
|
@ -508,15 +506,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
break;
|
||||
case 1:
|
||||
if (UpdatePauseBox(arg0, temp_r31, 1) != 0) {
|
||||
var_r27 = boxState[1];
|
||||
GWSystem.explain_mg = var_r27;
|
||||
GWMGExplainSet(boxState[1]);
|
||||
}
|
||||
UpdatePauseText(cursorPos);
|
||||
break;
|
||||
case 2:
|
||||
if (UpdatePauseBox(arg0, temp_r31, 2) != 0) {
|
||||
var_r26 = boxState[2];
|
||||
GWSystem.show_com_mg = var_r26;
|
||||
GWMGShowComSet(boxState[2]);
|
||||
}
|
||||
UpdatePauseText(cursorPos);
|
||||
break;
|
||||
|
|
@ -524,13 +520,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
if (UpdatePauseBoxExt(arg0, temp_r31, 3) != 0) {
|
||||
switch (boxState[3]) {
|
||||
case 0:
|
||||
GWSystem.mg_list = 1;
|
||||
GWMGListSet(1);
|
||||
break;
|
||||
case 1:
|
||||
GWSystem.mg_list = 0;
|
||||
GWMGListSet(0);
|
||||
break;
|
||||
case 2:
|
||||
GWSystem.mg_list = 2;
|
||||
GWMGListSet(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -538,11 +534,7 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
break;
|
||||
case 4:
|
||||
if (UpdatePauseBox(arg0, temp_r31, 4) != 0) {
|
||||
var_r29 = boxState[4];
|
||||
GWGameStat.rumble = var_r29;
|
||||
if (var_r29 == 0) {
|
||||
HuPadRumbleAllStop();
|
||||
}
|
||||
GWRumbleSet(boxState[4]);
|
||||
}
|
||||
UpdatePauseText(cursorPos);
|
||||
break;
|
||||
|
|
@ -550,16 +542,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
if (UpdatePauseBoxExt(arg0, temp_r31, 5) != 0) {
|
||||
switch (boxState[5]) {
|
||||
case 0:
|
||||
GWSystem.mess_speed = 2;
|
||||
GWSystem.mess_delay = 48;
|
||||
GWMessSpeedSet(2);
|
||||
break;
|
||||
case 1:
|
||||
GWSystem.mess_speed = 1;
|
||||
GWSystem.mess_delay = 32;
|
||||
GWMessSpeedSet(1);
|
||||
break;
|
||||
case 2:
|
||||
GWSystem.mess_speed = 0;
|
||||
GWSystem.mess_delay = 16;
|
||||
GWMessSpeedSet(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -573,13 +562,13 @@ static void PauseConfigObjFunc(omObjData *arg0) {
|
|||
if (UpdatePauseBoxExt(arg0, temp_r31, 6) != 0) {
|
||||
switch (boxState[6]) {
|
||||
case 0:
|
||||
GWSystem.save_mode = 1;
|
||||
GWSaveModeSet(1);
|
||||
break;
|
||||
case 1:
|
||||
GWSystem.save_mode = 0;
|
||||
GWSaveModeSet(0);
|
||||
break;
|
||||
case 2:
|
||||
GWSystem.save_mode = 2;
|
||||
GWSaveModeSet(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,12 +36,11 @@ static inline void InitPlayerConfig(void)
|
|||
|
||||
static inline void ResetBoardSettings(void)
|
||||
{
|
||||
GWGameStat.rumble = 1;
|
||||
GWSystem.explain_mg = 1;
|
||||
GWSystem.show_com_mg = 1;
|
||||
GWSystem.mess_speed = 1;
|
||||
GWSystem.mess_delay = 32;
|
||||
GWSystem.save_mode = 0;
|
||||
GWRumbleSet(1);
|
||||
GWMGExplainSet(1);
|
||||
GWMGShowComSet(1);
|
||||
GWMessSpeedSet(1);
|
||||
GWSaveModeSet(0);
|
||||
}
|
||||
|
||||
void GWInit(void)
|
||||
|
|
|
|||
|
|
@ -1210,9 +1210,8 @@ void omGameSysInit(Process *objman) {
|
|||
}
|
||||
|
||||
void omVibrate(s16 player, s16 duration, s16 off, s16 on) {
|
||||
s32 rumble = GWGameStat.rumble;
|
||||
|
||||
if (rumble != 0 && GWPlayerCfg[player].iscom == 0) {
|
||||
if (GWRumbleGet() != 0 && GWPlayerCfg[player].iscom == 0) {
|
||||
HuPadRumbleSet(GWPlayerCfg[player].pad_idx, duration, off, on);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue