Use some label diffs instead of constants

This commit is contained in:
Rangi 2026-02-04 11:43:51 -05:00
parent f05e552b91
commit da13d9a6ec
3 changed files with 24 additions and 26 deletions

View File

@ -38,17 +38,10 @@ DEF SERIAL_RNS_LENGTH EQU 10
DEF SERIAL_PADDING_LENGTH EQU 3
; Gen 2 to Gen 2 link party data structure
DEF LINK_PARTY_DATA_LENGTH EQU NAME_LENGTH + (1 + PARTY_LENGTH + 1) + 2 + (PARTYMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH
; Gen 2 to Gen 1 link party data structure (Time Capsule)
DEF LINK_TIME_CAPSULE_PARTY_DATA_LENGTH EQU NAME_LENGTH + (1 + PARTY_LENGTH + 1) + (REDMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH
DEF SERIAL_MAIL_PREAMBLE_BYTE EQU $20
DEF SERIAL_MAIL_PREAMBLE_LENGTH EQU 5
; used to replace SERIAL_NO_DATA_BYTE
DEF SERIAL_MAIL_REPLACEMENT_BYTE EQU $21
; length of the mail patch list (it's bigger than the mail patched area by 18 bytes)
DEF SERIAL_MAIL_PATCH_LIST_LENGTH EQU (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1) + 3) * PARTY_LENGTH + 1
; timeout duration after exchanging a byte
DEF SERIAL_LINK_BYTE_TIMEOUT EQU $5000

View File

@ -88,7 +88,7 @@ endc
ld hl, wLinkSendTimeCapsuleParty
ld de, wLinkReceivedPartyData
ld bc, SERIAL_PREAMBLE_LENGTH + LINK_TIME_CAPSULE_PARTY_DATA_LENGTH + SERIAL_PADDING_LENGTH
ld bc, wLinkSendTimeCapsulePartyEnd - wLinkSendTimeCapsuleParty
vc_hook Wireless_ExchangeBytes_Gen2toGen1_party_structs
call Serial_ExchangeBytes
ld a, SERIAL_NO_DATA_BYTE
@ -255,7 +255,7 @@ endc
ld hl, wLinkSendParty
ld de, wLinkReceivedPartyData
ld bc, SERIAL_PREAMBLE_LENGTH + LINK_PARTY_DATA_LENGTH + SERIAL_PADDING_LENGTH
ld bc, wLinkSendPartyEnd - wLinkSendParty
vc_hook Wireless_ExchangeBytes_party_structs
call Serial_ExchangeBytes
ld a, SERIAL_NO_DATA_BYTE
@ -289,7 +289,7 @@ endc
ld hl, wLinkReceivedPartyData
call Link_FindFirstNonControlCharacter_SkipZero
ld de, wLinkPartyData
ld bc, LINK_PARTY_DATA_LENGTH
ld bc, wLinkPartyDataEnd - wLinkPartyData
call Link_CopyOTData
ld de, wOTPatchLists

View File

@ -493,7 +493,14 @@ SECTION UNION "Overworld Map", WRAM0
wLinkData::
; player's party data, formatted for link transfer (Gen 2 link session)
wLinkSendParty:: ds SERIAL_PREAMBLE_LENGTH + LINK_PARTY_DATA_LENGTH + SERIAL_PADDING_LENGTH
wLinkSendParty::
ds SERIAL_PREAMBLE_LENGTH
ds NAME_LENGTH
ds (1 + PARTY_LENGTH + 1)
ds 2
ds (PARTYMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH
ds SERIAL_PADDING_LENGTH
wLinkSendPartyEnd::
ds 50
@ -502,17 +509,19 @@ wLinkSendMail::
wLinkSendMailPreamble:: ds SERIAL_MAIL_PREAMBLE_LENGTH
wLinkSendMailMessages:: ds (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
wLinkSendMailMetadata:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1)) * PARTY_LENGTH
wLinkSendMailPatchSet:: ds SERIAL_MAIL_PATCH_LIST_LENGTH
wLinkSendMailPatchSet:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1) + 3) * PARTY_LENGTH + 1
wLinkSendMailEnd::
ds 10
; during a link session, the other player's raw mail data is initially stored here
wLinkReceivedMail::
ds SERIAL_MAIL_PREAMBLE_LENGTH + MAIL_STRUCT_LENGTH * PARTY_LENGTH + SERIAL_MAIL_PATCH_LIST_LENGTH
wLinkReceivedMailMessages:: ds (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
wLinkReceivedMailMetadata:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1)) * PARTY_LENGTH
wLinkReceivedMailPatchSet:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1) + 3) * PARTY_LENGTH + 1
wLinkReceivedMailEnd::
ds 10 ; unused but written to (see engine/link/link.asm)
ds 15 ; unused but written to (see engine/link/link.asm)
wLinkDataEnd::
@ -520,7 +529,13 @@ wLinkDataEnd::
SECTION UNION "Overworld Map", WRAM0
; player's party data, formatted for link transfer (Time Capsule link session)
wLinkSendTimeCapsuleParty:: ds SERIAL_PREAMBLE_LENGTH + LINK_TIME_CAPSULE_PARTY_DATA_LENGTH + SERIAL_PADDING_LENGTH
wLinkSendTimeCapsuleParty::
ds SERIAL_PREAMBLE_LENGTH
ds NAME_LENGTH
ds (1 + PARTY_LENGTH + 1)
ds (REDMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH
ds SERIAL_PADDING_LENGTH
wLinkSendTimeCapsulePartyEnd::
SECTION UNION "Overworld Map", WRAM0
@ -560,16 +575,6 @@ endr
wLinkPartyDataEnd::
SECTION UNION "Overworld Map", WRAM0
ds 900
; received mail data, stripped of the serial preamble
wLinkReceivedMailMessages:: ds (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
wLinkReceivedMailMetadata:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1)) * PARTY_LENGTH
wLinkReceivedMailPatchSet:: ds SERIAL_MAIL_PATCH_LIST_LENGTH
SECTION UNION "Overworld Map", WRAM0
; after the initial link session, the other player's party data
@ -2802,7 +2807,7 @@ wMagikarpRecordHoldersName:: ds NAME_LENGTH
; This union spans 451 bytes.
UNION
; during a link session, other player's raw party data is initially stored here
wLinkReceivedPartyData:: ds SERIAL_PREAMBLE_LENGTH + LINK_PARTY_DATA_LENGTH + SERIAL_PADDING_LENGTH
wLinkReceivedPartyData:: ds SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + (1 + PARTY_LENGTH + 1) + 2 + (PARTYMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + SERIAL_PADDING_LENGTH
wLinkReceivedPartyEnd:: db
NEXTU