* add debug build target
* fix maybe uninitialized error
* add option to undef NDEBUG
* debug for agbcc
* init instead of ignore to not break agbcc
* make clean removes modern and agbcc artifacts. explicit use of -O0 again for NOOPT
* automatically enable debug menu when building for debug
* automatically enable debug menu when building for debug
* automatically enable debug menu when building for debug
* clean up previous mess omg
* remove preproc around debug menus
* automatically enable debug menu when building for debug
* clean up previous mess omg
* Apply suggestions from code review
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Update Makefile
* Update field_control_avatar.c
* make debug print independent
* remove unwanted changes
* remove trailing endif
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Moved BERRY_MUTATION_CHANCE to include/config/overworld.h and renamed it to OW_BERRY_MUTATION_CHANCE
* Move level_caps.h to config folder
* Multiple EV/IV refered as EVs/IVs
* Disabled decap by default
* Level up learnsetst comments
* Upgrading the debug menu's 'Poison Party'
* Optimized the 'No Pokémon' check in Debug_EventScript_InflictStatus1
* Killed a pointless function call in Script_SetStatus1
* Added Frostbite support to ¡inflict status1'
* SaveBlock3 in sector footers
* Update load_save.c
Since mgriffin is currently not available I took the liberty to edit the file. Hope it's fine.
* SaveBlock3 in debug menu (#3)
---------
Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
Co-authored-by: psf <77138753+pkmnsnfrn@users.noreply.github.com>
* Introducing an expanded givemon
* Added debug features to check a Pokémon's EV and IV
* Added a parameter to set a custom mon's gender
* Added a debug feature to clear the party
* Defined the EV/IV getters in gSpecials
* Added Gigantamax Factor toggle to givecustommon
* Updated Gigantamax Factor label in givecustommon macro
* Added tera type parameter to givecustommon
Misc. changes:
-Added a few harmless comments to CreateCustomMon for consistency reasons.
* Cleaned up the code inside CreateCustomMon a bit
Also updated the values assigned to the parameters of ScriptGiveCustomMon
This is temporary though. I'll probably end up turning them into 2byte parameters so they can be filled when the scripting command is called by using variables once I solve the bigger problem that the scripting command is currently facing.
* Foolproofed the Poké Ball check in CreateCustomMon
* Assigned a default gender to givecustommon
This solved the nasty issue by which the command wasn't working properly if you didn't fill in each parameter when calling givecustommon in a script.
* Reinforced the gender checks at CreateCustomMon
* Re-reinforced the gender checks at CreateCustomMon
* Compressed givecustommon and added tests
-Made givecustommon skip unspecified parameters.
-Added scripting variables support for every parameter.
-Added tests.
* Updated the default values of some ScriptGiveCustomMon parameters
* Replaced vanilla's givemon with givecustommon
Misc. Changes:
-Renamed CreateCustomMon to ScriptGiveMonParameterized.
-The truth is that the function was never limited to creating the skeleton of a Pokémon like the actual CreateMon functions do, so that label was never correct. The function was always an expanded ScriptGiveMon.
-Moved the core functions to src/script_pokemon_util.c which is where they actually belong.
-Updated ScriptGiveMonParameterized a little to incorporateb changes that were applied to the original ScriptGiveMon, namely, Synchronize ability and form change handling.
-Introduced a new ScriptGiveMon to replace the original one.
* Corrected givecustommon tests
* Fixed the default IV values for the new givemon
* Updated DebugAction_Party_ClearParty for consistency with the other debug functions
* Updated the text strings used by the Check EV/IV debug features
---------
Co-authored-by: Martin Griffin <martinrgriffin@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Made gBattleMoves handle the InGame name and description of battle moves
No more multiple arrays in separate, individual files.
Note:
-Keep an eye on Task_LearnedMove.
* Reintroduced move names
Misc:
-Fixed Trick-or-Treat and Light of Ruin's expanded names.
-Introduced a new field for Z-Move names, and a constant for their name length.
-Added a few TODOs to GetBattleMoveName.
-Updated GetMaxMoveName and GetZMoveName. There's no reason not to let GetBattleMoveName handle everything on its own.
* Updated GetBattleMoveName to handle Z-Move Names
Misc:
-Removed pointless TODO about MOVE_NAME_LENGTH.
-The compiler doesn't allow to have a move name with a value higher than MOVE_NAME_LENGTH, therefore it's pointless to worry about it.
* Fixed a couple of expanded move names
* Removed zMoveName variable of struct BattleMove and extended the name variable's size
* Ditched no longer used MOVE_NAME_LENGTH constant
* Corrected the names of the max moves
I should have done this after updating the size of the name variable of the struct BattleMove, but I didn't think about it at all until Cancer Fairy indirectly gave me the idea.
* Fixed U-turn's name
* Brought back MOVE_NAME_LENGTH
I think it doesn't make sense to have a Z_MOVE_NAME_LENGTH because the length in question is used for all battle moves, not just the Z-Moves.
* Introduced a union for Move/Z-Move names in the struct BattleMove
* Fixed the union for gBattleMoves move names
Also updated GetBattleMoveName to properly handle Max Move names.
Also also renamed the "zMoveName" variable to "bigMoveName" which better reflects its purpose. Z-Move names weren't the only thing it covered, since it also handles Max Move names.
* Removed deprecated GetZMoveName and GetMaxMoveName
* Reintroduced mention to gMoveNames in sGFRomHeader
* Fixed move names and ported move descriptions
* Fused the struct ContestMove into the struct BattleMove
* Removed no longer used Z_MOVE_NAME_LENGTH constant
* Renamed the struct BattleMove's bigMoveName variable and introduced macros to prettify move names
* Reintroduced the contest parameters for Pokémon moves
* Renamed gBattleMoves to gMovesInfo
This is consistent with gSpeciesInfo, the array that contains most of the species data.
* Renamed the BattleMove struct to MovesInfo
This is consistent with the struct SpeciesInfo, which contains the variables used by the gSpeciesInfo array.
* Removed empty lines separating battle params from contest params in gMovesInfo
* Renamed MovesInfo to MoveInfo
* Added Cancer Fairy's HANDLE_EXPANDED_MOVE_NAME macro
Used to handle moves with expanded names in a more comfortable manner.
Also fixed Trick-or-Treat's expanded name.
* Renamed GetBattleMoveName to GetMoveName
* Added a comment pointing out that the shared move descriptions are shared move descriptions
* Re-aligned one of the escape characters of CHECK_MOVE_FLAG
* Renamed the battle_moves.h file to moves_info.h instead for consistency's sake
* Applied Eduardo's adjustments
* Using compound string for regular move names as well, saving 1180 bytes and making their use consistent
* Move description formatting
* Updated Pursuit test after merge
* Renamed the BATTLE_CATEGORY constants to DAMAGE_CATEGORY
---------
Co-authored-by: Nephrite <thechurchofcage@gmail.com>
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Rename gItems to gItemsInfo
* Rename gAbilities to gAbilitiesInfo
* Just fixing up my bad merge
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Moved Access PC to the first option of the PC/Bag debug submenu
* Prevent item give music from cutting off by having a shorter jingle
* Removed redundant "Give all TMs" option
---------
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
* Expanded the amount of max items per stack from 99 to 999
* Set Battle Pyramid Bag stack limit back to 99
This commit exists for archival purposes.
People who may want to set the limit of item stacks in the Battle Pyramid's bag to 999 can refer to its code diff.
* Reintroduced the Battle Pyramid changes through a MAX_PYRAMID_BAG_ITEM_CAPACITY constant
* Gave 3 digit support to the Battle Pyramid's bag
* Rewrote the comment for MAX_PYRAMID_BAG_ITEM_CAPACITY
* Made DebugAction_Give_Item_SelectQuantity use MAX_ITEM_DIGITS
* Ditched BERRY_CAPACITY_DIGITS and BAG_ITEM_CAPACITY_DIGITS
* Removed MAX_BERRY_CAPACITY
No point in keeping it if we're making all item stacks cap at 999.
* Applied review corrections
* Removed pointless local var in DebugAction_Give_Item_SelectQuantity
* Defined a MAX_PYRAMID_ITEM_DIGITS
* Cleaned up some of the functions in which MAX_ITEM_DIGITS is used
Summary:
-Removed pointless local variables in CheckBagHasSpace, AddBagItem, PrintItemQuantity and PrintItemSoldAmount.
-Removed pointless brackets in an if statement of CheckBagHasSpace.
-Initialized the pocket local variable of CheckBagHasSpace from the get go to save a few lines too.
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Renamed the Party/Boxes section of the debug menu to just Party
Misc:
-Relabeled the enums containing the constants for the different features in each main section of the menu.
-The reason why is that "enum PartyMenu" was throwing a compiler error for whatever reason, so I renamed the other labels to keep them consistent with it.
* Renamed the debug menu's 'Fill PC/Pockets' to 'PC/Bag'
* Moved PC/Bar higher in the debug menu's list
* Added a debug feature to clear the bag
* Moved 'Access PC' and 'Clear Boxes' to PC/Bag
* Relocated the GivePCBagDebugMenu enum
* Packed the debug menu's 'Fill' options into a PC/Bag category of their own
And reupdated a lot of labels that I previously renamed. I shouldn't have removed the "Fill" in them when I renamed PC/Pockets to PC/Bag..
* Fixed alignment in sDebugMenu_Items_Utilities
* Shuffled the positions of the debug menu's 'Access PC' and 'Clear Bag'
* Made the B button take you back to PC/Bag from Fill, instead of taking you to the main debug menu
* Updated alignment in sDebugMenu_Items_Utilities again
---------
Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
* Added EV setters to the debug menu's "Give Pokémon Complex"
Misc. Changes:
-Updated the text strings for the 2 "Give Pokémon" options used by the debug menu.
* Optimized DebugAction_Give_Pokemon_SelectShiny and made some debug functions use relevant constants
* Removed extra call to CalculateMonStats in DebugAction_Give_Pokemon_ComplexCreateMon
* Made the EV selection go back to the start if the sum of EV is > 510
---------
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
* Check progress in non-battle PARAMETRIZEd tests
* Overworld Script Tests
* Backward-compatible BoxPokemon Refactor
Reuses space that contains zeros to provide space for:
- HP/status in the box
- 12-character nicknames
- Up to 63 PokéBalls
- Shininess separate from PID
- Hidden Nature
- Hyper Training
- Dynamax Level
- Gigantamax Factor
- Terastallization Types
- Shadow
Implements:
- OW_PC_HEAL to switch between Gen7- and Gen8+ behavior
- Nature Mints
- Dynamax Candy
- Hyper Training commands (canhypertrain/hypertrain)
- Gigantamax Factor commands (hasgigantamaxfactor/togglegigantamaxfactor)
- Terastallization Type on the summary screen
- Prevents Gigantamax Factor Pokémon from evolving into a species without a Gigantamax form
* fixup! Backward-compatible BoxPokemon Refactor
* displaydexinfo fix from Jasper
* Original implementation from Phlayne
* Moved Sky Battle Flag / Var into a config
* Optimized existing code and fixed existing bugs
Added error message for when sky battle var and flag are not set
Merged CanDoSkyBattle and PrepareSkyBattle into one special
* Added compatibility for Gen7+
* Commented out Volt Crash from banned moves
* Cleaned up debug scripts from testing
* Fixed bug where player did not white out even if they had no healthy Pokémon and only an egg
Zeroed out both Sky Battle configs
* Removed extra include from src/field_specials.c
Removed extra line break in src/battle_script_commands.c
* Added FLAG_DISABLED_IN_SKY_BATTLE
Added FLAG_DISABLED_IN_SKY_BATTLE to appropriate moves
* Changed DoesSkyBattleCancelCurrentMove to look at move flags
* Fixed alignment and spacing in battle_moves.h
* Added FLAG_DISABLED_IN_SKY_BATTLE to Sticky Web
* Added FLAG_DISABLED_IN_SKY_BATTLE to Steel Roller
* Disabled the ability to change Battle Terrain when Sky Battle is happening
Stopped Ceaseless Edge from spawning Spikes when Sky Battle is happening
Added B_SKY_BATTLE_STRICT_MECHANICS config
* Fixed bug with SKY_BATTLE_STRICT_MECHANICS where conditions were not consistently being applied
* Add rulesVariants to the BattleStruct
Added skyBattle check in AllocateBattleResources
* Replaced B_FLAG_SKY_BATTLE checks with rulesVariants.skyBattle checks
* Fixed debug script
* Reverted include/config/battle.h
* Fixed spacing and placement of functions
* Fixed debug script omission
Fixed bug where Spikes did not set from Ceaseless Edge and Stone Axe
* Added FLAG_DISABLED_IN_SKY_BATTLE to Psychic Terrain
* Addressed DizzyEgg PR feedback
* Forgot a file in last commit
* Addressed feedback from DizzyEggg
* Address Lunos' PR feedback
* Update specials.inc
Added an empty line at the end of data/specials.inc
* Fixed spacing
* Apply suggestions from code review
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
* Updated skyBattleBanned and HandleBattleVariantEndParty to use correct names
* Removed STRICT_MOVES and STRICT_MECHANICS
* Fixed minor spacing issues with merge
* Merged in upcoming
* Implemented feedback from Jasper
5da6117d1b
---------
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>