pokered/engine/trade.asm

756 lines
12 KiB
NASM
Raw Normal View History

2014-05-22 22:13:20 +00:00
Func_410e2: ; 410e2 (10:50e2)
2015-02-07 10:43:08 +00:00
ld a, [wTradedPlayerMonSpecies]
ld [wcd5e], a
2015-02-07 10:43:08 +00:00
ld a, [wTradedEnemyMonSpecies]
ld [wcd5f], a
2015-02-07 10:43:08 +00:00
ld de, PointerIDs_41138
2014-05-22 22:13:20 +00:00
jr Func_41102
Func_410f3: ; 410f3 (10:50f3)
2015-02-07 10:43:08 +00:00
ld a, [wTradedEnemyMonSpecies]
ld [wcd5e], a
2014-05-22 22:13:20 +00:00
ld a, [wTrainerSpriteOffset]
ld [wcd5f], a
2014-05-22 22:13:20 +00:00
ld de, PointerIDs_41149
Func_41102: ; 41102 (10:5102)
2015-02-07 10:43:08 +00:00
ld a, [W_OPTIONS]
2014-05-22 22:13:20 +00:00
push af
2015-02-07 10:43:08 +00:00
ld a, [hSCY]
2014-05-22 22:13:20 +00:00
push af
2015-02-07 10:43:08 +00:00
ld a, [hSCX]
2014-05-22 22:13:20 +00:00
push af
xor a
2015-02-07 10:43:08 +00:00
ld [W_OPTIONS], a
ld [hSCY], a
ld [hSCX], a
2014-05-22 22:13:20 +00:00
push de
.asm_41115
pop de
ld a, [de]
cp $ff
jr z, .asm_4112d
inc de
push de
2015-02-07 10:43:08 +00:00
ld hl, PointerTable_4115f
2014-05-22 22:13:20 +00:00
add a
ld c, a
ld b, $0
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
2015-02-07 10:43:08 +00:00
ld de, .asm_41115
2014-05-22 22:13:20 +00:00
push de
jp [hl]
.asm_4112d
pop af
2015-02-07 10:43:08 +00:00
ld [hSCX], a
2014-05-22 22:13:20 +00:00
pop af
2015-02-07 10:43:08 +00:00
ld [hSCY], a
2014-05-22 22:13:20 +00:00
pop af
2015-02-07 10:43:08 +00:00
ld [W_OPTIONS], a
2014-05-22 22:13:20 +00:00
ret
; these bytes refer to the $00th through $10th pointer of PointerTable_4115f
PointerIDs_41138: ; 41138 (10:5138)
db $00,$01,$02,$03,$05,$07,$08,$09,$0A,$0B,$06,$08,$02,$04,$07,$0E,$FF
PointerIDs_41149: ; 41149 (10:5149)
db $00,$08,$0D,$0B,$10,$05,$10,$08,$02,$04,$0F,$01,$02,$03,$10,$06,$10,$07,$08,$09,$0E,$FF
PointerTable_4115f: ; 4115f (10:515f)
dw LoadTradingGFXAndMonNames
2015-02-07 10:43:08 +00:00
dw Trade_ShowPlayerMon
dw Trade_DrawOpenEndOfLinkCable
dw Trade_AnimateBallEnteringLinkCable
dw Trade_ShowEnemyMon
2014-05-22 22:13:20 +00:00
dw Func_41376
dw Func_413c6
2015-02-07 10:43:08 +00:00
dw Trade_Delay100
2014-05-22 22:13:20 +00:00
dw Func_415c8
dw PrintTradeWentToText
dw PrintTradeForSendsText
dw PrintTradeFarewellText
dw PrintTradeTakeCareText
dw PrintTradeWillTradeText
dw Func_4123b
dw Func_415df
2015-02-07 10:43:08 +00:00
dw Trade_SwapNames
2014-05-22 22:13:20 +00:00
2015-02-07 10:43:08 +00:00
Trade_Delay100: ; 41181 (10:5181)
ld c, 100
2014-05-22 22:13:20 +00:00
jp DelayFrames
2015-02-07 10:43:08 +00:00
Trade_CopyTileMapToVRAM: ; 41186 (10:5186)
2014-05-22 22:13:20 +00:00
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call Delay3
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
ret
2015-02-07 10:43:08 +00:00
Trade_Delay80: ; 41191 (10:5191)
ld c, 80
2014-05-22 22:13:20 +00:00
jp DelayFrames
2015-02-07 10:43:08 +00:00
Trade_ClearTileMap: ; 41196 (10:5196)
2014-05-22 22:13:20 +00:00
ld hl, wTileMap
2015-02-07 10:43:08 +00:00
ld bc, 20 * 18
ld a, " "
2014-05-22 22:13:20 +00:00
jp FillMemory
LoadTradingGFXAndMonNames: ; 411a1 (10:51a1)
2015-02-07 10:43:08 +00:00
call Trade_ClearTileMap
2014-05-22 22:13:20 +00:00
call DisableLCD
2015-02-07 10:43:08 +00:00
ld hl, TradingAnimationGraphics
2014-05-29 08:31:46 +00:00
ld de, vChars2 + $310
2014-05-22 22:13:20 +00:00
ld bc, $310
ld a, BANK(TradingAnimationGraphics)
call FarCopyData2
2015-02-07 10:43:08 +00:00
ld hl, TradingAnimationGraphics2
2014-05-29 08:31:46 +00:00
ld de, vSprites + $7c0
2014-05-22 22:13:20 +00:00
ld bc, $40
ld a, BANK(TradingAnimationGraphics2)
call FarCopyData2
2014-05-29 08:31:46 +00:00
ld hl, vBGMap0
2014-05-22 22:13:20 +00:00
ld bc, $800
2015-02-07 10:43:08 +00:00
ld a, " "
2014-05-22 22:13:20 +00:00
call FillMemory
2014-05-23 22:34:35 +00:00
call ClearSprites
2014-05-22 22:13:20 +00:00
ld a, $ff
2014-09-13 07:50:56 +00:00
ld [wUpdateSpritesEnabled], a
ld hl, wd730
2014-05-22 22:13:20 +00:00
set 6, [hl]
2014-09-13 07:50:56 +00:00
ld a, [wOnSGB]
2014-05-22 22:13:20 +00:00
and a
ld a, $e4
jr z, .asm_411e5
ld a, $f0
.asm_411e5
2015-02-07 10:43:08 +00:00
ld [rOBP0], a
2014-05-22 22:13:20 +00:00
call EnableLCD
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wTradedPlayerMonSpecies]
ld [wd11e], a
2014-05-22 22:13:20 +00:00
call GetMonName
ld hl, wcd6d
ld de, wcf4b
2014-05-22 22:13:20 +00:00
ld bc, $b
call CopyData
2015-02-07 10:43:08 +00:00
ld a, [wTradedEnemyMonSpecies]
ld [wd11e], a
2014-05-22 22:13:20 +00:00
jp GetMonName
Func_4120b: ; 4120b (10:520b)
2015-02-07 10:43:08 +00:00
ld a, %11010000
ld [rOBP1], a
2015-03-13 12:33:16 +00:00
ld b, BANK(LoadMonPartySpriteTilePatterns)
ld hl, LoadMonPartySpriteTilePatterns
2014-05-22 22:13:20 +00:00
jp Bankswitch
2015-02-07 10:43:08 +00:00
Trade_SwapNames: ; 41217 (10:5217)
ld hl, wPlayerName
2015-02-07 10:43:08 +00:00
ld de, wBuffer
ld bc, 11
2014-05-22 22:13:20 +00:00
call CopyData
2015-02-07 10:43:08 +00:00
ld hl, wLinkEnemyTrainerName
ld de, wPlayerName
2015-02-07 10:43:08 +00:00
ld bc, 11
2014-05-22 22:13:20 +00:00
call CopyData
2015-02-07 10:43:08 +00:00
ld hl, wBuffer
ld de, wLinkEnemyTrainerName
ld bc, 11
2014-05-22 22:13:20 +00:00
jp CopyData
Func_4123b: ; 4123b (10:523b)
xor a
call LoadGBPal
ld hl, wd730
2014-05-22 22:13:20 +00:00
res 6, [hl]
ret
2015-02-07 10:43:08 +00:00
Trade_ShowPlayerMon: ; 41245 (10:5245)
ld a, %10101011
ld [rLCDC], a
2014-05-22 22:13:20 +00:00
ld a, $50
2014-09-23 22:02:03 +00:00
ld [hWY], a
2014-05-22 22:13:20 +00:00
ld a, $86
2015-02-07 10:43:08 +00:00
ld [rWX], a
ld [hSCX], a
2014-05-22 22:13:20 +00:00
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
hlCoord 4, 0
2015-02-07 10:43:08 +00:00
ld b, 6
ld c, 10
2014-05-22 22:13:20 +00:00
call TextBoxBorder
2015-02-07 10:43:08 +00:00
call Trade_PrintPlayerMonInfoText
2014-05-22 22:13:20 +00:00
ld b, $98
call CopyScreenTileBufferToVRAM
call ClearScreen
2015-02-07 10:43:08 +00:00
ld a, [wTradedPlayerMonSpecies]
call Trade_LoadMonSprite
2014-05-22 22:13:20 +00:00
ld a, $7e
2015-02-07 10:43:08 +00:00
.slideScreenLoop
2014-05-22 22:13:20 +00:00
push af
call DelayFrame
pop af
2015-02-07 10:43:08 +00:00
ld [rWX], a
ld [hSCX], a
2014-05-22 22:13:20 +00:00
dec a
dec a
and a
2015-02-07 10:43:08 +00:00
jr nz, .slideScreenLoop
call Trade_Delay80
ld a, TRADE_BALL_POOF_ANIM
call Trade_ShowAnimation
ld a, TRADE_BALL_DROP_ANIM
call Trade_ShowAnimation
ld a, [wTradedPlayerMonSpecies]
2014-05-22 22:13:20 +00:00
call PlayCry
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
ret
2015-02-07 10:43:08 +00:00
Trade_DrawOpenEndOfLinkCable: ; 41298 (10:5298)
call Trade_ClearTileMap
2014-05-22 22:13:20 +00:00
ld b, $98
call CopyScreenTileBufferToVRAM
ld b, $8
call GoPAL_SET
2014-05-29 08:31:46 +00:00
ld hl, vBGMap1 + $8c
2015-02-07 10:43:08 +00:00
call Trade_RedrawRows4And5
2014-05-22 22:13:20 +00:00
ld a, $a0
2015-02-07 10:43:08 +00:00
ld [hSCX], a
2014-05-22 22:13:20 +00:00
call DelayFrame
2015-02-07 10:43:08 +00:00
ld a, %10001011
ld [rLCDC], a
hlCoord 6, 2
2015-02-07 10:43:08 +00:00
ld b, $7 ; open end of link cable tile ID list index
call CopyTileIDsFromList_ZeroBaseTileID
call Trade_CopyTileMapToVRAM
2014-05-22 22:13:20 +00:00
ld a, (SFX_02_3d - SFX_Headers_02) / 3
call PlaySound
2015-02-07 10:43:08 +00:00
ld c, 20
.loop
ld a, [hSCX]
add 4
ld [hSCX], a
2014-05-22 22:13:20 +00:00
dec c
2015-02-07 10:43:08 +00:00
jr nz, .loop
2014-05-22 22:13:20 +00:00
ret
2015-02-07 10:43:08 +00:00
Trade_AnimateBallEnteringLinkCable: ; 412d2 (10:52d2)
ld a, TRADE_BALL_SHAKE_ANIM
call Trade_ShowAnimation
ld c, 10
2014-05-22 22:13:20 +00:00
call DelayFrames
2015-02-07 10:43:08 +00:00
ld a, %11100100
ld [rOBP0], a
2014-05-22 22:13:20 +00:00
xor a
ld [wd09f], a
2014-05-22 22:13:20 +00:00
ld bc, $2060
2015-02-07 10:43:08 +00:00
.moveBallInsideLinkCableLoop
2014-05-22 22:13:20 +00:00
push bc
xor a
2015-02-07 10:43:08 +00:00
ld de, Trade_BallInsideLinkCableOAM
2014-05-22 22:13:20 +00:00
call WriteOAMBlock
ld a, [wd09f]
2014-05-22 22:13:20 +00:00
xor $1
ld [wd09f], a
2014-05-22 22:13:20 +00:00
add $7e
ld hl, wOAMBuffer + $02
2014-05-22 22:13:20 +00:00
ld de, $4
ld c, e
2015-02-07 10:43:08 +00:00
.cycleSpriteFramesLoop
2014-05-22 22:13:20 +00:00
ld [hl], a
add hl, de
dec c
2015-02-07 10:43:08 +00:00
jr nz, .cycleSpriteFramesLoop
2014-05-22 22:13:20 +00:00
call Delay3
pop bc
ld a, c
add $4
ld c, a
cp $a0
2015-02-07 10:43:08 +00:00
jr nc, .ballSpriteReachedEdgeOfScreen
2014-05-22 22:13:20 +00:00
ld a, (SFX_02_3c - SFX_Headers_02) / 3
call PlaySound
2015-02-07 10:43:08 +00:00
jr .moveBallInsideLinkCableLoop
.ballSpriteReachedEdgeOfScreen
2014-05-23 22:34:35 +00:00
call ClearSprites
2014-05-22 22:13:20 +00:00
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call ClearScreen
ld b, $98
call CopyScreenTileBufferToVRAM
call Delay3
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
ret
2015-02-07 10:43:08 +00:00
Trade_BallInsideLinkCableOAM: ; 4132e (10:532e)
2014-05-22 22:13:20 +00:00
db $7E,$00,$7E,$20
db $7E,$40,$7E,$60
2015-02-07 10:43:08 +00:00
Trade_ShowEnemyMon: ; 41336 (10:5336)
ld a, TRADE_BALL_TILT_ANIM
call Trade_ShowAnimation
2014-05-22 22:13:20 +00:00
call Func_415c8
hlCoord 4, 10
2015-02-07 10:43:08 +00:00
ld b, 6
ld c, 10
2014-05-22 22:13:20 +00:00
call TextBoxBorder
2015-02-07 10:43:08 +00:00
call Trade_PrintEnemyMonInfoText
call Trade_CopyTileMapToVRAM
2014-05-22 22:13:20 +00:00
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wTradedEnemyMonSpecies]
call Trade_LoadMonSprite
ld a, TRADE_BALL_POOF_ANIM
call Trade_ShowAnimation
2014-05-22 22:13:20 +00:00
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wTradedEnemyMonSpecies]
2014-05-22 22:13:20 +00:00
call PlayCry
2015-02-07 10:43:08 +00:00
call Trade_Delay100
hlCoord 4, 10
2014-05-22 22:13:20 +00:00
ld bc, $80c
call ClearScreenArea
jp PrintTradeTakeCareText
Func_41376: ; 41376 (10:5376)
call Func_41411
ld a, $1
ld [wd08a], a
2014-05-22 22:13:20 +00:00
ld a, $e4
2015-02-07 10:43:08 +00:00
ld [rOBP0], a
2014-05-22 22:13:20 +00:00
ld a, $54
2015-02-07 10:43:08 +00:00
ld [W_BASECOORDX], a
2014-05-22 22:13:20 +00:00
ld a, $1c
2015-02-07 10:43:08 +00:00
ld [W_BASECOORDY], a
ld a, [wcd5e]
ld [wcd5d], a
2014-05-22 22:13:20 +00:00
call Func_41505
call Func_4142d
2015-02-07 10:43:08 +00:00
call Trade_CopyTileMapToVRAM
2014-05-22 22:13:20 +00:00
call Func_4149f
2014-05-29 08:31:46 +00:00
ld hl, vBGMap1 + $8c
2015-02-07 10:43:08 +00:00
call Trade_RedrawRows4And5
2014-05-22 22:13:20 +00:00
ld b, $6
call Func_414c5
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call Func_4149f
ld b, $4
call Func_414c5
call Func_4145c
ld b, $6
call Func_414c5
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call Func_41525
2014-05-23 22:34:35 +00:00
jp ClearSprites
2014-05-22 22:13:20 +00:00
Func_413c6: ; 413c6 (10:53c6)
call Func_41411
xor a
ld [wd08a], a
2014-05-22 22:13:20 +00:00
ld a, $64
2015-02-07 10:43:08 +00:00
ld [W_BASECOORDX], a
2014-05-22 22:13:20 +00:00
ld a, $44
2015-02-07 10:43:08 +00:00
ld [W_BASECOORDY], a
ld a, [wcd5f]
ld [wcd5d], a
2014-05-22 22:13:20 +00:00
call Func_41505
call Func_4145c
2015-02-07 10:43:08 +00:00
call Trade_CopyTileMapToVRAM
2014-05-22 22:13:20 +00:00
call Func_4149f
2014-05-29 08:31:46 +00:00
ld hl, vBGMap1 + $94
2015-02-07 10:43:08 +00:00
call Trade_RedrawRows4And5
2014-05-22 22:13:20 +00:00
call Func_41525
ld b, $6
call Func_414c5
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call Func_4149f
ld b, $4
call Func_414c5
call Func_4142d
ld b, $6
call Func_414c5
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-23 22:34:35 +00:00
jp ClearSprites
2014-05-22 22:13:20 +00:00
Func_41411: ; 41411 (10:5411)
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call ClearScreen
xor a
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call Func_4120b
call DelayFrame
2015-02-07 10:43:08 +00:00
ld a, %10101011
ld [rLCDC], a
2014-05-22 22:13:20 +00:00
xor a
2015-02-07 10:43:08 +00:00
ld [hSCX], a
2014-05-22 22:13:20 +00:00
ld a, $90
2014-09-23 22:02:03 +00:00
ld [hWY], a
2014-05-22 22:13:20 +00:00
ret
Func_4142d: ; 4142d (10:542d)
2015-02-07 10:43:08 +00:00
call Trade_ClearTileMap
hlCoord 11, 4
2014-05-22 22:13:20 +00:00
ld a, $5d
ld [hli], a
ld a, $5e
ld c, $8
.asm_4143a
ld [hli], a
dec c
jr nz, .asm_4143a
hlCoord 5, 3
2014-05-22 22:13:20 +00:00
ld b, $6
2015-02-07 10:43:08 +00:00
call CopyTileIDsFromList_ZeroBaseTileID
hlCoord 4, 12
2015-02-07 10:43:08 +00:00
ld b, 2
ld c, 7
2014-05-22 22:13:20 +00:00
call TextBoxBorder
hlCoord 5, 14
2015-02-07 10:43:08 +00:00
ld de, wPlayerName
2014-05-22 22:13:20 +00:00
call PlaceString
jp DelayFrame
Func_4145c: ; 4145c (10:545c)
2015-02-07 10:43:08 +00:00
call Trade_ClearTileMap
hlCoord 0, 4
2014-05-22 22:13:20 +00:00
ld a, $5e
ld c, $e
.asm_41466
ld [hli], a
dec c
jr nz, .asm_41466
ld a, $5f
ld [hl], a
ld de, $14
add hl, de
ld a, $61
ld [hl], a
add hl, de
ld [hl], a
add hl, de
ld [hl], a
add hl, de
ld [hl], a
add hl, de
ld a, $60
ld [hld], a
ld a, $5d
ld [hl], a
hlCoord 7, 8
2014-05-22 22:13:20 +00:00
ld b, $6
2015-02-07 10:43:08 +00:00
call CopyTileIDsFromList_ZeroBaseTileID
hlCoord 6, 0
2014-05-22 22:13:20 +00:00
ld b, $2
ld c, $7
call TextBoxBorder
hlCoord 7, 2
2015-02-07 10:43:08 +00:00
ld de, wLinkEnemyTrainerName
2014-05-22 22:13:20 +00:00
call PlaceString
jp DelayFrame
Func_4149f: ; 4149f (10:549f)
2015-02-07 10:43:08 +00:00
call Trade_ClearTileMap
hlCoord 0, 4
2014-05-22 22:13:20 +00:00
ld a, $5e
ld c, $14
.asm_414a9
ld [hli], a
dec c
jr nz, .asm_414a9
ret
2015-02-07 10:43:08 +00:00
Trade_RedrawRows4And5: ; 414ae (10:54ae)
2014-05-22 22:13:20 +00:00
push hl
hlCoord 0, 4
2014-09-14 18:29:18 +00:00
call CopyToScreenEdgeTiles
2014-05-22 22:13:20 +00:00
pop hl
ld a, h
2014-05-29 08:31:46 +00:00
ld [H_SCREENEDGEREDRAWADDR + 1], a
2014-05-22 22:13:20 +00:00
ld a, l
2015-02-07 10:43:08 +00:00
ld [H_SCREENEDGEREDRAWADDR], a
ld a, REDRAWROW
ld [H_SCREENEDGEREDRAW], a
ld c, 10
2014-05-22 22:13:20 +00:00
jp DelayFrames
Func_414c5: ; 414c5 (10:54c5)
ld a, [wd08a]
2014-05-22 22:13:20 +00:00
ld e, a
ld d, $8
.asm_414cb
ld a, e
dec a
jr z, .asm_414d5
2015-02-07 10:43:08 +00:00
ld a, [hSCX]
2014-05-22 22:13:20 +00:00
sub $2
jr .asm_414d9
.asm_414d5
2015-02-07 10:43:08 +00:00
ld a, [hSCX]
2014-05-22 22:13:20 +00:00
add $2
.asm_414d9
2015-02-07 10:43:08 +00:00
ld [hSCX], a
2014-05-22 22:13:20 +00:00
call DelayFrame
dec d
jr nz, .asm_414cb
call Func_414e8
dec b
jr nz, Func_414c5
ret
Func_414e8: ; 414e8 (10:54e8)
push de
push bc
push hl
2015-02-07 10:43:08 +00:00
ld a, [rBGP]
2014-05-22 22:13:20 +00:00
xor $3c
2015-02-07 10:43:08 +00:00
ld [rBGP], a
ld hl, wOAMBuffer + $02
2014-05-22 22:13:20 +00:00
ld de, $4
ld c, $14
.asm_414f9
ld a, [hl]
xor $40
ld [hl], a
add hl, de
dec c
jr nz, .asm_414f9
pop hl
pop bc
pop de
ret
Func_41505: ; 41505 (10:5505)
2015-03-13 12:33:16 +00:00
callba WriteMonPartySpriteOAMByMonID
2014-05-22 22:13:20 +00:00
call Func_41558
Func_41510: ; 41510 (10:5510)
ld hl, wOAMBuffer
ld c, $14
.asm_41515
2015-02-07 10:43:08 +00:00
ld a, [W_BASECOORDY]
2014-05-22 22:13:20 +00:00
add [hl]
ld [hli], a
2015-02-07 10:43:08 +00:00
ld a, [W_BASECOORDX]
2014-05-22 22:13:20 +00:00
add [hl]
ld [hli], a
inc hl
inc hl
dec c
jr nz, .asm_41515
ret
Func_41525: ; 41525 (10:5525)
ld a, [wd08a]
2014-05-22 22:13:20 +00:00
and a
jr z, .asm_41536
ld bc, $400
call .asm_4153f
ld bc, $a
jr .asm_4153f
.asm_41536
ld bc, $f6
call .asm_4153f
ld bc, $fc00
.asm_4153f
ld a, b
2015-02-07 10:43:08 +00:00
ld [W_BASECOORDX], a
2014-05-22 22:13:20 +00:00
ld a, c
2015-02-07 10:43:08 +00:00
ld [W_BASECOORDY], a
2014-05-22 22:13:20 +00:00
ld d, $4
.asm_41549
call Func_41510
call Func_414e8
ld c, $8
call DelayFrames
dec d
jr nz, .asm_41549
ret
Func_41558: ; 41558 (10:5558)
2015-02-07 10:43:08 +00:00
ld hl, OAMPointers_41574
2014-05-22 22:13:20 +00:00
ld c, $4
xor a
.asm_4155e
push bc
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld c, [hl]
inc hl
ld b, [hl]
inc hl
push hl
inc a
push af
call WriteOAMBlock
pop af
pop hl
pop bc
dec c
jr nz, .asm_4155e
ret
OAMPointers_41574: ; 41574 (10:5574)
dw UnknownOAM_41584
db $08,$08
dw UnknownOAM_4158c
db $18,$08
dw UnknownOAM_41594
db $08,$18
dw UnknownOAM_4159c
db $18,$18
UnknownOAM_41584: ; 41584 (10:5584)
db $38,$10,$39,$10
db $3A,$10,$3B,$10
UnknownOAM_4158c: ; 4158c (10:558c)
db $39,$30,$38,$30
db $3B,$30,$3A,$30
UnknownOAM_41594: ; 41594 (10:5594)
db $3A,$50,$3B,$50
db $38,$50,$39,$50
UnknownOAM_4159c: ; 4159c (10:559c)
db $3B,$70,$3A,$70
db $39,$70,$38,$70
2015-02-07 10:43:08 +00:00
; a = species
Trade_LoadMonSprite: ; 415a4 (10:55a4)
ld [wcf91], a
ld [wd0b5], a
ld [wcf1d], a
2014-05-22 22:13:20 +00:00
ld b, $b
ld c, $0
call GoPAL_SET
2015-02-07 10:43:08 +00:00
ld a, [H_AUTOBGTRANSFERENABLED]
2014-05-22 22:13:20 +00:00
xor $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call GetMonHeader
hlCoord 7, 2
2014-05-22 22:13:20 +00:00
call LoadFlippedFrontSpriteByMonIndex
2015-02-07 10:43:08 +00:00
ld c, 10
2014-05-22 22:13:20 +00:00
jp DelayFrames
Func_415c8: ; 415c8 (10:55c8)
ld a, $1
2015-02-07 10:43:08 +00:00
ld [H_AUTOBGTRANSFERENABLED], a
2014-05-22 22:13:20 +00:00
call ClearScreen
2015-02-07 10:43:08 +00:00
ld a, %11100011
ld [rLCDC], a
2014-05-22 22:13:20 +00:00
ld a, $7
2015-02-07 10:43:08 +00:00
ld [rWX], a
2014-05-22 22:13:20 +00:00
xor a
2014-09-23 22:02:03 +00:00
ld [hWY], a
2014-05-22 22:13:20 +00:00
ld a, $90
2015-02-07 10:43:08 +00:00
ld [hSCX], a
2014-05-22 22:13:20 +00:00
ret
Func_415df: ; 415df (10:55df)
2015-02-07 10:43:08 +00:00
ld c, 50
2014-05-22 22:13:20 +00:00
call DelayFrames
2015-02-07 10:43:08 +00:00
.loop
2014-05-22 22:13:20 +00:00
call DelayFrame
2015-02-07 10:43:08 +00:00
ld a, [rWX]
2014-05-22 22:13:20 +00:00
inc a
inc a
2015-02-07 10:43:08 +00:00
ld [rWX], a
2014-05-22 22:13:20 +00:00
cp $a1
2015-02-07 10:43:08 +00:00
jr nz, .loop
call Trade_ClearTileMap
ld c, 10
2014-05-22 22:13:20 +00:00
call DelayFrames
ld a, $7
2015-02-07 10:43:08 +00:00
ld [rWX], a
2014-05-22 22:13:20 +00:00
ret
PrintTradeWentToText: ; 415fe (10:55fe)
ld hl, TradeWentToText
call PrintText
2015-02-07 10:43:08 +00:00
ld c, 200
2014-05-22 22:13:20 +00:00
call DelayFrames
jp Func_415df
TradeWentToText: ; 4160c (10:560c)
TX_FAR _TradeWentToText
db "@"
PrintTradeForSendsText: ; 41611 (10:5611)
ld hl, TradeForText
call PrintText
2015-02-07 10:43:08 +00:00
call Trade_Delay80
2014-05-22 22:13:20 +00:00
ld hl, TradeSendsText
call PrintText
2015-02-07 10:43:08 +00:00
jp Trade_Delay80
2014-05-22 22:13:20 +00:00
TradeForText: ; 41623 (10:5623)
TX_FAR _TradeForText
db "@"
TradeSendsText: ; 41628 (10:5628)
TX_FAR _TradeSendsText
db "@"
PrintTradeFarewellText: ; 4162d (10:562d)
ld hl, TradeWavesFarewellText
call PrintText
2015-02-07 10:43:08 +00:00
call Trade_Delay80
2014-05-22 22:13:20 +00:00
ld hl, TradeTransferredText
call PrintText
2015-02-07 10:43:08 +00:00
call Trade_Delay80
2014-05-22 22:13:20 +00:00
jp Func_415df
TradeWavesFarewellText: ; 41642 (10:5642)
TX_FAR _TradeWavesFarewellText
db "@"
TradeTransferredText: ; 41647 (10:5647)
TX_FAR _TradeTransferredText
db "@"
PrintTradeTakeCareText: ; 4164c (10:564c)
ld hl, TradeTakeCareText
call PrintText
2015-02-07 10:43:08 +00:00
jp Trade_Delay80
2014-05-22 22:13:20 +00:00
TradeTakeCareText: ; 41655 (10:5655)
TX_FAR _TradeTakeCareText
db "@"
PrintTradeWillTradeText: ; 4165a (10:565a)
ld hl, TradeWillTradeText
call PrintText
2015-02-07 10:43:08 +00:00
call Trade_Delay80
2014-05-22 22:13:20 +00:00
ld hl, TradeforText
call PrintText
2015-02-07 10:43:08 +00:00
jp Trade_Delay80
2014-05-22 22:13:20 +00:00
TradeWillTradeText: ; 4166c (10:566c)
TX_FAR _TradeWillTradeText
db "@"
TradeforText: ; 41671 (10:5671)
TX_FAR _TradeforText
db "@"
2015-02-07 10:43:08 +00:00
Trade_ShowAnimation: ; 41676 (10:5676)
ld [W_ANIMATIONID], a
2014-05-22 22:13:20 +00:00
xor a
ld [wcc5b], a
predef_jump MoveAnimation