Split and Label gamework.c
This commit is contained in:
parent
eb0cad89f0
commit
d759d991f7
9 changed files with 65 additions and 59 deletions
|
|
@ -159,6 +159,11 @@ game/fault.c:
|
||||||
.sdata start:0x801D34A0 end:0x801D34B0
|
.sdata start:0x801D34A0 end:0x801D34B0
|
||||||
.sbss start:0x801D3CF0 end:0x801D3D00
|
.sbss start:0x801D3CF0 end:0x801D3D00
|
||||||
|
|
||||||
|
game/gamework.c:
|
||||||
|
.text start:0x800308B8 end:0x800315BC
|
||||||
|
.rodata start:0x8011DD30 end:0x8011DD50
|
||||||
|
.bss start:0x8018FC10 end:0x80190008
|
||||||
|
|
||||||
game/ovllist.c:
|
game/ovllist.c:
|
||||||
.data start:0x8012F790 end:0x80130100
|
.data start:0x8012F790 end:0x80130100
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -543,36 +543,36 @@ XFB_puts = .text:0x800302D0; // type:function size:0xF4
|
||||||
XFB_putcS = .text:0x800303C4; // type:function size:0x150
|
XFB_putcS = .text:0x800303C4; // type:function size:0x150
|
||||||
XFB_putcProgressive = .text:0x80030514; // type:function size:0x1F0
|
XFB_putcProgressive = .text:0x80030514; // type:function size:0x1F0
|
||||||
XFB_putcInterlace = .text:0x80030704; // type:function size:0x1B4
|
XFB_putcInterlace = .text:0x80030704; // type:function size:0x1B4
|
||||||
fn_800308B8 = .text:0x800308B8; // type:function size:0x14C
|
GWInit = .text:0x800308B8; // type:function size:0x14C
|
||||||
fn_80030A04 = .text:0x80030A04; // type:function size:0x318
|
GWInitGameStat = .text:0x80030A04; // type:function size:0x318
|
||||||
fn_80030D1C = .text:0x80030D1C; // type:function size:0x4C
|
GWGetMessSpeed = .text:0x80030D1C; // type:function size:0x4C
|
||||||
fn_80030D68 = .text:0x80030D68; // type:function size:0x54
|
GWSetMGRecord = .text:0x80030D68; // type:function size:0x54
|
||||||
fn_80030DBC = .text:0x80030DBC; // type:function size:0x18
|
GWGetMGRecord = .text:0x80030DBC; // type:function size:0x18
|
||||||
fn_80030DD4 = .text:0x80030DD4; // type:function size:0x140
|
GWGetCharColor = .text:0x80030DD4; // type:function size:0x140
|
||||||
fn_80030F14 = .text:0x80030F14; // type:function size:0x24
|
GWSetBoardPlayCount = .text:0x80030F14; // type:function size:0x24
|
||||||
fn_80030F38 = .text:0x80030F38; // type:function size:0x38
|
GWAddBoardPlayCount = .text:0x80030F38; // type:function size:0x38
|
||||||
fn_80030F70 = .text:0x80030F70; // type:function size:0x14
|
GWGetBoardPlayCount = .text:0x80030F70; // type:function size:0x14
|
||||||
fn_80030F84 = .text:0x80030F84; // type:function size:0x1C
|
GWSetBoardMaxStars = .text:0x80030F84; // type:function size:0x1C
|
||||||
fn_80030FA0 = .text:0x80030FA0; // type:function size:0x18
|
GWGetBoardMaxStars = .text:0x80030FA0; // type:function size:0x18
|
||||||
fn_80030FB8 = .text:0x80030FB8; // type:function size:0x1C
|
GWSetBoardMaxCoins = .text:0x80030FB8; // type:function size:0x1C
|
||||||
fn_80030FD4 = .text:0x80030FD4; // type:function size:0x18
|
GWGetBoardMaxCoins = .text:0x80030FD4; // type:function size:0x18
|
||||||
fn_80030FEC = .text:0x80030FEC; // type:function size:0x5C
|
GWIncBoardWinCount = .text:0x80030FEC; // type:function size:0x5C
|
||||||
fn_80031048 = .text:0x80031048; // type:function size:0x1C
|
GWGetBoardWinCount = .text:0x80031048; // type:function size:0x1C
|
||||||
fn_80031064 = .text:0x80031064; // type:function size:0x20
|
GWSetBoardWinCount = .text:0x80031064; // type:function size:0x20
|
||||||
fn_80031084 = .text:0x80031084; // type:function size:0x6C
|
GWGetMGAvail = .text:0x80031084; // type:function size:0x6C
|
||||||
fn_800310F0 = .text:0x800310F0; // type:function size:0x5C
|
GWSetMGAvail = .text:0x800310F0; // type:function size:0x5C
|
||||||
fn_8003114C = .text:0x8003114C; // type:function size:0x6C
|
GWGetMGMark = .text:0x8003114C; // type:function size:0x6C
|
||||||
fn_800311B8 = .text:0x800311B8; // type:function size:0x5C
|
GWSetMGMark = .text:0x800311B8; // type:function size:0x5C
|
||||||
fn_80031214 = .text:0x80031214; // type:function size:0x60
|
GWResetMGMark = .text:0x80031214; // type:function size:0x60
|
||||||
fn_80031274 = .text:0x80031274; // type:function size:0x18
|
GWGetCoins = .text:0x80031274; // type:function size:0x18
|
||||||
fn_8003128C = .text:0x8003128C; // type:function size:0xB0
|
GWSetCoins = .text:0x8003128C; // type:function size:0xB0
|
||||||
fn_8003133C = .text:0x8003133C; // type:function size:0xD0
|
GWAddCoins = .text:0x8003133C; // type:function size:0xD0
|
||||||
fn_8003140C = .text:0x8003140C; // type:function size:0x6C
|
GWSetStars = .text:0x8003140C; // type:function size:0x6C
|
||||||
fn_80031478 = .text:0x80031478; // type:function size:0x94
|
GWAddStars = .text:0x80031478; // type:function size:0x94
|
||||||
fn_8003150C = .text:0x8003150C; // type:function size:0x18
|
GWGetStars = .text:0x8003150C; // type:function size:0x18
|
||||||
fn_80031524 = .text:0x80031524; // type:function size:0x34
|
GWSetTotalStars = .text:0x80031524; // type:function size:0x34
|
||||||
fn_80031558 = .text:0x80031558; // type:function size:0x54
|
GWAddTotalStars = .text:0x80031558; // type:function size:0x54
|
||||||
fn_800315AC = .text:0x800315AC; // type:function size:0x10
|
GWGetTotalStars = .text:0x800315AC; // type:function size:0x10
|
||||||
omOutView = .text:0x800315BC; // type:function size:0x238
|
omOutView = .text:0x800315BC; // type:function size:0x238
|
||||||
omOutViewMulti = .text:0x800317F4; // type:function size:0x2C4
|
omOutViewMulti = .text:0x800317F4; // type:function size:0x2C4
|
||||||
omSystemKeyCheckSetup = .text:0x80031AB8; // type:function size:0x74
|
omSystemKeyCheckSetup = .text:0x80031AB8; // type:function size:0x74
|
||||||
|
|
@ -5414,10 +5414,10 @@ perf = .bss:0x8018F790; // type:object size:0x370 scope:local
|
||||||
Ssw = .bss:0x8018FB00; // type:object size:0x38 scope:local
|
Ssw = .bss:0x8018FB00; // type:object size:0x38 scope:local
|
||||||
omovlhis = .bss:0x8018FB38; // type:object size:0xC0 scope:local
|
omovlhis = .bss:0x8018FB38; // type:object size:0xC0 scope:local
|
||||||
XFB_Geometry = .bss:0x8018FBF8; // type:object size:0x18 scope:local
|
XFB_Geometry = .bss:0x8018FBF8; // type:object size:0x18 scope:local
|
||||||
gPlayerConfig = .bss:0x8018FC10; // type:object size:0x28
|
GWPlayerCfg = .bss:0x8018FC10; // type:object size:0x28
|
||||||
gPlayerData = .bss:0x8018FC38; // type:object size:0xC0 data:byte
|
GWPlayer = .bss:0x8018FC38; // type:object size:0xC0 data:byte
|
||||||
lbl_8018FCF8 = .bss:0x8018FCF8; // type:object size:0xE0 data:byte
|
GWSystem = .bss:0x8018FCF8; // type:object size:0xE0 data:byte
|
||||||
lbl_8018FDD8 = .bss:0x8018FDD8; // type:object size:0x230
|
GWGameStat = .bss:0x8018FDD8; // type:object size:0x230
|
||||||
lbl_80190008 = .bss:0x80190008; // type:object size:0xC data:float
|
lbl_80190008 = .bss:0x80190008; // type:object size:0xC data:float
|
||||||
lbl_80190014 = .bss:0x80190014; // type:object size:0xC data:float
|
lbl_80190014 = .bss:0x80190014; // type:object size:0xC data:float
|
||||||
lbl_80190020 = .bss:0x80190020; // type:object size:0xC0
|
lbl_80190020 = .bss:0x80190020; // type:object size:0xC0
|
||||||
|
|
|
||||||
|
|
@ -253,6 +253,7 @@ config.libs = [
|
||||||
Object(NonMatching, "game/perf.c"),
|
Object(NonMatching, "game/perf.c"),
|
||||||
Object(Matching, "game/objmain.c"),
|
Object(Matching, "game/objmain.c"),
|
||||||
Object(NonMatching, "game/fault.c"),
|
Object(NonMatching, "game/fault.c"),
|
||||||
|
Object(NonMatching, "game/gamework.c"),
|
||||||
Object(Matching, "game/frand.c"),
|
Object(Matching, "game/frand.c"),
|
||||||
Object(Matching, "game/ovllist.c"),
|
Object(Matching, "game/ovllist.c"),
|
||||||
Object(NonMatching, "game/window.c"),
|
Object(NonMatching, "game/window.c"),
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ typedef struct BoardStateSubStruct {
|
||||||
/* 0x08 */ s16 unk8;
|
/* 0x08 */ s16 unk8;
|
||||||
} BoardStateSubStruct;
|
} BoardStateSubStruct;
|
||||||
|
|
||||||
typedef struct BoardState {
|
typedef struct system_work {
|
||||||
/* 0x00 */ char unk00[0x04];
|
/* 0x00 */ char unk00[0x04];
|
||||||
/* 0x04 */ s8 curTurnCount;
|
/* 0x04 */ s8 curTurnCount;
|
||||||
/* 0x05 */ s8 maxTurnCount;
|
/* 0x05 */ s8 maxTurnCount;
|
||||||
|
|
@ -99,13 +99,13 @@ typedef struct BoardState {
|
||||||
/* 0x0C */ char unk0C[4];
|
/* 0x0C */ char unk0C[4];
|
||||||
/* 0x10 */ BoardStateSubStruct unk10;
|
/* 0x10 */ BoardStateSubStruct unk10;
|
||||||
/* 0x1A */ char unk1A[0xC6];
|
/* 0x1A */ char unk1A[0xC6];
|
||||||
} BoardState; //8018fcf8, sizeof 0xE0
|
} SystemState; //8018fcf8, sizeof 0xE0
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 unk0 : 2;
|
u8 unk0 : 2;
|
||||||
} PlayerFlags;
|
} PlayerFlags;
|
||||||
|
|
||||||
typedef struct Player {
|
typedef struct player_state {
|
||||||
/* 0x00 */ u8 characterID;
|
/* 0x00 */ u8 characterID;
|
||||||
/* 0x01 */ s8 unk01;
|
/* 0x01 */ s8 unk01;
|
||||||
/* 0x02 */ s8 unk02;
|
/* 0x02 */ s8 unk02;
|
||||||
|
|
@ -133,7 +133,7 @@ typedef struct Player {
|
||||||
/* 0x24 */ char unk_24[6];
|
/* 0x24 */ char unk_24[6];
|
||||||
/* 0x2A */ s16 stars;
|
/* 0x2A */ s16 stars;
|
||||||
/* 0x2C */ char unk_2C[4];
|
/* 0x2C */ char unk_2C[4];
|
||||||
} Player; //size of 0x30
|
} PlayerState; //size of 0x30
|
||||||
|
|
||||||
typedef struct om_obj_data {
|
typedef struct om_obj_data {
|
||||||
u16 stat;
|
u16 stat;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ extern u32 procfunc;
|
||||||
|
|
||||||
extern WipeState wipeData;
|
extern WipeState wipeData;
|
||||||
|
|
||||||
extern PlayerConfig gPlayerConfig[4];
|
extern PlayerConfig GWPlayerCfg[4];
|
||||||
|
|
||||||
extern FileListEntry _ovltbl[];
|
extern FileListEntry _ovltbl[];
|
||||||
|
|
||||||
|
|
@ -43,7 +43,7 @@ extern s16 omSysExitReq;
|
||||||
extern s16 omdispinfo;
|
extern s16 omdispinfo;
|
||||||
extern char omSysPauseEnableFlag;
|
extern char omSysPauseEnableFlag;
|
||||||
extern OverlayID omprevovl;
|
extern OverlayID omprevovl;
|
||||||
extern Player gPlayerData[4];
|
extern PlayerState GWPlayer[4];
|
||||||
extern BoardState lbl_8018FCF8;
|
extern SystemState GWSystem;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ static void SubchrMain()
|
||||||
int ext_character[4];
|
int ext_character[4];
|
||||||
int i, cursor_pos;
|
int i, cursor_pos;
|
||||||
for(i=0; i<4; i++) {
|
for(i=0; i<4; i++) {
|
||||||
character[i] = gPlayerConfig[i].character;
|
character[i] = GWPlayerCfg[i].character;
|
||||||
ext_character[i] = 0;
|
ext_character[i] = 0;
|
||||||
cur_direction[i] = 0;
|
cur_direction[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -90,7 +90,7 @@ static void SubchrMain()
|
||||||
if(GetBtns() & 0x1000) {
|
if(GetBtns() & 0x1000) {
|
||||||
for(i=0; i<4; i++) {
|
for(i=0; i<4; i++) {
|
||||||
if(ext_character[i] != 0) {
|
if(ext_character[i] != 0) {
|
||||||
gPlayerConfig[i].character = ext_character[i]+7;
|
GWPlayerCfg[i].character = ext_character[i]+7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn_80032A58(30);
|
fn_80032A58(30);
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ const double _three = 3.0;
|
||||||
|
|
||||||
// function is probably global. only inlined in rels?
|
// function is probably global. only inlined in rels?
|
||||||
inline s32 get_current_board(void) {
|
inline s32 get_current_board(void) {
|
||||||
return lbl_8018FCF8.unk08 & 0x1F;
|
return GWSystem.unk08 & 0x1F;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_E0(void) {
|
void fn_1_E0(void) {
|
||||||
|
|
@ -78,7 +78,7 @@ void fn_1_E0(void) {
|
||||||
s32 temp2;
|
s32 temp2;
|
||||||
|
|
||||||
temp2 = get_current_board();
|
temp2 = get_current_board();
|
||||||
lbl_1_bss_0 = &lbl_8018FCF8.unk10;
|
lbl_1_bss_0 = &GWSystem.unk10;
|
||||||
lbl_1_bss_0->unk0 = 0;
|
lbl_1_bss_0->unk0 = 0;
|
||||||
lbl_1_bss_0->unk4 = 0;
|
lbl_1_bss_0->unk4 = 0;
|
||||||
lbl_1_bss_0->unk6 = 0;
|
lbl_1_bss_0->unk6 = 0;
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@ void fn_1_13A4(void) {
|
||||||
|
|
||||||
fn_1_BA0(0x2E0023);
|
fn_1_BA0(0x2E0023);
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
gPlayerData[i].flags.unk0 = 1;
|
GWPlayer[i].flags.unk0 = 1;
|
||||||
}
|
}
|
||||||
fn_800A4C88();
|
fn_800A4C88();
|
||||||
fn_800884F4(0);
|
fn_800884F4(0);
|
||||||
|
|
|
||||||
|
|
@ -84,21 +84,21 @@ void fn_1_176C(void) {
|
||||||
|
|
||||||
void fn_1_179C(void) {
|
void fn_1_179C(void) {
|
||||||
fn_1_BA0(0x2E0025);
|
fn_1_BA0(0x2E0025);
|
||||||
gPlayerData[1].flags.unk0 = 2;
|
GWPlayer[1].flags.unk0 = 2;
|
||||||
gPlayerData[3].flags.unk0 = 2;
|
GWPlayer[3].flags.unk0 = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_17F4(void) {
|
void fn_1_17F4(void) {
|
||||||
fn_1_BA0(0x2E0026);
|
fn_1_BA0(0x2E0026);
|
||||||
gPlayerData[0].flags.unk0 = 2;
|
GWPlayer[0].flags.unk0 = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_1834(void) {
|
void fn_1_1834(void) {
|
||||||
fn_1_BA0(0x2E0027);
|
fn_1_BA0(0x2E0027);
|
||||||
gPlayerData[0].flags.unk0 = 1;
|
GWPlayer[0].flags.unk0 = 1;
|
||||||
gPlayerData[1].flags.unk0 = 1;
|
GWPlayer[1].flags.unk0 = 1;
|
||||||
gPlayerData[2].flags.unk0 = 1;
|
GWPlayer[2].flags.unk0 = 1;
|
||||||
gPlayerData[3].flags.unk0 = 2;
|
GWPlayer[3].flags.unk0 = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fn_1_18BC(void) {
|
void fn_1_18BC(void) {
|
||||||
|
|
@ -137,8 +137,8 @@ void fn_1_1984(void) {
|
||||||
if (fn_8005B6A8() != 0) {
|
if (fn_8005B6A8() != 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (i = 0; i < ARRAY_COUNT(gPlayerData); i++) {
|
for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) {
|
||||||
contPortIndex = gPlayerData[i].controllerPort;
|
contPortIndex = GWPlayer[i].controllerPort;
|
||||||
if (contPortIndex == -1) {
|
if (contPortIndex == -1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -166,8 +166,8 @@ int fn_1_1AAC(s16 arg0, s32 arg1) {
|
||||||
HuWinDispOn(lbl_1_bss_E);
|
HuWinDispOn(lbl_1_bss_E);
|
||||||
if (fn_8005B6A8() == 0) {
|
if (fn_8005B6A8() == 0) {
|
||||||
s32 contPortIndex;
|
s32 contPortIndex;
|
||||||
for (i = 0; i < ARRAY_COUNT(gPlayerData); i++) {
|
for (i = 0; i < ARRAY_COUNT(GWPlayer); i++) {
|
||||||
contPortIndex = gPlayerData[i].controllerPort;
|
contPortIndex = GWPlayer[i].controllerPort;
|
||||||
if (contPortIndex == -1) {
|
if (contPortIndex == -1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -189,8 +189,8 @@ int fn_1_1AAC(s16 arg0, s32 arg1) {
|
||||||
}
|
}
|
||||||
if (arg0 != 0x1D) {
|
if (arg0 != 0x1D) {
|
||||||
OSReport(lbl_1_data_258,
|
OSReport(lbl_1_data_258,
|
||||||
(gPlayerData[0].characterID >> 5) & 1, (gPlayerData[1].characterID >> 5) & 1,
|
(GWPlayer[0].characterID >> 5) & 1, (GWPlayer[1].characterID >> 5) & 1,
|
||||||
(gPlayerData[2].characterID >> 5) & 1, (gPlayerData[3].characterID >> 5) & 1,
|
(GWPlayer[2].characterID >> 5) & 1, (GWPlayer[3].characterID >> 5) & 1,
|
||||||
lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6);
|
lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6);
|
||||||
if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) {
|
if (lbl_1_data_108[lbl_1_bss_0->unk0].unk0 != -1) {
|
||||||
if (arg0 == 5) {
|
if (arg0 == 5) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue