summaryrefslogtreecommitdiff
path: root/event
diff options
context:
space:
mode:
authorRemy Oukaour <remy.oukaour@gmail.com>2017-12-26 21:55:57 -0500
committerRemy Oukaour <remy.oukaour@gmail.com>2017-12-26 21:55:57 -0500
commitdae16acd6f4e2e2c177e3776be6ed549af070c4f (patch)
tree2577502f3ccc185e772ef121ba52fa3fddfd95c2 /event
parent2a565f747ccb8099f4057548a6d598d538e6b991 (diff)
event/ → events/, and move some appropriate engine/ files there
Diffstat (limited to 'event')
-rwxr-xr-xevent/basement_key.asm34
-rw-r--r--event/battle_tower.asm342
-rw-r--r--event/buena.asm336
-rw-r--r--event/buena_menu.asm58
-rw-r--r--event/bug_contest/caught_mon.asm38
-rw-r--r--event/bug_contest/contest.asm43
-rwxr-xr-xevent/bug_contest/contest_2.asm133
-rw-r--r--event/bug_contest/display_stats.asm107
-rwxr-xr-xevent/bug_contest/judging.asm395
-rwxr-xr-xevent/card_key.asm39
-rw-r--r--event/catch_tutorial.asm81
-rw-r--r--event/catch_tutorial_input.asm43
-rwxr-xr-xevent/celebi.asm380
-rwxr-xr-xevent/daycare.asm792
-rw-r--r--event/dratini.asm112
-rwxr-xr-xevent/elevator.asm283
-rwxr-xr-xevent/field_moves.asm469
-rwxr-xr-xevent/forced_movement.asm60
-rwxr-xr-xevent/halloffame.asm622
-rwxr-xr-xevent/happiness_egg.asm221
-rwxr-xr-xevent/heal_machine_anim.asm265
-rwxr-xr-xevent/itemfinder.asm58
-rw-r--r--event/kurt.asm413
-rw-r--r--event/kurt_selectquantity_interpretjoypad.asm4
-rw-r--r--event/lucky_number.asm226
-rw-r--r--event/magikarp.asm342
-rwxr-xr-xevent/magnet_train.asm482
-rwxr-xr-xevent/misc_scripts.asm62
-rw-r--r--event/misc_scripts_2.asm51
-rw-r--r--event/mom.asm745
-rwxr-xr-xevent/mom_phone.asm264
-rw-r--r--event/move_deleter.asm166
-rw-r--r--event/move_tutor.asm103
-rw-r--r--event/name_rater.asm250
-rwxr-xr-xevent/overworld.asm1846
-rwxr-xr-xevent/poisonstep.asm162
-rw-r--r--event/poisonstep_pals.asm48
-rw-r--r--event/poke_seer.asm461
-rwxr-xr-xevent/print_photo.asm61
-rw-r--r--event/print_unown.asm233
-rw-r--r--event/print_unown_2.asm111
-rwxr-xr-xevent/sacred_ash.asm74
-rwxr-xr-xevent/special.asm235
-rwxr-xr-xevent/squirtbottle.asm47
-rw-r--r--event/std_collision.asm29
-rwxr-xr-xevent/sweet_scent.asm75
-rw-r--r--event/unown.asm327
-rwxr-xr-xevent/whiteout.asm82
48 files changed, 0 insertions, 11810 deletions
diff --git a/event/basement_key.asm b/event/basement_key.asm
deleted file mode 100755
index b15288d09..000000000
--- a/event/basement_key.asm
+++ /dev/null
@@ -1,34 +0,0 @@
-_BasementKey: ; 507b4
-; Are we even in the right map to use this?
- ld a, [MapGroup]
- cp GROUP_GOLDENROD_UNDERGROUND
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_GOLDENROD_UNDERGROUND
- jr nz, .nope
-; Are we on the tile in front of the door?
- call GetFacingTileCoord
- ld a, d
- cp 22
- jr nz, .nope
- ld a, e
- cp 10
- jr nz, .nope
-; Let's use the Basement Key
- ld hl, .BasementKeyScript
- call QueueScript
- ld a, TRUE
- ld [wItemEffectSucceeded], a
- ret
-
-.nope
- ld a, FALSE
- ld [wItemEffectSucceeded], a
- ret
-; 507e1
-
-.BasementKeyScript: ; 0x507e1
- closetext
- farjump BasementDoorScript
-; 0x507e6
diff --git a/event/battle_tower.asm b/event/battle_tower.asm
deleted file mode 100644
index de6022145..000000000
--- a/event/battle_tower.asm
+++ /dev/null
@@ -1,342 +0,0 @@
-CheckForMobileBattleRules: ; 8b1e1
- ld de, .PointerTables
- call BattleTower_ExecuteJumptable
- ret z
- call BattleTower_PleaseReturnWhenReady
- scf
- ret
-; 8b1ed
-
-.PointerTables: ; 8b1ed
- db 2
- dw .Functions
- dw .TextPointers
-
-.Functions: ; 8b1f2
- dw BattleTower_CheckPartyLengthIs3
- dw BattleTower_CheckPartyHasThreeMonsThatAreNotEggs
-; 8b1f6
-
-.TextPointers: ; 8b1f6
- dw .ExcuseMeText
- dw JumpText_NeedAtLeastThreeMon
- dw JumpText_EggDoesNotQualify
-; 8b1fc
-
-.ExcuseMeText: ; 0x8b1fc
- ; Excuse me!
- text_jump UnknownText_0x1c5937
- db "@"
-; 0x8b201
-
-CheckForBattleTowerRules: ; 8b201
- ld hl, StringBuffer2
- ld [hl], "3"
- inc hl
- ld [hl], "@"
- ld de, .PointerTables
- call BattleTower_ExecuteJumptable
- ret z
- call BattleTower_PleaseReturnWhenReady
- scf
- ret
-; 8b215
-
-.PointerTables: ; 8b215
- db 4
- dw .Functions
- dw .TextPointers
-
-.Functions: ; 8b21a
- dw Function_PartyCountEq3
- dw Function_PartySpeciesAreUnique
- dw Function_PartyItemsAreUnique
- dw Function_HasPartyAnEgg
-; 8b222
-
-.TextPointers: ; 8b222
- dw JumpText_ExcuseMeYoureNotReady
- dw JumpText_OnlyThreePkmnMayBeEntered
- dw JumpText_ThePkmnMustAllBeDifferentKinds
- dw JumpText_ThePkmnMustNotHoldTheSameItems
- dw JumpText_YouCantTakeAnEgg
-; 8b22c
-
-JumpText_ExcuseMeYoureNotReady: ; 0x8b22c
- ; Excuse me. You're not ready.
- text_jump Text_ExcuseMeYoureNotReady
- db "@"
-; 0x8b231
-
-BattleTower_PleaseReturnWhenReady: ; 8b231
- ld hl, .PleaseReturnWhenReady
- call PrintText
- ret
-; 8b238
-
-.PleaseReturnWhenReady: ; 0x8b238
- ; Please return when you're ready.
- text_jump UnknownText_0x1c5962
- db "@"
-; 0x8b23d
-
-JumpText_NeedAtLeastThreeMon: ; 0x8b23d
- ; You need at least three #MON.
- text_jump UnknownText_0x1c5983
- db "@"
-; 0x8b242
-
-JumpText_EggDoesNotQualify: ; 0x8b242
- ; Sorry, an EGG doesn't qualify.
- text_jump UnknownText_0x1c59a3
- db "@"
-; 0x8b247
-
-JumpText_OnlyThreePkmnMayBeEntered: ; 0x8b247
- ; Only three #MON may be entered.
- text_jump Text_OnlyThreePkmnMayBeEntered
- db "@"
-; 0x8b24c
-
-JumpText_ThePkmnMustAllBeDifferentKinds: ; 0x8b24c
- ; The @ #MON must all be different kinds.
- text_jump Text_ThePkmnMustAllBeDifferentKinds
- db "@"
-; 0x8b251
-
-JumpText_ThePkmnMustNotHoldTheSameItems: ; 0x8b251
- ; The @ #MON must not hold the same items.
- text_jump Text_ThePkmnMustNotHoldTheSameItems
- db "@"
-; 0x8b256
-
-JumpText_YouCantTakeAnEgg: ; 0x8b256
- ; You can't take an EGG!
- text_jump Text_YouCantTakeAnEgg
- db "@"
-; 0x8b25b
-
-BattleTower_ExecuteJumptable: ; 8b25b
- ld bc, 0
-.loop
- call .DoJumptableFunction
- call c, .PrintFailureText
- call .Next_CheckReachedEnd
- jr nz, .loop
- ld a, b
- and a
- ret
-; 8b26c
-
-.DoJumptableFunction: ; 8b26c
- push de
- push bc
- call .GetFunctionPointer
- ld a, c
- rst JumpTable
- pop bc
- pop de
- ret
-; 8b276
-
-.Next_CheckReachedEnd: ; 8b276
- inc c
- ld a, [de]
- cp c
- ret
-; 8b27a
-
-.GetFunctionPointer: ; 8b27a
- inc de
- ld a, [de]
- ld l, a
- inc de
- ld a, [de]
- ld h, a
- ret
-; 8b281
-
-.GetTextPointers: ; 8b281
- inc de
- inc de
- inc de
- ld a, [de]
- ld l, a
- inc de
- ld a, [de]
- ld h, a
- ret
-; 8b28a
-
-.LoadTextPointer: ; 8b28a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 8b28e
-
-.PrintFailureText: ; 8b28e
- push de
- push bc
- ld a, b
- and a
- call z, .PrintFirstText
- pop bc
- call .PrintNthText
- ld b, $1
- pop de
- ret
-; 8b29d
-
-.PrintFirstText: ; 8b29d
- push de
- call .GetTextPointers
- call .LoadTextPointer
- call PrintText
- pop de
- ret
-; 8b2a9
-
-.PrintNthText: ; 8b2a9
- push bc
- call .GetTextPointers
- inc hl
- inc hl
- ld b, $0
- add hl, bc
- add hl, bc
- call .LoadTextPointer
- call PrintText
- pop bc
- ret
-; 8b2bb
-
-BattleTower_CheckPartyLengthIs3: ; 8b2bb
- ld a, [PartyCount]
- cp 3
- ret
-; 8b2c1
-
-BattleTower_CheckPartyHasThreeMonsThatAreNotEggs: ; 8b2c1
- ld hl, PartyCount
- ld a, [hli]
- ld b, $0
- ld c, a
-.loop
- ld a, [hli]
- cp EGG
- jr z, .egg
- inc b
-
-.egg
- dec c
- jr nz, .loop
- ld a, [PartyCount]
- cp b
- ret z
- ld a, b
- cp 3
- ret
-; 8b2da
-
-Function_PartyCountEq3: ; 8b2da
- ld a, [PartyCount]
- cp 3
- ret z
- scf
- ret
-; 8b2e2
-
-Function_PartySpeciesAreUnique: ; 8b2e2
- ld hl, PartyMon1Species
- call VerifyUniqueness
- ret
-; 8b2e9
-
-VerifyUniqueness: ; 8b2e9
- ld de, PartyCount
- ld a, [de]
- inc de
- dec a
- jr z, .done
- ld b, a
-.loop
- push hl
- push de
- ld c, b
- call .isegg
- jr z, .next
- ld a, [hl]
- and a
- jr z, .next
-.loop2
- call .nextmon
- call .isegg
- jr z, .next2
- cp [hl]
- jr z, .gotcha
-
-.next2
- dec c
- jr nz, .loop2
-
-.next
- pop de
- pop hl
- call .nextmon
- dec b
- jr nz, .loop
-
-.done
- and a
- ret
-
-.gotcha
- pop de
- pop hl
- scf
- ret
-; 8b31a
-
-.nextmon ; 8b31a
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- inc de
- pop bc
- ret
-; 8b322
-
-.isegg ; 8b322
- push bc
- ld b, a
- ld a, [de]
- cp EGG
- ld a, b
- pop bc
- ret
-; 8b32a
-
-Function_PartyItemsAreUnique: ; 8b32a
- ld hl, PartyMon1Item
- call VerifyUniqueness
- ret
-; 8b331
-
-Function_HasPartyAnEgg: ; 8b331
- ld hl, PartyCount
- ld a, [hli]
- ld c, a
-.loop
- ld a, [hli]
- cp EGG
- jr z, .found
- dec c
- jr nz, .loop
- and a
- ret
-
-.found
- scf
- ret
-; 8b342
diff --git a/event/buena.asm b/event/buena.asm
deleted file mode 100644
index 1227593eb..000000000
--- a/event/buena.asm
+++ /dev/null
@@ -1,336 +0,0 @@
-SpecialBuenasPassword: ; 8af6b
- xor a
- ld [wWhichIndexSet], a
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- ld a, [wBuenasPassword]
- ld c, a
- farcall GetBuenasPassword
- ld a, [wMenuBorderLeftCoord]
- add c
- add $2
- ld [wMenuBorderRightCoord], a
- call PushWindow
- call DoNthMenu ; menu
- farcall Buena_ExitMenu
- ld b, $0
- ld a, [MenuSelection]
- ld c, a
- ld a, [wBuenasPassword]
- and $3
- cp c
- jr nz, .wrong
- ld b, $1
-
-.wrong
- ld a, b
- ld [ScriptVar], a
- ret
-; 8afa9
-
-.MenuDataHeader: ; 0x8afa9
- db $40 ; flags
- db 00, 00 ; start coords
- db 07, 10 ; end coords
- dw .MenuData2
- db 1 ; default option
-; 0x8afb1
-
- db 0
-
-.MenuData2: ; 0x8afb2
- db $81 ; flags
- db 0 ; items
- dw .PasswordIndices
- dw .PlacePasswordChoices
-; 0x8afb4
-
-.PasswordIndices: ; 8afb8
- db 3
- db 0, 1, 2
- db -1
-
-.PlacePasswordChoices: ; 8afbd
- push de
- ld a, [wBuenasPassword]
- and $f0
- ld c, a
- ld a, [MenuSelection]
- add c
- ld c, a
- farcall GetBuenasPassword
- pop hl
- call PlaceString
- ret
-; 8afd4
-
-SpecialBuenaPrize: ; 8afd4
- xor a
- ld [wMenuScrollPosition], a
- ld a, $1
- ld [MenuSelection], a
- call Buena_PlacePrizeMenuBox
- call Buena_DisplayBlueCardBalance
- ld hl, .Text_AskWhichPrize
- call PrintText
- jr .okay
-
-.loop
- ld hl, .Text_AskWhichPrize
- call BuenaPrintText
-
-.okay
- call DelayFrame
- call UpdateSprites
- call PrintBlueCardBalance
- call Buena_PrizeMenu
- jr z, .done
- ld [MenuSelectionQuantity], a
- call Buena_getprize
- ld a, [hl]
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- ld hl, .Text_IsThatRight
- call BuenaPrintText
- call YesNoBox
- jr c, .loop
-
- ld a, [MenuSelectionQuantity]
- call Buena_getprize
- inc hl
- ld a, [hld]
- ld c, a
- ld a, [wBlueCardBalance]
- cp c
- jr c, .InsufficientBalance
-
- ld a, [hli]
- push hl
- ld [CurItem], a
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- call ReceiveItem
- pop hl
- jr nc, .BagFull
- ld a, [hl]
- ld c, a
- ld a, [wBlueCardBalance]
- sub c
- ld [wBlueCardBalance], a
- call PrintBlueCardBalance
- jr .Purchase
-
-.InsufficientBalance:
- ld hl, .Text_NotEnoughPoints
- jr .print
-
-.BagFull:
- ld hl, .Text_NoRoom
- jr .print
-
-.Purchase:
- ld de, SFX_TRANSACTION
- call PlaySFX
- ld hl, .Text_HereYouGo
-
-.print
- call BuenaPrintText
- jr .loop
-
-.done
- call CloseWindow
- call CloseWindow
- ld hl, .Text_PleaseComeBackAgain
- call PrintText
- call JoyWaitAorB
- call PlayClickSFX
- ret
-; 8b072
-
-.Text_AskWhichPrize: ; 0x8b072
- ; Which prize would you like?
- text_jump UnknownText_0x1c589f
- db "@"
-; 0x8b077
-
-.Text_IsThatRight: ; 0x8b077
- ; ? Is that right?
- text_jump UnknownText_0x1c58bc
- db "@"
-; 0x8b07c
-
-.Text_HereYouGo: ; Here you go!
- text_jump UnknownText_0x1c58d1
- db "@"
-; 0x8b081
-
-.Text_NotEnoughPoints: ; 0x8b081
- ; You don't have enough points.
- text_jump UnknownText_0x1c58e0
- db "@"
-; 0x8b086
-
-.Text_NoRoom: ; 0x8b086
- ; You have no room for it.
- text_jump UnknownText_0x1c58ff
- db "@"
-; 0x8b08b
-
-.Text_PleaseComeBackAgain: ; 0x8b08b
- ; Oh. Please come back again!
- text_jump UnknownText_0x1c591a
- db "@"
-; 0x8b090
-
-Buena_DisplayBlueCardBalance: ; 8b090
- ld hl, BlueCardBalanceMenuDataHeader
- call LoadMenuDataHeader
- ret
-; 8b097
-
-PrintBlueCardBalance: ; 8b097
- ld de, wBlueCardBalance
- call .DrawBox
- ret
-; 8b09e
-
-.DrawBox: ; 8b09e
- push de
- xor a
- ld [hBGMapMode], a
- ld hl, BlueCardBalanceMenuDataHeader
- call CopyMenuDataHeader
- call MenuBox
- call UpdateSprites
- call MenuBoxCoord2Tile
- ld bc, SCREEN_WIDTH + 1
- add hl, bc
- ld de, .Points_string
- call PlaceString
- ld h, b
- ld l, c
- inc hl
- ld a, " "
- ld [hli], a
- ld [hld], a
- pop de
- lb bc, 1, 2
- call PrintNum
- ret
-; 8b0ca
-
-.Points_string:
- db "Points@"
-; 8b0d1
-
-BlueCardBalanceMenuDataHeader: ; 0x8b0d1
- db $40 ; flags
- db 11, 00 ; start coords
- db 13, 11 ; end coords
-; 8b0d6
-
-Buena_PlacePrizeMenuBox: ; 8b0d6
- ld hl, .menudataheader
- call LoadMenuDataHeader
- ret
-; 8b0dd
-
-.menudataheader ; 0x8b0dd
- db $40 ; flags
- db 00, 00 ; start coords
- db 11, 17 ; end coords
-; 8b0e2
-
-Buena_PrizeMenu: ; 8b0e2
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- ld a, [MenuSelection]
- ld [wMenuCursorBuffer], a
- xor a
- ld [wWhichIndexSet], a
- ld [hBGMapMode], a
- call InitScrollingMenu
- call UpdateSprites
- call ScrollingMenu
- ld a, [MenuSelection]
- ld c, a
- ld a, [wMenuCursorY]
- ld [MenuSelection], a
- ld a, [wMenuJoypad]
- cp $2
- jr z, .cancel
- ld a, c
- and a
- ret nz
-
-.cancel
- xor a
- ret
-; 8b113
-
-.MenuDataHeader: ; 0x8b113
- db $40 ; flags
- db 01, 01 ; start coords
- db 09, 16 ; end coords
- dw .MenuData2
- db 1 ; default option
-; 0x8b11b
-
- db 0
-
-.MenuData2: ; 0x8b11c
- db $10 ; flags
- db 4, 13 ; rows, columns
- db 1 ; spacing
- dba .indices
- dba .prizeitem
- dba .prizepoints
-; 8b129
-
-NUM_BUENA_PRIZES EQU 9 ; ((BuenaPrizeItemsEnd - BuenaPrizeItems) / 2)
-
-.indices ; 8b129
- db NUM_BUENA_PRIZES
-x = 1
-rept NUM_BUENA_PRIZES
- db x
-x = x + 1
-endr
- db -1
-; 8b134
-
-.prizeitem ; 8b134
- ld a, [MenuSelection]
- call Buena_getprize
- ld a, [hl]
- push de
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- pop hl
- call PlaceString
- ret
-; 8b147
-
-.prizepoints ; 8b147
- ld a, [MenuSelection]
- call Buena_getprize
- inc hl
- ld a, [hl]
- ld c, "0"
- add c
- ld [de], a
- ret
-; 8b154
-
-Buena_getprize: ; 8b154
- dec a
- ld hl, BuenaPrizeItems
- ld b, 0
- ld c, a
- add hl, bc
- add hl, bc
- ret
-; 8b15e
-
-INCLUDE "data/items/buena_prizes.asm"
diff --git a/event/buena_menu.asm b/event/buena_menu.asm
deleted file mode 100644
index b453da783..000000000
--- a/event/buena_menu.asm
+++ /dev/null
@@ -1,58 +0,0 @@
-AskRememberPassword: ; 4ae12
- call .DoMenu
- ld a, $0
- jr c, .okay
- ld a, $1
-
-.okay
- ld [ScriptVar], a
- ret
-
-.DoMenu: ; 4ae1f
- lb bc, 14, 7
- push bc
- ld hl, YesNoMenuDataHeader
- call CopyMenuDataHeader
- pop bc
- ld a, b
- ld [wMenuBorderLeftCoord], a
- add $5
- ld [wMenuBorderRightCoord], a
- ld a, c
- ld [wMenuBorderTopCoord], a
- add $4
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- call VerticalMenu
- push af
- ld c, 15
- call DelayFrames
- call Buena_ExitMenu
- pop af
- jr c, .refused
- ld a, [wMenuCursorY]
- cp $2
- jr z, .refused
- and a
- ret
-
-.refused
- ld a, $2
- ld [wMenuCursorY], a
- scf
- ret
-
-Buena_ExitMenu: ; 4ae5e
- ld a, [hOAMUpdate]
- push af
- call ExitMenu
- call UpdateSprites
- xor a
- ld [hOAMUpdate], a
- call DelayFrame
- ld a, $1
- ld [hOAMUpdate], a
- call ApplyTilemap
- pop af
- ld [hOAMUpdate], a
- ret
diff --git a/event/bug_contest/caught_mon.asm b/event/bug_contest/caught_mon.asm
deleted file mode 100644
index 5d423f466..000000000
--- a/event/bug_contest/caught_mon.asm
+++ /dev/null
@@ -1,38 +0,0 @@
-BugContest_SetCaughtContestMon: ; e6ce
- ld a, [wContestMon]
- and a
- jr z, .firstcatch
- ld [wd265], a
- farcall DisplayAlreadyCaughtText
- farcall DisplayCaughtContestMonStats
- lb bc, 14, 7
- call PlaceYesNoBox
- ret c
-
-.firstcatch
- call .generatestats
- ld a, [TempEnemyMonSpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, .caughttext
- call PrintText
- ret
-
-.generatestats ; e6fd
- ld a, [TempEnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- xor a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wContestMon
- call ByteFill
- xor a
- ld [MonType], a
- ld hl, wContestMon
- jp GeneratePartyMonStats
-
-.caughttext ; 0xe71d
- ; Caught @ !
- text_jump UnknownText_0x1c10c0
- db "@"
diff --git a/event/bug_contest/contest.asm b/event/bug_contest/contest.asm
deleted file mode 100644
index ba561abf2..000000000
--- a/event/bug_contest/contest.asm
+++ /dev/null
@@ -1,43 +0,0 @@
-Special_GiveParkBalls: ; 135db
- xor a
- ld [wContestMon], a
- ld a, 20
- ld [wParkBallsRemaining], a
- farcall StartBugContestTimer
- ret
-
-BugCatchingContestBattleScript:: ; 0x135eb
- writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
- randomwildmon
- startbattle
- reloadmapafterbattle
- copybytetovar wParkBallsRemaining
- iffalse BugCatchingContestOutOfBallsScript
- end
-
-BugCatchingContestOverScript:: ; 0x135f8
- playsound SFX_ELEVATOR_END
- opentext
- writetext BugCatchingContestText_BeeepTimesUp
- waitbutton
- jump BugCatchingContestReturnToGateScript
-
-BugCatchingContestOutOfBallsScript: ; 0x13603
- playsound SFX_ELEVATOR_END
- opentext
- writetext BugCatchingContestText_ContestIsOver
- waitbutton
-
-BugCatchingContestReturnToGateScript: ; 0x1360b
- closetext
- jumpstd bugcontestresultswarp
-
-BugCatchingContestText_BeeepTimesUp: ; 0x1360f
- ; ANNOUNCER: BEEEP! Time's up!
- text_jump UnknownText_0x1bd2ca
- db "@"
-
-BugCatchingContestText_ContestIsOver: ; 0x13614
- ; ANNOUNCER: The Contest is over!
- text_jump UnknownText_0x1bd2e7
- db "@"
diff --git a/event/bug_contest/contest_2.asm b/event/bug_contest/contest_2.asm
deleted file mode 100755
index 493c69d0c..000000000
--- a/event/bug_contest/contest_2.asm
+++ /dev/null
@@ -1,133 +0,0 @@
-Special_SelectRandomBugContestContestants: ; 139a8
-; Select five random people to participate in the current contest.
-
-; First we have to make sure that any old data is cleared away.
- ld c, 10 ; Number of people to choose from.
- ld hl, BugCatchingContestantEventFlagTable
-.loop1
- push bc
- push hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, RESET_FLAG
- call EventFlagAction
- pop hl
- inc hl
- inc hl
- pop bc
- dec c
- jr nz, .loop1
-
-; Now that that's out of the way, we can get on to the good stuff.
- ld c, 5
-.loop2
- push bc
-.next
-; Choose a flag at uniform random to be set.
- call Random
- cp 250
- jr nc, .next
- ld c, 25
- call SimpleDivide
- ld e, b
- ld d, 0
- ld hl, BugCatchingContestantEventFlagTable
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- push de
-; If we've already set it, it doesn't count.
- ld b, CHECK_FLAG
- call EventFlagAction
- pop de
- ld a, c
- and a
- jr nz, .next
-; Set the flag. This will cause that sprite to not be visible in the contest.
- ld b, SET_FLAG
- call EventFlagAction
- pop bc
-; Check if we're done. If so, return. Otherwise, choose the next victim.
- dec c
- jr nz, .loop2
- ret
-; 139ed
-
-Special_CheckBugContestContestantFlag: ; 139ed
-; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
-
-; Bug: If a >= 10 when this is called, it will read beyond the table.
-
- ld hl, BugCatchingContestantEventFlagTable
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ret
-; 139fe
-
-BugCatchingContestantEventFlagTable: ; 139fe
- dw EVENT_BUG_CATCHING_CONTESTANT_1A
- dw EVENT_BUG_CATCHING_CONTESTANT_2A
- dw EVENT_BUG_CATCHING_CONTESTANT_3A
- dw EVENT_BUG_CATCHING_CONTESTANT_4A
- dw EVENT_BUG_CATCHING_CONTESTANT_5A
- dw EVENT_BUG_CATCHING_CONTESTANT_6A
- dw EVENT_BUG_CATCHING_CONTESTANT_7A
- dw EVENT_BUG_CATCHING_CONTESTANT_8A
- dw EVENT_BUG_CATCHING_CONTESTANT_9A
- dw EVENT_BUG_CATCHING_CONTESTANT_10A
-; 13a12
-
-ContestDropOffMons: ; 13a12
- ld hl, PartyMon1HP
- ld a, [hli]
- or [hl]
- jr z, .fainted
-; Mask the rest of your party by setting the count to 1...
- ld hl, PartyCount
- ld a, 1
- ld [hli], a
- inc hl
-; ... backing up the second mon index somewhere...
- ld a, [hl]
- ld [wBugContestSecondPartySpecies], a
-; ... and replacing it with the terminator byte
- ld [hl], $ff
- xor a
- ld [ScriptVar], a
- ret
-
-.fainted
- ld a, $1
- ld [ScriptVar], a
- ret
-; 13a31
-
-ContestReturnMons: ; 13a31
-; Restore the species of the second mon.
- ld hl, PartySpecies + 1
- ld a, [wBugContestSecondPartySpecies]
- ld [hl], a
-; Restore the party count, which must be recomputed.
- ld b, $1
-.loop
- ld a, [hli]
- cp -1
- jr z, .done
- inc b
- jr .loop
-
-.done
- ld a, b
- ld [PartyCount], a
- ret
-; 13a47
diff --git a/event/bug_contest/display_stats.asm b/event/bug_contest/display_stats.asm
deleted file mode 100644
index d6ad3997e..000000000
--- a/event/bug_contest/display_stats.asm
+++ /dev/null
@@ -1,107 +0,0 @@
-DisplayCaughtContestMonStats: ; cc000
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call LoadFontsBattleExtra
-
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
-
- hlcoord 0, 0
- ld b, 4
- ld c, 13
- call TextBox
-
- hlcoord 0, 6
- ld b, 4
- ld c, 13
- call TextBox
-
- hlcoord 2, 0
- ld de, .Stock
- call PlaceString
-
- hlcoord 2, 6
- ld de, .This
- call PlaceString
-
- hlcoord 5, 4
- ld de, .Health
- call PlaceString
-
- hlcoord 5, 10
- ld de, .Health
- call PlaceString
-
- ld a, [wContestMon]
- ld [wd265], a
- call GetPokemonName
- ld de, StringBuffer1
- hlcoord 1, 2
- call PlaceString
-
- ld h, b
- ld l, c
- ld a, [wContestMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
- ld de, EnemyMonNick
- hlcoord 1, 8
- call PlaceString
-
- ld h, b
- ld l, c
- ld a, [EnemyMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
- hlcoord 11, 4
- ld de, wContestMonMaxHP
- lb bc, 2, 3
- call PrintNum
-
- hlcoord 11, 10
- ld de, EnemyMonMaxHP
- call PrintNum
-
- ld hl, SwitchMonText
- call PrintText
-
- pop af
- ld [Options], a
-
- call WaitBGMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call SetPalettes
- ret
-
-.Health:
- db "HEALTH@"
-.Stock:
- db " STOCK ", $4a, " @"
-.This:
- db " THIS ", $4a, " @"
-
-SwitchMonText: ; cc0c2
- ; Switch #MON?
- text_jump UnknownText_0x1c10cf
- db "@"
-
-DisplayAlreadyCaughtText: ; cc0c7
- call GetPokemonName
- ld hl, .AlreadyCaughtText
- jp PrintText
-
-.AlreadyCaughtText: ; 0xcc0d0
- ; You already caught a @ .
- text_jump UnknownText_0x1c10dd
- db "@"
-
-Predef2F:
-Predef38:
-Predef39: ; cc0d5
- ret
diff --git a/event/bug_contest/judging.asm b/event/bug_contest/judging.asm
deleted file mode 100755
index 901ae88fa..000000000
--- a/event/bug_contest/judging.asm
+++ /dev/null
@@ -1,395 +0,0 @@
-_BugContestJudging: ; 1369d
- call ContestScore
- farcall TrainerRankings_BugContestScore
- call BugContest_JudgeContestants
- ld a, [wBugContestThirdPlaceWinnerID]
- call LoadContestantName
- ld a, [wBugContestThirdPlaceMon]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, BugContest_ThirdPlaceText
- call PrintText
- ld a, [wBugContestSecondPlaceWinnerID]
- call LoadContestantName
- ld a, [wBugContestSecondPlaceMon]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, BugContest_SecondPlaceText
- call PrintText
- ld a, [wBugContestFirstPlaceWinnerID]
- call LoadContestantName
- ld a, [wBugContestFirstPlaceMon]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, BugContest_FirstPlaceText
- call PrintText
- jp BugContest_GetPlayersResult
-; 136eb
-
-BugContest_FirstPlaceText: ; 0x136eb
- text_jump ContestJudging_FirstPlaceText
- start_asm
- ld de, SFX_1ST_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_FirstPlaceScoreText
- ret
-; 136fd
-
-BugContest_FirstPlaceScoreText: ; 0x136fd
- ; The winning score was @ points!
- text_jump ContestJudging_FirstPlaceScoreText
- db "@"
-; 0x13702
-
-BugContest_SecondPlaceText: ; 0x13702
- ; Placing second was @ , who caught a @ !@ @
- text_jump ContestJudging_SecondPlaceText
- start_asm
- ld de, SFX_2ND_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_SecondPlaceScoreText
- ret
-; 13714
-
-BugContest_SecondPlaceScoreText: ; 0x13714
- ; The score was @ points!
- text_jump ContestJudging_SecondPlaceScoreText
- db "@"
-; 0x13719
-
-BugContest_ThirdPlaceText: ; 0x13719
- ; Placing third was @ , who caught a @ !@ @
- text_jump ContestJudging_ThirdPlaceText
- start_asm
- ld de, SFX_3RD_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_ThirdPlaceScoreText
- ret
-; 1372b
-
-BugContest_ThirdPlaceScoreText: ; 0x1372b
- ; The score was @ points!
- text_jump ContestJudging_ThirdPlaceScoreText
- db "@"
-; 0x13730
-
-LoadContestantName: ; 13730
-
-; If a = 0, get your name.
- dec a
- jr z, .player
-; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
- ld c, a
- ld b, 0
- ld hl, BugContestantPointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-; Copy the Trainer Class to c.
- ld a, [hli]
- ld c, a
-; Save hl and bc for later.
- push hl
- push bc
-; Get the Trainer Class name and copy it into wBugContestWinnerName.
- callfar GetTrainerClassName
- ld hl, StringBuffer1
- ld de, wBugContestWinnerName
- ld bc, TRAINER_CLASS_NAME_LENGTH
- call CopyBytes
- ld hl, wBugContestWinnerName
-; Delete the trailing terminator and replace it with a space.
-.next
- ld a, [hli]
- cp "@"
- jr nz, .next
- dec hl
- ld [hl], " "
- inc hl
- ld d, h
- ld e, l
-; Restore the Trainer Class ID and Trainer ID pointer. Save de for later.
- pop bc
- pop hl
- push de
-; Get the name of the trainer with class c and ID b.
- ld a, [hl]
- ld b, a
- callfar GetTrainerName
-; Append the name to wBugContestWinnerName.
- ld hl, StringBuffer1
- pop de
- ld bc, NAME_LENGTH - 1
- jp CopyBytes
-
-.player
- ld hl, PlayerName
- ld de, wBugContestWinnerName
- ld bc, NAME_LENGTH
- jp CopyBytes
-; 13783
-
-
-INCLUDE "data/bug_contest_winners.asm"
-; 13807
-
-
-BugContest_GetPlayersResult: ; 13807
- ld hl, wBugContestThirdPlaceWinnerID
- ld de, -4
- ld b, 3
-.loop
- ld a, [hl]
- cp 1 ; Player
- jr z, .done
- add hl, de
- dec b
- jr nz, .loop
-
-.done
- ret
-; 13819
-
-BugContest_JudgeContestants: ; 13819
- call ClearContestResults
- call ComputeAIContestantScores
- ld hl, wBugContestTempWinnerID
- ld a, 1 ; Player
- ld [hli], a
- ld a, [wContestMon]
- ld [hli], a
- ld a, [hProduct]
- ld [hli], a
- ld a, [hProduct + 1]
- ld [hl], a
- call DetermineContestWinners
- ret
-; 13833
-
-ClearContestResults: ; 13833
- ld hl, wBugContestResults
- ld b, wBugContestWinnersEnd - wBugContestResults
- xor a
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-; 1383e
-
-DetermineContestWinners: ; 1383e
- ld de, wBugContestTempScore
- ld hl, wBugContestFirstPlaceScore
- ld c, 2
- call StringCmp
- jr c, .not_first_place
- ld hl, wBugContestSecondPlaceWinnerID
- ld de, wBugContestThirdPlaceWinnerID
- ld bc, 4
- call CopyBytes
- ld hl, wBugContestFirstPlaceWinnerID
- ld de, wBugContestSecondPlaceWinnerID
- ld bc, 4
- call CopyBytes
- ld hl, wBugContestFirstPlaceWinnerID
- call CopyTempContestant
- jr .done
-
-.not_first_place
- ld de, wBugContestTempScore
- ld hl, wBugContestSecondPlaceScore
- ld c, 2
- call StringCmp
- jr c, .not_second_place
- ld hl, wBugContestSecondPlaceWinnerID
- ld de, wBugContestThirdPlaceWinnerID
- ld bc, 4
- call CopyBytes
- ld hl, wBugContestSecondPlaceWinnerID
- call CopyTempContestant
- jr .done
-
-.not_second_place
- ld de, wBugContestTempScore
- ld hl, wBugContestThirdPlaceScore
- ld c, 2
- call StringCmp
- jr c, .done
- ld hl, wBugContestThirdPlaceWinnerID
- call CopyTempContestant
-
-.done
- ret
-; 138a0
-
-CopyTempContestant: ; 138a0
-; Could've just called CopyBytes.
- ld de, wBugContestTempWinnerID
-rept 3
- ld a, [de]
- inc de
- ld [hli], a
-endr
- ld a, [de]
- inc de
- ld [hl], a
- ret
-; 138b0
-
-ComputeAIContestantScores: ; 138b0
- ld e, 0
-.loop
- push de
- call Special_CheckBugContestContestantFlag
- pop de
- jr nz, .done
- ld a, e
- inc a
- inc a
- ld [wBugContestTempWinnerID], a
- dec a
- ld c, a
- ld b, 0
- ld hl, BugContestantPointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- inc hl
-.loop2
- call Random
- and 3
- cp 3
- jr z, .loop2
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld [wBugContestTempMon], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Random
- and 7
- ld c, a
- ld b, 0
- add hl, bc
- ld a, h
- ld [wBugContestTempScore], a
- ld a, l
- ld [wBugContestTempScore + 1], a
- push de
- call DetermineContestWinners
- pop de
-
-.done
- inc e
- ld a, e
- cp 10
- jr nz, .loop
- ret
-; 13900
-
-ContestScore: ; 13900
-; Determine the player's score in the Bug Catching Contest.
-
- xor a
- ld [hProduct], a
- ld [hMultiplicand], a
-
- ld a, [wContestMonSpecies] ; Species
- and a
- jr z, .done
-
- ; Tally the following:
-
- ; Max HP * 4
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
-
- ; Stats
- ld a, [wContestMonAttack + 1]
- call .AddContestStat
- ld a, [wContestMonDefense + 1]
- call .AddContestStat
- ld a, [wContestMonSpeed + 1]
- call .AddContestStat
- ld a, [wContestMonSpclAtk + 1]
- call .AddContestStat
- ld a, [wContestMonSpclDef + 1]
- call .AddContestStat
-
- ; DVs
- ld a, [wContestMonDVs + 0]
- ld b, a
- and 2
- add a
- add a
- ld c, a
-
- swap b
- ld a, b
- and 2
- add a
- add c
- ld d, a
-
- ld a, [wContestMonDVs + 1]
- ld b, a
- and 2
- ld c, a
-
- swap b
- ld a, b
- and 2
- srl a
- add c
- add c
- add d
- add d
-
- call .AddContestStat
-
- ; Remaining HP / 8
- ld a, [wContestMonHP + 1]
- srl a
- srl a
- srl a
- call .AddContestStat
-
- ; Whether it's holding an item
- ld a, [wContestMonItem]
- and a
- jr z, .done
-
- ld a, 1
- call .AddContestStat
-
-.done
- ret
-; 1397f
-
-.AddContestStat: ; 1397f
- ld hl, hMultiplicand
- add [hl]
- ld [hl], a
- ret nc
- dec hl
- inc [hl]
- ret
-; 13988
diff --git a/event/card_key.asm b/event/card_key.asm
deleted file mode 100755
index dc4c73ad2..000000000
--- a/event/card_key.asm
+++ /dev/null
@@ -1,39 +0,0 @@
-_CardKey: ; 50779
-; Are we even in the right map to use this?
- ld a, [MapGroup]
- cp GROUP_RADIO_TOWER_3F
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_RADIO_TOWER_3F
- jr nz, .nope
-; Are we facing the slot?
- ld a, [PlayerDirection]
- and %1100
- cp OW_UP
- jr nz, .nope
-
- call GetFacingTileCoord
- ld a, d
- cp 18
- jr nz, .nope
- ld a, e
- cp 6
- jr nz, .nope
-; Let's use the Card Key.
- ld hl, .CardKeyScript
- call QueueScript
- ld a, TRUE
- ld [wItemEffectSucceeded], a
- ret
-
-.nope
- ld a, FALSE
- ld [wItemEffectSucceeded], a
- ret
-; 507af
-
-.CardKeyScript: ; 0x507af
- closetext
- farjump MapRadioTower3FSignpost2Script
-; 0x507b4
diff --git a/event/catch_tutorial.asm b/event/catch_tutorial.asm
deleted file mode 100644
index b9352ccd6..000000000
--- a/event/catch_tutorial.asm
+++ /dev/null
@@ -1,81 +0,0 @@
-CatchTutorial:: ; 4e554
- ld a, [BattleType]
- dec a
- ld c, a
- ld hl, .dw
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.dw ; 4e564 (13:6564)
- dw .DudeTutorial
- dw .DudeTutorial
- dw .DudeTutorial
-
-.DudeTutorial: ; 4e56a (13:656a)
-; Back up your name to your Mom's name.
- ld hl, PlayerName
- ld de, MomsName
- ld bc, NAME_LENGTH
- call CopyBytes
-; Copy Dude's name to your name
- ld hl, .Dude
- ld de, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
-
- call .LoadDudeData
-
- xor a
- ld [hJoyDown], a
- ld [hJoyPressed], a
- ld a, [Options]
- push af
- and $f8
- add $3
- ld [Options], a
- ld hl, .AutoInput
- ld a, BANK(.AutoInput)
- call StartAutoInput
- callfar StartBattle
- call StopAutoInput
- pop af
-
- ld [Options], a
- ld hl, MomsName
- ld de, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
-.LoadDudeData: ; 4e5b7 (13:65b7)
- ld hl, wDudeNumItems
- ld [hl], 1
- inc hl
- ld [hl], POTION
- inc hl
- ld [hl], 1
- inc hl
- ld [hl], -1
- ld hl, wDudeNumKeyItems
- ld [hl], 0
- inc hl
- ld [hl], -1
- ld hl, wDudeNumBalls
- ld a, 1
- ld [hli], a
- ld a, POKE_BALL ; 5
- ld [hli], a
- ld [hli], a
- ld [hl], -1
- ret
-
-.Dude: ; 4e5da
- db "DUDE@"
-
-.AutoInput: ; 4e5df
- db NO_INPUT, $ff ; end
diff --git a/event/catch_tutorial_input.asm b/event/catch_tutorial_input.asm
deleted file mode 100644
index 9d2a03db2..000000000
--- a/event/catch_tutorial_input.asm
+++ /dev/null
@@ -1,43 +0,0 @@
-_DudeAutoInput_A:: ; 1de28a
- ld hl, DudeAutoInput_A
- jr _DudeAutoInput
-
-_DudeAutoInput_RightA: ; 1de28f
- ld hl, DudeAutoInput_RightA
- jr _DudeAutoInput
-
-_DudeAutoInput_DownA: ; 1de294
- ld hl, DudeAutoInput_DownA
- jr _DudeAutoInput
-
-_DudeAutoInput: ; 1de299
- ld a, BANK(DudeAutoInputs)
- call StartAutoInput
- ret
-
-DudeAutoInputs:
-
-DudeAutoInput_A: ; 1de29f
- db NO_INPUT, $50
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-DudeAutoInput_RightA: ; 1de2a5
- db NO_INPUT, $08
- db D_RIGHT, $00
- db NO_INPUT, $08
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-DudeAutoInput_DownA: ; 1de2af
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db D_DOWN, $00
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
diff --git a/event/celebi.asm b/event/celebi.asm
deleted file mode 100755
index b7bf95145..000000000
--- a/event/celebi.asm
+++ /dev/null
@@ -1,380 +0,0 @@
-Special_CelebiShrineEvent: ; 4989a
- call DelayFrame
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- call LoadCelebiGFX
- depixel 0, 10, 7, 0
- ld a, SPRITE_ANIM_INDEX_CELEBI
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $84
- ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
- add hl, bc
- ld [hl], SPRITE_ANIM_SEQ_CELEBI
- ld hl, SPRITEANIMSTRUCT_0F
- add hl, bc
- ld a, $80
- ld [hl], a
- ld a, 160 ; frame count
- ld [wcf64], a
- ld d, $0
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- push bc
- call GetCelebiSpriteTile
- inc d
- push de
- ld a, $90
- ld [wCurrSpriteOAMAddr], a
- farcall DoNextFrameForAllSprites
- call CelebiEvent_CountDown
- ld c, 2
- call DelayFrames
- pop de
- pop bc
- jr .loop
-
-
-.done
- pop af
- ld [VramState], a
- call .RefreshPlayerSprite_ClearAllOthers
- call CelebiEvent_SetBattleType
- ret
-
-; 498f9
-
-.RefreshPlayerSprite_ClearAllOthers: ; 498f9
- ld hl, Sprites + 2
- xor a
- ld c, $4
-.OAMloop:
- ld [hli], a
- inc hl
- inc hl
- inc hl
- inc a
- dec c
- jr nz, .OAMloop
- ld hl, Sprites + 4 * 4
- ld bc, 36 * 4
- xor a
- call ByteFill
- ret
-
-; 49912
-
-LoadCelebiGFX: ; 49912
- farcall ClearSpriteAnims
- ld de, SpecialCelebiLeafGFX
- ld hl, VTiles1
- lb bc, BANK(SpecialCelebiLeafGFX), 4
- call Request2bpp
- ld de, SpecialCelebiGFX
- ld hl, VTiles0 tile $84
- lb bc, BANK(SpecialCelebiGFX), $10
- call Request2bpp
- xor a
- ld [wJumptableIndex], a
- ret
-
-; 49935
-
-CelebiEvent_CountDown: ; 49935
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ret
-
-
-.done
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-; 49944
-
-CelebiEvent_SpawnLeaf: ; 49944
-; unused
- ld hl, wcf65
- ld a, [hl]
- inc [hl]
- and $7
- ret nz
- ld a, [hl]
- and $18
- sla a
- add $40
- ld d, a
- ld e, $0
- ld a, SPRITE_ANIM_INDEX_FLY_LEAF ; fly land
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $80
- ret
-
-; 49962
-
-SpecialCelebiLeafGFX: ; 49962
-INCBIN "gfx/overworld/cut_grass.2bpp"
-
-SpecialCelebiGFX: ; 499a2
-INCBIN "gfx/overworld/celebi/1.2bpp"
-INCBIN "gfx/overworld/celebi/2.2bpp"
-INCBIN "gfx/overworld/celebi/3.2bpp"
-INCBIN "gfx/overworld/celebi/4.2bpp"
-
-
-UpdateCelebiPosition: ; 49aa2 (12:5aa2)
- ld hl, SPRITEANIMSTRUCT_XOFFSET
- add hl, bc
- ld a, [hl]
- push af
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp 8 * 10 + 2
- jp nc, .FreezeCelebiPosition
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- inc [hl]
- ld hl, SPRITEANIMSTRUCT_0F
- add hl, bc
- ld a, [hl]
- ld d, a
- cp $3a
- jr c, .skip
- jr z, .skip
- sub $3
- ld [hl], a
-.skip
- ld hl, SPRITEANIMSTRUCT_0E
- add hl, bc
- ld a, [hl]
- inc [hl]
- call CelebiEvent_Cosine
- ld hl, SPRITEANIMSTRUCT_XOFFSET
- add hl, bc
- ld [hl], a
- ld d, a
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- add [hl]
- cp 8 * 11 + 4
- jr nc, .ShiftY
- cp 8 * 8 + 4
- jr nc, .ReinitSpriteAnimFrame
-.ShiftY:
- pop af
- push af
- cp d
- jr nc, .moving_left
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- add [hl]
- cp 8 * 10
- jr c, .float_up
- jr .float_down
-
-.moving_left
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- add [hl]
- cp 8 * 10
- jr nc, .float_up
-.float_down
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- sub $2
- ld [hl], a
- jr .ReinitSpriteAnimFrame
-
-.float_up
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- add $1
- ld [hl], a
-.ReinitSpriteAnimFrame:
- pop af
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- add [hl]
- cp 8 * 10
- jr c, .left
- cp -(8 * 3 + 2)
- jr nc, .left
- ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
- add hl, bc
- ld a, SPRITE_ANIM_FRAMESET_CELEBI_RIGHT
- call ReinitSpriteAnimFrame
- jr .done
-
-.left
- ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
- add hl, bc
- ld a, SPRITE_ANIM_FRAMESET_CELEBI_LEFT
- call ReinitSpriteAnimFrame
-.done
- ret
-
-
-.FreezeCelebiPosition: ; 49b30 (12:5b30)
- pop af
- ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
- add hl, bc
- ld a, SPRITE_ANIM_FRAMESET_CELEBI_LEFT
- call ReinitSpriteAnimFrame
- ret
-
-
-CelebiEvent_Cosine: ; 49b3b (12:5b3b)
- add $10
- and $3f
- cp $20
- jr nc, .negative
- call .SineFunction
- ld a, h
- ret
-
-.negative
- and $1f
- call .SineFunction
- ld a, h
- xor $ff
- inc a
- ret
-
-
-.SineFunction: ; 49b52 (12:5b52)
- ld e, a
- ld a, d
- ld d, $0
- ld hl, .sinewave
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, 0
-.multiply
- srl a
- jr nc, .even
- add hl, de
-.even
- sla e
- rl d
- and a
- jr nz, .multiply
- ret
-
-; 49b6e (12:5b6e)
-
-.sinewave ; 49b6e
- sine_wave $100
-; 49bae
-
-GetCelebiSpriteTile: ; 49bae
- push hl
- push bc
- push de
- ld a, d
- ld d, $3
- ld e, d
- cp $0
- jr z, .Frame1
- cp d
- jr z, .Frame2
- call .AddE
- cp d
- jr z, .Frame3
- call .AddE
- cp d
- jr z, .Frame4
- call .AddE
- cp d
- jr c, .done
- jr .restart
-
-
-.Frame1:
- ld a, $84
- jr .load_tile
-
-
-.Frame2:
- ld a, $88
- jr .load_tile
-
-
-.Frame3:
- ld a, $8c
- jr .load_tile
-
-
-.Frame4:
- ld a, $90
-
-.load_tile
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], a
- jr .done
-
-
-.restart
- pop de
- ld d, $ff
- push de
-
-.done
- pop de
- pop bc
- pop hl
- ret
-
-; 49bed
-
-.AddE: ; 49bed
- push af
- ld a, d
- add e
- ld d, a
- pop af
- ret
-
-; 49bf3
-
-CelebiEvent_SetBattleType: ; 49bf3
- ld a, BATTLETYPE_CELEBI
- ld [BattleType], a
- ret
-
-; 49bf9
-
-CheckCaughtCelebi: ; 49bf9
- ld a, [wBattleResult]
- bit 6, a
- jr z, .false
- ld a, $1
- ld [ScriptVar], a
- jr .done
-
-
-.false
- xor a
- ld [ScriptVar], a
-
-.done
- ret
-
-; 49c0c
diff --git a/event/daycare.asm b/event/daycare.asm
deleted file mode 100755
index 6395a40fb..000000000
--- a/event/daycare.asm
+++ /dev/null
@@ -1,792 +0,0 @@
- const_def
- const DAYCARETEXT_MAN_INTRO
- const DAYCARETEXT_MAN_EGG
- const DAYCARETEXT_LADY_INTRO
- const DAYCARETEXT_LADY_EGG
- const DAYCARETEXT_WHICH_ONE
- const DAYCARETEXT_DEPOSIT
- const DAYCARETEXT_CANT_BREED_EGG
- const DAYCARETEXT_LAST_MON
- const DAYCARETEXT_LAST_ALIVE_MON
- const DAYCARETEXT_COME_BACK_LATER
- const DAYCARETEXT_REMOVE_MAIL
- const DAYCARETEXT_GENIUSES
- const DAYCARETEXT_ASK_WITHDRAW
- const DAYCARETEXT_WITHDRAW
- const DAYCARETEXT_TOO_SOON
- const DAYCARETEXT_PARTY_FULL
- const DAYCARETEXT_NOT_ENOUGH_MONEY
- const DAYCARETEXT_OH_FINE
- const DAYCARETEXT_COME_AGAIN
- const DAYCARETEXT_13
-
-Special_DayCareMan: ; 166d6
- ld hl, wDayCareMan
- bit 0, [hl]
- jr nz, .AskWithdrawMon
- ld hl, wDayCareMan
- ld a, DAYCARETEXT_MAN_INTRO
- call DayCareManIntroText
- jr c, .cancel
- call DayCareAskDepositPokemon
- jr c, .print_text
- farcall DepositMonWithDayCareMan
- ld hl, wDayCareMan
- set 0, [hl]
- call DayCare_DepositPokemonText
- call DayCare_InitBreeding
- ret
-
-.AskWithdrawMon:
- farcall GetBreedMon1LevelGrowth
- ld hl, wBreedMon1Nick
- call GetPriceToRetrieveBreedmon
- call DayCare_AskWithdrawBreedMon
- jr c, .print_text
- farcall RetrievePokemonFromDayCareMan
- call DayCare_TakeMoney_PlayCry
- ld hl, wDayCareMan
- res 0, [hl]
- res 5, [hl]
- jr .cancel
-
-.print_text
- call PrintDayCareText
-
-.cancel
- ld a, DAYCARETEXT_13
- call PrintDayCareText
- ret
-; 1672a
-
-Special_DayCareLady: ; 1672a
- ld hl, wDayCareLady
- bit 0, [hl]
- jr nz, .AskWithdrawMon
- ld hl, wDayCareLady
- ld a, DAYCARETEXT_LADY_INTRO
- call DayCareLadyIntroText
- jr c, .cancel
- call DayCareAskDepositPokemon
- jr c, .print_text
- farcall DepositMonWithDayCareLady
- ld hl, wDayCareLady
- set 0, [hl]
- call DayCare_DepositPokemonText
- call DayCare_InitBreeding
- ret
-
-.AskWithdrawMon:
- farcall GetBreedMon2LevelGrowth
- ld hl, wBreedMon2Nick
- call GetPriceToRetrieveBreedmon
- call DayCare_AskWithdrawBreedMon
- jr c, .print_text
- farcall RetrievePokemonFromDayCareLady
- call DayCare_TakeMoney_PlayCry
- ld hl, wDayCareLady
- res 0, [hl]
- ld hl, wDayCareMan
- res 5, [hl]
- jr .cancel
-
-.print_text
- call PrintDayCareText
-
-.cancel
- ld a, DAYCARETEXT_13
- call PrintDayCareText
- ret
-; 16781
-
-DayCareLadyIntroText: ; 16781
- bit 7, [hl]
- jr nz, .okay
- set 7, [hl]
- inc a
-.okay
- call PrintDayCareText
- call YesNoBox
- ret
-; 1678f
-
-DayCareManIntroText: ; 1678f
- set 7, [hl]
- call PrintDayCareText
- call YesNoBox
- ret
-; 16798
-
-DayCareAskDepositPokemon: ; 16798
- ld a, [PartyCount]
- cp 2
- jr c, .OnlyOneMon
- ld a, DAYCARETEXT_WHICH_ONE
- call PrintDayCareText
- ld b, PARTYMENUACTION_GIVE_MON
- farcall SelectTradeOrDayCareMon
- jr c, .Declined
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .Egg
- farcall CheckCurPartyMonFainted
- jr c, .OutOfUsableMons
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld d, [hl]
- farcall ItemIsMail
- jr c, .HoldingMail
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- and a
- ret
-
-.Declined:
- ld a, DAYCARETEXT_COME_AGAIN
- scf
- ret
-
-.Egg:
- ld a, DAYCARETEXT_CANT_BREED_EGG
- scf
- ret
-
-.OnlyOneMon:
- ld a, DAYCARETEXT_LAST_MON
- scf
- ret
-
-.OutOfUsableMons:
- ld a, DAYCARETEXT_LAST_ALIVE_MON
- scf
- ret
-
-.HoldingMail:
- ld a, DAYCARETEXT_REMOVE_MAIL
- scf
- ret
-; 167f1
-
-.DummyText: ; 0x167f1
- ;
- text_jump UnknownText_0x1bdaa7
- db "@"
-; 0x167f6
-
-DayCare_DepositPokemonText: ; 167f6
- ld a, DAYCARETEXT_DEPOSIT
- call PrintDayCareText
- ld a, [CurPartySpecies]
- call PlayCry
- ld a, DAYCARETEXT_COME_BACK_LATER
- call PrintDayCareText
- ret
-; 16807
-
-DayCare_AskWithdrawBreedMon: ; 16807
- ld a, [StringBuffer2 + 1]
- and a
- jr nz, .grew_at_least_one_level
- ld a, DAYCARETEXT_PARTY_FULL
- call PrintDayCareText
- call YesNoBox
- jr c, .refused
- jr .check_money
-
-.grew_at_least_one_level
- ld a, DAYCARETEXT_GENIUSES
- call PrintDayCareText
- call YesNoBox
- jr c, .refused
- ld a, DAYCARETEXT_ASK_WITHDRAW
- call PrintDayCareText
- call YesNoBox
- jr c, .refused
-
-.check_money
- ld de, Money
- ld bc, StringBuffer2 + 2
- farcall CompareMoney
- jr c, .not_enough_money
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr nc, .PartyFull
- and a
- ret
-
-.refused
- ld a, DAYCARETEXT_COME_AGAIN
- scf
- ret
-
-.not_enough_money
- ld a, DAYCARETEXT_OH_FINE
- scf
- ret
-
-.PartyFull:
- ld a, DAYCARETEXT_NOT_ENOUGH_MONEY
- scf
- ret
-; 16850
-
-DayCare_TakeMoney_PlayCry: ; 16850
- ld bc, StringBuffer2 + 2
- ld de, Money
- farcall TakeMoney
- ld a, DAYCARETEXT_WITHDRAW
- call PrintDayCareText
- ld a, [CurPartySpecies]
- call PlayCry
- ld a, DAYCARETEXT_TOO_SOON
- call PrintDayCareText
- ret
-; 1686d
-
-GetPriceToRetrieveBreedmon: ; 1686d
- ld a, b
- ld [StringBuffer2], a
- ld a, d
- ld [StringBuffer2 + 1], a
- ld de, StringBuffer1
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, 0
- ld bc, 100
- ld a, [StringBuffer2 + 1]
- call AddNTimes
- ld de, 100
- add hl, de
- xor a
- ld [StringBuffer2 + 2], a
- ld a, h
- ld [StringBuffer2 + 3], a
- ld a, l
- ld [StringBuffer2 + 4], a
- ret
-; 1689b
-
-PrintDayCareText: ; 1689b
- ld e, a
- ld d, 0
- ld hl, .TextTable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 168aa
-
-.TextTable: ; 168aa
- dw .DayCareManIntro ; 00
- dw .DayCareManOddEgg ; 01
- dw .DayCareLadyIntro ; 02
- dw .DayCareLadyOddEgg ; 03
- dw .WhichOne ; 04
- dw .OkayIllRaiseYourMon ; 05
- dw .CantAcceptEgg ; 06
- dw .JustOneMon ; 07
- dw .LastHealthyMon ; 08
- dw .ComeBackForItLater ; 09
- dw .RemoveMail ; 0a
- dw .AreWeGeniusesOrWhat ; 0b
- dw .AskRetrieveMon ; 0c
- dw .PerfectHeresYourMon ; 0d
- dw .GotBackMon ; 0e
- dw .ImmediatelyWithdrawMon ; 0f
- dw .PartyFull ; 10
- dw .NotEnoughMoney ; 11
- dw .OhFineThen ; 12
- dw .ComeAgain ; 13
-; 168d2
-
-.DayCareManIntro: ; 0x168d2
- ; I'm the DAY-CARE MAN. Want me to raise a #MON?
- text_jump UnknownText_0x1bdaa9
- db "@"
-; 0x168d7
-
-.DayCareManOddEgg: ; 0x168d7
- ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON?
- text_jump UnknownText_0x1bdad8
- db "@"
-; 0x168dc
-
-.DayCareLadyIntro: ; 0x168dc
- ; I'm the DAY-CARE LADY. Should I raise a #MON for you?
- text_jump UnknownText_0x1bdb85
- db "@"
-; 0x168e1
-
-.DayCareLadyOddEgg: ; 0x168e1
- ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you?
- text_jump UnknownText_0x1bdbbb
- db "@"
-; 0x168e6
-
-.WhichOne: ; 0x168e6
- ; What should I raise for you?
- text_jump UnknownText_0x1bdc79
- db "@"
-; 0x168eb
-
-.JustOneMon: ; 0x168eb
- ; Oh? But you have just one #MON.
- text_jump UnknownText_0x1bdc97
- db "@"
-; 0x168f0
-
-.CantAcceptEgg: ; 0x168f0
- ; Sorry, but I can't accept an EGG.
- text_jump UnknownText_0x1bdcb8
- db "@"
-; 0x168f5
-
-.RemoveMail: ; 0x168f5
- ; Remove MAIL before you come see me.
- text_jump UnknownText_0x1bdcda
- db "@"
-; 0x168fa
-
-.LastHealthyMon: ; 0x168fa
- ; If you give me that, what will you battle with?
- text_jump UnknownText_0x1bdcff
- db "@"
-; 0x168ff
-
-.OkayIllRaiseYourMon: ; 0x168ff
- ; OK. I'll raise your @ .
- text_jump UnknownText_0x1bdd30
- db "@"
-; 0x16904
-
-.ComeBackForItLater: ; 0x16904
- ; Come back for it later.
- text_jump UnknownText_0x1bdd4b
- db "@"
-; 0x16909
-
-.AreWeGeniusesOrWhat: ; 0x16909
- ; Are we geniuses or what? Want to see your @ ?
- text_jump UnknownText_0x1bdd64
- db "@"
-; 0x1690e
-
-.AskRetrieveMon: ; 0x1690e
- ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ .
- text_jump UnknownText_0x1bdd96
- db "@"
-; 0x16913
-
-.PerfectHeresYourMon: ; 0x16913
- ; Perfect! Here's your #MON.
- text_jump UnknownText_0x1bde04
- db "@"
-; 0x16918
-
-.GotBackMon: ; 0x16918
- ; got back @ .
- text_jump UnknownText_0x1bde1f
- db "@"
-; 0x1691d
-
-.ImmediatelyWithdrawMon: ; 0x1691d
- ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100.
- text_jump UnknownText_0x1bde32
- db "@"
-; 0x16922
-
-.PartyFull: ; 0x16922
- ; You have no room for it.
- text_jump UnknownText_0x1bdea2
- db "@"
-; 0x16927
-
-.NotEnoughMoney: ; 0x16927
- ; You don't have enough money.
- text_jump UnknownText_0x1bdebc
- db "@"
-; 0x1692c
-
-.OhFineThen: ; 0x1692c
- ; Oh, fine then.
- text_jump UnknownText_0x1bded9
- db "@"
-; 0x16931
-
-.ComeAgain: ; 0x16931
- ; Come again.
- text_jump UnknownText_0x1bdee9
- db "@"
-; 0x16936
-
-Special_DayCareManOutside: ; 16936
- ld hl, wDayCareMan
- bit 6, [hl]
- jr nz, .AskGiveEgg
- ld hl, .NotYet
- call PrintText
- ret
-
-.NotYet: ; 0x16944
- ; Not yet…
- text_jump UnknownText_0x1bdef6
- db "@"
-; 0x16949
-
-.AskGiveEgg: ; 16949
- ld hl, .IntroText
- call PrintText
- call YesNoBox
- jr c, .Declined
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr nc, .PartyFull
- call DayCare_GiveEgg
- ld hl, wDayCareMan
- res 6, [hl]
- call DayCare_InitBreeding
- ld hl, .GotEggText
- call PrintText
- ld de, SFX_GET_EGG_FROM_DAY_CARE_LADY
- call PlaySFX
- ld c, 120
- call DelayFrames
- ld hl, .TakeGoodCareOfItText
- jr .Load0
-
-.Declined:
- ld hl, .IllKeepItThanksText
-
-.Load0:
- call PrintText
- xor a
- ld [ScriptVar], a
- ret
-
-.PartyFull:
- ld hl, .PartyFullText
- call PrintText
- ld a, $1
- ld [ScriptVar], a
- ret
-; 16993
-
-.IntroText: ; 0x16993
- ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it?
- text_jump UnknownText_0x1bdf00
- db "@"
-; 0x16998
-
-.GotEggText: ; 0x16998
- ; received the EGG!
- text_jump UnknownText_0x1bdfa5
- db "@"
-; 0x1699d
-
-.TakeGoodCareOfItText: ; 0x1699d
- ; Take good care of it.
- text_jump UnknownText_0x1bdfba
- db "@"
-; 0x169a2
-
-.IllKeepItThanksText: ; 0x169a2
- ; Well then, I'll keep it. Thanks!
- text_jump UnknownText_0x1bdfd1
- db "@"
-; 0x169a7
-
-.PartyFullText: ; 0x169a7
- ; You have no room in your party. Come back later.
- text_jump UnknownText_0x1bdff2
- db "@"
-; 0x169ac
-
-DayCare_GiveEgg: ; 169ac
- ld a, [wEggMonLevel]
- ld [CurPartyLevel], a
- ld hl, PartyCount
- ld a, [hl]
- cp PARTY_LENGTH
- jr nc, .PartyFull
- inc a
- ld [hl], a
-
- ld c, a
- ld b, 0
- add hl, bc
- ld a, EGG
- ld [hli], a
- ld a, [wEggMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- ld a, -1
- ld [hl], a
-
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call DayCare_GetCurrentPartyMember
- ld hl, wEggNick
- call CopyBytes
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call DayCare_GetCurrentPartyMember
- ld hl, wEggOT
- call CopyBytes
-
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call DayCare_GetCurrentPartyMember
- ld hl, wEggMon
- ld bc, wEggMonEnd - wEggMon
- call CopyBytes
-
- call GetBaseData
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld b, h
- ld c, l
- ld hl, MON_ID + 1
- add hl, bc
- push hl
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- push bc
- ld b, $0
- predef CalcPkmnStats
- pop bc
- ld hl, MON_HP
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- and a
- ret
-
-.PartyFull:
- scf
- ret
-; 16a31
-
-DayCare_GetCurrentPartyMember: ; 16a31
- ld a, [PartyCount]
- dec a
- call AddNTimes
- ld d, h
- ld e, l
- ret
-; 16a3b
-
-DayCare_InitBreeding: ; 16a3b
- ld a, [wDayCareLady]
- bit 0, a
- ret z
- ld a, [wDayCareMan]
- bit 0, a
- ret z
- callfar CheckBreedmonCompatibility
- ld a, [wd265]
- and a
- ret z
- inc a
- ret z
- ld hl, wDayCareMan
- set 5, [hl]
-.loop
- call Random
- cp 150
- jr c, .loop
- ld [wStepsToEgg], a
- jp .UselessJump
-; 16a66
-
-.UselessJump: ; 16a66
- xor a
- ld hl, wEggMon
- ld bc, wEggMonEnd - wEggMon
- call ByteFill
- ld hl, wEggNick
- ld bc, PKMN_NAME_LENGTH
- call ByteFill
- ld hl, wEggOT
- ld bc, NAME_LENGTH
- call ByteFill
- ld a, [wBreedMon1DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon1DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, [wBreedMon1Species]
- ld [CurPartySpecies], a
- ld a, $3
- ld [MonType], a
- ld a, [wBreedMon1Species]
- cp DITTO
- ld a, $1
- jr z, .LoadWhichBreedmonIsTheMother
- ld a, [wBreedMon2Species]
- cp DITTO
- ld a, $0
- jr z, .LoadWhichBreedmonIsTheMother
- farcall GetGender
- ld a, $0
- jr z, .LoadWhichBreedmonIsTheMother
- inc a
-
-.LoadWhichBreedmonIsTheMother:
- ld [wBreedMotherOrNonDitto], a
- and a
- ld a, [wBreedMon1Species]
- jr z, .GotMother
- ld a, [wBreedMon2Species]
-
-.GotMother:
- ld [CurPartySpecies], a
- callfar GetPreEvolution
- callfar GetPreEvolution
- ld a, EGG_LEVEL
- ld [CurPartyLevel], a
-
- ld a, [CurPartySpecies]
- cp NIDORAN_F
- jr nz, .GotEggSpecies
- call Random
- cp 1 + 50 percent
- ld a, NIDORAN_F
- jr c, .GotEggSpecies
- ld a, NIDORAN_M
-.GotEggSpecies:
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- ld [wEggMonSpecies], a
-
- call GetBaseData
- ld hl, wEggNick
- ld de, .String_EGG
- call CopyName2
- ld hl, PlayerName
- ld de, wEggOT
- ld bc, NAME_LENGTH
- call CopyBytes
- xor a
- ld [wEggMonItem], a
- ld de, wEggMonMoves
- xor a
- ld [Buffer1], a
- predef FillMoves
- farcall InitEggMoves
- ld hl, wEggMonID
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hl], a
- ld a, [CurPartyLevel]
- ld d, a
- callfar CalcExpAtLevel
- ld hl, wEggMonExp
- ld a, [hMultiplicand]
- ld [hli], a
- ld a, [hMultiplicand + 1]
- ld [hli], a
- ld a, [hMultiplicand + 2]
- ld [hl], a
- xor a
- ld b, wEggMonDVs - wEggMonStatExp
- ld hl, wEggMonStatExp
-.loop2
- ld [hli], a
- dec b
- jr nz, .loop2
- ld hl, wEggMonDVs
- call Random
- ld [hli], a
- ld [TempMonDVs], a
- call Random
- ld [hld], a
- ld [TempMonDVs + 1], a
- ld de, wBreedMon1DVs
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .GotDVs
- ld de, wBreedMon2DVs
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .GotDVs
- ld a, TEMPMON
- ld [MonType], a
- push hl
- farcall GetGender
- pop hl
- ld de, wBreedMon1DVs
- ld bc, wBreedMon2DVs
- jr c, .SkipDVs
- jr z, .ParentCheck2
- ld a, [wBreedMotherOrNonDitto]
- and a
- jr z, .GotDVs
- ld d, b
- ld e, c
- jr .GotDVs
-
-.ParentCheck2:
- ld a, [wBreedMotherOrNonDitto]
- and a
- jr nz, .GotDVs
- ld d, b
- ld e, c
-
-.GotDVs:
- ld a, [de]
- inc de
- and $f
- ld b, a
- ld a, [hl]
- and $f0
- add b
- ld [hli], a
- ld a, [de]
- and $7
- ld b, a
- ld a, [hl]
- and $f8
- add b
- ld [hl], a
-
-.SkipDVs:
- ld hl, StringBuffer1
- ld de, wMonOrItemNameBuffer
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, wEggMonMoves
- ld de, wEggMonPP
- predef FillPP
- ld hl, wMonOrItemNameBuffer
- ld de, StringBuffer1
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [BaseEggSteps]
- ld hl, wEggMonHappiness
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld a, [CurPartyLevel]
- ld [wEggMonLevel], a
- ret
-; 16be0
-
-.String_EGG: ; 16be0
- db "EGG@"
-; 16be4
diff --git a/event/dratini.asm b/event/dratini.asm
deleted file mode 100644
index f110b34ab..000000000
--- a/event/dratini.asm
+++ /dev/null
@@ -1,112 +0,0 @@
-SpecialDratini: ; 0x8b170
-; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
-; 0: give it a special moveset with Extremespeed.
-; 1: give it the normal moveset of a level 15 Dratini.
-
- ld a, [ScriptVar]
- cp $2
- ret nc
- ld bc, PartyCount
- ld a, [bc]
- ld hl, MON_SPECIES
- call .GetNthPartyMon
- ld a, [bc]
- ld c, a
- ld de, PARTYMON_STRUCT_LENGTH
-.CheckForDratini:
-; start at the end of the party and search backwards for a Dratini
- ld a, [hl]
- cp DRATINI
- jr z, .GiveMoveset
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- dec c
- jr nz, .CheckForDratini
- ret
-
-.GiveMoveset:
- push hl
- ld a, [ScriptVar]
- ld hl, .Movesets
- ld bc, .Moveset1 - .Moveset0
- call AddNTimes
-
- ; get address of mon's first move
- pop de
- inc de
- inc de
-
-.GiveMoves:
- ld a, [hl]
- and a ; is the move 00?
- ret z ; if so, we're done here
-
- push hl
- push de
- ld [de], a ; give the Pokémon the new move
-
- ; get the PP of the new move
- dec a
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
-
- ; get the address of the move's PP and update the PP
- ld hl, MON_PP - MON_MOVES
- add hl, de
- ld [hl], a
-
- pop de
- pop hl
- inc de
- inc hl
- jr .GiveMoves
-
-.Movesets:
-.Moveset0:
-; Dratini does not normally learn Extremespeed. This is a special gift.
- db WRAP
- db THUNDER_WAVE
- db TWISTER
- db EXTREMESPEED
- db 0
-.Moveset1:
-; This is the normal moveset of a level 15 Dratini
- db WRAP
- db LEER
- db THUNDER_WAVE
- db TWISTER
- db 0
-
-.GetNthPartyMon: ; 0x8b1ce
-; inputs:
-; hl must be set to 0 before calling this function.
-; a must be set to the number of Pokémon in the party.
-
-; outputs:
-; returns the address of the last Pokémon in the party in hl.
-; sets carry if a is 0.
-
- ld de, PartyMon1
- add hl, de
- and a
- jr z, .EmptyParty
- dec a
- ret z
- ld de, PARTYMON_STRUCT_LENGTH
-.loop
- add hl, de
- dec a
- jr nz, .loop
- ret
-
-.EmptyParty:
- scf
- ret
-; 8b1e1
diff --git a/event/elevator.asm b/event/elevator.asm
deleted file mode 100755
index 9170b642d..000000000
--- a/event/elevator.asm
+++ /dev/null
@@ -1,283 +0,0 @@
-Elevator:: ; 1342d
- call .LoadPointer
- call .FindCurrentFloor
- jr c, .quit
- ld [wElevatorOriginFloor], a
- call Elevator_AskWhichFloor
- jr c, .quit
- ld hl, wElevatorOriginFloor
- cp [hl]
- jr z, .quit
- call Elevator_GoToFloor
- and a
- ret
-
-.quit
- scf
- ret
-; 1344a
-
-.LoadPointer: ; 1344a
- ld a, b
- ld [wElevatorPointerBank], a
- ld a, e
- ld [wElevatorPointer], a
- ld a, d
- ld [wElevatorPointer + 1], a
- call .LoadFloors
- ret
-; 1345a
-
-.LoadFloors: ; 1345a
- ld de, CurElevator
- ld bc, 4
- ld hl, wElevatorPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wElevatorPointerBank]
- call GetFarByte
- inc hl
- ld [de], a
- inc de
-.loop
- ld a, [wElevatorPointerBank]
- call GetFarByte
- ld [de], a
- inc de
- add hl, bc
- cp -1
- jr nz, .loop
- ret
-; 1347d
-
-.FindCurrentFloor: ; 1347d
- ld hl, wElevatorPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wElevatorPointerBank]
- call GetFarByte
- ld c, a
- inc hl
- ld a, [BackupMapGroup]
- ld d, a
- ld a, [BackupMapNumber]
- ld e, a
- ld b, 0
-.loop2
- ld a, [wElevatorPointerBank]
- call GetFarByte
- cp -1
- jr z, .fail
- inc hl
- inc hl
- ld a, [wElevatorPointerBank]
- call GetFarByte
- inc hl
- cp d
- jr nz, .next1
- ld a, [wElevatorPointerBank]
- call GetFarByte
- inc hl
- cp e
- jr nz, .next2
- jr .done
-
-.next1
- inc hl
-.next2
- inc b
- jr .loop2
-
-.done
- xor a
- ld a, b
- ret
-
-.fail
- scf
- ret
-; 134c0
-
-Elevator_GoToFloor: ; 134c0
- push af
- ld hl, wElevatorPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- pop af
- ld bc, 4
- call AddNTimes
- inc hl
- ld de, BackupWarpNumber
- ld a, [wElevatorPointerBank]
- ld bc, 3
- call FarCopyBytes
- ret
-; 134dd
-
-Elevator_AskWhichFloor: ; 134dd
- call LoadStandardMenuDataHeader
- ld hl, Elevator_WhichFloorText
- call PrintText
- call Elevator_GetCurrentFloorText
- ld hl, Elevator_MenuDataHeader
- call CopyMenuDataHeader
- call InitScrollingMenu
- call UpdateSprites
- xor a
- ld [wMenuScrollPosition], a
- call ScrollingMenu
- call CloseWindow
- ld a, [wMenuJoypad]
- cp B_BUTTON
- jr z, .cancel
- xor a
- ld a, [wScrollingMenuCursorPosition]
- ret
-
-.cancel
- scf
- ret
-; 1350d
-
-Elevator_WhichFloorText: ; 0x1350d
- ; Which floor?
- text_jump UnknownText_0x1bd2bc
- db "@"
-; 0x13512
-
-
-Elevator_GetCurrentFloorText: ; 13512
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- hlcoord 0, 0
- ld b, 4
- ld c, 8
- call TextBox
- hlcoord 1, 2
- ld de, Elevator_CurrentFloorText
- call PlaceString
- hlcoord 4, 4
- call Elevator_GetCurrentFloorString
- pop af
- ld [Options], a
- ret
-; 13537
-
-Elevator_CurrentFloorText: ; 13537
- db "Now on:@"
-; 1353f
-
-
-Elevator_GetCurrentFloorString: ; 1353f
- push hl
- ld a, [wElevatorOriginFloor]
- ld e, a
- ld d, 0
- ld hl, CurElevatorFloors
- add hl, de
- ld a, [hl]
- pop de
- call GetFloorString
- ret
-; 13550
-
-Elevator_MenuDataHeader: ; 0x13550
- db $40 ; flags
- db 01, 12 ; start coords
- db 09, 18 ; end coords
- dw Elevator_MenuData2
- db 1 ; default option
-; 0x13558
-
-Elevator_MenuData2: ; 0x13558
- db $10 ; flags
- db 4, 0 ; rows, columns
- db 1 ; horizontal spacing
- dbw 0, CurElevator
- dba GetElevatorFlorStrings
- dba NULL
- dba NULL
-; 13568
-
-GetElevatorFlorStrings: ; 13568
- ld a, [MenuSelection]
-GetFloorString: ; 1356b
- push de
- call FloorToString
- ld d, h
- ld e, l
- pop hl
- jp PlaceString
-; 13575
-
-FloorToString: ; 13575
- push de
- ld e, a
- ld d, 0
- ld hl, .floors
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- ret
-; 13583
-
-.floors
- dw .b4f
- dw .b3f
- dw .b2f
- dw .b1f
- dw ._1f
- dw ._2f
- dw ._3f
- dw ._4f
- dw ._5f
- dw ._6f
- dw ._7f
- dw ._8f
- dw ._9f
- dw ._10f
- dw ._11f
- dw .roof
-
-.b4f
- db "B4F@"
-.b3f
- db "B3F@"
-.b2f
- db "B2F@"
-.b1f
- db "B1F@"
-._1f
- db "1F@"
-._2f
- db "2F@"
-._3f
- db "3F@"
-._4f
- db "4F@"
-._5f
- db "5F@"
-._6f
- db "6F@"
-._7f
- db "7F@"
-._8f
- db "8F@"
-._9f
- db "9F@"
-._10f
- db "10F@"
-._11f
- db "11F@"
-.roof
- db "ROOF@"
-; 135db
diff --git a/event/field_moves.asm b/event/field_moves.asm
deleted file mode 100755
index 1c21f4995..000000000
--- a/event/field_moves.asm
+++ /dev/null
@@ -1,469 +0,0 @@
-PlayWhirlpoolSound: ; 8c7d4
- call WaitSFX
- ld de, SFX_SURF
- call PlaySFX
- call WaitSFX
- ret
-; 8c7e1
-
-BlindingFlash: ; 8c7e1
- farcall FadeOutPalettes
- ld hl, StatusFlags
- set 2, [hl] ; Flash
- farcall ReplaceTimeOfDayPals
- farcall UpdateTimeOfDayPal
- ld b, SCGB_MAPPALS
- call GetSGBLayout
- farcall LoadOW_BGPal7
- farcall FadeInPalettes
- ret
-; 8c80a
-
-ShakeHeadbuttTree: ; 8c80a
- farcall ClearSpriteAnims
- ld de, CutGrassGFX
- ld hl, VTiles1
- lb bc, BANK(CutGrassGFX), 4
- call Request2bpp
- ld de, HeadbuttTreeGFX
- ld hl, VTiles1 tile $04
- lb bc, BANK(HeadbuttTreeGFX), 8
- call Request2bpp
- call Cut_Headbutt_GetPixelFacing
- ld a, SPRITE_ANIM_INDEX_HEADBUTT
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $84
- ld a, 36 * 4
- ld [wCurrSpriteOAMAddr], a
- farcall DoNextFrameForAllSprites
- call HideHeadbuttTree
- ld a, $20
- ld [wcf64], a
- call WaitSFX
- ld de, SFX_SANDSTORM
- call PlaySFX
-.loop
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ld a, 36 * 4
- ld [wCurrSpriteOAMAddr], a
- farcall DoNextFrameForAllSprites
- call DelayFrame
- jr .loop
-
-.done
- call OverworldTextModeSwitch
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- farcall ClearSpriteAnims
- ld hl, Sprites + 36 * 4
- ld bc, SpritesEnd - (Sprites + 36 * 4)
- xor a
- call ByteFill
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), 12
- call Get1bpp
- call ReplaceKrisSprite
- ret
-; 8c893
-
-HeadbuttTreeGFX: ; 8c893
-INCBIN "gfx/overworld/headbutt_tree.2bpp"
-; 8c913
-
-HideHeadbuttTree: ; 8c913
- xor a
- ld [hBGMapMode], a
- ld a, [PlayerDirection]
- and %00001100
- srl a
- ld e, a
- ld d, 0
- ld hl, TreeRelativeLocationTable
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, $5
- ld [hli], a
- ld [hld], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- ld [hld], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-; 8c938
-
-TreeRelativeLocationTable: ; 8c938
- dwcoord 8, 8 + 2 ; RIGHT
- dwcoord 8, 8 - 2 ; LEFT
- dwcoord 8 - 2, 8 ; DOWN
- dwcoord 8 + 2, 8 ; UP
-; 8c940
-
-OWCutAnimation: ; 8c940
- ; Animation index in e
- ; 0: Split tree in half
- ; 1: Mow the lawn
- ld a, e
- and $1
- ld [wJumptableIndex], a
- call .LoadCutGFX
- call WaitSFX
- ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
- call PlaySFX
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .finish
- ld a, 36 * 4
- ld [wCurrSpriteOAMAddr], a
- callfar DoNextFrameForAllSprites
- call OWCutJumptable
- call DelayFrame
- jr .loop
-
-.finish
- ret
-; 8c96d
-
-.LoadCutGFX: ; 8c96d
- callfar ClearSpriteAnims ; pointless to farcall
- ld de, CutGrassGFX
- ld hl, VTiles1
- lb bc, BANK(CutGrassGFX), 4
- call Request2bpp
- ld de, CutTreeGFX
- ld hl, VTiles1 tile $4
- lb bc, BANK(CutTreeGFX), 4
- call Request2bpp
- ret
-; 8c98c
-
-CutTreeGFX: ; c898c
-INCBIN "gfx/overworld/cut_tree.2bpp"
-; c89cc
-
-CutGrassGFX: ; 8c9cc
-INCBIN "gfx/overworld/cut_grass.2bpp"
-; 8ca0c
-
-OWCutJumptable: ; 8ca0c
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 8ca1b
-
-
-.dw ; 8ca1b (23:4a1b)
- dw Cut_SpawnAnimateTree
- dw Cut_SpawnAnimateLeaves
- dw Cut_StartWaiting
- dw Cut_WaitAnimSFX
-
-
-Cut_SpawnAnimateTree: ; 8ca23 (23:4a23)
- call Cut_Headbutt_GetPixelFacing
- ld a, SPRITE_ANIM_INDEX_CUT_TREE ; cut tree
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $84
- ld a, 32
- ld [wcf64], a
-; Cut_StartWaiting
- ld hl, wJumptableIndex
- inc [hl]
- inc [hl]
- ret
-
-Cut_SpawnAnimateLeaves: ; 8ca3c (23:4a3c)
- call Cut_GetLeafSpawnCoords
- xor a
- call Cut_SpawnLeaf
- ld a, $10
- call Cut_SpawnLeaf
- ld a, $20
- call Cut_SpawnLeaf
- ld a, $30
- call Cut_SpawnLeaf
- ld a, 32 ; frames
- ld [wcf64], a
-; Cut_StartWaiting
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Cut_StartWaiting: ; 8ca5c (23:4a5c)
- ld a, $1
- ld [hBGMapMode], a
-; Cut_WaitAnimSFX
- ld hl, wJumptableIndex
- inc [hl]
-
-Cut_WaitAnimSFX: ; 8ca64 (23:4a64)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .finished
- dec [hl]
- ret
-
-.finished
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Cut_SpawnLeaf: ; 8ca73 (23:4a73)
- push de
- push af
- ld a, SPRITE_ANIM_INDEX_LEAF ; leaf
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $80
- ld hl, SPRITEANIMSTRUCT_0E
- add hl, bc
- ld [hl], $4
- pop af
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld [hl], a
- pop de
- ret
-
-Cut_GetLeafSpawnCoords: ; 8ca8e (23:4a8e)
- ld de, 0
- ld a, [wMetatileStandingX]
- bit 0, a
- jr z, .left_side
- set 0, e
-.left_side
- ld a, [wMetatileStandingY]
- bit 0, a
- jr z, .top_side
- set 1, e
-.top_side
- ld a, [PlayerDirection]
- and %00001100
- add e
- ld e, a
- ld hl, .Coords
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-; 8cab3 (23:4ab3)
-
-.Coords: ; 8cab3
- dbpixel 11, 12 ; facing down, top left
- dbpixel 9, 12 ; facing down, top right
- dbpixel 11, 14 ; facing down, bottom left
- dbpixel 9, 14 ; facing down, bottom right
-
- dbpixel 11, 8 ; facing up, top left
- dbpixel 9, 8 ; facing up, top right
- dbpixel 11, 10 ; facing up, bottom left
- dbpixel 9, 10 ; facing up, bottom right
-
- dbpixel 7, 12 ; facing left, top left
- dbpixel 9, 12 ; facing left, top right
- dbpixel 7, 10 ; facing left, bottom left
- dbpixel 9, 10 ; facing left, bottom right
-
- dbpixel 11, 12 ; facing right, top left
- dbpixel 13, 12 ; facing right, top right
- dbpixel 11, 10 ; facing right, bottom left
- dbpixel 13, 10 ; facing right, bottom right
-; 8cad3
-
-Cut_Headbutt_GetPixelFacing: ; 8cad3 (23:4ad3)
- ld a, [PlayerDirection]
- and %00001100
- srl a
- ld e, a
- ld d, 0
- ld hl, .Coords
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-; 8cae5 (23:4ae5)
-
-.Coords: ; 8cae5
- dbpixel 10, 13
- dbpixel 10, 9
- dbpixel 8, 11
- dbpixel 12, 11
-; 8caed
-
-
-FlyFromAnim: ; 8caed
- call DelayFrame
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- call FlyFunction_InitGFX
- depixel 10, 10, 4, 0
- ld a, SPRITE_ANIM_INDEX_RED_WALK
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $84
- ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
- add hl, bc
- ld [hl], SPRITE_ANIM_SEQ_FLY_FROM
- ld a, 128
- ld [wcf64], a
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .exit
- ld a, 0 * 4
- ld [wCurrSpriteOAMAddr], a
- callfar DoNextFrameForAllSprites
- call FlyFunction_FrameTimer
- call DelayFrame
- jr .loop
-
-.exit
- pop af
- ld [VramState], a
- ret
-; 8cb33
-
-FlyToAnim: ; 8cb33
- call DelayFrame
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- call FlyFunction_InitGFX
- depixel 31, 10, 4, 0
- ld a, SPRITE_ANIM_INDEX_RED_WALK
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $84
- ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
- add hl, bc
- ld [hl], SPRITE_ANIM_SEQ_FLY_TO
- ld hl, SPRITEANIMSTRUCT_0F
- add hl, bc
- ld [hl], 11 * 8
- ld a, 64
- ld [wcf64], a
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .exit
- ld a, 0 * 4
- ld [wCurrSpriteOAMAddr], a
- callfar DoNextFrameForAllSprites
- call FlyFunction_FrameTimer
- call DelayFrame
- jr .loop
-
-.exit
- pop af
- ld [VramState], a
- call .RestorePlayerSprite_DespawnLeaves
- ret
-
-.RestorePlayerSprite_DespawnLeaves: ; 8cb82 (23:4b82)
- ld hl, Sprites + 2 ; Tile ID
- xor a
- ld c, $4
-.loop2
- ld [hli], a
- inc hl
- inc hl
- inc hl
- inc a
- dec c
- jr nz, .loop2
- ld hl, Sprites + 4 * 4
- ld bc, SpritesEnd - (Sprites + 4 * 4)
- xor a
- call ByteFill
- ret
-
-FlyFunction_InitGFX: ; 8cb9b (23:4b9b)
- callfar ClearSpriteAnims
- ld de, CutGrassGFX
- ld hl, VTiles1 tile $00
- lb bc, BANK(CutGrassGFX), 4
- call Request2bpp
- ld a, [CurPartyMon]
- ld hl, PartySpecies
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ld e, $84
- farcall FlyFunction_GetMonIcon
- xor a
- ld [wJumptableIndex], a
- ret
-
-FlyFunction_FrameTimer: ; 8cbc8 (23:4bc8)
- call .SpawnLeaf
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .exit
- dec [hl]
- cp $40
- ret c
- and $7
- ret nz
- ld de, SFX_FLY
- call PlaySFX
- ret
-
-.exit
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.SpawnLeaf: ; 8cbe6 (23:4be6)
- ld hl, wcf65
- ld a, [hl]
- inc [hl]
- and $7
- ret nz
- ld a, [hl]
- and (6 * 8) >> 1
- sla a
- add 8 * 8 ; gives a number in [$40, $50, $60, $70]
- ld d, a
- ld e, $0
- ld a, SPRITE_ANIM_INDEX_FLY_LEAF ; fly land
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $80
- ret
diff --git a/event/forced_movement.asm b/event/forced_movement.asm
deleted file mode 100755
index 136698501..000000000
--- a/event/forced_movement.asm
+++ /dev/null
@@ -1,60 +0,0 @@
-Script_ForcedMovement:: ; 0x1253d
- checkcode VAR_FACING
- if_equal DOWN, .down
- if_equal UP, .up
- if_equal LEFT, .left
- if_equal RIGHT, .right
- end
-; 0x12550
-
-.up ; 0x12550
- applymovement PLAYER, .MovementData_up
- end
-; 0x12555
-
-.down ; 0x12555
- applymovement PLAYER, .MovementData_down
- end
-; 0x1255a
-
-.right ; 0x1255a
- applymovement PLAYER, .MovementData_right
- end
-; 0x1255f
-
-.left ; 0x1255f
- applymovement PLAYER, .MovementData_left
- end
-; 0x12564
-
-.MovementData_up: ; 0x12564
- step_dig 16
- turn_in DOWN
- step_dig 16
- turn_head DOWN
- step_end
-; 0x1256b
-
-.MovementData_down: ; 0x1256b
- step_dig 16
- turn_in UP
- step_dig 16
- turn_head UP
- step_end
-; 0x12572
-
-.MovementData_right: ; 0x12572
- step_dig 16
- turn_in LEFT
- step_dig 16
- turn_head LEFT
- step_end
-; 0x12579
-
-.MovementData_left: ; 0x12579
- step_dig 16
- turn_in RIGHT
- step_dig 16
- turn_head RIGHT
- step_end
-; 0x12580
diff --git a/event/halloffame.asm b/event/halloffame.asm
deleted file mode 100755
index 5fa1dc270..000000000
--- a/event/halloffame.asm
+++ /dev/null
@@ -1,622 +0,0 @@
-HALLOFFAME_COLON EQU $63
-
-HallOfFame:: ; 0x8640e
- call HallOfFame_FadeOutMusic
- ld a, [StatusFlags]
- push af
- ld a, 1
- ld [wGameLogicPaused], a
- call DisableSpriteUpdates
- ld a, SPAWN_LANCE
- ld [wSpawnAfterChampion], a
-
- ; Enable the Pokégear map to cycle through all of Kanto
- ld hl, StatusFlags
- set 6, [hl] ; hall of fame
-
- farcall HallOfFame_InitSaveIfNeeded
-
- ld hl, wHallOfFameCount
- ld a, [hl]
- cp 200
- jr nc, .ok
- inc [hl]
-.ok
- farcall SaveGameData
- call GetHallOfFameParty
- farcall AddHallOfFameEntry
-
- xor a
- ld [wGameLogicPaused], a
- call AnimateHallOfFame
- pop af
- ld b, a
- farcall Credits
- ret
-; 0x86455
-
-RedCredits:: ; 86455
- ld a, LOW(MUSIC_NONE)
- ld [MusicFadeID], a
- ld a, HIGH(MUSIC_NONE)
- ld [MusicFadeID + 1], a
- ld a, 10
- ld [MusicFade], a
- farcall FadeOutPalettes
- xor a
- ld [VramState], a
- ld [hMapAnims], a
- farcall InitDisplayForRedCredits
- ld c, 8
- call DelayFrames
- call DisableSpriteUpdates
- ld a, SPAWN_RED
- ld [wSpawnAfterChampion], a
- ld a, [StatusFlags]
- ld b, a
- farcall Credits
- ret
-; 8648e
-
-HallOfFame_FadeOutMusic: ; 8648e
- ld a, LOW(MUSIC_NONE)
- ld [MusicFadeID], a
- ld a, HIGH(MUSIC_NONE)
- ld [MusicFadeID + 1], a
- ld a, 10
- ld [MusicFade], a
- farcall FadeOutPalettes
- xor a
- ld [VramState], a
- ld [hMapAnims], a
- farcall InitDisplayForHallOfFame
- ld c, 100
- jp DelayFrames
-; 864b4
-
-HallOfFame_PlayMusicDE: ; 864b4
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- call PlayMusic
- ret
-; 864c3
-
-AnimateHallOfFame: ; 864c3
- xor a
- ld [wJumptableIndex], a
- call LoadHOFTeam
- jr c, .done
- ld de, MUSIC_HALL_OF_FAME
- call HallOfFame_PlayMusicDE
- xor a
- ld [wcf64], a
-.loop
- ld a, [wcf64]
- cp PARTY_LENGTH
- jr nc, .done
- ld hl, wHallOfFameTempMon1
- ld bc, wHallOfFameTempMon1End - wHallOfFameTempMon1
- call AddNTimes
- ld a, [hl]
- cp -1
- jr z, .done
- push hl
- call AnimateHOFMonEntrance
- pop hl
- call .DisplayNewHallOfFamer
- jr c, .done
- ld hl, wcf64
- inc [hl]
- jr .loop
-
-.done
- call HOF_AnimatePlayerPic
- ld a, $4
- ld [MusicFade], a
- call RotateThreePalettesRight
- ld c, 8
- call DelayFrames
- ret
-; 8650c
-
-.DisplayNewHallOfFamer: ; 8650c
- call DisplayHOFMon
- ld de, .String_NewHallOfFamer
- hlcoord 1, 2
- call PlaceString
- call WaitBGMap
- decoord 6, 5
- ld c, $6
- predef HOF_AnimateFrontpic
- ld c, 60
- call DelayFrames
- and a
- ret
-; 8652c
-
-.String_NewHallOfFamer:
- db "New Hall of Famer!@"
-; 8653f
-
-
-GetHallOfFameParty: ; 8653f
- ld hl, OverworldMap
- ld bc, HOF_LENGTH
- xor a
- call ByteFill
- ld a, [wHallOfFameCount]
- ld de, OverworldMap
- ld [de], a
- inc de
- ld hl, PartySpecies
- ld c, 0
-.next
- ld a, [hli]
- cp -1
- jr z, .done
- cp EGG
- jr nz, .mon
- inc c
- jr .next
-
-.mon
- push hl
- push de
- push bc
-
- ld a, c
- ld hl, PartyMons
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld c, l
- ld b, h
-
- ld hl, MON_SPECIES
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_ID
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_DVS
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
-
- pop bc
- push bc
- ld a, c
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
-
- pop bc
- inc c
- pop de
- ld hl, HOF_MON_LENGTH
- add hl, de
- ld e, l
- ld d, h
- pop hl
- jr .next
-
-.done
- ld a, $ff
- ld [de], a
- ret
-; 865b5
-
-AnimateHOFMonEntrance: ; 865b5
- push hl
- call ClearBGPalettes
- farcall ResetDisplayBetweenHallOfFameMons
- pop hl
- ld a, [hli]
- ld [TempMonSpecies], a
- ld [CurPartySpecies], a
- inc hl
- inc hl
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hli]
- ld [TempMonDVs + 1], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ld de, VTiles2 tile $31
- predef GetMonBackpic
- ld a, $31
- ld [hGraphicStartTile], a
- hlcoord 6, 6
- lb bc, 6, 6
- predef PlaceGraphic
- ld a, $d0
- ld [hSCY], a
- ld a, $90
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
- call HOF_SlideBackpic
- xor a
- ld [wBoxAlignment], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 6, 5
- call _PrepMonFrontpic
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [hSCY], a
- call HOF_SlideFrontpic
- ret
-; 86635
-
-HOF_SlideBackpic:
-.backpicloop
- ld a, [hSCX]
- cp $70
- ret z
- add $4
- ld [hSCX], a
- call DelayFrame
- jr .backpicloop
-; 86643
-
-HOF_SlideFrontpic:
-.frontpicloop
- ld a, [hSCX]
- and a
- ret z
- dec a
- dec a
- ld [hSCX], a
- call DelayFrame
- jr .frontpicloop
-; 86650
-
-_HallOfFamePC: ; 86650
- call LoadFontsBattleExtra
- xor a
- ld [wJumptableIndex], a
-.MasterLoop:
- call LoadHOFTeam
- ret c
- call .DisplayTeam
- ret c
- ld hl, wJumptableIndex
- inc [hl]
- jr .MasterLoop
-
-.DisplayTeam:
- xor a
- ld [wcf64], a
-.next
- call .DisplayMonAndStrings
- jr c, .start_button
-.loop
- call JoyTextDelay
- ld hl, hJoyLast
- ld a, [hl]
- and B_BUTTON
- jr nz, .b_button
- ld a, [hl]
- and A_BUTTON
- jr nz, .a_button
- ld a, [hl]
- and START
- jr nz, .start_button
- call DelayFrame
- jr .loop
-
-.a_button
- ld hl, wcf64
- inc [hl]
- jr .next
-
-.b_button
- scf
- ret
-
-.start_button
- and a
- ret
-
-.DisplayMonAndStrings:
-; Print the number of times the player has entered the Hall of Fame.
-; If that number is above 200, print "HOF Master!" instead.
- ld a, [wcf64]
- cp PARTY_LENGTH
- jr nc, .fail
- ld hl, wHallOfFameTempMon1
- ld bc, wHallOfFameTempMon1End - wHallOfFameTempMon1
- call AddNTimes
- ld a, [hl]
- cp -1
- jr nz, .okay
-
-.fail
- scf
- ret
-
-.okay
- push hl
- call ClearBGPalettes
- pop hl
- call DisplayHOFMon
- ld a, [wHallOfFameTempWinCount]
- cp 200 + 1
- jr c, .print_num_hof
- ld de, .HOFMaster
- hlcoord 1, 2
- call PlaceString
- hlcoord 13, 2
- jr .finish
-
-.print_num_hof
- ld de, .TimeFamer
- hlcoord 1, 2
- call PlaceString
- hlcoord 2, 2
- ld de, wHallOfFameTempWinCount
- lb bc, 1, 3
- call PrintNum
- hlcoord 11, 2
-
-.finish
- ld de, .EmptyString
- call PlaceString
- call WaitBGMap
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
- decoord 6, 5
- ld c, $6
- predef HOF_AnimateFrontpic
- and a
- ret
-
-.EmptyString:
- db "@"
-
-.HOFMaster:
- db " HOF Master!@"
-
-.TimeFamer:
- db " -Time Famer@"
-; 8671c
-
-LoadHOFTeam: ; 8671c
- ld a, [wJumptableIndex]
- cp NUM_HOF_TEAMS
- jr nc, .invalid
- ld hl, sHallOfFame
- ld bc, HOF_LENGTH
- call AddNTimes
- ld a, BANK(sHallOfFame)
- call GetSRAMBank
- ld a, [hl]
- and a
- jr z, .absent
- ld de, wHallOfFameTemp
- ld bc, HOF_LENGTH
- call CopyBytes
- call CloseSRAM
- and a
- ret
-
-.absent
- call CloseSRAM
-
-.invalid
- scf
- ret
-; 86748
-
-DisplayHOFMon: ; 86748
- xor a
- ld [hBGMapMode], a
- ld a, [hli]
- ld [TempMonSpecies], a
- ld a, [hli]
- ld [TempMonID], a
- ld a, [hli]
- ld [TempMonID + 1], a
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hli]
- ld [TempMonDVs + 1], a
- ld a, [hli]
- ld [TempMonLevel], a
- ld de, StringBuffer2
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [StringBuffer2 + 10], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 0, 0
- lb bc, 3, SCREEN_WIDTH - 2
- call TextBox
- hlcoord 0, 12
- lb bc, 4, SCREEN_WIDTH - 2
- call TextBox
- ld a, [TempMonSpecies]
- ld [CurPartySpecies], a
- ld [wd265], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- xor a
- ld [wBoxAlignment], a
- hlcoord 6, 5
- call _PrepMonFrontpic
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .print_id_no
- hlcoord 1, 13
- ld a, "№"
- ld [hli], a
- ld [hl], "<DOT>"
- hlcoord 3, 13
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- call GetBasePokemonName
- hlcoord 7, 13
- call PlaceString
- ld a, TEMPMON
- ld [MonType], a
- farcall GetGender
- ld a, " "
- jr c, .got_gender
- ld a, "♂"
- jr nz, .got_gender
- ld a, "♀"
-
-.got_gender
- hlcoord 18, 13
- ld [hli], a
- hlcoord 8, 14
- ld a, "/"
- ld [hli], a
- ld de, StringBuffer2
- call PlaceString
- hlcoord 1, 16
- call PrintLevel
-
-.print_id_no
- hlcoord 7, 16
- ld a, "<ID>"
- ld [hli], a
- ld a, "№"
- ld [hli], a
- ld [hl], "/"
- hlcoord 10, 16
- ld de, TempMonID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 86810
-
-HOF_AnimatePlayerPic: ; 86810
- call ClearBGPalettes
- ld hl, VTiles2 tile HALLOFFAME_COLON
- ld de, FontExtra + 13 tiles ; "<COLON>"
- lb bc, BANK(FontExtra), 1
- call Request2bpp
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- farcall GetPlayerBackpic
- ld a, $31
- ld [hGraphicStartTile], a
- hlcoord 6, 6
- lb bc, 6, 6
- predef PlaceGraphic
- ld a, $d0
- ld [hSCY], a
- ld a, $90
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [CurPartySpecies], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
- call HOF_SlideBackpic
- xor a
- ld [wBoxAlignment], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- farcall HOF_LoadTrainerFrontpic
- xor a
- ld [hGraphicStartTile], a
- hlcoord 12, 5
- lb bc, 7, 7
- predef PlaceGraphic
- ld a, $c0
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [hSCY], a
- call HOF_SlideFrontpic
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 2
- lb bc, 8, 9
- call TextBox
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- hlcoord 2, 4
- ld de, PlayerName
- call PlaceString
- hlcoord 1, 6
- ld a, "<ID>"
- ld [hli], a
- ld a, "№"
- ld [hli], a
- ld [hl], "/"
- hlcoord 4, 6
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 1, 8
- ld de, .PlayTime
- call PlaceString
- hlcoord 3, 9
- ld de, GameTimeHours
- lb bc, 2, 3
- call PrintNum
- ld [hl], HALLOFFAME_COLON
- inc hl
- ld de, GameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- call WaitBGMap
- farcall ProfOaksPCRating
- ret
-; 868ed
-
-.PlayTime:
- db "PLAY TIME@"
-; 868f7
-
diff --git a/event/happiness_egg.asm b/event/happiness_egg.asm
deleted file mode 100755
index a1ade1364..000000000
--- a/event/happiness_egg.asm
+++ /dev/null
@@ -1,221 +0,0 @@
-GetFirstPokemonHappiness: ; 718d
- ld hl, PartyMon1Happiness
- ld bc, PARTYMON_STRUCT_LENGTH
- ld de, PartySpecies
-.loop
- ld a, [de]
- cp EGG
- jr nz, .done
- inc de
- add hl, bc
- jr .loop
-
-.done
- ld [wd265], a
- ld a, [hl]
- ld [ScriptVar], a
- call GetPokemonName
- jp CopyPokemonName_Buffer1_Buffer3
-
-CheckFirstMonIsEgg: ; 71ac
- ld a, [PartySpecies]
- ld [wd265], a
- cp EGG
- ld a, $1
- jr z, .egg
- xor a
-
-.egg
- ld [ScriptVar], a
- call GetPokemonName
- jp CopyPokemonName_Buffer1_Buffer3
-
-ChangeHappiness: ; 71c2
-; Perform happiness action c on CurPartyMon
-
- ld a, [CurPartyMon]
- inc a
- ld e, a
- ld d, 0
- ld hl, PartySpecies - 1
- add hl, de
- ld a, [hl]
- cp EGG
- ret z
-
- push bc
- ld hl, PartyMon1Happiness
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- pop bc
-
- ld d, h
- ld e, l
-
- push de
- ld a, [de]
- cp HAPPINESS_THRESHOLD_1
- ld e, 0
- jr c, .ok
- inc e
- cp HAPPINESS_THRESHOLD_2
- jr c, .ok
- inc e
-
-.ok
- dec c
- ld b, 0
- ld hl, HappinessChanges
- add hl, bc
- add hl, bc
- add hl, bc
- ld d, 0
- add hl, de
- ld a, [hl]
- cp $64 ; $80?
- pop de
-
- ld a, [de]
- jr nc, .negative
- add [hl]
- jr nc, .done
- ld a, -1
- jr .done
-
-.negative
- add [hl]
- jr c, .done
- xor a
-
-.done
- ld [de], a
- ld a, [wBattleMode]
- and a
- ret z
- ld a, [CurPartyMon]
- ld b, a
- ld a, [wPartyMenuCursor]
- cp b
- ret nz
- ld a, [de]
- ld [BattleMonHappiness], a
- ret
-
-
-INCLUDE "data/happiness_changes.asm"
-
-
-StepHappiness:: ; 725a
-; Raise the party's happiness by 1 point every other step cycle.
-
- ld hl, wHappinessStepCount
- ld a, [hl]
- inc a
- and 1
- ld [hl], a
- ret nz
-
- ld de, PartyCount
- ld a, [de]
- and a
- ret z
-
- ld c, a
- ld hl, PartyMon1Happiness
-.loop
- inc de
- ld a, [de]
- cp EGG
- jr z, .next
- inc [hl]
- jr nz, .next
- ld [hl], $ff
-
-.next
- push de
- ld de, PARTYMON_STRUCT_LENGTH
- add hl, de
- pop de
- dec c
- jr nz, .loop
- ret
-
-DayCareStep:: ; 7282
-
- ld a, [wDayCareMan]
- bit 0, a
- jr z, .day_care_lady
-
- ld a, [wBreedMon1Level] ; level
- cp MAX_LEVEL
- jr nc, .day_care_lady
- ld hl, wBreedMon1Exp + 2 ; exp
- inc [hl]
- jr nz, .day_care_lady
- dec hl
- inc [hl]
- jr nz, .day_care_lady
- dec hl
- inc [hl]
- ld a, [hl]
- cp HIGH(MAX_DAY_CARE_EXP >> 8)
- jr c, .day_care_lady
- ld a, HIGH(MAX_DAY_CARE_EXP >> 8)
- ld [hl], a
-
-.day_care_lady
- ld a, [wDayCareLady]
- bit 0, a
- jr z, .check_egg
-
- ld a, [wBreedMon2Level] ; level
- cp MAX_LEVEL
- jr nc, .check_egg
- ld hl, wBreedMon2Exp + 2 ; exp
- inc [hl]
- jr nz, .check_egg
- dec hl
- inc [hl]
- jr nz, .check_egg
- dec hl
- inc [hl]
- ld a, [hl]
- cp HIGH(MAX_DAY_CARE_EXP >> 8)
- jr c, .check_egg
- ld a, HIGH(MAX_DAY_CARE_EXP >> 8)
- ld [hl], a
-
-.check_egg
- ld hl, wDayCareMan
- bit 5, [hl] ; egg
- ret z
- ld hl, wStepsToEgg
- dec [hl]
- ret nz
-
- call Random
- ld [hl], a
- callfar CheckBreedmonCompatibility
- ld a, [wd265]
- cp 230
- ld b, 32 percent - 1
- jr nc, .okay
- ld a, [wd265]
- cp 170
- ld b, 16 percent
- jr nc, .okay
- ld a, [wd265]
- cp 110
- ld b, 12 percent
- jr nc, .okay
- ld b, 4 percent
-
-.okay
- call Random
- cp b
- ret nc
- ld hl, wDayCareMan
- res 5, [hl]
- set 6, [hl]
- ret
diff --git a/event/heal_machine_anim.asm b/event/heal_machine_anim.asm
deleted file mode 100755
index c7789a28d..000000000
--- a/event/heal_machine_anim.asm
+++ /dev/null
@@ -1,265 +0,0 @@
-HealMachineAnim: ; 12324
- ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
- ld a, [PartyCount]
- and a
- ret z
- ; The location of the healing machine relative to the player is stored in ScriptVar.
- ; 0: Up and left (Pokemon Center)
- ; 1: Left (Elm's Lab)
- ; 2: Up (Hall of Fame)
- ld a, [ScriptVar]
- ld [Buffer1], a
- ld a, [rOBP1]
- ld [Buffer2], a
- call .DoJumptableFunctions
- ld a, [Buffer2]
- call DmgToCgbObjPal1
- ret
-; 1233e
-
-.DoJumptableFunctions: ; 1233e
- xor a
- ld [Buffer3], a
-.jumpable_loop
- ld a, [Buffer1]
- ld e, a
- ld d, 0
- ld hl, .Pointers
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Buffer3]
- ld e, a
- inc a
- ld [Buffer3], a
- add hl, de
- ld a, [hl]
- cp 5
- jr z, .finish
- ld hl, .Jumptable
- rst JumpTable
- jr .jumpable_loop
-
-.finish
- ret
-; 12365
-
-.Pointers: ; 12365
- dw .Pokecenter
- dw .ElmLab
- dw .HallOfFame
-; 1236b
-
-.Pokecenter: ; 1236b
- db 0, 1, 3, 5
-.ElmLab: ; 1236f
- db 0, 1, 3, 5
-.HallOfFame: ; 12373
- db 0, 2, 4, 5
-; 12377
-
-.Jumptable: ; 12377
- dw .LoadGFX
- dw .PC_LoadBallsOntoMachine
- dw .HOF_LoadBallsOntoMachine
- dw .PlayHealMusic
- dw .HOF_PlaySFX
- dw .dummy_5 ; never encountered
-; 12383
-
-.LoadGFX: ; 12383
- call .LoadPalettes
- ld de, .HealMachineGFX
- ld hl, VTiles0 tile $7c
- lb bc, BANK(.HealMachineGFX), $2
- call Request2bpp
- ret
-; 12393
-
-.PC_LoadBallsOntoMachine: ; 12393
- ld hl, Sprites + $80
- ld de, .PC_ElmsLab_OAM
- call .PlaceHealingMachineTile
- call .PlaceHealingMachineTile
- jr .LoadBallsOntoMachine
-
-.HOF_LoadBallsOntoMachine: ; 123a1
- ld hl, Sprites + $80
- ld de, .HOF_OAM
-
-.LoadBallsOntoMachine: ; 123a7
- ld a, [PartyCount]
- ld b, a
-.party_loop
- call .PlaceHealingMachineTile
- push de
- ld de, SFX_SECOND_PART_OF_ITEMFINDER
- call PlaySFX
- pop de
- ld c, 30
- call DelayFrames
- dec b
- jr nz, .party_loop
- ret
-; 123bf
-
-.PlayHealMusic: ; 123bf
- ld de, MUSIC_HEAL
- call PlayMusic
- jp .FlashPalettes8Times
-; 123c8
-
-.HOF_PlaySFX: ; 123c8
- ld de, SFX_GAME_FREAK_LOGO_GS
- call PlaySFX
- call .FlashPalettes8Times
- call WaitSFX
- ld de, SFX_BOOT_PC
- call PlaySFX
- ret
-; 123db
-
-.dummy_5 ; 123db
- ret
-; 123dc
-
-.PC_ElmsLab_OAM: ; 123dc
- dsprite 4, 0, 4, 2, $7c, PAL_OW_TREE | OBP_NUM
- dsprite 4, 0, 4, 6, $7c, PAL_OW_TREE | OBP_NUM
- dsprite 4, 6, 4, 0, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 4, 6, 5, 0, $7d, PAL_OW_TREE | OBP_NUM | X_FLIP
- dsprite 5, 3, 4, 0, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 5, 3, 5, 0, $7d, PAL_OW_TREE | OBP_NUM | X_FLIP
- dsprite 6, 0, 4, 0, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 6, 0, 5, 0, $7d, PAL_OW_TREE | OBP_NUM | X_FLIP
-; 123fc
-
-.HealMachineGFX: ; 123fc
-INCBIN "gfx/overworld/heal_machine.2bpp"
-; 1241c
-
-.HOF_OAM: ; 1241c
- dsprite 7, 4, 10, 1, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 7, 4, 10, 6, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 7, 3, 9, 5, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 7, 3, 11, 2, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 7, 1, 9, 1, $7d, PAL_OW_TREE | OBP_NUM
- dsprite 7, 1, 11, 5, $7d, PAL_OW_TREE | OBP_NUM
-; 12434
-
-.LoadPalettes: ; 12434
- call IsCGB
- jr nz, .cgb
- ld a, %11100000
- ld [rOBP1], a
- ret
-
-.cgb
- ld hl, .palettes
- ld de, OBPals palette PAL_OW_TREE
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 12451
-
-.palettes ; 12451
- RGB 31, 31, 31
- RGB 31, 19, 10
- RGB 31, 07, 01
- RGB 00, 00, 00
-; 12459
-
-.FlashPalettes8Times: ; 12459
- ld c, $8
-.palette_loop
- push bc
- call .FlashPalettes
- ld c, 10
- call DelayFrames
- pop bc
- dec c
- jr nz, .palette_loop
- ret
-; 12469
-
-.FlashPalettes: ; 12469
- call IsCGB
- jr nz, .go
- ld a, [rOBP1]
- xor %00101000
- ld [rOBP1], a
- ret
-
-.go
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, OBPals palette PAL_OW_TREE
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- ld c, $3
-.palette_loop_2
- ld a, [hli]
- ld e, a
- ld a, [hld]
- ld d, a
- dec hl
- ld a, d
- ld [hld], a
- ld a, e
- ld [hli], a
- inc hl
- inc hl
- inc hl
- dec c
- jr nz, .palette_loop_2
- pop de
- dec hl
- ld a, d
- ld [hld], a
- ld a, e
- ld [hl], a
-
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 124a3
-
-.PlaceHealingMachineTile: ; 124a3
- push bc
- ld a, [Buffer1]
- bcpixel 2, 4
- cp $1 ; ElmsLab
- jr z, .okay
- bcpixel 0, 0
-
-.okay
- ld a, [de]
- add c
- inc de
- ld [hli], a
- ld a, [de]
- add b
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- pop bc
- ret
-; 124c1
diff --git a/event/itemfinder.asm b/event/itemfinder.asm
deleted file mode 100755
index 71aaa5b69..000000000
--- a/event/itemfinder.asm
+++ /dev/null
@@ -1,58 +0,0 @@
-ItemFinder: ; 12580
- farcall CheckForHiddenItems
- jr c, .found_something
- ld hl, .Script_FoundNothing
- jr .resume
-
-.found_something
- ld hl, .Script_FoundSomething
-
-.resume
- call QueueScript
- ld a, $1
- ld [wItemEffectSucceeded], a
- ret
-; 12599
-
-.ItemfinderSound: ; 12599
- ld c, 4
-.sfx_loop
- push bc
- ld de, SFX_SECOND_PART_OF_ITEMFINDER
- call WaitPlaySFX
- ld de, SFX_TRANSACTION
- call WaitPlaySFX
- pop bc
- dec c
- jr nz, .sfx_loop
- ret
-; 125ad
-
-.Script_FoundSomething: ; 0x125ad
- reloadmappart
- special UpdateTimePals
- callasm .ItemfinderSound
- writetext .Text_FoundSomething
- closetext
- end
-; 0x125ba
-
-.Script_FoundNothing: ; 0x125ba
- reloadmappart
- special UpdateTimePals
- writetext .Text_FoundNothing
- closetext
- end
-; 0x125c3
-
-.Text_FoundSomething: ; 0x125c3
- ; Yes! ITEMFINDER indicates there's an item nearby.
- text_jump UnknownText_0x1c0a77
- db "@"
-; 0x125c8
-
-.Text_FoundNothing: ; 0x125c8
- ; Nope! ITEMFINDER isn't responding.
- text_jump UnknownText_0x1c0aa9
- db "@"
-; 0x125cd
diff --git a/event/kurt.asm b/event/kurt.asm
deleted file mode 100644
index 9bc06a613..000000000
--- a/event/kurt.asm
+++ /dev/null
@@ -1,413 +0,0 @@
-Kurt_PrintTextWhichApricorn: ; 88000
- ld hl, .Text
- call PrintText
- ret
-; 88007
-
-.Text: ; 0x88007
- ; Which APRICORN should I use?
- text_jump UnknownText_0x1bc06b
- db "@"
-; 0x8800c
-
-Kurt_PrintTextHowMany: ; 8800c
- ld hl, .Text
- call PrintText
- ret
-; 88013
-
-.Text: ; 0x88013
- ; How many should I make?
- text_jump UnknownText_0x1bc089
- db "@"
-; 0x88018
-
-Special_SelectApricornForKurt: ; 88018
- call LoadStandardMenuDataHeader
- ld c, $1
- xor a
- ld [wMenuScrollPosition], a
- ld [wKurtApricornQuantity], a
-.loop
- push bc
- call Kurt_PrintTextWhichApricorn
- pop bc
- ld a, c
- ld [MenuSelection], a
- call Kurt_SelectApricorn
- ld a, c
- ld [ScriptVar], a
- and a
- jr z, .done
- ld [CurItem], a
- ld a, [wMenuCursorY]
- ld c, a
- push bc
- call Kurt_PrintTextHowMany
- call Kurt_SelectQuantity
- pop bc
- jr nc, .loop
- ld a, [wItemQuantityChangeBuffer]
- ld [wKurtApricornQuantity], a
- call Kurt_GiveUpSelectedQuantityOfSelectedApricorn
-
-.done
- call Call_ExitMenu
- ret
-; 88055
-
-Kurt_SelectApricorn: ; 88055
- farcall FindApricornsInBag
- jr c, .nope
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- ld a, [MenuSelection]
- ld [wMenuCursorBuffer], a
- xor a
- ld [hBGMapMode], a
- call InitScrollingMenu
- call UpdateSprites
- call ScrollingMenu
- ld a, [wMenuJoypad]
- cp B_BUTTON
- jr z, .nope
- ld a, [MenuSelection]
- cp -1
- jr nz, .done
-
-.nope
- xor a
-
-.done
- ld c, a
- ret
-; 88086
-
-.MenuDataHeader: ; 0x88086
- db $40 ; flags
- db 01, 01 ; start coords
- db 10, 13 ; end coords
- dw .MenuData2
- db 1 ; default option
-; 0x8808e
-
- db 0
-
-.MenuData2: ; 0x8808f
- db $10 ; flags
- db 4, 7
- db 1
- dbw 0, Buffer1
- dba .Name
- dba .Quantity
- dba NULL
-
-.Name: ; 8809f
- ld a, [MenuSelection]
- and a
- ret z
- farcall PlaceMenuItemName
- ret
-; 880ab
-
-.Quantity: ; 880ab
- ld a, [MenuSelection]
- ld [CurItem], a
- call Kurt_GetQuantityOfApricorn
- ret z
- ld a, [wItemQuantityChangeBuffer]
- ld [MenuSelectionQuantity], a
- farcall PlaceMenuItemQuantity
- ret
-; 880c2
-
-Kurt_SelectQuantity: ; 880c2
- ld a, [CurItem]
- ld [MenuSelection], a
- call Kurt_GetQuantityOfApricorn
- jr z, .done
- ld a, [wItemQuantityChangeBuffer]
- ld [wItemQuantityBuffer], a
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, .MenuDataHeader
- call LoadMenuDataHeader
-.loop
- xor a
- ld [hBGMapMode], a
- call MenuBox
- call UpdateSprites
- call .PlaceApricornName
- call PlaceApricornQuantity
- call ApplyTilemap
- farcall Kurt_SelectQuantity_InterpretJoypad
- jr nc, .loop
-
- push bc
- call PlayClickSFX
- pop bc
- ld a, b
- cp -1
- jr z, .done
- ld a, [wItemQuantityChangeBuffer]
- ld [wItemQuantityChangeBuffer], a ; What is the point of this operation?
- scf
-
-.done
- call CloseWindow
- ret
-; 8810d
-
-.MenuDataHeader: ; 0x8810d
- db $40 ; flags
- db 09, 06 ; start coords
- db 12, 19 ; end coords
-
- db 0, 0, -1, 0 ; XXX
-
-.PlaceApricornName: ; 88116
- call MenuBoxCoord2Tile
- ld de, SCREEN_WIDTH + 1
- add hl, de
- ld d, h
- ld e, l
- farcall PlaceMenuItemName
- ret
-; 88126
-
-PlaceApricornQuantity: ; 88126
- call MenuBoxCoord2Tile
- ld de, 2 * SCREEN_WIDTH + 10
- add hl, de
- ld [hl], "×"
- inc hl
- ld de, wItemQuantityChangeBuffer
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- jp PrintNum
-; 88139
-
-Kurt_GetQuantityOfApricorn: ; 88139
- push bc
- ld hl, NumItems
- ld a, [CurItem]
- ld c, a
- ld b, $0
-.loop
- inc hl
- ld a, [hli]
- cp -1
- jr z, .done
- cp c
- jr nz, .loop
- ld a, [hl]
- add b
- ld b, a
- jr nc, .loop
- ld b, -1
-
-.done
- ld a, b
- sub 99
- jr c, .done2
- ld b, 99
-
-.done2
- ld a, b
- ld [wItemQuantityChangeBuffer], a
- and a
- pop bc
- ret
-; 88161
-
-Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
-; Get the quantity of Apricorns of type [CurItem]
-; in the bag. Compatible with multiple stacks.
-
-; Initialize the search.
- push de
- push bc
- ld hl, NumItems
- ld a, [CurItem]
- ld c, a
- ld e, $0
- xor a
- ld [CurItemQuantity], a
- ld a, -1
- ld [wApricorns], a
-
-; Search for [CurItem] in the bag.
-.loop1
-; Increase the total count.
- ld a, [CurItemQuantity]
- inc a
- ld [CurItemQuantity], a
-; Get the index of the next item.
- inc hl
- ld a, [hli]
-; If we've reached the end of the pocket, break.
- cp -1
- jr z, .okay1
-; If we haven't found what we're looking for, continue.
- cp c
- jr nz, .loop1
-; Increment the result counter and store the bag index of the match.
- ld d, $0
- push hl
- ld hl, wApricorns
- add hl, de
- inc e
- ld a, [CurItemQuantity]
- dec a
- ld [hli], a
- ld a, -1
- ld [hl], a
- pop hl
- jr .loop1
-
-.okay1
-; How many stacks have we found?
- ld a, e
- and a
- jr z, .done
- dec a
- jr z, .OnlyOne
- ld hl, wApricorns
-
-.loop2
- ld a, [hl]
- ld c, a
- push hl
-.loop3
- inc hl
- ld a, [hl]
- cp -1
- jr z, .okay2
- ld b, a
- ld a, c
- call Kurt_GetAddressOfApricornQuantity
- ld e, a
- ld a, b
- call Kurt_GetAddressOfApricornQuantity
- sub e
- jr z, .equal
- jr c, .less
- jr .loop3
-
-.equal
- ld a, c
- sub b
- jr nc, .loop3
-
-.less
- ld a, c
- ld c, b
- ld [hl], a
- ld a, c
- pop hl
- ld [hl], a
- push hl
- jr .loop3
-
-.okay2
- pop hl
- inc hl
- ld a, [hl]
- cp -1
- jr nz, .loop2
-
-.OnlyOne:
- ld hl, wApricorns
-.loop4
- ld a, [hl]
- cp -1
- jr z, .done
- push hl
- ld [CurItemQuantity], a
- call Kurt_GetRidOfItem
- pop hl
- ld a, [wItemQuantityChangeBuffer]
- and a
- jr z, .done
- push hl
- ld a, [hli]
- ld c, a
-.loop5
- ld a, [hli]
- cp -1
- jr z, .okay3
- cp c
- jr c, .loop5
- dec a
- dec hl
- ld [hli], a
- jr .loop5
-
-.okay3
- pop hl
- inc hl
- jr .loop4
-
-.done
- ld a, [wItemQuantityChangeBuffer]
- and a
- pop bc
- pop de
- ret
-; 88201
-
-Kurt_GetAddressOfApricornQuantity: ; 88201
- push hl
- push bc
- ld hl, NumItems
- inc hl
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- inc hl
- ld a, [hl]
- pop bc
- pop hl
- ret
-; 88211
-
-Kurt_GetRidOfItem: ; 88211
- push bc
- ld hl, NumItems
- ld a, [CurItemQuantity]
- ld c, a
- ld b, $0
- inc hl
- add hl, bc
- add hl, bc
- ld a, [CurItem]
- ld c, a
- ld a, [hli]
- cp -1
- jr z, .done
- cp c
- jr nz, .done
- ld a, [wItemQuantityChangeBuffer]
- ld c, a
- ld a, [hl]
- sub c
- ld b, c
- jr nc, .okay
- add c
- ld b, a
-
-.okay
- push bc
- ld hl, NumItems
- ld a, b
- ld [wItemQuantityChangeBuffer], a
- call TossItem
- pop bc
- ld a, c
- sub b
-
-.done
- ld [wItemQuantityChangeBuffer], a
- pop bc
- ret
-; 88248
diff --git a/event/kurt_selectquantity_interpretjoypad.asm b/event/kurt_selectquantity_interpretjoypad.asm
deleted file mode 100644
index 12a43e325..000000000
--- a/event/kurt_selectquantity_interpretjoypad.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kurt_SelectQuantity_InterpretJoypad: ; 27a28
- call BuySellToss_InterpretJoypad
- ld b, a
- ret
diff --git a/event/lucky_number.asm b/event/lucky_number.asm
deleted file mode 100644
index 4488cfcc9..000000000
--- a/event/lucky_number.asm
+++ /dev/null
@@ -1,226 +0,0 @@
-Special_CheckForLuckyNumberWinners: ; 4d87a
- xor a
- ld [ScriptVar], a
- ld [wFoundMatchingIDInParty], a
- ld a, [PartyCount]
- and a
- ret z
- ld d, a
- ld hl, PartyMon1ID
- ld bc, PartySpecies
-.PartyLoop:
- ld a, [bc]
- inc bc
- cp EGG
- call nz, .CompareLuckyNumberToMonID
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .PartyLoop
- ld a, BANK(sBox)
- call GetSRAMBank
- ld a, [sBoxCount]
- and a
- jr z, .SkipOpenBox
- ld d, a
- ld hl, sBoxMon1ID
- ld bc, sBoxSpecies
-.OpenBoxLoop:
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .SkipOpenBoxMon
- call .CompareLuckyNumberToMonID
- jr nc, .SkipOpenBoxMon
- ld a, 1
- ld [wFoundMatchingIDInParty], a
-
-.SkipOpenBoxMon:
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .OpenBoxLoop
-
-.SkipOpenBox:
- call CloseSRAM
- ld c, $0
-.BoxesLoop:
- ld a, [wCurBox]
- and $f
- cp c
- jr z, .SkipBox
- ld hl, .BoxBankAddresses
- ld b, 0
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- call GetSRAMBank
- ld a, [hli]
- ld h, [hl]
- ld l, a ; hl now contains the address of the loaded box in SRAM
- ld a, [hl]
- and a
- jr z, .SkipBox ; no mons in this box
- push bc
- ld b, h
- ld c, l
- inc bc
- ld de, sBoxMon1ID - sBox
- add hl, de
- ld d, a
-.BoxNLoop:
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .SkipBoxMon
-
- call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately
- jr nc, .SkipBoxMon
- ld a, 1
- ld [wFoundMatchingIDInParty], a
-
-.SkipBoxMon:
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .BoxNLoop
- pop bc
-
-.SkipBox:
- inc c
- ld a, c
- cp NUM_BOXES
- jr c, .BoxesLoop
-
- call CloseSRAM
- ld a, [ScriptVar]
- and a
- ret z ; found nothing
- farcall TrainerRankings_LuckyNumberShow
- ld a, [wFoundMatchingIDInParty]
- and a
- push af
- ld a, [CurPartySpecies]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, .FoundPartymonText
- pop af
- jr z, .print
- ld hl, .FoundBoxmonText
-
-.print
- jp PrintText
-
-.CompareLuckyNumberToMonID: ; 4d939
- push bc
- push de
- push hl
- ld d, h
- ld e, l
- ld hl, Buffer1
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld hl, LuckyNumberDigit1Buffer
- ld de, wLuckyIDNumber
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld b, 5
- ld c, 0
- ld hl, LuckyNumberDigit5Buffer
- ld de, Buffer5
-.loop
- ld a, [de]
- cp [hl]
- jr nz, .done
- dec de
- dec hl
- inc c
- dec b
- jr nz, .loop
-
-.done
- pop hl
- push hl
- ld de, -6
- add hl, de
- ld a, [hl]
- pop hl
- pop de
- push af
- ld a, c
- ld b, 1
- cp 5
- jr z, .okay
- ld b, 2
- cp 3
- jr nc, .okay
- ld b, 3
- cp 2
- jr nz, .nomatch
-
-.okay
- inc b
- ld a, [ScriptVar]
- and a
- jr z, .bettermatch
- cp b
- jr c, .nomatch
-
-.bettermatch
- dec b
- ld a, b
- ld [ScriptVar], a
- pop bc
- ld a, b
- ld [CurPartySpecies], a
- pop bc
- scf
- ret
-
-.nomatch
- pop bc
- pop bc
- and a
- ret
-
-.BoxBankAddresses: ; 4d99f
- dba sBox1
- dba sBox2
- dba sBox3
- dba sBox4
- dba sBox5
- dba sBox6
- dba sBox7
- dba sBox8
- dba sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-
-.FoundPartymonText: ; 0x4d9c9
- ; Congratulations! We have a match with the ID number of @ in your party.
- text_jump UnknownText_0x1c1261
- db "@"
-
-.FoundBoxmonText: ; 0x4d9ce
- ; Congratulations! We have a match with the ID number of @ in your PC BOX.
- text_jump UnknownText_0x1c12ae
- db "@"
-
-Special_PrintTodaysLuckyNumber: ; 4d9d3
- ld hl, StringBuffer3
- ld de, wLuckyIDNumber
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld a, "@"
- ld [StringBuffer3 + 5], a
- ret
diff --git a/event/magikarp.asm b/event/magikarp.asm
deleted file mode 100644
index 02c4b10cd..000000000
--- a/event/magikarp.asm
+++ /dev/null
@@ -1,342 +0,0 @@
-Special_CheckMagikarpLength: ; fbb32
- ; Returns 3 if you select a Magikarp that beats the previous record.
- ; Returns 2 if you select a Magikarp, but the current record is longer.
- ; Returns 1 if you press B in the Pokemon selection menu.
- ; Returns 0 if the Pokemon you select is not a Magikarp.
-
- ; Let's start by selecting a Magikarp.
- farcall SelectMonFromParty
- jr c, .declined
- ld a, [CurPartySpecies]
- cp MAGIKARP
- jr nz, .not_magikarp
-
- ; Now let's compute its length based on its DVs and ID.
- ld a, [CurPartyMon]
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- push hl
- ld bc, MON_DVS
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld bc, MON_ID
- add hl, bc
- ld b, h
- ld c, l
- call CalcMagikarpLength
- call PrintMagikarpLength
- farcall TrainerRankings_MagikarpLength
- ld hl, .MeasureItText
- call PrintText
-
- ; Did we beat the record?
- ld hl, wMagikarpLength
- ld de, wBestMagikarpLengthFeet
- ld c, 2
- call StringCmp
- jr nc, .not_long_enough
-
- ; NEW RECORD!!! Let's save that.
- ld hl, wMagikarpLength
- ld de, wBestMagikarpLengthFeet
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- ld a, [CurPartyMon]
- ld hl, PartyMonOT
- call SkipNames
- call CopyBytes
- ld a, 3
- ld [ScriptVar], a
- ret
-
-.not_long_enough
- ld a, 2
- ld [ScriptVar], a
- ret
-
-.declined
- ld a, 1
- ld [ScriptVar], a
- ret
-
-.not_magikarp
- xor a
- ld [ScriptVar], a
- ret
-; fbba9
-
-.MeasureItText: ; 0xfbba9
- ; Let me measure that MAGIKARP. …Hm, it measures @ .
- text_jump UnknownText_0x1c1203
- db "@"
-; 0xfbbae
-
-Magikarp_LoadFeetInchesChars: ; fbbae
- ld hl, VTiles2 tile "′" ; $6e
- ld de, .feetinchchars
- lb bc, BANK(.feetinchchars), 2
- call Request2bpp
- ret
-; fbbbb
-
-.feetinchchars ; fbbb
-INCBIN "gfx/font/feet_inches.2bpp"
-; fbbdb
-
-PrintMagikarpLength: ; fbbdb
- call Magikarp_LoadFeetInchesChars
- ld hl, StringBuffer1
- ld de, wMagikarpLength
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- call PrintNum
- ld [hl], "′"
- inc hl
- ld de, wMagikarpLength + 1
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- call PrintNum
- ld [hl], "″"
- inc hl
- ld [hl], "@"
- ret
-; fbbfc
-
-CalcMagikarpLength: ; fbbfc
-; Return Magikarp's length (in mm) at wMagikarpLength (big endian).
-;
-; input:
-; de: EnemyMonDVs
-; bc: PlayerID
-
-; This function is poorly commented.
-
-; In short, it generates a value between 190 and 1786 using
-; a Magikarp's DVs and its trainer ID. This value is further
-; filtered in LoadEnemyMon to make longer Magikarp even rarer.
-
-; The value is generated from a lookup table.
-; The index is determined by the dv xored with the player's trainer id.
-
-; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-
-; if bc < 10: [wMagikarpLength] = c + 190
-; if bc ≥ $ff00: [wMagikarpLength] = c + 1370
-; else: [wMagikarpLength] = z * 100 + (bc - x) / y
-
-; X, Y, and Z depend on the value of b as follows:
-
-; if b = 0: x = 310, y = 2, z = 3
-; if b = 1: x = 710, y = 4, z = 4
-; if b = 2-9: x = 2710, y = 20, z = 5
-; if b = 10-29: x = 7710, y = 50, z = 6
-; if b = 30-68: x = 17710, y = 100, z = 7
-; if b = 69-126: x = 32710, y = 150, z = 8
-; if b = 127-185: x = 47710, y = 150, z = 9
-; if b = 186-224: x = 57710, y = 100, z = 10
-; if b = 225-243: x = 62710, y = 50, z = 11
-; if b = 244-251: x = 64710, y = 20, z = 12
-; if b = 252-253: x = 65210, y = 5, z = 13
-; if b = 254: x = 65410, y = 2, z = 14
-
-
- ; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-
- ; id
- ld h, b
- ld l, c
- ld a, [hli]
- ld b, a
- ld c, [hl]
- rrc b
- rrc c
-
- ; dv
- ld a, [de]
- inc de
- rrca
- rrca
- xor b
- ld b, a
-
- ld a, [de]
- rrca
- rrca
- xor c
- ld c, a
-
- ; if bc < 10:
- ; de = bc + 190
- ; break
-
- ld a, b
- and a
- jr nz, .no
- ld a, c
- cp 10
- jr nc, .no
-
- ld hl, 190
- add hl, bc
- ld d, h
- ld e, l
- jr .done
-
-.no
-
- ld hl, .Lengths
- ld a, 2
- ld [wd265], a
-
-.read
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call .BCLessThanDE
- jr nc, .next
-
- ; c = (bc - de) / [hl]
- call .BCMinusDE
- ld a, b
- ld [hDividend + 0], a
- ld a, c
- ld [hDividend + 1], a
- ld a, [hl]
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 2]
- ld c, a
-
- ; de = c + 100 × (2 + i)
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, 100
- ld [hMultiplicand + 2], a
- ld a, [wd265]
- ld [hMultiplier], a
- call Multiply
- ld b, 0
- ld a, [hProduct + 3]
- add c
- ld e, a
- ld a, [hProduct + 2]
- adc b
- ld d, a
- jr .done
-
-.next
- inc hl ; align to next triplet
- ld a, [wd265]
- inc a
- ld [wd265], a
- cp 16
- jr c, .read
-
- call .BCMinusDE
- ld hl, 1600
- add hl, bc
- ld d, h
- ld e, l
-
-.done
- ; hl = de × 10
- ld h, d
- ld l, e
- add hl, hl
- add hl, hl
- add hl, de
- add hl, hl
-
- ; hl = hl / 254
- ld de, -254
- ld a, -1
-.div_254
- inc a
- add hl, de
- jr c, .div_254
-
- ; d, e = hl / 12, hl % 12
- ld d, 0
-.mod_12
- cp 12
- jr c, .ok
- sub 12
- inc d
- jr .mod_12
-.ok
- ld e, a
-
- ld hl, wMagikarpLength
- ld [hl], d
- inc hl
- ld [hl], e
- ret
-; fbc9a
-
-.BCLessThanDE: ; fbc9a
-; Intention: Return bc < de.
-; Reality: Return b < d.
- ld a, b
- cp d
- ret c
- ret nc ; whoops
- ld a, c
- cp e
- ret
-; fbca1
-
-.BCMinusDE: ; fbca1
-; bc -= de
- ld a, c
- sub e
- ld c, a
- ld a, b
- sbc d
- ld b, a
- ret
-; fbca8
-
-.Lengths: ; fbca8
-; ????, divisor
- dwb 110, 1
- dwb 310, 2
- dwb 710, 4
- dwb 2710, 20
- dwb 7710, 50
- dwb 17710, 100
- dwb 32710, 150
- dwb 47710, 150
- dwb 57710, 100
- dwb 62710, 50
- dwb 64710, 20
- dwb 65210, 5
- dwb 65410, 2
- dwb 65510, 1 ; not used
-; fbcd2
-
-
-
-Special_MagikarpHouseSign: ; fbcd2
- ld a, [wBestMagikarpLengthFeet]
- ld [wMagikarpLength], a
- ld a, [wBestMagikarpLengthInches]
- ld [wMagikarpLength + 1], a
- call PrintMagikarpLength
- ld hl, .CurrentRecordtext
- call PrintText
- ret
-; fbce8
-
-.CurrentRecordtext: ; 0xfbce8
- ; "CURRENT RECORD"
- text_jump UnknownText_0x1c123a
- db "@"
-; 0xfbced
diff --git a/event/magnet_train.asm b/event/magnet_train.asm
deleted file mode 100755
index 3a2f902c2..000000000
--- a/event/magnet_train.asm
+++ /dev/null
@@ -1,482 +0,0 @@
-Special_MagnetTrain: ; 8cc04
- ld a, [ScriptVar]
- and a
- jr nz, .ToGoldenrod
- ld a, 1 ; forwards
- lb bc, $40, $60
- lb de, (11 * 8) - (11 * 8 + 4), -$60
- jr .continue
-
-.ToGoldenrod:
- ld a, -1 ; backwards
- lb bc, -$40, -$60
- lb de, (11 * 8) + (11 * 8 + 4), $60
-
-.continue
- ld h, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld a, h
- ld [wMagnetTrainDirection], a
- ld a, c
- ld [wMagnetTrainInitPosition], a
- ld a, b
- ld [wMagnetTrainHoldPosition], a
- ld a, e
- ld [wMagnetTrainFinalPosition], a
- ld a, d
- ld [wMagnetTrainPlayerSpriteInitX], a
-
- ld a, [hSCX]
- push af
- ld a, [hSCY]
- push af
- call MagntTrain_LoadGFX_PlayMusic
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $1
-.loop
- ld a, [wJumptableIndex]
- and a
- jr z, .initialize
- bit 7, a
- jr nz, .done
- callfar PlaySpriteAnimations
- call MagnetTrain_Jumptable
- call MagnetTrain_UpdateLYOverrides
- call PushLYOverrides
- call DelayFrame
- jr .loop
-
-.initialize
- call MagnetTrain_Jumptable_FirstRunThrough
- jr .loop
-
-.done
- pop af
- ld [hVBlank], a
- call ClearBGPalettes
- xor a
- ld [hLCDCPointer], a
- ld [hLYOverrideStart], a
- ld [hLYOverrideEnd], a
- ld [hSCX], a
- ld [Requested2bppSource], a
- ld [Requested2bppSource + 1], a
- ld [Requested2bppDest], a
- ld [Requested2bppDest + 1], a
- ld [Requested2bpp], a
- call ClearTileMap
-
- pop af
- ld [hSCY], a
- pop af
- ld [hSCX], a
- xor a
- ld [hBGMapMode], a
- pop af
- ld [rSVBK], a
- ret
-; 8cc99
-
-MagnetTrain_UpdateLYOverrides: ; 8cc99
- ld hl, LYOverridesBackup
- ld c, $2f
- ld a, [wcf64]
- add a
- ld [hSCX], a
- call .loadloop
- ld c, $30
- ld a, [wcf65]
- call .loadloop
- ld c, $31
- ld a, [wcf64]
- add a
- call .loadloop
- ld a, [wMagnetTrainDirection]
- ld d, a
- ld hl, wcf64
- ld a, [hl]
- add d
- add d
- ld [hl], a
- ret
-
-.loadloop
- ld [hli], a
- dec c
- jr nz, .loadloop
- ret
-; 8ccc9
-
-MagntTrain_LoadGFX_PlayMusic: ; 8ccc9
- call ClearBGPalettes
- call ClearSprites
- call DisableLCD
- callfar ClearSpriteAnims
- call SetMagnetTrainPals
- call DrawMagnetTrain
- ld a, $90
- ld [hWY], a
- call EnableLCD
- xor a
- ld [hBGMapMode], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- farcall GetPlayerIcon
- pop af
- ld [rSVBK], a
- ld hl, VTiles0
- ld c, 4
- call Request2bpp
- ld hl, 12 tiles
- add hl, de
- ld d, h
- ld e, l
- ld hl, VTiles0 tile $04
- ld c, 4
- call Request2bpp
- call MagnetTrain_InitLYOverrides
- ld hl, wJumptableIndex
- xor a
- ld [hli], a
- ld a, [wMagnetTrainInitPosition]
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld de, MUSIC_MAGNET_TRAIN
- call PlayMusic2
- ret
-; 8cd27
-
-DrawMagnetTrain: ; 8cd27
- hlbgcoord 0, 0
- xor a
-.loop
- call GetMagnetTrainBGTiles
- ld b, 32 / 2
- call .FillAlt
- inc a
- cp $12
- jr c, .loop
- hlbgcoord 0, 6
- ld de, MagnetTrainTilemap1
- ld c, 20
- call .FillLine
- hlbgcoord 0, 7
- ld de, MagnetTrainTilemap2
- ld c, 20
- call .FillLine
- hlbgcoord 0, 8
- ld de, MagnetTrainTilemap3
- ld c, 20
- call .FillLine
- hlbgcoord 0, 9
- ld de, MagnetTrainTilemap4
- ld c, 20
- call .FillLine
- ret
-; 8cd65
-
-.FillLine: ; 8cd65
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .FillLine
- ret
-; 8cd6c
-
-.FillAlt: ; 8cd6c
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- dec b
- jr nz, .FillAlt
- ret
-; 8cd74
-
-GetMagnetTrainBGTiles: ; 8cd74
- push hl
- ld e, a
- ld d, 0
- ld hl, MagnetTrainBGTiles
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- ret
-; 8cd82
-
-MagnetTrainBGTiles: ; 8cd82
-; Alternating tiles for each line
-; of the Magnet Train tilemap.
- db $4c, $4d ; bush
- db $5c, $5d ; bush
- db $4c, $4d ; bush
- db $5c, $5d ; bush
- db $08, $08 ; fence
- db $18, $18 ; fence
- db $1f, $1f ; track
- db $31, $31 ; track
- db $11, $11 ; track
- db $11, $11 ; track
- db $0d, $0d ; track
- db $31, $31 ; track
- db $04, $04 ; fence
- db $18, $18 ; fence
- db $4c, $4d ; bush
- db $5c, $5d ; bush
- db $4c, $4d ; bush
- db $5c, $5d ; bush
-; 8cda6
-
-MagnetTrain_InitLYOverrides: ; 8cda6
- ld hl, LYOverrides
- ld bc, LYOverridesEnd - LYOverrides
- ld a, [wMagnetTrainInitPosition]
- call ByteFill
- ld hl, LYOverridesBackup
- ld bc, LYOverridesBackupEnd - LYOverridesBackup
- ld a, [wMagnetTrainInitPosition]
- call ByteFill
- ld a, rSCX - $ff00
- ld [hLCDCPointer], a
- ret
-; 8cdc3
-
-SetMagnetTrainPals: ; 8cdc3
- ld a, $1
- ld [rVBK], a
-
- ; bushes
- hlbgcoord 0, 0
- ld bc, 4 bgrows
- ld a, $2
- call ByteFill
-
- ; train
- hlbgcoord 0, 4
- ld bc, 10 bgrows
- xor a
- call ByteFill
-
- ; more bushes
- hlbgcoord 0, 14
- ld bc, 4 bgrows
- ld a, $2
- call ByteFill
-
- ; train window
- hlbgcoord 7, 8
- ld bc, 6
- ld a, $4
- call ByteFill
-
- ld a, $0
- ld [rVBK], a
- ret
-; 8cdf7
-
-MagnetTrain_Jumptable: ; 8cdf7
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 8ce06
-
-.Jumptable: ; 8ce06
-
- dw .InitPlayerSpriteAnim
- dw .WaitScene
- dw .MoveTrain1
- dw .WaitScene
- dw .MoveTrain2
- dw .WaitScene
- dw .TrainArrived
-; 8ce14
-
-.Next: ; 8ce14
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 8ce19
-
-.InitPlayerSpriteAnim: ; 8ce19
- ld d, 10 * 8 + 5
- ld a, [wMagnetTrainPlayerSpriteInitX]
- ld e, a
- ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [PlayerGender]
- bit 0, a
- jr z, .got_gender
- ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
-
-.got_gender
- pop af
- ld [rSVBK], a
- ld a, b
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_TILE_ID
- add hl, bc
- ld [hl], $0
- call .Next
- ld a, $80
- ld [wcf66], a
- ret
-; 8ce47
-
-.MoveTrain1: ; 8ce47
- ld hl, wMagnetTrainHoldPosition
- ld a, [wcf65]
- cp [hl]
- jr z, .PrepareToHoldTrain
- ld e, a
- ld a, [wMagnetTrainDirection]
- xor $ff
- inc a
- add e
- ld [wcf65], a
- ld hl, wGlobalAnimXOffset
- ld a, [wMagnetTrainDirection]
- add [hl]
- ld [hl], a
- ret
-
-.PrepareToHoldTrain:
- call .Next
- ld a, $80
- ld [wcf66], a
- ret
-; 8ce6d
-
-.WaitScene: ; 8ce6d
- ld hl, wcf66
- ld a, [hl]
- and a
- jr z, .DoneWaiting
- dec [hl]
- ret
-
-.DoneWaiting:
- call .Next
- ret
-; 8ce7a
-
-.MoveTrain2: ; 8ce7a
- ld hl, wMagnetTrainFinalPosition
- ld a, [wcf65]
- cp [hl]
- jr z, .PrepareToFinishAnim
- ld e, a
- ld a, [wMagnetTrainDirection]
- xor $ff
- inc a
- ld d, a
- ld a, e
- add d
- add d
- ld [wcf65], a
- ld hl, wGlobalAnimXOffset
- ld a, [wMagnetTrainDirection]
- ld d, a
- ld a, [hl]
- add d
- add d
- ld [hl], a
- ret
-
- ret
-
-.PrepareToFinishAnim:
- call .Next
- ret
-; 8cea2
-
-.TrainArrived: ; 8cea2
- ld a, $80
- ld [wJumptableIndex], a
- ld de, SFX_TRAIN_ARRIVED
- call PlaySFX
- ret
-; 8ceae
-
-MagnetTrain_Jumptable_FirstRunThrough: ; 8ceae
- farcall PlaySpriteAnimations
- call MagnetTrain_Jumptable
- call MagnetTrain_UpdateLYOverrides
- call PushLYOverrides
- call DelayFrame
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [TimeOfDayPal]
- push af
- ld a, [wEnvironment]
- push af
- ld a, [TimeOfDay]
- and $3
- ld [TimeOfDayPal], a
- ld a, $1
- ld [wEnvironment], a
- ld b, SCGB_MAPPALS
- call GetSGBLayout
- call UpdateTimePals
- ld a, [rBGP]
- ld [wBGP], a
- ld a, [rOBP0]
- ld [wOBP0], a
- ld a, [rOBP1]
- ld [wOBP1], a
- pop af
- ld [wEnvironment], a
- pop af
- ld [TimeOfDayPal], a
- pop af
- ld [rSVBK], a
- ret
-; 8ceff
-
-MagnetTrainTilemap1:
- db $1f, $05, $06, $0a, $0a
- db $0a, $09, $0a, $0a, $0a
- db $0a, $0a, $0a, $09, $0a
- db $0a, $0a, $0b, $0c, $1f
-MagnetTrainTilemap2:
- db $14, $15, $16, $1a, $1a
- db $1a, $19, $1a, $1a, $1a
- db $1a, $1a, $1a, $19, $1a
- db $1a, $1a, $1b, $1c, $1d
-MagnetTrainTilemap3:
- db $24, $25, $26, $27, $07
- db $2f, $29, $28, $28, $28
- db $28, $28, $28, $29, $07
- db $2f, $2a, $2b, $2c, $2d
-MagnetTrainTilemap4:
- db $20, $1f, $2e, $1f, $17
- db $00, $2e, $1f, $1f, $1f
- db $1f, $1f, $1f, $2e, $17
- db $00, $1f, $2e, $1f, $0f
-; 8cf4f
diff --git a/event/misc_scripts.asm b/event/misc_scripts.asm
deleted file mode 100755
index 97372a57a..000000000
--- a/event/misc_scripts.asm
+++ /dev/null
@@ -1,62 +0,0 @@
-Script_AbortBugContest: ; 0x122c1
- checkflag ENGINE_BUG_CONTEST_TIMER
- iffalse .finish
- setflag ENGINE_DAILY_BUG_CONTEST
- special ContestReturnMons
-.finish
- end
-
-FindItemInBallScript:: ; 0x122ce
- callasm .TryReceiveItem
- iffalse .no_room
- disappear LAST_TALKED
- opentext
- writetext .text_found
- playsound SFX_ITEM
- pause 60
- itemnotify
- closetext
- end
-; 0x122e3
-
-.no_room ; 0x122e3
- opentext
- writetext .text_found
- waitbutton
- writetext .text_bag_full
- waitbutton
- closetext
- end
-; 0x122ee
-
-.text_found ; 0x122ee
- ; found @ !
- text_jump UnknownText_0x1c0a1c
- db "@"
-; 0x122f3
-
-.text_bag_full ; 0x122f3
- ; But can't carry any more items.
- text_jump UnknownText_0x1c0a2c
- db "@"
-; 0x122f8
-
-.TryReceiveItem: ; 122f8
- xor a
- ld [ScriptVar], a
- ld a, [EngineBuffer1]
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- ld hl, StringBuffer3
- call CopyName2
- ld a, [EngineBuffer1]
- ld [CurItem], a
- ld a, [CurFruit]
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- call ReceiveItem
- ret nc
- ld a, $1
- ld [ScriptVar], a
- ret
-; 12324
diff --git a/event/misc_scripts_2.asm b/event/misc_scripts_2.asm
deleted file mode 100644
index c4c51d5e6..000000000
--- a/event/misc_scripts_2.asm
+++ /dev/null
@@ -1,51 +0,0 @@
-RepelWoreOffScript:: ; 0x13619
- opentext
- writetext .text
- waitbutton
- closetext
- end
-
-.text ; 0x13620
- ; REPEL's effect wore off.
- text_jump UnknownText_0x1bd308
- db "@"
-
-HiddenItemScript:: ; 0x13625
- opentext
- copybytetovar EngineBuffer3
- itemtotext 0, 0
- writetext .found_text
- giveitem ITEM_FROM_MEM
- iffalse .bag_full
- callasm SetMemEvent
- specialsound
- itemnotify
- jump .finish
-
-.bag_full ; 0x1363e
- buttonsound
- writetext .no_room_text
- waitbutton
-
-.finish ; 13643
- closetext
- end
-
-.found_text ; 0x13645
- ; found @ !
- text_jump UnknownText_0x1bd321
- db "@"
-
-.no_room_text ; 0x1364a
- ; But has no space left…
- text_jump UnknownText_0x1bd331
- db "@"
-
-SetMemEvent: ; 1364f
- ld hl, EngineBuffer1
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ld b, SET_FLAG
- call EventFlagAction
- ret
diff --git a/event/mom.asm b/event/mom.asm
deleted file mode 100644
index 6e3c7b320..000000000
--- a/event/mom.asm
+++ /dev/null
@@ -1,745 +0,0 @@
-Special_BankOfMom: ; 16218
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [wJumptableIndex], a
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call .RunJumptable
- jr .loop
-
-.done
- pop af
- ld [hInMenu], a
- ret
-; 16233
-
-.RunJumptable: ; 16233
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 16242
-
-.dw ; 16242
-
- dw .CheckIfBankInitialized
- dw .InitializeBank
- dw .IsThisAboutYourMoney
- dw .AccessBankOfMom
- dw .StoreMoney
- dw .TakeMoney
- dw .StopOrStartSavingMoney
- dw .AskDST
- dw .JustDoWhatYouCan
-; 16254
-
-.CheckIfBankInitialized: ; 16254
- ld a, [wMomSavingMoney]
- bit 7, a
- jr nz, .savingmoneyalready
- set 7, a
- ld [wMomSavingMoney], a
- ld a, $1
- jr .done_0
-
-.savingmoneyalready
- ld a, $2
-
-.done_0
- ld [wJumptableIndex], a
- ret
-; 1626a
-
-.InitializeBank: ; 1626a
- ld hl, UnknownText_0x16649
- call PrintText
- call YesNoBox
- jr c, .DontSaveMoney
- ld hl, UnknownText_0x1664e
- call PrintText
- ld a, %10000001
- jr .done_1
-
-.DontSaveMoney:
- ld a, %10000000
-
-.done_1
- ld [wMomSavingMoney], a
- ld hl, UnknownText_0x16653
- call PrintText
- ld a, $8
- ld [wJumptableIndex], a
- ret
-; 16290
-
-.IsThisAboutYourMoney: ; 16290
- ld hl, UnknownText_0x16658
- call PrintText
- call YesNoBox
- jr c, .nope
- ld a, $3
- jr .done_2
-
-.nope
- call DSTChecks
- ld a, $7
-
-.done_2
- ld [wJumptableIndex], a
- ret
-; 162a8
-
-.AccessBankOfMom: ; 162a8
- ld hl, UnknownText_0x1665d
- call PrintText
- call LoadStandardMenuDataHeader
- ld hl, MenuDataHeader_0x166b5
- call CopyMenuDataHeader
- call VerticalMenu
- call CloseWindow
- jr c, .cancel
- ld a, [wMenuCursorY]
- cp $1
- jr z, .withdraw
- cp $2
- jr z, .deposit
- cp $3
- jr z, .stopsaving
-
-.cancel
- ld a, $7
- jr .done_3
-
-.withdraw
- ld a, $5
- jr .done_3
-
-.deposit
- ld a, $4
- jr .done_3
-
-.stopsaving
- ld a, $6
-
-.done_3
- ld [wJumptableIndex], a
- ret
-; 162e0
-
-.StoreMoney: ; 162e0
- ld hl, UnknownText_0x16662
- call PrintText
- xor a
- ld hl, StringBuffer2
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld a, $5
- ld [wcf64], a
- call LoadStandardMenuDataHeader
- call Mom_SetUpDepositMenu
- call Mom_Wait10Frames
- call Mom_WithdrawDepositMenuJoypad
- call CloseWindow
- jr c, .CancelDeposit
- ld hl, StringBuffer2
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- jr z, .CancelDeposit
- ld de, Money
- ld bc, StringBuffer2
- farcall CompareMoney
- jr c, .DontHaveThatMuchToDeposit
- ld hl, StringBuffer2
- ld de, StringBuffer2 + 3
- ld bc, 3
- call CopyBytes
- ld bc, wMomsMoney
- ld de, StringBuffer2
- farcall GiveMoney
- jr c, .CantDepositThatMuch
- ld bc, StringBuffer2 + 3
- ld de, Money
- farcall TakeMoney
- ld hl, StringBuffer2
- ld de, wMomsMoney
- ld bc, 3
- call CopyBytes
- ld de, SFX_TRANSACTION
- call PlaySFX
- call WaitSFX
- ld hl, UnknownText_0x1668a
- call PrintText
- ld a, $8
- jr .done_4
-
-.DontHaveThatMuchToDeposit:
- ld hl, UnknownText_0x1667b
- call PrintText
- ret
-
-.CantDepositThatMuch:
- ld hl, UnknownText_0x16680
- call PrintText
- ret
-
-.CancelDeposit:
- ld a, $7
-
-.done_4
- ld [wJumptableIndex], a
- ret
-; 16373
-
-.TakeMoney: ; 16373
- ld hl, UnknownText_0x16667
- call PrintText
- xor a
- ld hl, StringBuffer2
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld a, $5
- ld [wcf64], a
- call LoadStandardMenuDataHeader
- call Mom_SetUpWithdrawMenu
- call Mom_Wait10Frames
- call Mom_WithdrawDepositMenuJoypad
- call CloseWindow
- jr c, .CancelWithdraw
- ld hl, StringBuffer2
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- jr z, .CancelWithdraw
- ld hl, StringBuffer2
- ld de, StringBuffer2 + 3
- ld bc, 3
- call CopyBytes
- ld de, wMomsMoney
- ld bc, StringBuffer2
- farcall CompareMoney
- jr c, .InsufficientFundsInBank
- ld bc, Money
- ld de, StringBuffer2
- farcall GiveMoney
- jr c, .NotEnoughRoomInWallet
- ld bc, StringBuffer2 + 3
- ld de, wMomsMoney
- farcall TakeMoney
- ld hl, StringBuffer2
- ld de, Money
- ld bc, 3
- call CopyBytes
- ld de, SFX_TRANSACTION
- call PlaySFX
- call WaitSFX
- ld hl, UnknownText_0x1668f
- call PrintText
- ld a, $8
- jr .done_5
-
-.InsufficientFundsInBank:
- ld hl, UnknownText_0x16671
- call PrintText
- ret
-
-.NotEnoughRoomInWallet:
- ld hl, UnknownText_0x16676
- call PrintText
- ret
-
-.CancelWithdraw:
- ld a, $7
-
-.done_5
- ld [wJumptableIndex], a
- ret
-; 16406
-
-.StopOrStartSavingMoney: ; 16406
- ld hl, UnknownText_0x1666c
- call PrintText
- call YesNoBox
- jr c, .StopSavingMoney
- ld a, $81
- ld [wMomSavingMoney], a
- ld hl, UnknownText_0x16685
- call PrintText
- ld a, $8
- ld [wJumptableIndex], a
- ret
-
-.StopSavingMoney:
- ld a, $80
- ld [wMomSavingMoney], a
- ld a, $7
- ld [wJumptableIndex], a
- ret
-; 1642d
-
-.AskDST: ; 1642d
- ld hl, UnknownText_0x16694
- call PrintText
-
-.JustDoWhatYouCan: ; 16433
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 16439
-
-DSTChecks: ; 16439
-; check the time; avoid changing DST if doing so would change the current day
- ld a, [wDST]
- bit 7, a
- ld a, [hHours]
- jr z, .NotDST
- and a ; within one hour of 00:00?
- jr z, .LostBooklet
- jr .loop
-
-.NotDST:
- cp 23 ; within one hour of 23:00?
- jr nz, .loop
- ; fallthrough
-
-.LostBooklet:
- call .ClearBox
- bccoord 1, 14
- ld hl, .Text_AdjustClock
- call PlaceHLTextAtBC
- call YesNoBox
- ret c
- call .ClearBox
- bccoord 1, 14
- ld hl, .Text_LostInstructionBooklet
- call PlaceHLTextAtBC
- ret
-
-.loop
- call .ClearBox
- bccoord 1, 14
- ld a, [wDST]
- bit 7, a
- jr z, .SetDST
- ld hl, .Text_IsDSTOver
- call PlaceHLTextAtBC
- call YesNoBox
- ret c
- ld a, [wDST]
- res 7, a
- ld [wDST], a
- call .SetClockBack
- call .ClearBox
- bccoord 1, 14
- ld hl, .Text_SetClockBack
- call PlaceHLTextAtBC
- ret
-
-.SetDST:
- ld hl, .Text_SwitchToDST
- call PlaceHLTextAtBC
- call YesNoBox
- ret c
- ld a, [wDST]
- set 7, a
- ld [wDST], a
- call .SetClockForward
- call .ClearBox
- bccoord 1, 14
- ld hl, .Text_SetClockForward
- call PlaceHLTextAtBC
- ret
-; 164b9
-
-.SetClockForward: ; 164b9
- ld a, [StartHour]
- add 1
- sub 24
- jr nc, .DontLoopHourForward
- add 24
-.DontLoopHourForward:
- ld [StartHour], a
- ccf
- ld a, [StartDay]
- adc 0
- ld [StartDay], a
- ret
-; 164d1
-
-.SetClockBack: ; 164d1
- ld a, [StartHour]
- sub 1
- jr nc, .DontLoopHourBack
- add 24
-.DontLoopHourBack:
- ld [StartHour], a
- ld a, [StartDay]
- sbc 0
- jr nc, .DontLoopDayBack
- add 7
-.DontLoopDayBack:
- ld [StartDay], a
- ret
-; 164ea
-
-.ClearBox: ; 164ea
- hlcoord 1, 14
- lb bc, 3, 18
- call ClearBox
- ret
-; 164f4
-
-.Text_AdjustClock: ; 0x164f4
- ; Do you want to adjust your clock for Daylight Saving Time?
- text_jump UnknownText_0x1c6095
- db "@"
-; 0x164f9
-
-.Text_LostInstructionBooklet: ; 0x164f9
- ; I lost the instruction booklet for the POKéGEAR.
- ; Come back again in a while.
- text_jump UnknownText_0x1c60d1
- db "@"
-; 0x164fe
-
-.Text_SwitchToDST: ; 0x164fe
- ; Do you want to switch to Daylight Saving Time?
- text_jump UnknownText_0x1c6000
- db "@"
-; 0x16503
-
-.Text_SetClockForward: ; 0x16503
- ; I set the clock forward by one hour.
- text_jump UnknownText_0x1c6030
- db "@"
-; 0x16508
-
-.Text_IsDSTOver: ; 0x16508
- ; Is Daylight Saving Time over?
- text_jump UnknownText_0x1c6056
- db "@"
-; 0x1650d
-
-.Text_SetClockBack: ; 0x1650d
- ; I put the clock back one hour.
- text_jump UnknownText_0x1c6075
- db "@"
-; 0x16512
-
-Mom_SetUpWithdrawMenu: ; 16512
- ld de, Mon_WithdrawString
- jr Mom_ContinueMenuSetup
-
-Mom_SetUpDepositMenu: ; 16517
- ld de, Mom_DepositString
-Mom_ContinueMenuSetup: ; 1651a
- push de
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- lb bc, 6, 18
- call TextBox
- hlcoord 1, 2
- ld de, Mom_SavedString
- call PlaceString
- hlcoord 12, 2
- ld de, wMomsMoney
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- hlcoord 1, 4
- ld de, Mom_HeldString
- call PlaceString
- hlcoord 12, 4
- ld de, Money
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- hlcoord 1, 6
- pop de
- call PlaceString
- hlcoord 12, 6
- ld de, StringBuffer2
- lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
- call PrintNum
- call UpdateSprites
- call CGBOnly_CopyTilemapAtOnce
- ret
-; 1656b
-
-Mom_Wait10Frames: ; 1656b
- ld c, 10
- call DelayFrames
- ret
-; 16571
-
-Mom_WithdrawDepositMenuJoypad: ; 16571
-.loop
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressedB
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressedA
- call .dpadaction
- xor a
- ld [hBGMapMode], a
- hlcoord 12, 6
- ld bc, 7
- ld a, " "
- call ByteFill
- hlcoord 12, 6
- ld de, StringBuffer2
- lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
- call PrintNum
- ld a, [hVBlankCounter]
- and $10
- jr nz, .skip
- hlcoord 13, 6
- ld a, [wMomBankDigitCursorPosition]
- ld c, a
- ld b, 0
- add hl, bc
- ld [hl], " "
-
-.skip
- call WaitBGMap
- jr .loop
-
-.pressedB
- scf
- ret
-
-.pressedA
- and a
- ret
-
-.dpadaction
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .incrementdigit
- ld a, [hl]
- and D_DOWN
- jr nz, .decrementdigit
- ld a, [hl]
- and D_LEFT
- jr nz, .movecursorleft
- ld a, [hl]
- and D_RIGHT
- jr nz, .movecursorright
- and a
- ret
-
-.movecursorleft
- ld hl, wMomBankDigitCursorPosition
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.movecursorright
- ld hl, wMomBankDigitCursorPosition
- ld a, [hl]
- cp 5
- ret nc
- inc [hl]
- ret
-
-.incrementdigit
- ld hl, .DigitQuantities
- call .getdigitquantity
- ld c, l
- ld b, h
- ld de, StringBuffer2
- farcall GiveMoney
- ret
-
-.decrementdigit
- ld hl, .DigitQuantities
- call .getdigitquantity
- ld c, l
- ld b, h
- ld de, StringBuffer2
- farcall TakeMoney
- ret
-
-.getdigitquantity
- ld a, [wMomBankDigitCursorPosition]
- push de
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- add hl, de
- pop de
- ret
-; 16613
-
-.DigitQuantities: ; 16613
- dt 100000
- dt 10000
- dt 1000
- dt 100
- dt 10
- dt 1
-
- dt 100000
- dt 10000
- dt 1000
- dt 100
- dt 10
- dt 1
-
- dt 900000
- dt 90000
- dt 9000
- dt 900
- dt 90
- dt 9
-; 16649
-
-UnknownText_0x16649: ; 0x16649
- ; Wow, that's a cute #MON. Where did you get it? … So, you're leaving on an adventure… OK! I'll help too. But what can I do for you? I know! I'll save money for you. On a long journey, money's important. Do you want me to save your money?
- text_jump UnknownText_0x1bd77f
- db "@"
-; 0x1664e
-
-UnknownText_0x1664e: ; 0x1664e
- ; OK, I'll take care of your money.
- text_jump UnknownText_0x1bd868
- db "@"
-; 0x16653
-
-UnknownText_0x16653: ; 0x16653
- ; Be careful. #MON are your friends. You need to work as a team. Now, go on!
- text_jump UnknownText_0x1bd88e
- db "@"
-; 0x16658
-
-UnknownText_0x16658: ; 0x16658
- ; Hi! Welcome home! You're trying very hard, I see. I've kept your room tidy. Or is this about your money?
- text_jump UnknownText_0x1bd8da
- db "@"
-; 0x1665d
-
-UnknownText_0x1665d: ; 0x1665d
- ; What do you want to do?
- text_jump UnknownText_0x1bd942
- db "@"
-; 0x16662
-
-UnknownText_0x16662: ; 0x16662
- ; How much do you want to save?
- text_jump UnknownText_0x1bd95b
- db "@"
-; 0x16667
-
-UnknownText_0x16667: ; 0x16667
- ; How much do you want to take?
- text_jump UnknownText_0x1bd97a
- db "@"
-; 0x1666c
-
-UnknownText_0x1666c: ; 0x1666c
- ; Do you want to save some money?
- text_jump UnknownText_0x1bd999
- db "@"
-; 0x16671
-
-UnknownText_0x16671: ; 0x16671
- ; You haven't saved that much.
- text_jump UnknownText_0x1bd9ba
- db "@"
-; 0x16676
-
-UnknownText_0x16676: ; 0x16676
- ; You can't take that much.
- text_jump UnknownText_0x1bd9d7
- db "@"
-; 0x1667b
-
-UnknownText_0x1667b: ; 0x1667b
- ; You don't have that much.
- text_jump UnknownText_0x1bd9f1
- db "@"
-; 0x16680
-
-UnknownText_0x16680: ; 0x16680
- ; You can't save that much.
- text_jump UnknownText_0x1bda0b
- db "@"
-; 0x16685
-
-UnknownText_0x16685: ; 0x16685
- ; OK, I'll save your money. Trust me! , stick with it!
- text_jump UnknownText_0x1bda25
- db "@"
-; 0x1668a
-
-UnknownText_0x1668a: ; 0x1668a
- ; Your money's safe here! Get going!
- text_jump UnknownText_0x1bda5b
- db "@"
-; 0x1668f
-
-UnknownText_0x1668f: ; 0x1668f
- ; , don't give up!
- text_jump UnknownText_0x1bda7e
- db "@"
-; 0x16694
-
-UnknownText_0x16694: ; 0x16694
- ; Just do what you can.
- text_jump UnknownText_0x1bda90
- db "@"
-; 0x16699
-
-Mom_SavedString: ; 16699
- db "SAVED@"
-; 1669f
-
-Mon_WithdrawString: ; 1669f
- db "WITHDRAW@"
-; 166a8
-
-Mom_DepositString: ; 166a8
- db "DEPOSIT@"
-; 166b0
-
-Mom_HeldString: ; 166b0
- db "HELD@"
-; 166b5
-
-MenuDataHeader_0x166b5: ; 0x166b5
- db $40 ; flags
- db 00, 00 ; start coords
- db 10, 10 ; end coords
- dw MenuData2_0x166bd
- db 1 ; default option
-; 0x166bd
-
-MenuData2_0x166bd: ; 0x166bd
- db $80 ; flags
- db 4 ; items
- db "GET@"
- db "SAVE@"
- db "CHANGE@"
- db "CANCEL@"
-; 0x166d6
diff --git a/event/mom_phone.asm b/event/mom_phone.asm
deleted file mode 100755
index bef7d5688..000000000
--- a/event/mom_phone.asm
+++ /dev/null
@@ -1,264 +0,0 @@
-NUM_MOM_ITEMS_1 EQUS "((MomItems_1End - MomItems_1) / 8)"
-NUM_MOM_ITEMS_2 EQUS "((MomItems_2End - MomItems_2) / 8)"
-
-const_value = 1
- const MOM_ITEM
- const MOM_DOLL
-
-MomTriesToBuySomething:: ; fcfec
- ld a, [wMapReentryScriptQueueFlag]
- and a
- ret nz
- call GetMapHeaderPhoneServiceNybble
- and a
- ret nz
- xor a
- ld [wWhichMomItemSet], a
- call CheckBalance_MomItem2
- ret nc
- call Mom_GiveItemOrDoll
- ret nc
- ld b, BANK(.Script)
- ld de, .Script
- farcall LoadScriptBDE
- scf
- ret
-; fd00f
-
-.Script: ; 0xfd00f
- callasm .ASMFunction
- farjump Script_ReceivePhoneCall
-; 0xfd017
-
-.ASMFunction: ; fd017
- call MomBuysItem_DeductFunds
- call Mom_GetScriptPointer
- ld a, [wWhichMomItemSet]
- and a
- jr nz, .ok
- ld hl, wWhichMomItem
- inc [hl]
-.ok
- ld a, PHONE_MOM
- ld [wCurrentCaller], a
- ld bc, EngineBuffer2
- ld hl, 0
- add hl, bc
- ld [hl], 0
- inc hl
- ld [hl], 1
- ld hl, wPhoneScriptPointer - EngineBuffer2
- add hl, bc
- ld a, BANK(Mom_GetScriptPointer)
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hl], a
- ret
-; fd044
-
-CheckBalance_MomItem2: ; fd044
- ld a, [wWhichMomItem]
- cp NUM_MOM_ITEMS_2
- jr nc, .nope
- call GetItemFromMom
- ld a, [hli]
- ld [hMoneyTemp], a
- ld a, [hli]
- ld [hMoneyTemp + 1], a
- ld a, [hli]
- ld [hMoneyTemp + 2], a
- ld de, wMomsMoney
- ld bc, hMoneyTemp
- farcall CompareMoney
- jr nc, .have_enough_money
-
-.nope
- jr .check_have_2300
-
-.have_enough_money
- scf
- ret
-
-.check_have_2300
- ld hl, hMoneyTemp
- ld [hl], HIGH(MOM_MONEY >> 8)
- inc hl
- ld [hl], HIGH(MOM_MONEY) ; mid
- inc hl
- ld [hl], LOW(MOM_MONEY)
-.loop
- ld de, MomItemTriggerBalance
- ld bc, wMomsMoney
- farcall CompareMoney
- jr z, .exact
- jr nc, .less_than
- call .AddMoney
- jr .loop
-
-.less_than
- xor a
- ret
-
-.exact
- call .AddMoney
- ld a, NUM_MOM_ITEMS_1
- call RandomRange
- inc a
- ld [wWhichMomItemSet], a
- scf
- ret
-
-.AddMoney:
- ld de, MomItemTriggerBalance
- ld bc, hMoneyTemp
- farcall AddMoney
- ret
-; fd0a6
-
-
-MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
- call GetItemFromMom
- ld de, 3 ; cost
- add hl, de
- ld a, [hli]
- ld [hMoneyTemp], a
- ld a, [hli]
- ld [hMoneyTemp + 1], a
- ld a, [hli]
- ld [hMoneyTemp + 2], a
- ld de, wMomsMoney
- ld bc, hMoneyTemp
- farcall TakeMoney
- ret
-
-
-Mom_GiveItemOrDoll: ; fd0c3
- call GetItemFromMom
- ld de, 6 ; item type
- add hl, de
- ld a, [hli]
- cp MOM_ITEM
- jr z, .not_doll
- ld a, [hl]
- ld c, a
- ld b, 1
- farcall DecorationFlagAction_c
- scf
- ret
-
-.not_doll
- ld a, [hl]
- ld [CurItem], a
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- ld hl, PCItems
- call ReceiveItem
- ret
-; fd0eb
-
-
-Mom_GetScriptPointer: ; fd0eb (3f:50eb)
- call GetItemFromMom
- ld de, 6 ; item type
- add hl, de
- ld a, [hli]
- ld de, .ItemScript
- cp MOM_ITEM
- ret z
- ld de, .DollScript
- ret
-; fd0fd (3f:50fd)
-
-.ItemScript: ; 0xfd0fd
- writetext _MomText_HiHowAreYou
- writetext _MomText_FoundAnItem
- writetext _MomText_BoughtWithYourMoney
- writetext _MomText_ItsInPC
- end
-; 0xfd10a
-
-.DollScript: ; 0xfd10a
- writetext _MomText_HiHowAreYou
- writetext _MomText_FoundADoll
- writetext _MomText_BoughtWithYourMoney
- writetext _MomText_ItsInRoom
- end
-; 0xfd117
-
-
-GetItemFromMom: ; fd117
- ld a, [wWhichMomItemSet]
- and a
- jr z, .zero
- dec a
- ld de, MomItems_1
- jr .GetFromList1
-
-.zero
- ld a, [wWhichMomItem]
- cp NUM_MOM_ITEMS_2
- jr c, .ok
- xor a
-
-.ok
- ld de, MomItems_2
-
-.GetFromList1:
- ld l, a
- ld h, 0
-rept 3 ; multiply hl by 8
- add hl, hl
-endr
- add hl, de
- ret
-; fd136
-
-INCLUDE "data/items/mom_phone.asm"
-
- db 0, 0, 0 ; XXX
-
-_MomText_HiHowAreYou: ; 0xfd1b1
- ; Hi, ! How are you?
- text_jump UnknownText_0x1bc615
- db "@"
-; 0xfd1b6
-
-_MomText_FoundAnItem: ; 0xfd1b6
- ; I found a useful item shopping, so
- text_jump UnknownText_0x1bc62a
- db "@"
-; 0xfd1bb
-
-_MomText_BoughtWithYourMoney: ; 0xfd1bb
- ; I bought it with your money. Sorry!
- text_jump UnknownText_0x1bc64e
- db "@"
-; 0xfd1c0
-
-_MomText_ItsInPC: ; 0xfd1c0
- ; It's in your PC. You'll like it!
- text_jump UnknownText_0x1bc673
- db "@"
-; 0xfd1c5
-
-_MomText_FoundADoll: ; 0xfd1c5
- ; While shopping today, I saw this adorable doll, so
- text_jump UnknownText_0x1bc693
- db "@"
-; 0xfd1ca
-
-_MomText_ItsInRoom: ; 0xfd1ca
- ; It's in your room. You'll love it!
- text_jump UnknownText_0x1bc6c7
- db "@"
-; 0xfd1cf
-
- db 0 ; XXX
-
-Predef3A: ; fd1d0
- ret
-; fd1d1
-
- ret ; XXX
diff --git a/event/move_deleter.asm b/event/move_deleter.asm
deleted file mode 100644
index 95fc0f1d8..000000000
--- a/event/move_deleter.asm
+++ /dev/null
@@ -1,166 +0,0 @@
-MoveDeletion:
- ld hl, .IntroText
- call PrintText
- call YesNoBox
- jr c, .declined
- ld hl, .AskWhichMonText
- call PrintText
- farcall SelectMonFromParty
- jr c, .declined
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
- ld a, [CurPartyMon]
- ld hl, PartyMon1Moves + 1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [hl]
- and a
- jr z, .onlyonemove
- ld hl, .AskWhichMoveText
- call PrintText
- call LoadStandardMenuDataHeader
- farcall ChooseMoveToDelete
- push af
- call ReturnToMapWithSpeechTextbox
- pop af
- jr c, .declined
- ld a, [wMenuCursorY]
- push af
- ld a, [CurSpecies]
- ld [wd265], a
- call GetMoveName
- ld hl, .ConfirmDeleteText
- call PrintText
- call YesNoBox
- pop bc
- jr c, .declined
- call .DeleteMove
- call WaitSFX
- ld de, SFX_MOVE_DELETED
- call PlaySFX
- call WaitSFX
- ld hl, .MoveDeletedText
- call PrintText
- ret
-
-.egg
- ld hl, .EggText
- call PrintText
- ret
-
-.declined
- ld hl, .DeclinedDeletionText
- call PrintText
- ret
-
-.onlyonemove
- ld hl, .OnlyOneMoveText
- call PrintText
- ret
-
-.OnlyOneMoveText: ; 0x2c5d1
- ; That #MON knows only one move.
- text_jump UnknownText_0x1c5eba
- db "@"
-; 0x2c5d6
-
-.ConfirmDeleteText: ; 0x2c5d6
- ; Oh, make it forget @ ?
- text_jump UnknownText_0x1c5eda
- db "@"
-; 0x2c5db
-
-.MoveDeletedText: ; 0x2c5db
- ; Done! Your #MON forgot the move.
- text_jump UnknownText_0x1c5ef5
- db "@"
-; 0x2c5e0
-
-.EggText: ; 0x2c5e0
- ; An EGG doesn't know any moves!
- text_jump UnknownText_0x1c5f17
- db "@"
-; 0x2c5e5
-
-.DeclinedDeletionText: ; 0x2c5e5
- ; No? Come visit me again.
- text_jump UnknownText_0x1c5f36
- db "@"
-; 0x2c5ea
-
-.AskWhichMoveText: ; 0x2c5ea
- ; Which move should it forget, then?
- text_jump UnknownText_0x1c5f50
- db "@"
-; 0x2c5ef
-
-.IntroText: ; 0x2c5ef
- ; Um… Oh, yes, I'm the MOVE DELETER. I can make #MON forget moves. Shall I make a #MON forget?
- text_jump UnknownText_0x1c5f74
- db "@"
-; 0x2c5f4
-
-.AskWhichMonText: ; 0x2c5f4
- ; Which #MON?
- text_jump UnknownText_0x1c5fd1
- db "@"
-; 0x2c5f9
-
-.DeleteMove: ; 2c5f9
- ld a, b
- push bc
- dec a
- ld c, a
- ld b, 0
- ld hl, PartyMon1Moves
- add hl, bc
- ld a, [CurPartyMon]
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop bc
- push bc
- inc b
-.loop
- ld a, b
- cp NUM_MOVES + 1
- jr z, .okay
- inc hl
- ld a, [hld]
- ld [hl], a
- inc hl
- inc b
- jr .loop
-
-.okay
- xor a
- ld [hl], a
- pop bc
-
- ld a, b
- push bc
- dec a
- ld c, a
- ld b, 0
- ld hl, PartyMon1PP
- add hl, bc
- ld a, [CurPartyMon]
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop bc
- inc b
-.loop2
- ld a, b
- cp NUM_MOVES + 1
- jr z, .done
- inc hl
- ld a, [hld]
- ld [hl], a
- inc hl
- inc b
- jr .loop2
-
-.done
- xor a
- ld [hl], a
- ret
diff --git a/event/move_tutor.asm b/event/move_tutor.asm
deleted file mode 100644
index a15ecaf93..000000000
--- a/event/move_tutor.asm
+++ /dev/null
@@ -1,103 +0,0 @@
-Special_MoveTutor: ; 4925b
- call FadeToMenu
- call ClearBGPalettes
- call ClearScreen
- call DelayFrame
- ld b, SCGB_PACKPALS
- call GetSGBLayout
- xor a
- ld [wItemAttributeParamBuffer], a
- call .GetMoveTutorMove
- ld [wd265], a
- ld [wPutativeTMHMMove], a
- call GetMoveName
- call CopyName1
- farcall ChooseMonToLearnTMHM
- jr c, .cancel
- jr .enter_loop
-
-.loop
- farcall ChooseMonToLearnTMHM_NoRefresh
- jr c, .cancel
-.enter_loop
- call CheckCanLearnMoveTutorMove
- jr nc, .loop
- xor a
- ld [ScriptVar], a
- jr .quit
-
-.cancel
- ld a, -1
- ld [ScriptVar], a
-.quit
- call CloseSubmenu
- ret
-
-.GetMoveTutorMove: ; 492a5
- ld a, [ScriptVar]
- cp 1
- jr z, .flamethrower
- cp 2
- jr z, .thunderbolt
- ld a, ICE_BEAM
- ret
-
-.flamethrower
- ld a, FLAMETHROWER
- ret
-
-.thunderbolt
- ld a, THUNDERBOLT
- ret
-
-CheckCanLearnMoveTutorMove: ; 492b9
- ld hl, .MenuDataHeader
- call LoadMenuDataHeader
-
- predef CanLearnTMHMMove
-
- push bc
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- pop bc
-
- ld a, c
- and a
- jr nz, .can_learn
- push de
- ld de, SFX_WRONG
- call PlaySFX
- pop de
- ld a, BANK(Text_TMHMNotCompatible)
- ld hl, Text_TMHMNotCompatible
- call FarPrintText
- jr .didnt_learn
-
-.can_learn
- callfar KnowsMove
- jr c, .didnt_learn
-
- predef LearnMove
- ld a, b
- and a
- jr z, .didnt_learn
-
- ld c, HAPPINESS_LEARNMOVE
- callfar ChangeHappiness
- jr .learned
-
-.didnt_learn
- call ExitMenu
- and a
- ret
-
-.learned
- call ExitMenu
- scf
- ret
-
-.MenuDataHeader: ; 0x4930a
- db $40 ; flags
- db 12, 00 ; start coords
- db 17, 19 ; end coords
diff --git a/event/name_rater.asm b/event/name_rater.asm
deleted file mode 100644
index 771c5090a..000000000
--- a/event/name_rater.asm
+++ /dev/null
@@ -1,250 +0,0 @@
-NameRater: ; fb6ed
-; Introduce himself
- ld hl, NameRaterIntroText
- call PrintText
- call YesNoBox
- jp c, .cancel
-; Select a Pokemon from your party
- ld hl, NameRaterWhichMonText
- call PrintText
- farcall SelectMonFromParty
- jr c, .cancel
-; He can't rename an egg...
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
-; ... or a Pokemon you got from a trade.
- call GetCurNick
- call CheckIfMonIsYourOT
- jr c, .traded
-; This name is good, but we can do better. How about it?
- ld hl, NameRaterIsGoodText
- call PrintText
- call YesNoBox
- jr c, .cancel
-; What name shall I give it then?
- ld hl, NameRaterWhichNameText
- call PrintText
-; Load the new nickname into StringBuffer2
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurPartySpecies]
- ld [wd265], a
- ld [CurSpecies], a
- call GetBaseData
- ld b, 0
- ld de, StringBuffer2
- farcall _NamingScreen
-; If the new name is empty, treat it as unchanged.
- call IsNewNameEmpty
- ld hl, NameRaterSameAsBeforeText
- jr c, .samename
-; If the new name is the same as the old name, treat it as unchanged.
- call CompareNewToOld
- ld hl, NameRaterSameAsBeforeText
- jr c, .samename
-; Copy the new name from StringBuffer2
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld e, l
- ld d, h
- ld hl, StringBuffer2
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ld hl, NameRaterEvenBetterText
-
-.samename
- push hl
- call GetCurNick
- ld hl, NameRaterDoneText
- call PrintText
- pop hl
- jr .done
-
-.traded
- ld hl, NameRaterTradedText
- jr .done
-
-.cancel
- ld hl, NameRaterCancelText
- jr .done
-
-.egg
- ld hl, NameRaterEggText
-
-.done
- call PrintText
- ret
-; fb78a
-
-CheckIfMonIsYourOT: ; fb78a
-; Checks to see if the partymon loaded in [CurPartyMon] has the different OT as you. Returns carry if not.
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, PlayerName
- ld c, NAME_LENGTH
- call .loop
- jr c, .nope
-
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, PlayerID
- ld c, 2 ; number of bytes in which your ID is stored
-.loop
- ld a, [de]
- cp [hl]
- jr nz, .nope
- inc hl
- inc de
- dec c
- jr nz, .loop
- and a
- ret
-
-.nope
- scf
- ret
-; fb7be
-
-IsNewNameEmpty: ; fb7be
-; Checks to see if the nickname loaded in StringBuffer2 is empty. If so, return carry.
- ld hl, StringBuffer2
- ld c, PKMN_NAME_LENGTH - 1
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- ret
-
-.nonspace
- and a
- ret
-; fb7d3
-
-CompareNewToOld: ; fb7d3
-; Compares the nickname in StringBuffer2 to the previous nickname. If they are the same, return carry.
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- push hl
- call GetNicknameLength
- ld b, c
- ld hl, StringBuffer2
- call GetNicknameLength
- pop hl
- ld a, c
- cp b
- jr nz, .different
- ld de, StringBuffer2
-.loop
- ld a, [de]
- cp "@"
- jr z, .terminator
- cp [hl]
- jr nz, .different
- inc hl
- inc de
- jr .loop
-
-.different
- and a
- ret
-
-.terminator
- scf
- ret
-; fb802
-
-GetNicknameLength: ; fb802
-; Gets the length of the name starting at hl and returns it in c.
- ld c, 0
-.loop
- ld a, [hli]
- cp "@"
- ret z
- inc c
- ld a, c
- cp PKMN_NAME_LENGTH - 1
- jr nz, .loop
- ret
-; fb80f
-
-NameRaterIntroText: ; 0xfb80f
- ; Hello, hello! I'm the NAME RATER.
- ; I rate the names of #MON.
- ; Would you like me to rate names?
- text_jump UnknownText_0x1c0043
- db "@"
-; 0xfb814
-
-NameRaterWhichMonText: ; 0xfb814
- ; Which #MON's nickname should I rate for you?
- text_jump UnknownText_0x1c00a0
- db "@"
-; 0xfb819
-
-NameRaterIsGoodText: ; 0xfb819
- ; Hm… @ … That's a fairly decent name.
- ; But, how about a slightly better nickname?
- ; Want me to give it a better name?
- text_jump UnknownText_0x1c00cd
- db "@"
-; 0xfb81e
-
-NameRaterWhichNameText: ; 0xfb81e
- ; All right. What name should we give it, then?
- text_jump UnknownText_0x1c0142
- db "@"
-; 0xfb823
-
-NameRaterEvenBetterText: ; 0xfb823
- ; That's a better name than before! Well done!
- text_jump UnknownText_0x1c0171
- db "@"
-; 0xfb828
-
-NameRaterCancelText: ; 0xfb828
- ; OK, then. Come again sometime.
- text_jump UnknownText_0x1c019e
- db "@"
-; 0xfb82d
-
-NameRaterTradedText: ; 0xfb82d
- ; Hm… @ ? What a great name! It's perfect.
- ; Treat @ with loving care.
- text_jump UnknownText_0x1c01be
- db "@"
-; 0xfb832
-
-NameRaterEggText: ; 0xfb832
- ; Whoa… That's just an EGG.
- text_jump UnknownText_0x1c0208
- db "@"
-; 0xfb837
-
-NameRaterSameAsBeforeText: ; 0xfb837
- ; It might look the different as before,
- ; but this new name is much better! Well done!
- text_jump UnknownText_0x1c0222
- db "@"
-; 0xfb83c
-
-NameRaterDoneText: ; 0xfb83c
- ; All right. This #MON is now named @ .
- text_jump UnknownText_0x1c0272
- db "@"
-; 0xfb841
diff --git a/event/overworld.asm b/event/overworld.asm
deleted file mode 100755
index 370162fa9..000000000
--- a/event/overworld.asm
+++ /dev/null
@@ -1,1846 +0,0 @@
-FieldMoveJumptableReset: ; c6ea
- xor a
- ld hl, Buffer1
- ld bc, 7
- call ByteFill
- ret
-
-FieldMoveJumptable: ; c6f5
- ld a, [Buffer1]
- rst JumpTable
- ld [Buffer1], a
- bit 7, a
- jr nz, .okay
- and a
- ret
-
-.okay
- and $7f
- scf
- ret
-
-GetPartyNick: ; c706
-; write CurPartyMon nickname to StringBuffer1-3
- ld hl, PartyMonNicknames
- ld a, BOXMON
- ld [MonType], a
- ld a, [CurPartyMon]
- call GetNick
- call CopyName1
-; copy text from StringBuffer2 to StringBuffer3
- ld de, StringBuffer2
- ld hl, StringBuffer3
- call CopyName2
- ret
-
-CheckEngineFlag: ; c721
-; Check engine flag de
-; Return carry if flag is not set
- ld b, CHECK_FLAG
- farcall EngineFlagAction
- ld a, c
- and a
- jr nz, .isset
- scf
- ret
-.isset
- xor a
- ret
-
-CheckBadge: ; c731
-; Check engine flag a (ENGINE_ZEPHYRBADGE thru ENGINE_EARTHBADGE)
-; Display "Badge required" text and return carry if the badge is not owned
- call CheckEngineFlag
- ret nc
- ld hl, .BadgeRequiredText
- call MenuTextBoxBackup ; push text to queue
- scf
- ret
-
-.BadgeRequiredText: ; c73d
- ; Sorry! A new BADGE
- ; is required.
- text_jump _BadgeRequiredText
- db "@"
-
-CheckPartyMove: ; c742
-; Check if a monster in your party has move d.
-
- ld e, 0
- xor a
- ld [CurPartyMon], a
-.loop
- ld c, e
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- and a
- jr z, .no
- cp -1
- jr z, .no
- cp EGG
- jr z, .next
-
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Moves
- ld a, e
- call AddNTimes
- ld b, NUM_MOVES
-.check
- ld a, [hli]
- cp d
- jr z, .yes
- dec b
- jr nz, .check
-
-.next
- inc e
- jr .loop
-
-.yes
- ld a, e
- ld [CurPartyMon], a ; which mon has the move
- xor a
- ret
-.no
- scf
- ret
-
-FieldMoveFailed: ; c779
- ld hl, .CantUseHere
- call MenuTextBoxBackup
- ret
-
-.CantUseHere: ; 0xc780
- ; Can't use that here.
- text_jump UnknownText_0x1c05c8
- db "@"
-
-CutFunction: ; c785
- call FieldMoveJumptableReset
-.loop
- ld hl, .Jumptable
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.Jumptable: ; c796 (3:4796)
-
- dw .CheckAble
- dw .DoCut
- dw .FailCut
-
-.CheckAble: ; c79c (3:479c)
- ld de, ENGINE_HIVEBADGE
- call CheckBadge
- jr c, .nohivebadge
- call CheckMapForSomethingToCut
- jr c, .nothingtocut
- ld a, $1
- ret
-
-.nohivebadge
- ld a, $80
- ret
-
-.nothingtocut
- ld a, $2
- ret
-
-.DoCut: ; c7b2 (3:47b2)
- ld hl, Script_CutFromMenu
- call QueueScript
- ld a, $81
- ret
-
-.FailCut: ; c7bb (3:47bb)
- ld hl, Text_NothingToCut
- call MenuTextBoxBackup
- ld a, $80
- ret
-
-Text_UsedCut: ; 0xc7c4
- ; used CUT!
- text_jump UnknownText_0x1c05dd
- db "@"
-
-Text_NothingToCut: ; 0xc7c9
- ; There's nothing to CUT here.
- text_jump UnknownText_0x1c05ec
- db "@"
-
-CheckMapForSomethingToCut: ; c7ce
- ; Does the collision data of the facing tile permit cutting?
- call GetFacingTileCoord
- ld c, a
- push de
- farcall CheckCutCollision
- pop de
- jr nc, .fail
- ; Get the location of the current block in OverworldMap.
- call GetBlockLocation
- ld c, [hl]
- ; See if that block contains something that can be cut.
- push hl
- ld hl, CutTreeBlockPointers
- call CheckOverworldTileArrays
- pop hl
- jr nc, .fail
- ; Back up the OverworldMap address to Buffer3
- ld a, l
- ld [Buffer3], a
- ld a, h
- ld [Buffer4], a
- ; Back up the replacement tile to Buffer5
- ld a, b
- ld [Buffer5], a
- ; Back up the animation index to Buffer6
- ld a, c
- ld [Buffer6], a
- xor a
- ret
-
-.fail
- scf
- ret
-
-Script_CutFromMenu: ; c7fe
- reloadmappart
- special UpdateTimePals
-
-Script_Cut: ; 0xc802
- callasm GetPartyNick
- writetext Text_UsedCut
- reloadmappart
- callasm CutDownTreeOrGrass
- closetext
- end
-
-CutDownTreeOrGrass: ; c810
- ld hl, Buffer3 ; OverworldMapTile
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Buffer5] ; ReplacementTile
- ld [hl], a
- xor a
- ld [hBGMapMode], a
- call OverworldTextModeSwitch
- call UpdateSprites
- call DelayFrame
- ld a, [Buffer6] ; Animation type
- ld e, a
- farcall OWCutAnimation
- call BufferScreen
- call GetMovementPermissions
- call UpdateSprites
- call DelayFrame
- call LoadStandardFont
- ret
-
-CheckOverworldTileArrays: ; c840
- ; Input: c contains the tile you're facing
- ; Output: Replacement tile in b and effect on wild encounters in c, plus carry set.
- ; Carry is not set if the facing tile cannot be replaced, or if the tileset
- ; does not contain a tile you can replace.
-
- ; Dictionary lookup for pointer to tile replacement table
- push bc
- ld a, [wTileset]
- ld de, 3
- call IsInArray
- pop bc
- jr nc, .nope
- ; Load the pointer
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ; Look up the tile you're facing
- ld de, 3
- ld a, c
- call IsInArray
- jr nc, .nope
- ; Load the replacement to b
- inc hl
- ld b, [hl]
- ; Load the animation type parameter to c
- inc hl
- ld c, [hl]
- scf
- ret
-
-.nope
- xor a
- ret
-
-
-INCLUDE "data/field_move_blocks.asm"
-
-
-OWFlash: ; c8ac
- call .CheckUseFlash
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.CheckUseFlash: ; c8b5
-; Flash
- ld de, ENGINE_ZEPHYRBADGE
- farcall CheckBadge
- jr c, .nozephyrbadge
- push hl
- farcall SpecialAerodactylChamber
- pop hl
- jr c, .useflash
- ld a, [wTimeOfDayPalset]
- cp %11111111 ; 3, 3, 3, 3
- jr nz, .notadarkcave
-.useflash
- call UseFlash
- ld a, $81
- ret
-
-.notadarkcave
- call FieldMoveFailed
- ld a, $80
- ret
-
-.nozephyrbadge
- ld a, $80
- ret
-
-UseFlash: ; c8e0
- ld hl, Script_UseFlash
- jp QueueScript
-
-Script_UseFlash: ; 0xc8e6
- reloadmappart
- special UpdateTimePals
- writetext UnknownText_0xc8f3
- callasm BlindingFlash
- closetext
- end
-
-UnknownText_0xc8f3: ; 0xc8f3
- text_jump UnknownText_0x1c0609
- start_asm
- call WaitSFX
- ld de, SFX_FLASH
- call PlaySFX
- call WaitSFX
- ld hl, .BlankText
- ret
-
-.BlankText: ; 0xc908
- db "@"
-
-SurfFunction: ; c909
- call FieldMoveJumptableReset
-.loop
- ld hl, .Jumptable
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.Jumptable: ; c91a (3:491a)
- dw .TrySurf
- dw .DoSurf
- dw .FailSurf
- dw .AlreadySurfing
-
-.TrySurf: ; c922 (3:4922)
- ld de, ENGINE_FOGBADGE
- call CheckBadge
- jr c, .asm_c956
- ld hl, BikeFlags
- bit 1, [hl] ; always on bike
- jr nz, .cannotsurf
- ld a, [PlayerState]
- cp PLAYER_SURF
- jr z, .alreadyfail
- cp PLAYER_SURF_PIKA
- jr z, .alreadyfail
- call GetFacingTileCoord
- call GetTileCollision
- cp WATERTILE
- jr nz, .cannotsurf
- call CheckDirection
- jr c, .cannotsurf
- farcall CheckFacingObject
- jr c, .cannotsurf
- ld a, $1
- ret
-.asm_c956
- ld a, $80
- ret
-.alreadyfail
- ld a, $3
- ret
-.cannotsurf
- ld a, $2
- ret
-
-.DoSurf: ; c95f (3:495f)
- call GetSurfType
- ld [Buffer2], a
- call GetPartyNick
- ld hl, SurfFromMenuScript
- call QueueScript
- ld a, $81
- ret
-
-.FailSurf: ; c971 (3:4971)
- ld hl, CantSurfText
- call MenuTextBoxBackup
- ld a, $80
- ret
-
-.AlreadySurfing: ; c97a (3:497a)
- ld hl, AlreadySurfingText
- call MenuTextBoxBackup
- ld a, $80
- ret
-
-SurfFromMenuScript: ; c983
- special UpdateTimePals
-
-UsedSurfScript: ; c986
- writetext UsedSurfText ; "used SURF!"
- waitbutton
- closetext
-
- callasm .empty_fn ; empty function
-
- copybytetovar Buffer2
- writevarcode VAR_MOVEMENT
-
- special ReplaceKrisSprite
- special PlayMapMusic
-; step into the water
- special Special_SurfStartStep ; (slow_step_x, step_end)
- applymovement PLAYER, MovementBuffer ; PLAYER, MovementBuffer
- end
-
-.empty_fn ; c9a2
- farcall TrainerRankings_Surf
- ret
-
-UsedSurfText: ; c9a9
- text_jump _UsedSurfText
- db "@"
-
-CantSurfText: ; c9ae
- text_jump _CantSurfText
- db "@"
-
-AlreadySurfingText: ; c9b3
- text_jump _AlreadySurfingText
- db "@"
-
-GetSurfType: ; c9b8
-; Surfing on Pikachu uses an alternate sprite.
-; This is done by using a separate movement type.
-
- ld a, [CurPartyMon]
- ld e, a
- ld d, 0
- ld hl, PartySpecies
- add hl, de
-
- ld a, [hl]
- cp PIKACHU
- ld a, PLAYER_SURF_PIKA
- ret z
- ld a, PLAYER_SURF
- ret
-
-CheckDirection: ; c9cb
-; Return carry if a tile permission prevents you
-; from moving in the direction you're facing.
-
-; Get player direction
- ld a, [PlayerDirection]
- and %00001100 ; bits 2 and 3 contain direction
- rrca
- rrca
- ld e, a
- ld d, 0
- ld hl, .Directions
- add hl, de
-
-; Can you walk in this direction?
- ld a, [TilePermissions]
- and [hl]
- jr nz, .quit
- xor a
- ret
-
-.quit
- scf
- ret
-
-.Directions:
- db FACE_DOWN
- db FACE_UP
- db FACE_LEFT
- db FACE_RIGHT
-
-TrySurfOW:: ; c9e7
-; Checking a tile in the overworld.
-; Return carry if fail is allowed.
-
-; Don't ask to surf if already fail.
- ld a, [PlayerState]
- cp PLAYER_SURF_PIKA
- jr z, .quit
- cp PLAYER_SURF
- jr z, .quit
-
-; Must be facing water.
- ld a, [EngineBuffer1]
- call GetTileCollision
- cp WATERTILE
- jr nz, .quit
-
-; Check tile permissions.
- call CheckDirection
- jr c, .quit
-
- ld de, ENGINE_FOGBADGE
- call CheckEngineFlag
- jr c, .quit
-
- ld d, SURF
- call CheckPartyMove
- jr c, .quit
-
- ld hl, BikeFlags
- bit 1, [hl] ; always on bike (can't surf)
- jr nz, .quit
-
- call GetSurfType
- ld [Buffer2], a
- call GetPartyNick
-
- ld a, BANK(AskSurfScript)
- ld hl, AskSurfScript
- call CallScript
-
- scf
- ret
-
-.quit
- xor a
- ret
-
-AskSurfScript: ; ca2c
- opentext
- writetext AskSurfText
- yesorno
- iftrue UsedSurfScript
- closetext
- end
-
-AskSurfText: ; ca36
- text_jump _AskSurfText ; The water is calm.
- db "@" ; Want to SURF?
-
-FlyFunction: ; ca3b
- call FieldMoveJumptableReset
-.loop
- ld hl, .Jumptable
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.Jumptable:
- dw .TryFly
- dw .DoFly
- dw .FailFly
-
-.TryFly: ; ca52
-; Fly
- ld de, ENGINE_STORMBADGE
- call CheckBadge
- jr c, .nostormbadge
- call GetMapEnvironment
- call CheckOutdoorMap
- jr z, .outdoors
- jr .indoors
-
-.outdoors
- xor a
- ld [hMapAnims], a
- call LoadStandardMenuDataHeader
- call ClearSprites
- farcall _FlyMap
- ld a, e
- cp -1
- jr z, .illegal
- cp NUM_SPAWNS
- jr nc, .illegal
-
- ld [DefaultSpawnpoint], a
- call CloseWindow
- ld a, $1
- ret
-
-.nostormbadge
- ld a, $82
- ret
-
-.indoors
- ld a, $2
- ret
-
-.illegal
- call CloseWindow
- call WaitBGMap
- ld a, $80
- ret
-
-.DoFly: ; ca94
- ld hl, .FlyScript
- call QueueScript
- ld a, $81
- ret
-
-.FailFly: ; ca9d
- call FieldMoveFailed
- ld a, $82
- ret
-
-.FlyScript: ; 0xcaa3
- reloadmappart
- callasm HideSprites
- special UpdateTimePals
- callasm FlyFromAnim
- farscall Script_AbortBugContest
- special WarpToSpawnPoint
- callasm DelayLoadingNewSprites
- writecode VAR_MOVEMENT, PLAYER_NORMAL
- newloadmap MAPSETUP_FLY
- callasm FlyToAnim
- special WaitSFX
- callasm .ReturnFromFly
- end
-
-.ReturnFromFly: ; cacb
- farcall Function561d
- call DelayFrame
- call ReplaceKrisSprite
- farcall LoadOverworldFont
- ret
-
-WaterfallFunction: ; cade
- call .TryWaterfall
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.TryWaterfall: ; cae7
-; Waterfall
- ld de, ENGINE_RISINGBADGE
- farcall CheckBadge
- ld a, $80
- ret c
- call CheckMapCanWaterfall
- jr c, .failed
- ld hl, Script_WaterfallFromMenu
- call QueueScript
- ld a, $81
- ret
-
-.failed
- call FieldMoveFailed
- ld a, $80
- ret
-
-CheckMapCanWaterfall: ; cb07
- ld a, [PlayerDirection]
- and $c
- cp FACE_UP
- jr nz, .failed
- ld a, [TileUp]
- call CheckWaterfallTile
- jr nz, .failed
- xor a
- ret
-
-.failed
- scf
- ret
-
-Script_WaterfallFromMenu: ; 0xcb1c
- reloadmappart
- special UpdateTimePals
-
-Script_UsedWaterfall: ; 0xcb20
- callasm GetPartyNick
- writetext .Text_UsedWaterfall
- waitbutton
- closetext
- playsound SFX_BUBBLEBEAM
-.loop
- applymovement PLAYER, .WaterfallStep
- callasm .CheckContinueWaterfall
- iffalse .loop
- end
-
-.CheckContinueWaterfall: ; cb38
- xor a
- ld [ScriptVar], a
- ld a, [PlayerStandingTile]
- call CheckWaterfallTile
- ret z
- farcall TrainerRankings_Waterfall
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.WaterfallStep: ; cb4f
- turn_waterfall UP
- step_end
-
-.Text_UsedWaterfall: ; 0xcb51
- ; used WATERFALL!
- text_jump UnknownText_0x1c068e
- db "@"
-
-TryWaterfallOW:: ; cb56
- ld d, WATERFALL
- call CheckPartyMove
- jr c, .failed
- ld de, ENGINE_RISINGBADGE
- call CheckEngineFlag
- jr c, .failed
- call CheckMapCanWaterfall
- jr c, .failed
- ld a, BANK(Script_AskWaterfall)
- ld hl, Script_AskWaterfall
- call CallScript
- scf
- ret
-
-.failed
- ld a, BANK(Script_CantDoWaterfall)
- ld hl, Script_CantDoWaterfall
- call CallScript
- scf
- ret
-
-Script_CantDoWaterfall: ; 0xcb7e
- jumptext .Text_CantDoWaterfall
-
-.Text_CantDoWaterfall: ; 0xcb81
- ; Wow, it's a huge waterfall.
- text_jump UnknownText_0x1c06a3
- db "@"
-
-Script_AskWaterfall: ; 0xcb86
- opentext
- writetext .AskUseWaterfall
- yesorno
- iftrue Script_UsedWaterfall
- closetext
- end
-
-.AskUseWaterfall: ; 0xcb90
- ; Do you want to use WATERFALL?
- text_jump UnknownText_0x1c06bf
- db "@"
-
-EscapeRopeFunction: ; cb95
- call FieldMoveJumptableReset
- ld a, $1
- jr dig_incave
-
-DigFunction: ; cb9c
- call FieldMoveJumptableReset
- ld a, $2
-
-dig_incave
- ld [Buffer2], a
-.loop
- ld hl, .DigTable
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.DigTable: ; cbb2
- dw .CheckCanDig
- dw .DoDig
- dw .FailDig
-
-.CheckCanDig: ; cbb8
- call GetMapEnvironment
- cp CAVE
- jr z, .incave
- cp DUNGEON
- jr z, .incave
-.fail
- ld a, $2
- ret
-
-.incave
- ld hl, wDigWarpNumber
- ld a, [hli]
- and a
- jr z, .fail
- ld a, [hli]
- and a
- jr z, .fail
- ld a, [hl]
- and a
- jr z, .fail
- ld a, $1
- ret
-
-.DoDig: ; cbd8
- ld hl, wDigWarpNumber
- ld de, wNextWarp
- ld bc, 3
- call CopyBytes
- call GetPartyNick
- ld a, [Buffer2]
- cp $2
- jr nz, .escaperope
- ld hl, .UsedDigScript
- call QueueScript
- ld a, $81
- ret
-
-.escaperope
- farcall SpecialKabutoChamber
- ld hl, .UsedEscapeRopeScript
- call QueueScript
- ld a, $81
- ret
-
-.FailDig: ; cc06
- ld a, [Buffer2]
- cp $2
- jr nz, .failescaperope
- ld hl, .Text_CantUseHere
- call MenuTextBox
- call WaitPressAorB_BlinkCursor
- call CloseWindow
-
-.failescaperope
- ld a, $80
- ret
-
-.Text_UsedDig: ; 0xcc1c
- ; used DIG!
- text_jump UnknownText_0x1c06de
- db "@"
-
-.Text_UsedEscapeRope: ; 0xcc21
- ; used an ESCAPE ROPE.
- text_jump UnknownText_0x1c06ed
- db "@"
-
-.Text_CantUseHere: ; 0xcc26
- ; Can't use that here.
- text_jump UnknownText_0x1c0705
- db "@"
-
-.UsedEscapeRopeScript: ; 0xcc2b
- reloadmappart
- special UpdateTimePals
- writetext .Text_UsedEscapeRope
- jump .UsedDigOrEscapeRopeScript
-
-.UsedDigScript: ; 0xcc35
- reloadmappart
- special UpdateTimePals
- writetext .Text_UsedDig
-
-.UsedDigOrEscapeRopeScript: ; 0xcc3c
- waitbutton
- closetext
- playsound SFX_WARP_TO
- applymovement PLAYER, .DigOut
- farscall Script_AbortBugContest
- special WarpToSpawnPoint
- writecode VAR_MOVEMENT, PLAYER_NORMAL
- newloadmap MAPSETUP_DOOR
- playsound SFX_WARP_FROM
- applymovement PLAYER, .DigReturn
- end
-
-.DigOut: ; 0xcc59
- step_dig 32
- hide_object
- step_end
-
-.DigReturn: ; 0xcc5d
- show_object
- return_dig 32
- step_end
-
-TeleportFunction: ; cc61
- call FieldMoveJumptableReset
-.loop
- ld hl, .Jumptable
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.Jumptable: ; cc72
- dw .TryTeleport
- dw .DoTeleport
- dw .FailTeleport
-
-.TryTeleport: ; cc78
- call GetMapEnvironment
- call CheckOutdoorMap
- jr z, .CheckIfSpawnPoint
- jr .nope
-
-.CheckIfSpawnPoint:
- ld a, [wLastSpawnMapGroup]
- ld d, a
- ld a, [wLastSpawnMapNumber]
- ld e, a
- farcall IsSpawnPoint
- jr nc, .nope
- ld a, c
- ld [DefaultSpawnpoint], a
- ld a, $1
- ret
-
-.nope
- ld a, $2
- ret
-
-.DoTeleport: ; cc9c
- call GetPartyNick
- ld hl, .TeleportScript
- call QueueScript
- ld a, $81
- ret
-
-.FailTeleport: ; cca8
- ld hl, .Text_CantUseHere
- call MenuTextBoxBackup
- ld a, $80
- ret
-
-.Text_ReturnToLastMonCenter: ; 0xccb1
- ; Return to the last #MON CENTER.
- text_jump UnknownText_0x1c071a
- db "@"
-
-.Text_CantUseHere: ; 0xccb6
- ; Can't use that here.
- text_jump UnknownText_0x1c073b
- db "@"
-
-.TeleportScript: ; 0xccbb
- reloadmappart
- special UpdateTimePals
- writetext .Text_ReturnToLastMonCenter
- pause 60
- reloadmappart
- closetext
- playsound SFX_WARP_TO
- applymovement PLAYER, .TeleportFrom
- farscall Script_AbortBugContest
- special WarpToSpawnPoint
- writecode VAR_MOVEMENT, PLAYER_NORMAL
- newloadmap MAPSETUP_TELEPORT
- playsound SFX_WARP_FROM
- applymovement PLAYER, .TeleportTo
- end
-
-.TeleportFrom: ; cce1
- teleport_from
- step_end
-
-.TeleportTo: ; cce3
- teleport_to
- step_end
-
-StrengthFunction: ; cce5
- call .TryStrength
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.TryStrength: ; ccee
-; Strength
- ld de, ENGINE_PLAINBADGE
- call CheckBadge
- jr c, .Failed
- jr .UseStrength
-
-.AlreadyUsing: ; unreferenced
- ld hl, .JumpText
- call MenuTextBoxBackup
- ld a, $80
- ret
-
-.JumpText: ; 0xcd01
- text_jump UnknownText_0x1c0751
- db "@"
-
-.Failed: ; cd06
- ld a, $80
- ret
-
-.UseStrength: ; cd09
- ld hl, Script_StrengthFromMenu
- call QueueScript
- ld a, $81
- ret
-
-SetStrengthFlag: ; cd12
- ld hl, BikeFlags
- set 0, [hl]
- ld a, [CurPartyMon]
- ld e, a
- ld d, 0
- ld hl, PartySpecies
- add hl, de
- ld a, [hl]
- ld [Buffer6], a
- call GetPartyNick
- ret
-
-Script_StrengthFromMenu: ; 0xcd29
- reloadmappart
- special UpdateTimePals
-
-Script_UsedStrength: ; 0xcd2d
- callasm SetStrengthFlag
- writetext .UsedStrength
- copybytetovar Buffer6
- cry 0
- pause 3
- writetext .StrengthAllowedItToMoveBoulders
- closetext
- end
-
-.UsedStrength: ; 0xcd41
- text_jump UnknownText_0x1c0774
- db "@"
-
-.StrengthAllowedItToMoveBoulders: ; 0xcd46
- text_jump UnknownText_0x1c0788
- db "@"
-
-AskStrengthScript:
- callasm TryStrengthOW
- iffalse .AskStrength
- if_equal $1, .DontMeetRequirements
- jump .AlreadyUsedStrength
-
-.DontMeetRequirements: ; 0xcd59
- jumptext UnknownText_0xcd73
-
-.AlreadyUsedStrength: ; 0xcd5c
- jumptext UnknownText_0xcd6e
-
-.AskStrength: ; 0xcd5f
- opentext
- writetext UnknownText_0xcd69
- yesorno
- iftrue Script_UsedStrength
- closetext
- end
-
-UnknownText_0xcd69: ; 0xcd69
- ; A #MON may be able to move this. Want to use STRENGTH?
- text_jump UnknownText_0x1c07a0
- db "@"
-
-UnknownText_0xcd6e: ; 0xcd6e
- ; Boulders may now be moved!
- text_jump UnknownText_0x1c07d8
- db "@"
-
-UnknownText_0xcd73: ; 0xcd73
- ; A #MON may be able to move this.
- text_jump UnknownText_0x1c07f4
- db "@"
-
-TryStrengthOW: ; cd78
- ld d, STRENGTH
- call CheckPartyMove
- jr c, .nope
-
- ld de, ENGINE_PLAINBADGE
- call CheckEngineFlag
- jr c, .nope
-
- ld hl, BikeFlags
- bit 0, [hl]
- jr z, .already_using
-
- ld a, 2
- jr .done
-
-.nope
- ld a, 1
- jr .done
-
-.already_using
- xor a
- jr .done
-
-.done
- ld [ScriptVar], a
- ret
-
-WhirlpoolFunction: ; cd9d
- call FieldMoveJumptableReset
-.loop
- ld hl, Jumptable_cdae
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-Jumptable_cdae: ; cdae
- dw .TryWhirlpool
- dw .DoWhirlpool
- dw .FailWhirlpool
-
-.TryWhirlpool: ; cdb4
- ld de, ENGINE_GLACIERBADGE
- call CheckBadge
- jr c, .noglacierbadge
- call TryWhirlpoolMenu
- jr c, .failed
- ld a, $1
- ret
-
-.failed
- ld a, $2
- ret
-
-.noglacierbadge
- ld a, $80
- ret
-
-.DoWhirlpool: ; cdca
- ld hl, Script_WhirlpoolFromMenu
- call QueueScript
- ld a, $81
- ret
-
-.FailWhirlpool: ; cdd3
- call FieldMoveFailed
- ld a, $80
- ret
-
-Text_UsedWhirlpool: ; 0xcdd9
- ; used WHIRLPOOL!
- text_jump UnknownText_0x1c0816
- db "@"
-
-TryWhirlpoolMenu: ; cdde
- call GetFacingTileCoord
- ld c, a
- push de
- call CheckWhirlpoolTile
- pop de
- jr c, .failed
- call GetBlockLocation
- ld c, [hl]
- push hl
- ld hl, WhirlpoolBlockPointers
- call CheckOverworldTileArrays
- pop hl
- jr nc, .failed
- ld a, l
- ld [Buffer3], a
- ld a, h
- ld [Buffer4], a
- ld a, b
- ld [Buffer5], a
- ld a, c
- ld [Buffer6], a
- xor a
- ret
-
-.failed
- scf
- ret
-
-Script_WhirlpoolFromMenu: ; 0xce0b
- reloadmappart
- special UpdateTimePals
-
-Script_UsedWhirlpool: ; 0xce0f
- callasm GetPartyNick
- writetext Text_UsedWhirlpool
- reloadmappart
- callasm DisappearWhirlpool
- closetext
- end
-
-DisappearWhirlpool: ; ce1d
- ld hl, Buffer3
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Buffer5]
- ld [hl], a
- xor a
- ld [hBGMapMode], a
- call OverworldTextModeSwitch
- ld a, [Buffer6]
- ld e, a
- farcall PlayWhirlpoolSound
- call BufferScreen
- call GetMovementPermissions
- ret
-
-TryWhirlpoolOW:: ; ce3e
- ld d, WHIRLPOOL
- call CheckPartyMove
- jr c, .failed
- ld de, ENGINE_GLACIERBADGE
- call CheckEngineFlag
- jr c, .failed
- call TryWhirlpoolMenu
- jr c, .failed
- ld a, BANK(Script_AskWhirlpoolOW)
- ld hl, Script_AskWhirlpoolOW
- call CallScript
- scf
- ret
-
-.failed
- ld a, BANK(Script_MightyWhirlpool)
- ld hl, Script_MightyWhirlpool
- call CallScript
- scf
- ret
-
-Script_MightyWhirlpool: ; 0xce66
- jumptext .MightyWhirlpoolText
-
-.MightyWhirlpoolText: ; 0xce69
- text_jump UnknownText_0x1c082b
- db "@"
-
-Script_AskWhirlpoolOW: ; 0xce6e
- opentext
- writetext UnknownText_0xce78
- yesorno
- iftrue Script_UsedWhirlpool
- closetext
- end
-
-UnknownText_0xce78: ; 0xce78
- text_jump UnknownText_0x1c0864
- db "@"
-
-HeadbuttFunction: ; ce7d
- call TryHeadbuttFromMenu
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-TryHeadbuttFromMenu: ; ce86
- call GetFacingTileCoord
- call CheckHeadbuttTreeTile
- jr nz, .no_tree
-
- ld hl, HeadbuttFromMenuScript
- call QueueScript
- ld a, $81
- ret
-
-.no_tree
- call FieldMoveFailed
- ld a, $80
- ret
-
-UnknownText_0xce9d: ; 0xce9d
- ; did a HEADBUTT!
- text_jump UnknownText_0x1c0897
- db "@"
-
-UnknownText_0xcea2: ; 0xcea2
- ; Nope. Nothing…
- text_jump UnknownText_0x1c08ac
- db "@"
-
-HeadbuttFromMenuScript: ; 0xcea7
- reloadmappart
- special UpdateTimePals
-
-HeadbuttScript: ; 0xceab
- callasm GetPartyNick
- writetext UnknownText_0xce9d
-
- reloadmappart
- callasm ShakeHeadbuttTree
-
- callasm TreeMonEncounter
- iffalse .no_battle
- closetext
- randomwildmon
- startbattle
- reloadmapafterbattle
- end
-
-.no_battle
- writetext UnknownText_0xcea2
- waitbutton
- closetext
- end
-
-TryHeadbuttOW:: ; cec9
- ld d, HEADBUTT
- call CheckPartyMove
- jr c, .no
-
- ld a, BANK(AskHeadbuttScript)
- ld hl, AskHeadbuttScript
- call CallScript
- scf
- ret
-
-.no
- xor a
- ret
-
-AskHeadbuttScript: ; 0xcedc
- opentext
- writetext UnknownText_0xcee6
- yesorno
- iftrue HeadbuttScript
- closetext
- end
-
-UnknownText_0xcee6: ; 0xcee6
- ; A #MON could be in this tree. Want to HEADBUTT it?
- text_jump UnknownText_0x1c08bc
- db "@"
-
-RockSmashFunction: ; ceeb
- call TryRockSmashFromMenu
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-TryRockSmashFromMenu: ; cef4
- call GetFacingObject
- jr c, .no_rock
- ld a, d
- cp $18
- jr nz, .no_rock
-
- ld hl, RockSmashFromMenuScript
- call QueueScript
- ld a, $81
- ret
-
-.no_rock
- call FieldMoveFailed
- ld a, $80
- ret
-
-GetFacingObject: ; cf0d
- farcall CheckFacingObject
- jr nc, .fail
-
- ld a, [hObjectStructIndexBuffer]
- call GetObjectStruct
- ld hl, OBJECT_MAP_OBJECT_INDEX
- add hl, bc
- ld a, [hl]
- ld [hLastTalked], a
- call GetMapObject
- ld hl, MAPOBJECT_MOVEMENT
- add hl, bc
- ld a, [hl]
- ld d, a
- and a
- ret
-
-.fail
- scf
- ret
-
-RockSmashFromMenuScript: ; 0xcf2e
- reloadmappart
- special UpdateTimePals
-
-RockSmashScript: ; cf32
- callasm GetPartyNick
- writetext UnknownText_0xcf58
- closetext
- special WaitSFX
- playsound SFX_STRENGTH
- earthquake 84
- applymovement2 MovementData_0xcf55
- disappear -2
-
- callasm RockMonEncounter
- copybytetovar TempWildMonSpecies
- iffalse .done
- randomwildmon
- startbattle
- reloadmapafterbattle
-.done
- end
-
-MovementData_0xcf55: ; 0xcf55
- rock_smash 10
- step_end
-
-UnknownText_0xcf58: ; 0xcf58
- text_jump UnknownText_0x1c08f0
- db "@"
-
-AskRockSmashScript: ; 0xcf5d
- callasm HasRockSmash
- if_equal 1, .no
-
- opentext
- writetext UnknownText_0xcf77
- yesorno
- iftrue RockSmashScript
- closetext
- end
-.no
- jumptext UnknownText_0xcf72
-
-UnknownText_0xcf72: ; 0xcf72
- ; Maybe a #MON can break this.
- text_jump UnknownText_0x1c0906
- db "@"
-
-UnknownText_0xcf77: ; 0xcf77
- ; This rock looks breakable. Want to use ROCK SMASH?
- text_jump UnknownText_0x1c0924
- db "@"
-
-HasRockSmash: ; cf7c
- ld d, ROCK_SMASH
- call CheckPartyMove
- jr nc, .yes
-.no
- ld a, 1
- jr .done
-.yes
- xor a
- jr .done
-.done
- ld [ScriptVar], a
- ret
-
-FishFunction: ; cf8e
- ld a, e
- push af
- call FieldMoveJumptableReset
- pop af
- ld [Buffer2], a
-.loop
- ld hl, .FishTable
- call FieldMoveJumptable
- jr nc, .loop
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.FishTable: ; cfa5
- dw .TryFish
- dw .FishNoBite
- dw .FishGotSomething
- dw .FailFish
- dw .FishNoFish
-
-.TryFish: ; cfaf
- ld a, [PlayerState]
- cp PLAYER_SURF
- jr z, .fail
- cp PLAYER_SURF_PIKA
- jr z, .fail
- call GetFacingTileCoord
- call GetTileCollision
- cp WATERTILE
- jr z, .facingwater
-.fail
- ld a, $3
- ret
-
-.facingwater
- call GetFishingGroup
- and a
- jr nz, .goodtofish
- ld a, $4
- ret
-
-.goodtofish
- ld d, a
- ld a, [Buffer2]
- ld e, a
- farcall Fish
- ld a, d
- and a
- jr z, .nonibble
- ld [TempWildMonSpecies], a
- ld a, e
- ld [CurPartyLevel], a
- ld a, BATTLETYPE_FISH
- ld [BattleType], a
- ld a, $2
- ret
-
-.nonibble
- ld a, $1
- ret
-
-.FailFish: ; cff1
- ld a, $80
- ret
-
-.FishGotSomething: ; cff4
- ld a, $1
- ld [Buffer6], a
- ld hl, Script_GotABite
- call QueueScript
- ld a, $81
- ret
-
-.FishNoBite: ; d002
- ld a, $2
- ld [Buffer6], a
- ld hl, Script_NotEvenANibble
- call QueueScript
- ld a, $81
- ret
-
-.FishNoFish: ; d010
- ld a, $0
- ld [Buffer6], a
- ld hl, Script_NotEvenANibble2
- call QueueScript
- ld a, $81
- ret
-
-Script_NotEvenANibble: ; 0xd01e
- scall Script_FishCastRod
- writetext UnknownText_0xd0a9
- jump Script_NotEvenANibble_FallThrough
-
-Script_NotEvenANibble2: ; 0xd027
- scall Script_FishCastRod
- writetext UnknownText_0xd0a9
-
-Script_NotEvenANibble_FallThrough: ; 0xd02d
- loademote EMOTE_SHADOW
- callasm PutTheRodAway
- closetext
- end
-
-Script_GotABite: ; 0xd035
- scall Script_FishCastRod
- callasm Fishing_CheckFacingUp
- iffalse .NotFacingUp
- applymovement PLAYER, .Movement_FacingUp
- jump .FightTheHookedPokemon
-
-.NotFacingUp: ; 0xd046
- applymovement PLAYER, .Movement_NotFacingUp
-
-.FightTheHookedPokemon: ; 0xd04a
- pause 40
- applymovement PLAYER, .Movement_RestoreRod
- writetext UnknownText_0xd0a4
- callasm PutTheRodAway
- closetext
- randomwildmon
- startbattle
- reloadmapafterbattle
- end
-
-.Movement_NotFacingUp: ; d05c
- fish_got_bite
- fish_got_bite
- fish_got_bite
- fish_got_bite
- show_emote
- step_end
-
-.Movement_FacingUp: ; d062
- fish_got_bite
- fish_got_bite
- fish_got_bite
- fish_got_bite
- step_sleep 1
- show_emote
- step_end
-
-.Movement_RestoreRod: ; d069
- hide_emote
- fish_cast_rod
- step_end
-
-Fishing_CheckFacingUp: ; d06c
- ld a, [PlayerDirection]
- and $c
- cp OW_UP
- ld a, $1
- jr z, .up
- xor a
-
-.up
- ld [ScriptVar], a
- ret
-
-Script_FishCastRod: ; 0xd07c
- reloadmappart
- loadvar hBGMapMode, $0
- special UpdateTimePals
- loademote EMOTE_ROD
- callasm LoadFishingGFX
- loademote EMOTE_SHOCK
- applymovement PLAYER, MovementData_0xd093
- pause 40
- end
-
-MovementData_0xd093: ; d093
- fish_cast_rod
- step_end
-
-PutTheRodAway: ; d095
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [PlayerAction], a
- call UpdateSprites
- call ReplaceKrisSprite
- ret
-
-UnknownText_0xd0a4: ; 0xd0a4
- ; Oh! A bite!
- text_jump UnknownText_0x1c0958
- db "@"
-
-UnknownText_0xd0a9: ; 0xd0a9
- ; Not even a nibble!
- text_jump UnknownText_0x1c0965
- db "@"
-
-UnknownText_0xd0ae: ; unused
- ; Looks like there's nothing here.
- text_jump UnknownText_0x1c0979
- db "@"
-
-BikeFunction: ; d0b3
- call .TryBike
- and $7f
- ld [wFieldMoveSucceeded], a
- ret
-
-.TryBike: ; d0bc
- call .CheckEnvironment
- jr c, .CannotUseBike
- ld a, [PlayerState]
- cp PLAYER_NORMAL
- jr z, .GetOnBike
- cp PLAYER_BIKE
- jr z, .GetOffBike
- jr .CannotUseBike
-
-.GetOnBike:
- ld hl, Script_GetOnBike
- ld de, Script_GetOnBike_Register
- call .CheckIfRegistered
- call QueueScript
- xor a
- ld [MusicFade], a
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call MaxVolume
- ld de, MUSIC_BICYCLE
- ld a, e
- ld [wMapMusic], a
- call PlayMusic
- ld a, $1
- ret
-
-.GetOffBike:
- ld hl, BikeFlags
- bit 1, [hl]
- jr nz, .CantGetOffBike
- ld hl, Script_GetOffBike
- ld de, Script_GetOffBike_Register
- call .CheckIfRegistered
- ld a, BANK(Script_GetOffBike)
- jr .done
-
-.CantGetOffBike:
- ld hl, Script_CantGetOffBike
- jr .done
-
-.CannotUseBike:
- ld a, $0
- ret
-
-.done
- call QueueScript
- ld a, $1
- ret
-
-.CheckIfRegistered: ; d119
- ld a, [wUsingItemWithSelect]
- and a
- ret z
- ld h, d
- ld l, e
- ret
-
-.CheckEnvironment: ; d121
- call GetMapEnvironment
- call CheckOutdoorMap
- jr z, .ok
- cp CAVE
- jr z, .ok
- cp GATE
- jr z, .ok
- jr .nope
-
-.ok
- call GetPlayerStandingTile
- and WALLTILE | WATERTILE ; can't use our bike in a wall or on water
- jr nz, .nope
- xor a
- ret
-
-.nope
- scf
- ret
-
-Script_GetOnBike: ; 0xd13e
- reloadmappart
- special UpdateTimePals
- writecode VAR_MOVEMENT, PLAYER_BIKE
- writetext GotOnTheBikeText
- waitbutton
- closetext
- special ReplaceKrisSprite
- end
-
-Script_GetOnBike_Register: ; 0xd14e
- writecode VAR_MOVEMENT, PLAYER_BIKE
- closetext
- special ReplaceKrisSprite
- end
-
-; XXX
- nop
- ret
-
-Script_GetOffBike: ; 0xd158
- reloadmappart
- special UpdateTimePals
- writecode VAR_MOVEMENT, PLAYER_NORMAL
- writetext GotOffTheBikeText
- waitbutton
-
-FinishGettingOffBike:
- closetext
- special ReplaceKrisSprite
- special PlayMapMusic
- end
-
-Script_GetOffBike_Register: ; 0xd16b
- writecode VAR_MOVEMENT, PLAYER_NORMAL
- jump FinishGettingOffBike
-
-Script_CantGetOffBike: ; 0xd171
- writetext .CantGetOffBikeText
- waitbutton
- closetext
- end
-
-.CantGetOffBikeText: ; 0xd177
- ; You can't get off here!
- text_jump UnknownText_0x1c099a
- db "@"
-
-GotOnTheBikeText: ; 0xd17c
- ; got on the @ .
- text_jump UnknownText_0x1c09b2
- db "@"
-
-GotOffTheBikeText: ; 0xd181
- ; got off the @ .
- text_jump UnknownText_0x1c09c7
- db "@"
-
-TryCutOW:: ; d186
- ld d, CUT
- call CheckPartyMove
- jr c, .cant_cut
-
- ld de, ENGINE_HIVEBADGE
- call CheckEngineFlag
- jr c, .cant_cut
-
- ld a, BANK(AskCutScript)
- ld hl, AskCutScript
- call CallScript
- scf
- ret
-
-.cant_cut
- ld a, BANK(CantCutScript)
- ld hl, CantCutScript
- call CallScript
- scf
- ret
-
-AskCutScript: ; 0xd1a9
- opentext
- writetext UnknownText_0xd1c8
- yesorno
- iffalse .script_d1b8
- callasm .CheckMap
- iftrue Script_Cut
-.script_d1b8
- closetext
- end
-
-.CheckMap: ; d1ba
- xor a
- ld [ScriptVar], a
- call CheckMapForSomethingToCut
- ret c
- ld a, TRUE
- ld [ScriptVar], a
- ret
-
-UnknownText_0xd1c8: ; 0xd1c8
- text_jump UnknownText_0x1c09dd
- db "@"
-
-CantCutScript: ; 0xd1cd
- jumptext UnknownText_0xd1d0
-
-UnknownText_0xd1d0: ; 0xd1d0
- text_jump UnknownText_0x1c0a05
- db "@"
diff --git a/event/poisonstep.asm b/event/poisonstep.asm
deleted file mode 100755
index 00c7477bc..000000000
--- a/event/poisonstep.asm
+++ /dev/null
@@ -1,162 +0,0 @@
-DoPoisonStep:: ; 505da
- ld a, [PartyCount]
- and a
- jr z, .no_faint
-
- xor a
- ld c, 7
- ld hl, EngineBuffer1
-.loop_clearEngineBuffer1
- ld [hli], a
- dec c
- jr nz, .loop_clearEngineBuffer1
-
- xor a
- ld [CurPartyMon], a
-.loop_check_poison
- call .DamageMonIfPoisoned
- jr nc, .not_poisoned
-; the output flag is stored in c, copy it to the ([CurPartyMon] + 2)nd EngineBuffer
-; and set the corresponding flag in EngineBuffer1
- ld a, [CurPartyMon]
- ld e, a
- ld d, 0
- ld hl, EngineBuffer2
- add hl, de
- ld [hl], c
- ld a, [EngineBuffer1]
- or c
- ld [EngineBuffer1], a
-
-.not_poisoned
- ld a, [PartyCount]
- ld hl, CurPartyMon
- inc [hl]
- cp [hl]
- jr nz, .loop_check_poison
-
- ld a, [EngineBuffer1]
- and %10
- jr nz, .someone_has_fainted
- ld a, [EngineBuffer1]
- and %01
- jr z, .no_faint
- call .PlayPoisonSFX
- xor a
- ret
-
-.someone_has_fainted
- ld a, BANK(.Script_MonFaintedToPoison)
- ld hl, .Script_MonFaintedToPoison
- call CallScript
- scf
- ret
-
-.no_faint
- xor a
- ret
-; 5062e
-
-.DamageMonIfPoisoned: ; 5062e
-; check if mon is poisoned, return if not
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld a, [hl]
- and 1 << PSN
- ret z
-
-; check if mon is already fainted, return if so
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
- or c
- ret z
-
-; do 1 HP damage
- dec bc
- ld [hl], c
- dec hl
- ld [hl], b
-
-; check if mon has fainted as a result of poison damage
- ld a, b
- or c
- jr nz, .not_fainted
-
-; the mon has fainted, reset its status, set carry, and return %10
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld [hl], 0
- ld c, %10
- scf
- ret
-
-.not_fainted
-; set carry and return %01
- ld c, %01
- scf
- ret
-; 50658
-
-.PlayPoisonSFX: ; 50658
- ld de, SFX_POISON
- call PlaySFX
- ld b, $2
- predef LoadPoisonBGPals
- call DelayFrame
- ret
-; 50669
-
-.Script_MonFaintedToPoison: ; 50669
- callasm .PlayPoisonSFX
- opentext
- callasm .CheckWhitedOut
- iffalse .whiteout
- closetext
- end
-; 50677
-
-.whiteout ; 50677
- farjump Script_OverworldWhiteout
-; 5067b
-
-.CheckWhitedOut: ; 5067b
- xor a
- ld [CurPartyMon], a
- ld de, EngineBuffer2
-.party_loop
- push de
- ld a, [de]
- and %10
- jr z, .mon_not_fainted
- ld c, HAPPINESS_POISONFAINT
- farcall ChangeHappiness
- farcall GetPartyNick
- ld hl, .PoisonFaintText
- call PrintText
-
-.mon_not_fainted
- pop de
- inc de
- ld hl, CurPartyMon
- inc [hl]
- ld a, [PartyCount]
- cp [hl]
- jr nz, .party_loop
- predef CheckPlayerPartyForFitPkmn
- ld a, d
- ld [ScriptVar], a
- ret
-; 506b2
-
-.PoisonFaintText: ; 506b2
- text_jump UnknownText_0x1c0acc
- db "@"
-; 506b7
-
-.PoisonWhiteOutText: ; 506b7
- text_jump UnknownText_0x1c0ada
- db "@"
-; 506bc
diff --git a/event/poisonstep_pals.asm b/event/poisonstep_pals.asm
deleted file mode 100644
index 088be8848..000000000
--- a/event/poisonstep_pals.asm
+++ /dev/null
@@ -1,48 +0,0 @@
-LoadPoisonBGPals: ; cbcdd
- call .LoadPals
- ld a, [hCGB]
- and a
- ret nz
- ret ; ????
-
-.LoadPals: ; cbce5
- ld a, [hCGB]
- and a
- jr nz, .cgb
- ld a, [TimeOfDayPal]
- and $3
- cp $3
- ld a, %00000000
- jr z, .convert_pals
- ld a, %10101010
-
-.convert_pals
- call DmgToCgbBGPals
- ld c, 4
- call DelayFrames
- farcall _UpdateTimePals
- ret
-
-.cgb
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld c, $20
-.loop
-; RGB 28, 21, 31
- ld a, LOW(palred 28 + palgreen 21 + palblue 31)
- ld [hli], a
- ld a, HIGH(palred 28 + palgreen 21 + palblue 31)
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ld c, 4
- call DelayFrames
- farcall _UpdateTimePals
- ret
diff --git a/event/poke_seer.asm b/event/poke_seer.asm
deleted file mode 100644
index d6e335298..000000000
--- a/event/poke_seer.asm
+++ /dev/null
@@ -1,461 +0,0 @@
- const_def
- const SEER_INTRO
- const SEER_CANT_TELL
- const SEER_MET_AT
- const SEER_TIME_LEVEL
- const SEER_TRADED
- const SEER_CANCEL
- const SEER_EGG
- const SEER_LEVEL_ONLY
-
- const_def
- const SEERACTION_MET
- const SEERACTION_TRADED
- const SEERACTION_CANT_TELL_1
- const SEERACTION_CANT_TELL_2
- const SEERACTION_LEVEL_ONLY
-
-SpecialPokeSeer: ; 4f0bc
- ld a, SEER_INTRO
- call PrintSeerText
- call JoyWaitAorB
-
- ld b, $6
- farcall SelectMonFromParty
- jr c, .cancel
-
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
-
- call IsAPokemon
- jr c, .no_mon
-
- call ReadCaughtData
- call SeerAction
- ret
-
-.cancel
- ld a, SEER_CANCEL
- call PrintSeerText
- ret
-
-.no_mon
- ret
-
-.egg
- ld a, SEER_EGG
- call PrintSeerText
- ret
-; 4f0ee
-
-
-SeerAction: ; 4f0ee
- ld a, [wSeerAction]
- ld hl, SeerActions
- rst JumpTable
- ret
-; 4f0f6
-
-SeerActions: ; 4f0f6
- dw SeerAction0
- dw SeerAction1
- dw SeerAction2
- dw SeerAction3
- dw SeerAction4
-; 4f100
-
-SeerAction0: ; 4f100
- ld a, SEER_MET_AT
- call PrintSeerText
- ld a, SEER_TIME_LEVEL
- call PrintSeerText
- call SeerAdvice
- ret
-; 4f10e
-
-SeerAction1: ; 4f10e
- call GetCaughtOT
- ld a, SEER_TRADED
- call PrintSeerText
- ld a, SEER_TIME_LEVEL
- call PrintSeerText
- call SeerAdvice
- ret
-; 4f11f
-
-SeerAction2: ; 4f11f
- ld a, SEER_CANT_TELL
- call PrintSeerText
- ret
-; 4f125
-
-SeerAction3: ; 4f125
- ld a, SEER_CANT_TELL
- call PrintSeerText
- ret
-; 4f12b
-
-SeerAction4: ; 4f12b
- ld a, SEER_LEVEL_ONLY
- call PrintSeerText
- call SeerAdvice
- ret
-; 4f134
-
-ReadCaughtData: ; 4f134
- ld a, MON_CAUGHTDATA
- call GetPartyParamLocation
- ld a, [hli]
- ld [wSeerCaughtData], a
- ld a, [hld]
- ld [wSeerCaughtGender], a
- or [hl]
- jr z, .error
-
- ld a, SEERACTION_TRADED
- ld [wSeerAction], a
-
- ld a, MON_ID
- call GetPartyParamLocation
- ld a, [PlayerID]
- cp [hl]
- jr nz, .traded
-
- inc hl
- ld a, [PlayerID + 1]
- ; cp [hl]
- jr nz, .traded
-
- ld a, SEERACTION_MET
- ld [wSeerAction], a
-
-.traded
- call GetCaughtLevel
- call GetCaughtOT
- call GetCaughtName
- call GetCaughtTime
- call GetCaughtLocation
- and a
- ret
-
-.error
- ld a, SEERACTION_CANT_TELL_1
- ld [wSeerAction], a
- ret
-; 4f176
-
-GetCaughtName: ; 4f176
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
- ld de, wSeerNickname
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ret
-; 4f18c
-
-GetCaughtLevel: ; 4f18c
- ld a, "@"
- ld hl, wSeerCaughtLevelString
- ld bc, 4
- call ByteFill
-
- ; caught level
- ; Limited to between 1 and 63 for some reason.
- ld a, [wSeerCaughtData]
- and $3f
- jr z, .unknown
- cp 1 ; hatched from an egg
- jr nz, .print
- ld a, EGG_LEVEL ; egg hatch level
-
-.print
- ld [wSeerCaughtLevel], a
- ld hl, wSeerCaughtLevelString
- ld de, wSeerCaughtLevel
- lb bc, PRINTNUM_RIGHTALIGN | 1, 3
- call PrintNum
- ret
-
-.unknown
- ld de, wSeerCaughtLevelString
- ld hl, .unknown_level
- ld bc, 4
- call CopyBytes
- ret
-; 4f1c1
-
-.unknown_level ; 4f1c1
- db "???@"
-; 4f1c5
-
-GetCaughtTime: ; 4f1c5
- ld a, [wSeerCaughtData]
- and $c0
- jr z, .none
-
- rlca
- rlca
- dec a
- ld hl, .times
- call GetNthString
- ld d, h
- ld e, l
- ld hl, wSeerTimeOfDay
- call CopyName2
- and a
- ret
-
-.none
- ld de, wSeerTimeOfDay
- call UnknownCaughtData
- ret
-; 4f1e6
-
-.times ; 4f1e6
- db "Morning@"
- db "Day@"
- db "Night@"
-; 4f1f8
-
-UnknownCaughtData: ; 4f1f8
- ld hl, .unknown
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-; 4f202
-
-.unknown ; 4f202
- db "Unknown@"
-; 4f20a
-
-GetCaughtLocation: ; 4f20a
- ld a, [wSeerCaughtGender]
- and $7f
- jr z, .Unknown
- cp $7f
- jr z, .event
- cp $7e
- jr z, .fail
- ld e, a
- farcall GetLandmarkName
- ld hl, StringBuffer1
- ld de, wSeerCaughtLocation
- ld bc, 17
- call CopyBytes
- and a
- ret
-
-.Unknown:
- ld de, wSeerCaughtLocation
- jp UnknownCaughtData
-
-.event
- ld a, SEERACTION_LEVEL_ONLY
- ld [wSeerAction], a
- scf
- ret
-
-.fail
- ld a, SEERACTION_CANT_TELL_2
- ld [wSeerAction], a
- scf
- ret
-; 4f242
-
-GetCaughtOT: ; 4f242
- ld a, [CurPartyMon]
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call AddNTimes
- ld de, wSeerOTName
- ld bc, NAME_LENGTH
- call CopyBytes
-
-; this routine is useless in Western localizations
- ld hl, .male
- ld a, [wSeerCaughtGender]
- bit 7, a
- jr z, .got_grammar
- ld hl, .female
-
-.got_grammar
- ld de, wSeerOTNameGrammar
- ld a, "@"
- ld [de], a
- ret
-; 4f26b
-
-.male ; 4f26b
- db "@"
-.female ; 4f26c
- db "@"
-; 4f26d
-
-PrintSeerText: ; 4f26d
- ld e, a
- ld d, 0
- ld hl, SeerTexts
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 4f27c
-
-SeerTexts: ; 4f27c
- dw SeerIntroText
- dw SeerCantTellText
- dw SeerMetAtText
- dw SeerTimeLevelText
- dw SeerTradedText
- dw SeerCancelText
- dw SeerEggText
- dw SeerLevelOnlyText
-; 4f28c
-
-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, MON_LEVEL
- call GetPartyParamLocation
- ld a, [wSeerCaughtLevel]
- ld c, a
- ld a, [hl]
- sub c
- ld c, a
-
- ld hl, SeerAdviceTexts
- ld de, 3
-.next
- cp [hl]
- jr c, .print
- jr z, .print
- add hl, de
- jr .next
-
-.print
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 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
-
-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, MON_CAUGHTGENDER
- add hl, bc
-
- ld a, [hl]
- and $7f
- jr z, .genderless
- cp $7f
- jr z, .genderless
-
- ld a, [hl]
- and $80
- jr nz, .male
- ld c, 1
- ret
-
-.male
- ld c, 2
- ret
-
-.genderless
- ld c, 0
- ret
-; 4f31c
diff --git a/event/print_photo.asm b/event/print_photo.asm
deleted file mode 100755
index 06b01bbcf..000000000
--- a/event/print_photo.asm
+++ /dev/null
@@ -1,61 +0,0 @@
-PhotoStudio: ; 16dc7
- ld hl, .Text_AskWhichMon
- call PrintText
- farcall SelectMonFromParty
- jr c, .cancel
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
-
- ld hl, .Text_HoldStill
- call PrintText
- call DisableSpriteUpdates
- farcall PrintPartymon
- call ReturnToMapWithSpeechTextbox
- ld a, [hPrinter]
- and a
- jr nz, .cancel
- ld hl, .Text_Presto
- jr .print_text
-
-.cancel
- ld hl, .Text_NoPicture
- jr .print_text
-
-.egg
- ld hl, .Text_Egg
-
-.print_text
- call PrintText
- ret
-; 16e04
-
-.Text_AskWhichMon: ; 0x16e04
- ; Which #MON should I photo- graph?
- text_jump UnknownText_0x1be024
- db "@"
-; 0x16e09
-
-.Text_HoldStill: ; 0x16e09
- ; All righty. Hold still for a bit.
- text_jump UnknownText_0x1be047
- db "@"
-; 0x16e0e
-
-.Text_Presto: ; 0x16e0e
- ; Presto! All done. Come again, OK?
- text_jump UnknownText_0x1be06a
- db "@"
-; 0x16e13
-
-.Text_NoPicture: ; 0x16e13
- ; Oh, no picture? Come again, OK?
- text_jump UnknownText_0x1c0000
- db "@"
-; 0x16e18
-
-.Text_Egg: ; 0x16e18
- ; An EGG? My talent is worth more…
- text_jump UnknownText_0x1c0021
- db "@"
-; 0x16e1d
diff --git a/event/print_unown.asm b/event/print_unown.asm
deleted file mode 100644
index 7841a688b..000000000
--- a/event/print_unown.asm
+++ /dev/null
@@ -1,233 +0,0 @@
-UnownPrinter: ; 16be4
- ld a, [UnownDex]
- and a
- ret z
-
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld a, [Options]
- push af
- set NO_TEXT_SCROLL, a
- ld [Options], a
- call ClearBGPalettes
- call ClearTileMap
-
- ld de, UnownDexATile
- ld hl, VTiles1 tile $6f
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- ld de, UnownDexBTile
- ld hl, VTiles1 tile $75
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- hlcoord 0, 0
- lb bc, 3, 18
- call TextBox
-
- hlcoord 0, 5
- lb bc, 7, 7
- call TextBox
-
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
-
- hlcoord 1, 2
- ld de, AlphRuinsStampString
- call PlaceString
-
- hlcoord 1, 16
- ld de, UnownDexDoWhatString
- call PlaceString
-
- hlcoord 10, 6
- ld de, UnownDexMenuString
- call PlaceString
-
- xor a
- ld [wJumptableIndex], a
- call .UpdateUnownFrontpic
- call WaitBGMap
-
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [TempMonDVs], a
- ld [TempMonDVs + 1], a
-
- ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
-
-.joy_loop
- call JoyTextDelay
-
- ld a, [hJoyPressed]
- and B_BUTTON
- jr nz, .pressed_b
-
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .pressed_a
-
- call .LeftRight
- call DelayFrame
- jr .joy_loop
-
-.pressed_a
- ld a, [wJumptableIndex]
- push af
- farcall PrintUnownStamp
- call RestartMapMusic
- pop af
- ld [wJumptableIndex], a
- jr .joy_loop
-
-.pressed_b
- pop af
- ld [Options], a
- pop af
- ld [hInMenu], a
- call ReturnToMapFromSubmenu
- ret
-; 16ca0
-
-.LeftRight: ; 16ca0
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, .press_right
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, .press_left
- ret
-
-.press_left
- ld hl, wJumptableIndex
- ld a, [hl]
- and a
- jr nz, .wrap_around_left
- ld [hl], 26 + 1
-.wrap_around_left
- dec [hl]
- jr .return
-
-.press_right
- ld hl, wJumptableIndex
- ld a, [hl]
- cp 26
- jr c, .wrap_around_right
- ld [hl], -1
-.wrap_around_right
- inc [hl]
-
-.return
- call .UpdateUnownFrontpic
- ret
-; 16cc8
-
-.UpdateUnownFrontpic: ; 16cc8
- ld a, [wJumptableIndex]
- cp 26
- jr z, .vacant
- inc a
- ld [UnownLetter], a
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [wBoxAlignment], a
- ld de, VTiles2
- predef GetMonFrontpic
- call .Load2bppToSRAM
- hlcoord 1, 6
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- ld de, VTiles2 tile $31
- farcall RotateUnownFrontpic
- ret
-
-.Load2bppToSRAM: ; 16cff
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld a, BANK(sScratch)
- call GetSRAMBank
- ld de, wDecompressScratch
- ld hl, sScratch
- ld a, [hROMBank]
- ld b, a
- ld c, $31
- call Get2bpp
- call CloseSRAM
-
- pop af
- ld [rSVBK], a
- ret
-
-.vacant
- hlcoord 1, 6
- lb bc, 7, 7
- call ClearBox
- hlcoord 1, 9
- ld de, UnownDexVacantString
- call PlaceString
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, $31 tiles
- xor a
- call ByteFill
- ld hl, VTiles2 tile $31
- ld de, sScratch
- ld c, $31
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ld c, 20
- call DelayFrames
- ret
-; 16d57
-
-AlphRuinsStampString:
- db " ALPH RUINS STAMP@"
-
-UnownDexDoWhatString:
- db "Do what?@"
-
-UnownDexMenuString:
- db "♂ PRINT"
- next "♀ CANCEL"
- next "← PREVIOUS"
- next "→ NEXT"
- db "@"
-
-UnownDexVacantString:
- db "VACANT@"
-; 16d9c
-
-UnownDexATile: ; 16d9c
-INCBIN "gfx/printer/bold_a.1bpp"
-UnownDexBTile: ; 16da4
-INCBIN "gfx/printer/bold_b.1bpp"
-; 16dac
-
-PlaceUnownPrinterFrontpic: ; 16dac
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 7, 11
- ld a, $31
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- ret
-; 16dc7
diff --git a/event/print_unown_2.asm b/event/print_unown_2.asm
deleted file mode 100644
index 057db5176..000000000
--- a/event/print_unown_2.asm
+++ /dev/null
@@ -1,111 +0,0 @@
-RotateUnownFrontpic: ; e0000
-; something to do with Unown printer
- push de
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, 0
-.loop
- push bc
- push hl
- push bc
- ld de, wd002
- call .Copy
- call .Rotate
- ld hl, UnownPrinter_OverworldMapRectangle
- pop bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, wd012
- call .Copy
- pop hl
- ld bc, $10
- add hl, bc
- pop bc
- inc c
- ld a, c
- cp 7 * 7
- jr c, .loop
-
- ld hl, OverworldMap
- ld de, sScratch
- ld bc, 7 * 7 tiles
- call CopyBytes
- pop hl
- ld de, sScratch
- ld c, 7 * 7
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ret
-
-.Copy: ; e004e
- ld c, $10
-.loop_copy
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop_copy
- ret
-
-.Rotate: ; e0057
- ld hl, wd012
- ld e, %10000000
- ld d, 8
-.loop_decompress
- push hl
- ld hl, wd002
- call .CountSetBit
- pop hl
- ld a, b
- ld [hli], a
- push hl
- ld hl, wd003
- call .CountSetBit
- pop hl
- ld a, b
- ld [hli], a
- srl e
- dec d
- jr nz, .loop_decompress
- ret
-
-.CountSetBit: ; e0078
- ld b, 0
- ld c, 8
-.loop_count
- ld a, [hli]
- and e
- jr z, .clear
- scf
- jr .apply
-
-.clear
- and a
-
-.apply
- rr b
- inc hl
- dec c
- jr nz, .loop_count
- ret
-
-overworldmaprect: MACRO
-y = 0
-rept \1
-x = \1 * (\2 +- 1) + y
-rept \2
- dw OverworldMap tile x
-x = x +- \2
-endr
-y = y + 1
-endr
-endm
-
-UnownPrinter_OverworldMapRectangle: ; e008b
- overworldmaprect 7, 7
diff --git a/event/sacred_ash.asm b/event/sacred_ash.asm
deleted file mode 100755
index cc46eac9f..000000000
--- a/event/sacred_ash.asm
+++ /dev/null
@@ -1,74 +0,0 @@
-
-_SacredAsh: ; 507e6
- ld a, $0
- ld [wItemEffectSucceeded], a
- call CheckAnyFaintedMon
- ret nc
-
- ld hl, SacredAshScript
- call QueueScript
- ld a, $1
- ld [wItemEffectSucceeded], a
- ret
-; 507fb
-
-CheckAnyFaintedMon: ; 507fb
- ld de, PARTYMON_STRUCT_LENGTH
- ld bc, PartySpecies
- ld hl, PartyMon1HP
- ld a, [PartyCount]
- and a
- ret z
-
-.loop
- push af
- push hl
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .next
-
- ld a, [hli]
- or [hl]
- jr z, .done
-
-.next
- pop hl
- add hl, de
- pop af
- dec a
- jr nz, .loop
- xor a
- ret
-
-.done
- pop hl
- pop af
- scf
- ret
-; 50821
-
-SacredAshScript: ; 0x50821
- special HealParty
- reloadmappart
- playsound SFX_WARP_TO
- special FadeOutPalettes
- special FadeInPalettes
- special FadeOutPalettes
- special FadeInPalettes
- special FadeOutPalettes
- special FadeInPalettes
- waitsfx
- writetext UnknownText_0x50845
- playsound SFX_CAUGHT_MON
- waitsfx
- waitbutton
- closetext
- end
-; 0x50845
-
-UnknownText_0x50845: ; 0x50845
- ; 's #MON were all healed!
- text_jump UnknownText_0x1c0b65
- db "@"
-; 0x5084a
diff --git a/event/special.asm b/event/special.asm
deleted file mode 100755
index d28d0de64..000000000
--- a/event/special.asm
+++ /dev/null
@@ -1,235 +0,0 @@
-SpecialGiveShuckle: ; 7305
-
-; Adding to the party.
- xor a
- ld [MonType], a
-
-; Level 15 Shuckle.
- ld a, SHUCKLE
- ld [CurPartySpecies], a
- ld a, 15
- ld [CurPartyLevel], a
-
- predef TryAddMonToParty
- jr nc, .NotGiven
-
-; Caught data.
- ld b, 0
- farcall SetGiftPartyMonCaughtData
-
-; Holding a Berry.
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [PartyCount]
- dec a
- push af
- push bc
- ld hl, PartyMon1Item
- call AddNTimes
- ld [hl], BERRY
- pop bc
- pop af
-
-; OT ID.
- ld hl, PartyMon1ID
- call AddNTimes
- ld a, $2
- ld [hli], a
- ld [hl], $6
-
-; Nickname.
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonNicknames
- call SkipNames
- ld de, SpecialShuckleNick
- call CopyName2
-
-; OT.
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld de, SpecialShuckleOT
- call CopyName2
-
-; Engine flag for this event.
- ld hl, DailyFlags
- set 5, [hl]
-; setflag ENGINE_SHUCKLE_GIVEN
- ld a, 1
- ld [ScriptVar], a
- ret
-
-.NotGiven:
- xor a
- ld [ScriptVar], a
- ret
-
-SpecialShuckleOT:
- db "MANIA@"
-SpecialShuckleNick:
- db "SHUCKIE@"
-
-SpecialReturnShuckle: ; 737e
- farcall SelectMonFromParty
- jr c, .refused
-
- ld a, [CurPartySpecies]
- cp SHUCKLE
- jr nz, .DontReturn
-
- ld a, [CurPartyMon]
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
-
-; OT ID
- ld a, [hli]
- cp HIGH(00518)
- jr nz, .DontReturn
- ld a, [hl]
- cp LOW(00518)
- jr nz, .DontReturn
-
-; OT
- ld a, [CurPartyMon]
- ld hl, PartyMonOT
- call SkipNames
- ld de, SpecialShuckleOT
-.CheckOT:
- ld a, [de]
- cp [hl]
- jr nz, .DontReturn
- cp "@"
- jr z, .done
- inc de
- inc hl
- jr .CheckOT
-
-.done
- farcall CheckCurPartyMonFainted
- jr c, .fainted
- ld a, [CurPartyMon]
- ld hl, PartyMon1Happiness
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld a, [hl]
- cp 150
- ld a, $3
- jr nc, .HappyToStayWithYou
- xor a ; take from pc
- ld [wPokemonWithdrawDepositParameter], a
- callfar RemoveMonFromPartyOrBox
- ld a, $2
-.HappyToStayWithYou:
- ld [ScriptVar], a
- ret
-
-.refused
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.DontReturn:
- xor a
- ld [ScriptVar], a
- ret
-
-.fainted
- ld a, $4
- ld [ScriptVar], a
- ret
-
-Special_BillsGrandfather: ; 73f7
- farcall SelectMonFromParty
- jr c, .cancel
- ld a, [CurPartySpecies]
- ld [ScriptVar], a
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- jp CopyPokemonName_Buffer1_Buffer3
-
-.cancel
- xor a
- ld [ScriptVar], a
- ret
-
-Special_YoungerHaircutBrother: ; 7413
- ld hl, Data_YoungerHaircutBrother
- jr MassageOrHaircut
-
-Special_OlderHaircutBrother: ; 7418
- ld hl, Data_OlderHaircutBrother
- jr MassageOrHaircut
-
-Special_DaisyMassage: ; 741d
- ld hl, Data_DaisyMassage
-
-MassageOrHaircut: ; 7420
- push hl
- farcall SelectMonFromParty
- pop hl
- jr c, .nope
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
- push hl
- call GetCurNick
- call CopyPokemonName_Buffer1_Buffer3
- pop hl
- call Random
-; Bug: Subtracting $ff from $ff fails to set c.
-; This can result in overflow into the next data array.
-; In the case of getting a massage from Daisy, we bleed
-; into CopyPokemonName_Buffer1_Buffer3, which passes
-; $d0 to ChangeHappiness and returns $73 to the script.
-; The end result is that there is a 0.4% chance your
-; Pokemon's happiness will not change at all.
-.loop
- sub [hl]
- jr c, .ok
- inc hl
- inc hl
- inc hl
- jr .loop
-
-.ok
- inc hl
- ld a, [hli]
- ld [ScriptVar], a
- ld c, [hl]
- call ChangeHappiness
- ret
-
-.nope
- xor a
- ld [ScriptVar], a
- ret
-
-.egg
- ld a, 1
- ld [ScriptVar], a
- ret
-
-Data_YoungerHaircutBrother: ; 7459
- db $4c, 2, HAPPINESS_YOUNGCUT1 ; 30% chance
- db $80, 3, HAPPINESS_YOUNGCUT2 ; 20% chance
- db $ff, 4, HAPPINESS_YOUNGCUT3 ; 50% chance
-
-Data_OlderHaircutBrother: ; 7462
- db $9a, 2, HAPPINESS_OLDERCUT1 ; 60% chance
- db $4c, 3, HAPPINESS_OLDERCUT2 ; 10% chance
- db $ff, 4, HAPPINESS_OLDERCUT3 ; 30% chance
-
-Data_DaisyMassage: ; 746b
- db $ff, 2, HAPPINESS_MASSAGE ; 99.6% chance
-
-CopyPokemonName_Buffer1_Buffer3: ; 746e
- ld hl, StringBuffer1
- ld de, StringBuffer3
- ld bc, PKMN_NAME_LENGTH
- jp CopyBytes
-
-Predef1: ; 747a
-; not used
- ret
diff --git a/event/squirtbottle.asm b/event/squirtbottle.asm
deleted file mode 100755
index 1134f1bb0..000000000
--- a/event/squirtbottle.asm
+++ /dev/null
@@ -1,47 +0,0 @@
-_Squirtbottle: ; 50730
- ld hl, .SquirtbottleScript
- call QueueScript
- ld a, $1
- ld [wItemEffectSucceeded], a
- ret
-
-.SquirtbottleScript:
- reloadmappart
- special UpdateTimePals
- callasm .CheckCanUseSquirtbottle
- iffalse .NothingHappenedScript
- farjump WateredWeirdTreeScript
-
-.NothingHappenedScript:
- jumptext .NothingHappenedText
-
-.NothingHappenedText:
- ; sprinkled water. But nothing happened…
- text_jump UnknownText_0x1c0b3b
- db "@"
-
-.CheckCanUseSquirtbottle:
- ld a, [MapGroup]
- cp GROUP_ROUTE_36
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_ROUTE_36
- jr nz, .nope
-
- farcall GetFacingObject
- jr c, .nope
-
- ld a, d
- cp SPRITEMOVEDATA_SUDOWOODO
- jr nz, .nope
-
- ld a, 1
- ld [ScriptVar], a
- ret
-
-.nope
- xor a
- ld [ScriptVar], a
- ret
-; 50779
diff --git a/event/std_collision.asm b/event/std_collision.asm
deleted file mode 100644
index 79dbc71f1..000000000
--- a/event/std_collision.asm
+++ /dev/null
@@ -1,29 +0,0 @@
-CheckFacingTileForStdScript:: ; 1365b
-; Checks to see if the tile you're facing has a std script associated with it. If so, executes the script and returns carry.
- ld a, c
- ld de, 3
- ld hl, TileCollisionStdScripts
- call IsInArray
- jr nc, .notintable
-
- ld a, jumpstd_command
- ld [wJumpStdScriptBuffer], a
- inc hl
- ld a, [hli]
- ld [wJumpStdScriptBuffer + 1], a
- ld a, [hli]
- ld [wJumpStdScriptBuffer + 2], a
- ld a, BANK(Script_JumpStdFromRAM)
- ld hl, Script_JumpStdFromRAM
- call CallScript
- scf
- ret
-
-.notintable
- xor a
- ret
-
-INCLUDE "data/collision_stdscripts.asm"
-
-Script_JumpStdFromRAM: ; 0x1369a
- jump wJumpStdScriptBuffer
diff --git a/event/sweet_scent.asm b/event/sweet_scent.asm
deleted file mode 100755
index 77567488c..000000000
--- a/event/sweet_scent.asm
+++ /dev/null
@@ -1,75 +0,0 @@
-SweetScentFromMenu: ; 506bc
- ld hl, .SweetScent
- call QueueScript
- ld a, $1
- ld [wFieldMoveSucceeded], a
- ret
-; 506c8
-
-.SweetScent: ; 0x506c8
- reloadmappart
- special UpdateTimePals
- callasm GetPartyNick
- writetext UnknownText_0x50726
- waitbutton
- callasm SweetScentEncounter
- iffalse SweetScentNothing
- checkflag ENGINE_BUG_CONTEST_TIMER
- iftrue .BugCatchingContest
- randomwildmon
- startbattle
- reloadmapafterbattle
- end
-; 0x506e5
-
-.BugCatchingContest: ; 0x506e5
- farjump BugCatchingContestBattleScript
-; 0x506e9
-
-SweetScentNothing: ; 0x506e9
- writetext UnknownText_0x5072b
- waitbutton
- closetext
- end
-; 0x506ef
-
-SweetScentEncounter: ; 506ef
- farcall CanUseSweetScent
- jr nc, .no_battle
- ld hl, StatusFlags2
- bit 2, [hl]
- jr nz, .not_in_bug_contest
- farcall GetMapEncounterRate
- ld a, b
- and a
- jr z, .no_battle
- farcall ChooseWildEncounter
- jr nz, .no_battle
- jr .start_battle
-
-.not_in_bug_contest
- farcall ChooseWildEncounter_BugContest
-
-.start_battle
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.no_battle
- xor a
- ld [ScriptVar], a
- ld [BattleType], a
- ret
-; 50726
-
-UnknownText_0x50726: ; 0x50726
- ; used SWEET SCENT!
- text_jump UnknownText_0x1c0b03
- db "@"
-; 0x5072b
-
-UnknownText_0x5072b: ; 0x5072b
- ; Looks like there's nothing here…
- text_jump UnknownText_0x1c0b1a
- db "@"
-; 0x50730
diff --git a/event/unown.asm b/event/unown.asm
deleted file mode 100644
index 6c0e972f8..000000000
--- a/event/unown.asm
+++ /dev/null
@@ -1,327 +0,0 @@
-SpecialHoOhChamber: ; 0x8addb
- ld hl, PartySpecies
- ld a, [hl]
- cp HO_OH ; is Ho-oh the first Pokémon in the party?
- jr nz, .done ; if not, we're done
- call GetSecondaryMapHeaderPointer
- ld de, EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-.done
- ret
-; 0x8adef
-
-SpecialOmanyteChamber: ; 8adef
- call GetSecondaryMapHeaderPointer
- ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- and a
- jr nz, .nope
-
- ld a, WATER_STONE
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- jr c, .open
-
- ld a, [PartyCount]
- ld b, a
- inc b
-.loop
- dec b
- jr z, .nope
- ld a, b
- dec a
- ld [CurPartyMon], a
- push bc
- ld a, MON_ITEM
- call GetPartyParamLocation
- pop bc
- ld a, [hl]
- cp WATER_STONE
- jr nz, .loop
-
-.open
- call GetSecondaryMapHeaderPointer
- ld de, EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-
-.nope
- ret
-; 8ae30
-
-SpecialAerodactylChamber: ; 8ae30
- push de
- push bc
-
- call GetSecondaryMapHeaderPointer
- ld a, h
- cp HIGH(RuinsOfAlphAerodactylChamber_SecondMapHeader)
- jr nz, .nope
- ld a, l
- cp LOW(RuinsOfAlphAerodactylChamber_SecondMapHeader)
- jr nz, .nope
-
- ld de, EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-
- scf
- jr .done
-
-.nope
- and a
-
-.done
- pop bc
- pop de
- ret
-; 8ae4e
-
-SpecialKabutoChamber: ; 8ae4e
- push hl
- push de
-
- call GetSecondaryMapHeaderPointer
- ld a, h
- cp HIGH(RuinsOfAlphKabutoChamber_SecondMapHeader)
- jr nz, .done
- ld a, l
- cp LOW(RuinsOfAlphKabutoChamber_SecondMapHeader)
- jr nz, .done
-
- ld de, EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
- ld b, SET_FLAG
- call EventFlagAction
-
-.done
- pop de
- pop hl
- ret
-; 8ae68
-
-Special_DisplayUnownWords: ; 8ae68
- ld a, [ScriptVar]
- ld hl, .MenuDataHeader_Escape
- and a
- jr z, .load
-
- ld d, $0
- ld e, $5
-.loop
- add hl, de
- dec a
- jr nz, .loop
-
-.load
- call LoadMenuDataHeader
- xor a
- ld [hBGMapMode], a
- call MenuBox
- call UpdateSprites
- call ApplyTilemap
- call MenuBoxCoord2Tile
- inc hl
- ld d, 0
- ld e, SCREEN_WIDTH
- add hl, de
- add hl, de
- ld a, [ScriptVar]
- ld c, a
- ld de, .UnownText
- and a
- jr z, .copy
-.loop2
- ld a, [de]
- inc de
- cp $ff
- jr nz, .loop2
- dec c
- jr nz, .loop2
-.copy
- call .CopyWord
- ld bc, AttrMap - TileMap
- add hl, bc
- call .FillAttr
- call WaitBGMap2
- call JoyWaitAorB
- call PlayClickSFX
- call CloseWindow
- ret
-; 8aebc
-
-.UnownText: ; 8aebc
-
-unownwall: MACRO
-rept _NARG
-if \1 == "-"
-x = $64
-else
-if \1 >= "Y"
-x = 2 * (\1 - "Y") + $60
-else
-if \1 >= "Q"
-x = 2 * (\1 - "Q") + $40
-else
-if \1 >= "I"
-x = 2 * (\1 - "I") + $20
-else
-x = 2 * (\1 - "A")
-endc
-endc
-endc
-endc
- db x
-shift
-endr
- db $ff
-endm
-
-.UnownText_Escape:
- ; db $08, $44, $04, $00, $2e, $08, $ff
- unownwall "E", "S", "C", "A", "P", "E"
-.UnownText_Light:
- ; db $26, $20, $0c, $0e, $46, $ff
- unownwall "L", "I", "G", "H", "T"
-.UnownText_Water:
- ; db $4c, $00, $46, $08, $42, $ff
- unownwall "W", "A", "T", "E", "R"
-.UnownText_Ho_Oh:
- ; db $0e, $2c, $64, $2c, $0e, $ff
- unownwall "H", "O", "-", "O", "H"
-; 8aed5
-
-.MenuDataHeader_Escape: ; 0x8aed5
- db $40 ; flags
- db 04, 03 ; start coords
- db 09, 16 ; end coords
-
-.MenuDataHeader_Light: ; 0x8aeda
- db $40 ; flags
- db 04, 04 ; start coords
- db 09, 15 ; end coords
-
-.MenuDataHeader_Water: ; 0x8aedf
- db $40 ; flags
- db 04, 04 ; start coords
- db 09, 15 ; end coords
-
-.MenuDataHeader_Ho_Oh: ; 0x8aee4
- db $40 ; flags
- db 04, 04 ; start coords
- db 09, 15 ; end coords
-; 8aee9
-
-.FillAttr: ; 8aee9
- ld a, [de]
- cp $ff
- ret z
- cp $60
- ld a, VRAM_BANK_1 | PAL_BG_BROWN
- jr c, .got_pal
- ld a, PAL_BG_BROWN
-
-.got_pal
- call .PlaceSquare
- inc hl
- inc hl
- inc de
- jr .FillAttr
-; 8aefd
-
-.PlaceSquare: ; 8aefd
- push hl
- ld [hli], a
- ld [hld], a
- ld b, 0
- ld c, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- ld [hl], a
- pop hl
- ret
-; 8af09
-
-.CopyWord: ; 8af09
- push hl
- push de
-.word_loop
- ld a, [de]
- cp $ff
- jr z, .word_done
- ld c, a
- call .ConvertChar
- inc hl
- inc hl
- inc de
- jr .word_loop
-
-.word_done
- pop de
- pop hl
- ret
-; 8af1c
-
-.ConvertChar: ; 8af1c
- push hl
- ld a, c
- cp $60
- jr z, .Tile60
- cp $62
- jr z, .Tile62
- cp $64
- jr z, .Tile64
- ld [hli], a
- inc a
- ld [hld], a
- dec a
- ld b, 0
- ld c, SCREEN_WIDTH
- add hl, bc
- ld c, $10
- add c
- ld [hli], a
- inc a
- ld [hl], a
- pop hl
- ret
-
-.Tile60:
- ld [hl], $5b
- inc hl
- ld [hl], $5c
- ld bc, SCREEN_WIDTH - 1
- add hl, bc
- ld [hl], $4d
- inc hl
- ld [hl], $5d
- pop hl
- ret
-
-.Tile62:
- ld [hl], $4e
- inc hl
- ld [hl], $4f
- ld bc, SCREEN_WIDTH - 1
- add hl, bc
- ld [hl], $5e
- inc hl
- ld [hl], $5f
- pop hl
- ret
-
-.Tile64:
- ld [hl], $2
- inc hl
- ld [hl], $3
- ld bc, SCREEN_WIDTH - 1
- add hl, bc
- ld [hl], $3
- inc hl
- ld [hl], $2
- pop hl
- ret
-; 8af6b
diff --git a/event/whiteout.asm b/event/whiteout.asm
deleted file mode 100755
index a9d6f900e..000000000
--- a/event/whiteout.asm
+++ /dev/null
@@ -1,82 +0,0 @@
-Script_BattleWhiteout:: ; 0x124c1
- callasm BattleBGMap
- jump Script_Whiteout
-; 0x124c8
-
-Script_OverworldWhiteout:: ; 0x124c8
- refreshscreen $0
- callasm OverworldBGMap
-
-Script_Whiteout: ; 0x124ce
- writetext .WhitedOutText
- waitbutton
- special FadeOutPalettes
- pause 40
- special HealParty
- checkflag ENGINE_BUG_CONTEST_TIMER
- iftrue .bug_contest
- callasm HalveMoney
- callasm GetWhiteoutSpawn
- farscall Script_AbortBugContest
- special WarpToSpawnPoint
- newloadmap MAPSETUP_WARP
- end_all
-
-.bug_contest
- jumpstd bugcontestresultswarp
-; 0x124f5
-
-.WhitedOutText: ; 0x124f5
- ; is out of useable #MON! whited out!
- text_jump UnknownText_0x1c0a4e
- db "@"
-; 0x124fa
-
-OverworldBGMap: ; 124fa
- call ClearPalettes
- call ClearScreen
- call WaitBGMap2
- call HideSprites
- call RotateThreePalettesLeft
- ret
-; 1250a
-
-BattleBGMap: ; 1250a
- ld b, SCGB_BATTLE_GRAYSCALE
- call GetSGBLayout
- call SetPalettes
- ret
-; 12513
-
-HalveMoney: ; 12513
- farcall TrainerRankings_WhiteOuts
-
-; Halve the player's money.
- ld hl, Money
- ld a, [hl]
- srl a
- ld [hli], a
- ld a, [hl]
- rra
- ld [hli], a
- ld a, [hl]
- rra
- ld [hl], a
- ret
-; 12527
-
-
-GetWhiteoutSpawn: ; 12527
- ld a, [wLastSpawnMapGroup]
- ld d, a
- ld a, [wLastSpawnMapNumber]
- ld e, a
- farcall IsSpawnPoint
- ld a, c
- jr c, .yes
- xor a ; SPAWN_HOME
-
-.yes
- ld [DefaultSpawnpoint], a
- ret
-; 1253d