diff options
Diffstat (limited to 'engine/link.asm')
-rwxr-xr-x | engine/link.asm | 154 |
1 files changed, 75 insertions, 79 deletions
diff --git a/engine/link.asm b/engine/link.asm index f5bc24da9..a2aec3a10 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -14,14 +14,14 @@ LinkCommunications: ; 28000 call UpdateSprites call LoadStandardFont call LoadFontsBattleExtra - callba LinkComms_LoadPleaseWaitTextboxBorderGFX + farcall LinkComms_LoadPleaseWaitTextboxBorderGFX call WaitBGMap2 hlcoord 3, 8 ld b, 2 ld c, 12 ld d, h ld e, l - callba LinkTextbox2 + farcall LinkTextbox2 hlcoord 4, 10 ld de, String_PleaseWait call PlaceString @@ -150,7 +150,7 @@ TimeCapsule: ; 2805d ld [wd265], a push hl push de - callab ConvertMon_1to2 + callfar ConvertMon_1to2 pop de pop hl ld a, [wd265] @@ -362,19 +362,19 @@ Gen2ToGen2LinkComms: ; 28177 .fix_mail_loop push bc push de - callba IsMailEuropean + farcall IsMailEuropean ld a, c or a jr z, .next sub $3 jr nc, .skip - callba DeutenEnglischenPost + farcall DeutenEnglischenPost jr .next .skip cp $2 jr nc, .next - callba HandleSpanishItalianMail + farcall HandleSpanishItalianMail .next pop de @@ -390,7 +390,7 @@ Gen2ToGen2LinkComms: ; 28177 ld [de], a .skip_mail - ld hl, wLinkData + ld hl, wLinkPlayerName ld de, OTPlayerName ld bc, NAME_LENGTH call CopyBytes @@ -419,7 +419,7 @@ Gen2ToGen2LinkComms: ; 28177 ld a, CAL ld [OtherTrainerClass], a call ClearScreen - callba Link_WaitBGMap + farcall Link_WaitBGMap ld hl, Options ld a, [hl] push af @@ -463,7 +463,7 @@ Gen2ToGen2LinkComms: ; 28177 ld [wDisableTextAcceleration], a pop af ld [Options], a - callba LoadPokemonData + farcall LoadPokemonData jp Function28b22 .ready_to_trade @@ -491,7 +491,7 @@ LinkTimeout: ; 283b2 push de ld d, h ld e, l - callba LinkTextbox2 + farcall LinkTextbox2 pop de pop hl bccoord 1, 14 @@ -658,7 +658,7 @@ Link_PrepPartyData_Gen1: ; 28499 ld [wd265], a push hl push de - callab ConvertMon_2to1 + callfar ConvertMon_2to1 pop de pop hl ld a, [wd265] @@ -698,7 +698,7 @@ Link_PrepPartyData_Gen1: ; 28499 push bc ld a, [hl] ld [wd265], a - callab ConvertMon_2to1 + callfar ConvertMon_2to1 pop bc pop de ld a, [wd265] @@ -737,10 +737,10 @@ Link_PrepPartyData_Gen1: ; 28499 .skip_steel push bc dec a - ld hl, BaseData + 7 ; type - ld bc, BaseData1 - BaseData0 + ld hl, BaseData + BASE_TYPES + ld bc, BASE_DATA_SIZE call AddNTimes - ld bc, 2 + ld bc, BASE_CATCH_RATE - BASE_TYPES ld a, BANK(BaseData) call FarCopyBytes pop bc @@ -882,20 +882,20 @@ Link_PrepPartyData_Gen2: ; 28595 push hl push de push hl - callba IsMailEuropean + farcall IsMailEuropean pop de ld a, c or a jr z, .next sub $3 jr nc, .italian_spanish - callba HandleFrenchGermanMail + farcall HandleFrenchGermanMail jr .next .italian_spanish cp $2 jr nc, .next - callba HandleSpanishItalianMail + farcall HandleSpanishItalianMail .next pop de @@ -993,7 +993,7 @@ Function2868a: ; 2868a push bc push de ld [wd265], a - callab ConvertMon_1to2 + callfar ConvertMon_1to2 pop de pop bc ld a, [wd265] @@ -1112,7 +1112,7 @@ TimeCapsule_ReplaceTeruSama: ; 28771 and a ret z push hl - ld hl, .TimeCapsuleAlt + ld hl, TimeCapsule_CatchRateItems .loop ld a, [hli] and a @@ -1129,24 +1129,9 @@ TimeCapsule_ReplaceTeruSama: ; 28771 pop hl ret -.TimeCapsuleAlt: ; 28785 -; Pokémon traded from RBY do not have held items, so GSC usually interprets the -; catch rate as an item. However, if the catch rate appears in this table, the -; item associated with the table entry is used instead. - db ITEM_19, LEFTOVERS - db ITEM_2D, BITTER_BERRY - db ITEM_32, GOLD_BERRY - db ITEM_5A, BERRY - db ITEM_64, BERRY - db ITEM_78, BERRY - db ITEM_87, BERRY - db ITEM_BE, BERRY - db ITEM_C3, BERRY - db ITEM_DC, BERRY - db HM_08, BERRY - db -1, BERRY - db 0 -; 2879e + +INCLUDE "data/time_capsule/catch_rate_items.asm" + Link_CopyOTData: ; 2879e .loop @@ -1210,7 +1195,7 @@ Link_FindFirstNonControlCharacter_AllowZero: ; 287d8 InitTradeMenuDisplay: ; 287e3 call ClearScreen call LoadTradeScreenBorder - callba InitTradeSpeciesList + farcall InitTradeSpeciesList xor a ld hl, wOtherPlayerLinkMode ld [hli], a @@ -1247,7 +1232,7 @@ LinkTrade_OTPartyMenu: ; 28803 ld [w2DMenuFlags2], a LinkTradeOTPartymonMenuLoop: ; 28835 - callba LinkTradeMenu + farcall LinkTradeMenu ld a, d and a jp z, LinkTradePartiesMenuMasterLoop @@ -1255,9 +1240,9 @@ LinkTradeOTPartymonMenuLoop: ; 28835 jr z, .not_a_button ld a, $1 ld [wInitListType], a - callab InitList + callfar InitList ld hl, OTPartyMon1Species - callba LinkMonStatsScreen + farcall LinkMonStatsScreen jp LinkTradePartiesMenuMasterLoop .not_a_button @@ -1289,7 +1274,7 @@ LinkTradeOTPartymonMenuLoop: ; 28835 ; 2888b LinkTrade_PlayerPartyMenu: ; 2888b - callba InitMG_Mobile_LinkTradePalMap + farcall InitMG_Mobile_LinkTradePalMap xor a ld [MonType], a ld a, A_BUTTON | D_UP | D_DOWN @@ -1313,7 +1298,7 @@ LinkTrade_PlayerPartyMenu: ; 2888b call WaitBGMap2 LinkTradePartymonMenuLoop: ; 288c5 - callba LinkTradeMenu + farcall LinkTradeMenu ld a, d and a jr nz, .check_joypad @@ -1381,7 +1366,7 @@ Function28926: ; 28926 hlcoord 2, 16 ld de, .String_Stats_Trade call PlaceString - callba Link_WaitBGMap + farcall Link_WaitBGMap .joy_loop ld a, " " @@ -1448,8 +1433,8 @@ Function28926: ; 28926 ld [wMenuCursorY], a ld a, $4 ld [wInitListType], a - callab InitList - callba LinkMonStatsScreen + callfar InitList + farcall LinkMonStatsScreen call Call_LoadTempTileMapToTileMap hlcoord 6, 1 lb bc, 6, 1 @@ -1468,7 +1453,7 @@ Function28926: ; 28926 dec a ld [wd002], a ld [wPlayerLinkAction], a - callba Function16d6ce + farcall Function16d6ce ld a, [wOtherPlayerLinkMode] cp $f jp z, InitTradeMenuDisplay @@ -1476,9 +1461,9 @@ Function28926: ; 28926 call Function28b68 ld c, 100 call DelayFrames - callba ValidateOTTrademon + farcall ValidateOTTrademon jr c, .abnormal - callba Functionfb5dd + farcall Functionfb5dd jp nc, LinkTrade xor a ld [wcf57], a @@ -1487,7 +1472,7 @@ Function28926: ; 28926 ld b, 4 ld c, 18 call Predef_LinkTextbox - callba Link_WaitBGMap + farcall Link_WaitBGMap ld hl, .Text_CantTradeLastMon bccoord 1, 14 call PlaceHLTextAtBC @@ -1509,7 +1494,7 @@ Function28926: ; 28926 ld b, 4 ld c, 18 call Predef_LinkTextbox - callba Link_WaitBGMap + farcall Link_WaitBGMap ld hl, .Text_Abnormal bccoord 1, 14 call PlaceHLTextAtBC @@ -1524,7 +1509,7 @@ Function28926: ; 28926 call PlaceString ld a, $1 ld [wPlayerLinkAction], a - callba Function16d6ce + farcall Function16d6ce ld c, 100 call DelayFrames jp InitTradeMenuDisplay @@ -1590,7 +1575,7 @@ Function28ade: ; 28ade ldcoord_a 9, 17 ld a, $f ld [wPlayerLinkAction], a - callba Function16d6ce + farcall Function16d6ce ld a, [wOtherPlayerLinkMode] cp $f jr nz, .loop1 @@ -1665,7 +1650,7 @@ LinkTrade: ; 28b87 ld b, $4 ld c, $12 call Predef_LinkTextbox - callba Link_WaitBGMap + farcall Link_WaitBGMap ld a, [wd002] ld hl, PartySpecies ld c, a @@ -1715,7 +1700,7 @@ LinkTrade: ; 28b87 ld a, 1 ld [wMenuCursorY], a ld [wMenuCursorX], a - callba Link_WaitBGMap + farcall Link_WaitBGMap call ScrollingMenuJoypad push af call Call_ExitMenu @@ -1737,13 +1722,13 @@ LinkTrade: ; 28b87 hlcoord 1, 14 ld de, String_TooBadTheTradeWasCanceled call PlaceString - callba Function16d6ce + farcall Function16d6ce jp Function28ea3 .asm_28c54 ld a, $2 ld [wPlayerLinkAction], a - callba Function16d6ce + farcall Function16d6ce ld a, [wOtherPlayerLinkMode] dec a jr nz, .asm_28c7b @@ -1832,7 +1817,7 @@ LinkTrade: ; 28b87 call GetPartyLocation ld b, h ld c, l - callba GetCaughtGender + farcall GetCaughtGender ld a, c ld [wPlayerTrademonCaughtData], a ld hl, OTPlayerName @@ -1871,7 +1856,7 @@ LinkTrade: ; 28b87 call GetPartyLocation ld b, h ld c, l - callba GetCaughtGender + farcall GetCaughtGender ld a, c ld [wOTTrademonCaughtData], a ld a, [wd002] @@ -1884,7 +1869,7 @@ LinkTrade: ; 28b87 ld [wd002], a xor a ld [wPokemonWithdrawDepositParameter], a - callab RemoveMonFromPartyOrBox + callfar RemoveMonFromPartyOrBox ld a, [PartyCount] dec a ld [CurPartyMon], a @@ -1933,11 +1918,11 @@ LinkTrade: ; 28b87 ld a, [PartyCount] dec a ld [CurPartyMon], a - callab EvolvePokemon + callfar EvolvePokemon call ClearScreen call LoadTradeScreenBorder call SetTradeRoomBGPals - callba Link_WaitBGMap + farcall Link_WaitBGMap ld b, $1 pop af ld c, a @@ -1972,9 +1957,9 @@ LinkTrade: ; 28b87 jr nz, .loop .save - callba SaveAfterLinkTrade - callba TrainerRankings_Trades - callba BackupMobileEventIndex + farcall SaveAfterLinkTrade + farcall TrainerRankings_Trades + farcall BackupMobileEventIndex ld c, 40 call DelayFrames hlcoord 0, 12 @@ -1984,7 +1969,7 @@ LinkTrade: ; 28b87 hlcoord 1, 14 ld de, String28ebd call PlaceString - callba Link_WaitBGMap + farcall Link_WaitBGMap ld c, 50 call DelayFrames ld a, [wLinkMode] @@ -2020,17 +2005,17 @@ String_TooBadTheTradeWasCanceled: ; 28ece Predef_LinkTextbox: ; 28eef ld d, h ld e, l - callba LinkTextbox + farcall LinkTextbox ret ; 28ef8 LoadTradeScreenBorder: ; 28ef8 - callba _LoadTradeScreenBorder + farcall _LoadTradeScreenBorder ret ; 28eff SetTradeRoomBGPals: ; 28eff - callba LoadTradeRoomBGPals_ ; just a nested farcall; so wasteful + farcall LoadTradeRoomBGPals_ ; just a nested farcall; so wasteful call SetPalettes ret ; 28f09 @@ -2045,11 +2030,11 @@ Function28f09: ; 28f09 ld b, 6 ld c, 18 call Predef_LinkTextbox - callba PlaceTradePartnerNamesAndParty + farcall PlaceTradePartnerNamesAndParty ret ; 28f24 -INCLUDE "engine/trade/animation.asm" +INCLUDE "engine/trade_animation.asm" Special_CheckTimeCapsuleCompatibility: ; 29bfb ; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: @@ -2079,7 +2064,7 @@ Special_CheckTimeCapsuleCompatibility: ; 29bfb push hl push bc ld d, [hl] - callba ItemIsMail + farcall ItemIsMail pop bc pop hl jr c, .mon_has_mail @@ -2450,7 +2435,7 @@ Link_CheckCommunicationError: ; 29e0c Special_TryQuickSave: ; 29e66 ld a, [wd265] push af - callba Link_SaveGame + farcall Link_SaveGame ld a, $1 jr nc, .return_result xor a @@ -2494,7 +2479,7 @@ Special_TimeCapsule: ; 29eaf ld a, LINK_TIMECAPSULE ld [wLinkMode], a call DisableSpriteUpdates - callab LinkCommunications + callfar LinkCommunications call EnableSpriteUpdates xor a ld [hVBlank], a @@ -2505,7 +2490,7 @@ Special_TradeCenter: ; 29ec4 ld a, LINK_TRADECENTER ld [wLinkMode], a call DisableSpriteUpdates - callab LinkCommunications + callfar LinkCommunications call EnableSpriteUpdates xor a ld [hVBlank], a @@ -2516,7 +2501,7 @@ Special_Colosseum: ; 29ed9 ld a, LINK_COLOSSEUM ld [wLinkMode], a call DisableSpriteUpdates - callab LinkCommunications + callfar LinkCommunications call EnableSpriteUpdates xor a ld [hVBlank], a @@ -2592,7 +2577,18 @@ Special_CableClubCheckWhichChris: ; 29f47 ret ; 29f54 -GFX_29f54: ; 29f54 +UnusedGen1LinkCommsBorderGFX: ; 29f54 ; unreferenced -INCBIN "gfx/unknown/029f54.2bpp" +INCBIN "gfx/trade/unused_gen_1_border_tiles.2bpp" ; 29fe4 + +Function29fe4: ; unreferenced + ld a, BANK(sPartyMail) + call GetSRAMBank + ld d, $0 + ld b, CHECK_FLAG + predef FlagPredef + call CloseSRAM + ld a, c + and a + ret |