diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index ac3a0cdd..e022b000 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -5556,9 +5556,9 @@ SimpleControl = .bss:0x80197AC0; // type:object size:0x19C SoundBuffer = .bss:0x80197C60; // type:object size:0x500 scope:local align:32 WorkBuffer = .bss:0x80198160; // type:object size:0x40 scope:local align:32 THPFileName = .bss:0x801981A0; // type:object size:0x40 scope:local -GWGameStatBackup = .bss:0x801981E0; // type:object size:0x118 -lbl_801982F8 = .bss:0x801982F8; // type:object size:0x100 -lbl_801983F8 = .bss:0x801983F8; // type:object size:0x18 +mgGameStatBackup = .bss:0x801981E0; // type:object size:0x118 +mgIndexList = .bss:0x801982F8; // type:object size:0x100 +mgTicTacToeGrid = .bss:0x801983F8; // type:object size:0x12 _Sys_Flag = .bss:0x80198410; // type:object size:0x10 curFileInfo = .bss:0x80198420; // type:object size:0x20 saveBuf = .bss:0x80198440; // type:object size:0x4000 align:32 @@ -6310,14 +6310,15 @@ decodeThread = .sbss:0x801D3E68; // type:object size:0x4 scope:local data:4byte decodeStackP = .sbss:0x801D3E6C; // type:object size:0x4 scope:local data:4byte decodeRate = .sbss:0x801D3E70; // type:object size:0x4 scope:local data:4byte audioTrack = .sbss:0x801D3E74; // type:object size:0x8 scope:local data:4byte -lbl_801D3E80 = .sbss:0x801D3E80; // type:object size:0x4 -lbl_801D3E84 = .sbss:0x801D3E84; // type:object size:0x4 -lbl_801D3E88 = .sbss:0x801D3E88; // type:object size:0x4 data:4byte -lbl_801D3E8C = .sbss:0x801D3E8C; // type:object size:0x4 data:4byte -lbl_801D3E90 = .sbss:0x801D3E90; // type:object size:0x4 -lbl_801D3E94 = .sbss:0x801D3E94; // type:object size:0x4 -lbl_801D3E98 = .sbss:0x801D3E98; // type:object size:0x8 -lbl_801D3EA0 = .sbss:0x801D3EA0; // type:object size:0x8 +mgBoardHostEnableF = .sbss:0x801D3E80; // type:object size:0x1 +mgInstExitEnableF = .sbss:0x801D3E84; // type:object size:0x4 +mgPracticeEnableF = .sbss:0x801D3E88; // type:object size:0x4 data:4byte +mgQuitExtraF = .sbss:0x801D3E8C; // type:object size:0x4 data:4byte +mgRecordExtra = .sbss:0x801D3E90; // type:object size:0x4 +lbl_801D3E94 = .sbss:0x801D3E94; // type:object size:0x1 +mgBattleStarMax = .sbss:0x801D3E96; // type:object size:0x2 +mgBattleStar = .sbss:0x801D3E98; // type:object size:0x8 +mgTypeCurr = .sbss:0x801D3EA0; // type:object size:0x2 data:2byte curSlotNo = .sbss:0x801D3EA8; // type:object size:0x2 data:2byte curBoxNo = .sbss:0x801D3EAA; // type:object size:0x1 data:byte saveExecF = .sbss:0x801D3EAC; // type:object size:0x4 diff --git a/include/game/objsub.h b/include/game/objsub.h index efbbfbdd..018515a6 100644 --- a/include/game/objsub.h +++ b/include/game/objsub.h @@ -3,6 +3,7 @@ #include "dolphin.h" #include "game/process.h" +#include "game/gamework_data.h" typedef struct mg_info { u16 ovl; @@ -24,7 +25,24 @@ typedef struct mg_info { } MgInfo; s16 omGetMGIndex(s16 overlay); -void omGameSysInit(Process* process); +void omGameSysInit(Process *objman); void omVibrate(s16 player_cfg_index, s16 duration, s16 off, s16 on); + +extern s16 mgTypeCurr; +extern s16 mgBattleStar[4]; +extern s16 mgBattleStarMax; +extern u8 lbl_801D3E94; +extern s32 mgRecordExtra; +extern s32 mgQuitExtraF; +extern s32 mgPracticeEnableF; +extern s32 mgInstExitEnableF; +extern u8 mgBoardHostEnableF; + +extern s16 mgTicTacToeGrid[3][3]; +extern u8 mgIndexList[256]; +extern GameStat mgGameStatBackup; + +extern MgInfo mgInfoTbl[]; + #endif diff --git a/src/game/objsub.c b/src/game/objsub.c index b42cd6de..608bc4de 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1201,7 +1201,7 @@ MgInfo mgInfoTbl[] = { 0, // advice_mess }, { - 65535, // ovl + 0xFFFF, // ovl 0, // type 0, // flag 65280, // unk_4 @@ -1223,41 +1223,41 @@ MgInfo mgInfoTbl[] = { void MGSeqPracticeExitCheck(omObjData*); -s64 lbl_801D3EA0; -s64 lbl_801D3E98; -s32 lbl_801D3E94; -s32 lbl_801D3E90; -s32 lbl_801D3E8C; -s32 lbl_801D3E88; -s32 lbl_801D3E84; -s32 lbl_801D3E80; +s16 mgTypeCurr; +s16 mgBattleStar[4]; +s16 mgBattleStarMax; +u8 lbl_801D3E94; +s32 mgRecordExtra; +s32 mgQuitExtraF; +s32 mgPracticeEnableF; +s32 mgInstExitEnableF; +u8 mgBoardHostEnableF; -u8 lbl_801983F8[0x18]; -u8 lbl_801982F8[0x100]; -u8 GWGameStatBackup[0x118]; +s16 mgTicTacToeGrid[3][3]; +u8 mgIndexList[256]; +GameStat mgGameStatBackup; s16 omGetMGIndex(s16 overlay) { s32 i; - MgInfo* current_info; + MgInfo *info; - current_info = (MgInfo*)&mgInfoTbl; + info = mgInfoTbl; - for (i = 0; current_info->ovl != 0xffff; i++) { - if (current_info->ovl == overlay) { + for (i = 0; info->ovl != 0xFFFF; i++) { + if (info->ovl == overlay) { return i; } - - current_info++; + info++; } return -1; } -void omGameSysInit(Process* process) { +void omGameSysInit(Process *objman) { s32 i; omObjData* obj; - omSystemKeyCheckSetup(process); + omSystemKeyCheckSetup(objman); Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); omSysPauseEnable(0); @@ -1269,16 +1269,16 @@ void omGameSysInit(Process* process) { GWPlayer[i].unk_26 = 0; } - if (lbl_801D3E88 != 0) { - obj = omAddObjEx(process, 0x7FDC, 0, 0, -1, MGSeqPracticeExitCheck); + if (mgPracticeEnableF != 0) { + obj = omAddObjEx(objman, 0x7FDC, 0, 0, -1, MGSeqPracticeExitCheck); omSetStatBit(obj, 0xA0U); } } -void omVibrate(s16 player_cfg_index, s16 duration, s16 off, s16 on) { +void omVibrate(s16 player, s16 duration, s16 off, s16 on) { s32 rumble = GWGameStat.rumble; - if (rumble != 0 && GWPlayerCfg[player_cfg_index].iscom == 0) { - HuPadRumbleSet(GWPlayerCfg[player_cfg_index].pad_idx, duration, off, on); + if (rumble != 0 && GWPlayerCfg[player].iscom == 0) { + HuPadRumbleSet(GWPlayerCfg[player].pad_idx, duration, off, on); } }