Merge pull request #2229 from AsparagusEduardo/RHH_MergedBranchUltimate

Merged branch
This commit is contained in:
Eduardo Quezada D'Ottone 2022-08-23 13:12:22 -04:00 committed by GitHub
commit 4f333766fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
356 changed files with 6152 additions and 8190 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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$"

View File

@ -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"

View File

@ -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…$"

View File

@ -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!$"

View File

@ -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?$"

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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[] = {

View File

@ -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);

View File

@ -65,7 +65,7 @@ struct TextPrinterSubStruct
struct TextPrinterTemplate
{
const u8* currentChar;
const u8 *currentChar;
u8 windowId;
u8 fontId;
u8 x;

View File

@ -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;

View File

@ -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;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

View 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

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 B

After

Width:  |  Height:  |  Size: 153 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

View File

Before

Width:  |  Height:  |  Size: 192 B

After

Width:  |  Height:  |  Size: 192 B

View File

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 B

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 666 B

After

Width:  |  Height:  |  Size: 719 B

View File

@ -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

View File

@ -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);

View File

@ -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];

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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[];

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -63,7 +63,7 @@ struct PairedPalettes
struct LockedAnimObjectEvents
{
u8 objectEventIds[OBJECT_EVENTS_COUNT];
u8 localIds[OBJECT_EVENTS_COUNT];
u8 count;
};

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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))

View File

@ -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;

View File

@ -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[];

View File

@ -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);

View File

@ -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);

View File

@ -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];

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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);

Some files were not shown because too many files have changed in this diff Show More