summaryrefslogtreecommitdiff
path: root/engine/breeding/egg.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/breeding/egg.asm')
-rwxr-xr-xengine/breeding/egg.asm976
1 files changed, 976 insertions, 0 deletions
diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm
new file mode 100755
index 000000000..3b71b0601
--- /dev/null
+++ b/engine/breeding/egg.asm
@@ -0,0 +1,976 @@
+Function16e1d: ; 16e1d
+ call Function16ed6
+ ld c, $0
+ jp nc, .asm_16eb7
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ jr c, .asm_16e70
+ ld b, $1
+ jr nz, .asm_16e48
+ inc b
+
+.asm_16e48
+ push bc
+ ld a, [wBreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon2DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon2DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ pop bc
+ jr c, .asm_16e70
+ ld a, $1
+ jr nz, .asm_16e6d
+ inc a
+
+.asm_16e6d
+ cp b
+ jr nz, .asm_16e89
+
+.asm_16e70
+ ld c, $0
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .asm_16e82
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr nz, .asm_16eb7
+ jr .asm_16e89
+
+.asm_16e82
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .asm_16eb7
+
+.asm_16e89
+ call Function16ebc
+ ld c, $ff
+ jp z, .asm_16eb7
+ ld a, [wBreedMon2Species]
+ ld b, a
+ ld a, [wBreedMon1Species]
+ cp b
+ ld c, $fe
+ jr z, .asm_16e9f
+ ld c, $80
+.asm_16e9f
+ ld a, [wBreedMon1ID]
+ ld b, a
+ ld a, [wBreedMon2ID]
+ cp b
+ jr nz, .asm_16eb7
+ ld a, [wBreedMon1ID + 1]
+ ld b, a
+ ld a, [wBreedMon2ID + 1]
+ cp b
+ jr nz, .asm_16eb7
+ ld a, c
+ sub $4d
+ ld c, a
+
+.asm_16eb7
+ ld a, c
+ ld [wd265], a
+ ret
+; 16ebc
+
+
+Function16ebc: ; 16ebc (5:6ebc)
+ ld a, [wBreedMon1DVs]
+ and $f
+ ld b, a
+ ld a, [wBreedMon2DVs]
+ and $f
+ cp b
+ ret nz
+ ld a, [wBreedMon1DVs + 1]
+ and $7
+ ld b, a
+ ld a, [wBreedMon2DVs + 1]
+ and $7
+ cp b
+ ret
+; 16ed6
+
+Function16ed6: ; 16ed6
+ ld a, [wBreedMon2Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp $ff
+ jr z, .asm_16f3a
+ ld a, [wBreedMon1Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp $ff
+ jr z, .asm_16f3a
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .asm_16f3c
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld b, a
+ pop af
+ and $f0
+ swap a
+ ld c, a
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .asm_16f3c
+ ld [CurSpecies], a
+ push bc
+ call GetBaseData
+ pop bc
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld d, a
+ pop af
+ and $f0
+ swap a
+ ld e, a
+ ld a, d
+ cp b
+ jr z, .asm_16f3c
+ cp c
+ jr z, .asm_16f3c
+ ld a, e
+ cp b
+ jr z, .asm_16f3c
+ cp c
+ jr z, .asm_16f3c
+
+.asm_16f3a
+ and a
+ ret
+
+.asm_16f3c
+ scf
+ ret
+; 16f3e
+
+DoEggStep:: ; 16f3e
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ ld c, 0
+.loop
+ ld a, [de]
+ inc de
+ cp -1
+ ret z
+ cp EGG
+ jr nz, .next
+ dec [hl]
+ jr nz, .next
+ ld a, 1
+ and a
+ ret
+
+.next
+ push de
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ pop de
+ jr .loop
+; 16f5e
+
+OverworldHatchEgg:: ; 16f5e
+ call ResetWindow
+ call LoadPartyMenuDataHeader
+ call Function16f70
+ call Function2b4d
+ call RestartMapMusic
+ jp LoadMoveSprites
+; 16f70
+
+Function16f70: ; 16f70 (5:6f70)
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ xor a
+ ld [CurPartyMon], a
+
+Function16f7a: ; 16f7a (5:6f7a)
+ ld a, [de]
+ inc de
+ cp -1
+ jp z, Function1708a
+ push de
+ push hl
+ cp EGG
+ jp nz, Function1707d
+ ld a, [hl]
+ and a
+ jp nz, Function1707d
+ ld [hl], $78
+
+ push de
+
+ callba Function4dbb8
+ callba MobileFn_10608d
+ ld a, [CurPartyMon]
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ dec a
+ call SetSeenAndCaughtMon
+
+ ld a, [CurPartySpecies]
+ cp TOGEPI
+ jr nz, .nottogepi
+ ; set the event flag for hatching togepi
+ ld de, EVENT_TOGEPI_HATCHED
+ ld b, SET_FLAG
+ call EventFlagAction
+.nottogepi
+
+ pop de
+
+ ld a, [CurPartySpecies]
+ dec de
+ ld [de], a
+ ld [wd265], a
+ ld [CurSpecies], a
+ call GetPokemonName
+ xor a
+ ld [wd26b], a
+ call GetBaseData
+ ld a, [CurPartyMon]
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld bc, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ push hl
+ ld bc, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ pop hl
+ push hl
+ ld bc, MON_STATUS
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ push hl
+ ld bc, MON_EXP + 2
+ add hl, bc
+ ld b, $0
+ predef CalcPkmnStats
+ pop bc
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_HP
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ld hl, MON_ID
+ add hl, bc
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hl], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
+ ld bc, NAME_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld hl, UnknownText_0x1708b
+ call PrintText
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ push de
+ ld hl, UnknownText_0x170ba
+ call PrintText
+ call YesNoBox
+ pop de
+ jr c, .nonickname
+ ld a, $1
+ ld [wd26b], a
+ xor a
+ ld [MonType], a
+ push de
+ ld b, $0
+ callba Function116c1
+ pop hl
+ ld de, StringBuffer1
+ call InitName
+ jr Function1707d
+.nonickname
+ ld hl, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+Function1707d: ; 1707d (5:707d)
+ ld hl, CurPartyMon
+ inc [hl]
+ pop hl
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ pop de
+ jp Function16f7a
+
+Function1708a: ; 1708a (5:708a)
+ ret
+; 1708b (5:708b)
+
+UnknownText_0x1708b: ; 0x1708b
+ ; Huh? @ @
+ text_jump UnknownText_0x1c0db0
+ start_asm
+; 0x17090
+
+Function17090: ; 17090
+ ld hl, VramState
+ res 0, [hl]
+ push hl
+ push de
+ push bc
+ ld a, [CurPartySpecies]
+ push af
+ call Function1728f
+ ld hl, UnknownText_0x170b0
+ call PrintText
+ pop af
+ ld [CurPartySpecies], a
+ pop bc
+ pop de
+ pop hl
+ ld hl, UnknownText_0x170b5
+ ret
+; 170b0 (5:70b0)
+
+UnknownText_0x170b0: ; 0x170b0
+ ;
+ text_jump UnknownText_0x1c0db8
+ db "@"
+; 0x170b5
+
+UnknownText_0x170b5: ; 0x170b5
+ ; came out of its EGG!@ @
+ text_jump UnknownText_0x1c0dba
+ db "@"
+; 0x170ba
+
+UnknownText_0x170ba: ; 0x170ba
+ ; Give a nickname to @ ?
+ text_jump UnknownText_0x1c0dd8
+ db "@"
+; 0x170bf
+
+Function170bf: ; 170bf
+ call Function17197
+ ld d, h
+ ld e, l
+ ld b, NUM_MOVES
+.loop
+ ld a, [de]
+ and a
+ jr z, .done
+ ld hl, wEggMonMoves
+ ld c, NUM_MOVES
+.next
+ ld a, [de]
+ cp [hl]
+ jr z, .skip
+ inc hl
+ dec c
+ jr nz, .next
+ call Function170e4
+ jr nc, .skip
+ call Function17169
+
+.skip
+ inc de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; 170e4
+
+Function170e4: ; 170e4
+GLOBAL EggMoves
+
+ push bc
+ ld a, [wEggMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EggMovePointers
+rept 2
+ add hl, bc
+endr
+ ld a, BANK(EggMovePointers)
+ call GetFarHalfword
+.loop
+ ld a, BANK(EggMoves)
+ call GetFarByte
+ cp -1
+ jr z, .found_mon
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .done_carry
+ inc hl
+ jr .loop
+
+.found_mon
+ call Function1720b
+ ld b, NUM_MOVES
+.loop2
+ ld a, [de]
+ cp [hl]
+ jr z, .found_eggmove
+ inc hl
+ dec b
+ jr z, .inherit_tmhm
+ jr .loop2
+
+.found_eggmove
+ ld a, [wEggMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EvosAttacksPointers
+rept 2
+ add hl, bc
+endr
+ ld a, BANK(EvosAttacksPointers)
+ call GetFarHalfword
+.loop3
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ inc hl
+ and a
+ jr nz, .loop3
+.loop4
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ and a
+ jr z, .inherit_tmhm
+ inc hl
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .done_carry
+ inc hl
+ jr .loop4
+
+.inherit_tmhm
+ ld hl, TMHMMoves
+.loop5
+ ld a, BANK(TMHMMoves)
+ call GetFarByte
+ inc hl
+ and a
+ jr z, .done
+ ld b, a
+ ld a, [de]
+ cp b
+ jr nz, .loop5
+ ld [wd262], a
+ predef CanLearnTMHMMove
+ ld a, c
+ and a
+ jr z, .done
+
+.done_carry
+ pop bc
+ scf
+ ret
+
+.done
+ pop bc
+ and a
+ ret
+; 17169
+
+Function17169: ; 17169
+ push de
+ push bc
+ ld a, [de]
+ ld b, a
+ ld hl, wEggMonMoves
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ dec c
+ jr nz, .loop
+ ld de, wEggMonMoves
+ ld hl, wEggMonMoves + 1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+
+.done
+ dec hl
+ ld [hl], b
+ ld hl, wEggMonMoves
+ ld de, wEggMonPP
+ predef FillPP
+ pop bc
+ pop de
+ ret
+; 17197
+
+Function17197: ; 17197
+ ld hl, wBreedMon2Moves
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .ditto1
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .ditto2
+ ld a, [wDittoInDaycare]
+ and a
+ ret z
+ ld hl, wBreedMon1Moves
+ ret
+
+.ditto1
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [wBreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon2DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon2DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ jr c, .inherit_mon2_moves
+ jr nz, .inherit_mon2_moves
+ jr .inherit_mon1_moves
+
+.ditto2
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ jr c, .inherit_mon1_moves
+ jr nz, .inherit_mon1_moves
+
+.inherit_mon2_moves
+ ld hl, wBreedMon2Moves
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.inherit_mon1_moves
+ ld hl, wBreedMon1Moves
+ pop af
+ ld [CurPartySpecies], a
+ ret
+; 1720b
+
+Function1720b: ; 1720b
+ ld hl, wBreedMon1Moves
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ ret z
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .ditto
+ ld a, [wDittoInDaycare]
+ and a
+ ret z
+
+.ditto
+ ld hl, wBreedMon2Moves
+ ret
+; 17224
+
+
+Function17224: ; 17224 (5:7224)
+ push de
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BattleMonDVs
+ predef GetUnownLetter
+ pop de
+ predef_jump GetFrontpic
+
+Function1723c: ; 1723c (5:723c)
+ push de
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BattleMonDVs
+ predef GetUnownLetter
+ pop de
+ predef_jump Function5108b
+
+Function17254: ; 17254 (5:7254)
+ push af
+ call WaitTop
+ push hl
+ push bc
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ pop bc
+ pop hl
+ ld a, b
+ ld [hBGMapAddress + 1], a
+ ld a, c
+ ld [hFillBox], a
+ lb bc, 7, 7
+ predef FillBox
+ pop af
+ call Function17363
+ call SetPalettes
+ jp WaitBGMap
+
+Function1727f: ; 1727f (5:727f)
+ push hl
+ push de
+ push bc
+ callab Function8cf69
+ call DelayFrame
+ pop bc
+ pop de
+ pop hl
+ ret
+
+Function1728f: ; 1728f (5:728f)
+ ld a, [wd265]
+ ld [wJumptableIndex], a
+ ld a, [CurSpecies]
+ push af
+ ld de, MUSIC_NONE
+ call PlayMusic
+ callba Function8000
+ call DisableLCD
+ ld hl, EggHatchGFX
+ ld de, VTiles0 tile $00
+ ld bc, $20
+ ld a, BANK(EggHatchGFX)
+ call FarCopyBytes
+ callba Function8cf53
+ ld de, VTiles2 tile $00
+ ld a, [wJumptableIndex]
+ call Function1723c
+ ld de, VTiles2 tile $31
+ ld a, EGG
+ call Function17224
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic
+ call EnableLCD
+ hlcoord 7, 4
+ ld b, $98
+ ld c, $31
+ ld a, EGG
+ call Function17254
+ ld c, $50
+ call DelayFrames
+ xor a
+ ld [wcf64], a
+ ld a, [hSCX]
+ ld b, a
+.asm_172ee
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $8
+ jr nc, .asm_17327
+ ld e, [hl]
+.asm_172f8
+ ld a, $2
+ ld [hSCX], a
+ ld a, $fe
+ ld [wc3c0], a
+ call Function1727f
+ ld c, $2
+ call DelayFrames
+ ld a, $fe
+ ld [hSCX], a
+ ld a, $2
+ ld [wc3c0], a
+ call Function1727f
+ ld c, $2
+ call DelayFrames
+ dec e
+ jr nz, .asm_172f8
+ ld c, $10
+ call DelayFrames
+ call Function1736d
+ jr .asm_172ee
+.asm_17327
+ ld de, SFX_EGG_HATCH
+ call PlaySFX
+ xor a
+ ld [hSCX], a
+ ld [wc3c0], a
+ call ClearSprites
+ call Function173b3
+ hlcoord 6, 3
+ ld b, $98
+ ld c, $0
+ ld a, [wJumptableIndex]
+ call Function17254
+ call Function17418
+ call WaitSFX
+ ld a, [wJumptableIndex]
+ ld [CurPartySpecies], a
+ hlcoord 6, 3
+ ld d, $0
+ ld e, ANIM_MON_HATCH
+ predef AnimateFrontpic
+ pop af
+ ld [CurSpecies], a
+ ret
+
+Function17363: ; 17363 (5:7363)
+ ld [PlayerHPPal], a
+ ld b, $b
+ ld c, $0
+ jp GetSGBLayout
+
+Function1736d: ; 1736d (5:736d)
+ ld a, [wcf64]
+ dec a
+ and $7
+ cp $7
+ ret z
+ srl a
+ ret nc
+ swap a
+ srl a
+ add $4c
+ ld d, a
+ ld e, $58
+ ld a, $19
+ call Function3b2a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ld de, SFX_EGG_CRACK
+ jp PlaySFX
+; 17393 (5:7393)
+
+EggHatchGFX: ; 17393
+INCBIN "gfx/unknown/017393.2bpp"
+; 173b3
+
+Function173b3: ; 173b3 (5:73b3)
+ callba Function8cf53
+ ld hl, Unknown_173ef
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .done
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ push bc
+ ld a, $1c
+ call Function3b2a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ pop de
+ ld a, e
+ ld hl, $1
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld [hl], d
+ pop hl
+ jr .loop
+.done
+ ld de, SFX_EGG_HATCH
+ call PlaySFX
+ call Function1727f
+ ret
+; 173ef (5:73ef)
+
+Unknown_173ef: ; 173ef
+; Probably OAM.
+ db $54, $48, $00, $3c
+ db $5c, $48, $01, $04
+ db $54, $50, $00, $30
+ db $5c, $50, $01, $10
+ db $54, $58, $02, $24
+ db $5c, $58, $03, $1c
+ db $50, $4c, $00, $36
+ db $60, $4c, $01, $0a
+ db $50, $54, $02, $2a
+ db $60, $54, $03, $16
+ db $ff
+; 17418
+
+Function17418: ; 17418 (5:7418)
+ ld c, $81
+.asm_1741a
+ call Function1727f
+ dec c
+ jr nz, .asm_1741a
+ ret
+
+Special_DayCareMon1: ; 17421
+ ld hl, UnknownText_0x17467
+ call PrintText
+ ld a, [wBreedMon1Species]
+ call PlayCry
+ ld a, [wDaycareLady]
+ bit 0, a
+ jr z, Function1745f
+ call KeepTextOpen
+ ld hl, wBreedMon2Nick
+ call Function1746c
+ jp PrintText
+
+Special_DayCareMon2: ; 17440
+ ld hl, UnknownText_0x17462
+ call PrintText
+ ld a, [wBreedMon2Species]
+ call PlayCry
+ ld a, [wDaycareMan]
+ bit 0, a
+ jr z, Function1745f
+ call KeepTextOpen
+ ld hl, wBreedMon1Nick
+ call Function1746c
+ jp PrintText
+
+Function1745f: ; 1745f
+ jp Functiona80
+; 17462
+
+UnknownText_0x17462: ; 0x17462
+ ; It's @ that was left with the DAY-CARE LADY.
+ text_jump UnknownText_0x1c0df3
+ db "@"
+; 0x17467
+
+UnknownText_0x17467: ; 0x17467
+ ; It's @ that was left with the DAY-CARE MAN.
+ text_jump UnknownText_0x1c0e24
+ db "@"
+; 0x1746c
+
+Function1746c: ; 1746c
+ push bc
+ ld de, StringBuffer1
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ call Function16e1d
+ pop bc
+ ld a, [wd265]
+ ld hl, UnknownText_0x1749c
+ cp $ff
+ jr z, .asm_1749b
+ ld hl, UnknownText_0x174a1
+ and a
+ jr z, .asm_1749b
+ ld hl, UnknownText_0x174a6
+ cp 230
+ jr nc, .asm_1749b
+ cp 70
+ ld hl, UnknownText_0x174ab
+ jr nc, .asm_1749b
+ ld hl, UnknownText_0x174b0
+
+.asm_1749b
+ ret
+; 1749c
+
+UnknownText_0x1749c: ; 0x1749c
+ ; It's brimming with energy.
+ text_jump UnknownText_0x1c0e54
+ db "@"
+; 0x174a1
+
+UnknownText_0x174a1: ; 0x174a1
+ ; It has no interest in @ .
+ text_jump UnknownText_0x1c0e6f
+ db "@"
+; 0x174a6
+
+UnknownText_0x174a6: ; 0x174a6
+ ; It appears to care for @ .
+ text_jump UnknownText_0x1c0e8d
+ db "@"
+; 0x174ab
+
+UnknownText_0x174ab: ; 0x174ab
+ ; It's friendly with @ .
+ text_jump UnknownText_0x1c0eac
+ db "@"
+; 0x174b0
+
+UnknownText_0x174b0: ; 0x174b0
+ ; It shows interest in @ .
+ text_jump UnknownText_0x1c0ec6
+ db "@"
+; 0x174b5
+
+Function_174b5: ; 174b5
+ ld hl, String_174b9
+ ret
+; 174b9
+
+String_174b9: ; 174b9
+ db "@"
+; 174ba
+