Merge pull request #132 from gamemasterplc/main

Finish BoardLast5GfxInit
This commit is contained in:
gamemasterplc 2024-01-19 17:01:34 -06:00 committed by GitHub
commit cf62f8879e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 26 additions and 33 deletions

View file

@ -545,7 +545,7 @@ XFB_putcProgressive = .text:0x80030514; // type:function size:0x1F0
XFB_putcInterlace = .text:0x80030704; // type:function size:0x1B4
GWInit = .text:0x800308B8; // type:function size:0x14C
GWGameStatReset = .text:0x80030A04; // type:function size:0x318
GWMessSpeedGet = .text:0x80030D1C; // type:function size:0x4C
GWMessDelayGet = .text:0x80030D1C; // type:function size:0x4C
GWMGRecordSet = .text:0x80030D68; // type:function size:0x54
GWMGRecordGet = .text:0x80030DBC; // type:function size:0x18
GWCharColorGet = .text:0x80030DD4; // type:function size:0x140

View file

@ -105,7 +105,7 @@ typedef struct player_state {
typedef struct game_stat {
/* 0x0 */ s16 unk_00;
/* 0x2 */ s8 language;
/* 0x2 */ u8 language;
/* 0x3 */ u8 sound_mode;
/* 0x4 */ s8 rumble;
/* 0x6 */ u16 total_stars;
@ -147,4 +147,19 @@ extern PlayerState GWPlayer[4];
extern SystemState GWSystem;
extern GameStat GWGameStat;
static inline s32 GWLanguageGet(void)
{
return GWGameStat.language;
}
static inline s32 GWMGTypeGet()
{
return GWSystem.mg_type;
}
static inline s32 GWMessSpeedGet()
{
return GWSystem.mess_speed;
}
#endif

View file

@ -93,17 +93,6 @@ static s32 ExecTurnStart(void);
static void CreateBoard(void);
static void DestroyBoard(void);
static inline int GWMGTypeGet()
{
return GWSystem.mg_type;
}
static inline int GWMessSpeedGet()
{
return GWSystem.mess_speed;
}
#define BOARD_FABS(value) ((value < 0) ? -(value) : (value))
void BoardCommonInit(BoardFunc create, BoardFunc destroy)
@ -2042,13 +2031,8 @@ void BoardLast5GfxInit(void)
prio = 1400;
}
spr_file = last5GfxSprTbl[i];
if(i == 2 && work->is_last) {
//FIXME: unnecessary extsb during comparison
s8 language = GWGameStat.language;
if(language != 0) {
spr_file = MAKE_DATA_NUM(DATADIR_BOARD, 98);
}
if(i == 2 && work->is_last && GWLanguageGet() != 0) {
spr_file = MAKE_DATA_NUM(DATADIR_BOARD, 98);
}
BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]);
HuSprGrpMemberSet(work->group, i, work->sprites[i]);

View file

@ -182,7 +182,6 @@ void BoardWinPause(void) {
void BoardWinCreateChoice(s32 pos, u32 mess, s32 portrait, s32 choice) {
s32 i;
s32 speed;
winPosIdx = pos;
@ -213,13 +212,11 @@ void BoardWinCreateChoice(s32 pos, u32 mess, s32 portrait, s32 choice) {
if (GWSystem.mess_speed == 3) {
GWSystem.mess_speed = 1;
}
speed = GWSystem.mess_speed;
BoardWinSpeedSet(speed);
BoardWinSpeedSet(GWMessSpeedGet());
BoardWinPlayerSet(GWSystem.player_curr);
}
void BoardWinCreate(s32 pos, u32 mess, s32 portrait) {
s32 speed;
s32 i;
winPosIdx = pos;
@ -250,8 +247,7 @@ void BoardWinCreate(s32 pos, u32 mess, s32 portrait) {
if (GWSystem.mess_speed == 3) {
GWSystem.mess_speed = 1;
}
speed = GWSystem.mess_speed;
BoardWinSpeedSet(speed);
BoardWinSpeedSet(GWMessSpeedGet());
BoardWinPlayerSet(GWSystem.player_curr);
autoPickF = 0;
}
@ -381,7 +377,7 @@ void BoardWinPlayerSet(s32 player) {
void BoardWinStartComKeySet(void) {
s32 comkey[4];
s32 speed;
s32 delay;
s32 waitnum;
s32 i;
@ -410,12 +406,12 @@ void BoardWinStartComKeySet(void) {
}
}
}
speed = GWMessSpeedGet();
delay = GWMessDelayGet();
waitnum = HuWinKeyWaitNumGet(winMess);
if (waitnum != 0) {
HuWinComKeyReset();
for (i = 0; i < waitnum; i++) {
HuWinComKeyWait(comkey[0], comkey[1], comkey[2], comkey[3], speed);
HuWinComKeyWait(comkey[0], comkey[1], comkey[2], comkey[3], delay);
}
}
}

View file

@ -134,7 +134,7 @@ void GWGameStatReset(void)
ResetBoardSettings();
}
s32 GWMessSpeedGet(void)
s32 GWMessDelayGet(void)
{
if(GWSystem.mess_delay > 48) {
GWSystem.mess_speed = 1;

View file

@ -201,14 +201,12 @@ void HuWindowInit(void) {
void HuWinInit(s32 mess_data_no) {
s16 i;
void *anim_data;
s8 language;
if (!winProc) {
HuAR_ARAMtoMRAM(winAMemP);
winProc = HuPrcCreate(HuWinProc, 0x64, 0x1000, 0);
HuPrcSetStat(winProc, 0xC);
language = GWGameStat.language;
LanguageNo = language;
LanguageNo = GWLanguageGet();
messDataNo = mess_data_no;
fontWidthP = (LanguageNo == 0) ? charWJTbl : charWETbl;
HuWinMesRead(mess_data_no);