mirror of
https://github.com/pret/pokefirered.git
synced 2026-04-25 07:19:36 -05:00
Sync link.c
This commit is contained in:
parent
2abdb6aa41
commit
d8aa1ce2bf
|
|
@ -3,18 +3,18 @@ gLinkDebugSeed
|
|||
gLocalLinkPlayerBlock
|
||||
gLinkErrorOccurred
|
||||
gLinkDebugFlags
|
||||
gFiller_3003EB4
|
||||
gLinkFiller1
|
||||
gRemoteLinkPlayersNotReceived
|
||||
gBlockReceivedStatus
|
||||
gFiller_3003EC0
|
||||
gLinkFiller2
|
||||
gLinkHeldKeys
|
||||
gRecvCmds
|
||||
gLinkStatus
|
||||
gLinkAllAcked5FFF
|
||||
gUnknown_3003F28
|
||||
gLinkCommand2FFEAck
|
||||
gLinkCommand5FFFAck
|
||||
gLinkCmd5FFFparam
|
||||
gLinkDummy1
|
||||
gLinkDummy2
|
||||
gReadyToExitStandby
|
||||
gReadyToCloseLink
|
||||
gReadyCloseLinkType
|
||||
gSuppressLinkErrorMessage
|
||||
gWirelessCommType
|
||||
gSavedLinkPlayerCount
|
||||
|
|
@ -26,9 +26,9 @@ gLinkCallback
|
|||
gShouldAdvanceLinkState
|
||||
gLinkTestBlockChecksums
|
||||
gBlockRequestType
|
||||
gFiller_3003F94
|
||||
gFiller_3003F98
|
||||
gFiller_3003F9C
|
||||
gLinkFiller3
|
||||
gLinkFiller4
|
||||
gLinkFiller5
|
||||
gLastSendQueueCount
|
||||
gLink
|
||||
gLastRecvQueueCount
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 904 B After Width: | Height: | Size: 904 B |
|
|
@ -7,6 +7,7 @@
|
|||
#define MAX_RFU_PLAYERS 5
|
||||
#define CMD_LENGTH 8
|
||||
#define QUEUE_CAPACITY 50
|
||||
#define OVERWORLD_RECV_QUEUE_MAX 3
|
||||
#define BLOCK_BUFFER_SIZE 0x100
|
||||
|
||||
#define LINK_SLAVE 0
|
||||
|
|
@ -50,23 +51,41 @@
|
|||
#define EXTRACT_LINK_ERRORS(status) \
|
||||
(((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT)
|
||||
|
||||
#define LINKCMD_SEND_LINK_TYPE 0x2222
|
||||
#define LINKCMD_0x2FFE 0x2FFE
|
||||
#define LINKCMD_SEND_HELD_KEYS 0x4444
|
||||
#define LINKCMD_0x5555 0x5555
|
||||
#define LINKCMD_0x5566 0x5566
|
||||
#define LINKCMD_0x5FFF 0x5FFF
|
||||
#define LINKCMD_0x6666 0x6666
|
||||
#define LINKCMD_0x7777 0x7777
|
||||
#define LINKCMD_COUNTDOWN 0x7FFF
|
||||
#define LINKCMD_CONT_BLOCK 0x8888
|
||||
#define LINKCMD_0xAAAA 0xAAAA
|
||||
#define LINKCMD_0xAAAB 0xAAAB
|
||||
#define LINKCMD_INIT_BLOCK 0xBBBB
|
||||
#define LINKCMD_SEND_HELD_KEYS_2 0xCAFE
|
||||
#define LINKCMD_0xCCCC 0xCCCC
|
||||
#define LINKCMD_BLENDER_STOP 0x1111
|
||||
#define LINKCMD_SEND_LINK_TYPE 0x2222
|
||||
#define LINKCMD_BLENDER_SCORE_MISS 0x2345
|
||||
#define LINKCMD_READY_EXIT_STANDBY 0x2FFE
|
||||
#define LINKCMD_SEND_PACKET 0x2FFF
|
||||
#define LINKCMD_BLENDER_SEND_KEYS 0x4444
|
||||
#define LINKCMD_BLENDER_SCORE_BEST 0x4523
|
||||
#define LINKCMD_BLENDER_SCORE_GOOD 0x5432
|
||||
#define LINKCMD_DUMMY_1 0x5555
|
||||
#define LINKCMD_DUMMY_2 0x5566
|
||||
#define LINKCMD_READY_CLOSE_LINK 0x5FFF
|
||||
#define LINKCMD_SEND_EMPTY 0x6666
|
||||
#define LINKCMD_SEND_0xEE 0x7777
|
||||
#define LINKCMD_BLENDER_PLAY_AGAIN 0x7779
|
||||
#define LINKCMD_COUNTDOWN 0x7FFF
|
||||
#define LINKCMD_CONT_BLOCK 0x8888
|
||||
#define LINKCMD_BLENDER_NO_BERRIES 0x9999
|
||||
#define LINKCMD_BLENDER_NO_PBLOCK_SPACE 0xAAAA
|
||||
#define LINKCMD_SEND_ITEM 0xAAAB
|
||||
#define LINKCMD_READY_TO_TRADE 0xAABB
|
||||
#define LINKCMD_READY_FINISH_TRADE 0xABCD
|
||||
#define LINKCMD_INIT_BLOCK 0xBBBB
|
||||
#define LINKCMD_READY_CANCEL_TRADE 0xBBCC
|
||||
#define LINKCMD_SEND_HELD_KEYS 0xCAFE
|
||||
#define LINKCMD_SEND_BLOCK_REQ 0xCCCC
|
||||
#define LINKCMD_START_TRADE 0xCCDD
|
||||
#define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA
|
||||
#define LINKCMD_SET_MONS_TO_TRADE 0xDDDD
|
||||
#define LINKCMD_PLAYER_CANCEL_TRADE 0xDDEE
|
||||
#define LINKCMD_REQUEST_CANCEL 0xEEAA
|
||||
#define LINKCMD_BOTH_CANCEL_TRADE 0xEEBB
|
||||
#define LINKCMD_PARTNER_CANCEL_TRADE 0xEECC
|
||||
#define LINKCMD_NONE 0xEFFF
|
||||
|
||||
#define LINKTYPE_TRADE 0x1111 // trade
|
||||
#define LINKTYPE_TRADE 0x1111 // trade
|
||||
#define LINKTYPE_0x1122 0x1122 // trade
|
||||
#define LINKTYPE_TRADE_SETUP 0x1133
|
||||
#define LINKTYPE_0x1144 0x1144 // trade
|
||||
|
|
@ -80,8 +99,8 @@
|
|||
#define LINKTYPE_BATTLE_TOWER 0x2288
|
||||
#define LINKTYPE_RECORD_MIX_BEFORE 0x3311
|
||||
#define LINKTYPE_RECORD_MIX_AFTER 0x3322
|
||||
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
|
||||
#define LINKTYPE_CONTEST_GMODE 0x6601
|
||||
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
|
||||
#define LINKTYPE_CONTEST_GMODE 0x6601
|
||||
|
||||
enum {
|
||||
BLOCK_REQ_SIZE_NONE, // Identical to 200
|
||||
|
|
@ -263,10 +282,10 @@ void SetCloseLinkCallback(void);
|
|||
void OpenLink(void);
|
||||
bool8 IsLinkMaster(void);
|
||||
void CheckShouldAdvanceLinkState(void);
|
||||
void Link_StartSend5FFFwithParam(u16 a0);
|
||||
void SetCloseLinkCallbackAndType(u16 type);
|
||||
void CloseLink(void);
|
||||
bool8 IsLinkTaskFinished(void);
|
||||
bool32 LinkRecvQueueLengthMoreThan2(void);
|
||||
bool32 IsLinkRecvQueueAtOverworldMax(void);
|
||||
void ResetSerial(void);
|
||||
void SetWirelessCommType1(void);
|
||||
void LoadWirelessStatusIndicatorSpriteGfx(void);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,7 @@
|
|||
#ifndef GUARD_RESET_SAVE_HEAP_H
|
||||
#define GUARD_RESET_SAVE_HEAP_H
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
// Exported ROM declarations
|
||||
|
||||
void ResetSaveHeap(void);
|
||||
void ReloadSave(void);
|
||||
|
||||
#endif //GUARD_RESET_SAVE_HEAP_H
|
||||
|
||||
|
|
|
|||
762
src/link.c
762
src/link.c
File diff suppressed because it is too large
Load Diff
|
|
@ -134,7 +134,7 @@ bool8 sub_80BF748(void)
|
|||
{
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return TRUE;
|
||||
else if (LinkRecvQueueLengthMoreThan2() != TRUE)
|
||||
else if (IsLinkRecvQueueAtOverworldMax() != TRUE)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ static u32 EReaderReceive(u8 * state_p, u16 * receiveDelay)
|
|||
}
|
||||
break;
|
||||
case 4:
|
||||
Link_StartSend5FFFwithParam(0);
|
||||
SetCloseLinkCallbackAndType(0);
|
||||
*state_p = 5;
|
||||
break;
|
||||
case 5:
|
||||
|
|
@ -416,7 +416,7 @@ static void Task_EReaderComm(u8 taskId)
|
|||
break;
|
||||
case 15:
|
||||
data->initialSendResult = ValidateTrainerTowerData((struct EReaderTrainerTowerSet *)gDecompressionBuffer);
|
||||
Link_StartSend5FFFwithParam(data->initialSendResult);
|
||||
SetCloseLinkCallbackAndType(data->initialSendResult);
|
||||
data->state = 16;
|
||||
break;
|
||||
case 16:
|
||||
|
|
|
|||
|
|
@ -1119,7 +1119,7 @@ static void Task_InputHandler_Info(u8 taskId)
|
|||
case PSS_STATE3270_HANDLEINPUT:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return;
|
||||
else if (LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
else if (IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
else if (FuncIsActiveTask(Task_PokeSum_SwitchDisplayedPokemon))
|
||||
return;
|
||||
|
|
@ -1218,7 +1218,7 @@ static void Task_InputHandler_Info(u8 taskId)
|
|||
case PSS_STATE3270_ATEXIT_WAITLINKDELAY:
|
||||
if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
return;
|
||||
else if (LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
else if (IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
sMonSummaryScreen->state3270 = PSS_STATE3270_ATEXIT_WAITFADE;
|
||||
|
|
@ -3501,7 +3501,7 @@ static void Task_HandleInput_SelectMove(u8 taskId)
|
|||
switch (sMonSummaryScreen->selectMoveInputHandlerState)
|
||||
{
|
||||
case 0:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
|
|
@ -3662,7 +3662,7 @@ static void Task_HandleInput_SelectMove(u8 taskId)
|
|||
sMonSummaryScreen->selectMoveInputHandlerState = 3;
|
||||
break;
|
||||
case 3:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
|
||||
|
|
@ -3880,7 +3880,7 @@ static void Task_InputHandler_SelectOrForgetMove(u8 taskId)
|
|||
sMonSummaryScreen->selectMoveInputHandlerState = 4;
|
||||
break;
|
||||
case 4:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE || IsLinkRecvQueueAtOverworldMax() == TRUE)
|
||||
return;
|
||||
|
||||
CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
|
||||
|
|
@ -5148,7 +5148,7 @@ static void Task_PokeSum_SwitchDisplayedPokemon(u8 taskId)
|
|||
sMonSummaryScreen->switchMonTaskState++;
|
||||
break;
|
||||
case 11:
|
||||
if (!Overworld_LinkRecvQueueLengthMoreThan2() && !LinkRecvQueueLengthMoreThan2())
|
||||
if (!Overworld_LinkRecvQueueLengthMoreThan2() && !IsLinkRecvQueueAtOverworldMax())
|
||||
{
|
||||
PokeSum_CreateSprites();
|
||||
PokeSum_TryPlayMonCry();
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
#include "new_game.h"
|
||||
#include "overworld.h"
|
||||
|
||||
void ResetSaveHeap(void)
|
||||
void ReloadSave(void)
|
||||
{
|
||||
u16 imeBackup = REG_IME;
|
||||
|
||||
|
|
|
|||
|
|
@ -1200,7 +1200,7 @@ static void TradeMenuCB_10(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
Link_StartSend5FFFwithParam(32);
|
||||
SetCloseLinkCallbackAndType(32);
|
||||
sTradeMenuResourcesPtr->tradeMenuCBnum = 13;
|
||||
}
|
||||
}
|
||||
|
|
@ -1985,7 +1985,7 @@ static void TradeMenuCB_11(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
Link_StartSend5FFFwithParam(12);
|
||||
SetCloseLinkCallbackAndType(12);
|
||||
}
|
||||
|
||||
sTradeMenuResourcesPtr->tradeMenuCBnum = 12;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user