shithub: pokecrystal

Download patch

ref: 4d1091f8d914efeae0b3834d2f67d031bde79625
parent: a15bd15e2adb91922661015b2e7a35b352c64af7
author: yenatch <[email protected]>
date: Sun Dec 22 12:17:33 EST 2013

poke seer special

--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -27,7 +27,6 @@
 SPECIAL_HOOHCHAMBER       EQU $008d
 
 SPECIAL_CELEBI            EQU $008f
-
 SPECIAL_AFTERCELEBI       EQU $0090
 SPECIAL_POKESEER          EQU $0091
 
--- a/main.asm
+++ b/main.asm
@@ -7963,7 +7963,7 @@
 	dbw BANK(Function102142), Function102142
 	dbw BANK(Function4989a), Function4989a
 	dbw BANK(Function49bf9), Function49bf9
-	dbw BANK(Function4f0bc), Function4f0bc
+	dbw BANK(SpecialPokeSeer), SpecialPokeSeer
 	dbw BANK(Function8af6b), Function8af6b
 	dbw BANK(Function8afd4), Function8afd4
 	dbw BANK(SpecialDratini),SpecialDratini
@@ -33303,7 +33303,7 @@
 	call GetPartyLocation
 	ld b, h
 	ld c, l
-	callba Function4f301
+	callba GetCaughtGender
 	ld a, c
 	ld [$c701], a
 	ld hl, $d26b
@@ -33342,7 +33342,7 @@
 	call GetPartyLocation
 	ld b, h
 	ld c, l
-	callba Function4f301
+	callba GetCaughtGender
 	ld a, c
 	ld [$c733], a
 	ld a, [DefaultFlypoint]
@@ -50438,91 +50438,105 @@
 INCLUDE "misc/gbc_only.asm"
 
 
-Function4f0bc: ; 4f0bc
-	ld a, $0
-	call Function4f26d
+SEER_INTRO      EQU 0
+SEER_CANT_TELL  EQU 1
+SEER_MET_AT     EQU 2
+SEER_TIME_LEVEL EQU 3
+SEER_TRADED     EQU 4
+SEER_CANCEL     EQU 5
+SEER_EGG        EQU 6
+SEER_LEVEL_ONLY EQU 7
+
+SpecialPokeSeer: ; 4f0bc
+	ld a, SEER_INTRO
+	call PrintSeerText
 	call Functiona36
+
 	ld b, $6
 	callba Function50000
-	jr c, .asm_4f0e1
+	jr c, .cancel
+
 	ld a, [CurPartySpecies]
-	cp $fd
-	jr z, .asm_4f0e8
+	cp EGG
+	jr z, .egg
+
 	call IsAPokemon
-	jr c, .asm_4f0e7
-	call Function4f134
-	call Function4f0ee
+	jr c, .no_mon
+
+	call ReadCaughtData
+	call SeerAction
 	ret
 
-.asm_4f0e1
-	ld a, $5
-	call Function4f26d
+.cancel
+	ld a, SEER_CANCEL
+	call PrintSeerText
 	ret
 
-.asm_4f0e7
+.no_mon
 	ret
 
-.asm_4f0e8
-	ld a, $6
-	call Function4f26d
+.egg
+	ld a, SEER_EGG
+	call PrintSeerText
 	ret
 ; 4f0ee
 
-Function4f0ee: ; 4f0ee
-	ld a, [DefaultFlypoint]
-	ld hl, $70f6
+
+SeerAction: ; 4f0ee
+	ld a, [$d002]
+	ld hl, SeerActions
 	rst JumpTable
 	ret
 ; 4f0f6
 
-Table4f0f6: ; 4f0f6
-	dw Function4f100
-	dw Function4f10e
-	dw Function4f11f
-	dw Function4f125
-	dw Function4f12b
+SeerActions: ; 4f0f6
+	dw SeerAction0
+	dw SeerAction1
+	dw SeerAction2
+	dw SeerAction3
+	dw SeerAction4
 ; 4f100
 
-Function4f100: ; 4f100
-	ld a, $2
-	call Function4f26d
-	ld a, $3
-	call Function4f26d
-	call Function4f2b4
+SeerAction0: ; 4f100
+	ld a, SEER_MET_AT
+	call PrintSeerText
+	ld a, SEER_TIME_LEVEL
+	call PrintSeerText
+	call SeerAdvice
 	ret
 ; 4f10e
 
-Function4f10e: ; 4f10e
-	call Function4f242
-	ld a, $4
-	call Function4f26d
-	ld a, $3
-	call Function4f26d
-	call Function4f2b4
+SeerAction1: ; 4f10e
+	call GetCaughtOT
+	ld a, SEER_TRADED
+	call PrintSeerText
+	ld a, SEER_TIME_LEVEL
+	call PrintSeerText
+	call SeerAdvice
 	ret
 ; 4f11f
 
-Function4f11f: ; 4f11f
-	ld a, $1
-	call Function4f26d
+SeerAction2: ; 4f11f
+	ld a, SEER_CANT_TELL
+	call PrintSeerText
 	ret
 ; 4f125
 
-Function4f125: ; 4f125
-	ld a, $1
-	call Function4f26d
+SeerAction3: ; 4f125
+	ld a, SEER_CANT_TELL
+	call PrintSeerText
 	ret
 ; 4f12b
 
-Function4f12b: ; 4f12b
-	ld a, $7
-	call Function4f26d
-	call Function4f2b4
+SeerAction4: ; 4f12b
+	ld a, SEER_LEVEL_ONLY
+	call PrintSeerText
+	call SeerAdvice
 	ret
 ; 4f134
 
-Function4f134: ; 4f134
-	ld a, $1d
+ReadCaughtData: ; 4f134
+	ld a, PartyMon1CaughtData - PartyMon1
 	call GetPartyParamLocation
 	ld a, [hli]
 	ld [$d03b], a
@@ -50530,58 +50544,64 @@
 	ld [$d03c], a
 	or [hl]
 	jr z, .asm_4f170
-	ld a, $1
-	ld [DefaultFlypoint], a
-	ld a, $6
+
+	ld a, 1
+	ld [$d002], a
+
+	ld a, PartyMon1ID - PartyMon1
 	call GetPartyParamLocation
 	ld a, [PlayerID]
 	cp [hl]
 	jr nz, .asm_4f15f
+
 	inc hl
 	ld a, [$d47c]
 	jr nz, .asm_4f15f
-	ld a, $0
-	ld [DefaultFlypoint], a
 
+	ld a, 0
+	ld [$d002], a
+
 .asm_4f15f
-	call Function4f18c
-	call Function4f242
-	call Function4f176
-	call Function4f1c5
-	call Function4f20a
+	call GetCaughtLevel
+	call GetCaughtOT
+	call GetCaughtName
+	call GetCaughtTime
+	call GetCaughtLocation
 	and a
 	ret
 
 .asm_4f170
-	ld a, $2
-	ld [DefaultFlypoint], a
+	ld a, 2
+	ld [$d002], a
 	ret
 ; 4f176
 
-Function4f176: ; 4f176
+GetCaughtName: ; 4f176
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Nickname
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call AddNTimes
 	ld de, $d003
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	ret
 ; 4f18c
 
-Function4f18c: ; 4f18c
-	ld a, $50
+GetCaughtLevel: ; 4f18c
+	ld a, "@"
 	ld hl, $d036
-	ld bc, $0004
+	ld bc, 4
 	call ByteFill
+
+	; caught level
 	ld a, [$d03b]
 	and $3f
-	jr z, .asm_4f1b4
-	cp $1
-	jr nz, .asm_4f1a4
-	ld a, $5
+	jr z, .unknown
+	cp 1 ; hatched from an egg
+	jr nz, .print
+	ld a, 5 ; egg hatch level
 
-.asm_4f1a4
+.print
 	ld [$d03a], a
 	ld hl, $d036
 	ld de, $d03a
@@ -50589,24 +50609,27 @@
 	call PrintNum
 	ret
 
-.asm_4f1b4
+.unknown
 	ld de, $d036
-	ld hl, $71c1
-	ld bc, $0004
+	ld hl, .unknown_level
+	ld bc, 4
 	call CopyBytes
 	ret
 ; 4f1c1
 
-INCBIN "baserom.gbc",$4f1c1,$4f1c5 - $4f1c1
+.unknown_level ; 4f1c1
+	db "???@"
+; 4f1c5
 
-Function4f1c5: ; 4f1c5
+GetCaughtTime: ; 4f1c5
 	ld a, [$d03b]
 	and $c0
-	jr z, .asm_4f1df
+	jr z, .none
+
 	rlca
 	rlca
 	dec a
-	ld hl, $71e6
+	ld hl, .times
 	call GetNthString
 	ld d, h
 	ld e, l
@@ -50615,24 +50638,30 @@
 	and a
 	ret
 
-.asm_4f1df
+.none
 	ld de, $d01f
-	call Function4f1f8
+	call UnknownCaughtData
 	ret
 ; 4f1e6
 
-INCBIN "baserom.gbc",$4f1e6,$4f1f8 - $4f1e6
+.times ; 4f1e6
+	db "Morning@"
+	db "Day@"
+	db "Night@"
+; 4f1f8
 
-Function4f1f8: ; 4f1f8
-	ld hl, $7202
+UnknownCaughtData: ; 4f1f8
+	ld hl, .unknown
 	ld bc, $000b
 	call CopyBytes
 	ret
 ; 4f202
 
-INCBIN "baserom.gbc",$4f202,$4f20a - $4f202
+.unknown ; 4f202
+	db "Unknown@"
+; 4f20a
 
-Function4f20a: ; 4f20a
+GetCaughtLocation: ; 4f20a
 	ld a, [$d03c]
 	and $7f
 	jr z, .asm_4f22e
@@ -50651,22 +50680,22 @@
 
 .asm_4f22e
 	ld de, $d00e
-	jp Function4f1f8
+	jp UnknownCaughtData
 
 .asm_4f234
 	ld a, $4
-	ld [DefaultFlypoint], a
+	ld [$d002], a
 	scf
 	ret
 
 .asm_4f23b
 	ld a, $3
-	ld [DefaultFlypoint], a
+	ld [$d002], a
 	scf
 	ret
 ; 4f242
 
-Function4f242: ; 4f242
+GetCaughtOT: ; 4f242
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1OT
 	ld bc, $000b
@@ -50674,25 +50703,29 @@
 	ld de, $d02a
 	ld bc, $000b
 	call CopyBytes
-	ld hl, $726b
+	ld hl, .male
 	ld a, [$d03c]
 	bit 7, a
 	jr z, .asm_4f264
-	ld hl, $726c
+	ld hl, .female
 
 .asm_4f264
 	ld de, $d035
-	ld a, $50
+	ld a, "@"
 	ld [de], a
 	ret
 ; 4f26b
 
-INCBIN "baserom.gbc",$4f26b,$4f26d - $4f26b
+.male ; 4f26b
+	db "@"
+.female ; 4f26c
+	db "@"
+; 4f26d
 
-Function4f26d: ; 4f26d
+PrintSeerText: ; 4f26d
 	ld e, a
-	ld d, $0
-	ld hl, $727c
+	ld d, 0
+	ld hl, SeerTexts
 	add hl, de
 	add hl, de
 	ld a, [hli]
@@ -50702,10 +50735,68 @@
 	ret
 ; 4f27c
 
-INCBIN "baserom.gbc",$4f27c,$4f2b4 - $4f27c
+SeerTexts: ; 4f27c
+	dw SeerIntroText
+	dw SeerCantTellText
+	dw SeerMetAtText
+	dw SeerTimeLevelText
+	dw SeerTradedText
+	dw SeerCancelText
+	dw SeerEggText
+	dw SeerLevelOnlyText
+; 4f28c
 
-Function4f2b4: ; 4f2b4
-	ld a, $1f
+SeerIntroText: ; 0x4f28c
+	; I see all. I know all… Certainly, I know of your #MON!
+	text_jump UnknownText_0x1c475f
+	db "@"
+; 0x4f291
+
+SeerCantTellText: ; 0x4f291
+	; Whaaaat? I can't tell a thing! How could I not know of this?
+	text_jump UnknownText_0x1c4797
+	db "@"
+; 0x4f296
+
+SeerMetAtText: ; 0x4f296
+	; Hm… I see you met @  here: @ !
+	text_jump UnknownText_0x1c47d4
+	db "@"
+; 0x4f29b
+
+SeerTimeLevelText: ; 0x4f29b
+	; The time was @ ! Its level was @ ! Am I good or what?
+	text_jump UnknownText_0x1c47fa
+	db "@"
+; 0x4f2a0
+
+SeerTradedText: ; 0x4f2a0
+	; Hm… @ came from @ in a trade? @ was where @ met @ !
+	text_jump UnknownText_0x1c4837
+	db "@"
+; 0x4f2a5
+
+SeerLevelOnlyText: ; 0x4f2a5
+	; What!? Incredible! I don't understand how, but it is incredible! You are special. I can't tell where you met it, but it was at level @ . Am I good or what?
+	text_jump UnknownText_0x1c487f
+	db "@"
+; 0x4f2aa
+
+SeerEggText: ; 0x4f2aa
+	; Hey! That's an EGG! You can't say that you've met it yet…
+	text_jump UnknownText_0x1c491d
+	db "@"
+; 0x4f2af
+
+SeerCancelText: ; 0x4f2af
+	; Fufufu! I saw that you'd do nothing!
+	text_jump UnknownText_0x1c4955
+	db "@"
+; 0x4f2b4
+
+
+SeerAdvice: ; 4f2b4
+	ld a, PartyMon1Level - PartyMon1
 	call GetPartyParamLocation
 	ld a, [$d03a]
 	ld c, a
@@ -50712,16 +50803,17 @@
 	ld a, [hl]
 	sub c
 	ld c, a
-	ld hl, $72d6
-	ld de, $0003
-.asm_4f2c6
+
+	ld hl, SeerAdviceTexts
+	ld de, 3
+.next
 	cp [hl]
-	jr c, .asm_4f2ce
-	jr z, .asm_4f2ce
+	jr c, .print
+	jr z, .print
 	add hl, de
-	jr .asm_4f2c6
+	jr .next
 
-.asm_4f2ce
+.print
 	inc hl
 	ld a, [hli]
 	ld h, [hl]
@@ -50730,29 +50822,69 @@
 	ret
 ; 4f2d6
 
-INCBIN "baserom.gbc",$4f2d6,$4f301 - $4f2d6
+SeerAdviceTexts: ; 4f2d6
+; level, text
+	dbw 9,   SeerAdvice1
+	dbw 29,  SeerAdvice2
+	dbw 59,  SeerAdvice3
+	dbw 89,  SeerAdvice4
+	dbw 100, SeerAdvice5
+	dbw 255, SeerAdvice1
+; 4f2e8
 
+SeerAdvice1: ; 0x4f2e8
+	; Incidentally… It would be wise to raise your #MON with a little more care.
+	text_jump UnknownText_0x1c497a
+	db "@"
+; 0x4f2ed
 
-Function4f301: ; 4f301
-	ld hl, $001e
+SeerAdvice2: ; 0x4f2ed
+	; Incidentally… It seems to have grown a little. @  seems to be becoming more confident.
+	text_jump UnknownText_0x1c49c6
+	db "@"
+; 0x4f2f2
+
+SeerAdvice3: ; 0x4f2f2
+	; Incidentally… @  has grown. It's gained much strength.
+	text_jump UnknownText_0x1c4a21
+	db "@"
+; 0x4f2f7
+
+SeerAdvice4: ; 0x4f2f7
+	; Incidentally… It certainly has grown mighty! This @ must have come through numerous #MON battles. It looks brimming with confidence.
+	text_jump UnknownText_0x1c4a5b
+	db "@"
+; 0x4f2fc
+
+SeerAdvice5: ; 0x4f2fc
+	; Incidentally… I'm impressed by your dedication. It's been a long time since I've seen a #MON as mighty as this @ . I'm sure that seeing @ in battle would excite anyone.
+	text_jump UnknownText_0x1c4ae5
+	db "@"
+; 0x4f301
+
+
+GetCaughtGender: ; 4f301
+	ld hl, PartyMon1CaughtGender - PartyMon1
 	add hl, bc
+
 	ld a, [hl]
 	and $7f
-	jr z, .asm_4f319
+	jr z, .genderless
 	cp $7f
-	jr z, .asm_4f319
+	jr z, .genderless
+
 	ld a, [hl]
 	and $80
-	jr nz, .asm_4f316
-	ld c, $1
+	jr nz, .male
+	ld c, 1
 	ret
 
-.asm_4f316
-	ld c, $2
+.male
+	ld c, 2
 	ret
 
-.asm_4f319
-	ld c, $0
+.genderless
+	ld c, 0
 	ret
 ; 4f31c
 
@@ -82528,7 +82660,7 @@
 	call Functionfcdd7
 	ld b, h
 	ld c, l
-	callba Function4f301
+	callba GetCaughtGender
 	ld a, c
 	ld [$c701], a
 	ld e, $0
@@ -92647,7 +92779,7 @@
 	ld a, [hl]
 	ld [$c730], a
 	ld bc, EnemyMovePP
-	callba Function4f301
+	callba GetCaughtGender
 	ld a, c
 	ld [$c733], a
 	call SpeechTextBox
--- a/maps/PokeSeersHouse.asm
+++ b/maps/PokeSeersHouse.asm
@@ -6,10 +6,10 @@
 	db 0
 ; 0x9e36e
 
-GrannyScript_0x9e36e: ; 0x9e36e
+SeerScript: ; 0x9e36e
 	faceplayer
 	loadfont
-	special $0091
+	special SPECIAL_POKESEER
 	closetext
 	loadmovesprites
 	end
@@ -32,6 +32,6 @@
 
 	; people-events
 	db 1
-	person_event SPRITE_GRANNY, 7, 6, $6, $0, 255, 255, $80, 0, GrannyScript_0x9e36e, $ffff
+	person_event SPRITE_GRANNY, 7, 6, $6, $0, 255, 255, $80, 0, SeerScript, $ffff
 ; 0x9e393