summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-05-07 13:33:05 -0400
committerentrpntr <entrpntr@gmail.com>2020-05-07 15:37:15 -0400
commit41c19e6e7c751ad16e355cc9b5b1604b4199f2e5 (patch)
treedab222f6f9e0af175530bbbeb33b731667767811 /engine
parent5cf09844197bdd48aa0ecab2f131ce07f3fe9ade (diff)
Add majority of remaining unused source files.
Diffstat (limited to 'engine')
-rw-r--r--engine/pokedex/pokedex_2.asm275
-rw-r--r--engine/pokegear/radio.asm4
2 files changed, 277 insertions, 2 deletions
diff --git a/engine/pokedex/pokedex_2.asm b/engine/pokedex/pokedex_2.asm
new file mode 100644
index 00000000..3d5f51b7
--- /dev/null
+++ b/engine/pokedex/pokedex_2.asm
@@ -0,0 +1,275 @@
+AnimateDexSearchSlowpoke:
+ ld hl, .FrameIDs
+ ld b, 25
+.loop
+ ld a, [hli]
+
+ ; Wrap around
+ cp $fe
+ jr nz, .ok
+ ld hl, .FrameIDs
+ ld a, [hli]
+.ok
+
+ ld [wDexSearchSlowpokeFrame], a
+ ld a, [hli]
+ ld c, a
+ push bc
+ push hl
+ call DoDexSearchSlowpokeFrame
+ pop hl
+ pop bc
+ call DelayFrames
+ dec b
+ jr nz, .loop
+ xor a
+ ld [wDexSearchSlowpokeFrame], a
+ call DoDexSearchSlowpokeFrame
+ ld c, 32
+ call DelayFrames
+ ret
+
+.FrameIDs:
+ ; frame ID, duration
+ db 0, 7
+ db 1, 7
+ db 2, 7
+ db 3, 7
+ db 4, 7
+ db -2
+
+DoDexSearchSlowpokeFrame:
+ ld a, [wDexSearchSlowpokeFrame]
+ ld hl, .SlowpokeSpriteData
+ ld de, wVirtualOAMSprite00
+.loop
+ ld a, [hli]
+ cp -1
+ ret z
+ ld [de], a ; y
+ inc de
+ ld a, [hli]
+ ld [de], a ; x
+ inc de
+ ld a, [wDexSearchSlowpokeFrame]
+ ld b, a
+ add a
+ add b
+ add [hl]
+ inc hl
+ ld [de], a ; tile id
+ inc de
+ ld a, [hli]
+ ld [de], a ; attributes
+ inc de
+ jr .loop
+
+.SlowpokeSpriteData:
+ dbsprite 9, 11, 0, 0, $00, 0
+ dbsprite 10, 11, 0, 0, $01, 0
+ dbsprite 11, 11, 0, 0, $02, 0
+ dbsprite 9, 12, 0, 0, $10, 0
+ dbsprite 10, 12, 0, 0, $11, 0
+ dbsprite 11, 12, 0, 0, $12, 0
+ dbsprite 9, 13, 0, 0, $20, 0
+ dbsprite 10, 13, 0, 0, $21, 0
+ dbsprite 11, 13, 0, 0, $22, 0
+ db -1
+
+DisplayDexEntry:
+ call GetPokemonName
+ hlcoord 9, 3
+ call PlaceString ; mon species
+ ld a, [wTempSpecies]
+ ld b, a
+ call GetDexEntryPointer
+ ld a, b
+ push af
+ hlcoord 9, 5
+ call FarString ; dex species
+ ld h, b
+ ld l, c
+ push de
+; Print dex number
+ hlcoord 2, 8
+ ld a, $5c ; No
+ ld [hli], a
+ ld a, $5d ; .
+ ld [hli], a
+ ld de, wTempSpecies
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+; Check to see if we caught it. Get out of here if we haven't.
+ ld a, [wTempSpecies]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop bc
+ ret z
+; Get the height of the Pokemon.
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
+ inc hl
+ ld a, b
+ push af
+ push hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ pop hl
+ inc hl
+ inc hl
+ ld a, d
+ or e
+ jr z, .skip_height
+ push hl
+ push de
+; Print the height, with two of the four digits in front of the decimal point
+ ld hl, sp+$0
+ ld d, h
+ ld e, l
+ hlcoord 12, 7
+ lb bc, 2, (2 << 4) | 4
+ call PrintNum
+; Replace the decimal point with a ft symbol
+ hlcoord 14, 7
+ ld [hl], $5e
+ pop af
+ pop hl
+
+.skip_height
+ pop af
+ push af
+ inc hl
+ push hl
+ dec hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ ld a, e
+ or d
+ jr z, .skip_weight
+ push de
+; Print the weight, with four of the five digits in front of the decimal point
+ ld hl, sp+$0
+ ld d, h
+ ld e, l
+ hlcoord 11, 9
+ lb bc, 2, (4 << 4) | 5
+ call PrintNum
+ pop de
+
+.skip_weight
+; Page 1
+ lb bc, 5, SCREEN_WIDTH - 2
+ hlcoord 2, 11
+ call ClearBox
+ hlcoord 1, 10
+ ld bc, SCREEN_WIDTH - 1
+ ld a, $61 ; horizontal divider
+ call ByteFill
+ ; page number
+ hlcoord 1, 9
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ hlcoord 1, 10
+ ld [hl], $56 ; P.
+ inc hl
+ ld [hl], $57 ; 1
+ pop de
+ inc de
+ pop af
+ hlcoord 2, 11
+ push af
+ call FarString
+ pop bc
+ ld a, [wPokedexStatus]
+ or a ; check for page 2
+ ret z
+
+; Page 2
+ push bc
+ push de
+ lb bc, 5, SCREEN_WIDTH - 2
+ hlcoord 2, 11
+ call ClearBox
+ hlcoord 1, 10
+ ld bc, SCREEN_WIDTH - 1
+ ld a, $61
+ call ByteFill
+ ; page number
+ hlcoord 1, 9
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ hlcoord 1, 10
+ ld [hl], $56 ; P.
+ inc hl
+ ld [hl], $58 ; 2
+ pop de
+ inc de
+ pop af
+ hlcoord 2, 11
+ call FarString
+ ret
+
+UnreferencedPOKeString:
+; unused
+ db "#@"
+
+GetDexEntryPointer:
+; return dex entry pointer b:de
+ push hl
+ ld hl, PokedexDataPointerTable
+ ld a, b
+ dec a
+ ld d, 0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ rlca
+ rlca
+ and %11
+ add BANK("Pokedex Entries 001-064")
+ ld b, a
+ pop hl
+ ret
+
+GetDexEntryPagePointer:
+ call GetDexEntryPointer ; b:de
+ push hl
+ ld h, d
+ ld l, e
+; skip species name
+.loop1
+ ld a, b
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .loop1
+; skip height and weight
+rept 4
+ inc hl
+endr
+; if c != 1: skip entry
+ dec c
+ jr z, .done
+; skip entry
+.loop2
+ ld a, b
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .loop2
+
+.done
+ ld d, h
+ ld e, l
+ pop hl
+ ret
+
+INCLUDE "data/pokemon/dex_entry_pointers.asm"
diff --git a/engine/pokegear/radio.asm b/engine/pokegear/radio.asm
index 761f84c3..77ba764e 100644
--- a/engine/pokegear/radio.asm
+++ b/engine/pokegear/radio.asm
@@ -653,8 +653,8 @@ PokedexShow2:
add hl, bc
rlca
rlca
- and 3
- add $68
+ and %11
+ add BANK("Pokedex Entries 001-064")
push af
ld a, BANK(PokedexDataPointerTable)
call GetFarHalfword