Matched board/ui
This commit is contained in:
parent
5db390678a
commit
44a6066f08
8 changed files with 2075 additions and 16 deletions
|
|
@ -4,7 +4,7 @@ symbols: config/GMPE01_00/symbols.txt
|
|||
splits: config/GMPE01_00/splits.txt
|
||||
quick_analysis: true # Faster re-runs after initial analysis
|
||||
mw_comment_version: 10 # GC 2.6 linker
|
||||
force_active: [__register_global_object]
|
||||
force_active: [__register_global_object, lbl_801D40D0]
|
||||
|
||||
modules:
|
||||
- object: orig/GMPE01_00/files/dll/_minigameDll.rel
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ config.libs = [
|
|||
Object(NonMatching, "game/board/mushroom.c"),
|
||||
Object(NonMatching, "game/board/star.c"),
|
||||
Object(NonMatching, "game/board/roll.c"),
|
||||
Object(NonMatching, "game/board/ui.c"),
|
||||
Object(Matching, "game/board/ui.c"),
|
||||
Object(NonMatching, "game/board/block.c"),
|
||||
Object(NonMatching, "game/board/item.c"),
|
||||
Object(NonMatching, "game/board/bowser.c"),
|
||||
|
|
|
|||
|
|
@ -111,13 +111,25 @@ static inline u16 __OSf32tou16(register f32 inF)
|
|||
|
||||
static inline void OSf32tou16(f32 *f, u16 *out) { *out = __OSf32tou16(*f); }
|
||||
|
||||
static inline float __OSs8tof32(register const s8* arg) {
|
||||
register float ret;
|
||||
|
||||
asm {
|
||||
psq_l ret, 0(arg), 1, OS_FASTCAST_S8
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline void OSs8tof32(const s8* in, float* out) { *out = __OSs8tof32(in); }
|
||||
|
||||
static inline float __OSs16tof32(register const s16* arg) {
|
||||
register float ret;
|
||||
|
||||
asm {
|
||||
asm {
|
||||
psq_l ret, 0(arg), 1, OS_FASTCAST_S16
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -129,7 +141,7 @@ static inline float __OSu8tof32(register const u8* arg) {
|
|||
asm {
|
||||
psq_l ret, 0(arg), 1, OS_FASTCAST_U8
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -141,7 +153,7 @@ static inline float __OSu16tof32(register const u16* arg) {
|
|||
asm {
|
||||
psq_l ret, 0(arg), 1, OS_FASTCAST_U16
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
36
include/game/board/ui.h
Executable file
36
include/game/board/ui.h
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#ifndef _BOARD_UI_H
|
||||
#define _BOARD_UI_H
|
||||
|
||||
#include "game/sprite.h"
|
||||
|
||||
s32 BoardItemModelGet(s32 arg0);
|
||||
s32 BoardItemNameGet(s32 arg0);
|
||||
BOOL BoardStatusStopCheck(s32 arg0);
|
||||
s32 BoardStatusVisibleGet(s32 arg0);
|
||||
void BoardStatusShowSetAll(s32 arg0);
|
||||
void BoardStatusItemSet(s32 arg0);
|
||||
void BoardStatusShowSetForce(s32 arg0);
|
||||
void BoardStatusGraySet(s32 arg0, s32 arg1);
|
||||
void BoardStatusShowSet(s32 arg0, s32 arg1);
|
||||
void BoardStatusItemHideSet(s32 arg0, s32 arg1);
|
||||
void BoardStatusTargetPosSet(s32 arg0, Vec *arg1);
|
||||
void BoardStatusPosGet(s32 arg0, float *arg1);
|
||||
void BoardStatusPosSet(s32 arg0, Vec *arg1);
|
||||
void BoardStatusHammerCreate(s32 arg0);
|
||||
void BoardStatusHammerShowSet(s32 arg0, s32 arg1);
|
||||
void BoardStatusHammerKill(s32 arg0);
|
||||
void BoardStatusKill(void);
|
||||
void BoardStatusCreate(void);
|
||||
void BoardSpriteCreate(s32 file, s32 prio, AnimData **anim, s16 *sprite);
|
||||
void BoardSpriteDigitUpdate(s16 arg0, s16 arg1, s32 arg2);
|
||||
void BoardPickerCreate(s32 arg0, s8 arg1, void *arg2, s8 arg3);
|
||||
void BoardPickerBackFlagSet(s32 arg0);
|
||||
BOOL BoardPickerDoneCheck(void);
|
||||
s32 BoardPickerPosGet(Vec *arg0);
|
||||
s32 BoardPickerChoiceGet(void);
|
||||
s32 BoardItemUseExec(s32 arg0);
|
||||
void BoardMakeRandomItem(void);
|
||||
void BoardItemGetDestPos(s32 arg0, Vec *arg1);
|
||||
void BoardItemStatusKill(s32 arg0);
|
||||
|
||||
#endif
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
void GWInit(void);
|
||||
void GWGameStatReset(void);
|
||||
s32 GWMessSpeedGet(void);
|
||||
s32 GWMessDelayGet(void);
|
||||
void GWMGRecordSet(int index, s32 value);
|
||||
s32 GWMGRecordGet(int index);
|
||||
void GWCharColorGet(int character, GXColor *color);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ typedef struct system_state {
|
|||
/* 0x30 */ u8 mess_delay;
|
||||
/* 0x31 */ struct {
|
||||
u8 field31_bit0 : 4;
|
||||
u8 field31_bit4 : 4;
|
||||
u8 field31_bit4 : 4;
|
||||
};
|
||||
/* 0x32 */ s8 unk_32;
|
||||
/* 0x34 */ u16 mg_next;
|
||||
|
|
@ -57,7 +57,7 @@ typedef struct player_state {
|
|||
u16 com : 1;
|
||||
u16 character : 4;
|
||||
u16 auto_size : 2;
|
||||
u16 field00_bit9 : 1;
|
||||
u16 field00_bit9 : 1;
|
||||
};
|
||||
/* 0x02 */ struct {
|
||||
u8 team : 1;
|
||||
|
|
@ -147,19 +147,34 @@ extern PlayerState GWPlayer[4];
|
|||
extern SystemState GWSystem;
|
||||
extern GameStat GWGameStat;
|
||||
|
||||
static inline s32 GWTeamGet(void)
|
||||
{
|
||||
return GWSystem.team;
|
||||
}
|
||||
|
||||
static inline s32 GWLanguageGet(void)
|
||||
{
|
||||
return GWGameStat.language;
|
||||
return GWGameStat.language;
|
||||
}
|
||||
|
||||
static inline s32 GWMGTypeGet()
|
||||
static inline s32 GWMGTypeGet(void)
|
||||
{
|
||||
return GWSystem.mg_type;
|
||||
return GWSystem.mg_type;
|
||||
}
|
||||
|
||||
static inline s32 GWMessSpeedGet()
|
||||
static inline s32 GWMessSpeedGet(void)
|
||||
{
|
||||
return GWSystem.mess_speed;
|
||||
return GWSystem.mess_speed;
|
||||
}
|
||||
|
||||
static inline s32 GWBoardGet(void)
|
||||
{
|
||||
return GWSystem.board;
|
||||
}
|
||||
|
||||
static inline s32 GWPlayerTeamGet(s32 player)
|
||||
{
|
||||
return GWPlayer[player].team;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1982,8 +1982,6 @@ static float last5GfxPosTbl[2][3][2] = {
|
|||
|
||||
static void UpdateLast5Gfx(omObjData *object);
|
||||
|
||||
void BoardSpriteCreate(s32 file, s16 prio, AnimData **anim, s16 *sprite);
|
||||
|
||||
void BoardLast5GfxInit(void)
|
||||
{
|
||||
Last5GfxWork *work;
|
||||
|
|
@ -2011,7 +2009,7 @@ void BoardLast5GfxInit(void)
|
|||
lastF = 0;
|
||||
}
|
||||
for(i=0; i<3; i++) {
|
||||
s16 prio;
|
||||
s32 prio;
|
||||
s32 spr_file;
|
||||
|
||||
if(i == 1) {
|
||||
|
|
|
|||
1997
src/game/board/ui.c
Executable file
1997
src/game/board/ui.c
Executable file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue