diff options
| author | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-26 21:55:57 -0500 |
|---|---|---|
| committer | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-26 21:55:57 -0500 |
| commit | dae16acd6f4e2e2c177e3776be6ed549af070c4f (patch) | |
| tree | 2577502f3ccc185e772ef121ba52fa3fddfd95c2 /event | |
| parent | 2a565f747ccb8099f4057548a6d598d538e6b991 (diff) | |
event/ → events/, and move some appropriate engine/ files there
Diffstat (limited to 'event')
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 |
