ref: 33ff8f2aed95ec9d1d45d91c36a6d44a6edfce74
dir: /mobile/mobile_42.asm/
MobileTradeAnimation_SendGivemonToGTS: ld a, $80 ld [wcf65], a ld de, .TradeAnimScript jp RunMobileTradeAnim_NoFrontpics .TradeAnimScript: mobiletradeanim_showgtsgivemon mobiletradeanim_12 mobiletradeanim_10 mobiletradeanim_sendmon mobiletradeanim_06 mobiletradeanim_0f mobiletradeanim_end MobileTradeAnimation_RetrieveGivemonFromGTS: ld a, $80 jr asm_108018 MobileTradeAnimation_ReceiveGetmonFromGTS: ld a, $0 asm_108018: ld [wcf65], a ld de, .TradeAnimScript jp RunMobileTradeAnim_NoFrontpics .TradeAnimScript: mobiletradeanim_11 mobiletradeanim_07 mobiletradeanim_receivemon mobiletradeanim_showgtsgetmon mobiletradeanim_end Function108026: ld a, $0 jr asm_10802c Function10802a: ld a, $1 asm_10802c: ld [wcf65], a ld de, .TradeAnimScript jp RunMobileTradeAnim_Frontpics .TradeAnimScript: ; trade mobiletradeanim_showgivemon mobiletradeanim_12 mobiletradeanim_02 mobiletradeanim_sendmon mobiletradeanim_05 mobiletradeanim_receivemon mobiletradeanim_showgetmon mobiletradeanim_end Function10803d: ld a, $0 ld [wcf65], a ld de, .TradeAnimScript jp RunMobileTradeAnim_NoFrontpics .TradeAnimScript: mobiletradeanim_11 mobiletradeanim_07 mobiletradeanim_receivemon mobiletradeanim_showoddegg mobiletradeanim_end Function10804d: ld a, $0 ld [wcf65], a ld de, .TradeAnimScript jp RunMobileTradeAnim_NoFrontpics .TradeAnimScript: mobiletradeanim_11 mobiletradeanim_showgtsgetmon mobiletradeanim_end RunMobileTradeAnim_Frontpics: ld hl, wTradeAnimAddress ld [hl], e inc hl ld [hl], d ld a, [hMapAnims] push af xor a ld [hMapAnims], a ld hl, wVramState ld a, [hl] push af res 0, [hl] ld hl, wOptions ld a, [hl] push af set NO_TEXT_SCROLL, [hl] call Function1080b7 .loop call MobileTradeAnim_JumptableLoop jr nc, .loop pop af ld [wOptions], a pop af ld [wVramState], a pop af ld [hMapAnims], a ret RunMobileTradeAnim_NoFrontpics: ld hl, wTradeAnimAddress ld [hl], e inc hl ld [hl], d ld a, [hMapAnims] push af xor a ld [hMapAnims], a ld hl, wVramState ld a, [hl] push af res 0, [hl] ld hl, wOptions ld a, [hl] push af set NO_TEXT_SCROLL, [hl] call Function108157 .loop call MobileTradeAnim_JumptableLoop jr nc, .loop pop af ld [wOptions], a pop af ld [wVramState], a pop af ld [hMapAnims], a ret Function1080b7: xor a ld [wJumptableIndex], a call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD call MobileTradeAnim_ClearTiles call MobileTradeAnim_ClearBGMap call LoadStandardFont call LoadFontsBattleExtra ld a, $1 ld [rVBK], a ld hl, LZ_108da7 ld de, vTiles2 call Decompress ld a, $0 ld [rVBK], a ld hl, LZ_108d27 ld de, vTiles0 tile $20 call Decompress call EnableLCD xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a farcall ClearSpriteAnims call DelayFrame ld de, TradeBallGFX ld hl, vTiles0 lb bc, BANK(TradeBallGFX), 6 call Request2bpp ld de, TradePoofGFX ld hl, vTiles0 tile $06 lb bc, BANK(TradePoofGFX), 12 call Request2bpp xor a ld hl, wSpriteAnimDict ld [hli], a ld [hl], $0 ld a, [wPlayerTrademonSpecies] ld hl, wPlayerTrademonDVs ld de, vTiles0 tile $30 call MobileTradeAnim_GetFrontpic ld a, [wOTTrademonSpecies] ld hl, wOTTrademonDVs ld de, vTiles2 tile $31 call MobileTradeAnim_GetFrontpic ld a, [wPlayerTrademonSpecies] ld de, wPlayerTrademonSpeciesName call MobileTradeAnim_InitSpeciesName ld a, [wOTTrademonSpecies] ld de, wOTTrademonSpeciesName call MobileTradeAnim_InitSpeciesName xor a call Function108b98 call Function108af4 ret Function108157: xor a ld [wJumptableIndex], a call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD call MobileTradeAnim_ClearTiles call MobileTradeAnim_ClearBGMap call LoadStandardFont call LoadFontsBattleExtra call EnableLCD xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a farcall ClearSpriteAnims xor a ld hl, wSpriteAnimDict ld [hli], a ld [hl], $0 call DelayFrame ld a, [wPlayerTrademonSpecies] ld de, wPlayerTrademonSpeciesName call MobileTradeAnim_InitSpeciesName ld a, [wOTTrademonSpecies] ld de, wOTTrademonSpeciesName call MobileTradeAnim_InitSpeciesName xor a call Function108b98 call Function108af4 ret MobileTradeAnim_ClearTiles: ld a, $1 ld [rVBK], a ld hl, vTiles0 ld bc, 3 * $80 tiles xor a call ByteFill ld a, $0 ld [rVBK], a ld hl, vTiles0 ld bc, 3 * $80 tiles xor a call ByteFill ret MobileTradeAnim_ClearBGMap: ld a, $1 ld [rVBK], a hlbgcoord 0, 0 ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH ld a, $0 call ByteFill ld a, $0 ld [rVBK], a hlbgcoord 0, 0 ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH ld a, $7f call ByteFill ret MobileTradeAnim_GetFrontpic: push de push af predef GetUnownLetter pop af ld [wCurPartySpecies], a ld [wCurSpecies], a call GetBaseData pop de predef GetMonFrontpic ret Function108201: push de push af predef GetUnownLetter pop af ld [wCurPartySpecies], a ld [wCurSpecies], a call GetBaseData pop de predef GetAnimatedFrontpic ret Function108219: ld [wCurPartySpecies], a hlcoord 7, 2 ld d, $0 ld e, ANIM_MON_TRADE predef AnimateFrontpic ret Function108229: ld [wCurPartySpecies], a hlcoord 7, 2 ld d, $0 ld e, ANIM_MON_TRADE predef LoadMonAnimation ret MobileTradeAnim_InitSpeciesName: push de ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, wStringBuffer1 pop de ld bc, MON_NAME_LENGTH call CopyBytes ret MobileTradeAnim_JumptableLoop: ld a, [wJumptableIndex] bit 7, a jr nz, .StopAnim call .ExecuteMobileTradeAnimCommand call DelayFrame and a ret .StopAnim: xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a call LoadStandardFont call LoadFontsBattleExtra farcall Stubbed_Function106462 farcall Function106464 scf ret .ExecuteMobileTradeAnimCommand: ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, .Jumptable add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp hl .Jumptable: dw GetMobileTradeAnimByte ; 00 dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01 dw MobileTradeAnim_02 ; 02 dw MobileTradeAnim_GiveTrademon1 ; 03 dw MobileTradeAnim_GiveTrademon2 ; 04 dw MobileTradeAnim_05 ; 05 dw MobileTradeAnim_06 ; 06 dw MobileTradeAnim_07 ; 07 dw MobileTradeAnim_GetTrademon1 ; 08 dw MobileTradeAnim_GetTrademon2 ; 09 dw MobileTradeAnim_GetTrademon3 ; 0a dw MobileTradeAnim_ShowOTMonFromTrade ; 0b dw EndMobileTradeAnim ; 0c dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d dw MobileTradeAnim_ShowOTMonFromGTS ; 0e dw MobileTradeAnim_0f ; 0f dw MobileTradeAnim_10 ; 10 dw MobileTradeAnim_11 ; 11 dw MobileTradeAnim_FadeToBlack ; 12 dw MobileTradeAnim_GetOddEgg ; 13 get odd egg MobileTradeAnim_Next: ld hl, wJumptableIndex inc [hl] ret GetMobileTradeAnimByte: ld hl, wTradeAnimAddress ld e, [hl] inc hl ld d, [hl] ld a, [de] ld [wJumptableIndex], a inc de ld [hl], d dec hl ld [hl], e ret EndMobileTradeAnim: ld hl, wJumptableIndex set 7, [hl] ret WaitMobileTradeSpriteAnims: .loop push bc farcall PlaySpriteAnimations pop bc call DelayFrame dec c jr nz, .loop ret Function1082db: .loop farcall PlaySpriteAnimations farcall SetUpPokeAnim farcall HDMATransferTileMapToWRAMBank3 jr nc, .loop ret Function1082f0: .loop call Function108b78 call DelayFrame dec c jr nz, .loop ret Function1082fa: .loop call Function108b78 push hl push bc farcall PlaySpriteAnimations pop bc pop hl call DelayFrame dec c jr nz, .loop ret MobileTradeAnim_ShowPlayerMonToBeSent: ld de, MUSIC_EVOLUTION call PlayMusic2 ld a, $80 ld [hSCX], a xor a ld [hSCY], a ld a, $87 ld [hWX], a ld a, $50 ld [hWY], a call MobileTradeAnim_DisplayMonToBeSent ld a, [wPlayerTrademonSpecies] ld [wCurPartySpecies], a call Function10895e ld a, [wPlayerTrademonDVs] ld [wTempMonDVs], a ld a, [wPlayerTrademonDVs + 1] ld [wTempMonDVs + 1], a ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS call GetSGBLayout ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals call WaitBGMap .loop ld a, [hWX] cp $7 jr z, .okay sub $4 ld [hWX], a ld a, [hSCX] sub $4 ld [hSCX], a call DelayFrame jr .loop .okay ld a, $7 ld [hWX], a xor a ld [hSCX], a ld a, [wPlayerTrademonSpecies] call GetCryIndex jr c, .skip_cry ld e, c ld d, b call PlayCry .skip_cry ld c, 80 call DelayFrames call Function108bec depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL call _InitSpriteAnimStruct ld de, SFX_BALL_POOF call PlaySFX hlcoord 0, 0 ld bc, 12 * SCREEN_WIDTH ld a, " " call ByteFill ld c, 80 call WaitMobileTradeSpriteAnims call GetMobileTradeAnimByte ret MobileTradeAnim_ShowOTMonFromTrade: call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD call MobileTradeAnim_ClearBGMap ld a, [wOTTrademonSpecies] ld [wCurPartySpecies], a ld hl, wOTTrademonDVs ld de, vTiles2 call Function108201 call EnableLCD farcall DeinitializeAllSprites xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL call _InitSpriteAnimStruct call Function108b45 ld a, $1 call Function108b98 call Function108af4 ld c, 48 call WaitMobileTradeSpriteAnims ld de, SFX_BALL_POOF call PlaySFX call MobileTradeAnim_DisplayReceivedMon xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $50 ld [hWY], a ld a, [wOTTrademonSpecies] ld [wCurPartySpecies], a ld a, [wOTTrademonDVs] ld [wTempMonDVs], a ld a, [wOTTrademonDVs + 1] ld [wTempMonDVs + 1], a ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS call GetSGBLayout ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals call Function108963 ld a, [wOTTrademonSpecies] call Function108229 call Function1082db call Function108c16 call GetMobileTradeAnimByte ret MobileTradeAnim_ShowPlayerMonForGTS: ld de, MUSIC_EVOLUTION call PlayMusic2 ld a, $80 ld [hSCX], a xor a ld [hSCY], a ld a, $87 ld [hWX], a ld a, $50 ld [hWY], a call MobileTradeAnim_DisplayMonToBeSent ld a, [wPlayerTrademonSpecies] ld [wCurPartySpecies], a ld hl, wPlayerTrademonDVs call Function10898a call DelayFrame ld de, TradeBallGFX ld hl, vTiles0 lb bc, BANK(TradeBallGFX), 6 call Request2bpp ld de, TradePoofGFX ld hl, vTiles0 tile $06 lb bc, BANK(TradePoofGFX), 12 call Request2bpp ld a, [wPlayerTrademonDVs] ld [wTempMonDVs], a ld a, [wPlayerTrademonDVs + 1] ld [wTempMonDVs + 1], a ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS call GetSGBLayout ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals call WaitBGMap .loop ld a, [hWX] cp $7 jr z, .done sub $4 ld [hWX], a ld a, [hSCX] sub $4 ld [hSCX], a call DelayFrame jr .loop .done ld a, $7 ld [hWX], a xor a ld [hSCX], a ld a, [wPlayerTrademonSpecies] call GetCryIndex jr c, .skip_cry ld e, c ld d, b call PlayCry .skip_cry ld c, 80 call DelayFrames call Function108c2b depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL call _InitSpriteAnimStruct ld de, SFX_BALL_POOF call PlaySFX hlcoord 0, 0 ld bc, 12 * SCREEN_WIDTH ld a, " " call ByteFill ld c, 80 call WaitMobileTradeSpriteAnims call GetMobileTradeAnimByte ret MobileTradeAnim_ShowOTMonFromGTS: call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD call MobileTradeAnim_ClearBGMap ld a, [wOTTrademonSpecies] ld [wCurPartySpecies], a ld hl, wOTTrademonDVs ld de, vTiles2 call Function108201 call EnableLCD farcall DeinitializeAllSprites call DelayFrame ld de, TradeBallGFX ld hl, vTiles0 lb bc, BANK(TradeBallGFX), 6 call Request2bpp ld de, TradePoofGFX ld hl, vTiles0 tile $06 lb bc, BANK(TradePoofGFX), 12 call Request2bpp xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL call _InitSpriteAnimStruct call Function108b45 ld a, $1 call Function108b98 call Function108af4 ld c, 48 call WaitMobileTradeSpriteAnims ld de, SFX_BALL_POOF call PlaySFX call MobileTradeAnim_DisplayReceivedMon xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $50 ld [hWY], a ld a, [wOTTrademonSpecies] ld [wCurPartySpecies], a ld a, [wOTTrademonDVs] ld [wTempMonDVs], a ld a, [wOTTrademonDVs + 1] ld [wTempMonDVs + 1], a ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS call GetSGBLayout ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals ld a, [wOTTrademonSpecies] ld hl, wOTTrademonDVs call Function10898a ld a, [wOTTrademonSpecies] call Function108229 call Function1082db call Function108c40 call GetMobileTradeAnimByte ret MobileTradeAnim_GetOddEgg: call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD call MobileTradeAnim_ClearBGMap ld a, [wOTTrademonSpecies] ld [wCurPartySpecies], a ld hl, wOTTrademonDVs ld de, vTiles2 call Function108201 call EnableLCD farcall DeinitializeAllSprites call DelayFrame ld de, TradeBallGFX ld hl, vTiles0 lb bc, BANK(TradeBallGFX), 6 call Request2bpp ld de, TradePoofGFX ld hl, vTiles0 tile $06 lb bc, BANK(TradePoofGFX), 12 call Request2bpp xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL call _InitSpriteAnimStruct call Function108b45 ld a, $1 call Function108b98 call Function108af4 ld c, 48 call WaitMobileTradeSpriteAnims ld de, SFX_BALL_POOF call PlaySFX call Function108a33 xor a ld [hSCX], a ld [hSCY], a ld a, $7 ld [hWX], a ld a, $50 ld [hWY], a ld a, [wOTTrademonSpecies] ld [wCurPartySpecies], a ld a, [wOTTrademonDVs] ld [wTempMonDVs], a ld a, [wOTTrademonDVs + 1] ld [wTempMonDVs + 1], a ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS call GetSGBLayout ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals ld a, [wOTTrademonSpecies] ld hl, wOTTrademonDVs call Function10898a ld a, [wOTTrademonSpecies] call Function108229 call Function1082db call GetMobileTradeAnimByte ret MobileTradeAnim_02: farcall DeinitializeAllSprites call ClearBGPalettes call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a call DisableLCD call MobileTradeAnim_ClearBGMap call Function108c80 call Function108c6d call EnableLCD ld a, $c ld [hSCX], a ld a, $78 ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, Palette_109107 ld de, wBGPals1 ld bc, 8 palettes call CopyBytes pop af ld [rSVBK], a call Function108d07 call Function108af4 call GetMobileTradeAnimByte ret MobileTradeAnim_10: farcall DeinitializeAllSprites call ClearBGPalettes call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a call DisableLCD call MobileTradeAnim_ClearBGMap ld a, $1 ld [rVBK], a ld hl, LZ_108da7 ld de, vTiles2 call Decompress ld a, $0 ld [rVBK], a ld hl, LZ_108d27 ld de, vTiles0 tile $20 call Decompress call Function108c80 call Function108c6d call EnableLCD ld a, $c ld [hSCX], a ld a, $78 ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, Palette_109107 ld de, wBGPals1 ld bc, 8 palettes call CopyBytes pop af ld [rSVBK], a call Function108d07 call Function108af4 call GetMobileTradeAnimByte ret MobileTradeAnim_11: call ClearBGPalettes call ClearSprites call ClearTileMap xor a ld [hBGMapMode], a call DisableLCD ld a, $1 ld [rVBK], a ld hl, LZ_108da7 ld de, vTiles2 call Decompress ld a, $0 ld [rVBK], a ld hl, LZ_108d27 ld de, vTiles0 tile $20 call Decompress call Function108c80 call Function108c6d call EnableLCD ld a, $80 ld [hSCX], a ld a, $90 ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 ld [hWY], a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, Palette_109107 ld de, wBGPals1 ld bc, 8 palettes call CopyBytes pop af ld [rSVBK], a call Function108d07 call Function108af4 call Function108b5a ld a, $e0 ld [hSCX], a ld de, MUSIC_EVOLUTION call PlayMusic2 call GetMobileTradeAnimByte ret MobileTradeAnim_GiveTrademon1: ld de, SFX_GIVE_TRADEMON call PlaySFX ld c, 40 ld hl, wBGPals2 palette 6 call Function1082f0 call Function108af4 .loop ld a, [hSCX] cp $e0 jr z, .loop2 dec a dec a ld [hSCX], a cp $f8 jr nz, .next depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_CABLE_BULGE call _InitSpriteAnimStruct .next ld c, 1 call WaitMobileTradeSpriteAnims jr .loop .loop2 ld a, [hSCY] cp $f8 jr z, .done dec a dec a ld [hSCY], a cp $40 jr z, .init cp $30 jr z, .delete cp $68 jr z, .replace jr .next2 .init depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_CABLE_BULGE call _InitSpriteAnimStruct xor a call Function108ad4 jr .next2 .delete call MobileTradeAnim_DeleteSprites jr .next2 .replace call MobileTradeAnim_DeleteSprites ld a, $1 call Function108ad4 .next2 ld c, 1 call WaitMobileTradeSpriteAnims jr .loop2 .done call MobileTradeAnim_Next ret MobileTradeAnim_GiveTrademon2: ld c, 40 ld hl, wBGPals2 + 1 palettes call Function1082f0 call Function108af4 call Function108b5a depixel 9, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_PING call _InitSpriteAnimStruct ld de, SFX_FORESIGHT call PlaySFX ld c, 10 call WaitMobileTradeSpriteAnims xor a ld [wcf64], a depixel 9, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_PULSE call _InitSpriteAnimStruct .loop ld a, [hSCY] cp $90 jr z, .done sub $8 ld [hSCY], a ld c, 1 call WaitMobileTradeSpriteAnims jr .loop .done call GetMobileTradeAnimByte ret MobileTradeAnim_05: ld c, 40 call WaitMobileTradeSpriteAnims ld a, $1 ld [wcf64], a ld de, SFX_SHARPEN call PlaySFX ld c, 60 call WaitMobileTradeSpriteAnims depixel 30, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_PULSE call _InitSpriteAnimStruct call GetMobileTradeAnimByte ld de, SFX_THROW_BALL call PlaySFX ret MobileTradeAnim_06: ld c, 40 call WaitMobileTradeSpriteAnims ld a, $1 ld [wcf64], a ld de, SFX_SHARPEN call PlaySFX call GetMobileTradeAnimByte ret MobileTradeAnim_07: ld c, 80 call DelayFrames depixel 30, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_PULSE call _InitSpriteAnimStruct call GetMobileTradeAnimByte ld de, SFX_THROW_BALL call PlaySFX ret MobileTradeAnim_GetTrademon1: ld c, 40 call WaitMobileTradeSpriteAnims .loop ld a, [hSCY] cp $f8 jr z, .done add $8 ld [hSCY], a ld c, 1 call WaitMobileTradeSpriteAnims jr .loop .done farcall DeinitializeAllSprites depixel 9, 10, 2, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_PING call _InitSpriteAnimStruct ld de, SFX_GLASS_TING_2 call PlaySFX call Function108af4 call MobileTradeAnim_Next ret MobileTradeAnim_GetTrademon2: ld c, 20 ld hl, wBGPals2 + 1 palettes call Function1082fa ld de, SFX_GIVE_TRADEMON call PlaySFX ld c, 20 ld hl, wBGPals2 + 1 palettes call Function1082fa call Function108af4 .asm_1088ad ld a, [hSCY] cp $78 jr z, .asm_1088ee inc a inc a ld [hSCY], a cp $30 jr z, .asm_1088c5 cp $40 jr z, .asm_1088dd cp $68 jr z, .asm_1088cf jr .asm_1088e7 .asm_1088c5 depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_CABLE_BULGE call _InitSpriteAnimStruct jr .asm_1088e7 .asm_1088cf depixel 10, 11, 4, 0 ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_CABLE_BULGE call _InitSpriteAnimStruct xor a call Function108ad4 jr .asm_1088e7 .asm_1088dd call MobileTradeAnim_DeleteSprites ld a, $1 call Function108ad4 jr .asm_1088e7 .asm_1088e7 ld c, 1 call WaitMobileTradeSpriteAnims jr .asm_1088ad .asm_1088ee ld a, [hSCX] cp $c jr z, .asm_108906 inc a inc a ld [hSCX], a cp -8 jr nz, .asm_1088e7 call MobileTradeAnim_DeleteSprites ld c, 1 call WaitMobileTradeSpriteAnims jr .asm_1088ee .asm_108906 call MobileTradeAnim_Next ret MobileTradeAnim_GetTrademon3: ld c, 40 ld hl, wBGPals2 palette 6 call Function1082f0 call Function108af4 call GetMobileTradeAnimByte ret MobileTradeAnim_0f: ld c, 40 call WaitMobileTradeSpriteAnims farcall DeinitializeAllSprites call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD call MobileTradeAnim_ClearTiles call MobileTradeAnim_ClearBGMap call EnableLCD call GetMobileTradeAnimByte ret MobileTradeAnim_FadeToBlack: .loop ld a, [rBGP] and a jr z, .blank sla a sla a call DmgToCgbBGPals call DmgToCgbObjPal0 ld c, 4 call DelayFrames jr .loop .blank xor a call DmgToCgbBGPals call DmgToCgbObjPal0 call GetMobileTradeAnimByte ret Function10895e: ld de, vTiles0 tile $30 jr asm_108966 Function108963: ld de, vTiles2 tile $31 asm_108966 call DelayFrame ld hl, vTiles2 lb bc, $a, $31 ; $a is the bank of ????? call Request2bpp call WaitTop call MobileTradeAnim_ClearTilemap hlcoord 7, 2 xor a ld [hGraphicStartTile], a lb bc, 7, 7 predef PlaceGraphic call WaitBGMap ret Function10898a: ld de, vTiles2 call MobileTradeAnim_GetFrontpic call WaitTop call MobileTradeAnim_ClearTilemap hlcoord 7, 2 xor a ld [hGraphicStartTile], a lb bc, 7, 7 predef PlaceGraphic call WaitBGMap ret MobileTradeAnim_DisplayMonToBeSent: ld de, wPlayerTrademonSpecies ld a, [de] cp EGG jr z, MobileTradeAnim_DisplayEggData call MobileTradeAnim_LoadMonTemplate ld de, wPlayerTrademonSpecies call MobileTradeAnim_MonDisplay_PrintSpeciesNumber ld de, wPlayerTrademonSpeciesName call MobileTradeAnim_MonDisplay_PrintSpeciesName ld a, [wPlayerTrademonCaughtData] ld de, wPlayerTrademonOTName call MobileTradeAnim_MonDisplay_PrintOTNameAndGender ld de, wPlayerTrademonID call MobileTradeAnim_MonDisplay_PrintIDNumber call MobileTradeAnim_MonDisplay_UpdateBGMap ret MobileTradeAnim_DisplayReceivedMon: ld de, wOTTrademonSpecies ld a, [de] cp EGG jr z, MobileTradeAnim_DisplayEggData call MobileTradeAnim_LoadMonTemplate ld de, wOTTrademonSpecies call MobileTradeAnim_MonDisplay_PrintSpeciesNumber ld de, wOTTrademonSpeciesName call MobileTradeAnim_MonDisplay_PrintSpeciesName ld a, [wOTTrademonCaughtData] ld de, wOTTrademonOTName call MobileTradeAnim_MonDisplay_PrintOTNameAndGender ld de, wOTTrademonID call MobileTradeAnim_MonDisplay_PrintIDNumber call MobileTradeAnim_MonDisplay_UpdateBGMap ret MobileTradeAnim_DisplayEggData: call WaitTop call MobileTradeAnim_ClearTilemap ld a, HIGH(vBGMap1) ld [hBGMapAddress + 1], a hlcoord 5, 0 ld b, 6 ld c, 9 call TextBox hlcoord 6, 2 ld de, .EggTemplate call PlaceString call MobileTradeAnim_MonDisplay_UpdateBGMap ret .EggTemplate: db "タマゴ" next "おや/?????" next "<ID>№<DOT>?????" db "@" Function108a33: call WaitTop call MobileTradeAnim_ClearTilemap ld a, HIGH(vBGMap1) ld [hBGMapAddress + 1], a hlcoord 5, 0 ld b, 6 ld c, 9 call TextBox hlcoord 7, 4 ld de, .OddEgg call PlaceString call MobileTradeAnim_MonDisplay_UpdateBGMap ret .OddEgg: db "なぞのタマゴ@" MobileTradeAnim_LoadMonTemplate: call WaitTop call MobileTradeAnim_ClearTilemap ld a, HIGH(vBGMap1) ld [hBGMapAddress + 1], a hlcoord 4, 0 ld b, 6 ld c, 10 call TextBox hlcoord 5, 0 ld de, .MonTemplate call PlaceString ret .MonTemplate: db "─ №<DOT>" next "" next "おや/" next "<ID>№<DOT>" db "@" MobileTradeAnim_MonDisplay_UpdateBGMap: call WaitBGMap call WaitTop ld a, HIGH(vBGMap0) ld [hBGMapAddress + 1], a ret MobileTradeAnim_MonDisplay_PrintSpeciesNumber: hlcoord 9, 0 lb bc, PRINTNUM_LEADINGZEROS | 1, 3 call PrintNum ret MobileTradeAnim_MonDisplay_PrintSpeciesName: hlcoord 5, 2 call PlaceString ret MobileTradeAnim_MonDisplay_PrintOTNameAndGender: cp $3 jr c, .got_gender xor a .got_gender push af hlcoord 8, 4 call PlaceString inc bc pop af ld hl, .GenderChars ld d, 0 ld e, a add hl, de ld a, [hl] ld [bc], a ret .GenderChars: db " " db "♂" db "♀" MobileTradeAnim_MonDisplay_PrintIDNumber: hlcoord 8, 6 lb bc, PRINTNUM_LEADINGZEROS | 2, 5 call PrintNum ret MobileTradeAnim_ClearTilemap: hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, " " call ByteFill ret Function108ad4: and a jr z, .asm_108adc ld de, GFX_1092c7 jr .asm_108adf .asm_108adc ld de, GFX_1091c7 .asm_108adf ld a, $1 ld [rVBK], a ld hl, vTiles2 tile $4a lb bc, BANK(GFX_1092c7), 16 call Get2bpp_2 call DelayFrame ld a, $0 ld [rVBK], a ret Function108af4: ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, [wcf65] and $1 jr z, .copy_palette_109147 ld hl, Palette_109187 ld de, wOBPals1 ld bc, 8 palettes call CopyBytes ld hl, Palette_109187 ld de, wOBPals2 ld bc, 8 palettes call CopyBytes jr .done_copy .copy_palette_109147 ld hl, Palette_109147 ld de, wOBPals1 ld bc, 8 palettes call CopyBytes ld hl, Palette_109147 ld de, wOBPals2 ld bc, 8 palettes call CopyBytes .done_copy pop af ld [rSVBK], a ld a, %11100100 ; 3,2,1,0 call DmgToCgbObjPal0 ld a, %11100100 ; 3,2,1,0 call DmgToCgbBGPals call DelayFrame ret Function108b45: ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld de, PALRGB_WHITE ld hl, wBGPals1 ld a, e ld [hli], a ld d, a ld [hli], a pop af ld [rSVBK], a ret Function108b5a: ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld de, palred 18 + palgreen 31 + palblue 15 ld hl, wBGPals2 + 4 palettes ld c, $10 .loop ld a, e ld [hli], a ld a, d ld [hli], a dec c jr nz, .loop pop af ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a ret Function108b78: ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, c and $2 jr z, .Orange ld de, PALRGB_WHITE jr .load_pal .Orange: ld de, palred 31 + palgreen 15 + palblue 1 .load_pal ld a, e ld [hli], a ld a, d ld [hld], a pop af ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a ret Palette_108b98: ; removed Function108b98: ld d, a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld a, [wcf65] and $1 xor d jr z, .asm_108bad ld hl, Palette_108b98 + 1 palettes jr .asm_108bb0 .asm_108bad ld hl, Palette_108b98 .asm_108bb0 ld de, wBGPals1 + 7 palettes ld bc, 8 palettes call CopyBytes pop af ld [rSVBK], a ret MobileTradeAnim_DeleteSprites: farcall DeinitializeAllSprites call ClearSprites ret Function108bc7: ld a, [wcf64] and a ret z ld hl, SPRITEANIMSTRUCT_YCOORD add hl, bc ld a, [hl] cp -1 * 8 - 6 jr z, .delete sub 1 * 8 ld [hl], a ret .delete farcall DeinitializeSprite ret Function108be0: ld hl, SPRITEANIMSTRUCT_YCOORD add hl, bc ld a, [hl] cp 9 * 8 + 2 ret z add 1 * 8 ld [hl], a ret Function108bec: ld a, $90 ld [hWY], a ld hl, .PlayerWillTradeMon call PrintText ld c, 80 call DelayFrames ld hl, .ForPartnersMon call PrintText ld c, 80 call DelayFrames ret .PlayerWillTradeMon: text_jump UnknownText_0x1bc787 db "@" .ForPartnersMon: text_jump UnknownText_0x1bc79d db "@" .UnusedTextPlayersMonTrade: text_jump UnknownText_0x1bc7b0 db "@" Function108c16: ld a, $90 ld [hWY], a ld hl, .TakeGoodCareOfMon call PrintText ld c, 80 call DelayFrames ret .TakeGoodCareOfMon: text_jump UnknownText_0x1bc7c3 db "@" Function108c2b: ld a, $90 ld [hWY], a ld hl, .PlayersMonTrade call PrintText ld c, 80 call DelayFrames ret .PlayersMonTrade: text_jump UnknownText_0x1bc7dd db "@" Function108c40: ld a, $90 ld [hWY], a ld a, [wcf65] and %10000000 jr z, .Getmon ld hl, .CameBack call PrintText ld c, 80 call DelayFrames ret .Getmon: ld hl, .TakeGoodCareOf call PrintText ld c, 80 call DelayFrames ret .TakeGoodCareOf: text_jump UnknownText_0x1bc7f0 db "@" .CameBack: text_jump UnknownText_0x1bc80a db "@" Function108c6d: ld hl, LZ_108fe7 debgcoord 0, 0 call Decompress ld hl, LZ_108fe7 debgcoord 0, 0, vBGMap1 call Decompress ret Function108c80: ld a, $1 ld [rVBK], a ld hl, LZ_1090a7 debgcoord 0, 0 call Decompress ld hl, LZ_1090a7 debgcoord 0, 0, vBGMap1 call Decompress ld a, $0 ld [rVBK], a ret DebugMobileTrade: ; localization error: NAME_LENGTH (11) should be NAME_LENGTH_JAPANESE (6) here ld hl, .DebugTradeData ld a, [hli] ld [wPlayerTrademonSpecies], a ld de, wPlayerTrademonSenderName ld c, NAME_LENGTH .your_name_loop ld a, [hli] ld [de], a inc de dec c jr nz, .your_name_loop ld de, wPlayerTrademonID ld c, 2 .your_id_loop ld a, [hli] ld [de], a inc de dec c jr nz, .your_id_loop ld de, wPlayerTrademonOTName ld c, NAME_LENGTH .your_ot_loop ld a, [hli] ld [de], a inc de dec c jr nz, .your_ot_loop ld a, [hli] ld [wOTTrademonSpecies], a ld de, wOTTrademonSenderName ld c, NAME_LENGTH .their_name_loop ld a, [hli] ld [de], a inc de dec c jr nz, .their_name_loop ld de, wOTTrademonID ld c, 2 .their_id_loop ld a, [hli] ld [de], a inc de dec c jr nz, .their_id_loop ld de, wOTTrademonOTName ld c, NAME_LENGTH .their_ot_loop ld a, [hli] ld [de], a inc de dec c jr nz, .their_ot_loop ret .DebugTradeData: db VENUSAUR db "ゲーフり@@" dw $0123 db "かびーん@@" db CHARIZARD db "クりーチャ@" dw $0456 db "マツミヤ@@" Function108d07: ld a, [wc74e] and $7f cp $8 jr c, .asm_108d12 ld a, $7 .asm_108d12 ld bc, 1 palettes ld hl, Palette_1093c7 call AddNTimes ld a, $5 ld de, wBGPals1 + 4 palettes ld bc, 1 palettes call FarCopyWRAM ret LZ_108d27: INCBIN "gfx/unknown/108d27.2bpp.lz" LZ_108da7: INCBIN "gfx/unknown/108da7.2bpp.lz" LZ_108fe7: INCBIN "gfx/unknown/108fe7.tilemap.lz" LZ_1090a7: INCBIN "gfx/unknown/1090a7.tilemap.lz" Palette_1090f7: ; unused RGB 31, 31, 31 RGB 00, 00, 00 RGB 31, 00, 25 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 09, 19, 31 RGB 00, 00, 00 Palette_109107: RGB 18, 31, 15 RGB 20, 20, 20 RGB 11, 11, 11 RGB 00, 00, 00 RGB 31, 15, 1 RGB 14, 14, 31 RGB 12, 09, 31 RGB 00, 00, 00 RGB 18, 31, 15 RGB 14, 14, 31 RGB 12, 09, 31 RGB 00, 00, 00 RGB 18, 31, 15 RGB 20, 20, 20 RGB 11, 11, 11 RGB 00, 00, 00 RGB 18, 31, 15 RGB 31, 07, 09 RGB 18, 00, 01 RGB 00, 00, 00 RGB 18, 31, 15 RGB 20, 20, 20 RGB 11, 11, 11 RGB 00, 00, 00 RGB 31, 15, 1 RGB 18, 00, 30 RGB 09, 00, 17 RGB 00, 00, 00 RGB 18, 31, 15 RGB 18, 00, 30 RGB 09, 00, 17 RGB 00, 00, 00 Palette_109147: RGB 31, 31, 31 RGB 31, 31, 12 RGB 31, 13, 12 RGB 00, 00, 00 RGB 31, 31, 31 RGB 31, 23, 15 RGB 31, 18, 07 RGB 31, 15, 00 RGB 31, 31, 31 RGB 20, 20, 20 RGB 11, 11, 11 RGB 00, 00, 00 RGB 31, 31, 31 RGB 31, 00, 25 RGB 31, 00, 25 RGB 00, 00, 00 RGB 31, 31, 31 RGB 09, 19, 31 RGB 09, 19, 31 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 Palette_109187: RGB 31, 31, 31 RGB 31, 31, 12 RGB 31, 13, 12 RGB 00, 00, 00 RGB 31, 31, 31 RGB 31, 23, 15 RGB 31, 18, 07 RGB 31, 15, 00 RGB 31, 31, 31 RGB 20, 20, 20 RGB 11, 11, 11 RGB 00, 00, 00 RGB 31, 31, 31 RGB 09, 19, 31 RGB 09, 19, 31 RGB 00, 00, 00 RGB 31, 31, 31 RGB 31, 00, 25 RGB 31, 00, 25 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 GFX_1091c7: INCBIN "gfx/unknown/1091c7.2bpp" GFX_1092c7: INCBIN "gfx/unknown/1092c7.2bpp" Palette_1093c7: RGB 18, 31, 15 RGB 04, 13, 31 RGB 00, 00, 31 RGB 00, 00, 00 RGB 18, 31, 15 RGB 31, 31, 00 RGB 31, 15, 00 RGB 00, 00, 00 RGB 18, 31, 15 RGB 09, 24, 00 RGB 02, 16, 00 RGB 00, 00, 00 RGB 18, 31, 15 RGB 31, 07, 09 RGB 18, 00, 01 RGB 00, 00, 00 RGB 18, 31, 15 RGB 28, 05, 31 RGB 17, 00, 17 RGB 00, 00, 00 RGB 18, 31, 15 RGB 09, 09, 09 RGB 04, 04, 04 RGB 00, 00, 00 RGB 18, 31, 15 RGB 31, 13, 21 RGB 27, 07, 12 RGB 00, 00, 00 RGB 18, 31, 15 RGB 21, 20, 20 RGB 14, 14, 31 RGB 00, 00, 00