ref: 4df72a8474a24ebd261e2768c7f21273435364e4
dir: /engine/link/link_trade.asm/
LinkCommsBorderGFX: INCBIN "gfx/trade/border_tiles.2bpp" ; 16d421 __LoadTradeScreenBorder: ; 16d421 ld de, LinkCommsBorderGFX ld hl, vTiles2 lb bc, BANK(LinkCommsBorderGFX), 70 call Get2bpp ret ; 16d42e Function16d42e: ; 16d42e ld hl, Tilemap_MobileTradeBorderFullscreen decoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyBytes ret ; 16d43b Function16d43b: ; 16d43b call LoadStandardMenuHeader call ClearBGPalettes call ClearTileMap call ClearSprites farcall __LoadTradeScreenBorder ; useless to farcall farcall Function16d42e ; useless to farcall ld b, SCGB_DIPLOMA call GetSGBLayout call SetPalettes call WaitBGMap call JoyWaitAorB call Call_ExitMenu ret ; 16d465 Tilemap_MobileTradeBorderFullscreen: INCBIN "gfx/trade/border_mobile_fullscreen.tilemap" Tilemap_CableTradeBorderTop: INCBIN "gfx/trade/border_cable_top.tilemap" Tilemap_CableTradeBorderBottom: INCBIN "gfx/trade/border_cable_bottom.tilemap" _LinkTextbox: ; 16d61d ld h, d ld l, e push bc push hl call .PlaceBorder pop hl pop bc ld de, wAttrMap - wTileMap add hl, de inc b inc b inc c inc c ld a, PAL_BG_TEXT .row push bc push hl .col ld [hli], a dec c jr nz, .col pop hl ld de, SCREEN_WIDTH add hl, de pop bc dec b jr nz, .row ret ; 16d640 .PlaceBorder ; 16d640 push hl ld a, $30 ld [hli], a inc a call .PlaceRow inc a ld [hl], a pop hl ld de, SCREEN_WIDTH add hl, de .loop push hl ld a, $33 ld [hli], a ld a, " " call .PlaceRow ld [hl], $34 pop hl ld de, SCREEN_WIDTH add hl, de dec b jr nz, .loop ld a, $35 ld [hli], a ld a, $36 call .PlaceRow ld [hl], $37 ret ; 16d66d .PlaceRow ; 16d66d ld d, c .row_loop ld [hli], a dec d jr nz, .row_loop ret ; 16d673 InitTradeSpeciesList: ; 16d673 call _LoadTradeScreenBorder call Function16d6ae farcall InitMG_Mobile_LinkTradePalMap farcall PlaceTradePartnerNamesAndParty hlcoord 10, 17 ld de, .CANCEL call PlaceString ret ; 16d68f .CANCEL: ; 16d68f db "CANCEL@" ; 16d696 _LoadTradeScreenBorder: ; 16d696 call __LoadTradeScreenBorder ret ; 16d69a LinkComms_LoadPleaseWaitTextboxBorderGFX: ; 16d69a ld de, LinkCommsBorderGFX + $30 tiles ld hl, vTiles2 tile $76 lb bc, BANK(LinkCommsBorderGFX), 8 call Get2bpp ret ; 16d6a7 LoadTradeRoomBGPals_: ; 16d6a7 farcall LoadTradeRoomBGPals ret ; 16d6ae Function16d6ae: ; 16d6ae call Function16d42e ld hl, Tilemap_CableTradeBorderTop decoord 0, 0 ld bc, 2 * SCREEN_WIDTH call CopyBytes ld hl, Tilemap_CableTradeBorderBottom decoord 0, 16 ld bc, 2 * SCREEN_WIDTH call CopyBytes ret ; 16d6ca LinkTextbox: ; 16d6ca call _LinkTextbox ret ; 16d6ce Function16d6ce: ; 16d6ce call LoadStandardMenuHeader call Function16d6e1 farcall WaitLinkTransfer call Call_ExitMenu call WaitBGMap2 ret ; 16d6e1 Function16d6e1: ; 16d6e1 hlcoord 4, 10 ld b, 1 ld c, 10 predef LinkTextboxAtHL hlcoord 5, 11 ld de, .Waiting call PlaceString call WaitBGMap call WaitBGMap2 ld c, 50 jp DelayFrames ; 16d701 .Waiting: ; 16d701 db "WAITING..!@" ; 16d70c LinkTradeMenu: ; 16d70c call .MenuAction call .GetJoypad ret ; 16d713 .GetJoypad: ; 16d713 push bc push af ld a, [hJoyLast] and D_PAD ld b, a ld a, [hJoyPressed] and BUTTONS or b ld b, a pop af ld a, b pop bc ld d, a ret ; 16d725 .MenuAction: ; 16d725 ld hl, w2DMenuFlags2 res 7, [hl] ld a, [hBGMapMode] push af call .loop pop af ld [hBGMapMode], a ret .loop call .UpdateCursor call .UpdateBGMapAndOAM call .loop2 jr nc, .done farcall _2DMenuInterpretJoypad jr c, .done ld a, [w2DMenuFlags1] bit 7, a jr nz, .done call .GetJoypad ld b, a ld a, [wMenuJoypadFilter] and b jr z, .loop .done ret ; 16d759 .UpdateBGMapAndOAM: ; 16d759 ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a call WaitBGMap pop af ld [hOAMUpdate], a xor a ld [hBGMapMode], a ret .loop2 call RTC call .TryAnims ret c ld a, [w2DMenuFlags1] bit 7, a jr z, .loop2 and a ret ; 16d77a .UpdateCursor: ; 16d77a ld hl, wCursorCurrentTile ld a, [hli] ld h, [hl] ld l, a ld a, [hl] cp $1f jr nz, .not_currently_selected ld a, [wCursorOffCharacter] ld [hl], a push hl push bc ld bc, MON_NAME_LENGTH add hl, bc ld [hl], a pop bc pop hl .not_currently_selected ld a, [w2DMenuCursorInitY] ld b, a ld a, [w2DMenuCursorInitX] ld c, a call Coord2Tile ld a, [w2DMenuCursorOffsets] swap a and $f ld c, a ld a, [wMenuCursorY] ld b, a xor a dec b jr z, .skip .loop3 add c dec b jr nz, .loop3 .skip ld c, SCREEN_WIDTH call AddNTimes ld a, [w2DMenuCursorOffsets] and $f ld c, a ld a, [wMenuCursorX] ld b, a xor a dec b jr z, .skip2 .loop4 add c dec b jr nz, .loop4 .skip2 ld c, a add hl, bc ld a, [hl] cp $1f jr z, .cursor_already_there ld [wCursorOffCharacter], a ld [hl], $1f push hl push bc ld bc, MON_NAME_LENGTH add hl, bc ld [hl], $1f pop bc pop hl .cursor_already_there ld a, l ld [wCursorCurrentTile], a ld a, h ld [wCursorCurrentTile + 1], a ret ; 16d7e7 .TryAnims: ; 16d7e7 ld a, [w2DMenuFlags1] bit 6, a jr z, .skip_anims farcall PlaySpriteAnimationsAndDelayFrame .skip_anims call JoyTextDelay call .GetJoypad and a ret z scf ret ; 16d7fe