Merge pull request #2229 from AsparagusEduardo/RHH_MergedBranchUltimate
Merged branch
20
INSTALL.md
@ -44,15 +44,15 @@ WSL1 is the preferred terminal to build **pokeemerald**. The following instructi
|
||||
3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice.
|
||||
<details>
|
||||
<summary><i>Note for advanced users...</i></summary>
|
||||
|
||||
> You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested.
|
||||
|
||||
> You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested.
|
||||
</details>
|
||||
|
||||
4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution.
|
||||
<details>
|
||||
<summary><i>Notes...</i></summary>
|
||||
|
||||
> Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog.
|
||||
> Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog.
|
||||
> Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number).
|
||||
</details>
|
||||
|
||||
@ -102,8 +102,8 @@ cd /mnt/c/Users/<user>/Desktop/decomps
|
||||
<details>
|
||||
<summary><i>Notes...</i></summary>
|
||||
|
||||
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
|
||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
|
||||
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
|
||||
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
|
||||
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||
</details>
|
||||
|
||||
@ -213,8 +213,8 @@ Note that the directory **must exist** in Windows. If you want to store pokeemer
|
||||
<details>
|
||||
<summary><i>Notes...</i></summary>
|
||||
|
||||
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
|
||||
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
|
||||
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
|
||||
</details>
|
||||
|
||||
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
|
||||
@ -283,8 +283,8 @@ Note that the directory **must exist** in the folder system. If you want to stor
|
||||
|
||||
<details>
|
||||
<summary><i>Note..</i>.</summary>
|
||||
|
||||
> Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"`
|
||||
|
||||
> Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"`
|
||||
</details>
|
||||
|
||||
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
|
||||
@ -305,7 +305,7 @@ Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to
|
||||
> then you will have to install devkitARM. Install all the above packages except binutils-arm-none-eabi, and follow the instructions to
|
||||
> [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions).
|
||||
</details>
|
||||
|
||||
|
||||
### Arch Linux
|
||||
Run this command as root to install the necessary packages:
|
||||
```bash
|
||||
|
||||
@ -676,7 +676,7 @@
|
||||
.byte 0x77
|
||||
.endm
|
||||
|
||||
.macro faintifabilitynotdamp
|
||||
.macro tryexplosion
|
||||
.byte 0x78
|
||||
.endm
|
||||
|
||||
@ -1044,7 +1044,7 @@
|
||||
.byte 0xc8
|
||||
.endm
|
||||
|
||||
.macro jumpifattackandspecialattackcannotfall ptr:req
|
||||
.macro trymemento ptr:req
|
||||
.byte 0xc9
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
@ -277,7 +277,7 @@
|
||||
.endm
|
||||
|
||||
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
|
||||
@ commands and specials. Calling EnableBothScriptContexts for instance will allow execution to continue.
|
||||
@ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue.
|
||||
.macro waitstate
|
||||
.byte 0x27
|
||||
.endm
|
||||
|
||||
@ -152,8 +152,8 @@
|
||||
create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT
|
||||
create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
|
||||
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
|
||||
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM
|
||||
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM
|
||||
create_movement_action lock_anim, MOVEMENT_ACTION_LOCK_ANIM
|
||||
create_movement_action unlock_anim, MOVEMENT_ACTION_UNLOCK_ANIM
|
||||
create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE
|
||||
create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
|
||||
create_movement_action levitate, MOVEMENT_ACTION_LEVITATE
|
||||
|
||||
@ -472,8 +472,8 @@ BattleFrontier_BattlePalaceLobby_Text_FeatWillBeRecorded:
|
||||
|
||||
@ Unused
|
||||
BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak:
|
||||
.string "For the feat of your 7-win streak,\n"
|
||||
.string "we present you with Battle Point(s).$"
|
||||
.string "For the feat of your 7-win streak,\n"
|
||||
.string "we present you with Battle Point(s).$"
|
||||
|
||||
BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize:
|
||||
.string "You seem to have no space for\n"
|
||||
|
||||
@ -33,8 +33,8 @@ EverGrandeCity_ChampionsRoom_EventScript_EnterRoom::
|
||||
waitmovement 0
|
||||
setvar VAR_TEMP_1, 1
|
||||
goto EverGrandeCity_ChampionsRoom_EventScript_Wallace
|
||||
releaseall
|
||||
end
|
||||
releaseall
|
||||
end
|
||||
|
||||
EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace:
|
||||
walk_up
|
||||
|
||||
@ -19,7 +19,7 @@ FortreeCity_DecorationShop_EventScript_ClerkDesks::
|
||||
release
|
||||
end
|
||||
|
||||
.align 2
|
||||
.align 2
|
||||
FortreeCity_DecorationShop_PokemartDecor_Desks:
|
||||
.2byte DECOR_SMALL_DESK
|
||||
.2byte DECOR_POKEMON_DESK
|
||||
|
||||
@ -144,7 +144,7 @@ Route111_EventScript_RootFossilDisappeared::
|
||||
|
||||
@ Unused
|
||||
Route111_Movement_PlayerFall::
|
||||
store_lock_anim
|
||||
lock_anim
|
||||
walk_fast_down
|
||||
walk_fast_down
|
||||
walk_fast_down
|
||||
|
||||
@ -315,7 +315,7 @@ MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory::
|
||||
.string "the HOENN region!$"
|
||||
|
||||
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle::
|
||||
.string "The BERRY-Planting TRAINER$"
|
||||
.string "The BERRY-Planting TRAINER$"
|
||||
|
||||
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction::
|
||||
.string "Planted BERRIES$"
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
.include "asm/macros/m4a.inc"
|
||||
.include "asm/macros/music_voice.inc"
|
||||
|
||||
.include "include/constants/pokemon_config.h"
|
||||
.include "sound/voice_groups.inc"
|
||||
.include "sound/keysplit_tables.inc"
|
||||
.include "sound/programmable_wave_data.inc"
|
||||
|
||||
@ -1,71 +1,71 @@
|
||||
EventTicket_Text_OldSeaMapTooFar:
|
||||
.string "What's up, youngster?\p"
|
||||
.string "What, it's you who's supposed to have\n"
|
||||
.string "a tattered old map?\p"
|
||||
.string "Let's have a look.\n"
|
||||
.string "… … … … … …\p"
|
||||
.string "Boy, this is quite a ways away.\n"
|
||||
.string "I'm afraid I can't help you…$"
|
||||
.string "What's up, youngster?\p"
|
||||
.string "What, it's you who's supposed to have\n"
|
||||
.string "a tattered old map?\p"
|
||||
.string "Let's have a look.\n"
|
||||
.string "… … … … … …\p"
|
||||
.string "Boy, this is quite a ways away.\n"
|
||||
.string "I'm afraid I can't help you…$"
|
||||
|
||||
EventTicket_Text_BrineyHoldOnASecond:
|
||||
.string "BRINEY: Hold on a second!\p"
|
||||
.string "What's the idea of turning down\n"
|
||||
.string "someone that I owe so much to?$"
|
||||
.string "BRINEY: Hold on a second!\p"
|
||||
.string "What's the idea of turning down\n"
|
||||
.string "someone that I owe so much to?$"
|
||||
|
||||
EventTicket_Text_BrineyLetsSail:
|
||||
.string "{PLAYER}{KUN}, I'm terribly sorry.\p"
|
||||
.string "You came to me seeking my help,\n"
|
||||
.string "and we almost turned you away.\p"
|
||||
.string "Well, let me make things right.\p"
|
||||
.string "We'll sail right away, of course!\p"
|
||||
.string "Let's find this island on\n"
|
||||
.string "this OLD SEA MAP!$"
|
||||
.string "{PLAYER}{KUN}, I'm terribly sorry.\p"
|
||||
.string "You came to me seeking my help,\n"
|
||||
.string "and we almost turned you away.\p"
|
||||
.string "Well, let me make things right.\p"
|
||||
.string "We'll sail right away, of course!\p"
|
||||
.string "Let's find this island on\n"
|
||||
.string "this OLD SEA MAP!$"
|
||||
|
||||
EventTicket_Text_OddTicketGetOnBoard:
|
||||
.string "Is it you who brought that odd\n"
|
||||
.string "ticket?\p"
|
||||
.string "Where you're trying to go is an island\n"
|
||||
.string "that's far, far away.\p"
|
||||
.string "No one knows what awaits there…\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!$"
|
||||
.string "Is it you who brought that odd\n"
|
||||
.string "ticket?\p"
|
||||
.string "Where you're trying to go is an island\n"
|
||||
.string "that's far, far away.\p"
|
||||
.string "No one knows what awaits there…\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!$"
|
||||
|
||||
FarawayIsland_Entrance_Text_SailorReturn:
|
||||
.string "CAPT. BRINEY can be so maddeningly\n"
|
||||
.string "fickle…\p"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
.string "CAPT. BRINEY can be so maddeningly\n"
|
||||
.string "fickle…\p"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
|
||||
BirthIsland_Harbor_Text_SailorReturn:
|
||||
.string "What an oddly shaped island, eh?\n"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
.string "What an oddly shaped island, eh?\n"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
|
||||
EventTicket_Text_OddTicketsWhereTo:
|
||||
.string "Is it you who brought those\n"
|
||||
.string "odd tickets?\p"
|
||||
.string "… … …Hm.\p"
|
||||
.string "These tickets will get you to islands\n"
|
||||
.string "that are far, far away.\p"
|
||||
.string "No one knows what awaits there,\n"
|
||||
.string "or what may happen there.\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!\n"
|
||||
.string "Where shall we sail first?$"
|
||||
.string "Is it you who brought those\n"
|
||||
.string "odd tickets?\p"
|
||||
.string "… … …Hm.\p"
|
||||
.string "These tickets will get you to islands\n"
|
||||
.string "that are far, far away.\p"
|
||||
.string "No one knows what awaits there,\n"
|
||||
.string "or what may happen there.\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!\n"
|
||||
.string "Where shall we sail first?$"
|
||||
|
||||
NavelRock_Harbor_Text_SailorReturn:
|
||||
.string "Did… Did you hear that?\n"
|
||||
.string "That low growling from deep in there.\p"
|
||||
.string "Are you sure it's safe?\n"
|
||||
.string "Do you think we should leave?$"
|
||||
.string "Did… Did you hear that?\n"
|
||||
.string "That low growling from deep in there.\p"
|
||||
.string "Are you sure it's safe?\n"
|
||||
.string "Do you think we should leave?$"
|
||||
|
||||
FarawayIsland_Entrance_Text_Sign:
|
||||
.string "The writing is fading as if it was\n"
|
||||
.string "written a long time ago…\p"
|
||||
.string "“…ber, 6th day\n"
|
||||
.string "If any human…sets foot here…\l"
|
||||
.string "again…et it be a kindhearted pers…\l"
|
||||
.string "…ith that hope, I depar…”$"
|
||||
.string "The writing is fading as if it was\n"
|
||||
.string "written a long time ago…\p"
|
||||
.string "“…ber, 6th day\n"
|
||||
.string "If any human…sets foot here…\l"
|
||||
.string "again…et it be a kindhearted pers…\l"
|
||||
.string "…ith that hope, I depar…”$"
|
||||
|
||||
FarawayIsland_Interior_Text_Mew:
|
||||
.string "Myuu…$"
|
||||
.string "Myuu…$"
|
||||
|
||||
@ -1,51 +1,51 @@
|
||||
gText_WouldYouLikeToRestYourPkmn::
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to rest your POKéMON?$"
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to rest your POKéMON?$"
|
||||
|
||||
gText_IllTakeYourPkmn::
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
|
||||
gText_RestoredPkmnToFullHealth::
|
||||
.string "Thank you for waiting.\p"
|
||||
.string "We've restored your POKéMON\n"
|
||||
.string "to full health.$"
|
||||
.string "Thank you for waiting.\p"
|
||||
.string "We've restored your POKéMON\n"
|
||||
.string "to full health.$"
|
||||
|
||||
gText_WeHopeToSeeYouAgain::
|
||||
.string "We hope to see you again!$"
|
||||
.string "We hope to see you again!$"
|
||||
|
||||
gText_WelcomeCutShort::
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to…$"
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to…$"
|
||||
|
||||
gText_NoticesGoldCard::
|
||||
.string "Th-that card…\n"
|
||||
.string "Could it be… The GOLD CARD?!\p"
|
||||
.string "Oh, the gold color is brilliant!\n"
|
||||
.string "The four stars seem to sparkle!\p"
|
||||
.string "I've seen several TRAINERS with\n"
|
||||
.string "a SILVER CARD before, but, {PLAYER},\l"
|
||||
.string "you're the first TRAINER I've ever\l"
|
||||
.string "seen with a GOLD CARD!\p"
|
||||
.string "Okay, {PLAYER}, please allow me\n"
|
||||
.string "the honor of resting your POKéMON!$"
|
||||
.string "Th-that card…\n"
|
||||
.string "Could it be… The GOLD CARD?!\p"
|
||||
.string "Oh, the gold color is brilliant!\n"
|
||||
.string "The four stars seem to sparkle!\p"
|
||||
.string "I've seen several TRAINERS with\n"
|
||||
.string "a SILVER CARD before, but, {PLAYER},\l"
|
||||
.string "you're the first TRAINER I've ever\l"
|
||||
.string "seen with a GOLD CARD!\p"
|
||||
.string "Okay, {PLAYER}, please allow me\n"
|
||||
.string "the honor of resting your POKéMON!$"
|
||||
|
||||
gText_YouWantTheUsual::
|
||||
.string "I'm delighted to see you, {PLAYER}!\n"
|
||||
.string "You want the usual, am I right?$"
|
||||
.string "I'm delighted to see you, {PLAYER}!\n"
|
||||
.string "You want the usual, am I right?$"
|
||||
|
||||
gText_IllTakeYourPkmn2::
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
|
||||
gText_ThankYouForWaiting::
|
||||
.string "Thank you for waiting.$"
|
||||
.string "Thank you for waiting.$"
|
||||
|
||||
gText_WeHopeToSeeYouAgain2::
|
||||
.string "We hope to see you again!$"
|
||||
.string "We hope to see you again!$"
|
||||
|
||||
@ -1,286 +1,286 @@
|
||||
SecretBase_Text_Trainer0Intro:
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Since you're already here, how would\n"
|
||||
.string "you like to battle?$"
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Since you're already here, how would\n"
|
||||
.string "you like to battle?$"
|
||||
|
||||
SecretBase_Text_Trainer0AcceptBattle:
|
||||
.string "Okay!\n"
|
||||
.string "Here we come!$"
|
||||
.string "Okay!\n"
|
||||
.string "Here we come!$"
|
||||
|
||||
SecretBase_Text_Trainer0DeclineBattle:
|
||||
.string "Hunh?\n"
|
||||
.string "Oh, you can't now…$"
|
||||
.string "Hunh?\n"
|
||||
.string "Oh, you can't now…$"
|
||||
|
||||
SecretBase_Text_Trainer0Defeated::
|
||||
.string "Waaargh! You're too strong!\n"
|
||||
.string "About me losing… Please keep it secret!$"
|
||||
.string "Waaargh! You're too strong!\n"
|
||||
.string "About me losing… Please keep it secret!$"
|
||||
|
||||
SecretBase_Text_Trainer0PostBattle:
|
||||
.string "What do you think of my SECRET BASE?\n"
|
||||
.string "Come visit me again tomorrow.$"
|
||||
.string "What do you think of my SECRET BASE?\n"
|
||||
.string "Come visit me again tomorrow.$"
|
||||
|
||||
SecretBase_Text_Trainer0PreChampion:
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Feel free to hang out!$"
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Feel free to hang out!$"
|
||||
|
||||
SecretBase_Text_Trainer5Intro:
|
||||
.string "There're a lot of places where\n"
|
||||
.string "you can make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?\p"
|
||||
.string "Oh, would you like to have a battle?$"
|
||||
.string "There're a lot of places where\n"
|
||||
.string "you can make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?\p"
|
||||
.string "Oh, would you like to have a battle?$"
|
||||
|
||||
SecretBase_Text_Trainer5AcceptBattle:
|
||||
.string "Okay, here goes!$"
|
||||
.string "Okay, here goes!$"
|
||||
|
||||
SecretBase_Text_Trainer5DeclineBattle:
|
||||
.string "Oh…\n"
|
||||
.string "You can't now, okay.$"
|
||||
.string "Oh…\n"
|
||||
.string "You can't now, okay.$"
|
||||
|
||||
SecretBase_Text_Trainer5Defeated::
|
||||
.string "Hmmm… It's our loss…\n"
|
||||
.string "But don't tell anyone!\l"
|
||||
.string "It's a confidential secret!$"
|
||||
.string "Hmmm… It's our loss…\n"
|
||||
.string "But don't tell anyone!\l"
|
||||
.string "It's a confidential secret!$"
|
||||
|
||||
SecretBase_Text_Trainer5PostBattle:
|
||||
.string "If you're in this area again,\n"
|
||||
.string "I hope you'll visit me.$"
|
||||
.string "If you're in this area again,\n"
|
||||
.string "I hope you'll visit me.$"
|
||||
|
||||
SecretBase_Text_Trainer5PreChampion:
|
||||
.string "There're a lot of places where you can\n"
|
||||
.string "make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?$"
|
||||
.string "There're a lot of places where you can\n"
|
||||
.string "make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?$"
|
||||
|
||||
SecretBase_Text_Trainer1Intro:
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "Oh! Were you thinking about\n"
|
||||
.string "taking this spot, too?\p"
|
||||
.string "I'll tell you what, you can have this\n"
|
||||
.string "spot if you can beat me.$"
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "Oh! Were you thinking about\n"
|
||||
.string "taking this spot, too?\p"
|
||||
.string "I'll tell you what, you can have this\n"
|
||||
.string "spot if you can beat me.$"
|
||||
|
||||
SecretBase_Text_Trainer1AcceptBattle:
|
||||
.string "Okay!\n"
|
||||
.string "I'm going to defend my SECRET BASE!$"
|
||||
.string "Okay!\n"
|
||||
.string "I'm going to defend my SECRET BASE!$"
|
||||
|
||||
SecretBase_Text_Trainer1DeclineBattle:
|
||||
.string "Hunh? Is that right?\n"
|
||||
.string "You're not interested in this spot?$"
|
||||
.string "Hunh? Is that right?\n"
|
||||
.string "You're not interested in this spot?$"
|
||||
|
||||
SecretBase_Text_Trainer1Defeated::
|
||||
.string "I can't keep going!\n"
|
||||
.string "I surrender!$"
|
||||
.string "I can't keep going!\n"
|
||||
.string "I surrender!$"
|
||||
|
||||
SecretBase_Text_Trainer1PostBattle:
|
||||
.string "Okay, when I move one day,\n"
|
||||
.string "this place will be yours!$"
|
||||
.string "Okay, when I move one day,\n"
|
||||
.string "this place will be yours!$"
|
||||
|
||||
SecretBase_Text_Trainer1PreChampion:
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "I waited a long time for it to open.\n"
|
||||
.string "I finally got to use it!$"
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "I waited a long time for it to open.\n"
|
||||
.string "I finally got to use it!$"
|
||||
|
||||
SecretBase_Text_Trainer6Intro:
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.\p"
|
||||
.string "Would you like to see how strong I am?$"
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.\p"
|
||||
.string "Would you like to see how strong I am?$"
|
||||
|
||||
SecretBase_Text_Trainer6AcceptBattle:
|
||||
.string "I'm going to go all out!$"
|
||||
.string "I'm going to go all out!$"
|
||||
|
||||
SecretBase_Text_Trainer6DeclineBattle:
|
||||
.string "Oh.\n"
|
||||
.string "Some other time, then!$"
|
||||
.string "Oh.\n"
|
||||
.string "Some other time, then!$"
|
||||
|
||||
SecretBase_Text_Trainer6Defeated::
|
||||
.string "Hmm… I've still got lots to learn.\n"
|
||||
.string "I have to study some more.$"
|
||||
.string "Hmm… I've still got lots to learn.\n"
|
||||
.string "I have to study some more.$"
|
||||
|
||||
SecretBase_Text_Trainer6PostBattle:
|
||||
.string "Thanks for battling with me.\n"
|
||||
.string "Please come back again tomorrow.$"
|
||||
.string "Thanks for battling with me.\n"
|
||||
.string "Please come back again tomorrow.$"
|
||||
|
||||
SecretBase_Text_Trainer6PreChampion:
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.$"
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.$"
|
||||
|
||||
SecretBase_Text_Trainer2Intro:
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.\p"
|
||||
.string "So, how would you like a battle?$"
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.\p"
|
||||
.string "So, how would you like a battle?$"
|
||||
|
||||
SecretBase_Text_Trainer2AcceptBattle:
|
||||
.string "That's the way!$"
|
||||
.string "That's the way!$"
|
||||
|
||||
SecretBase_Text_Trainer2DeclineBattle:
|
||||
.string "When you're ready, give me a shout!$"
|
||||
.string "When you're ready, give me a shout!$"
|
||||
|
||||
SecretBase_Text_Trainer2Defeated::
|
||||
.string "Aww! Done in!\n"
|
||||
.string "But it's still fun to battle!$"
|
||||
.string "Aww! Done in!\n"
|
||||
.string "But it's still fun to battle!$"
|
||||
|
||||
SecretBase_Text_Trainer2PostBattle:
|
||||
.string "Well, anyway, I should go buy some\n"
|
||||
.string "decorations and furniture.\p"
|
||||
.string "I want my SECRET BASE to be a place\n"
|
||||
.string "other people can enjoy.$"
|
||||
.string "Well, anyway, I should go buy some\n"
|
||||
.string "decorations and furniture.\p"
|
||||
.string "I want my SECRET BASE to be a place\n"
|
||||
.string "other people can enjoy.$"
|
||||
|
||||
SecretBase_Text_Trainer2PreChampion:
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.$"
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.$"
|
||||
|
||||
SecretBase_Text_Trainer7Intro:
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.\p"
|
||||
.string "If you would be so kind, will you battle\n"
|
||||
.string "with my POKéMON?$"
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.\p"
|
||||
.string "If you would be so kind, will you battle\n"
|
||||
.string "with my POKéMON?$"
|
||||
|
||||
SecretBase_Text_Trainer7AcceptBattle:
|
||||
.string "Thank you.\n"
|
||||
.string "Shall we begin?$"
|
||||
.string "Thank you.\n"
|
||||
.string "Shall we begin?$"
|
||||
|
||||
SecretBase_Text_Trainer7DeclineBattle:
|
||||
.string "Oh.\n"
|
||||
.string "How disappointing…$"
|
||||
.string "Oh.\n"
|
||||
.string "How disappointing…$"
|
||||
|
||||
SecretBase_Text_Trainer7Defeated::
|
||||
.string "I concede…$"
|
||||
.string "I concede…$"
|
||||
|
||||
SecretBase_Text_Trainer7PostBattle:
|
||||
.string "That was all in good fun!\n"
|
||||
.string "I should go enjoy shopping now.$"
|
||||
.string "That was all in good fun!\n"
|
||||
.string "I should go enjoy shopping now.$"
|
||||
|
||||
SecretBase_Text_Trainer7PreChampion:
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.$"
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.$"
|
||||
|
||||
SecretBase_Text_Trainer3Intro:
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?\p"
|
||||
.string "But since you found me, how about we\n"
|
||||
.string "have a battle?$"
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?\p"
|
||||
.string "But since you found me, how about we\n"
|
||||
.string "have a battle?$"
|
||||
|
||||
SecretBase_Text_Trainer3AcceptBattle:
|
||||
.string "I'm not going down easily!$"
|
||||
.string "I'm not going down easily!$"
|
||||
|
||||
SecretBase_Text_Trainer3DeclineBattle:
|
||||
.string "Oh… Are you maybe tired from searching\n"
|
||||
.string "for this place?$"
|
||||
.string "Oh… Are you maybe tired from searching\n"
|
||||
.string "for this place?$"
|
||||
|
||||
SecretBase_Text_Trainer3Defeated::
|
||||
.string "I went down…$"
|
||||
.string "I went down…$"
|
||||
|
||||
SecretBase_Text_Trainer3PostBattle:
|
||||
.string "Where's your SECRET BASE?\n"
|
||||
.string "I should go visit you there.$"
|
||||
.string "Where's your SECRET BASE?\n"
|
||||
.string "I should go visit you there.$"
|
||||
|
||||
SecretBase_Text_Trainer3PreChampion:
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?$"
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?$"
|
||||
|
||||
SecretBase_Text_Trainer8Intro:
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!\p"
|
||||
.string "In the meantime, want to battle?$"
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!\p"
|
||||
.string "In the meantime, want to battle?$"
|
||||
|
||||
SecretBase_Text_Trainer8AcceptBattle:
|
||||
.string "This is my SECRET BASE.\n"
|
||||
.string "I can't lose!$"
|
||||
.string "This is my SECRET BASE.\n"
|
||||
.string "I can't lose!$"
|
||||
|
||||
SecretBase_Text_Trainer8DeclineBattle:
|
||||
.string "I'll battle with you anytime.$"
|
||||
.string "I'll battle with you anytime.$"
|
||||
|
||||
SecretBase_Text_Trainer8Defeated::
|
||||
.string "Huh?\n"
|
||||
.string "Did I just lose?$"
|
||||
.string "Huh?\n"
|
||||
.string "Did I just lose?$"
|
||||
|
||||
SecretBase_Text_Trainer8PostBattle:
|
||||
.string "I won't lose at collecting decorations.\n"
|
||||
.string "Come visit again!$"
|
||||
.string "I won't lose at collecting decorations.\n"
|
||||
.string "Come visit again!$"
|
||||
|
||||
SecretBase_Text_Trainer8PreChampion:
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!$"
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!$"
|
||||
|
||||
SecretBase_Text_Trainer4Intro:
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "That's what I do.\n"
|
||||
.string "Want to battle with me?$"
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "That's what I do.\n"
|
||||
.string "Want to battle with me?$"
|
||||
|
||||
SecretBase_Text_Trainer4AcceptBattle:
|
||||
.string "Show me what you're made of!$"
|
||||
.string "Show me what you're made of!$"
|
||||
|
||||
SecretBase_Text_Trainer4DeclineBattle:
|
||||
.string "I guess there are times when you're not\n"
|
||||
.string "into it.$"
|
||||
.string "I guess there are times when you're not\n"
|
||||
.string "into it.$"
|
||||
|
||||
SecretBase_Text_Trainer4Defeated::
|
||||
.string "I know exactly what you're made of now.$"
|
||||
.string "I know exactly what you're made of now.$"
|
||||
|
||||
SecretBase_Text_Trainer4PostBattle:
|
||||
.string "We can both become stronger.\n"
|
||||
.string "Let's keep at it!$"
|
||||
.string "We can both become stronger.\n"
|
||||
.string "Let's keep at it!$"
|
||||
|
||||
SecretBase_Text_Trainer4PreChampion:
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "Every day is a great day.$"
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "Every day is a great day.$"
|
||||
|
||||
SecretBase_Text_Trainer9Intro:
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?\p"
|
||||
.string "Want to see my taste in battling?$"
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?\p"
|
||||
.string "Want to see my taste in battling?$"
|
||||
|
||||
SecretBase_Text_Trainer9AcceptBattle:
|
||||
.string "There's no holding back!$"
|
||||
.string "There's no holding back!$"
|
||||
|
||||
SecretBase_Text_Trainer9DeclineBattle:
|
||||
.string "I'll be happy to demonstrate my style\n"
|
||||
.string "anytime.$"
|
||||
.string "I'll be happy to demonstrate my style\n"
|
||||
.string "anytime.$"
|
||||
|
||||
SecretBase_Text_Trainer9Defeated::
|
||||
.string "You're supremely talented!\n"
|
||||
.string "Your power seems to be limitless…$"
|
||||
.string "You're supremely talented!\n"
|
||||
.string "Your power seems to be limitless…$"
|
||||
|
||||
SecretBase_Text_Trainer9PostBattle:
|
||||
.string "What did you think of my style?\n"
|
||||
.string "I'll keep on polishing it!$"
|
||||
.string "What did you think of my style?\n"
|
||||
.string "I'll keep on polishing it!$"
|
||||
|
||||
SecretBase_Text_Trainer9PreChampion:
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?$"
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?$"
|
||||
|
||||
32
gflib/bg.c
@ -33,7 +33,7 @@ struct BgConfig2
|
||||
u32 basePalette:4;
|
||||
u32 unk_3:18;
|
||||
|
||||
void* tilemap;
|
||||
void *tilemap;
|
||||
s32 bg_x;
|
||||
s32 bg_y;
|
||||
};
|
||||
@ -183,14 +183,14 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
|
||||
case 0x1:
|
||||
offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE;
|
||||
offset = destOffset + offset;
|
||||
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
|
||||
cursor = RequestDma3Copy(src, (void *)(offset + BG_VRAM), size, 0);
|
||||
if (cursor == -1)
|
||||
return -1;
|
||||
break;
|
||||
case 0x2:
|
||||
offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE;
|
||||
offset = destOffset + offset;
|
||||
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
|
||||
cursor = RequestDma3Copy(src, (void *)(offset + BG_VRAM), size, 0);
|
||||
if (cursor == -1)
|
||||
return -1;
|
||||
break;
|
||||
@ -372,7 +372,7 @@ void SetBgMode(u8 bgMode)
|
||||
SetBgModeInternal(bgMode);
|
||||
}
|
||||
|
||||
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset)
|
||||
u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset)
|
||||
{
|
||||
u16 tileOffset;
|
||||
u8 cursor;
|
||||
@ -422,7 +422,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
|
||||
if (!IsInvalidBg32(bg))
|
||||
{
|
||||
u16 paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2);
|
||||
cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, 0);
|
||||
cursor = RequestDma3Copy(src, (void *)(paletteOffset + BG_PLTT), size, 0);
|
||||
|
||||
if (cursor == -1)
|
||||
{
|
||||
@ -863,7 +863,7 @@ void UnsetBgTilemapBuffer(u8 bg)
|
||||
}
|
||||
}
|
||||
|
||||
void* GetBgTilemapBuffer(u8 bg)
|
||||
void *GetBgTilemapBuffer(u8 bg)
|
||||
{
|
||||
if (IsInvalidBg32(bg))
|
||||
return NULL;
|
||||
@ -906,7 +906,7 @@ void CopyBgTilemapBufferToVram(u8 bg)
|
||||
}
|
||||
}
|
||||
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height)
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height)
|
||||
{
|
||||
u16 destX16;
|
||||
u16 destY16;
|
||||
@ -923,20 +923,20 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
|
||||
{
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
|
||||
((u16 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *srcCopy++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BG_TYPE_AFFINE:
|
||||
{
|
||||
const u8 * srcCopy = src;
|
||||
const u8 *srcCopy = src;
|
||||
mode = GetBgMetricAffineMode(bg, 0x1);
|
||||
for (destY16 = destY; destY16 < (destY + height); destY16++)
|
||||
{
|
||||
for (destX16 = destX; destX16 < (destX + width); destX16++)
|
||||
{
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
|
||||
((u8 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *srcCopy++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -984,7 +984,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8
|
||||
{
|
||||
for (j = destX; j < (destX + rectWidth); j++)
|
||||
{
|
||||
*(u8*)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8*)(srcPtr) + tileOffset;
|
||||
*(u8 *)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8 *)(srcPtr) + tileOffset;
|
||||
srcPtr++;
|
||||
}
|
||||
srcPtr += (srcWidth - rectWidth);
|
||||
@ -1009,7 +1009,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width,
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
((u16*)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum;
|
||||
((u16 *)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1019,7 +1019,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width,
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum;
|
||||
((u8 *)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -1052,7 +1052,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0);
|
||||
CopyTileMapEntry(&firstTileNum, &((u16 *)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0);
|
||||
firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK);
|
||||
}
|
||||
}
|
||||
@ -1063,7 +1063,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
|
||||
{
|
||||
for (x16 = x; x16 < (x + width); x16++)
|
||||
{
|
||||
((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum;
|
||||
((u8 *)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum;
|
||||
firstTileNum = (firstTileNum & (MAPGRID_COLLISION_MASK | MAPGRID_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & MAPGRID_METATILE_ID_MASK);
|
||||
}
|
||||
}
|
||||
@ -1240,7 +1240,7 @@ bool32 IsInvalidBg32(u8 bg)
|
||||
|
||||
bool32 IsTileMapOutsideWram(u8 bg)
|
||||
{
|
||||
if (sGpuBgConfigs2[bg].tilemap > (void*)IWRAM_END)
|
||||
if (sGpuBgConfigs2[bg].tilemap > (void *)IWRAM_END)
|
||||
return TRUE;
|
||||
else if (sGpuBgConfigs2[bg].tilemap == NULL)
|
||||
return TRUE;
|
||||
|
||||
38
gflib/bg.h
@ -3,29 +3,29 @@
|
||||
|
||||
enum
|
||||
{
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
BG_ATTR_MAPBASEINDEX,
|
||||
BG_ATTR_SCREENSIZE,
|
||||
BG_ATTR_PALETTEMODE,
|
||||
BG_ATTR_MOSAIC,
|
||||
BG_ATTR_WRAPAROUND,
|
||||
BG_ATTR_PRIORITY,
|
||||
BG_ATTR_METRIC,
|
||||
BG_ATTR_TYPE,
|
||||
BG_ATTR_BASETILE,
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
BG_ATTR_MAPBASEINDEX,
|
||||
BG_ATTR_SCREENSIZE,
|
||||
BG_ATTR_PALETTEMODE,
|
||||
BG_ATTR_MOSAIC,
|
||||
BG_ATTR_WRAPAROUND,
|
||||
BG_ATTR_PRIORITY,
|
||||
BG_ATTR_METRIC,
|
||||
BG_ATTR_TYPE,
|
||||
BG_ATTR_BASETILE,
|
||||
};
|
||||
|
||||
enum {
|
||||
BG_TYPE_NORMAL,
|
||||
BG_TYPE_AFFINE,
|
||||
BG_TYPE_NONE = 0xFFFF
|
||||
BG_TYPE_NORMAL,
|
||||
BG_TYPE_AFFINE,
|
||||
BG_TYPE_NONE = 0xFFFF
|
||||
};
|
||||
|
||||
// Modes for ChangeBgX / ChangeBgY
|
||||
enum {
|
||||
BG_COORD_SET,
|
||||
BG_COORD_ADD,
|
||||
BG_COORD_SUB,
|
||||
BG_COORD_SET,
|
||||
BG_COORD_ADD,
|
||||
BG_COORD_SUB,
|
||||
};
|
||||
|
||||
// Modes for Unused_AdjustBgMosaic
|
||||
@ -62,7 +62,7 @@ void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
|
||||
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
|
||||
void InitBgFromTemplate(const struct BgTemplate *template);
|
||||
void SetBgMode(u8 bgMode);
|
||||
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset);
|
||||
u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
bool8 IsDma3ManagerBusyWithBgCopy(void);
|
||||
@ -79,10 +79,10 @@ void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dis
|
||||
u8 Unused_AdjustBgMosaic(u8 val, u8 mode);
|
||||
void SetBgTilemapBuffer(u8 bg, void *tilemap);
|
||||
void UnsetBgTilemapBuffer(u8 bg);
|
||||
void* GetBgTilemapBuffer(u8 bg);
|
||||
void *GetBgTilemapBuffer(u8 bg);
|
||||
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
|
||||
void CopyBgTilemapBufferToVram(u8 bg);
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height);
|
||||
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
|
||||
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
|
||||
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
|
||||
|
||||
@ -94,7 +94,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC
|
||||
static u8 IndexOfSpriteTileTag(u16 tag);
|
||||
static void AllocSpriteTileRange(u16 tag, u16 start, u16 count);
|
||||
static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset);
|
||||
static void UpdateSpriteMatrixAnchorPos(struct Sprite*, s32, s32);
|
||||
static void UpdateSpriteMatrixAnchorPos(struct Sprite *, s32, s32);
|
||||
|
||||
typedef void (*AnimFunc)(struct Sprite *);
|
||||
typedef void (*AnimCmdFunc)(struct Sprite *);
|
||||
@ -105,7 +105,7 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *);
|
||||
.y = DISPLAY_HEIGHT, \
|
||||
.affineMode = 0, \
|
||||
.objMode = 0, \
|
||||
.mosaic = 0, \
|
||||
.mosaic = FALSE, \
|
||||
.bpp = 0, \
|
||||
.shape = SPRITE_SHAPE(8x8), \
|
||||
.x = DISPLAY_WIDTH + 64, \
|
||||
@ -1201,7 +1201,7 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite)
|
||||
|
||||
// Used to shift a sprite's position as it scales.
|
||||
// Only used by the minigame countdown, so that for instance the numbers don't slide up as they squish down before jumping.
|
||||
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y)
|
||||
void SetSpriteMatrixAnchor(struct Sprite *sprite, s16 x, s16 y)
|
||||
{
|
||||
sprite->sAnchorX = x;
|
||||
sprite->sAnchorY = y;
|
||||
|
||||
@ -282,7 +282,7 @@ void FreeSpritePalette(struct Sprite *sprite);
|
||||
void FreeSpriteOamMatrix(struct Sprite *sprite);
|
||||
void DestroySpriteAndFreeResources(struct Sprite *sprite);
|
||||
void AnimateSprite(struct Sprite *sprite);
|
||||
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y);
|
||||
void SetSpriteMatrixAnchor(struct Sprite *sprite, s16 x, s16 y);
|
||||
void StartSpriteAnim(struct Sprite *sprite, u8 animNum);
|
||||
void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum);
|
||||
void SeekSpriteAnim(struct Sprite *sprite, u8 animCmdIndex);
|
||||
|
||||
@ -387,7 +387,7 @@ u8 *StringBraille(u8 *dest, const u8 *src)
|
||||
const u8 setBrailleFont[] = {
|
||||
EXT_CTRL_CODE_BEGIN,
|
||||
EXT_CTRL_CODE_FONT,
|
||||
6,
|
||||
FONT_BRAILLE,
|
||||
EOS
|
||||
};
|
||||
const u8 gotoLine2[] = {
|
||||
|
||||
14
gflib/text.c
@ -652,7 +652,7 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width)
|
||||
struct Window *window;
|
||||
struct Bitmap pixels_data;
|
||||
struct TextGlyph *glyph;
|
||||
u8* glyphHeight;
|
||||
u8 *glyphHeight;
|
||||
|
||||
if (sLastTextBgColor != TEXT_COLOR_TRANSPARENT)
|
||||
{
|
||||
@ -1684,7 +1684,7 @@ u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension)
|
||||
|
||||
static void DecompressGlyph_Small(u16 glyphId, bool32 isJapanese)
|
||||
{
|
||||
const u16* glyphs;
|
||||
const u16 *glyphs;
|
||||
|
||||
if (isJapanese == 1)
|
||||
{
|
||||
@ -1726,7 +1726,7 @@ static u32 GetGlyphWidth_Small(u16 glyphId, bool32 isJapanese)
|
||||
|
||||
static void DecompressGlyph_Narrow(u16 glyphId, bool32 isJapanese)
|
||||
{
|
||||
const u16* glyphs;
|
||||
const u16 *glyphs;
|
||||
|
||||
if (isJapanese == TRUE)
|
||||
{
|
||||
@ -1768,7 +1768,7 @@ static u32 GetGlyphWidth_Narrow(u16 glyphId, bool32 isJapanese)
|
||||
|
||||
static void DecompressGlyph_SmallNarrow(u16 glyphId, bool32 isJapanese)
|
||||
{
|
||||
const u16* glyphs;
|
||||
const u16 *glyphs;
|
||||
|
||||
if (isJapanese == TRUE)
|
||||
{
|
||||
@ -1810,7 +1810,7 @@ static u32 GetGlyphWidth_SmallNarrow(u16 glyphId, bool32 isJapanese)
|
||||
|
||||
static void DecompressGlyph_Short(u16 glyphId, bool32 isJapanese)
|
||||
{
|
||||
const u16* glyphs;
|
||||
const u16 *glyphs;
|
||||
|
||||
if (isJapanese == TRUE)
|
||||
{
|
||||
@ -1854,7 +1854,7 @@ static u32 GetGlyphWidth_Short(u16 glyphId, bool32 isJapanese)
|
||||
|
||||
static void DecompressGlyph_Normal(u16 glyphId, bool32 isJapanese)
|
||||
{
|
||||
const u16* glyphs;
|
||||
const u16 *glyphs;
|
||||
|
||||
if (isJapanese == TRUE)
|
||||
{
|
||||
@ -1896,7 +1896,7 @@ static u32 GetGlyphWidth_Normal(u16 glyphId, bool32 isJapanese)
|
||||
|
||||
static void DecompressGlyph_Bold(u16 glyphId)
|
||||
{
|
||||
const u16* glyphs;
|
||||
const u16 *glyphs;
|
||||
|
||||
glyphs = sFontBoldJapaneseGlyphs + (0x100 * (glyphId >> 4)) + (0x8 * (glyphId & 0xF));
|
||||
DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop);
|
||||
|
||||
@ -65,7 +65,7 @@ struct TextPrinterSubStruct
|
||||
|
||||
struct TextPrinterTemplate
|
||||
{
|
||||
const u8* currentChar;
|
||||
const u8 *currentChar;
|
||||
u8 windowId;
|
||||
u8 fontId;
|
||||
u8 x;
|
||||
|
||||
@ -35,7 +35,7 @@ bool16 InitWindows(const struct WindowTemplate *templates)
|
||||
int j;
|
||||
u8 bgLayer;
|
||||
u16 attrib;
|
||||
u8* allocatedTilemapBuffer;
|
||||
u8 *allocatedTilemapBuffer;
|
||||
int allocatedBaseBlock;
|
||||
|
||||
for (i = 0; i < NUM_BACKGROUNDS; ++i)
|
||||
@ -405,7 +405,7 @@ void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u
|
||||
struct Bitmap sourceRect;
|
||||
struct Bitmap destRect;
|
||||
|
||||
sourceRect.pixels = (u8*)pixels;
|
||||
sourceRect.pixels = (u8 *)pixels;
|
||||
sourceRect.width = srcWidth;
|
||||
sourceRect.height = srcHeight;
|
||||
|
||||
@ -421,7 +421,7 @@ static void BlitBitmapRectToWindowWithColorKey(u8 windowId, const u8 *pixels, u1
|
||||
struct Bitmap sourceRect;
|
||||
struct Bitmap destRect;
|
||||
|
||||
sourceRect.pixels = (u8*)pixels;
|
||||
sourceRect.pixels = (u8 *)pixels;
|
||||
sourceRect.width = srcWidth;
|
||||
sourceRect.height = srcHeight;
|
||||
|
||||
@ -463,9 +463,9 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue)
|
||||
destOffset = i + (a); \
|
||||
srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \
|
||||
if (srcOffset < size) \
|
||||
*(u32*)(tileData + destOffset) = *(u32*)(tileData + srcOffset); \
|
||||
*(u32 *)(tileData + destOffset) = *(u32 *)(tileData + srcOffset); \
|
||||
else \
|
||||
*(u32*)(tileData + destOffset) = fillValue32; \
|
||||
*(u32 *)(tileData + destOffset) = fillValue32; \
|
||||
distanceLoop++; \
|
||||
}
|
||||
|
||||
@ -474,9 +474,9 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue)
|
||||
destOffset = i + (a); \
|
||||
srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \
|
||||
if (srcOffset < size) \
|
||||
*(u32*)(tileData - destOffset) = *(u32*)(tileData - srcOffset); \
|
||||
*(u32 *)(tileData - destOffset) = *(u32 *)(tileData - srcOffset); \
|
||||
else \
|
||||
*(u32*)(tileData - destOffset) = fillValue32; \
|
||||
*(u32 *)(tileData - destOffset) = fillValue32; \
|
||||
distanceLoop++; \
|
||||
}
|
||||
|
||||
@ -550,7 +550,7 @@ bool8 SetWindowAttribute(u8 windowId, u8 attributeId, u32 value)
|
||||
gWindows[windowId].window.baseBlock = value;
|
||||
return FALSE;
|
||||
case WINDOW_TILE_DATA:
|
||||
gWindows[windowId].tileData = (u8*)(value);
|
||||
gWindows[windowId].tileData = (u8 *)(value);
|
||||
return TRUE;
|
||||
case WINDOW_BG:
|
||||
case WINDOW_WIDTH:
|
||||
@ -605,7 +605,7 @@ static void DummyWindowBgTilemap8Bit(void)
|
||||
u16 AddWindow8Bit(const struct WindowTemplate *template)
|
||||
{
|
||||
u16 windowId;
|
||||
u8* memAddress;
|
||||
u8 *memAddress;
|
||||
u8 bgLayer;
|
||||
|
||||
for (windowId = 0; windowId < WINDOWS_MAX; windowId++)
|
||||
@ -675,7 +675,7 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u
|
||||
struct Bitmap sourceRect;
|
||||
struct Bitmap destRect;
|
||||
|
||||
sourceRect.pixels = (u8*) pixels;
|
||||
sourceRect.pixels = (u8 *) pixels;
|
||||
sourceRect.width = srcWidth;
|
||||
sourceRect.height = srcHeight;
|
||||
|
||||
|
||||
@ -73,7 +73,7 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, const u8 *pixels, u16 srcX, u
|
||||
void CopyWindowToVram8Bit(u8 windowId, u8 mode);
|
||||
|
||||
extern struct Window gWindows[];
|
||||
extern void* gWindowBgTilemapBuffers[];
|
||||
extern void *gWindowBgTilemapBuffers[];
|
||||
extern u32 gUnusedWindowVar1;
|
||||
extern u32 gUnusedWindowVar2;
|
||||
extern u32 gUnusedWindowVar3;
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 256 B |
BIN
graphics/naming_screen/back_button.png
Normal file
|
After Width: | Height: | Size: 285 B |
19
graphics/naming_screen/buttons.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
139 139 131
|
||||
197 189 180
|
||||
230 222 213
|
||||
74 115 139
|
||||
123 172 197
|
||||
172 115 74
|
||||
213 156 115
|
||||
98 156 57
|
||||
148 189 106
|
||||
189 164 32
|
||||
230 222 90
|
||||
57 57 57
|
||||
57 57 57
|
||||
19
graphics/naming_screen/cursor.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
106 156 213
|
||||
255 8 8
|
||||
222 57 74
|
||||
180 65 82
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
230 222 213
|
||||
0 0 0
|
||||
230 222 213
|
||||
0 0 0
|
||||
|
Before Width: | Height: | Size: 223 B After Width: | Height: | Size: 159 B |
BIN
graphics/naming_screen/cursor_filled.png
Normal file
|
After Width: | Height: | Size: 166 B |
BIN
graphics/naming_screen/cursor_squished.png
Normal file
|
After Width: | Height: | Size: 164 B |
|
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 153 B |
@ -1,6 +1,6 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
96
|
||||
16
|
||||
106 156 213
|
||||
255 255 255
|
||||
115 115 115
|
||||
@ -17,83 +17,3 @@ JASC-PAL
|
||||
230 222 90
|
||||
238 230 139
|
||||
246 238 197
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
115 115 115
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
74 115 139
|
||||
98 139 164
|
||||
123 172 197
|
||||
156 205 230
|
||||
180 222 246
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
115 115 115
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
172 115 74
|
||||
189 131 90
|
||||
213 156 115
|
||||
246 205 164
|
||||
255 230 197
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
115 115 115
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
98 156 57
|
||||
123 172 82
|
||||
148 189 106
|
||||
197 230 156
|
||||
213 238 189
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
139 139 131
|
||||
197 189 180
|
||||
230 222 213
|
||||
74 115 139
|
||||
123 172 197
|
||||
172 115 74
|
||||
213 156 115
|
||||
98 156 57
|
||||
148 189 106
|
||||
189 164 32
|
||||
230 222 90
|
||||
57 57 57
|
||||
57 57 57
|
||||
106 156 213
|
||||
255 8 8
|
||||
222 57 74
|
||||
180 65 82
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
230 222 213
|
||||
0 0 0
|
||||
230 222 213
|
||||
0 0 0
|
||||
|
||||
BIN
graphics/naming_screen/ok_button.png
Normal file
|
After Width: | Height: | Size: 271 B |
|
Before Width: | Height: | Size: 89 B |
BIN
graphics/naming_screen/page_swap_button.png
Normal file
|
After Width: | Height: | Size: 145 B |
BIN
graphics/naming_screen/page_swap_frame.png
Normal file
|
After Width: | Height: | Size: 253 B |
19
graphics/naming_screen/page_swap_lower.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
115 115 115
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
172 115 74
|
||||
189 131 90
|
||||
213 156 115
|
||||
246 205 164
|
||||
255 230 197
|
||||
BIN
graphics/naming_screen/page_swap_lower.png
Normal file
|
After Width: | Height: | Size: 186 B |
19
graphics/naming_screen/page_swap_others.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
115 115 115
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
98 156 57
|
||||
123 172 82
|
||||
148 189 106
|
||||
197 230 156
|
||||
213 238 189
|
||||
BIN
graphics/naming_screen/page_swap_others.png
Normal file
|
After Width: | Height: | Size: 192 B |
19
graphics/naming_screen/page_swap_upper.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
106 156 213
|
||||
255 255 255
|
||||
57 57 57
|
||||
115 115 115
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
0 0 255
|
||||
74 115 139
|
||||
98 139 164
|
||||
123 172 197
|
||||
156 205 230
|
||||
180 222 246
|
||||
BIN
graphics/naming_screen/page_swap_upper.png
Normal file
|
After Width: | Height: | Size: 194 B |
|
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 192 B |
|
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 480 B |
|
Before Width: | Height: | Size: 81 B After Width: | Height: | Size: 137 B |
|
Before Width: | Height: | Size: 666 B After Width: | Height: | Size: 719 B |
@ -21,6 +21,7 @@ MISCGFXDIR := graphics/misc
|
||||
JPCONTESTGFXDIR := graphics/contest/japanese
|
||||
POKEDEXGFXDIR := graphics/pokedex
|
||||
STARTERGFXDIR := graphics/starter_choose
|
||||
NAMINGGFXDIR := graphics/naming_screen
|
||||
|
||||
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy
|
||||
contest_types := cool beauty cute smart tough
|
||||
@ -82,31 +83,31 @@ $(CASTFORMGFXDIR)/shiny.gbapal: $(CASTFORMGFXDIR)/normal/shiny.gbapal \
|
||||
### Tilesets ###
|
||||
|
||||
$(TILESETGFXDIR)/secondary/petalburg/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 159
|
||||
$(GFX) $< $@ -num_tiles 159 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/rustboro/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 498
|
||||
$(GFX) $< $@ -num_tiles 498 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/dewford/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 503
|
||||
$(GFX) $< $@ -num_tiles 503 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/slateport/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 504
|
||||
$(GFX) $< $@ -num_tiles 504 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/mauville/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 503
|
||||
$(GFX) $< $@ -num_tiles 503 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/lavaridge/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 450
|
||||
$(GFX) $< $@ -num_tiles 450 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/fortree/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 493
|
||||
$(GFX) $< $@ -num_tiles 493 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/pacifidlog/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 504
|
||||
$(GFX) $< $@ -num_tiles 504 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/sootopolis/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 328
|
||||
$(GFX) $< $@ -num_tiles 328 -Wnum_tiles
|
||||
|
||||
SOOTOPOLISANIMDIR := $(TILESETGFXDIR)/secondary/sootopolis/anim
|
||||
|
||||
@ -143,169 +144,169 @@ $(SOOTOPOLISANIMDIR)/stormy_water/7.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/7_ky
|
||||
@cat $^ >$@
|
||||
|
||||
$(TILESETGFXDIR)/secondary/battle_frontier_outside_west/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 508
|
||||
$(GFX) $< $@ -num_tiles 508 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/battle_frontier_outside_east/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 508
|
||||
$(GFX) $< $@ -num_tiles 508 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/primary/building/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 502
|
||||
$(GFX) $< $@ -num_tiles 502 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/shop/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 502
|
||||
$(GFX) $< $@ -num_tiles 502 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/pokemon_center/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 478
|
||||
$(GFX) $< $@ -num_tiles 478 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/cave/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 425
|
||||
$(GFX) $< $@ -num_tiles 425 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/pokemon_school/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 278
|
||||
$(GFX) $< $@ -num_tiles 278 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/pokemon_fan_club/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 319
|
||||
$(GFX) $< $@ -num_tiles 319 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/unused_1/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 17
|
||||
$(GFX) $< $@ -num_tiles 17 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/meteor_falls/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 460
|
||||
$(GFX) $< $@ -num_tiles 460 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/oceanic_museum/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 319
|
||||
$(GFX) $< $@ -num_tiles 319 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/cable_club/unknown_tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 120
|
||||
$(GFX) $< $@ -num_tiles 120 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/seashore_house/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 312
|
||||
$(GFX) $< $@ -num_tiles 312 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 345
|
||||
$(GFX) $< $@ -num_tiles 345 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/pokemon_day_care/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 355
|
||||
$(GFX) $< $@ -num_tiles 355 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/tree/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/tree/tiles.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/shrub/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/brown_cave/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 83
|
||||
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/tree/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 83
|
||||
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/shrub/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 83
|
||||
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/blue_cave/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 83
|
||||
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/yellow_cave/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 83
|
||||
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/secret_base/red_cave/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 83
|
||||
$(GFX) $< $@ -num_tiles 83 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/inside_of_truck/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 62
|
||||
$(GFX) $< $@ -num_tiles 62 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/contest/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 430
|
||||
$(GFX) $< $@ -num_tiles 430 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/lilycove_museum/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 431
|
||||
$(GFX) $< $@ -num_tiles 431 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/lab/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 500
|
||||
$(GFX) $< $@ -num_tiles 500 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/underwater/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 500
|
||||
$(GFX) $< $@ -num_tiles 500 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/generic_building/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 509
|
||||
$(GFX) $< $@ -num_tiles 509 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/mauville_game_corner/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 469
|
||||
$(GFX) $< $@ -num_tiles 469 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/unused_2/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 150
|
||||
$(GFX) $< $@ -num_tiles 150 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/rustboro_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 60
|
||||
$(GFX) $< $@ -num_tiles 60 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/dewford_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 61
|
||||
$(GFX) $< $@ -num_tiles 61 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/lavaridge_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 54
|
||||
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/petalburg_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 148
|
||||
$(GFX) $< $@ -num_tiles 148 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/fortree_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 61
|
||||
$(GFX) $< $@ -num_tiles 61 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/mossdeep_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 82
|
||||
$(GFX) $< $@ -num_tiles 82 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/sootopolis_gym/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 484
|
||||
$(GFX) $< $@ -num_tiles 484 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/trick_house_puzzle/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 294
|
||||
$(GFX) $< $@ -num_tiles 294 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/inside_ship/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 342
|
||||
$(GFX) $< $@ -num_tiles 342 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/elite_four/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 505
|
||||
$(GFX) $< $@ -num_tiles 505 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/battle_frontier/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 310
|
||||
$(GFX) $< $@ -num_tiles 310 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/battle_factory/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 424
|
||||
$(GFX) $< $@ -num_tiles 424 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/battle_pike/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 382
|
||||
$(GFX) $< $@ -num_tiles 382 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/mirage_tower/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 420
|
||||
$(GFX) $< $@ -num_tiles 420 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/mossdeep_game_corner/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 95
|
||||
$(GFX) $< $@ -num_tiles 95 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/island_harbor/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 503
|
||||
$(GFX) $< $@ -num_tiles 503 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/trainer_hill/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 374
|
||||
$(GFX) $< $@ -num_tiles 374 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/navel_rock/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 420
|
||||
$(GFX) $< $@ -num_tiles 420 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/battle_frontier_ranking_hall/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 136
|
||||
$(GFX) $< $@ -num_tiles 136 -Wnum_tiles
|
||||
|
||||
$(TILESETGFXDIR)/secondary/mystery_events_house/tiles.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 509
|
||||
$(GFX) $< $@ -num_tiles 509 -Wnum_tiles
|
||||
|
||||
|
||||
|
||||
@ -353,13 +354,13 @@ graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal
|
||||
$(GFX) $< $@ -num_colors 224
|
||||
|
||||
graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 63
|
||||
$(GFX) $< $@ -num_tiles 63 -Wnum_tiles
|
||||
|
||||
graphics/pokenav/region_map.8bpp: %.8bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 233
|
||||
$(GFX) $< $@ -num_tiles 233 -Wnum_tiles
|
||||
|
||||
$(MISCGFXDIR)/japanese_hof.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 29
|
||||
$(GFX) $< $@ -num_tiles 29 -Wnum_tiles
|
||||
|
||||
$(BATINTGFXDIR)/textbox.gbapal: $(BATINTGFXDIR)/textbox_0.gbapal \
|
||||
$(BATINTGFXDIR)/textbox_1.gbapal
|
||||
@ -403,10 +404,10 @@ $(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin \
|
||||
@cat $^ >$@
|
||||
|
||||
$(UNUSEDGFXDIR)/color_frames.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 353
|
||||
$(GFX) $< $@ -num_tiles 353 -Wnum_tiles
|
||||
|
||||
$(BATINTGFXDIR)/unused_window2bar.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 5
|
||||
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
|
||||
|
||||
$(JPCONTESTGFXDIR)/composite_1.4bpp: $(JPCONTESTGFXDIR)/frame_1.4bpp \
|
||||
$(JPCONTESTGFXDIR)/floor.4bpp \
|
||||
@ -422,7 +423,7 @@ $(JPCONTESTGFXDIR)/composite_2.4bpp: $(JPCONTESTGFXDIR)/interface.4bpp \
|
||||
@cat $^ >$@
|
||||
|
||||
$(JPCONTESTGFXDIR)/voltage.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 36
|
||||
$(GFX) $< $@ -num_tiles 36 -Wnum_tiles
|
||||
|
||||
$(BTLANMSPRGFXDIR)/ice_crystals.4bpp: $(BTLANMSPRGFXDIR)/ice_crystals_0.4bpp \
|
||||
$(BTLANMSPRGFXDIR)/ice_crystals_1.4bpp \
|
||||
@ -444,13 +445,13 @@ $(BTLANMSPRGFXDIR)/spark.4bpp: $(BTLANMSPRGFXDIR)/spark_0.4bpp \
|
||||
@cat $^ >$@
|
||||
|
||||
$(MASKSGFXDIR)/unused_level_up.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 14
|
||||
$(GFX) $< $@ -num_tiles 14 -Wnum_tiles
|
||||
|
||||
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 16
|
||||
$(GFX) $< $@ -num_tiles 16 -Wnum_tiles
|
||||
|
||||
graphics/party_menu/bg.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 62
|
||||
$(GFX) $< $@ -num_tiles 62 -Wnum_tiles
|
||||
|
||||
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
|
||||
@cat $^ >$@
|
||||
@ -461,29 +462,29 @@ $(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal \
|
||||
@cat $^ >$@
|
||||
|
||||
graphics/bag/menu.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 53
|
||||
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
|
||||
|
||||
$(RAYQUAZAGFXDIR)/scene_2/rayquaza.8bpp: %.8bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 227
|
||||
$(GFX) $< $@ -num_tiles 227 -Wnum_tiles
|
||||
|
||||
$(RAYQUAZAGFXDIR)/scene_2/bg.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 313
|
||||
$(GFX) $< $@ -num_tiles 313 -Wnum_tiles
|
||||
|
||||
$(RAYQUAZAGFXDIR)/scene_3/rayquaza.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 124
|
||||
$(GFX) $< $@ -num_tiles 124 -Wnum_tiles
|
||||
|
||||
$(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail_fix.4bpp: $(RAYQUAZAGFXDIR)/scene_3/rayquaza_tail.4bpp
|
||||
cp $< $@
|
||||
head -c 12 /dev/zero >> $@
|
||||
|
||||
$(RAYQUAZAGFXDIR)/scene_4/streaks.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 19
|
||||
$(GFX) $< $@ -num_tiles 19 -Wnum_tiles
|
||||
|
||||
$(RAYQUAZAGFXDIR)/scene_4/rayquaza.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 155
|
||||
$(GFX) $< $@ -num_tiles 155 -Wnum_tiles
|
||||
|
||||
graphics/picture_frame/lobby.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 86
|
||||
$(GFX) $< $@ -num_tiles 86 -Wnum_tiles
|
||||
|
||||
$(ROULETTEGFXDIR)/roulette_tilt.4bpp: $(ROULETTEGFXDIR)/shroomish.4bpp \
|
||||
$(ROULETTEGFXDIR)/tailow.4bpp
|
||||
@ -496,10 +497,10 @@ $(ROULETTEGFXDIR)/wheel_icons.4bpp: $(ROULETTEGFXDIR)/wynaut.4bpp \
|
||||
@cat $^ >$@
|
||||
|
||||
$(BATTRANSGFXDIR)/regis.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 53
|
||||
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
|
||||
|
||||
$(BATTRANSGFXDIR)/rayquaza.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 938
|
||||
$(GFX) $< $@ -num_tiles 938 -Wnum_tiles
|
||||
|
||||
$(BATTRANSGFXDIR)/frontier_square_1.4bpp: $(BATTRANSGFXDIR)/frontier_squares_blanktiles.4bpp \
|
||||
$(BATTRANSGFXDIR)/frontier_squares_1.4bpp
|
||||
@ -522,20 +523,20 @@ $(SLOTMACHINEGFXDIR)/reel_time_gfx.4bpp: $(SLOTMACHINEGFXDIR)/reel_time_pikachu.
|
||||
@cat $^ >$@
|
||||
|
||||
graphics/birch_speech/unused_beauty.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 822
|
||||
$(GFX) $< $@ -num_tiles 822 -Wnum_tiles
|
||||
|
||||
|
||||
|
||||
### Pokémon Storage System ###
|
||||
|
||||
$(WALLPAPERGFXDIR)/forest/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 55
|
||||
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/forest/tiles.4bpp: $(WALLPAPERGFXDIR)/forest/frame.4bpp $(WALLPAPERGFXDIR)/forest/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/city/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 52
|
||||
$(GFX) $< $@ -num_tiles 52 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/city/tiles.4bpp: $(WALLPAPERGFXDIR)/city/frame.4bpp $(WALLPAPERGFXDIR)/city/bg.4bpp
|
||||
@cat $^ >$@
|
||||
@ -544,97 +545,97 @@ $(WALLPAPERGFXDIR)/desert/tiles.4bpp: $(WALLPAPERGFXDIR)/desert/frame.4bpp $(WAL
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/savanna/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 45
|
||||
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/savanna/bg.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 23
|
||||
$(GFX) $< $@ -num_tiles 23 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/savanna/tiles.4bpp: $(WALLPAPERGFXDIR)/savanna/frame.4bpp $(WALLPAPERGFXDIR)/savanna/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/crag/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 49
|
||||
$(GFX) $< $@ -num_tiles 49 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/crag/tiles.4bpp: $(WALLPAPERGFXDIR)/crag/frame.4bpp $(WALLPAPERGFXDIR)/crag/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/volcano/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 56
|
||||
$(GFX) $< $@ -num_tiles 56 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/volcano/tiles.4bpp: $(WALLPAPERGFXDIR)/volcano/frame.4bpp $(WALLPAPERGFXDIR)/volcano/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/snow/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 57
|
||||
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/snow/tiles.4bpp: $(WALLPAPERGFXDIR)/snow/frame.4bpp $(WALLPAPERGFXDIR)/snow/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/cave/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 55
|
||||
$(GFX) $< $@ -num_tiles 55 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/cave/tiles.4bpp: $(WALLPAPERGFXDIR)/cave/frame.4bpp $(WALLPAPERGFXDIR)/cave/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/beach/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 46
|
||||
$(GFX) $< $@ -num_tiles 46 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/beach/bg.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 23
|
||||
$(GFX) $< $@ -num_tiles 23 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/beach/tiles.4bpp: $(WALLPAPERGFXDIR)/beach/frame.4bpp $(WALLPAPERGFXDIR)/beach/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/seafloor/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 54
|
||||
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/seafloor/tiles.4bpp: $(WALLPAPERGFXDIR)/seafloor/frame.4bpp $(WALLPAPERGFXDIR)/seafloor/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/river/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 51
|
||||
$(GFX) $< $@ -num_tiles 51 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/river/bg.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 11
|
||||
$(GFX) $< $@ -num_tiles 11 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/river/tiles.4bpp: $(WALLPAPERGFXDIR)/river/frame.4bpp $(WALLPAPERGFXDIR)/river/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/sky/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 45
|
||||
$(GFX) $< $@ -num_tiles 45 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/sky/tiles.4bpp: $(WALLPAPERGFXDIR)/sky/frame.4bpp $(WALLPAPERGFXDIR)/sky/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/polkadot/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 54
|
||||
$(GFX) $< $@ -num_tiles 54 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/polkadot/tiles.4bpp: $(WALLPAPERGFXDIR)/polkadot/frame.4bpp $(WALLPAPERGFXDIR)/polkadot/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/pokecenter/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 35
|
||||
$(GFX) $< $@ -num_tiles 35 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/pokecenter/tiles.4bpp: $(WALLPAPERGFXDIR)/pokecenter/frame.4bpp $(WALLPAPERGFXDIR)/pokecenter/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/machine/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 33
|
||||
$(GFX) $< $@ -num_tiles 33 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/machine/tiles.4bpp: $(WALLPAPERGFXDIR)/machine/frame.4bpp $(WALLPAPERGFXDIR)/machine/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/plain/frame.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 18
|
||||
$(GFX) $< $@ -num_tiles 18 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/plain/tiles.4bpp: $(WALLPAPERGFXDIR)/plain/frame.4bpp $(WALLPAPERGFXDIR)/plain/bg.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(WALLPAPERGFXDIR)/friends_frame1.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 57
|
||||
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/friends_frame2.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 57
|
||||
$(GFX) $< $@ -num_tiles 57 -Wnum_tiles
|
||||
|
||||
$(WALLPAPERGFXDIR)/zigzagoon/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame1.4bpp $(WALLPAPERGFXDIR)/zigzagoon/bg.4bpp
|
||||
@cat $^ >$@
|
||||
@ -685,13 +686,13 @@ $(WALLPAPERGFXDIR)/whiscash/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $
|
||||
@cat $^ >$@
|
||||
|
||||
$(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 11
|
||||
$(GFX) $< $@ -num_tiles 11 -Wnum_tiles
|
||||
|
||||
$(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 8
|
||||
$(GFX) $< $@ -num_tiles 8 -Wnum_tiles
|
||||
|
||||
$(BATTRANSGFXDIR)/frontier_logo_center.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 43
|
||||
$(GFX) $< $@ -num_tiles 43 -Wnum_tiles
|
||||
|
||||
|
||||
|
||||
@ -713,19 +714,28 @@ $(PKNAVOPTIONSGFXDIR)/options.4bpp: $(PKNAVOPTIONSGFXDIR)/hoenn_map.4bpp \
|
||||
@cat $^ >$@
|
||||
|
||||
$(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 53
|
||||
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
|
||||
|
||||
$(PKNAVGFXDIR)/device_outline.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 53
|
||||
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
|
||||
|
||||
$(PKNAVGFXDIR)/match_call/ui.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 13
|
||||
$(GFX) $< $@ -num_tiles 13 -Wnum_tiles
|
||||
|
||||
$(POKEDEXGFXDIR)/region_map.8bpp: %.8bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 232
|
||||
$(GFX) $< $@ -num_tiles 232 -Wnum_tiles
|
||||
|
||||
$(POKEDEXGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 233
|
||||
$(GFX) $< $@ -num_tiles 233 -Wnum_tiles
|
||||
|
||||
$(STARTERGFXDIR)/birch_help.4bpp: $(STARTERGFXDIR)/birch_bag.4bpp $(STARTERGFXDIR)/birch_grass.4bpp
|
||||
@cat $^ >$@
|
||||
|
||||
$(NAMINGGFXDIR)/cursor.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
|
||||
|
||||
$(NAMINGGFXDIR)/cursor_squished.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
|
||||
|
||||
$(NAMINGGFXDIR)/cursor_filled.4bpp: %.4bpp: %.png
|
||||
$(GFX) $< $@ -num_tiles 5 -Wnum_tiles
|
||||
|
||||
@ -16,7 +16,7 @@ struct ApprenticeTrainer
|
||||
extern const struct ApprenticeTrainer gApprentices[];
|
||||
|
||||
void BufferApprenticeChallengeText(u8 saveApprenticeId);
|
||||
void Apprentice_EnableBothScriptContexts(void);
|
||||
void Apprentice_ScriptContext_Enable(void);
|
||||
void ResetApprenticeStruct(struct Apprentice *apprentice);
|
||||
void ResetAllApprenticeData(void);
|
||||
void CallApprenticeFunction(void);
|
||||
|
||||
@ -796,10 +796,10 @@ struct BattleSpriteData
|
||||
|
||||
struct MonSpritesGfx
|
||||
{
|
||||
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
|
||||
void *firstDecompressed; // ptr to the decompressed sprite of the first pokemon
|
||||
union {
|
||||
void* ptr[MAX_BATTLERS_COUNT];
|
||||
u8* byte[MAX_BATTLERS_COUNT];
|
||||
void *ptr[MAX_BATTLERS_COUNT];
|
||||
u8 *byte[MAX_BATTLERS_COUNT];
|
||||
} sprites;
|
||||
struct SpriteTemplate templates[MAX_BATTLERS_COUNT];
|
||||
struct SpriteFrameImage frameImages[MAX_BATTLERS_COUNT][4];
|
||||
|
||||
@ -112,8 +112,8 @@ u8 GetBattlerSpriteBGPriority(u8 battlerId);
|
||||
void *LoadPointerFromVars(s16 bottom, s16 top);
|
||||
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
|
||||
void InitPrioritiesForVisibleBattlers(void);
|
||||
void GetBattleAnimBg1Data(struct BattleAnimBgData*);
|
||||
void GetBattleAnimBgData(struct BattleAnimBgData*, u32 bgId);
|
||||
void GetBattleAnimBg1Data(struct BattleAnimBgData *);
|
||||
void GetBattleAnimBgData(struct BattleAnimBgData *, u32 bgId);
|
||||
u8 GetBattlerSpriteSubpriority(u8 battlerId);
|
||||
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
|
||||
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
|
||||
@ -126,10 +126,10 @@ u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target,
|
||||
u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight);
|
||||
u8 AnimDummyReturnArg(u8 battler);
|
||||
s16 CloneBattlerSpriteWithBlend(u8);
|
||||
void DestroySpriteWithActiveSheet(struct Sprite*);
|
||||
void DestroySpriteWithActiveSheet(struct Sprite *);
|
||||
u8 CreateInvisibleSpriteCopy(int, u8, int);
|
||||
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, bool32);
|
||||
void AnimLoadCompressedBgGfx(u32, const u32*, u32);
|
||||
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *, const void *, bool32);
|
||||
void AnimLoadCompressedBgGfx(u32, const u32 *, u32);
|
||||
void UpdateAnimBg3ScreenSize(bool8);
|
||||
void TranslateSpriteInGrowingCircle(struct Sprite *);
|
||||
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
|
||||
@ -190,7 +190,7 @@ u8 GetAnimBattlerSpriteId(u8 wantedBattler);
|
||||
bool8 IsDoubleBattle(void);
|
||||
u8 GetBattleBgPaletteNum(void);
|
||||
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite *));
|
||||
void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
|
||||
@ -227,29 +227,29 @@ void InitStatsChangeAnimation(u8);
|
||||
void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette);
|
||||
|
||||
// battle_anim_effects_1.c
|
||||
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
|
||||
void AnimMoveTwisterParticle(struct Sprite* sprite);
|
||||
void SetSpriteNextToMonHead(u8 battler, struct Sprite *sprite);
|
||||
void AnimMoveTwisterParticle(struct Sprite *sprite);
|
||||
void AnimParticleBurst(struct Sprite *);
|
||||
void AnimPowerAbsorptionOrb(struct Sprite* sprite);
|
||||
void AnimPowerAbsorptionOrb(struct Sprite *sprite);
|
||||
void AnimNeedleArmSpike(struct Sprite *);
|
||||
void AnimTask_CompressTargetHorizontally(u8 taskId);
|
||||
void AnimSporeParticle(struct Sprite* sprite);
|
||||
void AnimAbsorptionOrb(struct Sprite* sprite);
|
||||
void AnimPetalDanceSmallFlower(struct Sprite* sprite);
|
||||
void AnimPetalDanceBigFlower(struct Sprite* sprite);
|
||||
void AnimEndureEnergy(struct Sprite* sprite);
|
||||
void AnimMimicOrb(struct Sprite* sprite);
|
||||
void AnimSolarBeamBigOrb(struct Sprite* sprite);
|
||||
void AnimHyperBeamOrb(struct Sprite* sprite);
|
||||
void AnimNeedleArmSpike_Step(struct Sprite* sprite);
|
||||
void AnimMovePowderParticle(struct Sprite* sprite);
|
||||
void AnimMetronomeFinger(struct Sprite* sprite);
|
||||
void AnimConversion(struct Sprite* sprite);
|
||||
void AnimCuttingSlice(struct Sprite* sprite);
|
||||
void AnimThoughtBubble(struct Sprite* sprite);
|
||||
void AnimTranslateLinearSingleSineWave(struct Sprite* sprite);
|
||||
void AnimGrantingStars(struct Sprite* sprite);
|
||||
void AnimFollowMeFinger(struct Sprite* sprite);
|
||||
void AnimSporeParticle(struct Sprite *sprite);
|
||||
void AnimAbsorptionOrb(struct Sprite *sprite);
|
||||
void AnimPetalDanceSmallFlower(struct Sprite *sprite);
|
||||
void AnimPetalDanceBigFlower(struct Sprite *sprite);
|
||||
void AnimEndureEnergy(struct Sprite *sprite);
|
||||
void AnimMimicOrb(struct Sprite *sprite);
|
||||
void AnimSolarBeamBigOrb(struct Sprite *sprite);
|
||||
void AnimHyperBeamOrb(struct Sprite *sprite);
|
||||
void AnimNeedleArmSpike_Step(struct Sprite *sprite);
|
||||
void AnimMovePowderParticle(struct Sprite *sprite);
|
||||
void AnimMetronomeFinger(struct Sprite *sprite);
|
||||
void AnimConversion(struct Sprite *sprite);
|
||||
void AnimCuttingSlice(struct Sprite *sprite);
|
||||
void AnimThoughtBubble(struct Sprite *sprite);
|
||||
void AnimTranslateLinearSingleSineWave(struct Sprite *sprite);
|
||||
void AnimGrantingStars(struct Sprite *sprite);
|
||||
void AnimFollowMeFinger(struct Sprite *sprite);
|
||||
extern const union AnimCmd *const gRazorLeafParticleAnimTable[];
|
||||
extern const union AnimCmd *const gPowerAbsorptionOrbAnimTable[];
|
||||
extern const union AffineAnimCmd *const gPowerAbsorptionOrbAffineAnimTable[];
|
||||
@ -514,7 +514,7 @@ void AnimDragonDanceOrb(struct Sprite *sprite);
|
||||
void AnimOverheatFlame(struct Sprite *sprite);
|
||||
|
||||
// battle_anim_new.c
|
||||
void CoreEnforcerLoadBeamTarget(struct Sprite* sprite);
|
||||
void SpriteCB_RandomCentredHits(struct Sprite* sprite);
|
||||
void CoreEnforcerLoadBeamTarget(struct Sprite *sprite);
|
||||
void SpriteCB_RandomCentredHits(struct Sprite *sprite);
|
||||
|
||||
#endif // GUARD_BATTLE_ANIM_H
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_BATTLE_ARENA_H
|
||||
#define GUARD_BATTLE_ARENA_H
|
||||
|
||||
#include "constants/battle_arena.h"
|
||||
|
||||
void CallBattleArenaFunction(void);
|
||||
u8 BattleArena_ShowJudgmentWindow(u8 *state);
|
||||
void BattleArena_InitPoints(void);
|
||||
|
||||
@ -92,7 +92,7 @@ enum {
|
||||
LINK_STANDBY_MSG_ONLY,
|
||||
};
|
||||
|
||||
#define INSTANT_HP_BAR_DROP 32767
|
||||
#define INSTANT_HP_BAR_DROP 0x7FFF
|
||||
|
||||
#define PARTY_SUMM_SKIP_DRAW_DELAY (1 << 7)
|
||||
|
||||
@ -228,8 +228,8 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
||||
void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId);
|
||||
void BtlController_EmitYesNoBox(u8 bufferId);
|
||||
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8* battlePartyOrder);
|
||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u16 abilityId, u8* data);
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder);
|
||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u16 abilityId, u8 *data);
|
||||
void BtlController_EmitCmd23(u8 bufferId); // unused
|
||||
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, s32 expPoints);
|
||||
|
||||
@ -22,12 +22,6 @@ struct MultiPartnerMenuPokemon
|
||||
/*0x1D*/ u8 language;
|
||||
};
|
||||
|
||||
#if B_EXPANDED_ABILITY_NAMES
|
||||
#define ABILITY_NAME_LENGTH 16
|
||||
#else
|
||||
#define ABILITY_NAME_LENGTH 12
|
||||
#endif
|
||||
|
||||
// defines for the 'DoBounceEffect' function
|
||||
#define BOUNCE_MON 0x0
|
||||
#define BOUNCE_HEALTHBOX 0x1
|
||||
@ -41,16 +35,16 @@ void SpriteCB_VsLetterInit(struct Sprite *sprite);
|
||||
void CB2_InitEndLinkBattle(void);
|
||||
u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId);
|
||||
u32 GetBattleWindowTemplatePixelWidth(u32 setId, u32 tableId);
|
||||
void SpriteCb_WildMon(struct Sprite *sprite);
|
||||
void SpriteCB_WildMon(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy_2(struct Sprite *sprite);
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
|
||||
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCB_ShowAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCB_HideAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCB_OpponentMonFromBall(struct Sprite *sprite);
|
||||
void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite);
|
||||
void SpriteCB_FaintSlideAnim(struct Sprite *sprite);
|
||||
void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
|
||||
void EndBounceEffect(u8 battlerId, bool8 b);
|
||||
void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
|
||||
void EndBounceEffect(u8 battler, u8 which);
|
||||
void SpriteCB_PlayerMonFromBall(struct Sprite *sprite);
|
||||
void SpriteCB_TrainerThrowObject(struct Sprite *sprite);
|
||||
void AnimSetCenterToCornerVecX(struct Sprite *sprite);
|
||||
|
||||
@ -234,9 +234,9 @@ enum
|
||||
};
|
||||
|
||||
void BufferStringBattle(u16 stringID);
|
||||
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src);
|
||||
u32 BattleStringExpandPlaceholders(const u8* src, u8* dst);
|
||||
void BattlePutTextOnWindow(const u8* text, u8 windowId);
|
||||
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src);
|
||||
u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst);
|
||||
void BattlePutTextOnWindow(const u8 *text, u8 windowId);
|
||||
void SetPpNumbersPaletteInMoveSelection(void);
|
||||
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
|
||||
bool32 ShouldDoTrainerSlide(u32 battlerId, u32 trainerId, u32 which);
|
||||
@ -244,10 +244,10 @@ void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst);
|
||||
|
||||
extern struct BattleMsgData *gBattleMsgDataPtr;
|
||||
|
||||
extern const u8* const gBattleStringsTable[];
|
||||
extern const u8* const gStatNamesTable[];
|
||||
extern const u8* const gPokeblockWasTooXStringTable[];
|
||||
extern const u8* const gRefereeStringsTable[];
|
||||
extern const u8 *const gBattleStringsTable[];
|
||||
extern const u8 *const gStatNamesTable[];
|
||||
extern const u8 *const gPokeblockWasTooXStringTable[];
|
||||
extern const u8 *const gRefereeStringsTable[];
|
||||
extern const u8 *const gRoundsStringTable[];
|
||||
|
||||
extern const u8 gText_PkmnIsEvolving[];
|
||||
|
||||
@ -7,6 +7,9 @@
|
||||
#define WINDOW_CLEAR (1 << 0)
|
||||
#define WINDOW_BG1 (1 << 7)
|
||||
|
||||
// Arguments for 'xStart, yStart, xEnd, yEnd' in HandleBattleWindow
|
||||
#define YESNOBOX_X_Y 24, 8, 29, 13
|
||||
|
||||
struct StatFractions
|
||||
{
|
||||
u8 dividend;
|
||||
|
||||
@ -76,7 +76,6 @@ u8 GetBattlerForBattleScript(u8 caseId);
|
||||
void PressurePPLose(u8 target, u8 attacker, u16 move);
|
||||
void PressurePPLoseOnUsingPerishSong(u8 attacker);
|
||||
void PressurePPLoseOnUsingImprison(u8 attacker);
|
||||
void MarkAllBattlersForControllerExec(void); // unused
|
||||
bool32 IsBattlerMarkedForControllerExec(u8 battlerId);
|
||||
void MarkBattlerForControllerExec(u8 battlerId);
|
||||
void MarkBattlerReceivedLinkData(u8 battlerId);
|
||||
@ -86,7 +85,7 @@ void PrepareStringBattle(u16 stringId, u8 battlerId);
|
||||
void ResetSentPokesToOpponentValue(void);
|
||||
void OpponentSwitchInResetSentPokesToOpponentValue(u8 battlerId);
|
||||
void UpdateSentPokesToOpponentValue(u8 battlerId);
|
||||
void BattleScriptPush(const u8* bsPtr);
|
||||
void BattleScriptPush(const u8 *bsPtr);
|
||||
void BattleScriptPushCursor(void);
|
||||
void BattleScriptPop(void);
|
||||
u8 TrySetCantSelectMoveBattleScript(void);
|
||||
@ -113,8 +112,8 @@ u32 IsAbilityOnFieldExcept(u32 battlerId, u32 ability);
|
||||
u32 IsAbilityPreventingEscape(u32 battlerId);
|
||||
bool32 IsBattlerProtected(u8 battlerId, u16 move);
|
||||
bool32 CanBattlerEscape(u32 battlerId); // no ability check
|
||||
void BattleScriptExecute(const u8* BS_ptr);
|
||||
void BattleScriptPushCursorAndCallback(const u8* BS_ptr);
|
||||
void BattleScriptExecute(const u8 *BS_ptr);
|
||||
void BattleScriptPushCursorAndCallback(const u8 *BS_ptr);
|
||||
u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn);
|
||||
void ClearFuryCutterDestinyBondGrudge(u8 battlerId);
|
||||
void HandleAction_RunBattleScript(void);
|
||||
|
||||
@ -22,7 +22,7 @@ void HideZMoveTriggerSprite(void);
|
||||
bool32 IsZMoveTriggerSpriteActive(void);
|
||||
void DestroyZMoveTriggerSprite(void);
|
||||
bool32 MoveSelectionDisplayZMove(u16 zmove);
|
||||
const u8* GetZMoveName(u16 move);
|
||||
const u8 *GetZMoveName(u16 move);
|
||||
void SetZEffect(void);
|
||||
bool32 IsZMoveUsable(u8 battlerId, u16 moveIndex);
|
||||
void GetUsableZMoves(u8 battlerId, u16 *moves);
|
||||
|
||||
@ -19,8 +19,10 @@
|
||||
|
||||
#ifdef ENGLISH
|
||||
#define UNITS_IMPERIAL
|
||||
#define CHAR_DEC_SEPARATOR CHAR_PERIOD // Period is used as a decimal separator only in the UK and the US.
|
||||
#else
|
||||
#define UNITS_METRIC
|
||||
#define CHAR_DEC_SEPARATOR CHAR_COMMA
|
||||
#endif
|
||||
|
||||
// Uncomment to fix some identified minor bugs
|
||||
|
||||
@ -53,17 +53,17 @@
|
||||
#define BATTLE_TYPE_MULTI (1 << 6)
|
||||
#define BATTLE_TYPE_SAFARI (1 << 7)
|
||||
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9)
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) // Used in pokefirered as BATTLE_TYPE_OLD_MAN_TUTORIAL.
|
||||
#define BATTLE_TYPE_ROAMER (1 << 10)
|
||||
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
|
||||
#define BATTLE_TYPE_LEGENDARY (1 << 13)
|
||||
#define BATTLE_TYPE_REGI (1 << 14)
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15)
|
||||
#define BATTLE_TYPE_DOME (1 << 16)
|
||||
#define BATTLE_TYPE_PALACE (1 << 17)
|
||||
#define BATTLE_TYPE_ARENA (1 << 18)
|
||||
#define BATTLE_TYPE_FACTORY (1 << 19)
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) // Used in pokefirered as BATTLE_TYPE_GHOST.
|
||||
#define BATTLE_TYPE_DOME (1 << 16) // Used in pokefirered as BATTLE_TYPE_POKEDUDE.
|
||||
#define BATTLE_TYPE_PALACE (1 << 17) // Used in pokefirered as BATTLE_TYPE_WILD_SCRIPTED.
|
||||
#define BATTLE_TYPE_ARENA (1 << 18) // Used in pokefirered as BATTLE_TYPE_LEGENDARY_FRLG.
|
||||
#define BATTLE_TYPE_FACTORY (1 << 19) // Used in pokefirered as BATTLE_TYPE_TRAINER_TOWER.
|
||||
#define BATTLE_TYPE_PIKE (1 << 20)
|
||||
#define BATTLE_TYPE_PYRAMID (1 << 21)
|
||||
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
|
||||
@ -418,6 +418,11 @@
|
||||
#define FLEE_ITEM 1
|
||||
#define FLEE_ABILITY 2
|
||||
|
||||
// Return value for IsRunningFromBattleImpossible.
|
||||
#define BATTLE_RUN_SUCCESS 0
|
||||
#define BATTLE_RUN_FORBIDDEN 1
|
||||
#define BATTLE_RUN_FAILURE 2
|
||||
|
||||
#define B_WIN_TYPE_NORMAL 0
|
||||
#define B_WIN_TYPE_ARENA 1
|
||||
|
||||
|
||||
@ -17,4 +17,10 @@
|
||||
#define ARENA_CATEGORY_SKILL 1
|
||||
#define ARENA_CATEGORY_BODY 2
|
||||
|
||||
#define ARENA_RESULT_RUNNING 0 // For intermediate steps, when BattleArena_ShowJudgmentWindow should be called again immediately
|
||||
#define ARENA_RESULT_STEP_DONE 1 // A step has been completed, the script may advance to the next instruction
|
||||
#define ARENA_RESULT_PLAYER_WON 2
|
||||
#define ARENA_RESULT_PLAYER_LOST 3
|
||||
#define ARENA_RESULT_TIE 4
|
||||
|
||||
#endif //GUARD_CONSTANTS_BATTLE_ARENA_H
|
||||
|
||||
@ -3,127 +3,6 @@
|
||||
|
||||
#include "constants/expansion_branches.h"
|
||||
|
||||
// Species with peculiar battle effects.
|
||||
#ifndef POKEMON_EXPANSION
|
||||
#define SPECIES_DIALGA 0
|
||||
#define SPECIES_PALKIA 0
|
||||
#define SPECIES_GIRATINA 0
|
||||
#define SPECIES_CHERRIM 0
|
||||
#define SPECIES_ARCEUS 0
|
||||
#define SPECIES_SILVALLY 0
|
||||
#define SPECIES_GENESECT 0
|
||||
#define SPECIES_AEGISLASH 0
|
||||
#define SPECIES_AEGISLASH_BLADE 10000
|
||||
#define SPECIES_MIMIKYU 0
|
||||
#define SPECIES_MIMIKYU_BUSTED 10001
|
||||
#define SPECIES_DARMANITAN 0
|
||||
#define SPECIES_DARMANITAN_ZEN_MODE 10002
|
||||
#define SPECIES_MINIOR_CORE_RED 0
|
||||
#define SPECIES_MINIOR 10003
|
||||
#define SPECIES_MINIOR_CORE_BLUE 0
|
||||
#define SPECIES_MINIOR_METEOR_BLUE 10004
|
||||
#define SPECIES_MINIOR_CORE_GREEN 0
|
||||
#define SPECIES_MINIOR_METEOR_GREEN 10005
|
||||
#define SPECIES_MINIOR_CORE_INDIGO 0
|
||||
#define SPECIES_MINIOR_METEOR_INDIGO 10006
|
||||
#define SPECIES_MINIOR_CORE_ORANGE 0
|
||||
#define SPECIES_MINIOR_METEOR_ORANGE 10007
|
||||
#define SPECIES_MINIOR_CORE_VIOLET 0
|
||||
#define SPECIES_MINIOR_METEOR_VIOLET 10008
|
||||
#define SPECIES_MINIOR_CORE_YELLOW 0
|
||||
#define SPECIES_MINIOR_METEOR_YELLOW 10009
|
||||
#define SPECIES_WISHIWASHI 0
|
||||
#define SPECIES_WISHIWASHI_SCHOOL 10010
|
||||
#define SPECIES_ZYGARDE 0 // 50%
|
||||
#define SPECIES_ZYGARDE_10 10011 // 10 %
|
||||
#define SPECIES_ZYGARDE_COMPLETE 10012 // 100 %
|
||||
#define SPECIES_BURMY 0
|
||||
#define SPECIES_BURMY_SANDY_CLOAK 10013
|
||||
#define SPECIES_BURMY_TRASH_CLOAK 10014
|
||||
#define SPECIES_CRAMORANT 0
|
||||
#define SPECIES_CRAMORANT_GORGING 10015
|
||||
#define SPECIES_CRAMORANT_GULPING 10016
|
||||
#define SPECIES_GRENINJA_BATTLE_BOND 0
|
||||
#define SPECIES_GRENINJA_ASH 10017
|
||||
#define SPECIES_HOOPA 0
|
||||
#define SPECIES_HOOPA_UNBOUND 10018
|
||||
#define SPECIES_MELOETTA 0
|
||||
#define SPECIES_MELOETTA_PIROUETTE 10019
|
||||
#define SPECIES_MORPEKO 0
|
||||
#define SPECIES_MORPEKO_HANGRY 10020
|
||||
#define SPECIES_SIRFETCHD 10021
|
||||
#define SPECIES_DARMANITAN_GALARIAN 0
|
||||
#define SPECIES_DARMANITAN_ZEN_MODE_GALARIAN 10022
|
||||
#define SPECIES_HEATMOR 0
|
||||
#define SPECIES_DURANT 0
|
||||
#define SPECIES_CARBINK 0
|
||||
#define SPECIES_MAREANIE 0
|
||||
#endif
|
||||
|
||||
// Items with peculiar battle effects.
|
||||
#ifndef ITEM_EXPANSION
|
||||
#define ITEM_CHOPLE_BERRY 177
|
||||
#define ITEM_KEBIA_BERRY 178
|
||||
#define ITEM_SHUCA_BERRY 179
|
||||
#define ITEM_COBA_BERRY 180
|
||||
#define ITEM_PAYAPA_BERRY 181
|
||||
#define ITEM_TANGA_BERRY 182
|
||||
#define ITEM_CHARTI_BERRY 183
|
||||
#define ITEM_KASIB_BERRY 184
|
||||
#define ITEM_HABAN_BERRY 185
|
||||
#define ITEM_COLBUR_BERRY 186
|
||||
#define ITEM_BABIRI_BERRY 187
|
||||
#define ITEM_CHILAN_BERRY 188
|
||||
#define ITEM_ROSELI_BERRY 189
|
||||
#define ITEM_MICLE_BERRY 197
|
||||
#define ITEM_CUSTAP_BERRY 199
|
||||
#define ITEM_JABOCA_BERRY 200
|
||||
#define ITEM_ROWAP_BERRY 201
|
||||
#define ITEM_KEE_BERRY 202
|
||||
#define ITEM_MARANGA_BERRY 203
|
||||
#define ITEM_OCCA_BERRY 204
|
||||
#define ITEM_PASSHO_BERRY 205
|
||||
#define ITEM_WACAN_BERRY 206
|
||||
#define ITEM_RINDO_BERRY 207
|
||||
#define ITEM_YACHE_BERRY 208
|
||||
#define ITEM_GRISEOUS_ORB 369
|
||||
// z crystals
|
||||
#define ITEM_NORMALIUM_Z 568
|
||||
#define ITEM_FIGHTINIUM_Z 569
|
||||
#define ITEM_FLYINIUM_Z 570
|
||||
#define ITEM_POISONIUM_Z 571
|
||||
#define ITEM_GROUNDIUM_Z 572
|
||||
#define ITEM_ROCKIUM_Z 573
|
||||
#define ITEM_BUGINIUM_Z 574
|
||||
#define ITEM_GHOSTIUM_Z 575
|
||||
#define ITEM_STEELIUM_Z 576
|
||||
#define ITEM_FIRIUM_Z 577
|
||||
#define ITEM_WATERIUM_Z 578
|
||||
#define ITEM_GRASSIUM_Z 579
|
||||
#define ITEM_ELECTRIUM_Z 580
|
||||
#define ITEM_PSYCHIUM_Z 581
|
||||
#define ITEM_ICIUM_Z 582
|
||||
#define ITEM_DRAGONIUM_Z 583
|
||||
#define ITEM_DARKINIUM_Z 584
|
||||
#define ITEM_FAIRIUM_Z 585
|
||||
#define ITEM_ALORAICHIUM_Z 586
|
||||
#define ITEM_DECIDIUM_Z 587
|
||||
#define ITEM_EEVIUM_Z 588
|
||||
#define ITEM_INCINIUM_Z 589
|
||||
#define ITEM_KOMMONIUM_Z 590
|
||||
#define ITEM_LUNALIUM_Z 591
|
||||
#define ITEM_LYCANIUM_Z 592
|
||||
#define ITEM_MARSHADIUM_Z 593
|
||||
#define ITEM_MEWNIUM_Z 594
|
||||
#define ITEM_MIMIKIUM_Z 595
|
||||
#define ITEM_PIKANIUM_Z 596
|
||||
#define ITEM_PIKASHUNIUM_Z 597
|
||||
#define ITEM_PRIMARIUM_Z 598
|
||||
#define ITEM_SNORLIUM_Z 599
|
||||
#define ITEM_SOLGANIUM_Z 600
|
||||
#define ITEM_TAPUNIUM_Z 601
|
||||
#endif
|
||||
|
||||
#ifndef GEN_3
|
||||
#define GEN_3 0
|
||||
#define GEN_4 1
|
||||
|
||||
@ -63,15 +63,15 @@
|
||||
#define BS_EFFECT_BATTLER 2
|
||||
#define BS_FAINTED 3
|
||||
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
|
||||
#define BS_FAINTED_LINK_MULTIPLE_1 5
|
||||
#define BS_FAINTED_LINK_MULTIPLE_2 6
|
||||
#define BS_FAINTED_LINK_MULTIPLE_1 5 // for openpartyscreen
|
||||
#define BS_FAINTED_LINK_MULTIPLE_2 6 // for openpartyscreen
|
||||
#define BS_BATTLER_0 7
|
||||
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
|
||||
#define BS_TARGET_SIDE 9 // for Cmd_jumpifability
|
||||
#define BS_SCRIPTING 10
|
||||
#define BS_PLAYER1 11
|
||||
#define BS_OPPONENT1 12
|
||||
#define BS_PLAYER2 13
|
||||
#define BS_PLAYER2 13 // for Cmd_updatestatusicon
|
||||
#define BS_OPPONENT2 14
|
||||
#define BS_ABILITY_BATTLER 15
|
||||
|
||||
@ -258,9 +258,9 @@
|
||||
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
|
||||
|
||||
// Cmd_statbuffchange
|
||||
#define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
|
||||
#define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5)
|
||||
#define STAT_BUFF_UPDATE_MOVE_EFFECT (1 << 6)
|
||||
#define STAT_CHANGE_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
|
||||
#define STAT_CHANGE_NOT_PROTECT_AFFECTED (1 << 5)
|
||||
#define STAT_CHANGE_UPDATE_MOVE_EFFECT (1 << 6)
|
||||
|
||||
// stat change flags for Cmd_playstatchangeanimation
|
||||
#define STAT_CHANGE_NEGATIVE (1 << 0)
|
||||
|
||||
@ -232,8 +232,8 @@
|
||||
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
|
||||
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
|
||||
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
|
||||
#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94
|
||||
#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95
|
||||
#define MOVEMENT_ACTION_LOCK_ANIM 0x94
|
||||
#define MOVEMENT_ACTION_UNLOCK_ANIM 0x95
|
||||
#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
|
||||
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
|
||||
#define MOVEMENT_ACTION_LEVITATE 0x98
|
||||
|
||||
@ -109,6 +109,12 @@
|
||||
#define WONDER_CARD_BODY_TEXT_LINES 4
|
||||
#define WONDER_NEWS_BODY_TEXT_LINES 10
|
||||
#define TYPE_NAME_LENGTH 6
|
||||
#if B_EXPANDED_ABILITY_NAMES == TRUE
|
||||
#define ABILITY_NAME_LENGTH 16
|
||||
#else
|
||||
#define ABILITY_NAME_LENGTH 12
|
||||
#endif
|
||||
#define TRAINER_NAME_LENGTH 10
|
||||
|
||||
#define MAX_STAMP_CARD_STAMPS 7
|
||||
|
||||
|
||||
@ -2,22 +2,10 @@
|
||||
#define GUARD_CONSTANTS_ITEM_EFFECTS_H
|
||||
|
||||
// field 0 masks
|
||||
#ifndef ITEM_EXPANSION
|
||||
#define ITEM0_X_ATTACK 0x0F
|
||||
#endif
|
||||
#define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy.
|
||||
#define ITEM0_SACRED_ASH 0x40
|
||||
#define ITEM0_INFATUATION 0x80
|
||||
|
||||
#ifndef ITEM_EXPANSION
|
||||
// field 1 masks
|
||||
#define ITEM1_X_SPEED 0x0F
|
||||
#define ITEM1_X_DEFEND 0xF0
|
||||
|
||||
// field 2 masks
|
||||
#define ITEM2_X_SPATK 0x0F
|
||||
#define ITEM2_X_ACCURACY 0xF0
|
||||
#else
|
||||
// new field 1 masks
|
||||
#define ITEM1_X_ATTACK 0x1
|
||||
#define ITEM1_X_DEFENSE 0x2
|
||||
@ -25,7 +13,6 @@
|
||||
#define ITEM1_X_SPATK 0x8
|
||||
#define ITEM1_X_SPDEF 0x10
|
||||
#define ITEM1_X_ACCURACY 0x20
|
||||
#endif
|
||||
|
||||
// field 3 masks
|
||||
#define ITEM3_CONFUSION 0x1
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
#ifndef GUARD_CONSTANTS_POKEDEX_H
|
||||
#define GUARD_CONSTANTS_POKEDEX_H
|
||||
|
||||
// National Pokedex order
|
||||
#include "constants/pokemon_config.h"
|
||||
// National Pokedex order. Gen 4+ mons and forms are not disabled by P_NEW_POKEMON to keep pokedex_orders.h clean.
|
||||
enum {
|
||||
NATIONAL_DEX_NONE,
|
||||
// Kanto
|
||||
@ -915,7 +916,11 @@ enum {
|
||||
|
||||
#define KANTO_DEX_COUNT NATIONAL_DEX_MEW
|
||||
#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
#define NATIONAL_DEX_COUNT NATIONAL_DEX_CALYREX
|
||||
#else
|
||||
#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS
|
||||
#endif
|
||||
#define POKEMON_SLOTS_NUMBER (NATIONAL_DEX_COUNT + 1)
|
||||
|
||||
// Hoenn Pokedex order
|
||||
@ -952,7 +957,9 @@ enum {
|
||||
HOENN_DEX_RALTS,
|
||||
HOENN_DEX_KIRLIA,
|
||||
HOENN_DEX_GARDEVOIR,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_GALLADE,
|
||||
#endif
|
||||
HOENN_DEX_SURSKIT,
|
||||
HOENN_DEX_MASQUERAIN,
|
||||
HOENN_DEX_SHROOMISH,
|
||||
@ -982,7 +989,9 @@ enum {
|
||||
HOENN_DEX_GRAVELER,
|
||||
HOENN_DEX_GOLEM,
|
||||
HOENN_DEX_NOSEPASS,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_PROBOPASS,
|
||||
#endif
|
||||
HOENN_DEX_SKITTY,
|
||||
HOENN_DEX_DELCATTY,
|
||||
HOENN_DEX_ZUBAT,
|
||||
@ -1006,7 +1015,9 @@ enum {
|
||||
HOENN_DEX_MINUN,
|
||||
HOENN_DEX_MAGNEMITE,
|
||||
HOENN_DEX_MAGNETON,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_MAGNEZONE,
|
||||
#endif
|
||||
HOENN_DEX_VOLTORB,
|
||||
HOENN_DEX_ELECTRODE,
|
||||
HOENN_DEX_VOLBEAT,
|
||||
@ -1017,9 +1028,13 @@ enum {
|
||||
HOENN_DEX_BELLOSSOM,
|
||||
HOENN_DEX_DODUO,
|
||||
HOENN_DEX_DODRIO,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_BUDEW,
|
||||
HOENN_DEX_ROSELIA,
|
||||
HOENN_DEX_ROSERADE,
|
||||
#else
|
||||
HOENN_DEX_ROSELIA,
|
||||
#endif
|
||||
HOENN_DEX_GULPIN,
|
||||
HOENN_DEX_SWALOT,
|
||||
HOENN_DEX_CARVANHA,
|
||||
@ -1075,9 +1090,13 @@ enum {
|
||||
HOENN_DEX_BANETTE,
|
||||
HOENN_DEX_DUSKULL,
|
||||
HOENN_DEX_DUSCLOPS,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_DUSKNOIR,
|
||||
HOENN_DEX_TROPIUS,
|
||||
HOENN_DEX_CHINGLING,
|
||||
#else
|
||||
HOENN_DEX_TROPIUS,
|
||||
#endif
|
||||
HOENN_DEX_CHIMECHO,
|
||||
HOENN_DEX_ABSOL,
|
||||
HOENN_DEX_VULPIX,
|
||||
@ -1098,10 +1117,14 @@ enum {
|
||||
HOENN_DEX_HERACROSS,
|
||||
HOENN_DEX_RHYHORN,
|
||||
HOENN_DEX_RHYDON,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_RHYPERIOR,
|
||||
#endif
|
||||
HOENN_DEX_SNORUNT,
|
||||
HOENN_DEX_GLALIE,
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
HOENN_DEX_FROSLASS,
|
||||
#endif
|
||||
HOENN_DEX_SPHEAL,
|
||||
HOENN_DEX_SEALEO,
|
||||
HOENN_DEX_WALREIN,
|
||||
|
||||
@ -94,97 +94,6 @@
|
||||
// Shiny odds
|
||||
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
|
||||
|
||||
// Flags for Get(Box)MonData / Set(Box)MonData
|
||||
#define MON_DATA_PERSONALITY 0
|
||||
#define MON_DATA_OT_ID 1
|
||||
#define MON_DATA_NICKNAME 2
|
||||
#define MON_DATA_LANGUAGE 3
|
||||
#define MON_DATA_SANITY_IS_BAD_EGG 4
|
||||
#define MON_DATA_SANITY_HAS_SPECIES 5
|
||||
#define MON_DATA_SANITY_IS_EGG 6
|
||||
#define MON_DATA_OT_NAME 7
|
||||
#define MON_DATA_MARKINGS 8
|
||||
#define MON_DATA_CHECKSUM 9
|
||||
#define MON_DATA_ENCRYPT_SEPARATOR 10
|
||||
#define MON_DATA_SPECIES 11
|
||||
#define MON_DATA_HELD_ITEM 12
|
||||
#define MON_DATA_MOVE1 13
|
||||
#define MON_DATA_MOVE2 14
|
||||
#define MON_DATA_MOVE3 15
|
||||
#define MON_DATA_MOVE4 16
|
||||
#define MON_DATA_PP1 17
|
||||
#define MON_DATA_PP2 18
|
||||
#define MON_DATA_PP3 19
|
||||
#define MON_DATA_PP4 20
|
||||
#define MON_DATA_PP_BONUSES 21
|
||||
#define MON_DATA_COOL 22
|
||||
#define MON_DATA_BEAUTY 23
|
||||
#define MON_DATA_CUTE 24
|
||||
#define MON_DATA_EXP 25
|
||||
#define MON_DATA_HP_EV 26
|
||||
#define MON_DATA_ATK_EV 27
|
||||
#define MON_DATA_DEF_EV 28
|
||||
#define MON_DATA_SPEED_EV 29
|
||||
#define MON_DATA_SPATK_EV 30
|
||||
#define MON_DATA_SPDEF_EV 31
|
||||
#define MON_DATA_FRIENDSHIP 32
|
||||
#define MON_DATA_SMART 33
|
||||
#define MON_DATA_POKERUS 34
|
||||
#define MON_DATA_MET_LOCATION 35
|
||||
#define MON_DATA_MET_LEVEL 36
|
||||
#define MON_DATA_MET_GAME 37
|
||||
#define MON_DATA_POKEBALL 38
|
||||
#define MON_DATA_HP_IV 39
|
||||
#define MON_DATA_ATK_IV 40
|
||||
#define MON_DATA_DEF_IV 41
|
||||
#define MON_DATA_SPEED_IV 42
|
||||
#define MON_DATA_SPATK_IV 43
|
||||
#define MON_DATA_SPDEF_IV 44
|
||||
#define MON_DATA_IS_EGG 45
|
||||
#define MON_DATA_ABILITY_NUM 46
|
||||
#define MON_DATA_TOUGH 47
|
||||
#define MON_DATA_SHEEN 48
|
||||
#define MON_DATA_OT_GENDER 49
|
||||
#define MON_DATA_COOL_RIBBON 50
|
||||
#define MON_DATA_BEAUTY_RIBBON 51
|
||||
#define MON_DATA_CUTE_RIBBON 52
|
||||
#define MON_DATA_SMART_RIBBON 53
|
||||
#define MON_DATA_TOUGH_RIBBON 54
|
||||
#define MON_DATA_STATUS 55
|
||||
#define MON_DATA_LEVEL 56
|
||||
#define MON_DATA_HP 57
|
||||
#define MON_DATA_MAX_HP 58
|
||||
#define MON_DATA_ATK 59
|
||||
#define MON_DATA_DEF 60
|
||||
#define MON_DATA_SPEED 61
|
||||
#define MON_DATA_SPATK 62
|
||||
#define MON_DATA_SPDEF 63
|
||||
#define MON_DATA_MAIL 64
|
||||
#define MON_DATA_SPECIES2 65
|
||||
#define MON_DATA_IVS 66
|
||||
#define MON_DATA_CHAMPION_RIBBON 67
|
||||
#define MON_DATA_WINNING_RIBBON 68
|
||||
#define MON_DATA_VICTORY_RIBBON 69
|
||||
#define MON_DATA_ARTIST_RIBBON 70
|
||||
#define MON_DATA_EFFORT_RIBBON 71
|
||||
#define MON_DATA_MARINE_RIBBON 72
|
||||
#define MON_DATA_LAND_RIBBON 73
|
||||
#define MON_DATA_SKY_RIBBON 74
|
||||
#define MON_DATA_COUNTRY_RIBBON 75
|
||||
#define MON_DATA_NATIONAL_RIBBON 76
|
||||
#define MON_DATA_EARTH_RIBBON 77
|
||||
#define MON_DATA_WORLD_RIBBON 78
|
||||
#define MON_DATA_UNUSED_RIBBONS 79
|
||||
#define MON_DATA_EVENT_LEGAL 80
|
||||
#define MON_DATA_KNOWN_MOVES 81
|
||||
#define MON_DATA_RIBBON_COUNT 82
|
||||
#define MON_DATA_RIBBONS 83
|
||||
#define MON_DATA_ATK2 84
|
||||
#define MON_DATA_DEF2 85
|
||||
#define MON_DATA_SPEED2 86
|
||||
#define MON_DATA_SPATK2 87
|
||||
#define MON_DATA_SPDEF2 88
|
||||
|
||||
// Ribbon IDs used by TV and Pokénav
|
||||
#define CHAMPION_RIBBON 0
|
||||
#define COOL_RIBBON_NORMAL 1
|
||||
|
||||
@ -21,355 +21,8 @@
|
||||
#define P_KADABRA_EVERSTONE GEN_8 // Since Gen 4, Kadabra can evolve even when holding an Everstone.
|
||||
#define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat.
|
||||
|
||||
#define P_NEW_POKEMON TRUE // Turning this to FALSE will remove all newly added Pokémon and Forms. Only Unown, Castform and Deoxys forms will remain.
|
||||
|
||||
#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen.
|
||||
|
||||
#ifndef ITEM_EXPANSION
|
||||
//Item Definitions for gEvolutionTable
|
||||
|
||||
//EVO_MEGA_EVOLUTION
|
||||
#define ITEM_VENUSAURITE 10001
|
||||
#define ITEM_CHARIZARDITE_X 10002
|
||||
#define ITEM_CHARIZARDITE_Y 10003
|
||||
#define ITEM_BLASTOISINITE 10004
|
||||
#define ITEM_BEEDRILLITE 10005
|
||||
#define ITEM_PIDGEOTITE 10006
|
||||
#define ITEM_ALAKAZITE 10007
|
||||
#define ITEM_SLOWBRONITE 10008
|
||||
#define ITEM_GENGARITE 10009
|
||||
#define ITEM_KANGASKHANITE 10010
|
||||
#define ITEM_PINSIRITE 10011
|
||||
#define ITEM_GYARADOSITE 10012
|
||||
#define ITEM_AERODACTYLITE 10013
|
||||
#define ITEM_MEWTWONITE_X 10014
|
||||
#define ITEM_MEWTWONITE_Y 10015
|
||||
#define ITEM_AMPHAROSITE 10016
|
||||
#define ITEM_STEELIXITE 10017
|
||||
#define ITEM_SCIZORITE 10018
|
||||
#define ITEM_HERACRONITE 10019
|
||||
#define ITEM_HOUNDOOMINITE 10020
|
||||
#define ITEM_TYRANITARITE 10021
|
||||
#define ITEM_SCEPTILITE 10022
|
||||
#define ITEM_BLAZIKENITE 10023
|
||||
#define ITEM_SWAMPERTITE 10024
|
||||
#define ITEM_SABLENITE 10025
|
||||
#define ITEM_SHARPEDONITE 10026
|
||||
#define ITEM_MANECTITE 10027
|
||||
#define ITEM_CAMERUPTITE 10028
|
||||
#define ITEM_GLALITITE 10029
|
||||
#define ITEM_MAWILITE 10030
|
||||
#define ITEM_MEDICHAMITE 10031
|
||||
#define ITEM_ALTARIANITE 10032
|
||||
#define ITEM_ABSOLITE 10033
|
||||
#define ITEM_BANETTITE 10034
|
||||
#define ITEM_AGGRONITE 10035
|
||||
#define ITEM_GARDEVOIRITE 10036
|
||||
#define ITEM_SALAMENCITE 10037
|
||||
#define ITEM_METAGROSSITE 10038
|
||||
#define ITEM_LATIASITE 10039
|
||||
#define ITEM_LATIOSITE 10040
|
||||
#define ITEM_LOPUNNITE 10041
|
||||
#define ITEM_GARCHOMPITE 10042
|
||||
#define ITEM_LUCARIONITE 10043
|
||||
#define ITEM_ABOMASITE 10044
|
||||
#define ITEM_GALLADITE 10045
|
||||
#define ITEM_AUDINITE 10046
|
||||
#define ITEM_DIANCITE 10047
|
||||
|
||||
//EVO_TRADE_ITEM
|
||||
#define ITEM_PROTECTOR 10048
|
||||
#define ITEM_ELECTIRIZER 10049
|
||||
#define ITEM_MAGMARIZER 10050
|
||||
#define ITEM_DUBIOUS_DISC 10051
|
||||
#define ITEM_PRISM_SCALE 10052
|
||||
#define ITEM_REAPER_CLOTH 10053
|
||||
#define ITEM_SACHET 10054
|
||||
#define ITEM_WHIPPED_DREAM 10055
|
||||
|
||||
//EVO_ITEM
|
||||
#define ITEM_ICE_STONE 10056
|
||||
#define ITEM_SHINY_STONE 10057
|
||||
#define ITEM_DUSK_STONE 10058
|
||||
#define ITEM_DAWN_STONE 10059
|
||||
#define ITEM_TART_APPLE 10060
|
||||
#define ITEM_SWEET_APPLE 10061
|
||||
#define ITEM_CRACKED_POT 10062
|
||||
#define ITEM_GALARICA_CUFF 10063
|
||||
#define ITEM_GALARICA_WREATH 10064
|
||||
#define ITEM_CHIPPED_POT 10065
|
||||
|
||||
//EVO_ITEM_HOLD
|
||||
#define ITEM_RAZOR_FANG 10066
|
||||
#define ITEM_RAZOR_CLAW 10067
|
||||
#define ITEM_OVAL_STONE 10068
|
||||
|
||||
//FORM_ITEM_HOLD
|
||||
#define ITEM_GRISEOUS_ORB 10069
|
||||
#define ITEM_DRACO_PLATE 10070
|
||||
#define ITEM_DREAD_PLATE 10071
|
||||
#define ITEM_EARTH_PLATE 10072
|
||||
#define ITEM_FIST_PLATE 10073
|
||||
#define ITEM_FLAME_PLATE 10074
|
||||
#define ITEM_ICICLE_PLATE 10075
|
||||
#define ITEM_INSECT_PLATE 10076
|
||||
#define ITEM_IRON_PLATE 10077
|
||||
#define ITEM_MEADOW_PLATE 10078
|
||||
#define ITEM_MIND_PLATE 10079
|
||||
#define ITEM_PIXIE_PLATE 10080
|
||||
#define ITEM_SKY_PLATE 10081
|
||||
#define ITEM_SPLASH_PLATE 10082
|
||||
#define ITEM_SPOOKY_PLATE 10083
|
||||
#define ITEM_STONE_PLATE 10084
|
||||
#define ITEM_TOXIC_PLATE 10085
|
||||
#define ITEM_ZAP_PLATE 10086
|
||||
#define ITEM_FIGHTINIUM_Z 10087
|
||||
#define ITEM_FLYINIUM_Z 10088
|
||||
#define ITEM_POISONIUM_Z 10089
|
||||
#define ITEM_GROUNDIUM_Z 10090
|
||||
#define ITEM_ROCKIUM_Z 10091
|
||||
#define ITEM_BUGINIUM_Z 10092
|
||||
#define ITEM_GHOSTIUM_Z 10093
|
||||
#define ITEM_STEELIUM_Z 10094
|
||||
#define ITEM_FIRIUM_Z 10095
|
||||
#define ITEM_WATERIUM_Z 10096
|
||||
#define ITEM_GRASSIUM_Z 10097
|
||||
#define ITEM_ELECTRIUM_Z 10098
|
||||
#define ITEM_PSYCHIUM_Z 10099
|
||||
#define ITEM_ICIUM_Z 10100
|
||||
#define ITEM_DRAGONIUM_Z 10101
|
||||
#define ITEM_DARKINIUM_Z 10102
|
||||
#define ITEM_FAIRIUM_Z 10103
|
||||
#define ITEM_DOUSE_DRIVE 10104
|
||||
#define ITEM_SHOCK_DRIVE 10105
|
||||
#define ITEM_BURN_DRIVE 10106
|
||||
#define ITEM_CHILL_DRIVE 10107
|
||||
#define ITEM_BUG_MEMORY 10108
|
||||
#define ITEM_DARK_MEMORY 10109
|
||||
#define ITEM_DRAGON_MEMORY 10110
|
||||
#define ITEM_ELECTRIC_MEMORY 10111
|
||||
#define ITEM_FAIRY_MEMORY 10112
|
||||
#define ITEM_FIGHTING_MEMORY 10113
|
||||
#define ITEM_FIRE_MEMORY 10114
|
||||
#define ITEM_FLYING_MEMORY 10115
|
||||
#define ITEM_GHOST_MEMORY 10116
|
||||
#define ITEM_GRASS_MEMORY 10117
|
||||
#define ITEM_GROUND_MEMORY 10118
|
||||
#define ITEM_ICE_MEMORY 10119
|
||||
#define ITEM_POISON_MEMORY 10120
|
||||
#define ITEM_PSYCHIC_MEMORY 10121
|
||||
#define ITEM_ROCK_MEMORY 10122
|
||||
#define ITEM_STEEL_MEMORY 10123
|
||||
#define ITEM_WATER_MEMORY 10124
|
||||
|
||||
//FORM_ITEM_USE
|
||||
#define ITEM_GRACIDEA 10125
|
||||
#define ITEM_REVEAL_GLASS 10126
|
||||
#define ITEM_PRISON_BOTTLE 10127
|
||||
#define ITEM_RED_NECTAR 10128
|
||||
#define ITEM_YELLOW_NECTAR 10129
|
||||
#define ITEM_PINK_NECTAR 10130
|
||||
#define ITEM_PURPLE_NECTAR 10131
|
||||
|
||||
// Held Items
|
||||
#define ITEM_HONEY ITEM_NONE
|
||||
#endif // ITEM_EXPANSION
|
||||
|
||||
#ifndef BATTLE_ENGINE
|
||||
// Gen 4
|
||||
#define ABILITY_TANGLED_FEET ABILITY_NONE
|
||||
#define ABILITY_MOTOR_DRIVE ABILITY_NONE
|
||||
#define ABILITY_RIVALRY ABILITY_NONE
|
||||
#define ABILITY_STEADFAST ABILITY_NONE
|
||||
#define ABILITY_SNOW_CLOAK ABILITY_NONE
|
||||
#define ABILITY_GLUTTONY ABILITY_NONE
|
||||
#define ABILITY_ANGER_POINT ABILITY_NONE
|
||||
#define ABILITY_UNBURDEN ABILITY_NONE
|
||||
#define ABILITY_HEATPROOF ABILITY_NONE
|
||||
#define ABILITY_SIMPLE ABILITY_NONE
|
||||
#define ABILITY_DRY_SKIN ABILITY_NONE
|
||||
#define ABILITY_DOWNLOAD ABILITY_NONE
|
||||
#define ABILITY_IRON_FIST ABILITY_NONE
|
||||
#define ABILITY_POISON_HEAL ABILITY_NONE
|
||||
#define ABILITY_ADAPTABILITY ABILITY_NONE
|
||||
#define ABILITY_SKILL_LINK ABILITY_NONE
|
||||
#define ABILITY_HYDRATION ABILITY_NONE
|
||||
#define ABILITY_SOLAR_POWER ABILITY_NONE
|
||||
#define ABILITY_QUICK_FEET ABILITY_NONE
|
||||
#define ABILITY_NORMALIZE ABILITY_NONE
|
||||
#define ABILITY_SNIPER ABILITY_NONE
|
||||
#define ABILITY_MAGIC_GUARD ABILITY_NONE
|
||||
#define ABILITY_NO_GUARD ABILITY_NONE
|
||||
#define ABILITY_STALL ABILITY_NONE
|
||||
#define ABILITY_TECHNICIAN ABILITY_NONE
|
||||
#define ABILITY_LEAF_GUARD ABILITY_NONE
|
||||
#define ABILITY_KLUTZ ABILITY_NONE
|
||||
#define ABILITY_MOLD_BREAKER ABILITY_NONE
|
||||
#define ABILITY_SUPER_LUCK ABILITY_NONE
|
||||
#define ABILITY_AFTERMATH ABILITY_NONE
|
||||
#define ABILITY_ANTICIPATION ABILITY_NONE
|
||||
#define ABILITY_FOREWARN ABILITY_NONE
|
||||
#define ABILITY_UNAWARE ABILITY_NONE
|
||||
#define ABILITY_TINTED_LENS ABILITY_NONE
|
||||
#define ABILITY_FILTER ABILITY_NONE
|
||||
#define ABILITY_SLOW_START ABILITY_NONE
|
||||
#define ABILITY_SCRAPPY ABILITY_NONE
|
||||
#define ABILITY_STORM_DRAIN ABILITY_NONE
|
||||
#define ABILITY_ICE_BODY ABILITY_NONE
|
||||
#define ABILITY_SOLID_ROCK ABILITY_NONE
|
||||
#define ABILITY_SNOW_WARNING ABILITY_NONE
|
||||
#define ABILITY_HONEY_GATHER ABILITY_NONE
|
||||
#define ABILITY_FRISK ABILITY_NONE
|
||||
#define ABILITY_RECKLESS ABILITY_NONE
|
||||
#define ABILITY_MULTITYPE ABILITY_NONE
|
||||
#define ABILITY_FLOWER_GIFT ABILITY_NONE
|
||||
#define ABILITY_BAD_DREAMS ABILITY_NONE
|
||||
// Gen 5
|
||||
#define ABILITY_PICKPOCKET ABILITY_NONE
|
||||
#define ABILITY_SHEER_FORCE ABILITY_NONE
|
||||
#define ABILITY_CONTRARY ABILITY_NONE
|
||||
#define ABILITY_UNNERVE ABILITY_NONE
|
||||
#define ABILITY_DEFIANT ABILITY_NONE
|
||||
#define ABILITY_DEFEATIST ABILITY_NONE
|
||||
#define ABILITY_CURSED_BODY ABILITY_NONE
|
||||
#define ABILITY_HEALER ABILITY_NONE
|
||||
#define ABILITY_FRIEND_GUARD ABILITY_NONE
|
||||
#define ABILITY_WEAK_ARMOR ABILITY_NONE
|
||||
#define ABILITY_HEAVY_METAL ABILITY_NONE
|
||||
#define ABILITY_LIGHT_METAL ABILITY_NONE
|
||||
#define ABILITY_MULTISCALE ABILITY_NONE
|
||||
#define ABILITY_TOXIC_BOOST ABILITY_NONE
|
||||
#define ABILITY_FLARE_BOOST ABILITY_NONE
|
||||
#define ABILITY_HARVEST ABILITY_NONE
|
||||
#define ABILITY_TELEPATHY ABILITY_NONE
|
||||
#define ABILITY_MOODY ABILITY_NONE
|
||||
#define ABILITY_OVERCOAT ABILITY_NONE
|
||||
#define ABILITY_POISON_TOUCH ABILITY_NONE
|
||||
#define ABILITY_REGENERATOR ABILITY_NONE
|
||||
#define ABILITY_BIG_PECKS ABILITY_NONE
|
||||
#define ABILITY_SAND_RUSH ABILITY_NONE
|
||||
#define ABILITY_WONDER_SKIN ABILITY_NONE
|
||||
#define ABILITY_ANALYTIC ABILITY_NONE
|
||||
#define ABILITY_ILLUSION ABILITY_NONE
|
||||
#define ABILITY_IMPOSTER ABILITY_NONE
|
||||
#define ABILITY_INFILTRATOR ABILITY_NONE
|
||||
#define ABILITY_MUMMY ABILITY_NONE
|
||||
#define ABILITY_MOXIE ABILITY_NONE
|
||||
#define ABILITY_JUSTIFIED ABILITY_NONE
|
||||
#define ABILITY_RATTLED ABILITY_NONE
|
||||
#define ABILITY_MAGIC_BOUNCE ABILITY_NONE
|
||||
#define ABILITY_SAP_SIPPER ABILITY_NONE
|
||||
#define ABILITY_PRANKSTER ABILITY_NONE
|
||||
#define ABILITY_SAND_FORCE ABILITY_NONE
|
||||
#define ABILITY_IRON_BARBS ABILITY_NONE
|
||||
#define ABILITY_ZEN_MODE ABILITY_NONE
|
||||
#define ABILITY_VICTORY_STAR ABILITY_NONE
|
||||
#define ABILITY_TURBOBLAZE ABILITY_NONE
|
||||
#define ABILITY_TERAVOLT ABILITY_NONE
|
||||
// Gen 6
|
||||
#define ABILITY_AROMA_VEIL ABILITY_NONE
|
||||
#define ABILITY_FLOWER_VEIL ABILITY_NONE
|
||||
#define ABILITY_CHEEK_POUCH ABILITY_NONE
|
||||
#define ABILITY_PROTEAN ABILITY_NONE
|
||||
#define ABILITY_FUR_COAT ABILITY_NONE
|
||||
#define ABILITY_MAGICIAN ABILITY_NONE
|
||||
#define ABILITY_BULLETPROOF ABILITY_NONE
|
||||
#define ABILITY_COMPETITIVE ABILITY_NONE
|
||||
#define ABILITY_STRONG_JAW ABILITY_NONE
|
||||
#define ABILITY_REFRIGERATE ABILITY_NONE
|
||||
#define ABILITY_SWEET_VEIL ABILITY_NONE
|
||||
#define ABILITY_STANCE_CHANGE ABILITY_NONE
|
||||
#define ABILITY_GALE_WINGS ABILITY_NONE
|
||||
#define ABILITY_MEGA_LAUNCHER ABILITY_NONE
|
||||
#define ABILITY_GRASS_PELT ABILITY_NONE
|
||||
#define ABILITY_SYMBIOSIS ABILITY_NONE
|
||||
#define ABILITY_TOUGH_CLAWS ABILITY_NONE
|
||||
#define ABILITY_PIXILATE ABILITY_NONE
|
||||
#define ABILITY_GOOEY ABILITY_NONE
|
||||
#define ABILITY_AERILATE ABILITY_NONE
|
||||
#define ABILITY_PARENTAL_BOND ABILITY_NONE
|
||||
#define ABILITY_DARK_AURA ABILITY_NONE
|
||||
#define ABILITY_FAIRY_AURA ABILITY_NONE
|
||||
#define ABILITY_AURA_BREAK ABILITY_NONE
|
||||
#define ABILITY_PRIMORDIAL_SEA ABILITY_NONE
|
||||
#define ABILITY_DESOLATE_LAND ABILITY_NONE
|
||||
#define ABILITY_DELTA_STREAM ABILITY_NONE
|
||||
// Gen 7
|
||||
#define ABILITY_STAMINA ABILITY_NONE
|
||||
#define ABILITY_WIMP_OUT ABILITY_NONE
|
||||
#define ABILITY_EMERGENCY_EXIT ABILITY_NONE
|
||||
#define ABILITY_WATER_COMPACTION ABILITY_NONE
|
||||
#define ABILITY_MERCILESS ABILITY_NONE
|
||||
#define ABILITY_SHIELDS_DOWN ABILITY_NONE
|
||||
#define ABILITY_STAKEOUT ABILITY_NONE
|
||||
#define ABILITY_WATER_BUBBLE ABILITY_NONE
|
||||
#define ABILITY_STEELWORKER ABILITY_NONE
|
||||
#define ABILITY_BERSERK ABILITY_NONE
|
||||
#define ABILITY_SLUSH_RUSH ABILITY_NONE
|
||||
#define ABILITY_LONG_REACH ABILITY_NONE
|
||||
#define ABILITY_LIQUID_VOICE ABILITY_NONE
|
||||
#define ABILITY_TRIAGE ABILITY_NONE
|
||||
#define ABILITY_GALVANIZE ABILITY_NONE
|
||||
#define ABILITY_SURGE_SURFER ABILITY_NONE
|
||||
#define ABILITY_SCHOOLING ABILITY_NONE
|
||||
#define ABILITY_DISGUISE ABILITY_NONE
|
||||
#define ABILITY_BATTLE_BOND ABILITY_NONE
|
||||
#define ABILITY_POWER_CONSTRUCT ABILITY_NONE
|
||||
#define ABILITY_CORROSION ABILITY_NONE
|
||||
#define ABILITY_COMATOSE ABILITY_NONE
|
||||
#define ABILITY_QUEENLY_MAJESTY ABILITY_NONE
|
||||
#define ABILITY_INNARDS_OUT ABILITY_NONE
|
||||
#define ABILITY_DANCER ABILITY_NONE
|
||||
#define ABILITY_BATTERY ABILITY_NONE
|
||||
#define ABILITY_FLUFFY ABILITY_NONE
|
||||
#define ABILITY_DAZZLING ABILITY_NONE
|
||||
#define ABILITY_SOUL_HEART ABILITY_NONE
|
||||
#define ABILITY_TANGLING_HAIR ABILITY_NONE
|
||||
#define ABILITY_RECEIVER ABILITY_NONE
|
||||
#define ABILITY_POWER_OF_ALCHEMY ABILITY_NONE
|
||||
#define ABILITY_BEAST_BOOST ABILITY_NONE
|
||||
#define ABILITY_RKS_SYSTEM ABILITY_NONE
|
||||
#define ABILITY_ELECTRIC_SURGE ABILITY_NONE
|
||||
#define ABILITY_PSYCHIC_SURGE ABILITY_NONE
|
||||
#define ABILITY_MISTY_SURGE ABILITY_NONE
|
||||
#define ABILITY_GRASSY_SURGE ABILITY_NONE
|
||||
#define ABILITY_FULL_METAL_BODY ABILITY_NONE
|
||||
#define ABILITY_SHADOW_SHIELD ABILITY_NONE
|
||||
#define ABILITY_PRISM_ARMOR ABILITY_NONE
|
||||
#define ABILITY_NEUROFORCE ABILITY_NONE
|
||||
// Gen 8
|
||||
#define ABILITY_INTREPID_SWORD ABILITY_NONE
|
||||
#define ABILITY_DAUNTLESS_SHIELD ABILITY_NONE
|
||||
#define ABILITY_LIBERO ABILITY_NONE
|
||||
#define ABILITY_BALL_FETCH ABILITY_NONE
|
||||
#define ABILITY_COTTON_DOWN ABILITY_NONE
|
||||
#define ABILITY_PROPELLER_TAIL ABILITY_NONE
|
||||
#define ABILITY_MIRROR_ARMOR ABILITY_NONE
|
||||
#define ABILITY_GULP_MISSILE ABILITY_NONE
|
||||
#define ABILITY_STALWART ABILITY_NONE
|
||||
#define ABILITY_STEAM_ENGINE ABILITY_NONE
|
||||
#define ABILITY_PUNK_ROCK ABILITY_NONE
|
||||
#define ABILITY_SAND_SPIT ABILITY_NONE
|
||||
#define ABILITY_ICE_SCALES ABILITY_NONE
|
||||
#define ABILITY_RIPEN ABILITY_NONE
|
||||
#define ABILITY_ICE_FACE ABILITY_NONE
|
||||
#define ABILITY_POWER_SPOT ABILITY_NONE
|
||||
#define ABILITY_MIMICRY ABILITY_NONE
|
||||
#define ABILITY_SCREEN_CLEANER ABILITY_NONE
|
||||
#define ABILITY_STEELY_SPIRIT ABILITY_NONE
|
||||
#define ABILITY_PERISH_BODY ABILITY_NONE
|
||||
#define ABILITY_WANDERING_SPIRIT ABILITY_NONE
|
||||
#define ABILITY_GORILLA_TACTICS ABILITY_NONE
|
||||
#define ABILITY_NEUTRALIZING_GAS ABILITY_NONE
|
||||
#define ABILITY_PASTEL_VEIL ABILITY_NONE
|
||||
#define ABILITY_HUNGER_SWITCH ABILITY_NONE
|
||||
#define ABILITY_QUICK_DRAW ABILITY_NONE
|
||||
#define ABILITY_UNSEEN_FIST ABILITY_NONE
|
||||
#define ABILITY_CURIOUS_MEDICINE ABILITY_NONE
|
||||
#define ABILITY_TRANSISTOR ABILITY_NONE
|
||||
#define ABILITY_DRAGONS_MAW ABILITY_NONE
|
||||
#define ABILITY_CHILLING_NEIGH ABILITY_NONE
|
||||
#define ABILITY_GRIM_NEIGH ABILITY_NONE
|
||||
#define ABILITY_AS_ONE_ICE_RIDER ABILITY_NONE
|
||||
#define ABILITY_AS_ONE_SHADOW_RIDER ABILITY_NONE
|
||||
#endif // BATTLE_ENGINE
|
||||
|
||||
#endif // GUARD_CONSTANTS_POKEMON_CONFIG_H
|
||||
|
||||
@ -100,8 +100,8 @@
|
||||
#define MAPSEC_CINNABAR_ISLAND 0x60
|
||||
#define MAPSEC_INDIGO_PLATEAU 0x61
|
||||
#define MAPSEC_SAFFRON_CITY 0x62
|
||||
#define MAPSEC_ROUTE_4_FLYDUP 0x63
|
||||
#define MAPSEC_ROUTE_10_FLYDUP 0x64
|
||||
#define MAPSEC_ROUTE_4_POKECENTER 0x63
|
||||
#define MAPSEC_ROUTE_10_POKECENTER 0x64
|
||||
#define MAPSEC_ROUTE_1 0x65
|
||||
#define MAPSEC_ROUTE_2 0x66
|
||||
#define MAPSEC_ROUTE_3 0x67
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_CONSTANTS_SPECIES_H
|
||||
#define GUARD_CONSTANTS_SPECIES_H
|
||||
|
||||
#include "constants/pokemon_config.h"
|
||||
|
||||
#define SPECIES_NONE 0
|
||||
#define SPECIES_BULBASAUR 1
|
||||
#define SPECIES_IVYSAUR 2
|
||||
@ -901,8 +903,6 @@
|
||||
#define SPECIES_SPECTRIER 897
|
||||
#define SPECIES_CALYREX 898
|
||||
|
||||
#define FORMS_START SPECIES_CALYREX
|
||||
|
||||
// Megas
|
||||
#define SPECIES_VENUSAUR_MEGA FORMS_START + 1
|
||||
#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2
|
||||
@ -1021,6 +1021,7 @@
|
||||
// Pichu
|
||||
#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 102
|
||||
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
// Unown
|
||||
#define SPECIES_UNOWN_B FORMS_START + 103
|
||||
#define SPECIES_UNOWN_C FORMS_START + 104
|
||||
@ -1060,6 +1061,47 @@
|
||||
#define SPECIES_DEOXYS_DEFENSE FORMS_START + 134
|
||||
#define SPECIES_DEOXYS_SPEED FORMS_START + 135
|
||||
|
||||
#else
|
||||
// Unown
|
||||
#define SPECIES_UNOWN_B FORMS_START + 1
|
||||
#define SPECIES_UNOWN_C FORMS_START + 2
|
||||
#define SPECIES_UNOWN_D FORMS_START + 3
|
||||
#define SPECIES_UNOWN_E FORMS_START + 4
|
||||
#define SPECIES_UNOWN_F FORMS_START + 5
|
||||
#define SPECIES_UNOWN_G FORMS_START + 6
|
||||
#define SPECIES_UNOWN_H FORMS_START + 7
|
||||
#define SPECIES_UNOWN_I FORMS_START + 8
|
||||
#define SPECIES_UNOWN_J FORMS_START + 9
|
||||
#define SPECIES_UNOWN_K FORMS_START + 10
|
||||
#define SPECIES_UNOWN_L FORMS_START + 11
|
||||
#define SPECIES_UNOWN_M FORMS_START + 12
|
||||
#define SPECIES_UNOWN_N FORMS_START + 13
|
||||
#define SPECIES_UNOWN_O FORMS_START + 14
|
||||
#define SPECIES_UNOWN_P FORMS_START + 15
|
||||
#define SPECIES_UNOWN_Q FORMS_START + 16
|
||||
#define SPECIES_UNOWN_R FORMS_START + 17
|
||||
#define SPECIES_UNOWN_S FORMS_START + 18
|
||||
#define SPECIES_UNOWN_T FORMS_START + 19
|
||||
#define SPECIES_UNOWN_U FORMS_START + 20
|
||||
#define SPECIES_UNOWN_V FORMS_START + 21
|
||||
#define SPECIES_UNOWN_W FORMS_START + 22
|
||||
#define SPECIES_UNOWN_X FORMS_START + 23
|
||||
#define SPECIES_UNOWN_Y FORMS_START + 24
|
||||
#define SPECIES_UNOWN_Z FORMS_START + 25
|
||||
#define SPECIES_UNOWN_EMARK FORMS_START + 26
|
||||
#define SPECIES_UNOWN_QMARK FORMS_START + 27
|
||||
|
||||
// Castform
|
||||
#define SPECIES_CASTFORM_SUNNY FORMS_START + 28
|
||||
#define SPECIES_CASTFORM_RAINY FORMS_START + 29
|
||||
#define SPECIES_CASTFORM_SNOWY FORMS_START + 30
|
||||
|
||||
// Deoxys
|
||||
#define SPECIES_DEOXYS_ATTACK FORMS_START + 31
|
||||
#define SPECIES_DEOXYS_DEFENSE FORMS_START + 32
|
||||
#define SPECIES_DEOXYS_SPEED FORMS_START + 33
|
||||
#endif
|
||||
|
||||
// Burmy
|
||||
#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 136
|
||||
#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 137
|
||||
@ -1341,7 +1383,14 @@
|
||||
#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 307
|
||||
#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 308
|
||||
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
#define FORMS_START SPECIES_CALYREX
|
||||
#define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1
|
||||
#else
|
||||
#define FORMS_START SPECIES_DEOXYS
|
||||
#define SPECIES_EGG SPECIES_DEOXYS_SPEED + 1
|
||||
#endif
|
||||
|
||||
#define NUM_SPECIES SPECIES_EGG
|
||||
|
||||
#endif // GUARD_CONSTANTS_SPECIES_H
|
||||
|
||||
@ -52,8 +52,6 @@
|
||||
#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
|
||||
#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
|
||||
|
||||
#define HILL_TRAINER_NAME_LENGTH 11
|
||||
|
||||
#define TRAINER_HILL_OTID 0x10000000
|
||||
|
||||
// The full map of each Trainer Hill floor is 16x21.
|
||||
|
||||
@ -291,7 +291,7 @@ struct ContestResources
|
||||
struct ContestMoveAnimData *moveAnim;
|
||||
struct ContestTV *tv;
|
||||
struct ContestUnused * unused;
|
||||
u8 * contestBgTilemaps[CONTESTANT_COUNT];
|
||||
u8 *contestBgTilemaps[CONTESTANT_COUNT];
|
||||
void * boxBlinkTiles1;
|
||||
void * boxBlinkTiles2;
|
||||
void * animBgTileBuffer;
|
||||
|
||||
@ -57,6 +57,11 @@ struct TrainerMonItemCustomMoves
|
||||
u16 moves[MAX_MON_MOVES];
|
||||
};
|
||||
|
||||
#define NO_ITEM_DEFAULT_MOVES(party) { .NoItemDefaultMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = 0
|
||||
#define NO_ITEM_CUSTOM_MOVES(party) { .NoItemCustomMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET
|
||||
#define ITEM_DEFAULT_MOVES(party) { .ItemDefaultMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = F_TRAINER_PARTY_HELD_ITEM
|
||||
#define ITEM_CUSTOM_MOVES(party) { .ItemCustomMoves = party }, .partySize = ARRAY_COUNT(party), .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM
|
||||
|
||||
union TrainerMonPtr
|
||||
{
|
||||
const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
|
||||
@ -71,7 +76,7 @@ struct Trainer
|
||||
/*0x01*/ u8 trainerClass;
|
||||
/*0x02*/ u8 encounterMusic_gender; // last bit is gender
|
||||
/*0x03*/ u8 trainerPic;
|
||||
/*0x04*/ u8 trainerName[12];
|
||||
/*0x04*/ u8 trainerName[TRAINER_NAME_LENGTH + 1];
|
||||
/*0x10*/ u16 items[MAX_TRAINER_ITEMS];
|
||||
/*0x18*/ bool8 doubleBattle;
|
||||
/*0x1C*/ u32 aiFlags;
|
||||
|
||||
@ -10,14 +10,13 @@ void LZDecompressVram(const u32 *src, void *dest);
|
||||
|
||||
u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src);
|
||||
void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src);
|
||||
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src);
|
||||
|
||||
void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src);
|
||||
void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *src, void *buffer);
|
||||
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
|
||||
void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality);
|
||||
|
||||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
|
||||
@ -122,7 +122,7 @@ struct EasyChatWordsByLetter
|
||||
|
||||
void InitEasyChatPhrases(void);
|
||||
void ShowEasyChatScreen(void);
|
||||
u8 * CopyEasyChatWord(u8 *dest, u16 word);
|
||||
u8 *CopyEasyChatWord(u8 *dest, u16 word);
|
||||
bool32 IsEasyChatAnswerUnlocked(int word);
|
||||
void InitializeEasyChatWordArray(u16 *words, u16 length);
|
||||
u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows);
|
||||
|
||||
@ -63,7 +63,7 @@ struct PairedPalettes
|
||||
|
||||
struct LockedAnimObjectEvents
|
||||
{
|
||||
u8 objectEventIds[OBJECT_EVENTS_COUNT];
|
||||
u8 localIds[OBJECT_EVENTS_COUNT];
|
||||
u8 count;
|
||||
};
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
#ifndef GUARD_EVOLUTION_SCENE_H
|
||||
#define GUARD_EVOLUTION_SCENE_H
|
||||
|
||||
void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
|
||||
void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
|
||||
void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
|
||||
void BeginEvolutionScene(struct Pokemon *mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
|
||||
void EvolutionScene(struct Pokemon *mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
|
||||
void TradeEvolutionScene(struct Pokemon *mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
|
||||
|
||||
extern void (*gCB2_AfterEvolution)(void);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#define GUARD_FARAWAY_ISLAND_H
|
||||
|
||||
u32 GetMewMoveDirection(void);
|
||||
bool8 ShouldMewShakeGrass(struct ObjectEvent*);
|
||||
bool8 ShouldMewShakeGrass(struct ObjectEvent *);
|
||||
void UpdateFarawayIslandStepCounter(void);
|
||||
bool8 ObjectEventIsFarawayIslandMew(struct ObjectEvent *);
|
||||
bool8 IsMewPlayingHideAndSeek(void);
|
||||
|
||||
@ -39,8 +39,8 @@ void StartEscalatorWarp(u8 metatileBehavior, u8 priority);
|
||||
void StartLavaridgeGymB1FWarp(u8 priority);
|
||||
void StartLavaridgeGym1FWarp(u8 priority);
|
||||
|
||||
void SpriteCB_AshPuff(struct Sprite*);
|
||||
void SpriteCB_AshLaunch(struct Sprite*);
|
||||
void SpriteCB_AshPuff(struct Sprite *);
|
||||
void SpriteCB_AshLaunch(struct Sprite *);
|
||||
|
||||
void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
|
||||
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
|
||||
|
||||
@ -20,25 +20,25 @@ void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset);
|
||||
bool8 UpdateRevealDisguise(struct ObjectEvent *);
|
||||
void StartRevealDisguise(struct ObjectEvent *);
|
||||
void StartAshFieldEffect(s16, s16, u16, s16);
|
||||
void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8);
|
||||
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*);
|
||||
void SetUpReflection(struct ObjectEvent *, struct Sprite *, u8);
|
||||
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent *);
|
||||
u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
|
||||
void UpdateRayquazaSpotlightEffect(struct Sprite*);
|
||||
void UpdateShadowFieldEffect(struct Sprite*);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite*);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite*);
|
||||
void UpdateAshFieldEffect(struct Sprite*);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite*);
|
||||
void UpdateJumpImpactEffect(struct Sprite*);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite*);
|
||||
void UpdateSplashFieldEffect(struct Sprite*);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite*);
|
||||
void UpdateSandPileFieldEffect(struct Sprite*);
|
||||
void UpdateDisguiseFieldEffect(struct Sprite*);
|
||||
void UpdateShortGrassFieldEffect(struct Sprite*);
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite*);
|
||||
void UpdateBubblesFieldEffect(struct Sprite*);
|
||||
void UpdateSparkleFieldEffect(struct Sprite*);
|
||||
void UpdateRayquazaSpotlightEffect(struct Sprite *);
|
||||
void UpdateShadowFieldEffect(struct Sprite *);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite *);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite *);
|
||||
void UpdateAshFieldEffect(struct Sprite *);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite *);
|
||||
void UpdateJumpImpactEffect(struct Sprite *);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite *);
|
||||
void UpdateSplashFieldEffect(struct Sprite *);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite *);
|
||||
void UpdateSandPileFieldEffect(struct Sprite *);
|
||||
void UpdateDisguiseFieldEffect(struct Sprite *);
|
||||
void UpdateShortGrassFieldEffect(struct Sprite *);
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite *);
|
||||
void UpdateBubblesFieldEffect(struct Sprite *);
|
||||
void UpdateSparkleFieldEffect(struct Sprite *);
|
||||
void SetSpriteInvisible(u8 spriteId);
|
||||
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
|
||||
|
||||
|
||||
@ -25,8 +25,8 @@ u32 MapGridGetMetatileIdAt(int, int);
|
||||
u32 MapGridGetMetatileBehaviorAt(int, int);
|
||||
void MapGridSetMetatileIdAt(int, int, u16);
|
||||
void MapGridSetMetatileEntryAt(int, int, u16);
|
||||
void GetCameraCoords(u16*, u16*);
|
||||
bool8 MapGridIsImpassableAt(int, int);
|
||||
void GetCameraCoords(u16 *, u16 *);
|
||||
u8 MapGridGetCollisionAt(int, int);
|
||||
int GetMapBorderIdAt(int x, int y);
|
||||
bool32 CanCameraMoveInDirection(int direction);
|
||||
u16 GetMetatileAttributesById(u16 metatileId);
|
||||
|
||||
@ -23,14 +23,14 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
|
||||
#ifdef NDEBUG
|
||||
#define AGB_ASSERT(exp)
|
||||
#else
|
||||
#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
|
||||
#define AGB_ASSERT(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
|
||||
#endif
|
||||
|
||||
#undef AGB_WARNING
|
||||
#ifdef NDEBUG
|
||||
#define AGB_WARNING(exp)
|
||||
#else
|
||||
#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
|
||||
#define AGB_WARNING(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
|
||||
#endif
|
||||
|
||||
// for matching purposes
|
||||
@ -38,13 +38,13 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
|
||||
#ifdef NDEBUG
|
||||
#define AGB_ASSERT_EX(exp, file, line)
|
||||
#else
|
||||
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
|
||||
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 1);
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define AGB_WARNING_EX(exp, file, line)
|
||||
#else
|
||||
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
|
||||
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 0);
|
||||
#endif
|
||||
|
||||
#endif // GUARD_GBA_ISAGBPRINT_H
|
||||
|
||||
@ -109,13 +109,13 @@
|
||||
#define T1_READ_8(ptr) ((ptr)[0])
|
||||
#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
|
||||
#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
|
||||
#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
|
||||
#define T1_READ_PTR(ptr) (u8 *) T1_READ_32(ptr)
|
||||
|
||||
// T2_READ_8 is a duplicate to remain consistent with each group.
|
||||
#define T2_READ_8(ptr) ((ptr)[0])
|
||||
#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
|
||||
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
|
||||
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
|
||||
#define T2_READ_PTR(ptr) (void *) T2_READ_32(ptr)
|
||||
|
||||
// Macros for checking the joypad
|
||||
#define TEST_BUTTON(field, button) ((field) & (button))
|
||||
|
||||
@ -81,7 +81,8 @@ typedef union // size = 0x24
|
||||
/*0x01*/ bool8 active;
|
||||
/*0x02*/ u16 species;
|
||||
/*0x04*/ u8 pokemonName[POKEMON_NAME_LENGTH + 1];
|
||||
/*0x0F*/ u8 trainerName[11];
|
||||
/*0x0F*/ u8 trainerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x17*/ u8 unused[3];
|
||||
/*0x1A*/ u8 random;
|
||||
/*0x1B*/ u8 random2;
|
||||
/*0x1C*/ u16 randomSpecies;
|
||||
|
||||
@ -454,6 +454,7 @@ extern const u32 gMonFrontPic_Groudon[];
|
||||
extern const u32 gMonFrontPic_Rayquaza[];
|
||||
extern const u32 gMonFrontPic_Jirachi[];
|
||||
extern const u32 gMonFrontPic_Deoxys[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonFrontPic_Turtwig[];
|
||||
extern const u32 gMonFrontPic_Grotle[];
|
||||
extern const u32 gMonFrontPic_Torterra[];
|
||||
@ -1081,6 +1082,7 @@ extern const u32 gMonFrontPic_PikachuAlolaCap[];
|
||||
extern const u32 gMonFrontPic_PikachuPartnerCap[];
|
||||
extern const u32 gMonFrontPic_PikachuWorldCap[];
|
||||
extern const u32 gMonFrontPic_PichuSpikyEared[];
|
||||
#endif
|
||||
extern const u32 gMonFrontPic_UnownB[];
|
||||
extern const u32 gMonFrontPic_UnownC[];
|
||||
extern const u32 gMonFrontPic_UnownD[];
|
||||
@ -1114,6 +1116,7 @@ extern const u32 gMonFrontPic_CastformSnowy[];
|
||||
extern const u32 gMonFrontPic_DeoxysAttack[];
|
||||
extern const u32 gMonFrontPic_DeoxysDefense[];
|
||||
extern const u32 gMonFrontPic_DeoxysSpeed[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonFrontPic_BurmySandyCloak[];
|
||||
extern const u32 gMonFrontPic_BurmyTrashCloak[];
|
||||
extern const u32 gMonFrontPic_WormadamSandyCloak[];
|
||||
@ -1216,6 +1219,7 @@ extern const u32 gMonFrontPic_UrshifuRapidStrikeStyle[];
|
||||
extern const u32 gMonFrontPic_ZarudeDada[];
|
||||
extern const u32 gMonFrontPic_CalyrexIceRider[];
|
||||
extern const u32 gMonFrontPic_CalyrexShadowRider[];
|
||||
#endif
|
||||
extern const u32 gMonFrontPic_Egg[];
|
||||
|
||||
extern const u32 gMonBackPic_CircledQuestionMark[];
|
||||
@ -1607,6 +1611,7 @@ extern const u32 gMonBackPic_Groudon[];
|
||||
extern const u32 gMonBackPic_Rayquaza[];
|
||||
extern const u32 gMonBackPic_Jirachi[];
|
||||
extern const u32 gMonBackPic_Deoxys[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonBackPic_Turtwig[];
|
||||
extern const u32 gMonBackPic_Grotle[];
|
||||
extern const u32 gMonBackPic_Torterra[];
|
||||
@ -2233,6 +2238,7 @@ extern const u32 gMonBackPic_PikachuAlolaCap[];
|
||||
extern const u32 gMonBackPic_PikachuPartnerCap[];
|
||||
extern const u32 gMonBackPic_PikachuWorldCap[];
|
||||
extern const u32 gMonBackPic_PichuSpikyEared[];
|
||||
#endif
|
||||
extern const u32 gMonBackPic_UnownB[];
|
||||
extern const u32 gMonBackPic_UnownC[];
|
||||
extern const u32 gMonBackPic_UnownD[];
|
||||
@ -2266,6 +2272,7 @@ extern const u32 gMonBackPic_CastformSnowy[];
|
||||
extern const u32 gMonBackPic_DeoxysAttack[];
|
||||
extern const u32 gMonBackPic_DeoxysDefense[];
|
||||
extern const u32 gMonBackPic_DeoxysSpeed[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonBackPic_BurmySandyCloak[];
|
||||
extern const u32 gMonBackPic_BurmyTrashCloak[];
|
||||
extern const u32 gMonBackPic_WormadamSandyCloak[];
|
||||
@ -2368,6 +2375,7 @@ extern const u32 gMonBackPic_UrshifuRapidStrikeStyle[];
|
||||
extern const u32 gMonBackPic_ZarudeDada[];
|
||||
extern const u32 gMonBackPic_CalyrexIceRider[];
|
||||
extern const u32 gMonBackPic_CalyrexShadowRider[];
|
||||
#endif
|
||||
|
||||
extern const u32 gMonPalette_CircledQuestionMark[];
|
||||
extern const u32 gMonPalette_DoubleQuestionMark[];
|
||||
@ -2757,6 +2765,7 @@ extern const u32 gMonPalette_Groudon[];
|
||||
extern const u32 gMonPalette_Rayquaza[];
|
||||
extern const u32 gMonPalette_Jirachi[];
|
||||
extern const u32 gMonPalette_Deoxys[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonPalette_Turtwig[];
|
||||
extern const u32 gMonPalette_Grotle[];
|
||||
extern const u32 gMonPalette_Torterra[];
|
||||
@ -3377,12 +3386,14 @@ extern const u32 gMonPalette_PikachuAlolaCap[];
|
||||
extern const u32 gMonPalette_PikachuPartnerCap[];
|
||||
extern const u32 gMonPalette_PikachuWorldCap[];
|
||||
extern const u32 gMonPalette_PichuSpikyEared[];
|
||||
#endif
|
||||
extern const u32 gMonPalette_CastformSunny[];
|
||||
extern const u32 gMonPalette_CastformRainy[];
|
||||
extern const u32 gMonPalette_CastformSnowy[];
|
||||
extern const u32 gMonPalette_DeoxysAttack[];
|
||||
extern const u32 gMonPalette_DeoxysDefense[];
|
||||
extern const u32 gMonPalette_DeoxysSpeed[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonPalette_BurmySandyCloak[];
|
||||
extern const u32 gMonPalette_BurmyTrashCloak[];
|
||||
extern const u32 gMonPalette_WormadamSandyCloak[];
|
||||
@ -3538,6 +3549,7 @@ extern const u32 gMonPalette_UrshifuRapidStrikeStyle[];
|
||||
extern const u32 gMonPalette_ZarudeDada[];
|
||||
extern const u32 gMonPalette_CalyrexIceRider[];
|
||||
extern const u32 gMonPalette_CalyrexShadowRider[];
|
||||
#endif
|
||||
extern const u32 gMonPalette_Egg[];
|
||||
|
||||
extern const u32 gMonShinyPalette_CircledQuestionMark[];
|
||||
@ -3928,6 +3940,7 @@ extern const u32 gMonShinyPalette_Groudon[];
|
||||
extern const u32 gMonShinyPalette_Rayquaza[];
|
||||
extern const u32 gMonShinyPalette_Jirachi[];
|
||||
extern const u32 gMonShinyPalette_Deoxys[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonShinyPalette_Turtwig[];
|
||||
extern const u32 gMonShinyPalette_Grotle[];
|
||||
extern const u32 gMonShinyPalette_Torterra[];
|
||||
@ -4549,12 +4562,14 @@ extern const u32 gMonShinyPalette_PikachuAlolaCap[];
|
||||
extern const u32 gMonShinyPalette_PikachuPartnerCap[];
|
||||
extern const u32 gMonShinyPalette_PikachuWorldCap[];
|
||||
extern const u32 gMonShinyPalette_PichuSpikyEared[];
|
||||
#endif
|
||||
extern const u32 gMonShinyPalette_CastformSunny[];
|
||||
extern const u32 gMonShinyPalette_CastformRainy[];
|
||||
extern const u32 gMonShinyPalette_CastformSnowy[];
|
||||
extern const u32 gMonShinyPalette_DeoxysAttack[];
|
||||
extern const u32 gMonShinyPalette_DeoxysDefense[];
|
||||
extern const u32 gMonShinyPalette_DeoxysSpeed[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u32 gMonShinyPalette_BurmySandyCloak[];
|
||||
extern const u32 gMonShinyPalette_BurmyTrashCloak[];
|
||||
extern const u32 gMonShinyPalette_WormadamSandyCloak[];
|
||||
@ -4704,6 +4719,7 @@ extern const u32 gMonShinyPalette_UrshifuRapidStrikeStyle[];
|
||||
extern const u32 gMonShinyPalette_ZarudeDada[];
|
||||
extern const u32 gMonShinyPalette_CalyrexIceRider[];
|
||||
extern const u32 gMonShinyPalette_CalyrexShadowRider[];
|
||||
#endif
|
||||
|
||||
extern const u8 gMonIcon_QuestionMark[];
|
||||
extern const u8 gMonIcon_Bulbasaur[];
|
||||
@ -5092,6 +5108,7 @@ extern const u8 gMonIcon_Groudon[];
|
||||
extern const u8 gMonIcon_Rayquaza[];
|
||||
extern const u8 gMonIcon_Jirachi[];
|
||||
extern const u8 gMonIcon_Deoxys[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u8 gMonIcon_Turtwig[];
|
||||
extern const u8 gMonIcon_Grotle[];
|
||||
extern const u8 gMonIcon_Torterra[];
|
||||
@ -5709,6 +5726,7 @@ extern const u8 gMonIcon_PikachuKalosCap[];
|
||||
extern const u8 gMonIcon_PikachuAlolaCap[];
|
||||
extern const u8 gMonIcon_PikachuPartnerCap[];
|
||||
extern const u8 gMonIcon_PichuSpikyEared[];
|
||||
#endif
|
||||
extern const u8 gMonIcon_UnownB[];
|
||||
extern const u8 gMonIcon_UnownC[];
|
||||
extern const u8 gMonIcon_UnownD[];
|
||||
@ -5742,6 +5760,7 @@ extern const u8 gMonIcon_CastformSnowy[];
|
||||
extern const u8 gMonIcon_DeoxysAttack[];
|
||||
extern const u8 gMonIcon_DeoxysDefense[];
|
||||
extern const u8 gMonIcon_DeoxysSpeed[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u8 gMonIcon_BurmySandyCloak[];
|
||||
extern const u8 gMonIcon_BurmyTrashCloak[];
|
||||
extern const u8 gMonIcon_WormadamSandyCloak[];
|
||||
@ -5858,6 +5877,7 @@ extern const u8 gMonIcon_EternatusEternamax[];
|
||||
extern const u8 gMonIcon_ZarudeDada[];
|
||||
extern const u8 gMonIcon_CalyrexIceRider[];
|
||||
extern const u8 gMonIcon_CalyrexShadowRider[];
|
||||
#endif
|
||||
extern const u8 gMonIcon_Egg[];
|
||||
|
||||
extern const u8 gMonFootprint_QuestionMark[];
|
||||
@ -6247,6 +6267,7 @@ extern const u8 gMonFootprint_Latios[];
|
||||
extern const u8 gMonFootprint_Jirachi[];
|
||||
extern const u8 gMonFootprint_Deoxys[];
|
||||
extern const u8 gMonFootprint_Chimecho[];
|
||||
#if P_NEW_POKEMON == TRUE
|
||||
extern const u8 gMonFootprint_Turtwig[];
|
||||
extern const u8 gMonFootprint_Grotle[];
|
||||
extern const u8 gMonFootprint_Torterra[];
|
||||
@ -6759,6 +6780,7 @@ extern const u8 gMonFootprint_Regidrago[];
|
||||
extern const u8 gMonFootprint_Glastrier[];
|
||||
extern const u8 gMonFootprint_Spectrier[];
|
||||
extern const u8 gMonFootprint_Calyrex[];
|
||||
#endif
|
||||
|
||||
// trainer sprites
|
||||
extern const u32 gTrainerFrontPic_Hiker[];
|
||||
@ -8766,18 +8788,24 @@ extern const u16 gBattleInterface_BallStatusBarPal[];
|
||||
extern const u16 gBattleInterface_BallDisplayPal[];
|
||||
extern const u8 gHealthboxElementsGfxTable[][32];
|
||||
|
||||
extern const u16 gNamingScreenMenu_Pal[];
|
||||
extern const u16 gNamingScreenMenu_Pal[6][16];
|
||||
extern const u32 gNamingScreenMenu_Gfx[];
|
||||
extern const u32 gNamingScreenBackground_Tilemap[];
|
||||
extern const u8 gNamingScreenKeyboardUpper_Tilemap[];
|
||||
extern const u8 gNamingScreenKeyboardLower_Tilemap[];
|
||||
extern const u8 gNamingScreenKeyboardSymbols_Tilemap[];
|
||||
extern const u8 gNamingScreenRWindow_Gfx[];
|
||||
extern const u8 gNamingScreenPageButton_Gfx[];
|
||||
extern const u8 gNamingScreenROptions_Gfx[];
|
||||
extern const u8 gNamingScreenCursor_Gfx[];
|
||||
extern const u8 gNamingScreenInputArrow_Gfx[];
|
||||
extern const u8 gNamingScreenUnderscore_Gfx[];
|
||||
extern const u32 gNamingScreenPageSwapFrame_Gfx[];
|
||||
extern const u32 gNamingScreenBackButton_Gfx[];
|
||||
extern const u32 gNamingScreenOKButton_Gfx[];
|
||||
extern const u32 gNamingScreenPageSwapButton_Gfx[];
|
||||
extern const u32 gNamingScreenPageSwapUpper_Gfx[];
|
||||
extern const u32 gNamingScreenPageSwapLower_Gfx[];
|
||||
extern const u32 gNamingScreenPageSwapOthers_Gfx[];
|
||||
extern const u32 gNamingScreenCursor_Gfx[];
|
||||
extern const u32 gNamingScreenCursorSquished_Gfx[];
|
||||
extern const u32 gNamingScreenCursorFilled_Gfx[];
|
||||
extern const u32 gNamingScreenInputArrow_Gfx[];
|
||||
extern const u32 gNamingScreenUnderscore_Gfx[];
|
||||
|
||||
extern const u32 gPokeblockFeedBg_Tilemap[];
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth);
|
||||
int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int totalWidth, int letterSpacing);
|
||||
int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing);
|
||||
int GetMaxWidthInMenuTable(const struct MenuAction *actions, int numActions);
|
||||
int GetMaxWidthInSubsetOfMenuTable(const struct MenuAction *actions, const u8* actionIds, int numActions);
|
||||
int GetMaxWidthInSubsetOfMenuTable(const struct MenuAction *actions, const u8 *actionIds, int numActions);
|
||||
int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu);
|
||||
void CopyMonCategoryText(int dexNum, u8 *dest);
|
||||
u8 *GetStringClearToWidth(u8 *dest, int fontId, const u8 *str, int totalStringWidth);
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
|
||||
// Exported ROM declarations
|
||||
void CB2_InitCopyrightScreenAfterBootup(void);
|
||||
void CB2_InitCopyrightScreenAfterBootup(void);
|
||||
void CB2_InitCopyrightScreenAfterTitleScreen(void);
|
||||
void PanFadeAndZoomScreen(u16, u16, u16, u16);
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ struct BagMenu
|
||||
u8 unused1[2];
|
||||
u8 pocketScrollArrowsTask;
|
||||
u8 pocketSwitchArrowsTask;
|
||||
const u8* contextMenuItemsPtr;
|
||||
const u8 *contextMenuItemsPtr;
|
||||
u8 contextMenuItemsBuffer[4];
|
||||
u8 contextMenuNumItems;
|
||||
u8 numItemStacks[POCKETS_COUNT];
|
||||
|
||||
@ -98,7 +98,7 @@ struct RfuGameCompatibilityData
|
||||
// anything the developers want. This struct is what GF decided to use it for.
|
||||
// It can be up to 13 bytes in size (RFU_GAME_NAME_LENGTH).
|
||||
// The player's name is sent separately as the username ("uname"), and does not
|
||||
// use a struct (gHostRfuUsername).
|
||||
// use a struct (gHostRfuUsername).
|
||||
struct __attribute__((packed, aligned(2))) RfuGameData
|
||||
{
|
||||
struct RfuGameCompatibilityData compatibility;
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
|| itemId == ITEM_RETRO_MAIL))
|
||||
|
||||
// mail.h
|
||||
void ReadMail(struct Mail *mail, void (*callback)(void), bool8 flag);
|
||||
void ReadMail(struct Mail *mail, void (*exitCallback)(void), bool8 hasText);
|
||||
|
||||
// mail_data.h
|
||||
void ClearAllMail(void);
|
||||
|
||||
@ -50,7 +50,7 @@ void LoadMessageBoxAndBorderGfx(void);
|
||||
void DrawDialogueFrame(u8 windowId, bool8 copyToVram);
|
||||
void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram);
|
||||
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
|
||||
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
|
||||
void PrintPlayerNameOnWindow(u8, const u8 *, u16, u16);
|
||||
void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram);
|
||||
void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram);
|
||||
void DisplayYesNoMenuDefaultYes(void);
|
||||
@ -61,7 +61,7 @@ void AddTextPrinterWithCallbackForMessage(bool8 canSpeedUp, void (*callback)(str
|
||||
void BgDmaFill(u32 bg, u8 value, int offset, int size);
|
||||
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
|
||||
void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram);
|
||||
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
|
||||
void SetWindowTemplateFields(struct WindowTemplate *template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
|
||||
void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
|
||||
void ScheduleBgCopyTilemapToVram(u8 bgNum);
|
||||
void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
#ifndef GUARD_MONEY_H
|
||||
#define GUARD_MONEY_H
|
||||
|
||||
u32 GetMoney(u32* moneyPtr);
|
||||
void SetMoney(u32* moneyPtr, u32 newValue);
|
||||
bool8 IsEnoughMoney(u32* moneyPtr, u32 cost);
|
||||
void AddMoney(u32* moneyPtr, u32 toAdd);
|
||||
void RemoveMoney(u32* moneyPtr, u32 toSub);
|
||||
u32 GetMoney(u32 *moneyPtr);
|
||||
void SetMoney(u32 *moneyPtr, u32 newValue);
|
||||
bool8 IsEnoughMoney(u32 *moneyPtr, u32 cost);
|
||||
void AddMoney(u32 *moneyPtr, u32 toAdd);
|
||||
void RemoveMoney(u32 *moneyPtr, u32 toSub);
|
||||
bool8 IsEnoughForCostInVar0x8005(void);
|
||||
void SubtractMoneyFromVar0x8005(void);
|
||||
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
|
||||
|
||||
@ -36,8 +36,8 @@ bool8 IsMultiBattle(void);
|
||||
u8 GetCursorSelectionMonId(void);
|
||||
u8 GetPartyMenuType(void);
|
||||
void Task_HandleChooseMonInput(u8 taskId);
|
||||
u8* GetMonNickname(struct Pokemon *mon, u8 *dest);
|
||||
u8 DisplayPartyMenuMessage(const u8* str, bool8 keepOpen);
|
||||
u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
|
||||
u8 DisplayPartyMenuMessage(const u8 *str, bool8 keepOpen);
|
||||
bool8 IsPartyMenuTextPrinterActive(void);
|
||||
void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 HPDifference, TaskFunc task);
|
||||
u8 GetAilmentFromStatus(u32 status);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#ifndef GUARD_POKEDEX_AREA_SCREEN_H
|
||||
#define GUARD_POKEDEX_AREA_SCREEN_H
|
||||
|
||||
void ShowPokedexAreaScreen(u16, u8*);
|
||||
void ShowPokedexAreaScreen(u16, u8 *);
|
||||
|
||||
#endif // GUARD_POKEDEX_AREA_SCREEN_H
|
||||
|
||||
@ -12,10 +12,10 @@ struct CryScreenWindow
|
||||
|
||||
extern u8 gDexCryScreenState;
|
||||
|
||||
bool8 LoadCryWaveformWindow(struct CryScreenWindow*, u8);
|
||||
bool8 LoadCryWaveformWindow(struct CryScreenWindow *, u8);
|
||||
void UpdateCryWaveformWindow(u8);
|
||||
void CryScreenPlayButton(u16);
|
||||
bool8 LoadCryMeter(struct CryScreenWindow*, u8);
|
||||
bool8 LoadCryMeter(struct CryScreenWindow *, u8);
|
||||
void FreeCryScreen(void);
|
||||
|
||||
#endif
|
||||
|
||||
@ -9,6 +9,99 @@
|
||||
#define GET_BASE_SPECIES_ID(speciesId) (GetFormSpeciesId(speciesId, 0))
|
||||
#define FORM_SPECIES_END (0xffff)
|
||||
|
||||
// Property labels for Get(Box)MonData / Set(Box)MonData
|
||||
enum {
|
||||
MON_DATA_PERSONALITY,
|
||||
MON_DATA_OT_ID,
|
||||
MON_DATA_NICKNAME,
|
||||
MON_DATA_LANGUAGE,
|
||||
MON_DATA_SANITY_IS_BAD_EGG,
|
||||
MON_DATA_SANITY_HAS_SPECIES,
|
||||
MON_DATA_SANITY_IS_EGG,
|
||||
MON_DATA_OT_NAME,
|
||||
MON_DATA_MARKINGS,
|
||||
MON_DATA_CHECKSUM,
|
||||
MON_DATA_ENCRYPT_SEPARATOR,
|
||||
MON_DATA_SPECIES,
|
||||
MON_DATA_HELD_ITEM,
|
||||
MON_DATA_MOVE1,
|
||||
MON_DATA_MOVE2,
|
||||
MON_DATA_MOVE3,
|
||||
MON_DATA_MOVE4,
|
||||
MON_DATA_PP1,
|
||||
MON_DATA_PP2,
|
||||
MON_DATA_PP3,
|
||||
MON_DATA_PP4,
|
||||
MON_DATA_PP_BONUSES,
|
||||
MON_DATA_COOL,
|
||||
MON_DATA_BEAUTY,
|
||||
MON_DATA_CUTE,
|
||||
MON_DATA_EXP,
|
||||
MON_DATA_HP_EV,
|
||||
MON_DATA_ATK_EV,
|
||||
MON_DATA_DEF_EV,
|
||||
MON_DATA_SPEED_EV,
|
||||
MON_DATA_SPATK_EV,
|
||||
MON_DATA_SPDEF_EV,
|
||||
MON_DATA_FRIENDSHIP,
|
||||
MON_DATA_SMART,
|
||||
MON_DATA_POKERUS,
|
||||
MON_DATA_MET_LOCATION,
|
||||
MON_DATA_MET_LEVEL,
|
||||
MON_DATA_MET_GAME,
|
||||
MON_DATA_POKEBALL,
|
||||
MON_DATA_HP_IV,
|
||||
MON_DATA_ATK_IV,
|
||||
MON_DATA_DEF_IV,
|
||||
MON_DATA_SPEED_IV,
|
||||
MON_DATA_SPATK_IV,
|
||||
MON_DATA_SPDEF_IV,
|
||||
MON_DATA_IS_EGG,
|
||||
MON_DATA_ABILITY_NUM,
|
||||
MON_DATA_TOUGH,
|
||||
MON_DATA_SHEEN,
|
||||
MON_DATA_OT_GENDER,
|
||||
MON_DATA_COOL_RIBBON,
|
||||
MON_DATA_BEAUTY_RIBBON,
|
||||
MON_DATA_CUTE_RIBBON,
|
||||
MON_DATA_SMART_RIBBON,
|
||||
MON_DATA_TOUGH_RIBBON,
|
||||
MON_DATA_STATUS,
|
||||
MON_DATA_LEVEL,
|
||||
MON_DATA_HP,
|
||||
MON_DATA_MAX_HP,
|
||||
MON_DATA_ATK,
|
||||
MON_DATA_DEF,
|
||||
MON_DATA_SPEED,
|
||||
MON_DATA_SPATK,
|
||||
MON_DATA_SPDEF,
|
||||
MON_DATA_MAIL,
|
||||
MON_DATA_SPECIES2,
|
||||
MON_DATA_IVS,
|
||||
MON_DATA_CHAMPION_RIBBON,
|
||||
MON_DATA_WINNING_RIBBON,
|
||||
MON_DATA_VICTORY_RIBBON,
|
||||
MON_DATA_ARTIST_RIBBON,
|
||||
MON_DATA_EFFORT_RIBBON,
|
||||
MON_DATA_MARINE_RIBBON,
|
||||
MON_DATA_LAND_RIBBON,
|
||||
MON_DATA_SKY_RIBBON,
|
||||
MON_DATA_COUNTRY_RIBBON,
|
||||
MON_DATA_NATIONAL_RIBBON,
|
||||
MON_DATA_EARTH_RIBBON,
|
||||
MON_DATA_WORLD_RIBBON,
|
||||
MON_DATA_UNUSED_RIBBONS,
|
||||
MON_DATA_EVENT_LEGAL,
|
||||
MON_DATA_KNOWN_MOVES,
|
||||
MON_DATA_RIBBON_COUNT,
|
||||
MON_DATA_RIBBONS,
|
||||
MON_DATA_ATK2,
|
||||
MON_DATA_DEF2,
|
||||
MON_DATA_SPEED2,
|
||||
MON_DATA_SPATK2,
|
||||
MON_DATA_SPDEF2,
|
||||
};
|
||||
|
||||
struct PokemonSubstruct0
|
||||
{
|
||||
/*0x00*/ u16 species;
|
||||
@ -445,11 +538,11 @@ void SetWildMonHeldItem(void);
|
||||
bool8 IsMonShiny(struct Pokemon *mon);
|
||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||
const u8 *GetTrainerPartnerName(void);
|
||||
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 panMode);
|
||||
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 panModeAnimFlag);
|
||||
void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame);
|
||||
void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode);
|
||||
void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag);
|
||||
void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame);
|
||||
void StopPokemonAnimationDelayTask(void);
|
||||
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
|
||||
void BattleAnimateBackSprite(struct Sprite *sprite, u16 species);
|
||||
u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId);
|
||||
u16 FacilityClassToPicIndex(u16 facilityClass);
|
||||
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
|
||||
|
||||