Summer Beach House fixes, evo moves (bugs!)

Evo moves commit is unfinished and doesn't work properly. Script in evolve.asm has details.

Summer Beach House now teaches Pikachu Surf and has two issues; one is that backing out of teaching Pikachu causes issues (basically, it only goes a correct way if you say yes), and the teaching menu uses tiles from the overworld because I am stupid.

Are you a bad enough dude to fix these bugs?
This commit is contained in:
Llinos Evans 2024-08-04 14:40:07 +01:00
parent 0dd22ececa
commit 892e8fc6b1
7 changed files with 505 additions and 23 deletions

View file

@ -0,0 +1,400 @@
EvolutionMoves::
dw NO_MOVE ;BULBASAUR ; 01
dw NO_MOVE ;IVYSAUR ; 02
dw NO_MOVE ;VENUSAUR ; 03
dw NO_MOVE ;CHARMANDER ; 04
dw NO_MOVE ;CHARMELEON ; 05
dw NO_MOVE ;CHARIZARD ; 06
dw NO_MOVE ;CHARMADA
dw NO_MOVE ;SQUIRTLE ; 07
dw NO_MOVE ;WARTORTLE ; 08
dw NO_MOVE ;TOTARTLE ; 09
dw NO_MOVE ;CATERPIE ; 0a
dw NO_MOVE ;METAPOD ; 0b
dw NO_MOVE ;BUTTERFREE ; 0c
dw NO_MOVE ;WEEDLE ; 0d
dw NO_MOVE ;KAKUNA ; 0e
dw NO_MOVE ;BEEDRILL ; 0f
dw NO_MOVE ;GENTLARVA
dw NO_MOVE ;PUPAL
dw NO_MOVE ;CARAPTHOR
dw NO_MOVE ;KOTORA
dw NO_MOVE ;GAOTORA
dw NO_MOVE ;GOROTORA
dw NO_MOVE ;RAITORA
dw NO_MOVE ;PIDGEY ; 10
dw NO_MOVE ;PIDGEOTTO ; 11
dw NO_MOVE ;PIDGEOT ; 12
dw NO_MOVE ;RATTATA ; 13
dw NO_MOVE ;RATICATE ; 14
dw NO_MOVE ;SPEAROW ; 15
dw NO_MOVE ;FEAROW ; 16
dw NO_MOVE ;EKANS ; 17
dw NO_MOVE ;ARBOK ; 18
dw NO_MOVE ;PIKACHU ; 19
dw NO_MOVE ;RAICHU ; 1a
dw NO_MOVE ;GOROCHU
dw NO_MOVE ;SANDSHREW ; 1b
dw NO_MOVE ;SANDSLASH ; 1c
dw NO_MOVE ;NIDORAN_F ; 1d
dw NO_MOVE ;NIDORINA ; 1e
dw NO_MOVE ;NIDOQUEEN ; 1f
dw NO_MOVE ;NIDORAN_M ; 20
dw NO_MOVE ;NIDORINO ; 21
dw NO_MOVE ;NIDOKING ; 22
dw NO_MOVE ;NIDOREIGN
dw NO_MOVE ;CLEFAIRY ; 23
dw NO_MOVE ;CLEFABLE ; 24
dw NO_MOVE ;VULPIII
dw NO_MOVE ;VULPIX ; 25
dw NO_MOVE ;NINETALES ; 26
dw NO_MOVE ;JIGGLYPUFF ; 27
dw NO_MOVE ;WIGGLYTUFF ; 28
dw NO_MOVE ;BITTYBAT
dw NO_MOVE ;ZUBAT ; 29
dw NO_MOVE ;GOLBAT ; 2a
dw NO_MOVE ;ODDISH ; 2b
dw NO_MOVE ;GLOOM ; 2c
dw NO_MOVE ;VILEPLUME ; 2d
dw NO_MOVE ;PARASPOR
dw NO_MOVE ;PARAS ; 2e
dw NO_MOVE ;PARASECT ; 2f
dw NO_MOVE ;VENONAT ; 30
dw NO_MOVE ;VENOMOTH ; 31
dw NO_MOVE ;DIGLETT ; 32
dw NO_MOVE ;DUGTRIO ; 33
dw NO_MOVE ;COINPUR
dw NO_MOVE ;MEOWTH ; 34
dw NO_MOVE ;PERSIAN ; 35
dw NO_MOVE ;PERRSERKER
dw NO_MOVE ;PSYDUCK ; 36
dw NO_MOVE ;WEIRDUCK
dw NO_MOVE ;GOLDUCK ; 37
dw NO_MOVE ;MANKEY ; 38
dw NO_MOVE ;PRIMEAPE ; 39
dw NO_MOVE ;ANNIHILAPE
dw NO_MOVE ;PUPPERON
dw NO_MOVE ;GROWLITHE ; 3a
dw NO_MOVE ;ARCANINE ; 3b
dw NO_MOVE ;POLIWAG ; 3c
dw NO_MOVE ;POLIWHIRL ; 3d
dw NO_MOVE ;POLIWRATH ; 3e
dw NO_MOVE ;ABRA ; 3f
dw NO_MOVE ;KADABRA ; 40
dw NO_MOVE ;ALAKAZAM ; 41
dw NO_MOVE ;MACHOP ; 42
dw NO_MOVE ;MACHOKE ; 43
dw NO_MOVE ;MACHAMP ; 44
dw NO_MOVE ;BELLSPROUT ; 45
dw NO_MOVE ;WEEPINBELL ; 46
dw NO_MOVE ;VICTREEBEL ; 47
dw NO_MOVE ;BELLIGNAN
dw NO_MOVE ;TENTACOOL ; 48
dw NO_MOVE ;TENTACRUEL ; 49
dw NO_MOVE ;TOEDSCOOL
dw NO_MOVE ;TOEDSCRUEL
dw NO_MOVE ;BLOTTLE
dw NO_MOVE ;PENDRAKEN
dw NO_MOVE ;GEODUDE ; 4a
dw NO_MOVE ;GRAVELER ; 4b
dw NO_MOVE ;GOLEM ; 4c
dw NO_MOVE ;KOLTA
dw NO_MOVE ;PONYTA ; 4d
dw NO_MOVE ;RAPIDASH ; 4e
dw NO_MOVE ;BALUMBA
dw NO_MOVE ;SLOWPOKE ; 4f
dw NO_MOVE ;SLOWBRO ; 50
dw NO_MOVE ;MAGNEMITE ; 51
dw NO_MOVE ;MAGNETITE
dw NO_MOVE ;MAGNETON ; 52
dw NO_MOVE ;MAGNEZONE
dw NO_MOVE ;GAVILLAIN
dw NO_MOVE ;CHEEP
dw NO_MOVE ;JABETTA
dw NO_MOVE ;RIBBITO
dw NO_MOVE ;CROAKOZUNA
dw NO_MOVE ;FARFETCH_D ; 53
dw NO_MOVE ;LUXWAN
dw NO_MOVE ;DODUO ; 54
dw NO_MOVE ;DODRIO ; 55
dw NO_MOVE ;SEEL ; 56
dw NO_MOVE ;DEWGONG ; 57
dw NO_MOVE ;SMUJJ
dw NO_MOVE ;GRIMER ; 58
dw NO_MOVE ;MUK ; 59
dw NO_MOVE ;SHELLDER ; 5a
dw NO_MOVE ;CLOYSTER ; 5b
dw NO_MOVE ;DISTURBAN
dw NO_MOVE ;GASTLY ; 5c
dw NO_MOVE ;HAUNTER ; 5d
dw NO_MOVE ;GENGAR ; 5e
dw NO_MOVE ;ONIX ; 5f
dw NO_MOVE ;DROWZEE ; 60
dw NO_MOVE ;HYPNO ; 61
dw NO_MOVE ;KRABBY ; 62
dw NO_MOVE ;KINGLER ; 63
dw NO_MOVE ;VOLTORB ; 64
dw NO_MOVE ;ELECTRODE ; 65
dw NO_MOVE ;EXEGGCUTE ; 66
dw NO_MOVE ;EXEGGUTOR ; 67
dw NO_MOVE ;CUBONE ; 68
dw NO_MOVE ;MAROWAK ; 69
dw NO_MOVE ;GUARDIA
dw NO_MOVE ;HITMONLEE ; 6a
dw NO_MOVE ;HITMONCHAN ; 6b
dw NO_MOVE ;LICKITUNG ; 6c
dw NO_MOVE ;LICKILICKY
dw NO_MOVE ;LICKILORD
dw NO_MOVE ;KOFFING ; 6d
dw NO_MOVE ;WEEZING ; 6e
dw NO_MOVE ;RHYHORN ; 6f
dw NO_MOVE ;RHYDON ; 70
dw NO_MOVE ;HAPPINY
dw NO_MOVE ;CHANSEY ; 71
dw NO_MOVE ;BURGELA
dw NO_MOVE ;TANGELA ; 72
dw NO_MOVE ;TANGROWTH
dw NO_MOVE ;JUNGELA
dw NO_MOVE ;KANGASKHAN ; 73
dw NO_MOVE ;HORSEA ; 74
dw NO_MOVE ;SEADRA ; 75
dw NO_MOVE ;BLASTYKE
dw NO_MOVE ;BLASTOISE
dw NO_MOVE ;ORFRY
dw NO_MOVE ;GOLDEEN ; 76
dw NO_MOVE ;SEAKING ; 77
dw NO_MOVE ;STARYU ; 78
dw NO_MOVE ;STARMIE ; 79
dw NO_MOVE ;MIME_JR_
dw NO_MOVE ;MR__MIME ; 7a
dw NO_MOVE ;SCYTHER ; 7b
dw NO_MOVE ;KLEAVOR
dw NO_MOVE ;JYNX ; 7c
dw NO_MOVE ;BUU
dw NO_MOVE ;ELECTABUZZ ; 7d
dw NO_MOVE ;ELECTIVIRE
dw NO_MOVE ;MAGMAR ; 7e
dw NO_MOVE ;MAGMORTAR
dw NO_MOVE ;PINSIR ; 7f
dw NO_MOVE ;TRICULES
dw NO_MOVE ;TAUROS ; 80
dw NO_MOVE ;MAGIKARP ; 81
dw NO_MOVE ;GYARADOS ; 82
dw NO_MOVE ;MAGIPREY
dw NO_MOVE ;TERRADOS
dw NO_MOVE ;LAPRAS ; 83
dw NO_MOVE ;DITTO ; 84
dw NO_MOVE ;MIMMEO
dw NO_MOVE ;EEVEE ; 85
dw NO_MOVE ;VAPOREON ; 86
dw NO_MOVE ;JOLTEON ; 87
dw NO_MOVE ;FLAREON ; 88
dw NO_MOVE ;PORYGON ; 89
dw NO_MOVE ;OMANYTE ; 8a
dw NO_MOVE ;OMASTAR ; 8b
dw NO_MOVE ;KABUTO ; 8c
dw NO_MOVE ;KABUTOPS ; 8d
dw NO_MOVE ;FERADACTYL
dw NO_MOVE ;AERODACTYL ; 8e
dw NO_MOVE ;DECILLA
dw NO_MOVE ;GAWARHED
dw NO_MOVE ;MUNCHLAX
dw NO_MOVE ;SNORLAX ; 8f
dw NO_MOVE ;ARTICUNO ; 90
dw NO_MOVE ;ZAPDOS ; 91
dw NO_MOVE ;MOLTRES ; 92
dw NO_MOVE ;SQUEAMATA
dw NO_MOVE ;MINISTARE
dw NO_MOVE ;IGUANARCH
dw NO_MOVE ;DRATINI ; 93
dw NO_MOVE ;DRAGONAIR ; 94
dw NO_MOVE ;DRAGONITE ; 95
dw NO_MOVE ;MEWTWO ; 96
dw NO_MOVE ;MEW ; 97
dw NO_MOVE ;CHIKORITA ; 98
dw NO_MOVE ;BAYLEEF ; 99
dw NO_MOVE ;MEGANIUM ; 9a
dw NO_MOVE ;CYNDAQUIL ; 9b
dw NO_MOVE ;QUILAVA ; 9c
dw NO_MOVE ;TYPHLOSION ; 9d
dw NO_MOVE ;TOTODILE ; 9e
dw NO_MOVE ;CROCONAW ; 9f
dw NO_MOVE ;FERALIGATR ; a0
dw NO_MOVE ;CUBBURN
dw NO_MOVE ;FLAMBEAR
dw NO_MOVE ;BRUINOUS
dw NO_MOVE ;PALSSIO
dw NO_MOVE ;PRESSIO
dw NO_MOVE ;DONMARIN
dw NO_MOVE ;SENTRET ; a1
dw NO_MOVE ;FURRET ; a2
dw NO_MOVE ;HOOTHOOT ; a3
dw NO_MOVE ;NOCTOWL ; a4
dw NO_MOVE ;LEDYBA ; a5
dw NO_MOVE ;LEDIAN ; a6
dw NO_MOVE ;SPINARAK ; a7
dw NO_MOVE ;ARIADOS ; a8
dw NO_MOVE ;FOLAGE
dw CONFUSION ;BARREAU
dw MOONLIGHT ;CROBAT ; a9
dw NO_MOVE ;CHINCHOU ; aa
dw NO_MOVE ;LANTURN ; ab
dw NO_MOVE ;REROAD
dw NO_MOVE ;PICHU ; ac
dw NO_MOVE ;CLEFFA ; ad
dw NO_MOVE ;IGGLYBUFF ; ae
dw NO_MOVE ;TOGEPI ; af
dw NO_MOVE ;TOGETIC ; b0
dw NO_MOVE ;TOGEKISS
dw NO_MOVE ;NATU ; b1
dw NO_MOVE ;QATU
dw NO_MOVE ;XATU ; b2
dw NO_MOVE ;MOIBELLE
dw NO_MOVE ;BELLEDAM
dw NO_MOVE ;MAREEP ; b3
dw NO_MOVE ;FLAAFFY ; b4
dw NO_MOVE ;AMPHAROS ; b5
dw NO_MOVE ;BELLOSSOM ; b6
dw NO_MOVE ;AZURILL
dw NO_MOVE ;MARILL ; b7
dw NO_MOVE ;AZUMARILL ; b8
dw NO_MOVE ;BONSLY
dw NO_MOVE ;SUDOWOODO ; b9
dw NO_MOVE ;POLITOED ; ba
dw NO_MOVE ;HOPPIP ; bb
dw NO_MOVE ;SKIPLOOM ; bc
dw NO_MOVE ;JUMPLUFF ; bd
dw NO_MOVE ;AIPOM ; be
dw NO_MOVE ;AMBIPOM
dw NO_MOVE ;SUNKERN ; bf
dw NO_MOVE ;SUNBUD
dw NO_MOVE ;SUNFLORA ; c0
dw NO_MOVE ;HIPPUNK
dw NO_MOVE ;AERCROW
dw NO_MOVE ;FOXFIRE
dw NO_MOVE ;YANMA ; c1
dw NO_MOVE ;YANMEGA
dw NO_MOVE ;PENDING03
dw NO_MOVE ;WOOPER ; c2
dw NO_MOVE ;QUAGSIRE ; c3
dw NO_MOVE ;ESPEON ; c4
dw NO_MOVE ;UMBREON ; c5
dw NO_MOVE ;LEAFEON
dw NO_MOVE ;GLACEON
dw NO_MOVE ;SYLVEON
dw NO_MOVE ;MURKROW ; c6
dw NO_MOVE ;HONCHKROW
dw NO_MOVE ;SLOWKING ; c7
dw NO_MOVE ;MISDREAVUS ; c8
dw NO_MOVE ;MISMAGIUS
dw NO_MOVE ;STROMEN
dw NO_MOVE ;PHANDARIN
dw NO_MOVE ;UNOWN ; c9
dw NO_MOVE ;WYNAUT
dw NO_MOVE ;WOBBUFFET ; ca
dw NO_MOVE ;BIPULLA
dw NO_MOVE ;GIRAFARIG ; cb
dw NO_MOVE ;FARIGIRAF
dw NO_MOVE ;EMORDROME
dw NO_MOVE ;PINECO ; cc
dw NO_MOVE ;FORRETRESS ; cd
dw NO_MOVE ;DUNSPARCE ; ce
dw NO_MOVE ;DUDUNSPARCE
dw NO_MOVE ;GLIGAR ; cf
dw NO_MOVE ;STEELIX ; d0
dw NO_MOVE ;SNUBBULL ; d1
dw NO_MOVE ;GRANBULL ; d2
dw NO_MOVE ;CARETORKER
dw NO_MOVE ;QWILFISH ; d3
dw NO_MOVE ;KAZAPPELIN
dw NO_MOVE ;QWILFATHER
dw NO_MOVE ;SCIZOR ; d4
dw NO_MOVE ;SHUCKLE ; d5
dw NO_MOVE ;POCKLE
dw NO_MOVE ;HERACROSS ; d6
dw NO_MOVE ;SNEASEL ; d7
dw NO_MOVE ;TEDDIURSA ; d8
dw NO_MOVE ;URSARING ; d9
dw NO_MOVE ;URSALUNA
dw NO_MOVE ;SLUGMA ; da
dw NO_MOVE ;MAGCARGO ; db
dw NO_MOVE ;SWINUB ; dc
dw NO_MOVE ;PILOSWINE ; dd
dw NO_MOVE ;MAMOSWINE
dw NO_MOVE ;HIRSUSWINE
dw NO_MOVE ;CORSOLA ; de
dw NO_MOVE ;REMORAID ; df
dw NO_MOVE ;OCTILLERY ; e0
dw NO_MOVE ;STRICHEEL
dw NO_MOVE ;LURREEL
dw NO_MOVE ;DELIBIRD ; e1
dw NO_MOVE ;MANTYKE
dw NO_MOVE ;MANTINE ; e2
dw NO_MOVE ;SKARMORY ; e3
dw NO_MOVE ;HOUNDOUR ; e4
dw NO_MOVE ;HOUNDOOM ; e5
dw NO_MOVE ;KINGDRA ; e6
dw NO_MOVE ;PHANPY ; e7
dw NO_MOVE ;DONPHAN ; e8
dw NO_MOVE ;PORYGON2 ; e9
dw NO_MOVE ;PORYGON_Z
dw NO_MOVE ;STANTLER ; ea
dw NO_MOVE ;WYRDEER
dw NO_MOVE ;SMEARGLE ; eb
dw NO_MOVE ;GRENMAR
dw NO_MOVE ;TYROGUE ; ec
dw NO_MOVE ;HITMONTOP ; ed
dw NO_MOVE ;SMOOCHUM ; ee
dw NO_MOVE ;ELEBEBI
dw NO_MOVE ;ELEKID ; ef
dw NO_MOVE ;MAGBY ; f0
dw NO_MOVE ;MILTANK ; f1
dw NO_MOVE ;BLISSEY ; f2
dw NO_MOVE ;WARUCHU
dw NO_MOVE ;SONEGG
dw NO_MOVE ;CACAWPHONY
dw NO_MOVE ;TREBIR
dw NO_MOVE ;SAKURAZE
dw NO_MOVE ;AMANOBI
dw NO_MOVE ;TRUSTAN
dw NO_MOVE ;KUWAGUARD
dw NO_MOVE ;TONQUITO
dw NO_MOVE ;MOLAMBINO
dw NO_MOVE ;LUANBO
dw NO_MOVE ;GRANBO
dw NO_MOVE ;ANGORE
dw NO_MOVE ;EUCALA
dw NO_MOVE ;KIWOOKED
dw NO_MOVE ;CYCLORP
dw NO_MOVE ;KITSEN
dw NO_MOVE ;WISPIRIT
dw NO_MOVE ;COATL
dw NO_MOVE ;MIMEAR
dw NO_MOVE ;INOSHIKA
dw NO_MOVE ;RUDDERNAUT
dw NO_MOVE ;XYLODON
dw NO_MOVE ;XYLOFIN
dw NO_MOVE ;DOKUROAR
dw NO_MOVE ;SCREAM_TAIL
dw NO_MOVE ;SANDY_SHOCKS
dw NO_MOVE ;GREAT_TUSK
dw NO_MOVE ;FLUTTER_MANE
dw NO_MOVE ;IRON_TREADS
dw NO_MOVE ;IRON_BUNDLE
dw NO_MOVE ;IRON_THORNS
dw NO_MOVE ;RAGING_BOLT
dw NO_MOVE ;GOUGING_FIRE
dw NO_MOVE ;WALKING_WAKE
dw NO_MOVE ;RAIKOU ; f3
dw NO_MOVE ;ENTEI ; f4
dw NO_MOVE ;SUICUNE ; f5
dw NO_MOVE ;LARVITAR ; f6
dw NO_MOVE ;PUPITAR ; f7
dw NO_MOVE ;TYRANITAR ; f8
dw NO_MOVE ;LUGIA ; f9
dw NO_MOVE ;HO_OH ; fa
dw NO_MOVE ;SHI_SHI
dw NO_MOVE ;CELEBI ; fb
;---
_NUM_EVO_MOVES = (@ - EvolutionMoves) / 2

View file

@ -20,5 +20,6 @@ EvosAttacksPointers::
indirect_entries NUM_POKEMON, EvosAttacksPointers2
indirect_table_end
INCLUDE "data/pokemon/evolution_moves.asm"
INCLUDE "data/pokemon/evos_attacks_kanto.asm"
INCLUDE "data/pokemon/evos_attacks_johto.asm"

View file

@ -31,35 +31,43 @@ TeachPikachuSurf:
pop hl
ld b, a
ld de, PARTYMON_STRUCT_LENGTH
call DebugGiveMonSpecialMove.CheckForNthPokemon
.CheckForNthPokemon:
; start at the end of the party and search backwards for the last Pokemon in the party.
ld a, [hl]
cp b
jr z, .GiveMove
ld a, l
sub e
ld l, a
ld a, h
sbc d
ld h, a
dec c
jr nz, .CheckForNthPokemon
ret
.GiveMove
; BUG: Doesn't seem to find Surf properly.
; The move DOES reach Pikachu's moveset!!!!!! However, what it learns just isn't correct.
; Similar issue to when I tried to add evo moves ~ PvK
ld a, SURF
; Teach Pikachu Surf
ld hl, SURF
call GetMoveIDFromIndex
ld [wNamedObjectIndex], a
ld [wPutativeTMHMMove], a
call GetMoveName
call CopyName1
; Find Pikachu again
; Find Pikachu again to slap em in wCurPartyMon.
ld bc, wPartyCount
ld a, [bc]
ld hl, MON_SPECIES
call DebugGiveMonSpecialMove.GetNthPartyMon
ld [wCurPartyMon], a
; BUG: Doesn't load the tiles correctly because I'm stupid
; Is it just in the wrong place? lmao
ld hl, .MenuHeader
call LoadMenuHeader
; Learn the move
; Learn the move.
predef LearnMove
; BUG: Doesn't load the tiles for forgetting moves correctly because I'm stupid
; 99.9% sure it's a bankswitch issue - ForgetMove is in a different script.
; Needs more research.
ret
.MenuHeader:
db MENU_BACKUP_TILES ; flags
menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1
; Currently only works for Pikachu but could possibly be reworked for other things in the future. 90% sure there's a better way to do this.
; TODO: Check the DVs to see if it's strong enough. I'm feeling Shiny DV total or above.
CheckPikachu:
@ -79,10 +87,10 @@ CheckPikachu:
endc
endc
jr nz, .notMon
ld a, 1
ld a, 1 ; return 1 if Pikachu
jr .done
.notMon
xor a ; return 0 if not it
xor a ; return 0 if not Pikachu
ld [wScriptVar], a
.done
ret

View file

@ -291,6 +291,7 @@ EvolveAfterBattle_MasterLoop:
ld [wTempSpecies], a
xor a
ld [wMonType], a
call LearnEvolutionMove
call LearnLevelMoves
ld a, [wTempSpecies]
call SetSeenAndCaughtMon
@ -354,6 +355,51 @@ EvolveAfterBattle_MasterLoop:
call nz, RestartMapMusic
ret
; BUG: Does not take in the designated move correctly, resulting in strange behaviour usually seen when GetMoveIDFromIndex takes an 8-bit index.
; Comments proceeding
LearnEvolutionMove:
ld a, [wTempSpecies]
ld [wCurPartySpecies], a
call GetPokemonIndexFromID
ld b, h
ld c, l
ld hl, EvolutionMoves
add hl, bc
add hl, bc
dec hl
dec hl
ld a, [hli]
ld h, [hl]
ld l, a ; Moves through the table by going up according to the Pokemon's ID, storing the equivalent move in hl. This is fine.
or h ; hl == 0?
ret z
call GetMoveIDFromIndex ; grabs what's in hl (the move) and converts it to 8-bit...or something like that. anyway, it should return in register a.
push hl ; I don't actually know why it does this. Removing it produces manmade horrors beyond my comprehension, so it isn't part of the current problem.
ld d, a ; preserve a
ld hl, wPartyMon1Moves
ld a, [wCurPartyMon]
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld b, NUM_MOVES
.check_move
ld a, [hli]
cp d ; use preserved a to check if a move is there
jr z, .has_move
dec b
jr nz, .check_move
ld a, d ; take the preserved a and reload
ld [wPutativeTMHMMove], a ; proceed to learn the move with adequate preprep
ld [wNamedObjectIndex], a
call GetMoveName
call CopyName1
predef LearnMove
ld a, [wCurPartySpecies]
ld [wTempSpecies], a
.has_move
pop hl
ret
; so wtf is going on
UpdateSpeciesNameIfNotNicknamed:
ld a, [wCurSpecies]
push af

View file

@ -19,12 +19,12 @@ DebugPokemon1Script:
DebugPokemon2Script:
opentext
getmonname STRING_BUFFER_3, MACHAMP
getmonname STRING_BUFFER_3, FOLAGE
writetext ReceivedDebugPokemonText
playsound SFX_CAUGHT_MON
waitsfx
promptbutton
givepoke MACHAMP, 31, TM_ROCK_SMASH
givepoke FOLAGE, 31, RARE_CANDY
closetext
end

View file

@ -19,7 +19,7 @@ Route19ClearRocksCallback:
changeblock 8, 6, $7a ; rock
changeblock 10, 6, $7a ; rock
changeblock 12, 8, $7a ; rock
changeblock 4, 8, $7a ; rock
changeblock 4, 6, $7a ; rock - changed to account for the surfin' dude's house
changeblock 10, 10, $7a ; rock
.Done:
endcallback

View file

@ -34,12 +34,17 @@ SummerBeachHouseSurfinDudeScript:
cry PIKACHU
waitbutton
applymovement SUMMERBEACHHOUSE_PUKA, PukaMovement1
writetext SummerBeachHouseSurfinDudeTextICanDoIt2
waitbutton
special TeachPikachuSurf
; iffalse .StoppedLearning ; doesn't work because I'm stupid and thought simply teaching the electric rat to use a surfboard would work like yesorno. the ceiling is the floor.
writetext SummerBeachHouseSurfinDudeTextDone
applymovement SUMMERBEACHHOUSE_PUKA, PukaMovement2
waitbutton
closetext
; setevent EVENT_TAUGHT_PIKACHU_SURF
; setevent EVENT_TAUGHT_PIKACHU_SURF ; not yet in for testing purposes.
end
.NotPikachu:
@ -54,6 +59,12 @@ SummerBeachHouseSurfinDudeScript:
closetext
end
.StoppedLearning:
writetext SummerBeachHouseSurfinDudeStoppedLearning
waitbutton
closetext
end
PukaMovement1:
step LEFT
step UP
@ -92,6 +103,14 @@ SummerBeachHouseSurfinDudeTextNoHave:
line "one? Aww…"
done
SummerBeachHouseSurfinDudeStoppedLearning:
text "Not the right"
line "time? Alright."
para "Come back, though,"
line "ya hear?"
done
SummerBeachHouseSurfinDudeTextICanDoIt:
text "Yeah! This PIKACHU"
line "yearns for the"
@ -100,6 +119,14 @@ SummerBeachHouseSurfinDudeTextICanDoIt:
para "PUKA, come here!"
done
SummerBeachHouseSurfinDudeTextICanDoIt2:
text "This PIKACHU is"
line "as strong as you!"
para "Let's teach it to"
line "SURF!"
done
SummerBeachHouseSurfinDudeTextDone:
text "There! You can"
line "SURF wherever"
@ -130,7 +157,7 @@ SummerBeachHousePoster2Text:
done
SummerBeachHousePoster3Script:
jumptext SummerBeachHousePoster1Text
jumptext SummerBeachHousePoster3Text
SummerBeachHousePoster3Text:
text "It's an old pos-"