Merge pull request #551 from Phlosioneer/multiplayer-stuff

Document overworld.c and link stuff in general
This commit is contained in:
huderlem
2019-03-01 08:43:55 -06:00
committed by GitHub
42 changed files with 774 additions and 655 deletions

View File

@@ -15,6 +15,6 @@ void sub_80B360C(void);
bool32 sub_80B2AF4(u16 *arg0, u16 *arg1);
void sub_80B3AF8(u8 taskId);
void task00_08081A90(u8 taskId);
bool32 sub_80B39D4(u8 linkPlayerIndex);
bool32 GetLinkTrainerCardColor(u8 linkPlayerIndex);
#endif //GUARD_CABLE_CLUB_H

View File

@@ -10,6 +10,8 @@
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
#define NUM_FRONTIER_FACILITIES 7
// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY.
#define FRONTIER_FACILITY_DOUBLE_COLOSSEUM 9
#define TENT_VERDANTURF 2
#define TENT_FALLARBOR 3

View File

@@ -906,13 +906,13 @@ struct MapPosition
s8 height;
};
struct UnkStruct_8054FF8
struct TradeRoomPlayer
{
u8 a;
u8 b;
u8 playerId;
u8 isLocalPlayer;
u8 c;
u8 d;
struct MapPosition sub;
u8 facing;
struct MapPosition pos;
u16 field_C;
};

View File

@@ -244,7 +244,7 @@ bool8 IsLinkTaskFinished(void);
void CreateWirelessStatusIndicatorSprite(u8, u8);
void sub_800ADF8(void);
void sub_800B488(void);
void sub_800A620(void);
void CheckShouldAdvanceLinkState(void);
void sub_8011BD0(void);
u8 IsLinkMaster(void);
void sub_800AC34(void);
@@ -299,8 +299,8 @@ extern struct LinkPlayer gLocalLinkPlayer;
bool32 Link_AnyPartnersPlayingRubyOrSapphire(void);
bool32 sub_800A03C(void);
void sub_8009628(u8);
u8 sub_800AA48(void);
void SetLocalLinkPlayerId(u8);
u8 GetSavedPlayerCount(void);
void sub_8009FAC(void);
bool8 sub_800A4D8(u8 a0);
u8 sub_800A9D8(void);
@@ -312,7 +312,7 @@ void sub_800AB18(void);
void sub_8009F18(void);
bool8 sub_800AA60(void);
void sub_800ABF4(u16 a0);
bool32 sub_8009F3C(void);
u32 sub_800B4DC(void);
bool32 IsSendingKeysToLink(void);
u32 GetLinkRecvQueueLength(void);
#endif // GUARD_LINK_H

View File

@@ -219,7 +219,7 @@ void sub_800E700(void);
void sub_800EDD4(void);
void sub_800F6FC(u8 who);
void sub_800F728(u8 who);
bool32 sub_800F7E4(void);
bool32 IsSendingKeysToRfu(void);
void sub_800F804(void);
void sub_800F850(void);
u8 sub_800FCD8(void);
@@ -238,8 +238,8 @@ void sub_800E6D0(void);
bool32 sub_8010EC0(void);
bool32 sub_8010F1C(void);
bool32 sub_8011A80(void);
bool32 sub_800F0B8(void);
u32 sub_80124D4(void);
bool32 IsRfuRecvQueueEmpty(void);
u32 GetRfuRecvQueueLength(void);
void RfuVSync(void);
void sub_80111B0(bool32 a0);
u8 sub_8011A74(void);

View File

@@ -1,6 +1,29 @@
#ifndef GUARD_OVERWORLD_H
#define GUARD_OVERWORLD_H
#define LINK_KEY_CODE_NULL 0x00
#define LINK_KEY_CODE_EMPTY 0x11
#define LINK_KEY_CODE_DPAD_DOWN 0x12
#define LINK_KEY_CODE_DPAD_UP 0x13
#define LINK_KEY_CODE_DPAD_LEFT 0x14
#define LINK_KEY_CODE_DPAD_RIGHT 0x15
#define LINK_KEY_CODE_UNK_2 0x16
#define LINK_KEY_CODE_EXIT_ROOM 0x17
#define LINK_KEY_CODE_START_BUTTON 0x18
#define LINK_KEY_CODE_A_BUTTON 0x19
#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button?
// These two are a hack to stop user input until link stuff can be
// resolved.
#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B
#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C
#define LINK_KEY_CODE_UNK_7 0x1D
#define LINK_KEY_CODE_UNK_8 0x1E
#define MOVEMENT_MODE_FREE 0
#define MOVEMENT_MODE_FROZEN 1
#define MOVEMENT_MODE_SCRIPTED 2
struct InitialPlayerAvatarState
{
u8 transitionFlags;
@@ -12,7 +35,7 @@ struct LinkPlayerEventObject
u8 active;
u8 linkPlayerId;
u8 eventObjId;
u8 mode;
u8 movementMode;
};
// Exported RAM declarations
@@ -22,10 +45,10 @@ extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4];
extern u16 *gBGTilemapBuffers1;
extern u16 *gBGTilemapBuffers2;
extern u16 *gBGTilemapBuffers3;
extern u16 gUnknown_03005DA8;
extern u16 gHeldKeyCodeToSend;
extern void (*gFieldCallback)(void);
extern bool8 (*gFieldCallback2)(void);
extern u8 gUnknown_03005DB4;
extern u8 gLocalLinkPlayerId;
extern u8 gFieldLinkPlayerCount;
// Exported ROM declarations
@@ -103,12 +126,12 @@ u8 GetSavedWarpRegionMapSectionId(void);
u8 GetCurrentRegionMapSectionId(void);
u8 GetCurrentMapBattleScene(void);
void CleanupOverworldWindowsAndTilemaps(void);
bool32 is_c1_link_related_active(void);
bool32 IsUpdateLinkStateCBActive(void);
void CB1_Overworld(void);
void CB2_OverworldBasic(void);
void CB2_Overworld(void);
void SetMainCallback1(void (*cb)(void));
void sub_8085E94(void *a0);
void SetUnusedCallback(void *a0);
void CB2_NewGame(void);
void CB2_WhiteOut(void);
void CB2_LoadMap(void);
@@ -117,18 +140,18 @@ void sub_8086074(void);
void CB2_ReturnToField(void);
void CB2_ReturnToFieldLocal(void);
void CB2_ReturnToFieldLink(void);
void c2_8056854(void);
void CB2_ReturnToFieldFromMultiplayer(void);
void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_ReturnToFieldContinueScript(void);
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void sub_80861E8(void);
void CB2_ContinueSavedGame(void);
void sub_8086C2C(void);
void ResetAllMultiplayerState(void);
u32 sub_8087214(void);
bool32 sub_808727C(void);
u16 sub_8087288(void);
u16 sub_808729C(void);
u16 sub_80872B0(void);
u16 QueueExitLinkRoomKey(void);
u16 sub_80872C4(void);
bool32 sub_8087598(void);
bool32 sub_80875C8(void);

View File

@@ -85,7 +85,7 @@ u8 GetItemEffectType(u16 item);
void CB2_PartyMenuFromStartMenu(void);
void sub_81B7F60(void);
void sub_81B8448(void);
void sub_81B8518(u8 unused);
void InitChooseHalfPartyForBattle(u8 unused);
void sub_81B8558(void);
void sub_81B8904(u8 initArg, MainCallback callback);
void sub_81B892C(void);

View File

@@ -7,7 +7,7 @@ struct PlayerHallRecords
struct RankingHall2P twoPlayers[2];
};
void sub_80E6BE8(void);
void RecordMixingPlayerSpotTriggered(void);
void GetPlayerHallRecords(struct PlayerHallRecords *dst);
#endif //GUARD_RECORD_MIXING_H

View File

@@ -83,13 +83,11 @@ bool8 sub_8153380(void);
bool8 sub_81533AC(void);
u8 sub_81533E0(void);
u8 sub_8153408(void);
u8 sub_8153430(void);
bool8 sub_8153474(void);
u8 FullSaveGame(void);
bool8 CheckSaveFile(void);
u8 Save_LoadGameData(u8 a1);
u16 sub_815355C(void);
u8 sub_81534D0(u8);
u8 sub_8153430(void);
bool8 sub_8153474(void);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
u32 sub_8153634(u8 sector, u8* src);
void sub_8153688(u8 taskId);

View File

@@ -43,7 +43,7 @@ struct TrainerCard
extern struct TrainerCard gTrainerCards[4];
u32 CountPlayerTrainerStars(void);
u8 sub_80C4904(u8 cardId);
u8 GetTrainerCardStars(u8 cardId);
void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion);
void ShowPlayerTrainerCard(void (*callback)(void));
void ShowTrainerCardInLink(u8 arg0, void (*callback)(void));