2014-05-22 22:13:20 +00:00
|
|
|
DisplayTownMap: ; 70e3e (1c:4e3e)
|
|
|
|
call LoadTownMap
|
2014-09-13 07:50:56 +00:00
|
|
|
ld hl, wUpdateSpritesEnabled
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, [hl]
|
|
|
|
push af
|
|
|
|
ld [hl], $ff
|
|
|
|
push hl
|
|
|
|
ld a, $1
|
2014-08-31 02:48:49 +00:00
|
|
|
ld [hJoy7], a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [W_CURMAP] ; W_CURMAP
|
2014-05-22 22:13:20 +00:00
|
|
|
push af
|
|
|
|
ld b, $0
|
|
|
|
call Func_711c4
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 1, 0
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wcd6d
|
2014-05-22 22:13:20 +00:00
|
|
|
call PlaceString
|
|
|
|
ld hl, wOAMBuffer
|
|
|
|
ld de, wTileMapBackup
|
|
|
|
ld bc, $10
|
|
|
|
call CopyData
|
2014-05-29 08:31:46 +00:00
|
|
|
ld hl, vSprites + $40
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de, TownMapCursor ; $4f40
|
|
|
|
ld bc, (BANK(TownMapCursor) << 8) + $04
|
|
|
|
call CopyVideoDataDouble
|
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wWhichTrade], a ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
pop af
|
|
|
|
jr Func_70e92
|
|
|
|
|
|
|
|
Func_70e7e: ; 70e7e (1c:4e7e)
|
|
|
|
ld hl, wTileMap
|
|
|
|
ld bc, $114
|
|
|
|
call ClearScreenArea
|
|
|
|
ld hl, TownMapOrder ; $4f11
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wWhichTrade] ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
ld c, a
|
|
|
|
ld b, $0
|
|
|
|
add hl, bc
|
|
|
|
ld a, [hl]
|
|
|
|
|
|
|
|
Func_70e92: ; 70e92 (1c:4e92)
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wHPBarMaxHP
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_712f1
|
|
|
|
ld a, [de]
|
|
|
|
push hl
|
|
|
|
call Func_71258
|
|
|
|
ld a, $4
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wcd5b], a
|
|
|
|
ld hl, wOAMBuffer + $10
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_71279
|
|
|
|
pop hl
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wcd6d
|
2014-05-22 22:13:20 +00:00
|
|
|
.asm_70eac
|
|
|
|
ld a, [hli]
|
|
|
|
ld [de], a
|
|
|
|
inc de
|
|
|
|
cp $50
|
|
|
|
jr nz, .asm_70eac
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 1, 0
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wcd6d
|
2014-05-22 22:13:20 +00:00
|
|
|
call PlaceString
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wOAMBuffer + $10
|
|
|
|
ld de, wTileMapBackup + 16
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $10
|
|
|
|
call CopyData
|
|
|
|
.asm_70ec8
|
2014-09-14 18:29:18 +00:00
|
|
|
call TownMapSpriteBlinkingAnimation
|
2014-05-25 18:21:48 +00:00
|
|
|
call JoypadLowSensitivity
|
2014-08-31 02:48:49 +00:00
|
|
|
ld a, [hJoy5]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, a
|
|
|
|
and $c3
|
|
|
|
jr z, .asm_70ec8
|
|
|
|
ld a, (SFX_02_3c - SFX_Headers_02) / 3
|
|
|
|
call PlaySound
|
|
|
|
bit 6, b
|
|
|
|
jr nz, .asm_70ef2
|
|
|
|
bit 7, b
|
|
|
|
jr nz, .asm_70f01
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [wTownMapSpriteBlinkingEnabled], a
|
2014-08-31 02:48:49 +00:00
|
|
|
ld [hJoy7], a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [wTownMapSpriteBlinkingCounter], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_711ab
|
|
|
|
pop hl
|
|
|
|
pop af
|
|
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
.asm_70ef2
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wWhichTrade] ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
inc a
|
|
|
|
cp $2f
|
|
|
|
jr nz, .asm_70efb
|
|
|
|
xor a
|
|
|
|
.asm_70efb
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wWhichTrade], a ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
jp Func_70e7e
|
|
|
|
.asm_70f01
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wWhichTrade] ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
dec a
|
|
|
|
cp $ff
|
|
|
|
jr nz, .asm_70f0b
|
|
|
|
ld a, $2e
|
|
|
|
.asm_70f0b
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wWhichTrade], a ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
jp Func_70e7e
|
|
|
|
|
|
|
|
INCLUDE "data/town_map_order.asm"
|
|
|
|
|
|
|
|
TownMapCursor: ; 70f40 (1c:4f40)
|
|
|
|
INCBIN "gfx/town_map_cursor.1bpp"
|
|
|
|
|
|
|
|
LoadTownMap_Nest: ; 70f60 (1c:4f60)
|
|
|
|
call LoadTownMap
|
2014-09-13 07:50:56 +00:00
|
|
|
ld hl, wUpdateSpritesEnabled
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, [hl]
|
|
|
|
push af
|
|
|
|
ld [hl], $ff
|
|
|
|
push hl
|
|
|
|
call Func_711ef
|
|
|
|
call GetMonName
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 1, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
call PlaceString
|
|
|
|
ld h, b
|
|
|
|
ld l, c
|
|
|
|
ld de, MonsNestText
|
|
|
|
call PlaceString
|
|
|
|
call WaitForTextScrollButtonPress
|
|
|
|
call Func_711ab
|
|
|
|
pop hl
|
|
|
|
pop af
|
|
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
MonsNestText: ; 70f89 (1c:4f89)
|
|
|
|
db "'s NEST@"
|
|
|
|
|
|
|
|
LoadTownMap_Fly: ; 70f90 (1c:4f90)
|
2014-05-23 22:34:35 +00:00
|
|
|
call ClearSprites
|
2014-05-22 22:13:20 +00:00
|
|
|
call LoadTownMap
|
|
|
|
call LoadPlayerSpriteGraphics
|
|
|
|
call LoadFontTilePatterns
|
|
|
|
ld de, BirdSprite ; $4d80
|
2014-05-29 08:31:46 +00:00
|
|
|
ld hl, vSprites + $40
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, (BANK(BirdSprite) << 8) + $0c
|
|
|
|
call CopyVideoData
|
|
|
|
ld de, TownMapUpArrow ; $5093
|
2014-05-29 08:31:46 +00:00
|
|
|
ld hl, vChars1 + $6d0
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, (BANK(TownMapUpArrow) << 8) + $01
|
|
|
|
call CopyVideoDataDouble
|
|
|
|
call Func_71070
|
2014-09-13 07:50:56 +00:00
|
|
|
ld hl, wUpdateSpritesEnabled
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, [hl]
|
|
|
|
push af
|
|
|
|
ld [hl], $ff
|
|
|
|
push hl
|
|
|
|
ld hl, wTileMap
|
|
|
|
ld de, ToText
|
|
|
|
call PlaceString
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [W_CURMAP] ; W_CURMAP
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, $0
|
|
|
|
call Func_711c4
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wTrainerEngageDistance
|
2014-06-25 20:58:27 +00:00
|
|
|
deCoord 18, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
|
|
|
|
.townMapFlyLoop
|
|
|
|
ld a, $7f
|
|
|
|
ld [de], a
|
|
|
|
push hl
|
|
|
|
push hl
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 3, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $10f
|
|
|
|
call ClearScreenArea
|
|
|
|
pop hl
|
|
|
|
ld a, [hl]
|
|
|
|
ld b, $4
|
|
|
|
call Func_711c4
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 3, 0
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wcd6d
|
2014-05-22 22:13:20 +00:00
|
|
|
call PlaceString
|
|
|
|
ld c, $f
|
|
|
|
call DelayFrames
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 18, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hl], $ed
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 19, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hl], $ee
|
|
|
|
pop hl
|
|
|
|
.asm_71004
|
|
|
|
push hl
|
|
|
|
call DelayFrame
|
2014-05-25 18:21:48 +00:00
|
|
|
call JoypadLowSensitivity
|
2014-08-31 02:48:49 +00:00
|
|
|
ld a, [hJoy5]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, a
|
|
|
|
pop hl
|
|
|
|
and $c3
|
|
|
|
jr z, .asm_71004
|
|
|
|
bit 0, b
|
|
|
|
jr nz, .asm_71026
|
|
|
|
ld a, (SFX_02_3c - SFX_Headers_02) / 3
|
|
|
|
call PlaySound
|
|
|
|
bit 6, b
|
|
|
|
jr nz, .asm_71042
|
|
|
|
bit 7, b
|
|
|
|
jr nz, .asm_71058
|
|
|
|
jr .asm_71037
|
|
|
|
.asm_71026
|
|
|
|
ld a, (SFX_02_3e - SFX_Headers_02) / 3
|
|
|
|
call PlaySound
|
|
|
|
ld a, [hl]
|
2014-09-13 07:50:56 +00:00
|
|
|
ld [wDestinationMap], a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wd732
|
2014-05-22 22:13:20 +00:00
|
|
|
set 3, [hl]
|
|
|
|
inc hl
|
|
|
|
set 7, [hl]
|
|
|
|
.asm_71037
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [wTownMapSpriteBlinkingEnabled], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call GBPalWhiteOutWithDelay3
|
|
|
|
pop hl
|
|
|
|
pop af
|
|
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
.asm_71042
|
2014-06-25 20:58:27 +00:00
|
|
|
deCoord 18, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
inc hl
|
|
|
|
ld a, [hl]
|
|
|
|
cp $ff
|
|
|
|
jr z, .asm_71052
|
|
|
|
cp $fe
|
|
|
|
jr z, .asm_71042
|
|
|
|
jp .townMapFlyLoop
|
|
|
|
.asm_71052
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wTrainerEngageDistance
|
2014-05-22 22:13:20 +00:00
|
|
|
jp .townMapFlyLoop
|
|
|
|
.asm_71058
|
2014-06-25 20:58:27 +00:00
|
|
|
deCoord 19, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
dec hl
|
|
|
|
ld a, [hl]
|
|
|
|
cp $ff
|
|
|
|
jr z, .asm_71068
|
|
|
|
cp $fe
|
|
|
|
jr z, .asm_71058
|
|
|
|
jp .townMapFlyLoop
|
|
|
|
.asm_71068
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wcd49
|
2014-05-22 22:13:20 +00:00
|
|
|
jr .asm_71058
|
|
|
|
|
|
|
|
ToText: ; 7106d (1c:506d)
|
|
|
|
db "To@"
|
|
|
|
|
|
|
|
Func_71070: ; 71070 (1c:5070)
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wWhichTrade ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hl], $ff
|
|
|
|
inc hl
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [W_TOWNVISITEDFLAG]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld e, a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [W_TOWNVISITEDFLAG + 1]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld d, a
|
|
|
|
ld bc, $b
|
|
|
|
.asm_71081
|
|
|
|
srl d
|
|
|
|
rr e
|
|
|
|
ld a, $fe
|
|
|
|
jr nc, .asm_7108a
|
|
|
|
ld a, b
|
|
|
|
.asm_7108a
|
|
|
|
ld [hl], a
|
|
|
|
inc hl
|
|
|
|
inc b
|
|
|
|
dec c
|
|
|
|
jr nz, .asm_71081
|
|
|
|
ld [hl], $ff
|
|
|
|
ret
|
|
|
|
|
|
|
|
TownMapUpArrow: ; 71093 (1c:5093)
|
|
|
|
INCBIN "gfx/up_arrow.1bpp"
|
|
|
|
|
|
|
|
LoadTownMap: ; 7109b (1c:509b)
|
|
|
|
call GBPalWhiteOutWithDelay3
|
|
|
|
call ClearScreen
|
|
|
|
call UpdateSprites
|
|
|
|
ld hl, wTileMap
|
|
|
|
ld b, $12
|
|
|
|
ld c, $12
|
|
|
|
call TextBoxBorder
|
|
|
|
call DisableLCD
|
|
|
|
ld hl, WorldMapTileGraphics ; $65a8
|
2014-05-29 08:31:46 +00:00
|
|
|
ld de, vChars2 + $600
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $100
|
|
|
|
ld a, BANK(WorldMapTileGraphics)
|
|
|
|
call FarCopyData2
|
|
|
|
ld hl, MonNestIcon ; $56be
|
2014-05-29 08:31:46 +00:00
|
|
|
ld de, vSprites + $40
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $8
|
|
|
|
ld a, BANK(MonNestIcon)
|
|
|
|
call FarCopyDataDouble
|
|
|
|
ld hl, wTileMap
|
|
|
|
ld de, CompressedMap ; $5100
|
|
|
|
.asm_710d3
|
|
|
|
ld a, [de]
|
|
|
|
and a
|
|
|
|
jr z, .asm_710e9
|
|
|
|
ld b, a
|
|
|
|
and $f
|
|
|
|
ld c, a
|
|
|
|
ld a, b
|
|
|
|
swap a
|
|
|
|
and $f
|
|
|
|
add $60
|
|
|
|
.asm_710e2
|
|
|
|
ld [hli], a
|
|
|
|
dec c
|
|
|
|
jr nz, .asm_710e2
|
|
|
|
inc de
|
|
|
|
jr .asm_710d3
|
|
|
|
.asm_710e9
|
|
|
|
call EnableLCD
|
|
|
|
ld b, $2
|
|
|
|
call GoPAL_SET
|
|
|
|
call Delay3
|
|
|
|
call GBPalNormal
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [wTownMapSpriteBlinkingCounter], a
|
2014-05-22 22:13:20 +00:00
|
|
|
inc a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [wTownMapSpriteBlinkingEnabled], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
CompressedMap: ; 71100 (1c:5100)
|
|
|
|
; you can decompress this file with the redrle program in the extras/ dir
|
|
|
|
INCBIN "gfx/town_map.rle"
|
|
|
|
|
|
|
|
Func_711ab: ; 711ab (1c:51ab)
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [wTownMapSpriteBlinkingEnabled], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call GBPalWhiteOut
|
|
|
|
call ClearScreen
|
2014-05-23 22:34:35 +00:00
|
|
|
call ClearSprites
|
2014-05-22 22:13:20 +00:00
|
|
|
call LoadPlayerSpriteGraphics
|
|
|
|
call LoadFontTilePatterns
|
|
|
|
call UpdateSprites
|
|
|
|
jp GoPAL_SET_CF1C
|
|
|
|
|
|
|
|
Func_711c4: ; 711c4 (1c:51c4)
|
|
|
|
push af
|
|
|
|
ld a, b
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wcd5b], a
|
2014-05-22 22:13:20 +00:00
|
|
|
pop af
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wHPBarMaxHP
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_712f1
|
|
|
|
ld a, [de]
|
|
|
|
push hl
|
|
|
|
call Func_71258
|
|
|
|
call Func_7126d
|
|
|
|
pop hl
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wcd6d
|
2014-05-22 22:13:20 +00:00
|
|
|
.asm_711dc
|
|
|
|
ld a, [hli]
|
|
|
|
ld [de], a
|
|
|
|
inc de
|
|
|
|
cp $50
|
|
|
|
jr nz, .asm_711dc
|
|
|
|
ld hl, wOAMBuffer
|
|
|
|
ld de, wTileMapBackup
|
|
|
|
ld bc, $a0
|
|
|
|
jp CopyData
|
|
|
|
|
|
|
|
Func_711ef: ; 711ef (1c:51ef)
|
2015-02-08 06:18:42 +00:00
|
|
|
callba FindWildLocationsOfMon
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_712d9
|
|
|
|
ld hl, wOAMBuffer
|
2015-02-08 06:18:42 +00:00
|
|
|
ld de, wBuffer
|
2014-05-22 22:13:20 +00:00
|
|
|
.asm_71200
|
|
|
|
ld a, [de]
|
|
|
|
cp $ff
|
|
|
|
jr z, .asm_7121d
|
|
|
|
and a
|
|
|
|
jr z, .asm_7121a
|
|
|
|
push hl
|
|
|
|
call Func_712f1
|
|
|
|
pop hl
|
|
|
|
ld a, [de]
|
|
|
|
cp $19
|
|
|
|
jr z, .asm_7121a
|
|
|
|
call Func_71258
|
|
|
|
ld a, $4
|
|
|
|
ld [hli], a
|
|
|
|
xor a
|
|
|
|
ld [hli], a
|
|
|
|
.asm_7121a
|
|
|
|
inc de
|
|
|
|
jr .asm_71200
|
|
|
|
.asm_7121d
|
|
|
|
ld a, l
|
|
|
|
and a
|
|
|
|
jr nz, .asm_71236
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 1, 7
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, $2
|
|
|
|
ld c, $f
|
|
|
|
call TextBoxBorder
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 2, 9
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de, AreaUnknownText
|
|
|
|
call PlaceString
|
|
|
|
jr .asm_7123e
|
|
|
|
.asm_71236
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [W_CURMAP] ; W_CURMAP
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, $0
|
|
|
|
call Func_711c4
|
|
|
|
.asm_7123e
|
|
|
|
ld hl, wOAMBuffer
|
|
|
|
ld de, wTileMapBackup
|
|
|
|
ld bc, $a0
|
|
|
|
jp CopyData
|
|
|
|
|
|
|
|
AreaUnknownText: ; 7124a (1c:524a)
|
|
|
|
db " AREA UNKNOWN@"
|
|
|
|
|
|
|
|
Func_71258: ; 71258 (1c:5258)
|
|
|
|
push af
|
|
|
|
and $f0
|
|
|
|
srl a
|
|
|
|
add $18
|
|
|
|
ld b, a
|
|
|
|
ld [hli], a
|
|
|
|
pop af
|
|
|
|
and $f
|
|
|
|
swap a
|
|
|
|
srl a
|
|
|
|
add $18
|
|
|
|
ld c, a
|
|
|
|
ld [hli], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
Func_7126d: ; 7126d (1c:526d)
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wcd5b]
|
2014-05-22 22:13:20 +00:00
|
|
|
and a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wOAMBuffer + $90
|
2014-05-22 22:13:20 +00:00
|
|
|
jr z, Func_71279
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wOAMBuffer + $80
|
2014-05-22 22:13:20 +00:00
|
|
|
|
|
|
|
Func_71279: ; 71279 (1c:5279)
|
|
|
|
push hl
|
|
|
|
ld hl, $fcfc
|
|
|
|
add hl, bc
|
|
|
|
ld b, h
|
|
|
|
ld c, l
|
|
|
|
pop hl
|
|
|
|
|
2015-03-13 12:33:16 +00:00
|
|
|
WriteAsymmetricMonPartySpriteOAM: ; 71281 (1c:5281)
|
|
|
|
; Writes 4 OAM blocks for a helix mon party sprite, since is does not have
|
|
|
|
; a vertical line of symmetry.
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de, $202
|
2015-03-13 12:33:16 +00:00
|
|
|
.loop
|
2014-05-22 22:13:20 +00:00
|
|
|
push de
|
|
|
|
push bc
|
2015-03-13 12:33:16 +00:00
|
|
|
.innerLoop
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, b
|
|
|
|
ld [hli], a
|
|
|
|
ld a, c
|
|
|
|
ld [hli], a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wcd5b]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
|
|
|
inc a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wcd5b], a
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
|
|
|
ld [hli], a
|
|
|
|
inc d
|
|
|
|
ld a, $8
|
|
|
|
add c
|
|
|
|
ld c, a
|
|
|
|
dec e
|
2015-03-13 12:33:16 +00:00
|
|
|
jr nz, .innerLoop
|
2014-05-22 22:13:20 +00:00
|
|
|
pop bc
|
|
|
|
pop de
|
|
|
|
ld a, $8
|
|
|
|
add b
|
|
|
|
ld b, a
|
|
|
|
dec d
|
2015-03-13 12:33:16 +00:00
|
|
|
jr nz, .loop
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
2015-03-13 12:33:16 +00:00
|
|
|
WriteSymmetricMonPartySpriteOAM: ; 712a6 (1c:52a6)
|
|
|
|
; Writes 4 OAM blocks for a mon party sprite other than a helix. All the
|
|
|
|
; sprites other than the helix one have a vertical line of symmetry which allows
|
|
|
|
; the X-flip OAM bit to be used so that only 2 rather than 4 tile patterns are
|
|
|
|
; needed.
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wcd5c], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de, $202
|
2015-03-13 12:33:16 +00:00
|
|
|
.loop
|
2014-05-22 22:13:20 +00:00
|
|
|
push de
|
|
|
|
push bc
|
2015-03-13 12:33:16 +00:00
|
|
|
.innerLoop
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, b
|
|
|
|
ld [hli], a
|
|
|
|
ld a, c
|
|
|
|
ld [hli], a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wcd5b]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wcd5c]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
|
|
|
xor $20
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wcd5c], a
|
2014-05-22 22:13:20 +00:00
|
|
|
inc d
|
|
|
|
ld a, $8
|
|
|
|
add c
|
|
|
|
ld c, a
|
|
|
|
dec e
|
2015-03-13 12:33:16 +00:00
|
|
|
jr nz, .innerLoop
|
2014-05-22 22:13:20 +00:00
|
|
|
pop bc
|
|
|
|
pop de
|
|
|
|
push hl
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wcd5b
|
2014-05-22 22:13:20 +00:00
|
|
|
inc [hl]
|
|
|
|
inc [hl]
|
|
|
|
pop hl
|
|
|
|
ld a, $8
|
|
|
|
add b
|
|
|
|
ld b, a
|
|
|
|
dec d
|
2015-03-13 12:33:16 +00:00
|
|
|
jr nz, .loop
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
Func_712d9: ; 712d9 (1c:52d9)
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wHPBarMaxHP
|
2014-05-22 22:13:20 +00:00
|
|
|
.asm_712dc
|
|
|
|
ld a, [de]
|
|
|
|
inc de
|
|
|
|
cp $ff
|
|
|
|
ret z
|
|
|
|
ld c, a
|
|
|
|
ld l, e
|
|
|
|
ld h, d
|
|
|
|
.asm_712e4
|
|
|
|
ld a, [hl]
|
|
|
|
cp $ff
|
|
|
|
jr z, .asm_712dc
|
|
|
|
cp c
|
|
|
|
jr nz, .asm_712ee
|
|
|
|
xor a
|
|
|
|
ld [hl], a
|
|
|
|
.asm_712ee
|
|
|
|
inc hl
|
|
|
|
jr .asm_712e4
|
|
|
|
|
|
|
|
Func_712f1: ; 712f1 (1c:52f1)
|
|
|
|
cp REDS_HOUSE_1F
|
|
|
|
jr c, .asm_71304
|
|
|
|
ld bc, $4
|
|
|
|
ld hl, InternalMapEntries ; $5382
|
|
|
|
.asm_712fb
|
|
|
|
cp [hl]
|
|
|
|
jr c, .asm_71301
|
|
|
|
add hl, bc
|
|
|
|
jr .asm_712fb
|
|
|
|
.asm_71301
|
|
|
|
inc hl
|
|
|
|
jr .asm_7130d
|
|
|
|
.asm_71304
|
|
|
|
ld hl, ExternalMapEntries ; $5313
|
|
|
|
ld c, a
|
|
|
|
ld b, $0
|
|
|
|
add hl, bc
|
|
|
|
add hl, bc
|
|
|
|
add hl, bc
|
|
|
|
.asm_7130d
|
|
|
|
ld a, [hli]
|
|
|
|
ld [de], a
|
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
|
|
|
ret
|
|
|
|
|
|
|
|
INCLUDE "data/town_map_entries.asm"
|
|
|
|
|
|
|
|
INCLUDE "text/map_names.asm"
|
|
|
|
|
|
|
|
MonNestIcon: ; 716be (1c:56be)
|
|
|
|
INCBIN "gfx/mon_nest_icon.1bpp"
|
|
|
|
|
2014-09-14 18:29:18 +00:00
|
|
|
TownMapSpriteBlinkingAnimation: ; 716c6 (1c:56c6)
|
|
|
|
ld a, [wTownMapSpriteBlinkingCounter]
|
2014-05-22 22:13:20 +00:00
|
|
|
inc a
|
2014-09-14 18:29:18 +00:00
|
|
|
cp 25
|
|
|
|
jr z, .hideSprites
|
|
|
|
cp 50
|
|
|
|
jr nz, .done
|
|
|
|
; show sprites when the counter reaches 50
|
2014-05-22 22:13:20 +00:00
|
|
|
ld hl, wTileMapBackup
|
|
|
|
ld de, wOAMBuffer
|
|
|
|
ld bc, $90
|
|
|
|
call CopyData
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
jr .done
|
|
|
|
.hideSprites
|
2014-05-22 22:13:20 +00:00
|
|
|
ld hl, wOAMBuffer
|
|
|
|
ld b, $24
|
|
|
|
ld de, $4
|
2014-09-14 18:29:18 +00:00
|
|
|
.hideSpritesLoop
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hl], $a0
|
|
|
|
add hl, de
|
|
|
|
dec b
|
2014-09-14 18:29:18 +00:00
|
|
|
jr nz, .hideSpritesLoop
|
|
|
|
ld a, 25
|
|
|
|
.done
|
|
|
|
ld [wTownMapSpriteBlinkingCounter], a
|
2014-05-22 22:13:20 +00:00
|
|
|
jp DelayFrame
|