summaryrefslogtreecommitdiff
path: root/engine/link.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/link.asm')
-rwxr-xr-xengine/link.asm211
1 files changed, 107 insertions, 104 deletions
diff --git a/engine/link.asm b/engine/link.asm
index 14c9c2f4d..f5bc24da9 100755
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -25,7 +25,7 @@ LinkCommunications: ; 28000
hlcoord 4, 10
ld de, String_PleaseWait
call PlaceString
- call Function28eff
+ call SetTradeRoomBGPals
call WaitBGMap2
ld hl, wcf5d
xor a
@@ -41,7 +41,7 @@ TimeCapsule: ; 2805d
call FixDataForLinkTransfer
xor a
ld [wPlayerLinkAction], a
- call Function87d
+ call WaitLinkTransfer
ld a, [hLinkPlayerNumber]
cp $2
jr nz, .player_1
@@ -163,9 +163,9 @@ TimeCapsule: ; 2805d
ld hl, wTimeCapsulePartyMon1Species
call Function2868a
ld a, OTPartyMonOT % $100
- ld [wd102], a
+ ld [wUnusedD102], a
ld a, OTPartyMonOT / $100
- ld [wd103], a
+ ld [wUnusedD102 + 1], a
ld de, MUSIC_NONE
call PlayMusic
ld a, [hLinkPlayerNumber]
@@ -404,9 +404,9 @@ Gen2ToGen2LinkComms: ; 28177
ld bc, OTPartyDataEnd - OTPartyMons
call CopyBytes
ld a, OTPartyMonOT % $100
- ld [wd102], a
+ ld [wUnusedD102], a
ld a, OTPartyMonOT / $100
- ld [wd103], a
+ ld [wUnusedD102 + 1], a
ld de, MUSIC_NONE
call PlayMusic
ld a, [hLinkPlayerNumber]
@@ -431,10 +431,12 @@ Gen2ToGen2LinkComms: ; 28177
ld bc, NAME_LENGTH
call CopyBytes
call ReturnToMapFromSubmenu
- ld a, [wc2d7]
+
+ ; LET'S DO THIS
+ ld a, [wDisableTextAcceleration]
push af
- ld a, $1
- ld [wc2d7], a
+ ld a, 1
+ ld [wDisableTextAcceleration], a
ld a, [rIE]
push af
ld a, [rIF]
@@ -446,7 +448,9 @@ Gen2ToGen2LinkComms: ; 28177
ld [rIE], a
pop af
ld [rIF], a
+
predef StartBattle
+
ld a, [rIF]
ld h, a
xor a
@@ -456,7 +460,7 @@ Gen2ToGen2LinkComms: ; 28177
ld a, h
ld [rIF], a
pop af
- ld [wc2d7], a
+ ld [wDisableTextAcceleration], a
pop af
ld [Options], a
callba LoadPokemonData
@@ -491,10 +495,10 @@ LinkTimeout: ; 283b2
pop de
pop hl
bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
+ call PlaceHLTextAtBC
call RotateThreePalettesRight
call ClearScreen
- ld b, SCGB_08
+ ld b, SCGB_DIPLOMA
call GetSGBLayout
call WaitBGMap2
ret
@@ -575,9 +579,9 @@ FixDataForLinkTransfer: ; 28434
jr nz, .loop2
ld hl, wMisc
ld a, $fd
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
ld b, $c8
xor a
.loop3
@@ -1094,14 +1098,12 @@ Function2868a: ; 2868a
ld a, $46
ld [hli], a
xor a
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
pop hl
-rept 2
inc de
-endr
+ inc de
ret
; 28771
@@ -1211,9 +1213,9 @@ InitTradeMenuDisplay: ; 287e3
callba InitTradeSpeciesList
xor a
ld hl, wOtherPlayerLinkMode
-rept 3
ld [hli], a
-endr
+ ld [hli], a
+ ld [hli], a
ld [hl], a
ld a, 1
ld [wMenuCursorY], a
@@ -1252,8 +1254,8 @@ LinkTradeOTPartymonMenuLoop: ; 28835
bit A_BUTTON_F, a
jr z, .not_a_button
ld a, $1
- ld [wd263], a
- callab Function50db9
+ ld [wInitListType], a
+ callab InitList
ld hl, OTPartyMon1Species
callba LinkMonStatsScreen
jp LinkTradePartiesMenuMasterLoop
@@ -1445,8 +1447,8 @@ Function28926: ; 28926
pop af
ld [wMenuCursorY], a
ld a, $4
- ld [wd263], a
- callab Function50db9
+ ld [wInitListType], a
+ callab InitList
callba LinkMonStatsScreen
call Call_LoadTempTileMapToTileMap
hlcoord 6, 1
@@ -1488,7 +1490,7 @@ Function28926: ; 28926
callba Link_WaitBGMap
ld hl, .Text_CantTradeLastMon
bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
+ call PlaceHLTextAtBC
jr .cancel_trade
.abnormal
@@ -1510,7 +1512,7 @@ Function28926: ; 28926
callba Link_WaitBGMap
ld hl, .Text_Abnormal
bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
+ call PlaceHLTextAtBC
.cancel_trade
hlcoord 0, 12
@@ -1595,7 +1597,7 @@ Function28ade: ; 28ade
Function28b22: ; 28b22
call RotateThreePalettesRight
call ClearScreen
- ld b, SCGB_08
+ ld b, SCGB_DIPLOMA
call GetSGBLayout
call WaitBGMap2
xor a
@@ -1686,7 +1688,7 @@ LinkTrade: ; 28b87
call GetPokemonName
ld hl, UnknownText_0x28eb8
bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
+ call PlaceHLTextAtBC
call LoadStandardMenuDataHeader
hlcoord 10, 7
ld b, 3
@@ -1900,7 +1902,7 @@ LinkTrade: ; 28b87
call DelayFrames
call ClearTileMap
call LoadFontsBattleExtra
- ld b, SCGB_08
+ ld b, SCGB_DIPLOMA
call GetSGBLayout
ld a, [hLinkPlayerNumber]
cp $1
@@ -1934,26 +1936,26 @@ LinkTrade: ; 28b87
callab EvolvePokemon
call ClearScreen
call LoadTradeScreenBorder
- call Function28eff
+ call SetTradeRoomBGPals
callba Link_WaitBGMap
ld b, $1
pop af
ld c, a
cp MEW
- jr z, .asm_28e49
+ jr z, .loop
ld a, [CurPartySpecies]
cp MEW
- jr z, .asm_28e49
+ jr z, .loop
ld b, $2
ld a, c
cp CELEBI
- jr z, .asm_28e49
+ jr z, .loop
ld a, [CurPartySpecies]
cp CELEBI
- jr z, .asm_28e49
+ jr z, .loop
ld b, $0
-.asm_28e49
+.loop
ld a, b
ld [wPlayerLinkAction], a
push bc
@@ -1961,17 +1963,17 @@ LinkTrade: ; 28b87
pop bc
ld a, [wLinkMode]
cp LINK_TIMECAPSULE
- jr z, .asm_28e63
+ jr z, .save
ld a, b
and a
- jr z, .asm_28e63
+ jr z, .save
ld a, [wOtherPlayerLinkAction]
cp b
- jr nz, .asm_28e49
+ jr nz, .loop
-.asm_28e63
- callba Function14a58
- callba MobileFn_1060af
+.save
+ callba SaveAfterLinkTrade
+ callba TrainerRankings_Trades
callba BackupMobileEventIndex
ld c, 40
call DelayFrames
@@ -2027,8 +2029,8 @@ LoadTradeScreenBorder: ; 28ef8
ret
; 28eff
-Function28eff: ; 28eff
- callba Function16d6a7
+SetTradeRoomBGPals: ; 28eff
+ callba LoadTradeRoomBGPals_ ; just a nested farcall; so wasteful
call SetPalettes
ret
; 28f09
@@ -2148,7 +2150,7 @@ Special_EnterTimeCapsule: ; 29c7b
ld c, 10
call DelayFrames
ld a, $4
- call Function29f17
+ call Link_EnsureSync
ld c, 40
call DelayFrames
xor a
@@ -2197,7 +2199,7 @@ WaitForOtherPlayerToExit: ; 29c92
ld [rIE], a
pop af
ld [rIF], a
- ld hl, wcf5b
+ ld hl, wLinkTimeoutFrames
xor a
ld [hli], a
ld [hl], a
@@ -2238,7 +2240,7 @@ Special_SetBitsForTimeCapsuleRequest: ; 29cfa
Special_WaitForLinkedFriend: ; 29d11
ld a, [wPlayerLinkAction]
and a
- jr z, .asm_29d2f
+ jr z, .no_link_action
ld a, $2
ld [rSB], a
xor a
@@ -2251,17 +2253,17 @@ Special_WaitForLinkedFriend: ; 29d11
call DelayFrame
call DelayFrame
-.asm_29d2f
+.no_link_action
ld a, $2
- ld [wcf5c], a
+ ld [wLinkTimeoutFrames + 1], a
ld a, $ff
- ld [wcf5b], a
-.asm_29d39
+ ld [wLinkTimeoutFrames], a
+.loop
ld a, [hLinkPlayerNumber]
cp $2
- jr z, .asm_29d79
+ jr z, .connected
cp $1
- jr z, .asm_29d79
+ jr z, .connected
ld a, -1
ld [hLinkPlayerNumber], a
ld a, $2
@@ -2272,16 +2274,16 @@ Special_WaitForLinkedFriend: ; 29d11
ld [rSC], a
ld a, $80
ld [rSC], a
- ld a, [wcf5b]
+ ld a, [wLinkTimeoutFrames]
dec a
- ld [wcf5b], a
- jr nz, .asm_29d68
- ld a, [wcf5c]
+ ld [wLinkTimeoutFrames], a
+ jr nz, .not_done
+ ld a, [wLinkTimeoutFrames + 1]
dec a
- ld [wcf5c], a
- jr z, .asm_29d8d
+ ld [wLinkTimeoutFrames + 1], a
+ jr z, .done
-.asm_29d68
+.not_done
ld a, $1
ld [rSB], a
ld a, $1
@@ -2289,19 +2291,19 @@ Special_WaitForLinkedFriend: ; 29d11
ld a, $81
ld [rSC], a
call DelayFrame
- jr .asm_29d39
+ jr .loop
-.asm_29d79
+.connected
call LinkDataReceived
call DelayFrame
call LinkDataReceived
- ld c, $32
+ ld c, 50
call DelayFrames
ld a, $1
ld [ScriptVar], a
ret
-.asm_29d8d
+.done
xor a
ld [ScriptVar], a
ret
@@ -2310,7 +2312,7 @@ Special_WaitForLinkedFriend: ; 29d11
Special_CheckLinkTimeout: ; 29d92
ld a, $1
ld [wPlayerLinkAction], a
- ld hl, wcf5b
+ ld hl, wLinkTimeoutFrames
ld a, $3
ld [hli], a
xor a
@@ -2320,19 +2322,19 @@ Special_CheckLinkTimeout: ; 29d92
ld [hVBlank], a
call DelayFrame
call DelayFrame
- call Function29e0c
+ call Link_CheckCommunicationError
xor a
ld [hVBlank], a
ld a, [ScriptVar]
and a
ret nz
- jp Function29f04
+ jp Link_ResetSerialRegistersAfterLinkClosure
; 29dba
Function29dba: ; 29dba
ld a, $5
ld [wPlayerLinkAction], a
- ld hl, wcf5b
+ ld hl, wLinkTimeoutFrames
ld a, $3
ld [hli], a
xor a
@@ -2342,7 +2344,7 @@ Function29dba: ; 29dba
ld [hVBlank], a
call DelayFrame
call DelayFrame
- call Function29e0c
+ call Link_CheckCommunicationError
ld a, [ScriptVar]
and a
jr z, .vblank
@@ -2357,11 +2359,11 @@ Function29dba: ; 29dba
jr nz, .script_var
ld a, $6
ld [wPlayerLinkAction], a
- ld hl, wcf5b
+ ld hl, wLinkTimeoutFrames
ld a, $1
ld [hli], a
ld [hl], $32
- call Function29e0c
+ call Link_CheckCommunicationError
ld a, [wOtherPlayerLinkMode]
cp $6
jr z, .vblank
@@ -2377,40 +2379,40 @@ Function29dba: ; 29dba
ret
; 29e0c
-Function29e0c: ; 29e0c
+Link_CheckCommunicationError: ; 29e0c
xor a
ld [hFFCA], a
- ld a, [wcf5b]
+ ld a, [wLinkTimeoutFrames]
ld h, a
- ld a, [wcf5c]
+ ld a, [wLinkTimeoutFrames + 1]
ld l, a
push hl
- call Function29e3b
+ call .CheckConnected
pop hl
- jr nz, .asm_29e2f
- call Function29e47
- call Function29e53
- call Function29e3b
- jr nz, .asm_29e2f
- call Function29e47
+ jr nz, .load_true
+ call .AcknowledgeSerial
+ call .ConvertDW
+ call .CheckConnected
+ jr nz, .load_true
+ call .AcknowledgeSerial
xor a
- jr .asm_29e31
+ jr .load_scriptvar
-.asm_29e2f
+.load_true
ld a, $1
-.asm_29e31
+.load_scriptvar
ld [ScriptVar], a
- ld hl, wcf5b
+ ld hl, wLinkTimeoutFrames
xor a
ld [hli], a
ld [hl], a
ret
; 29e3b
-Function29e3b: ; 29e3b
- call Function87d
- ld hl, wcf5b
+.CheckConnected: ; 29e3b
+ call WaitLinkTransfer
+ ld hl, wLinkTimeoutFrames
ld a, [hli]
inc a
ret nz
@@ -2419,17 +2421,19 @@ Function29e3b: ; 29e3b
ret
; 29e47
-Function29e47: ; 29e47
- ld b, $a
-.asm_29e49
+.AcknowledgeSerial: ; 29e47
+ ld b, 10
+.loop
call DelayFrame
call LinkDataReceived
dec b
- jr nz, .asm_29e49
+ jr nz, .loop
ret
; 29e53
-Function29e53: ; 29e53
+.ConvertDW: ; 29e53
+ ; [wLinkTimeoutFrames] = ((hl - $100) / 4) + $100
+ ; = (hl / 4) + $c0
dec h
srl h
rr l
@@ -2437,9 +2441,9 @@ Function29e53: ; 29e53
rr l
inc h
ld a, h
- ld [wcf5b], a
+ ld [wLinkTimeoutFrames], a
ld a, l
- ld [wcf5c], a
+ ld [wLinkTimeoutFrames + 1], a
ret
; 29e66
@@ -2448,12 +2452,11 @@ Special_TryQuickSave: ; 29e66
push af
callba Link_SaveGame
ld a, $1
- jr nc, .asm_29e75
+ jr nc, .return_result
xor a
-
-.asm_29e75
+.return_result
ld [ScriptVar], a
- ld c, $1e
+ ld c, 30
call DelayFrames
pop af
ld [wd265], a
@@ -2462,7 +2465,7 @@ Special_TryQuickSave: ; 29e66
Special_CheckBothSelectedSameRoom: ; 29e82
ld a, [wd265]
- call Function29f17
+ call Link_EnsureSync
push af
call LinkDataReceived
call DelayFrame
@@ -2523,19 +2526,19 @@ Special_Colosseum: ; 29ed9
Special_CloseLink: ; 29eee
xor a
ld [wLinkMode], a
- ld c, $3
+ ld c, 3
call DelayFrames
- jp Function29f04
+ jp Link_ResetSerialRegistersAfterLinkClosure
; 29efa
Special_FailedLinkToPast: ; 29efa
ld c, 40
call DelayFrames
ld a, $e
- jp Function29f17
+ jp Link_EnsureSync
; 29f04
-Function29f04: ; 29f04
+Link_ResetSerialRegistersAfterLinkClosure: ; 29f04
ld c, 3
call DelayFrames
ld a, -1
@@ -2548,7 +2551,7 @@ Function29f04: ; 29f04
ret
; 29f17
-Function29f17: ; 29f17
+Link_EnsureSync: ; 29f17
add $d0
ld [wPlayerLinkAction], a
ld [wcf57], a