From aea8997c458d9b042d20bccef752da23376626d2 Mon Sep 17 00:00:00 2001 From: GearsProgress Date: Thu, 7 May 2026 15:17:28 -0400 Subject: [PATCH] Updating to handle mail data in gen 2 --- include/link_handler.h | 1 + source/link_handler.cpp | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/include/link_handler.h b/include/link_handler.h index fbc7563..ff2b54d 100644 --- a/include/link_handler.h +++ b/include/link_handler.h @@ -32,6 +32,7 @@ enum ConnectionState WAIT_FOR_TRADE, TRADE_PREAMBLE, TRADE, + MAIL, END, PARTY_PREAMBLE, diff --git a/source/link_handler.cpp b/source/link_handler.cpp index 35d679d..9c05a80 100644 --- a/source/link_handler.cpp +++ b/source/link_handler.cpp @@ -170,7 +170,7 @@ byte handleIncomingByte() return currLinkState->in_data; break; case TRADE_PREAMBLE: - if (currLinkState->section_data_counter == 10) + if (currLinkState->section_data_counter >= 10) { currLinkState->section_data_counter = 0; currLinkState->conState = TRADE; @@ -178,12 +178,25 @@ byte handleIncomingByte() }; return tradePreambleBytes[currLinkState->section_data_counter]; case TRADE: - if (currLinkState->section_data_counter == currLinkState->curr_payload_size - 1) + if (currLinkState->section_data_counter >= currLinkState->curr_payload_size - 1) { - currLinkState->conState = END; + if (currLinkState->gen == 2) + { + currLinkState->section_data_counter = 0; + currLinkState->conState = MAIL; + } + else + { + currLinkState->conState = END; + } } return currLinkState->curr_payload[currLinkState->section_data_counter]; break; + case MAIL: + if (currLinkState->section_data_counter >= 0x186) + { + currLinkState->conState = END; + } case END: currLinkState->irq_enabled = false; break;