diff options
author | Deokishisu <6993375+Deokishisu@users.noreply.github.com> | 2021-06-03 12:45:59 -0400 |
---|---|---|
committer | Deokishisu <6993375+Deokishisu@users.noreply.github.com> | 2021-06-03 12:45:59 -0400 |
commit | 8e4320cc211da9d0ccd14a2b9c220cf85c05aeef (patch) | |
tree | dd73557d5f392e337696200898f5e86e56833917 /src | |
parent | 753b19d0ea79b9637c0eb08b3f1b04b543fe90a0 (diff) |
Sync LinkPlayer Struct with pokeemerald
In pokefirered, the `LinkPlayer` struct used an 11-byte name field and puts extra link-related info in the last three bytes. pokeemerald separates these last three bytes into their own fields. This commit replicates how pokeemerald handles those fields.
Also renamed `IntlConvertLinkPlayerName` to pokeemerald's `ConvertLinkPlayerName` because I was there and noticed it.
Diffstat (limited to 'src')
-rw-r--r-- | src/cable_club.c | 2 | ||||
-rw-r--r-- | src/link.c | 18 | ||||
-rw-r--r-- | src/link_rfu_2.c | 4 | ||||
-rw-r--r-- | src/trade.c | 6 |
4 files changed, 15 insertions, 15 deletions
diff --git a/src/cable_club.c b/src/cable_club.c index c3de9dd26..791f04a07 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -659,7 +659,7 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) for (i = 0; i < GetLinkPlayerCount(); i++) { gLinkPlayers[i] = *(struct LinkPlayer *)gBlockRecvBuffer[i]; - IntlConvertLinkPlayerName(&gLinkPlayers[i]); + ConvertLinkPlayerName(&gLinkPlayers[i]); ResetBlockReceivedFlag(i); } data[0] = 4; diff --git a/src/link.c b/src/link.c index 8122aafc0..d2d9e630f 100644 --- a/src/link.c +++ b/src/link.c @@ -321,10 +321,10 @@ static void InitLocalLinkPlayer(void) gLocalLinkPlayer.language = gGameLanguage; gLocalLinkPlayer.version = gGameVersion + 0x4000; gLocalLinkPlayer.lp_field_2 = 0x8000; - gLocalLinkPlayer.name[8] = IsNationalPokedexEnabled(); + gLocalLinkPlayer.progressFlags = IsNationalPokedexEnabled(); if (FlagGet(FLAG_SYS_CAN_LINK_WITH_RS)) { - gLocalLinkPlayer.name[8] |= 0x10; + gLocalLinkPlayer.progressFlags |= 0x10; } } @@ -602,11 +602,11 @@ void ProcessRecvCmds(u8 unused) *linkPlayer = block->linkPlayer; if ((linkPlayer->version & 0xFF) == VERSION_RUBY || (linkPlayer->version & 0xFF) == VERSION_SAPPHIRE) { - linkPlayer->name[10] = 0; - linkPlayer->name[9] = 0; - linkPlayer->name[8] = 0; + linkPlayer->progressFlagsCopy = 0; + linkPlayer->neverRead = 0; + linkPlayer->progressFlags = 0; } - IntlConvertLinkPlayerName(linkPlayer); + ConvertLinkPlayerName(linkPlayer); if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 || strcmp(block->magic2, sASCIIGameFreakInc) != 0) { @@ -1640,7 +1640,7 @@ void LinkPlayerFromBlock(u32 who) block = (struct LinkPlayerBlock *)gBlockRecvBuffer[who_]; player = &gLinkPlayers[who_]; *player = block->linkPlayer; - IntlConvertLinkPlayerName(player); + ConvertLinkPlayerName(player); if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 || strcmp(block->magic2, sASCIIGameFreakInc) != 0) { SetMainCallback2(CB2_LinkError); @@ -1718,9 +1718,9 @@ bool32 LinkRecvQueueLengthMoreThan2(void) return FALSE; } -void IntlConvertLinkPlayerName(struct LinkPlayer * player) +void ConvertLinkPlayerName(struct LinkPlayer * player) { - player->name[10] = player->name[8]; + player->progressFlagsCopy = player->progressFlags; // ? Perhaps relocating for a longer name field ConvertInternationalString(player->name, player->language); } diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 76db5d1b0..d2c605d7b 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -1769,7 +1769,7 @@ static void ReceiveRfuLinkPlayers(const struct SioInfo *chunk) for (i = 0; i < MAX_RFU_PLAYERS; i++) { gLinkPlayers[i] = chunk->linkPlayers[i]; - IntlConvertLinkPlayerName(gLinkPlayers + i); + ConvertLinkPlayerName(gLinkPlayers + i); } } @@ -1814,7 +1814,7 @@ static void Task_ExchangeLinkPlayers(u8 taskId) ResetBlockReceivedFlag(r4); r2 = (struct LinkPlayerBlock *)gBlockRecvBuffer[r4]; gLinkPlayers[r4] = r2->linkPlayer; - IntlConvertLinkPlayerName(gLinkPlayers + r4); + ConvertLinkPlayerName(gLinkPlayers + r4); gTasks[taskId].data[0]++; } break; diff --git a/src/trade.c b/src/trade.c index 656cba37b..4893f5724 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2623,7 +2623,7 @@ static u32 TestWhetherSelectedMonCanBeTraded(struct Pokemon * party, int partyCo if ((player->version & 0xFF) != VERSION_RUBY && (player->version & 0xFF) != VERSION_SAPPHIRE) { - if ((player->name[10] & 0xF) == 0) + if ((player->progressFlagsCopy & 0xF) == 0) { if (species2[cursorPos] == SPECIES_EGG) { @@ -2697,11 +2697,11 @@ s32 Trade_CalcLinkPlayerCompatibilityParam(void) if (val > 0) { - if (gLinkPlayers[GetMultiplayerId()].name[10] & 0xF0) + if (gLinkPlayers[GetMultiplayerId()].progressFlagsCopy & 0xF0) { if (val == 2) { - if (gLinkPlayers[GetMultiplayerId() ^ 1].name[10] & 0xF0) + if (gLinkPlayers[GetMultiplayerId() ^ 1].progressFlagsCopy & 0xF0) { return 0; } |