Merge branch 'upcoming' of https://github.com/rh-hideout/pokeemerald-expansion into berryexpansion
@ -23,15 +23,12 @@ body:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.6.2 (Default)
|
||||
- 1.7.0 (Default)
|
||||
- upcoming (Edge)
|
||||
- 1.6.2
|
||||
- 1.6.1
|
||||
- 1.6.0
|
||||
- 1.5.3
|
||||
- 1.5.2
|
||||
- 1.5.1
|
||||
- 1.5.0
|
||||
- pre-1.5.0
|
||||
- pre-1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
|
||||
@ -23,15 +23,12 @@ body:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.6.2 (Default)
|
||||
- 1.7.0 (Default)
|
||||
- upcoming (Edge)
|
||||
- 1.6.2
|
||||
- 1.6.1
|
||||
- 1.6.0
|
||||
- 1.5.3
|
||||
- 1.5.2
|
||||
- 1.5.1
|
||||
- 1.5.0
|
||||
- pre-1.5.0
|
||||
- pre-1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
|
||||
9
.github/ISSUE_TEMPLATE/04_other_errors.yaml
vendored
@ -23,15 +23,12 @@ body:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.6.2 (Default)
|
||||
- 1.7.0 (Default)
|
||||
- upcoming (Edge)
|
||||
- 1.6.2
|
||||
- 1.6.1
|
||||
- 1.6.0
|
||||
- 1.5.3
|
||||
- 1.5.2
|
||||
- 1.5.1
|
||||
- 1.5.0
|
||||
- pre-1.5.0
|
||||
- pre-1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
|
||||
5
.github/pull_request_template.md
vendored
@ -11,6 +11,9 @@
|
||||
<!-- Format: "Fixes #2345, fixes #4523, fixes #2222." -->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
|
||||
## Feature(s) this PR does NOT handle:
|
||||
<!-- If your PR contains any unfinished features that are not considered merge-blocking, please list them here for clarity so no one can forget. -->
|
||||
|
||||
## **Discord contact info**
|
||||
<!--- formatted as name#numbers, e.g. Lunos#4026 -->
|
||||
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
||||
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
||||
|
||||
1
.gitignore
vendored
@ -21,7 +21,6 @@ sound/**/*.bin
|
||||
sound/songs/midi/*.s
|
||||
tools/agbcc
|
||||
*.map
|
||||
*.ld
|
||||
*.bat
|
||||
*.dump
|
||||
*.sa*
|
||||
|
||||
123
CHANGELOG.md
@ -1,122 +1,5 @@
|
||||
# Pokeemerald-Expansion Changelog
|
||||
# Pokeemerald-Expansion Changelogs
|
||||
|
||||
# Version 1.6.2
|
||||
## [Version 1.7.0](docs/changelogs/1.7.0.md) - Feature Release
|
||||
|
||||
## 🌋 *IMPORTANT CHANGES* 🌋
|
||||
### Battle changes
|
||||
* Battler Types are now obtained via `GetBattlerType` instead of `gBattleMons[battlerId].type1/2/3` to better consider Roost. Be sure to update your custom battle effects to account for this change.
|
||||
|
||||
## 🧬 General 🧬
|
||||
### Fixed
|
||||
* Fixed Cheat Start not initiating time-based events by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3446
|
||||
|
||||
## 🐉 Pokémon 🐉
|
||||
### Changed
|
||||
* Updated Cresselia's base stats to Gen 9 by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3419
|
||||
* Updated Zacian/Zamazenta base stats to Gen 9 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3421
|
||||
### Fixed
|
||||
* Fixed Kleavor, Hisuian Sneasel and Sneasler missing their SV abilities by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3391
|
||||
* Fixed Bergmite/Avalugg old and updated egg groups being switched by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3380
|
||||
|
||||
## 🤹 Moves 🤹
|
||||
### Changed
|
||||
* Quick Draw now uses weighted RNG by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399
|
||||
* Added `IS_BATTLER_TYPELESS` macro that checks if the specified battler has no valid type by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3303
|
||||
### Fixed
|
||||
* Fixed Protect failing if the user flinched on the previous turn by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3345
|
||||
* Fixed entry hazards not working properly being cleared on switch-in by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3316
|
||||
* This includes Toxic Spikes not working if Pecha Berry actived on the previous turn.
|
||||
* Fixed Roost overwriting other type changing at the end of the turn (Soak, Forest's Curse, Color Change, etc.) by @BLourenco in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258
|
||||
* Now it suppresses the user's Flying-type rather than remove and re-add it.
|
||||
* Fixes Salt Cure visual bug if mon fainted by direct attack by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3388
|
||||
* Fixed Purifying Salt not preventing the use of Rest by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399
|
||||
* Fixed Make it Rain lowering Sp. Attack twice if hitting 2 targets in double battles by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3441
|
||||
* Fixed Reflect Type not properly handle 3rd types by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3303
|
||||
* Fixed form change triggered by switching not occuring when using moves like U-Turn or Baton Pass by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3463
|
||||
* Fixed Last Resort not counting Sleep Talk as used for its effect by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378
|
||||
|
||||
## 🎭 Abilities 🎭
|
||||
### Changed
|
||||
* Removed unused `STATUS3_CANT_SCORE_A_CRIT` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Moved Beads of Ruin and Sword of Ruin damage to the appropiate damage modifier functions by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415
|
||||
### Fixed
|
||||
* Fixed Intimidate increasing the attack of both opponents if one of them has Contrary in double battles by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3365
|
||||
* Fixed Battle/Shell Armor not preventing critical hits by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Fixed Rivalry's effect being reversed by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381
|
||||
* Fixed Rivalry lowering attack if either attacker or target were genderless by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381
|
||||
* Fixed missing Poison Heal Ability Popup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3385
|
||||
* Fixed Parental Bond not working at all by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3417
|
||||
* Fixed Beads of Ruin and Sword of Ruin damage modifiers by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415
|
||||
* Fixed Sheer Force not negating effects that benefit the user (eg. Flame Charge, Power-Up Punch) by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378
|
||||
* Fixed Strength Sap not healing the user when used on a Substitute by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3486
|
||||
* Fixed Substitute showing the "took damage for" message if Strength Sap was used on it by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3486
|
||||
* Fixed Weak Armor interrupting Multi Hit moves by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3497
|
||||
|
||||
## 🧶 Items 🧶
|
||||
### Fixed
|
||||
* Fixed Shiny Charm doing too many rerolls by default by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3327
|
||||
* Fixed Berserk Gene activating for the wrong Pokémon double battles by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3363
|
||||
* Fixed Red Card not being consumed after opponent Sticky Web activation by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364
|
||||
* Fixed implementation of Gen6 that didn't allow for the Exp Share flag to be set via script without setting the item to the Gen 6+ version by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3384
|
||||
* Fixed Kee Berry raising defense by 1 stage instead of 2 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409
|
||||
* Fixed Kee Berry incorrect stat raise message by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409
|
||||
* Fixed Razor Fang not being able to be used directly even if `I_USE_EVO_HELD_ITEMS_FROM_BAG` was set to `TRUE` by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3456
|
||||
|
||||
## 🧹 Cleanup 🧹
|
||||
* `AbilityBattleEffects` uses `B_MSG_TERRAIN` constants for field terrain intro text by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3410
|
||||
* Removed all trailing whitespace by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3472
|
||||
|
||||
## 🧪 Test Runner 🧪
|
||||
### Added
|
||||
* Flinch tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3345
|
||||
* Berserk Gene double battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3363
|
||||
* More specific Toxic Spikes tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3316
|
||||
* Red Card/Sticky Web test @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364
|
||||
* Intimidate/Contrary double battle test by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3365
|
||||
* Critical Hit tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Roost tests by @BLourenco in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258
|
||||
* Rivalry tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381
|
||||
* Various tests by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3385
|
||||
* Defeatist, Dragon's Maw, Earth Eater, Gale Wings, Poison Heal, Rocky Payload, Sap Sipper, Steelworker and Transistor.
|
||||
* Various tests by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399
|
||||
* Beast Boost, Ice Scales, Neuroforce, Purifying Salt, Quick Draw and Sharpness.
|
||||
* Berry tests @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409
|
||||
* Full: Apicot, Custap, Ganlon, Jaboca, Kee, Lansat, Liechi, Maranga, Micle, Petaya, Rowap and Salac Berries.
|
||||
* TODO: Starf Berry.
|
||||
* Weather and type-specific tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3260
|
||||
* Full: Freezing, Hail, Moonlight, Morning Sun, Sandstorm, Snow, Solar Beam/Blade, Steel poisoning, Synthesis, Thunder and Weather Ball.
|
||||
* Partial: Prankster, Safety Goggles, Aurora Veil, Hurricane, Leech Seed and OHKO moves.
|
||||
* TODO: Harvest.
|
||||
* Single Parental Bond test by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3417
|
||||
* Several tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378
|
||||
* Full: Weak Armor, Last Resort, Stealth Rock.
|
||||
* Completed Weak Armor tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3493
|
||||
* Partial: Defiant, Sheer Force, White Herb, Strength Sap.
|
||||
### Changed
|
||||
* Red Card tests now check if the item was consumed by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364
|
||||
* Tests now cannot use `i` in their cycles to avoid messing with `PARAMETRIZE` by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3408
|
||||
* Moved battle tests off the heap by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3414
|
||||
* Moved Powder/Grass test to `move_flags` folder by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3260
|
||||
* Continuous `NOT x; NOT y;` are now not allowed in tests due to them not acting as one would expect by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3459
|
||||
* Test writers should use `NONE_OF { x; y; }` instead.
|
||||
### Fixed
|
||||
* Fixed CreateNPCTrainerPartyForTrainer test failing on modern by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3367
|
||||
* Fixed `RNG_CRITICAL_HIT` by @mrgriffin and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Fixed `ASSUMPTIONS` block not working by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3368
|
||||
* Fixup by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3408
|
||||
* Fixed Beads of Ruin and Sword of Ruin damage tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415
|
||||
* Fixes test RNG by @mrgriffin and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3433
|
||||
* Fixed battle test estimateCost bug by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3448
|
||||
* Test cleanup and improvements by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3449
|
||||
* Removed duplicated Prankster TO_DO test.
|
||||
* Corrected Multi-hit test names (4 and 5 hits stated 35% instead of 15%).
|
||||
* Grouped Maranga Berry's Physical vs Special tests using PARAMETRIZE.
|
||||
* Improved Jaboca, Kee and Rowap tests by @AlexOn1ine
|
||||
* Fixed `ModifyPersonalityForNature` by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3452
|
||||
* Fixed test_runner.c modern warning by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3451
|
||||
|
||||
## New Contributors
|
||||
* @BLourenco made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258
|
||||
|
||||
## Full Changelog
|
||||
https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.6.1...expansion/1.6.2
|
||||
## [Version 1.6.2](docs/changelogs/1.6.2.md) - Bugfix release
|
||||
|
||||
14
Makefile
@ -146,8 +146,6 @@ ifneq ($(MODERN),1)
|
||||
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef
|
||||
endif
|
||||
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
|
||||
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
||||
GFX := tools/gbagfx/gbagfx$(EXE)
|
||||
AIF := tools/aif2pcm/aif2pcm$(EXE)
|
||||
@ -280,8 +278,7 @@ clean-check-tools:
|
||||
@$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);)
|
||||
|
||||
mostlyclean: tidynonmodern tidymodern tidycheck
|
||||
rm -f $(SAMPLE_SUBDIR)/*.bin
|
||||
rm -f $(CRY_SUBDIR)/*.bin
|
||||
find sound -iname '*.bin' -exec rm {} +
|
||||
rm -f $(MID_SUBDIR)/*.s
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc
|
||||
@ -466,19 +463,20 @@ endef
|
||||
$(foreach src, $(TEST_SRCS), $(eval $(call TEST_DEP,$(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(TEST_SUBDIR)/%.c,%,$(src)))))
|
||||
|
||||
ifeq ($(MODERN),0)
|
||||
LD_SCRIPT := ld_script.txt
|
||||
LD_SCRIPT := ld_script.ld
|
||||
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||
else
|
||||
LD_SCRIPT := ld_script_modern.txt
|
||||
LD_SCRIPT := ld_script_modern.ld
|
||||
LD_SCRIPT_DEPS :=
|
||||
endif
|
||||
|
||||
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
|
||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
|
||||
|
||||
LDFLAGS = -Map ../../$(MAP)
|
||||
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall
|
||||
@echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ <objects> <lib>"
|
||||
@cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
|
||||
@cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat
|
||||
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
|
||||
|
||||
$(ROM): $(ELF)
|
||||
@ -489,7 +487,7 @@ agbcc: all
|
||||
|
||||
modern: all
|
||||
|
||||
LD_SCRIPT_TEST := ld_script_test.txt
|
||||
LD_SCRIPT_TEST := ld_script_test.ld
|
||||
|
||||
$(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS)
|
||||
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld
|
||||
|
||||
75
README.md
@ -7,7 +7,7 @@ pokeemerald-expansion is a decomp hack base project based off pret's [pokeemeral
|
||||
If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect.
|
||||
You can phrase it as the following:
|
||||
```
|
||||
Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokeemerald-expansion/
|
||||
Based off RHH's pokeemerald-expansion v1.7.0 https://github.com/rh-hideout/pokeemerald-expansion/
|
||||
```
|
||||
|
||||
## What features are included?
|
||||
@ -17,19 +17,22 @@ Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokee
|
||||
- [Item configurations](/include/config/item.h)
|
||||
- [Overworld configurations](/include/config/overworld.h)
|
||||
- [Debug configurations](/include/config/debug.h)
|
||||
- Upgraded battle engine.
|
||||
- ***Upgraded battle engine.***
|
||||
- Gen5+ damage calculation.
|
||||
- 2v2 Wild battles support.
|
||||
- 1v2/2v1 battles support.
|
||||
- Fairy Type (configurable).
|
||||
- Physical/Special/Status Category Split (configurable).
|
||||
- Physical/Special/Status Category (configurable).
|
||||
- New moves and abilities up to Scarlet and Violet.
|
||||
- Custom Contest data up to SwSh, newer moves are WIP. ([source](https://pokemonurpg.com/info/contests/rse-move-list/))
|
||||
- [Form change tables](/src/data/pokemon/form_change_tables.h) that allow customizing most form changes.
|
||||
- Mega Evolution, Primal Reversion and Ultra Burst.
|
||||
- Mega Evolution
|
||||
- Primal Reversion
|
||||
- Ultra Burst
|
||||
- Z-Moves
|
||||
- Gen 8+ damaging moves are given power extrapolated from Gen 7.
|
||||
- Gen 8+ status moves have no additional effects, like Healing Wish.
|
||||
- Dynamax
|
||||
- Gigantamax forms
|
||||
- Initial battle parameters
|
||||
- Queueing stat boosts (aka, Totem Boosts)
|
||||
- Setting Terrains.
|
||||
@ -37,6 +40,7 @@ Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokee
|
||||
- Quick Poké Ball selection in Wild Battles
|
||||
- Press `R` to use last selected Poké Ball.
|
||||
- Hold `R` to change selection with the D-Pad.
|
||||
- Run option shortcut
|
||||
- Faster battle intro
|
||||
- Message and animation/cry happens at the same time.
|
||||
- Faster HP drain.
|
||||
@ -58,7 +62,7 @@ Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokee
|
||||
- Level 100 Pokémon can earn EVs.
|
||||
- Inverse battle support.
|
||||
- TONS of other features listed [here](/include/config/battle.h).
|
||||
- Full Trainer customization
|
||||
- ***Full Trainer customization***
|
||||
- Nickname, EVs, IVs, moves, ability, ball, friendship, nature, gender, shininess.
|
||||
- Custom tag battle support (teaming up an NPC in a double battle).
|
||||
- Sliding trainer messages.
|
||||
@ -67,11 +71,12 @@ Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokee
|
||||
- New flag options to let you customize the intelligence of your trainers.
|
||||
- Faster calculations.
|
||||
- Specify Poké Balls by Trainer class.
|
||||
- Pokémon Species from Generations 1-8.
|
||||
- Option to disable unwanted generations.
|
||||
- ***Pokémon Species from Generations 1-9.***
|
||||
- Simplified process to add new Pokémon.
|
||||
- Option to disable unwanted families.
|
||||
- Updated sprites to DS style.
|
||||
- Updated stats, types, abilities and egg groups (configurable).
|
||||
- Updated Hoenn's Regional Dex to match ORAS'.
|
||||
- Updated Hoenn's Regional Dex to match ORAS' (configurable).
|
||||
- Updated National Dex incorporating the new species.
|
||||
- Sprite and animation visualizer.
|
||||
- Accesible by pressing `Select` on a Pokémon's Summary screen.
|
||||
@ -86,46 +91,56 @@ Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokee
|
||||
- Available via Ability Patch.
|
||||
- Compatible with Ghoul's DexNav branch.
|
||||
- All gender differences.
|
||||
- Different icons for female Hippopotas and Hippowdon
|
||||
- 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts
|
||||
- Breeding
|
||||
- Custom female icons for female Hippopotas Hippowdon, Pikachu and Wobbufett
|
||||
- 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts.
|
||||
- ***Customizable form change tables. Full list of methods [here](/include/constants/form_change_types.h).***
|
||||
- Item holding (eg. Giratina/Arceus)
|
||||
- Item using (eg. Oricorio)
|
||||
- Time of day option for Shaymin
|
||||
- Fainting
|
||||
- Battle begin and end (eg. Xerneas)
|
||||
- Move change option for Zacian/Zamazenta
|
||||
- Battle end in terrains (eg. Burmy)
|
||||
- Switched in battle (eg. Palafin)
|
||||
- HP Threshold (eg. Darmanitan)
|
||||
- Weather (eg. Castform)
|
||||
- End of turn (eg. Morpeko)
|
||||
- Time of day (Shaymin)
|
||||
- ***Breeding Improvements***
|
||||
- Incense Baby Pokémon now happen automatically (configurable).
|
||||
- Level 1 eggs.
|
||||
- Poké Ball inheriting.
|
||||
- Egg Move Transfer, including Mirror Herb.
|
||||
- Nature inheriting 100% of the time with Everstone
|
||||
- Gen6+ Ability inheriting.
|
||||
- Items from newer Generations. Full list [here](/include/constants/items.h).
|
||||
- Level 1 eggs (configurable).
|
||||
- Poké Ball inheriting (configurable).
|
||||
- Egg Move Transfer, including Mirror Herb (configurable).
|
||||
- Nature inheriting 100% of the time with Everstone (configurable)
|
||||
- Gen6+ Ability inheriting (configurable).
|
||||
- ***Items from newer Generations. Full list [here](/include/constants/items.h).***
|
||||
- ***Gen 6+ Exp. Share*** (configurable)
|
||||
- Berserk Gene
|
||||
- Most battle items from Gen 4+
|
||||
- Existing item data but missing effects:
|
||||
- Mints
|
||||
- Dynamax Candy
|
||||
- Mulches
|
||||
- Rotom Catalog
|
||||
- DNA Splicers
|
||||
- Zygarde Cube
|
||||
- N Solarizer/Lunarizer
|
||||
- Reins of Unity
|
||||
- Dynamax Band
|
||||
- Gimmighoul Coin
|
||||
- Booster Energy
|
||||
- Tera Shards
|
||||
- Tera Orb
|
||||
- Feature branches incorporated:
|
||||
- [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by Xhyzi.
|
||||
- ***Feature branches incorporated (with permission):***
|
||||
- [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by @Xhyzi.
|
||||
- A small signature from all of us to show the collective effort in the project :)
|
||||
- [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by TheXaman
|
||||
- [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by @TheXaman
|
||||
- May be disabled.
|
||||
- Accesible by pressing `R + Start` in the overworld by default.
|
||||
- **Additional features**:
|
||||
- *Clear Boxes*: cleans every Pokémon from the Boxes.
|
||||
- *Hatch an Egg*: lets you choose an Egg in your party and immediatly hatch it.
|
||||
- [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by TheXaman
|
||||
- [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by @TheXaman
|
||||
- May be disabled.
|
||||
- **Additional features**:
|
||||
- *Support for new evolution methods*.
|
||||
- *Dark Mode*.
|
||||
- Other features
|
||||
- [Nature Colors](https://github.com/DizzyEggg/pokeemerald/tree/nature_color) in summary screen by @DizzyEggg
|
||||
- ***Other features***
|
||||
- Pressing B while holding a Pokémon drops them like in modern games (configurable).
|
||||
- Running indoors (configurable).
|
||||
- Configurable overworld poison damage.
|
||||
@ -151,7 +166,7 @@ With this, you'll get the latest version of pokeemerald-expansion, plus a couple
|
||||
|
||||
## **How do I update my version of pokeemerald-expansion?**
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Once you have your remote set up, run the command `git pull RHH expansion/1.6.2`.
|
||||
- Once you have your remote set up, run the command `git pull RHH expansion/1.7.0`.
|
||||
|
||||
### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :)
|
||||
|
||||
|
||||
@ -1,783 +0,0 @@
|
||||
.macro if_random_less_than param0:req, param1:req
|
||||
.byte 0x0
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_random_greater_than param0:req, param1:req
|
||||
.byte 0x1
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_random_equal param0:req, param1:req
|
||||
.byte 0x2
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_random_not_equal param0:req, param1:req
|
||||
.byte 0x3
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro score param0:req
|
||||
.byte 0x4
|
||||
.byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_hp_less_than battler:req, param1:req, param2:req
|
||||
.byte 0x5
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_hp_more_than battler:req, param1:req, param2:req
|
||||
.byte 0x6
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_hp_equal battler:req, param1:req, param2:req
|
||||
.byte 0x7
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_hp_not_equal battler:req, param1:req, param2:req
|
||||
.byte 0x8
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status battler:req, status1:req, param2:req
|
||||
.byte 0x9
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_status battler:req, status1:req, param2:req
|
||||
.byte 0xa
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status2 battler:req, status2:req, param2:req
|
||||
.byte 0xb
|
||||
.byte \battler
|
||||
.4byte \status2
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_status2 battler:req, status2:req, param2:req
|
||||
.byte 0xc
|
||||
.byte \battler
|
||||
.4byte \status2
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status3 battler:req, status3:req, param2:req
|
||||
.byte 0xd
|
||||
.byte \battler
|
||||
.4byte \status3
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_status3 battler:req, status3:req, param2:req
|
||||
.byte 0xe
|
||||
.byte \battler
|
||||
.4byte \status3
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_side_affecting battler:req, sidestatus:req, param2:req
|
||||
.byte 0xf
|
||||
.byte \battler
|
||||
.4byte \sidestatus
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_not_side_affecting battler:req, sidestatus:req, param2:req
|
||||
.byte 0x10
|
||||
.byte \battler
|
||||
.4byte \sidestatus
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_less_than param0:req, param1:req
|
||||
.byte 0x11
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_more_than param0:req, param1:req
|
||||
.byte 0x12
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_equal param0:req, param1:req
|
||||
.byte 0x13
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_equal param0:req, param1:req
|
||||
.byte 0x14
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_less_than_ptr param0:req, param1:req
|
||||
.byte 0x15
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_more_than_ptr param0:req, param1:req
|
||||
.byte 0x16
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_equal_ptr param0:req, param1:req
|
||||
.byte 0x17
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_equal_ptr param0:req, param1:req
|
||||
.byte 0x18
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_move param0:req, param1:req
|
||||
.byte 0x19
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_move param0:req, param1:req
|
||||
.byte 0x1a
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_in_bytes param0:req, param1:req
|
||||
.byte 0x1b
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_in_bytes param0:req, param1:req
|
||||
.byte 0x1c
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_in_hwords param0:req, param1:req
|
||||
.byte 0x1d
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_in_hwords param0:req, param1:req
|
||||
.byte 0x1e
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_user_has_attacking_move param0:req
|
||||
.byte 0x1f
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_user_has_no_attacking_moves param0:req
|
||||
.byte 0x20
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro get_turn_count
|
||||
.byte 0x21
|
||||
.endm
|
||||
|
||||
.macro get_type param0:req
|
||||
.byte 0x22
|
||||
.byte \param0
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_power
|
||||
.byte 0x23
|
||||
.endm
|
||||
|
||||
.macro get_how_powerful_move_is
|
||||
.byte 0x24
|
||||
.endm
|
||||
|
||||
.macro get_last_used_bank_move battler:req
|
||||
.byte 0x25
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro if_equal_u32 param0:req, param1:req
|
||||
.byte 0x26
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_equal_u32 param0:req, param1:req
|
||||
.byte 0x27
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_user_goes param0:req, param1:req
|
||||
.byte 0x28
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_cant_use_belch battler:req, ptr:req
|
||||
.byte 0x29
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro nop_2A
|
||||
.byte 0x2a
|
||||
.endm
|
||||
|
||||
.macro nop_2B
|
||||
.byte 0x2b
|
||||
.endm
|
||||
|
||||
.macro count_usable_party_mons battler:req
|
||||
.byte 0x2c
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_considered_move
|
||||
.byte 0x2d
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_effect
|
||||
.byte 0x2e
|
||||
.endm
|
||||
|
||||
.macro get_ability battler:req
|
||||
.byte 0x2f
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_highest_type_effectiveness
|
||||
.byte 0x30
|
||||
.endm
|
||||
|
||||
.macro if_type_effectiveness param0:req, param1:req
|
||||
.byte 0x31
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro nop_32
|
||||
.byte 0x32
|
||||
.endm
|
||||
|
||||
.macro nop_33
|
||||
.byte 0x33
|
||||
.endm
|
||||
|
||||
.macro if_status_in_party battler:req, status1:req, param2:req
|
||||
.byte 0x34
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_status_not_in_party battler:req, status1:req, param2:req
|
||||
.byte 0x35
|
||||
.byte \battler
|
||||
.4byte \status1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro get_weather
|
||||
.byte 0x36
|
||||
.endm
|
||||
|
||||
.macro if_effect param0:req, param1:req
|
||||
.byte 0x37
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_not_effect param0:req, param1:req
|
||||
.byte 0x38
|
||||
.2byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_less_than battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x39
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_more_than battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x3a
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_equal battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x3b
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_stat_level_not_equal battler:req, stat:req, param2:req, param3:req
|
||||
.byte 0x3c
|
||||
.byte \battler
|
||||
.byte \stat
|
||||
.byte \param2
|
||||
.4byte \param3
|
||||
.endm
|
||||
|
||||
.macro if_can_faint param0:req
|
||||
.byte 0x3d
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_cant_faint param0:req
|
||||
.byte 0x3e
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_has_move battler:req, param1:req, param2:req
|
||||
.byte 0x3f
|
||||
.byte \battler
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_doesnt_have_move battler:req, param1:req, param2:req
|
||||
.byte 0x40
|
||||
.byte \battler
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_effect battler:req, param1:req, param2:req
|
||||
.byte 0x41
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_doesnt_have_move_with_effect battler:req, param1:req, param2:req
|
||||
.byte 0x42
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_any_move_disabled_or_encored battler:req, param1:req, param2:req
|
||||
.byte 0x43
|
||||
.byte \battler
|
||||
.byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro if_curr_move_disabled_or_encored param0:req, param1:req
|
||||
.byte 0x44
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro flee
|
||||
.byte 0x45
|
||||
.endm
|
||||
|
||||
.macro if_random_safari_flee param0:req
|
||||
.byte 0x46
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro watch
|
||||
.byte 0x47
|
||||
.endm
|
||||
|
||||
.macro get_hold_effect battler:req
|
||||
.byte 0x48
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_gender battler:req
|
||||
.byte 0x49
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro is_first_turn_for battler:req
|
||||
.byte 0x4a
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_stockpile_count battler:req
|
||||
.byte 0x4b
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro is_double_battle
|
||||
.byte 0x4c
|
||||
.endm
|
||||
|
||||
.macro get_used_held_item battler:req
|
||||
.byte 0x4d
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro get_move_type_from_result
|
||||
.byte 0x4e
|
||||
.endm
|
||||
|
||||
.macro get_move_power_from_result
|
||||
.byte 0x4f
|
||||
.endm
|
||||
|
||||
.macro get_move_effect_from_result
|
||||
.byte 0x50
|
||||
.endm
|
||||
|
||||
.macro get_protect_count battler:req
|
||||
.byte 0x51
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro if_move_flag flag jumpptr
|
||||
.byte 0x52
|
||||
.4byte \flag
|
||||
.4byte \jumpptr
|
||||
.endm
|
||||
|
||||
.macro if_field_status flag jumpptr
|
||||
.byte 0x53
|
||||
.4byte \flag
|
||||
.4byte \jumpptr
|
||||
.endm
|
||||
|
||||
.macro get_move_accuracy
|
||||
.byte 0x54
|
||||
.endm
|
||||
|
||||
.macro call_if_eq value, ptr
|
||||
.byte 0x55
|
||||
.2byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro call_if_move_flag flag ptr
|
||||
.byte 0x56
|
||||
.4byte \flag
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro nop_57
|
||||
.byte 0x57
|
||||
.endm
|
||||
|
||||
.macro call param0:req
|
||||
.byte 0x58
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro goto param0:req
|
||||
.byte 0x59
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro end
|
||||
.byte 0x5a
|
||||
.endm
|
||||
|
||||
.macro if_level_cond param0:req, param1:req
|
||||
.byte 0x5b
|
||||
.byte \param0
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_target_taunted param0:req
|
||||
.byte 0x5c
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_target_not_taunted param0:req
|
||||
.byte 0x5d
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro if_target_is_ally param0:req
|
||||
.byte 0x5e
|
||||
.4byte \param0
|
||||
.endm
|
||||
|
||||
.macro is_of_type battler:req, type:req
|
||||
.byte 0x5f
|
||||
.byte \battler
|
||||
.byte \type
|
||||
.endm
|
||||
|
||||
.macro check_ability battler:req, ability:req
|
||||
.byte 0x60
|
||||
.byte \battler
|
||||
.byte \ability
|
||||
.endm
|
||||
|
||||
.macro if_flash_fired battler:req, param1:req
|
||||
.byte 0x61
|
||||
.byte \battler
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro if_holds_item battler:req, param1:req, param2:req
|
||||
.byte 0x62
|
||||
.byte \battler
|
||||
.2byte \param1
|
||||
.4byte \param2
|
||||
.endm
|
||||
|
||||
.macro get_ally_chosen_move
|
||||
.byte 0x63
|
||||
.endm
|
||||
|
||||
.macro if_has_no_attacking_moves battler:req, param1:req
|
||||
.byte 0x64
|
||||
.byte \battler
|
||||
.4byte \param1
|
||||
.endm
|
||||
|
||||
.macro get_hazards_count battler:req, effect:req
|
||||
.byte 0x65
|
||||
.byte \battler
|
||||
.2byte \effect
|
||||
.endm
|
||||
|
||||
.macro if_doesnt_hold_berry battler:req, ptr:req
|
||||
.byte 0x66
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_share_type battler1:req, battler2:req, ptr:req
|
||||
.byte 0x67
|
||||
.byte \battler1
|
||||
.byte \battler2
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_cant_use_last_resort battler:req, ptr:req
|
||||
.byte 0x68
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_split battler:req, split:req, ptr:req
|
||||
.byte 0x69
|
||||
.byte \battler
|
||||
.byte \split
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_no_move_with_split battler:req, split:req, ptr:req
|
||||
.byte 0x6A
|
||||
.byte \battler
|
||||
.byte \split
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_physical_moves_unusable attacker:req, target:req, ptr:req
|
||||
.byte 0x6B
|
||||
.byte \attacker
|
||||
.byte \target
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_ai_can_go_down ptr:req
|
||||
.byte 0x6C
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_type battler:req, type:req, ptr:req
|
||||
.byte 0x6D
|
||||
.byte \battler
|
||||
.byte \type
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_no_move_used battler:req, ptr:req
|
||||
.byte 0x6E
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_flag battler:req, flag:req, ptr:req
|
||||
.byte 0x6F
|
||||
.byte \battler
|
||||
.4byte \flag
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_battler_absent battler:req, ptr:req
|
||||
.byte 0x70
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro if_grounded battler:req, ptr:req
|
||||
.byte 0x71
|
||||
.byte \battler
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro get_best_dmg_hp_percent
|
||||
.byte 0x72
|
||||
.endm
|
||||
|
||||
.macro get_curr_dmg_hp_percent
|
||||
.byte 0x73
|
||||
.endm
|
||||
|
||||
.macro get_move_split_from_result
|
||||
.byte 0x74
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_split
|
||||
.byte 0x75
|
||||
.endm
|
||||
|
||||
.macro get_considered_move_target
|
||||
.byte 0x76
|
||||
.endm
|
||||
|
||||
.macro compare_speeds battler1:req, battler2:req
|
||||
.byte 0x77
|
||||
.byte \battler1
|
||||
.byte \battler2
|
||||
.endm
|
||||
|
||||
.macro is_wakeup_turn battler:req
|
||||
.byte 0x78
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req
|
||||
.byte 0x79
|
||||
.byte \battler
|
||||
.byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
@ useful script macros
|
||||
.macro if_has_physical_move battler:req, ptr:req
|
||||
if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_no_physical_move battler:req, ptr:req
|
||||
if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_special_move battler:req, ptr:req
|
||||
if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_has_no_special_move battler:req, ptr:req
|
||||
if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_holds_no_item battler, ptr:req
|
||||
if_holds_item \battler, 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro get_curr_move_type
|
||||
get_type AI_TYPE_MOVE
|
||||
.endm
|
||||
|
||||
.macro get_user_type1
|
||||
get_type AI_TYPE1_USER
|
||||
.endm
|
||||
|
||||
.macro get_user_type2
|
||||
get_type AI_TYPE2_USER
|
||||
.endm
|
||||
|
||||
.macro get_target_type1
|
||||
get_type AI_TYPE1_TARGET
|
||||
.endm
|
||||
|
||||
.macro get_target_type2
|
||||
get_type AI_TYPE2_TARGET
|
||||
.endm
|
||||
|
||||
.macro if_ability battler:req, ability:req, ptr:req
|
||||
check_ability \battler, \ability
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_no_ability battler:req, ability:req, ptr:req
|
||||
check_ability \battler, \ability
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_type battler:req, type:req, ptr:req
|
||||
is_of_type \battler, \type
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_no_type battler:req, type:req, ptr:req
|
||||
is_of_type \battler, \type
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_target_faster ptr:req
|
||||
if_user_goes 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_user_faster ptr:req
|
||||
if_user_goes 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_double_battle ptr:req
|
||||
is_double_battle
|
||||
if_equal 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_not_double_battle ptr:req
|
||||
is_double_battle
|
||||
if_equal 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_any_move_disabled battler:req, ptr:req
|
||||
if_any_move_disabled_or_encored \battler, 0, \ptr
|
||||
.endm
|
||||
|
||||
.macro if_any_move_encored battler:req, ptr:req
|
||||
if_any_move_disabled_or_encored \battler, 1, \ptr
|
||||
.endm
|
||||
|
||||
.macro call_if_always_hit ptr:req
|
||||
get_move_accuracy
|
||||
call_if_eq 0, \ptr
|
||||
.endm
|
||||
@ -362,11 +362,6 @@
|
||||
.byte 0x3f
|
||||
.endm
|
||||
|
||||
.macro jumpifaffectedbyprotect failInstr:req
|
||||
.byte 0x40
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro call instr:req
|
||||
.byte 0x41
|
||||
.4byte \instr
|
||||
@ -1092,8 +1087,9 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trycopyability failInstr:req
|
||||
.macro trycopyability battler:req, failInstr:req
|
||||
.byte 0xd3
|
||||
.byte \battler
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
@ -1317,6 +1313,15 @@
|
||||
.byte \battler
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro allyswitchswapbattlers
|
||||
callnative BS_AllySwitchSwapBattler
|
||||
.endm
|
||||
|
||||
.macro allyswitchfailchance jumpInstr:req
|
||||
callnative BS_AllySwitchFailChance
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifholdeffect battler:req, holdEffect:req, jumpInstr:req
|
||||
callnative BS_JumpIfHoldEffect
|
||||
@ -1391,6 +1396,11 @@
|
||||
.4byte \sidestatus
|
||||
.endm
|
||||
|
||||
.macro trycopycat failInstr:req
|
||||
callnative BS_TryCopycat
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro setzeffect
|
||||
callnative BS_SetZEffect
|
||||
.endm
|
||||
@ -1546,6 +1556,16 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trydefog clear:req, failInstr:req
|
||||
callnative BS_TryDefog
|
||||
.byte \clear
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trytriggerstatusform
|
||||
callnative BS_TryTriggerStatusForm
|
||||
.endm
|
||||
|
||||
@ various command changed to more readable macros
|
||||
.macro cancelmultiturnmoves battler:req
|
||||
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
||||
@ -1805,11 +1825,6 @@
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro trycopycat failInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TRY_COPYCAT
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro showabilitypopup battler:req
|
||||
various \battler, VARIOUS_ABILITY_POPUP
|
||||
.endm
|
||||
@ -1818,12 +1833,6 @@
|
||||
various \battler, VARIOUS_UPDATE_ABILITY_POPUP
|
||||
.endm
|
||||
|
||||
.macro defogclear battler:req, clear:req, failInstr:req
|
||||
various \battler, VARIOUS_DEFOG
|
||||
.byte \clear
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro jumpiftargetally jumpInstr:req
|
||||
various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY
|
||||
.4byte \jumpInstr
|
||||
@ -2324,6 +2333,15 @@
|
||||
goto \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro setallytonextattacker jumpInstr:req
|
||||
jumpifbyte CMP_GREATER_THAN, gBattlerAttacker, 0x1, 1f
|
||||
addbyte gBattlerAttacker, 0x2
|
||||
goto \jumpInstr
|
||||
1:
|
||||
subbyte gBattlerAttacker, 0x2
|
||||
goto \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifleafguardprotected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED
|
||||
.4byte \jumpInstr
|
||||
|
||||
@ -860,6 +860,21 @@ gBattleAnims_Moves::
|
||||
.4byte Move_MATCHA_GOTCHA
|
||||
.4byte Move_SYRUP_BOMB
|
||||
.4byte Move_IVY_CUDGEL
|
||||
.4byte Move_833
|
||||
.4byte Move_834
|
||||
.4byte Move_835
|
||||
.4byte Move_836
|
||||
.4byte Move_837
|
||||
.4byte Move_838
|
||||
.4byte Move_839
|
||||
.4byte Move_840
|
||||
.4byte Move_841
|
||||
.4byte Move_842
|
||||
.4byte Move_843
|
||||
.4byte Move_844
|
||||
.4byte Move_845
|
||||
.4byte Move_846
|
||||
.4byte Move_847
|
||||
@@@@ Z MOVES
|
||||
.4byte Move_BREAKNECK_BLITZ
|
||||
.4byte Move_ALL_OUT_PUMMELING
|
||||
@ -5610,6 +5625,11 @@ Move_QUICK_GUARD:
|
||||
end
|
||||
|
||||
Move_ALLY_SWITCH:
|
||||
call SetPsychicBackground
|
||||
createvisualtask AnimTask_AllySwitchAttacker, 2
|
||||
createvisualtask AnimTask_AllySwitchPartner, 2
|
||||
call DoubleTeamAnimRet
|
||||
call UnsetPsychicBg
|
||||
end
|
||||
|
||||
Move_SCALD:
|
||||
@ -15613,6 +15633,7 @@ Move_FREEZING_GLARE::
|
||||
Move_FIERY_WRATH::
|
||||
loadspritegfx ANIM_TAG_SMALL_EMBER
|
||||
loadspritegfx ANIM_TAG_PURPLE_RING
|
||||
monbg ANIM_DEF_PARTNER
|
||||
playsewithpan SE_M_SACRED_FIRE2, 0xc0
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x2, 0x0, 0xE, 0x0
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_ATTACKER, 0x4, 0x0, 0x8, 0x1F
|
||||
@ -15633,6 +15654,7 @@ Move_FIERY_WRATH::
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_DEF_SIDE, 0x2, 0x9, 0x0, 0x3006
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0xE, 0x0, 0x0
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_DEF_PARTNER
|
||||
end
|
||||
|
||||
FieryWrathGeyser:
|
||||
@ -15650,6 +15672,7 @@ FieryWrathGeyser:
|
||||
delay 0x0
|
||||
createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_TARGET, 0xfffc, 0x10
|
||||
createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_DEF_PARTNER, 0xfffc, 0x10
|
||||
delay 0x0
|
||||
createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_TARGET, 0x100D, 0x10
|
||||
createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_DEF_PARTNER, 0x100D, 0x10
|
||||
delay 0x0
|
||||
@ -15682,10 +15705,10 @@ FieryWrathGeyser:
|
||||
delay 0x0
|
||||
createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_TARGET, 0xfff0, 0x10
|
||||
createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_DEF_PARTNER, 0xfff0, 0x10
|
||||
delay 0x0
|
||||
return
|
||||
|
||||
|
||||
|
||||
@Credits to Skeli
|
||||
Move_THUNDEROUS_KICK::
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
@ -16960,6 +16983,21 @@ Move_IVY_CUDGEL::
|
||||
Move_NONE:
|
||||
Move_MIRROR_MOVE:
|
||||
Move_POUND:
|
||||
Move_833:
|
||||
Move_834:
|
||||
Move_835:
|
||||
Move_836:
|
||||
Move_837:
|
||||
Move_838:
|
||||
Move_839:
|
||||
Move_840:
|
||||
Move_841:
|
||||
Move_842:
|
||||
Move_843:
|
||||
Move_844:
|
||||
Move_845:
|
||||
Move_846:
|
||||
Move_847:
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
monbg ANIM_TARGET
|
||||
setalpha 12, 8
|
||||
@ -19315,9 +19353,8 @@ Move_TELEPORT:
|
||||
call UnsetPsychicBg
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
Move_DOUBLE_TEAM:
|
||||
createvisualtask AnimTask_DoubleTeam, 2
|
||||
|
||||
DoubleTeamAnimRet:
|
||||
setalpha 12, 8
|
||||
monbg ANIM_ATK_PARTNER
|
||||
playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER
|
||||
@ -19341,6 +19378,11 @@ Move_DOUBLE_TEAM:
|
||||
clearmonbg ANIM_ATK_PARTNER
|
||||
blendoff
|
||||
delay 1
|
||||
return
|
||||
|
||||
Move_DOUBLE_TEAM:
|
||||
createvisualtask AnimTask_DoubleTeam, 2
|
||||
call DoubleTeamAnimRet
|
||||
end
|
||||
|
||||
Move_MINIMIZE:
|
||||
@ -27380,8 +27422,6 @@ General_RestoreBg:
|
||||
waitbgfadein
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
General_ZMoveActivate:
|
||||
loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy
|
||||
loadspritegfx ANIM_TAG_Z_MOVE_SYMBOL @Z-Move Symbol
|
||||
|
||||
@ -69,7 +69,7 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS
|
||||
.4byte BattleScript_EffectMist @ EFFECT_MIST
|
||||
.4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_25
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RECOIL
|
||||
.4byte BattleScript_EffectConfuse @ EFFECT_CONFUSE
|
||||
.4byte BattleScript_EffectAttackUp2 @ EFFECT_ATTACK_UP_2
|
||||
.4byte BattleScript_EffectDefenseUp2 @ EFFECT_DEFENSE_UP_2
|
||||
@ -123,7 +123,6 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectSpite @ EFFECT_SPITE
|
||||
.4byte BattleScript_EffectHit @ EFFECT_FALSE_SWIPE
|
||||
.4byte BattleScript_EffectHealBell @ EFFECT_HEAL_BELL
|
||||
.4byte BattleScript_EffectHit @ EFFECT_ALWAYS_CRIT
|
||||
.4byte BattleScript_EffectTripleKick @ EFFECT_TRIPLE_KICK
|
||||
.4byte BattleScript_EffectThief @ EFFECT_THIEF
|
||||
.4byte BattleScript_EffectMeanLook @ EFFECT_MEAN_LOOK
|
||||
@ -215,7 +214,6 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectSnatch @ EFFECT_SNATCH
|
||||
.4byte BattleScript_EffectHit @ EFFECT_LOW_KICK
|
||||
.4byte BattleScript_EffectSecretPower @ EFFECT_SECRET_POWER
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_33
|
||||
.4byte BattleScript_EffectTeeterDance @ EFFECT_TEETER_DANCE
|
||||
.4byte BattleScript_EffectHitEscape @ EFFECT_HIT_ESCAPE
|
||||
.4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT
|
||||
@ -307,9 +305,7 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectGrowth @ EFFECT_GROWTH
|
||||
.4byte BattleScript_EffectCloseCombat @ EFFECT_CLOSE_COMBAT
|
||||
.4byte BattleScript_EffectLastResort @ EFFECT_LAST_RESORT
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_33_STATUS
|
||||
.4byte BattleScript_EffectFlinchStatus @ EFFECT_FLINCH_STATUS
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RECOIL_50
|
||||
.4byte BattleScript_EffectShellSmash @ EFFECT_SHELL_SMASH
|
||||
.4byte BattleScript_EffectShiftGear @ EFFECT_SHIFT_GEAR
|
||||
.4byte BattleScript_EffectDefenseUp3 @ EFFECT_DEFENSE_UP_3
|
||||
@ -439,10 +435,39 @@ gBattleScriptsForMoveEffects::
|
||||
.4byte BattleScript_EffectChillyReception @ EFFECT_CHILLY_RECEPTION
|
||||
.4byte BattleScript_EffectMatchaGotcha @ EFFECT_MATCHA_GOTCHA
|
||||
.4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB
|
||||
.4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL
|
||||
.4byte BattleScript_EffectMaxMove @ EFFECT_MAX_MOVE
|
||||
.4byte BattleScript_EffectGlaiveRush @ EFFECT_GLAIVE_RUSH
|
||||
.4byte BattleScript_EffectBrickBreak @ EFFECT_RAGING_BULL
|
||||
.4byte BattleScript_EffectHit @ EFFECT_RAGE_FIST
|
||||
.4byte BattleScript_EffectDoodle @ EFFECT_DOODLE
|
||||
|
||||
BattleScript_EffectDoodle:
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
attackanimation
|
||||
waitanimation
|
||||
setbyte gBattleCommunication, 0
|
||||
BattleScript_EffectDoodle_CopyAbility:
|
||||
trycopyability BS_ATTACKER, BattleScript_ButItFailed
|
||||
.if B_ABILITY_POP_UP == TRUE
|
||||
setbyte sFIXED_ABILITY_POPUP, TRUE
|
||||
showabilitypopup BS_ATTACKER
|
||||
pause 60
|
||||
sethword sABILITY_OVERWRITE, 0
|
||||
updateabilitypopup BS_ATTACKER
|
||||
pause 20
|
||||
destroyabilitypopup
|
||||
pause 40
|
||||
.endif
|
||||
printstring STRINGID_PKMNCOPIEDFOE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
switchinabilities BS_ATTACKER
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifnoally BS_TARGET, BattleScript_MoveEnd
|
||||
setallytonextattacker BattleScript_EffectDoodle_CopyAbility
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectGlaiveRush::
|
||||
call BattleScript_EffectHit_Ret
|
||||
@ -1085,8 +1110,7 @@ BattleScript_EffectFling:
|
||||
attackcanceler
|
||||
jumpifcantfling BS_ATTACKER, BattleScript_FailedFromAtkString
|
||||
setlastuseditem BS_ATTACKER
|
||||
removeitem BS_ATTACKER
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
accuracycheck BattleScript_FlingMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
pause B_WAIT_TIME_SHORT
|
||||
printstring STRINGID_PKMNFLUNG
|
||||
@ -1095,6 +1119,7 @@ BattleScript_EffectFling:
|
||||
critcalc
|
||||
damagecalc
|
||||
adjustdamage
|
||||
removeitem BS_ATTACKER
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
@ -1170,6 +1195,12 @@ BattleScript_FlingWhiteHerb:
|
||||
swapattackerwithtarget
|
||||
goto BattleScript_FlingEnd
|
||||
|
||||
BattleScript_FlingMissed:
|
||||
removeitem BS_ATTACKER
|
||||
attackstring
|
||||
ppreduce
|
||||
goto BattleScript_MoveMissedPause
|
||||
|
||||
BattleScript_EffectShellSideArm:
|
||||
shellsidearmcheck
|
||||
setmoveeffect MOVE_EFFECT_POISON
|
||||
@ -1209,7 +1240,7 @@ BattleScript_EffectClangorousSoul:
|
||||
attackstring
|
||||
ppreduce
|
||||
cutonethirdhpraisestats BattleScript_ButItFailed
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_SKIP_DMG_TRACK | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_BIDE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
|
||||
attackanimation
|
||||
waitanimation
|
||||
healthbarupdate BS_ATTACKER
|
||||
@ -1519,8 +1550,11 @@ BattleScript_EffectAllySwitch:
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifnoally BS_ATTACKER, BattleScript_ButItFailed
|
||||
allyswitchfailchance BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
@ The actual data/gfx swap happens in the move animation. Here it's just the gBattlerAttacker / scripting battler change
|
||||
allyswitchswapbattlers
|
||||
printstring STRINGID_ALLYSWITCHPOSITION
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
@ -2149,7 +2183,7 @@ BattleScript_EffectDefog:
|
||||
jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards
|
||||
jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, MIN_STAT_STAGE, BattleScript_DefogWorks
|
||||
BattleScript_DefogIfCanClearHazards:
|
||||
defogclear BS_ATTACKER, FALSE, BattleScript_FailedFromAtkString
|
||||
trydefog FALSE, BattleScript_FailedFromAtkString
|
||||
BattleScript_DefogWorks:
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
@ -2169,7 +2203,7 @@ BattleScript_DefogPrintString::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DefogTryHazards::
|
||||
copybyte gEffectBattler, gBattlerAttacker
|
||||
defogclear BS_ATTACKER, TRUE, NULL
|
||||
trydefog TRUE, NULL
|
||||
copybyte gBattlerAttacker, gEffectBattler
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_DefogTryHazardsWithAnim:
|
||||
@ -2988,7 +3022,7 @@ BattleScript_EffectTelekinesis:
|
||||
settelekinesis BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
printstring STRINGID_PKMNIDENTIFIED
|
||||
printstring STRINGID_HURLEDINTOTHEAIR
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
@ -4833,8 +4867,11 @@ BattleScript_EffectThief::
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectHitPreventEscape:
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
|
||||
goto BattleScript_EffectHit
|
||||
seteffectprimary
|
||||
goto BattleScript_HitFromAtkString
|
||||
|
||||
BattleScript_EffectMeanLook::
|
||||
attackcanceler
|
||||
@ -5907,7 +5944,7 @@ BattleScript_EffectRolePlay::
|
||||
attackstring
|
||||
ppreduce
|
||||
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
||||
trycopyability BattleScript_ButItFailed
|
||||
trycopyability BS_ATTACKER, BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
.if B_ABILITY_POP_UP == TRUE
|
||||
@ -6843,7 +6880,7 @@ BattleScript_DamagingWeatherHeal:
|
||||
printstring STRINGID_ICEBODYHPGAIN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DamagingWeatherHpChange:
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
tryfaintmon BS_ATTACKER
|
||||
@ -6853,7 +6890,7 @@ BattleScript_DamagingWeatherLoopIncrement::
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
|
||||
BattleScript_DamagingWeatherContinuesEnd::
|
||||
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
@ -7390,7 +7427,7 @@ BattleScript_EarthEaterActivates::
|
||||
call BattleScript_AbilityPopUp
|
||||
pause B_WAIT_TIME_LONG
|
||||
tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
printstring STRINGID_PKMNREGAINEDHEALTH
|
||||
@ -7967,7 +8004,7 @@ BattleScript_CudChewActivates::
|
||||
call BattleScript_AbilityPopUp
|
||||
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
||||
consumeberry BS_TARGET, FALSE
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
setbyte sBERRY_OVERRIDE, 0
|
||||
@ -8027,10 +8064,11 @@ BattleScript_IllusionOff::
|
||||
return
|
||||
|
||||
BattleScript_CottonDownActivates::
|
||||
setbyte sFIXED_ABILITY_POPUP, TRUE
|
||||
call BattleScript_AbilityPopUp
|
||||
showabilitypopup BS_TARGET
|
||||
pause B_WAIT_TIME_LONG
|
||||
destroyabilitypopup
|
||||
copybyte gEffectBattler, gBattlerTarget
|
||||
savetarget
|
||||
swapattackerwithtarget
|
||||
setbyte gBattlerTarget, 0
|
||||
BattleScript_CottonDownLoop:
|
||||
jumpiffainted BS_TARGET, TRUE, BattleScript_CottonDownLoopIncrement
|
||||
@ -8049,8 +8087,7 @@ BattleScript_CottonDownLoopIncrement:
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_CottonDownLoop
|
||||
BattleScript_CottonDownReturn:
|
||||
restoretarget
|
||||
destroyabilitypopup
|
||||
swapattackerwithtarget
|
||||
return
|
||||
|
||||
BattleScript_AnticipationActivates::
|
||||
@ -8063,12 +8100,14 @@ BattleScript_AnticipationActivates::
|
||||
BattleScript_AftermathDmg::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
printstring STRINGID_AFTERMATHDMG
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_ATTACKER
|
||||
BattleScript_AftermathDmgRet:
|
||||
return
|
||||
|
||||
BattleScript_DampPreventsAftermath::
|
||||
@ -8333,6 +8372,8 @@ BattleScript_MoveEffectSleep::
|
||||
BattleScript_UpdateEffectStatusIconRet::
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
waitstate
|
||||
trytriggerstatusform
|
||||
flushtextbox
|
||||
return
|
||||
|
||||
BattleScript_YawnMakesAsleep::
|
||||
@ -9083,14 +9124,8 @@ BattleScript_SoundproofProtected::
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_IceFaceNullsDamage::
|
||||
attackstring
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
hitanimation BS_TARGET
|
||||
waitstate
|
||||
call BattleScript_TargetFormChangeWithString
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_DazzlingProtected::
|
||||
attackstring
|
||||
@ -9114,14 +9149,14 @@ BattleScript_GrassyTerrainLoop:
|
||||
printstring STRINGID_GRASSYTERRAINHEALS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_GrassyTerrainHpChange:
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
BattleScript_GrassyTerrainLoopIncrement::
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop
|
||||
BattleScript_GrassyTerrainLoopEnd::
|
||||
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_PERMANENT, BattleScript_GrassyTerrainHealEnd
|
||||
BattleScript_GrassyTerrainHealEnd:
|
||||
end2
|
||||
@ -9399,7 +9434,7 @@ BattleScript_KingsShieldEffect::
|
||||
return
|
||||
|
||||
BattleScript_BanefulBunkerEffect::
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
seteffectsecondary
|
||||
setmoveeffect 0
|
||||
@ -9677,7 +9712,7 @@ BattleScript_ItemHealHP_RemoveItemRet_Anim:
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
removeitem BS_SCRIPTING
|
||||
@ -9692,7 +9727,7 @@ BattleScript_ItemHealHP_RemoveItemEnd2_Anim:
|
||||
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
removeitem BS_ATTACKER
|
||||
@ -9748,7 +9783,7 @@ BattleScript_ItemHealHP_Ret::
|
||||
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
return
|
||||
@ -9803,7 +9838,7 @@ BattleScript_BerryConfuseHealEnd2_Anim:
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_FORXCOMMAYZ
|
||||
@ -9822,7 +9857,7 @@ BattleScript_BerryConfuseHealRet_Anim:
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
|
||||
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_FORXCOMMAYZ
|
||||
@ -10429,9 +10464,6 @@ BattleScript_PastelVeilLoopIncrement:
|
||||
BattleScript_PastelVeilEnd:
|
||||
end3
|
||||
|
||||
sByteFour:
|
||||
.byte MAX_BATTLERS_COUNT
|
||||
|
||||
BattleScript_NeutralizingGasExits::
|
||||
savetarget
|
||||
pause B_WAIT_TIME_SHORT
|
||||
@ -10441,7 +10473,7 @@ BattleScript_NeutralizingGasExits::
|
||||
BattleScript_NeutralizingGasExitsLoop:
|
||||
switchinabilities BS_TARGET
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic.
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_NeutralizingGasExitsLoop
|
||||
restoretarget
|
||||
return
|
||||
|
||||
@ -10560,7 +10592,7 @@ BattleScript_DamageNonTypesLoop::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
effectivenesssound
|
||||
hitanimation BS_ATTACKER
|
||||
orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
tryfaintmon BS_ATTACKER
|
||||
@ -10570,7 +10602,7 @@ BattleScript_DamageNonTypesLoopIncrement::
|
||||
addbyte gBattleCommunication, 1
|
||||
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamageNonTypesLoop
|
||||
BattleScript_DamageNonTypesContinuesEnd::
|
||||
bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
|
||||
end2
|
||||
|
||||
BattleScript_EffectTryReducePP::
|
||||
@ -10803,7 +10835,7 @@ BattleScript_BerserkGeneRet_End:
|
||||
BattleScript_EffectSnow::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
ppreduce
|
||||
call BattleScript_CheckPrimalWeather
|
||||
setsnow
|
||||
goto BattleScript_MoveWeatherChange
|
||||
|
||||
@ -257,14 +257,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle::
|
||||
goto MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle::
|
||||
special ReducePlayerPartyToSelectedMons
|
||||
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
|
||||
setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN
|
||||
setvar VAR_0x8005, 0
|
||||
special DoSpecialTrainerBattle
|
||||
waitstate
|
||||
frontier_saveparty
|
||||
special LoadPlayerParty
|
||||
multi_2_vs_2 TRAINER_MAXIE_MOSSDEEP, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, TRAINER_TABITHA_MOSSDEEP, MossdeepCity_SpaceCenter_Text_TabithaDefeat, PARTNER_STEVEN, TRAINER_BACK_PIC_STEVEN
|
||||
switch VAR_RESULT
|
||||
case 1, MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha
|
||||
fadescreen FADE_TO_BLACK
|
||||
@ -336,14 +329,6 @@ MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest::
|
||||
turnobject LOCALID_STEVEN, DIR_EAST
|
||||
return
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer::
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, TRAINER_MAXIE_MOSSDEEP, 0, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand
|
||||
end
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer::
|
||||
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, TRAINER_TABITHA_MOSSDEEP, 0, MossdeepCity_SpaceCenter_Text_TabithaDefeat, MossdeepCity_SpaceCenter_Text_TabithaDefeat
|
||||
end
|
||||
|
||||
MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall::
|
||||
lockall
|
||||
checkplayergender
|
||||
|
||||
126
docs/changelogs/1.6.2.md
Normal file
@ -0,0 +1,126 @@
|
||||
# Version 1.6.2
|
||||
|
||||
```md
|
||||
## How to update
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Once you have your remote set up, run the command `git pull RHH expansion/1.6.2`.
|
||||
```
|
||||
|
||||
## 🌋 *IMPORTANT CHANGES* 🌋
|
||||
### Battle changes
|
||||
* Battler Types are now obtained via `GetBattlerType` instead of `gBattleMons[battlerId].type1/2/3` to better consider Roost. Be sure to update your custom battle effects to account for this change.
|
||||
|
||||
## 🧬 General 🧬
|
||||
### Fixed
|
||||
* Fixed Cheat Start not initiating time-based events by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3446
|
||||
|
||||
## 🐉 Pokémon 🐉
|
||||
### Changed
|
||||
* Updated Cresselia's base stats to Gen 9 by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3419
|
||||
* Updated Zacian/Zamazenta base stats to Gen 9 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3421
|
||||
### Fixed
|
||||
* Fixed Kleavor, Hisuian Sneasel and Sneasler missing their SV abilities by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3391
|
||||
* Fixed Bergmite/Avalugg old and updated egg groups being switched by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3380
|
||||
|
||||
## 🤹 Moves 🤹
|
||||
### Changed
|
||||
* Quick Draw now uses weighted RNG by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399
|
||||
* Added `IS_BATTLER_TYPELESS` macro that checks if the specified battler has no valid type by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3303
|
||||
### Fixed
|
||||
* Fixed Protect failing if the user flinched on the previous turn by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3345
|
||||
* Fixed entry hazards not working properly being cleared on switch-in by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3316
|
||||
* This includes Toxic Spikes not working if Pecha Berry actived on the previous turn.
|
||||
* Fixed Roost overwriting other type changing at the end of the turn (Soak, Forest's Curse, Color Change, etc.) by @BLourenco in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258
|
||||
* Now it suppresses the user's Flying-type rather than remove and re-add it.
|
||||
* Fixes Salt Cure visual bug if mon fainted by direct attack by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3388
|
||||
* Fixed Purifying Salt not preventing the use of Rest by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399
|
||||
* Fixed Make it Rain lowering Sp. Attack twice if hitting 2 targets in double battles by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3441
|
||||
* Fixed Reflect Type not properly handle 3rd types by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3303
|
||||
* Fixed form change triggered by switching not occuring when using moves like U-Turn or Baton Pass by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3463
|
||||
* Fixed Last Resort not counting Sleep Talk as used for its effect by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378
|
||||
|
||||
## 🎭 Abilities 🎭
|
||||
### Changed
|
||||
* Removed unused `STATUS3_CANT_SCORE_A_CRIT` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Moved Beads of Ruin and Sword of Ruin damage to the appropiate damage modifier functions by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415
|
||||
### Fixed
|
||||
* Fixed Intimidate increasing the attack of both opponents if one of them has Contrary in double battles by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3365
|
||||
* Fixed Battle/Shell Armor not preventing critical hits by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Fixed Rivalry's effect being reversed by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381
|
||||
* Fixed Rivalry lowering attack if either attacker or target were genderless by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381
|
||||
* Fixed missing Poison Heal Ability Popup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3385
|
||||
* Fixed Parental Bond not working at all by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3417
|
||||
* Fixed Beads of Ruin and Sword of Ruin damage modifiers by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415
|
||||
* Fixed Sheer Force not negating effects that benefit the user (eg. Flame Charge, Power-Up Punch) by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378
|
||||
* Fixed Strength Sap not healing the user when used on a Substitute by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3486
|
||||
* Fixed Substitute showing the "took damage for" message if Strength Sap was used on it by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3486
|
||||
* Fixed Weak Armor interrupting Multi Hit moves by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3497
|
||||
|
||||
## 🧶 Items 🧶
|
||||
### Fixed
|
||||
* Fixed Shiny Charm doing too many rerolls by default by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3327
|
||||
* Fixed Berserk Gene activating for the wrong Pokémon double battles by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3363
|
||||
* Fixed Red Card not being consumed after opponent Sticky Web activation by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364
|
||||
* Fixed implementation of Gen6 that didn't allow for the Exp Share flag to be set via script without setting the item to the Gen 6+ version by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3384
|
||||
* Fixed Kee Berry raising defense by 1 stage instead of 2 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409
|
||||
* Fixed Kee Berry incorrect stat raise message by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409
|
||||
* Fixed Razor Fang not being able to be used directly even if `I_USE_EVO_HELD_ITEMS_FROM_BAG` was set to `TRUE` by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3456
|
||||
|
||||
## 🧹 Cleanup 🧹
|
||||
* `AbilityBattleEffects` uses `B_MSG_TERRAIN` constants for field terrain intro text by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3410
|
||||
* Removed all trailing whitespace by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3472
|
||||
|
||||
## 🧪 Test Runner 🧪
|
||||
### Added
|
||||
* Flinch tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3345
|
||||
* Berserk Gene double battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3363
|
||||
* More specific Toxic Spikes tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3316
|
||||
* Red Card/Sticky Web test @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364
|
||||
* Intimidate/Contrary double battle test by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3365
|
||||
* Critical Hit tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Roost tests by @BLourenco in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258
|
||||
* Rivalry tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381
|
||||
* Various tests by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3385
|
||||
* Defeatist, Dragon's Maw, Earth Eater, Gale Wings, Poison Heal, Rocky Payload, Sap Sipper, Steelworker and Transistor.
|
||||
* Various tests by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399
|
||||
* Beast Boost, Ice Scales, Neuroforce, Purifying Salt, Quick Draw and Sharpness.
|
||||
* Berry tests @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409
|
||||
* Full: Apicot, Custap, Ganlon, Jaboca, Kee, Lansat, Liechi, Maranga, Micle, Petaya, Rowap and Salac Berries.
|
||||
* TODO: Starf Berry.
|
||||
* Weather and type-specific tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3260
|
||||
* Full: Freezing, Hail, Moonlight, Morning Sun, Sandstorm, Snow, Solar Beam/Blade, Steel poisoning, Synthesis, Thunder and Weather Ball.
|
||||
* Partial: Prankster, Safety Goggles, Aurora Veil, Hurricane, Leech Seed and OHKO moves.
|
||||
* TODO: Harvest.
|
||||
* Single Parental Bond test by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3417
|
||||
* Several tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378
|
||||
* Full: Weak Armor, Last Resort, Stealth Rock.
|
||||
* Completed Weak Armor tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3493
|
||||
* Partial: Defiant, Sheer Force, White Herb, Strength Sap.
|
||||
### Changed
|
||||
* Red Card tests now check if the item was consumed by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364
|
||||
* Tests now cannot use `i` in their cycles to avoid messing with `PARAMETRIZE` by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3408
|
||||
* Moved battle tests off the heap by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3414
|
||||
* Moved Powder/Grass test to `move_flags` folder by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3260
|
||||
* Continuous `NOT x; NOT y;` are now not allowed in tests due to them not acting as one would expect by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3459
|
||||
* Test writers should use `NONE_OF { x; y; }` instead.
|
||||
### Fixed
|
||||
* Fixed CreateNPCTrainerPartyForTrainer test failing on modern by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3367
|
||||
* Fixed `RNG_CRITICAL_HIT` by @mrgriffin and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377
|
||||
* Fixed `ASSUMPTIONS` block not working by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3368
|
||||
* Fixup by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3408
|
||||
* Fixed Beads of Ruin and Sword of Ruin damage tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415
|
||||
* Fixes test RNG by @mrgriffin and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3433
|
||||
* Fixed battle test estimateCost bug by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3448
|
||||
* Test cleanup and improvements by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3449
|
||||
* Removed duplicated Prankster TO_DO test.
|
||||
* Corrected Multi-hit test names (4 and 5 hits stated 35% instead of 15%).
|
||||
* Grouped Maranga Berry's Physical vs Special tests using PARAMETRIZE.
|
||||
* Improved Jaboca, Kee and Rowap tests by @AlexOn1ine
|
||||
* Fixed `ModifyPersonalityForNature` by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3452
|
||||
* Fixed test_runner.c modern warning by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3451
|
||||
|
||||
## New Contributors
|
||||
* @BLourenco made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258
|
||||
|
||||
## Full Changelog
|
||||
https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.6.1...expansion/1.6.2
|
||||
584
docs/changelogs/1.7.0.md
Normal file
@ -0,0 +1,584 @@
|
||||
# Version 1.7.0
|
||||
|
||||
```md
|
||||
## How to update
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Once you have your remote set up, run the command `git pull RHH expansion/1.7.0`.
|
||||
```
|
||||
|
||||
## 🌋 *IMPORTANT CHANGES* 🌋
|
||||
### [***The Expansion now uses Modern compilers by default***](https://github.com/rh-hideout/pokeemerald-expansion/pull/3305)
|
||||
* We have enabled `-Werror -Wall` in the Makefile. These flags show warnings for undefined behaviors in the old compiler (`agbcc`), and sets all warnings as errors. As such, we have updated the codebase so that all warnings that **gcc 13** throws are handled:
|
||||
* CI now uses devkitarm container to run a more modern gcc by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3429
|
||||
* Fix by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3530
|
||||
* Fixed `-Wall -Werror` errors on Modern by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3412
|
||||
* Fixed warnings introduced by gcc 13 by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3428
|
||||
* `-Warray-bounds`
|
||||
* `-Waddress`
|
||||
* `-Warray-parameter`
|
||||
* Fixed `-Wmaybe-uninitialized` for `ModifyPersonalityForNature` test by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3457
|
||||
* ***Modern compiler may raise the following errors for code introduced from outside the expansion, so we recommend solving those errors:***
|
||||
* `unused-function`. To solve it, add `UNUSED` to the function definition.
|
||||
```diff
|
||||
-static void Function(void)
|
||||
+static void UNUSED Function(void)
|
||||
```
|
||||
* `unused-variable`. To solve it, remove the unused variable.
|
||||
```diff
|
||||
static void Function(void)
|
||||
{
|
||||
- u8 unused;
|
||||
u8 used;
|
||||
...
|
||||
```
|
||||
* `unused-but-set-variable`. To solve it, add `UNUSED` to the variable definition.
|
||||
```diff
|
||||
static void Function(void)
|
||||
{
|
||||
- u8 unused;
|
||||
+ u8 UNUSED unused;
|
||||
u8 used;
|
||||
unused = DoSomething();
|
||||
...
|
||||
```
|
||||
* Updated modern compiler install instructions by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3527
|
||||
* ***You may still use `agbcc` by adding*** `agbcc` to your `make` command to finish the update process before fixing these errors.
|
||||
* eg. `make -j8 agbcc`.
|
||||
* We may drop support for it in the future, so we recommend updating the code to support the new compilers.
|
||||
* This will generate `pokeemerald_agbcc.gba`, while modern will generate `pokeemerald.gba` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3462
|
||||
|
||||
## 🧬 General 🧬
|
||||
### Added
|
||||
* Incorporated @TheXaman's HGSS Style Pokédex by @AaghatIsLive in https://github.com/rh-hideout/pokeemerald-expansion/pull/3288
|
||||
* Includes Dark Mode
|
||||
* Fix by @AaghatIsLive in https://github.com/rh-hideout/pokeemerald-expansion/pull/3479
|
||||
* Updated evolution strings by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/3375
|
||||
* Changes to omit adding the code when disabling the feature by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3445
|
||||
* Teachable move list fix by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3624
|
||||
* Incorporated @DizzyEggg's nature color branch by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3582
|
||||
* Shows nature stat modifiers in summary screen.
|
||||
* Added `SUMMARY_SCREEN_NATURE_COLORS` config to disable it.
|
||||
* Updates stat reduction to blue to align with official implementation.
|
||||
* Added `I_SELL_VALUE_FRACTION` config that changes selling factor of items to 1/4th when set to Gen 9 by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3315
|
||||
* Added `P_FRIENDSHIP_EVO_THRESHOLD` config to update the Friendship evolution threshold to Gen8+'s standard by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3376
|
||||
* Debug Menu
|
||||
* Added `ROM Space` Utility option to check ROM space by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3453
|
||||
* Added `Toggle Match Call` Flag option to toggle Match Call by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3489
|
||||
* Added `Move Reminder` option by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3707
|
||||
* Moved Party/Boxes related functions to their own menu by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3707
|
||||
* Added expansion Rom Header by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3454
|
||||
* Added defines for Expansion version number.
|
||||
* Added option to see the version number in debug menu.
|
||||
* Added option to restore Japan-only Walda PC backgrounds by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3550
|
||||
* Added `BATTLE_PYRAMID_RANDOM_ENCOUNTERS` config to enable Battle Pyramid Wild Encounter randomization by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/2581
|
||||
* Added a `GetSpeciesPreEvolution` function by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3696
|
||||
### Changed
|
||||
* Converted `Get(Box)MonData2` to proper functions by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3416
|
||||
* Added `src/data/map_group_count.h` to `.gitignore` by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3423
|
||||
* `Cheat Start` option now gives all badges and enables all Fly locations. `Fly to...` option no longer enables all Fly locations by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3489
|
||||
* Better documentation for Type Effectiveness table by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3374
|
||||
* Generational defines now start at `GEN_1` instead of `GEN_3` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3628
|
||||
* Fixes and cleanup
|
||||
* By @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3720
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3723
|
||||
### Fixed
|
||||
* Fixed potential Fly and Badge mismatch when using debug options by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3489
|
||||
* Fixed Pokémon Animation debug menu ignoring animation delay by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562
|
||||
* Fixed `IS_DITTO` macro by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3558
|
||||
* Added RTC failsafe to Debug menu's `Cheat Start` option by @ravepossum in https://github.com/rh-hideout/pokeemerald-expansion/pull/3561
|
||||
|
||||
## 🐉 Pokémon 🐉
|
||||
### Added
|
||||
* ***Added Generation 9 species up to Teal Mask*** by @leo60228, @AlexOn1ine, @katykat5099, @kittenchilly and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3249
|
||||
* ***IMPORTANT:*** Enabling Gen 9 species currently break saves. If you don't want to use them, you can disable `P_GEN_9_POKEMON` in `include/config/species_enabled.h`.
|
||||
* Reserved Indigo Disk IDs
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3725
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3726
|
||||
* By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3727
|
||||
* Reserved Form IDs that will be supported in future versions by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3750
|
||||
* Shadow Lugia
|
||||
* Totem Forms
|
||||
* Partner Pikachu and Eevee
|
||||
* Updated UIs to support 4-digit Dex numbers.
|
||||
* Added Dunsparce and Tandemaus evolution methods by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3547
|
||||
* Tandemaus still does the evolution cutscene for now.
|
||||
* Ported newer PokéCommunity sprites by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3643 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3646
|
||||
* Fixes and cleanup
|
||||
* By @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3539
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3655 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3749
|
||||
* By @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3751
|
||||
* ***Adjusted Pokemon sprites and palettes - Part 2*** by @CyanSMP64 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3612
|
||||
* From Magnemite to Tangela + Hitmontop + Nidoking adjustment by MrDollSteak.
|
||||
* Corrected sprite sizes and elevations
|
||||
* Further palette adjustments by @CyanSMP64 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3744
|
||||
* Pidgeotto, Tentacruel, Feraligatr, Furret, Flaaffy, Marill, Azumarill and Miltank.
|
||||
* Added missing Alcremie forms by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3469
|
||||
* Previously, only Strawberry Sweet forms were available
|
||||
* Missing: Icons for non-Ruby Cream forms.
|
||||
* Cleanup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3488
|
||||
* Added species define synonyms for base forms with form names by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3248
|
||||
* Eg. `SPECIES_GIRATINA_ALTERED` is equal to `SPECIES_GIRATINA`.
|
||||
* The original defines can be used in combination of `GET_BASE_SPECIES_ID(species)` to check for the whole species instead of specific forms.
|
||||
* Added Gen 7 Pokémon 2nd frames and animations by @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3426
|
||||
* Rowlet family
|
||||
* Pikipek family
|
||||
* Cutiefly family
|
||||
* Rockruff family
|
||||
* Oranguru
|
||||
* Passimian
|
||||
* Fixed its shiny palette.
|
||||
* Togedemaru
|
||||
* Drampa
|
||||
* Jangmo-O family
|
||||
* Added Gen 6 Pokémon 2nd frames and animations by @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3543
|
||||
* Chespin
|
||||
* Bunnelby
|
||||
* Fletchling family
|
||||
* Floette family
|
||||
* Added missing 2nd frame for Eternal Flower Form.
|
||||
* Amaura
|
||||
* Added mising World Cap Pikachu icon by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3401
|
||||
* Added `P_CUSTOM_GENDER_DIFF_ICONS` config to use custom female icon sprites for Pikachu and Wobbuffet by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3506
|
||||
* Removed `P_HIPPO_GENDER_DIFF_ICONS` in favor of Hippopotas and Hippowdon to use this new config.
|
||||
* Added `P_UPDATED_FRIENDSHIP` config that updates Pokémon base friendship to Gen 8+ standards by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3491
|
||||
### Changed
|
||||
* ***Species Simplifier™*** (Parts [1](https://github.com/rh-hideout/pokeemerald-expansion/pull/3544), [2](https://github.com/rh-hideout/pokeemerald-expansion/pull/3546) and [3](https://github.com/rh-hideout/pokeemerald-expansion/pull/3562))
|
||||
* **Moved most data to `gSpeciesInfo`**
|
||||
* Species names
|
||||
* Cries
|
||||
* Refactored Cry tables to simplify the process of adding new cries. Now there's a single entry in the table per cry, and species are asigned cry IDs in `gSpeciesInfo`.
|
||||
* Graphical data now have their pointers in `gSpeciesInfo` (Sprites, palettes and animations)
|
||||
* Removed all files in `src/data/pokemon_graphics/` with the exception of `front_pic_anims.h`.
|
||||
* Removed unused 2nd animations.
|
||||
* Dex Entries
|
||||
* Individual form information is visible in the HGSS Pokédex (Vanilla Dex TBD)
|
||||
* National Dex numbers are assigned to the species in `gSpeciesInfo`, removing the need of `sSpeciesToHoennPokedexNum` and `sSpeciesToNationalPokedexNum` arrays.
|
||||
* Height and Weight are now saved separately per form, so weight in battle is now more accurate.
|
||||
* Pokédex size page proportions are also separate.
|
||||
* Pokédex descriptions are now saved as compound strings in `gSpeciesInfo` and differ by form. Shared entries are at the top of `src/data/pokemon/species_info.h`.
|
||||
* Missing Pokédex texts for forms by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3708
|
||||
* Level Up and Teachable learnset pointers are now stored in `gSpeciesInfo`.
|
||||
* Evolutions are now stored as compound literals in `gSpeciesInfo`.
|
||||
* Fix by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3696
|
||||
* Form tables pointers are now stored in `gSpeciesInfo`.
|
||||
* **Added toggles to disable specific family groups of species**
|
||||
* Located in `include/config/species_enabled.h`.
|
||||
* Moved the original `P_GEN_x_POKEMON` configs to this file.
|
||||
* Options to disable groups of species:
|
||||
* Battle-gimmick forms (Megas, Primals, etc.)
|
||||
* Regional Forms (Includes evolutions of those species, such as Sirfetch'd)
|
||||
* Pikachu extra forms.
|
||||
* Cross-Generation Evolutions
|
||||
* Also added separate option to add cross-evolutions to the Regional Dex.
|
||||
* Generation 1-3 families can now be disabled.
|
||||
* Pokémon will not evolve into species that have been disabled.
|
||||
* Pokémon will produce offspring of species that have been disabled.
|
||||
* Pokémon will not change form into forms that have been disabled.
|
||||
* Fixes and cleanup
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3722
|
||||
* Grouped data by species family.
|
||||
* Converted species flags to gcc flags.
|
||||
* Converted `P_UPDATED_STATS` "ifdef blocks" to ternaries.
|
||||
* Added Mega Evolution hidden ability failsafes.
|
||||
* Separated `gSpeciesInfo` by Generation by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3729
|
||||
* Fixes and cleanup
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3656
|
||||
* By @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3698
|
||||
* Updated `P_UPDATED_ABILITIES` Gen 9's config for Piplup's line, Gallade and Shiftry by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3353
|
||||
* Shiftry's 2nd regular ability was changed from Early Bird to Wind Rider.
|
||||
* Piplup, Prinplup and Empoleon's Hidden abilities were changed from Defiant to Competitive.
|
||||
* Gallade was given Sharpness as a 2nd regular ability.
|
||||
* Updated Legends Arceus Pokémon data and Level Up learnsets to Scarlet/Violet's by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3458
|
||||
* Applied missing uses of `PLACEHOLDER_ANIM_SINGLE_FRAME` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562
|
||||
* Renamed `PLACEHOLDER_TWO_FRAME_ANIMATION` to `PLACEHOLDER_ANIM_TWO_FRAMES` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562
|
||||
* Removed Old Unown Level Up Learnsets by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562
|
||||
* Added `FORM_CHANGE_TIME_OF_DAY` form change that automatically changes Form during times of day (used by Shaymin to revert to Land Forme at night) by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/1690
|
||||
* Added `FORM_CHANGE_STATUS` form change that triggers when they adquire status condition (used by Shaymin to revert to Land Forme when frozen) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3734
|
||||
* Currently it doesn't:
|
||||
* Prevent Shaymin from changing into Sky Forme when frozen.
|
||||
* Change Form in the Battle Pike.
|
||||
* Evolutions now call for `GetTimeOfDay` instead of checking the times directly by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3369
|
||||
* Dusk Ball and Form changes also use this function by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3585
|
||||
* Added config for different times of day ranges by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3579
|
||||
* Fixes and cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3648 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3701
|
||||
### Fixed
|
||||
* Fixed Koffing and Weezing's abilities ignoring `P_UPDATED_ABILITIES` config and always using Gen8's config by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3353
|
||||
* Fixed Pumpkaboo macro typo by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3541
|
||||
* Multiple fixes by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3544
|
||||
* Fixed Mega Gardevoir/Gallade not having their updated Egg Groups.
|
||||
* Fixed mon not having their appropiate items.
|
||||
* Alolan Sandlash (Grip Claw, Rare)
|
||||
* Alolan Muk (Black Sludge, Common)
|
||||
* Alolan Golem (Cell Battery, Common)
|
||||
* Alolan Marowak (Thick Club, Rare)
|
||||
* Alolan Ninetales (Snowball, Rare)
|
||||
* Fixed missing species flags.
|
||||
* Giratina Origin (Legendary flag)
|
||||
* Deoxys Attack (Mythical flag)
|
||||
* Deoxys Defense (Mythical flag)
|
||||
* Deoxys Speed (Mythical flag)
|
||||
* Shaymin Sky (Mythical flag)
|
||||
* Fixed Aegislash Blade giving the wrong EV yield.
|
||||
* Fixed Zygarde 10% with Power Construct having the same stats as Zygarde 50%.
|
||||
* Fixed Galarian Weezing having inproper noFlip property.
|
||||
* Fixed Stantler not evolving when `P_GEN_9_POKEMON` is set to `FALSE` by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3548
|
||||
* Fixes Hisuian Sneasel's type order by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3706
|
||||
|
||||
## ⚔️ Battle General ⚔️ ##
|
||||
### Added
|
||||
* ***Dynamax*** by @AgustinGDLV and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/2417 + Tests
|
||||
* Requires a Dynamax Band in the bag and for the `B_FLAG_DYNAMAX_BATTLE` flag to be assigned and set.
|
||||
* Pokémon holding a Mega Stone or Z-Crystal can't Dynamax.
|
||||
* Gigantamax forms.
|
||||
* G-Max Moves.
|
||||
* Forms determined using the Form Change tables.
|
||||
* `P_GIGANTAMAX_FORMS` config to disable those forms.
|
||||
* Since we currently don't modify the `BoxPokemon` struct:
|
||||
* Dynamax levels are set to 0 (1.5x HP increase)
|
||||
* Species always change into their Gigantamax Forms.
|
||||
* AI Dynamaxes the last Pokémon left in their party.
|
||||
* Instances where HP/Max HP percentages are used now use `GetNonDynamaxHP` and `GetNonDynamaxMaxHP` respectively.
|
||||
* Trainer slide-in messages by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3581
|
||||
* Fixes and cleanup
|
||||
* By @AsparagusEduardo in
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3435
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3510
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3713
|
||||
* By @AlexOn1ine in
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3464
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3470
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3541
|
||||
* Added support for Sky Battles by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/2950
|
||||
* Requires both `B_FLAG_SKY_BATTLE` and `B_VAR_SKY_BATTLE` to be assigned.
|
||||
* Use the `TrySkyBattle` special in scripts to check if the player can participate in a Sky Battle and readies the party if it's succesful. Saves the result in VAR_RESULT.
|
||||
```
|
||||
Route123_EventScript_Alberto_Battle_Event_Script:
|
||||
msgbox Route123_EventScript_Alberto_Text_AskSkyBattle, MSGBOX_YESNO
|
||||
compare VAR_RESULT, NO
|
||||
goto_if_eq Route123_EventScript_Alberto_DenySkyBattle
|
||||
special TrySkyBattle
|
||||
compare VAR_RESULT, TRUE
|
||||
goto_if_eq Route123_EventScript_Alberto_StartBattle
|
||||
msgbox Route123_EventScript_Alberto_Text_No_Flying_Pokemon
|
||||
closemessage
|
||||
release
|
||||
end
|
||||
```
|
||||
* The `B_SKY_BATTLE_STRICT_ELIGIBILITY` config will restrict certain Pokémon from participating based on XY's list when enabled. By default is disabled and allows all Pokémon that are Flying-type and/or have Levitate as their ability.
|
||||
* Banned moves are defined by the `skyBattleBanned` flag. Besides moves banned officially in XY, Gen7+ moves are added via `B_EXTRAPOLATED_MOVE_FLAGS` config by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3714
|
||||
* Effects that interact with grounded battlers do not happen in Sky Battles.
|
||||
* Fix by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3617
|
||||
* Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3621
|
||||
* Added `B_TOXIC_REVERSAL` config to revert bad poison to regular poison at the end of battles by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3605
|
||||
* Added `B_SANDSTORM_SPDEF_BOOST` config to disable Sandstorm's Sp. Defense boost for Rock-type Pokémon when set to `GEN_3` or less by @Petuuuhhh in https://github.com/rh-hideout/pokeemerald-expansion/pull/3387
|
||||
* Added `B_QUICK_MOVE_CURSOR_TO_RUN` config to allow a B Button shortcut for moving the cursor to the run option in Wild Battles by @voloved in https://github.com/rh-hideout/pokeemerald-expansion/pull/3362
|
||||
* Added `B_TRY_CATCH_TRAINER_BALL` config to disable losing the Poké Ball used to try to catch a Trainer's Pokémon by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3684
|
||||
* Added `P_CATCH_CURVE` config that updates catch calculations to Gen 6+ by @AtariDreams in https://github.com/rh-hideout/pokeemerald-expansion/pull/3685
|
||||
* Added Snow weather animation by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3440
|
||||
* Added a `flushtextbox` macro to flush the text box in battles by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3442
|
||||
### Changed
|
||||
* Removed redundant Battle Types by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/2417
|
||||
* `BATTLE_TYPE_KYOGRE_GROUDON`
|
||||
* `BATTLE_TYPE_REGI`
|
||||
* `BATTLE_TYPE_GROUDON`
|
||||
* `BATTLE_TYPE_KYOGRE`
|
||||
* `BATTLE_TYPE_RAYQUAZA`
|
||||
* Intros, terrain and music determined by the species itself.
|
||||
* Regigigas, Regieleki and Regidrago play `MUS_VS_REGI`.
|
||||
* Converted most battle preproc `#if` blocks to C `if`s by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3392
|
||||
* Removed pointless for loop in CB2_InitBattleInternal by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3422
|
||||
* Refactored Battle Frontier bans to check the base species by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3465
|
||||
* Better support for adding new species.
|
||||
* Also adds Gen4+ [Special Pokémon](https://bulbapedia.bulbagarden.net/wiki/Special_Pok%C3%A9mon) to the list.
|
||||
* Obedience levels now increase per badge by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3475
|
||||
* Also sets `B_OBEDIENCE_MECHANICS`'s default config to `GEN_LATEST`, where obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level.
|
||||
* Thanks to combination of the added obedience levels matching ORAS' with vanilla Emerald's encounter levels, there's not a single instance were players need to worry about caught Pokémon not obeying as soon as they are caught.
|
||||
* Decoupled Affection values from Friendship rater thresholds, making them occur less often than what they used to by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3495
|
||||
* Because of the lessened frequency, they have been turned on by default.
|
||||
* Added `HITMARKER_DISABLE_ANIMATION` to temporarily disable animations (used in Bug Bite's berry consumption) by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3607
|
||||
### Fixed
|
||||
* Fixed Psychic Terrain blocking moves that target all battler or all opponents by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3521
|
||||
* Fixed issue with "Cycle through Poké Balls" feature not working properly by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3534
|
||||
* Fixed Burmy not transforming at the end of battle if it didn't switch in during a Single Battle by @benicioneto in https://github.com/rh-hideout/pokeemerald-expansion/pull/3728
|
||||
* Fixed Player Partner not playing its Shiny animation by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3757
|
||||
|
||||
## 🤹 Moves 🤹
|
||||
### Added
|
||||
* Added Teal Mask Moves by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3402 + Tests
|
||||
* Matcha Gotcha
|
||||
* Syrup Bomb
|
||||
* Animation by @SonikkuA-DatH and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3474
|
||||
* Fixes by @AlexOn1ine in
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3437
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/3552
|
||||
* Ivy Cudgel
|
||||
* Type is shown in interfaces by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3590
|
||||
* Tweaks and fixes
|
||||
* By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3721
|
||||
* Fixed Ivy Cudgel test name by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3742
|
||||
* Added Glaive Rush's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3476
|
||||
* Added Raging Bull's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3552
|
||||
* Added Chilly Reception's effect by @RapidNutcracker in https://github.com/rh-hideout/pokeemerald-expansion/pull/3379
|
||||
* Added Rage Fist's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3573
|
||||
* Added define synonyms (eg. `MOVE_VICE_GRIP` vs the current `MOVE_VISE_GRIP`) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3580
|
||||
* Added combined Pledge move effects by @AlexOn1ine, @Skeli789 and @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3336
|
||||
* Status animations by @SonikkuA-DatH
|
||||
* Added `B_WIDE_GUARD` and `B_QUICK_GUARD` configs for Wide Guard and Quick Guard to fail when used consecutively in Gen 5 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3614
|
||||
* Added `B_IMPRISON` config that makes Imprison not fail if opposin Pokémon don't have any moves that the user knows from Gen 5 onwards by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3710
|
||||
### Changed
|
||||
* Added `B_EXTRAPOLATED_MOVE_FLAGS` config to extend move flag for moves removed in Gen8+.
|
||||
* Razor Wind, Silver Wind and Ominous Wind are given the `windMove` flag.
|
||||
* Dynamax Cannon, Behemoth Blade and Behemoth Blade are given the `assistBanned` flag.
|
||||
* Bitter Blade and Matcha Gotcha are given the `healBlockBanned` flag.
|
||||
* Added new move flags by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3425
|
||||
* `twoTurnMove` (replaces `IsTwoTurnsMove`)
|
||||
* `forcePressure` (for self-targeted moves that are affected by Pressure)
|
||||
* `cantUseTwice` (replaces `EFFECT_GIGATON_HAMMER`)
|
||||
* `healBlockBanned` (replaces an `EFFECT_x` switch in `IsHealBlockPreventingMove`)
|
||||
* `encoreBanned` (replaces `if` chain in `Cmd_trysetencore`)
|
||||
* `assistBanned` (originally used `copycatBanned` + `EFFECT_SEMI_INVULNERABLE` and `EFFECT_SKY_DROP`)
|
||||
* `parentalBondBanned`
|
||||
* Updated missing move flags for every move by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3425
|
||||
* Updated Grassy Glide's power from 60 to 55 when `B_UPDATED_MOVE_DATA` is set to `GEN_9` or later (Teal Mask) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3425
|
||||
* Simplified Octolock script and converted its `various` to `callnative` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437
|
||||
* Added `CanAbilityPreventStatLoss` to centralize stat lowering immunities by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437
|
||||
* Fixed multiple abilities not showing the ability name in their message.
|
||||
* Renamed `EFFECT_SMELLINGSALT` to `EFFECT_SMELLING_SALTS` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3504
|
||||
* New move animations by @Captain-Ford and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3529
|
||||
* Phantom Force
|
||||
* Trick or Treat
|
||||
* Acrobatics
|
||||
* Head Smash
|
||||
* Psyshock
|
||||
* Charge Beam
|
||||
* Plasma Fists now setup `STATUS_FIELD_ION_DELUGE` instead of having their own `STATUS4` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3476
|
||||
* Battle Dome points are now based on move data instead of being arbitrarily assigned by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3596
|
||||
### Fixed
|
||||
* Multiple Relic Song fixes by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3476
|
||||
* Fixed Acid and Crunch move descriptions being updated by `B_UPDATED_MOVE_DATA` alongside their effects by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3586
|
||||
* Fixed Howl buffing the user's ally if they have Soundproof by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3593
|
||||
* Fixed Floral Healing not increasing its effect on Grassy Terrain + Tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3604
|
||||
* Fixed Spirit Shackle/Anchor Shot not trapping the targets by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3668
|
||||
* Fixed Defog not consuming PP if the foe has -6 evasion by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3668
|
||||
* Fixed Mirror Coat being able to reflect Pain Split damage by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3668
|
||||
* Fixed incorrect Fling damage calculation due to the item being removed before them by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3670
|
||||
* Fixed Z-Moves using the base move's priority by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3690
|
||||
* Fixed Metal Burst, Trump Card and Comeuppance not being considered as damaging moves by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3697
|
||||
* Fixed Fiery Wrath animation bug that caused the user to flip upside down by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3739
|
||||
* Fixed Baton Pass not passing Embargo's remaining turns by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3745
|
||||
* Fixed Raging Fury not causing rampage on user by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3754
|
||||
|
||||
## 🎭 Abilities 🎭
|
||||
### Added
|
||||
* Added Opportunist + Tests by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/2994
|
||||
* Added Zero to Hero + Tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3542
|
||||
* Fix by @AlexOn1ine https://github.com/rh-hideout/pokeemerald-expansion/pull/3552
|
||||
* Added `B_ILLUMINATE_EFFECT` config for Illuminate's Gen9 effect by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3482
|
||||
* Added `B_WEAK_ARMOR_SPEED` config for Weak Armor's Gen 5-6 effect by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3498
|
||||
* Added `B_PROTEAN_LIBERO` config for Protean/Libero only triggering once per switch-in as of Gen 9 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3614
|
||||
* Added `B_INTREPID_SWORD` and `B_DAUNTLESS_SHIELD` configs for Intrepid Sword and Dauntless Sword only triggering once per battle by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3614
|
||||
* Added configs for disabling ability overworld effects as of Gen 9 by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3480
|
||||
* Synchronize, Compound Eyes, Super Luck, Cute Charm, Illuminate, Infiltrator, Harvest, Lightning Rod, Storm Drain, Flash Fire, Magnet Pull and Static.
|
||||
* Àbility data (not yet functional) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3349
|
||||
* Hospitality
|
||||
* Mind's Eye
|
||||
* Embody Aspect (one ability per effect)
|
||||
* Toxic Chain
|
||||
* Supersweet Syrup
|
||||
### Changed
|
||||
* Pickup Table has been changed so that their percentages can be customized more easily, by @kittenchilly and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3351
|
||||
* The data has been changed to Sword & Shield's.
|
||||
* Moved `B_SYNCHRONIZE_NATURE` to `include/config/overworld.h` and renamed it to `OW_SYNCHRONIZE_NATURE` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3480
|
||||
### Fixed
|
||||
* Fixed Synchronize not working with Gift Pokémon and scripted Wild Battles by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3480
|
||||
* Fixed Anger Shell being triggered multiple times by multi-hit moves by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3508
|
||||
* Fixed Absorbing abilities not cancelling multi-hit moves + Tests (eg. Sap Sipper vs Bullet Seed) by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3516
|
||||
* Fixed issue that caused Shadow Tag to not work by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3549
|
||||
* Fixed assumption that `gLastUsedAbility` is `u8` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3569
|
||||
* Fixes Protosynthesis and Quark Drive ability pop up appearing more than once by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3595
|
||||
* Fixed Trace not triggering when switching in by secondary effects like U-Turn, Eject Pack or Explosion by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3623
|
||||
* Fixed Defiant not being triggered by Cotton Down interaction by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3657
|
||||
* Fixed self-targeted moves triggering Stamina, like Substitute by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3669
|
||||
* Fixed Quick Draw not working properly by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3724
|
||||
* Fixed Neutraling Gas switch-out combined with Electric Surge causing a visual glitch by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3746
|
||||
* Fixed Innards Out damaging Pokémon with Magic Guard by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3758
|
||||
* Fixed Innards Out damaging Pokémon despite being suppressed by Gastro Acid by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3758
|
||||
|
||||
## 🧶 Items 🧶
|
||||
### Added
|
||||
* Repeated Medicine usage by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3005
|
||||
* You can use multiple medicine items in a row without going back to the bag menu. Supports Rare and Exp. Candies.
|
||||
* Added `B_LIGHT_BALL_ATTACK_BOOST` config to disable Light Ball's Pshycal Attack boost when set to `GEN_3` or less by @Petuuuhhh in https://github.com/rh-hideout/pokeemerald-expansion/pull/3387
|
||||
* Added Teal Mask items by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3349
|
||||
* Sprites (except for Fairy Feather) by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3527
|
||||
* Fairy Feather by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3520
|
||||
* Sprite by [Anarlaurendil on Deviantart](https://www.deviantart.com/anarlaurendil/art/Fairy-Feather-pixel-art-icon-Pokemon-986417461).
|
||||
* Despite being introduced in Gen 9, it's still affected by the `I_TYPE_BOOST_POWER` config to be consistent with other type items (10% boost when set to Gen 3).
|
||||
* Evolution items
|
||||
* Syrupy Apple
|
||||
* Unremarkable Teacup
|
||||
* Masterpiece Teacup
|
||||
* Form change items
|
||||
* Cornerstone Mask
|
||||
* Wellspring Mask
|
||||
* Hearthflame Mask
|
||||
* EV modifier items
|
||||
* Health Mochi
|
||||
* Muscle Mochi
|
||||
* Resist Mochi
|
||||
* Genius Mochi
|
||||
* Clever Mochi
|
||||
* Swift Mochi
|
||||
* Fresh Start Mochi
|
||||
* Glimmering Charm
|
||||
* Since there's no raids, it currently does nothing.
|
||||
* Implemented Rotom Catalog and Zygarde Cube by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3284
|
||||
* Zygarde Cube follows Gen 8 functionality, where it allows to change Form and Ability but not teach moves.
|
||||
* Rotom Catalog follows non-BDSP functionality, where all forms don't need to be unlocked.
|
||||
* Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3700
|
||||
* Implemented support for Fusion items by @TeamAquasHideout and @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3274
|
||||
* Items:
|
||||
* DNA Splicers
|
||||
* N-Solarizer
|
||||
* N-Lunarizer
|
||||
* Reins of Unity
|
||||
* Fused mon are stored at the end of in `PokemonStorage`.
|
||||
* Fixes by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3602
|
||||
* Fixes and cleanup
|
||||
* By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3644
|
||||
* By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3692
|
||||
* Ported pokefirered's Vs. Seeker by @Jaizu @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3256
|
||||
* Requires `I_VS_SEEKER_CHARGING` flag to be assigned.
|
||||
* Cleanup by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3718
|
||||
* Added define synonyms (eg. `ITEM_STICK` vs the current `ITEM_LEEK`) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3580
|
||||
### Changed
|
||||
* Removed unused holdEffectParam for items that double the amount of money gained in battle by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3528
|
||||
* Using the name `Parcel` instead of `Oak's Parcel` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3580
|
||||
* Repel/Lure menu improvements @Jaizu and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3594
|
||||
* If `VAR_LAST_REPEL_LURE_USED` is enabled and a spray runs out:
|
||||
* It will show the name of the spray that ran out.
|
||||
* If it was the last item of its type and strength, it will ask the player if they want to use a different one of the same type.
|
||||
* B can now be pressed to cancel the menu.
|
||||
### Fixed
|
||||
* Fixed healing berries activating before Knock Off by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3509
|
||||
* Fixed crash damage triggering Eject Button by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3669 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3738
|
||||
* Fixed Quick Claw not reading `holdEffectParam` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3737
|
||||
* Fixed Life Orb causing recoil when swapped via Magician when it shouldn't by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3753
|
||||
|
||||
## 🤖 Battle AI 🤖
|
||||
* Added AI Tests
|
||||
* By @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3361
|
||||
* AI prefers Bubble over Water Gun if it's slower (both are power 40).
|
||||
* AI prefers Water Gun over Bubble if it knows that foe has Contrary.
|
||||
* AI prefers moves with better accuracy, but only if they both require the same number of hits to KO.
|
||||
* AI prefers moves which deal more damage instead of moves which are super-effective but deal less damage.
|
||||
* AI prefers Earthquake over Drill Run if both require the same number of hits to KO.
|
||||
* AI chooses the safest option to faint the target, taking into account accuracy and move effect.
|
||||
* AI won't use ground type attacks against flying type Pokémon unless Gravity is in effect.
|
||||
* AI will not switch in a Pokémon which is slower and gets 1HKOed after fainting.
|
||||
* AI switches if Perish Song is about to kill.
|
||||
* AI won't use a Weather changing move if partner already chose such move.
|
||||
* AI will not use Helping Hand if partner does not have any damage moves.
|
||||
* AI will not use a status move if partner already chose Helping Hand.
|
||||
* AI without any flags chooses moves at random.
|
||||
* By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3382
|
||||
* AI prefers a weaker moves over one with a downside effect if both require the same number of hits to KO.
|
||||
* AI prefers moves with the best possible score, chosen randomly if tied.
|
||||
* AI can choose a status move that boosts the attack by two.
|
||||
* By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3515
|
||||
* AI won't use Solar Beam if there is no Sun up or the user is not holding Power Herb.
|
||||
* By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3583
|
||||
* AI chooses moves with secondary effect that have a 100% chance to trigger
|
||||
* Cleanup by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3748
|
||||
* Smarter SwitchAI Mon Choices + `HasBadOdds` Switch Check by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/3253
|
||||
* Use `AI_FLAG_SMART_MON_CHOICES` to enable smarter decisions when choosing which mon gets sent out
|
||||
* `HasBadOdds` expands `AI_FLAG_SMART_SWITCHING` to switch out in cases where a mon has a bad matchup and lots of HP remaining
|
||||
* Extend `AI_FLAG_SMART_SWITCHING` for Encore / hazards / lowered attacking stats + Tests by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/3557
|
||||
### Changed
|
||||
* By @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3199
|
||||
* Using move flags instead of lists for AI calculations by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3389
|
||||
* Remove redundant AI score increases by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3504
|
||||
* Remove `GetMoveDamageResult` function by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3536
|
||||
### Fixed
|
||||
* Fixed AI randomly choosing moves if they're both super effective by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3361
|
||||
|
||||
## 🧹 Other Cleanup 🧹
|
||||
* Remove all trailing whitespace (upcoming) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3473
|
||||
* Debug menu cleanup and documentation by @AsparagusEduardo and @sphericalice in https://github.com/rh-hideout/pokeemerald-expansion/pull/3390
|
||||
* Removed `powerfulMoveEffects` array by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3515
|
||||
* Added `-Woverride-init` Makefile flag that agbcc has by default by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3535
|
||||
* Fixed static variable names by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3637
|
||||
* Fixed config descriptions
|
||||
* By @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3717
|
||||
* Fixed mistmatching `gBattleTextBuff3` definitions by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3719
|
||||
|
||||
## 🧪 Test Runner 🧪
|
||||
### Added
|
||||
* Added support for wild battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3342
|
||||
* Added support for AI battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3361
|
||||
* Experience tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3342
|
||||
* Catching Pokémon gives experience.
|
||||
* Higher leveled Pokémon give more experience.
|
||||
* Lucky Egg boosts gained exp points by 50%.
|
||||
* Exp is scaled to player and opponent's levels.
|
||||
* Large exp gains are supported
|
||||
* Held Exp. Share gives Experience to mons which did not participate in battle
|
||||
* Added additional damage formula test by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437
|
||||
* Added Octolock tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437
|
||||
* Added Defiant/Sticky Web interaction test by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3516
|
||||
* Added Embargo tests by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3555
|
||||
* Added missing Hyper Cutter tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437
|
||||
* Added missing Anger Shell tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3508
|
||||
* Added missing White Herb tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3611
|
||||
* Added `SpeciesInfo` integrity tests by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3688
|
||||
### Changed
|
||||
* Moved battle tests off the heap by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3413
|
||||
* Automatic `ASSUMPTION_FAIL` in tests when used species are disabled.
|
||||
* Because of this, instances of `ASSUME(P_GEN_x_POKEMON == TRUE)` have been removed.
|
||||
* Updated Gen 9-mon-exclusive ability tests to use Gen 9 mon by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3733
|
||||
### Fixed
|
||||
* Fixed VSCode error shenanigans when viewing tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3383
|
||||
* Fixed broken move animations in test replays by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3398
|
||||
* Performance improvement for test name matching by @jiangzhengwenjz in https://github.com/rh-hideout/pokeemerald-expansion/pull/3559
|
||||
* Fixed Ice Heal test name typo by @AtariDreams in https://github.com/rh-hideout/pokeemerald-expansion/pull/3676
|
||||
|
||||
## 📦 Pret merges 📦
|
||||
* 2023-10-02 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3372
|
||||
* Slight RTC documentation + Evolution times constants (https://github.com/pret/pokeemerald/pull/1925)
|
||||
* Add friendship evo threshold constant (https://github.com/pret/pokeemerald/pull/1928)
|
||||
* Solved a bunch of -Wall errors on modern (https://github.com/pret/pokeemerald/pull/1926)
|
||||
* 2023-10-27 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3471
|
||||
* Add some task/sprite data defines (https://github.com/pret/pokeemerald/pull/1915)
|
||||
* Fix mini_printf encoded string -Werror=pointer-sign warning (https://github.com/pret/pokeemerald/pull/1938)
|
||||
* Remove all trailing whitespace (https://github.com/pret/pokeemerald/pull/1937)
|
||||
* Use BUGFIX in assembly files (https://github.com/pret/pokeemerald/pull/1935)
|
||||
* 2023-12-10 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3675
|
||||
* Delete the redundant files generated after running build (https://github.com/pret/pokeemerald/pull/1944)
|
||||
* Rename `EGG_GROUP_UNDISCOVERED` egg group to `EGG_GROUP_NO_EGGS_DISCOVERED` (https://github.com/pret/pokeemerald/pull/1939)
|
||||
* Renamed `SendMonToPC` to `CopyMonToPC` (https://github.com/pret/pokeemerald/pull/1940)
|
||||
* Document `datahpupdate` (https://github.com/pret/pokeemerald/pull/1936)
|
||||
* Renamed `HITMARKER_IGNORE_SAFEGUARD` to `HITMARKER_STATUS_ABILITY_EFFECT` (https://github.com/pret/pokeemerald/pull/1959)
|
||||
* Moved files (https://github.com/pret/pokeemerald/pull/1953)
|
||||
* Spinda Spots
|
||||
* JP Fonts
|
||||
* `redyellowgreen_frame.bin`
|
||||
* [Build System Rewrite] Linkerscript now tracks RAM/ROM usage (https://github.com/pret/pokeemerald/pull/1952)
|
||||
* Fixed ld_script.ld artifact from a previous pret version by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3731
|
||||
* Updated the size of the `struct InGameTrade`'s `otName` variable (https://github.com/pret/pokeemerald/pull/1962)
|
||||
|
||||
<!-- BELOW IS ALL THAT HASN'T BEEN SORTED-->
|
||||
|
||||
## New Contributors
|
||||
* @Petuuuhhh made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3387
|
||||
* @katykat5099 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3426
|
||||
* @leo60228 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3249
|
||||
* @hedara90 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3527
|
||||
* @jiangzhengwenjz made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3559
|
||||
* @ravepossum made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3561
|
||||
* @RapidNutcracker made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3379
|
||||
* @GraionDilach made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3624
|
||||
* @AtariDreams made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3676
|
||||
|
||||
**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.6.2...expansion/1.7.0
|
||||
|
||||
<!--Last PR: 3697-->
|
||||
@ -7,6 +7,8 @@
|
||||
static void *sHeapStart;
|
||||
static u32 sHeapSize;
|
||||
|
||||
EWRAM_DATA u8 gHeap[HEAP_SIZE] = {0};
|
||||
|
||||
void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size)
|
||||
{
|
||||
struct MemBlock *header = (struct MemBlock *)block;
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
#ifndef GUARD_ALLOC_H
|
||||
#define GUARD_ALLOC_H
|
||||
|
||||
#define HEAP_SIZE 0x1C000
|
||||
|
||||
#define FREE_AND_SET_NULL(ptr) \
|
||||
{ \
|
||||
@ -42,7 +41,8 @@ struct MemBlock
|
||||
u8 data[0];
|
||||
};
|
||||
|
||||
extern u8 gHeap[];
|
||||
#define HEAP_SIZE 0x1C000
|
||||
extern u8 gHeap[HEAP_SIZE];
|
||||
|
||||
#if TESTING || !defined(NDEBUG)
|
||||
|
||||
|
||||
@ -281,7 +281,7 @@ EWRAM_DATA static bool8 sShouldProcessSpriteCopyRequests = 0;
|
||||
EWRAM_DATA static u8 sSpriteCopyRequestCount = 0;
|
||||
EWRAM_DATA static struct SpriteCopyRequest sSpriteCopyRequests[MAX_SPRITES] = {0};
|
||||
EWRAM_DATA u8 gOamLimit = 0;
|
||||
static EWRAM_DATA u8 gOamDummyIndex = 0;
|
||||
static EWRAM_DATA u8 sOamDummyIndex = 0;
|
||||
EWRAM_DATA u16 gReservedSpriteTileCount = 0;
|
||||
EWRAM_DATA static u8 sSpriteTileAllocBitmap[128] = {0};
|
||||
EWRAM_DATA s16 gSpriteCoordOffsetX = 0;
|
||||
@ -292,7 +292,7 @@ EWRAM_DATA bool8 gAffineAnimsDisabled = FALSE;
|
||||
void ResetSpriteData(void)
|
||||
{
|
||||
ResetOamRange(0, 128);
|
||||
gOamDummyIndex = 0;
|
||||
sOamDummyIndex = 0;
|
||||
ResetAllSprites();
|
||||
ClearSpriteCopyRequests();
|
||||
ResetAffineAnimData();
|
||||
@ -405,9 +405,9 @@ void BuildOamBuffer(void)
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = oamIndex; i < gOamDummyIndex; i++)
|
||||
for (i = oamIndex; i < sOamDummyIndex; i++)
|
||||
gMain.oamBuffer[i] = gDummyOamData;
|
||||
gOamDummyIndex = oamIndex;
|
||||
sOamDummyIndex = oamIndex;
|
||||
|
||||
for (i = 0; matrices != 0; i++, matrices >>= 1)
|
||||
{
|
||||
@ -751,9 +751,17 @@ void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFram
|
||||
{
|
||||
if (sSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS)
|
||||
{
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].src = images[index].data;
|
||||
if (!images[0].relativeFrames)
|
||||
{
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].src = images[index].data;
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].size = images[index].size;
|
||||
}
|
||||
else
|
||||
{
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].src = images[0].data + images[0].size * index;
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].size = images[0].size;
|
||||
}
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].dest = (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
|
||||
sSpriteCopyRequests[sSpriteCopyRequestCount].size = images[index].size;
|
||||
sSpriteCopyRequestCount++;
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,11 +26,13 @@ struct SpriteFrameImage
|
||||
{
|
||||
const void *data;
|
||||
u16 size;
|
||||
bool8 relativeFrames;
|
||||
};
|
||||
|
||||
#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr}
|
||||
|
||||
#define overworld_frame(ptr, width, height, frame) {.data = (u8 *)ptr + (width * height * frame * 64)/2, .size = (width * height * 64)/2}
|
||||
#define overworld_ascending_frames(ptr, width, height) {.data = (u8 *)ptr, .size = (width * height * 64)/2, .relativeFrames=TRUE}
|
||||
|
||||
struct SpritePalette
|
||||
{
|
||||
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
@ -2,18 +2,18 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
48 80 144
|
||||
72 144 224
|
||||
112 184 248
|
||||
16 49 90
|
||||
8 98 172
|
||||
90 156 238
|
||||
16 16 16
|
||||
152 0 8
|
||||
200 40 0
|
||||
232 80 0
|
||||
80 176 240
|
||||
148 16 16
|
||||
189 41 49
|
||||
222 65 82
|
||||
49 131 197
|
||||
248 248 248
|
||||
168 48 32
|
||||
120 200 232
|
||||
232 128 120
|
||||
192 192 208
|
||||
216 224 248
|
||||
115 180 246
|
||||
222 65 82
|
||||
197 197 213
|
||||
213 222 246
|
||||
80 176 208
|
||||
|
||||
|
Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 451 B |
@ -11,7 +11,7 @@ JASC-PAL
|
||||
217 216 147
|
||||
104 97 60
|
||||
158 154 87
|
||||
144 196 144
|
||||
230 228 167
|
||||
40 48 40
|
||||
224 135 8
|
||||
66 115 147
|
||||
|
||||
|
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 559 B |
|
Before Width: | Height: | Size: 546 B After Width: | Height: | Size: 548 B |
@ -14,6 +14,6 @@ JASC-PAL
|
||||
199 117 5
|
||||
255 255 255
|
||||
243 189 3
|
||||
153 211 165
|
||||
14 64 173
|
||||
238 13 36
|
||||
0 0 0
|
||||
16 88 254
|
||||
|
||||
@ -13,7 +13,7 @@ JASC-PAL
|
||||
27 33 35
|
||||
199 117 5
|
||||
255 255 255
|
||||
243 189 3
|
||||
153 211 165
|
||||
33 252 217
|
||||
14 64 173
|
||||
33 174 217
|
||||
0 0 0
|
||||
16 88 254
|
||||
|
||||
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 570 B |
@ -4,7 +4,7 @@ JASC-PAL
|
||||
255 163 177
|
||||
167 163 122
|
||||
248 238 187
|
||||
28 41 22
|
||||
64 63 48
|
||||
255 254 232
|
||||
16 16 16
|
||||
85 215 253
|
||||
@ -14,6 +14,6 @@ JASC-PAL
|
||||
138 138 112
|
||||
34 35 40
|
||||
50 57 67
|
||||
52 69 61
|
||||
64 62 47
|
||||
75 86 92
|
||||
226 233 215
|
||||
|
||||
|
Before Width: | Height: | Size: 596 B After Width: | Height: | Size: 581 B |
@ -13,7 +13,7 @@ JASC-PAL
|
||||
165 165 165
|
||||
255 252 201
|
||||
222 223 221
|
||||
56 144 200
|
||||
222 223 221
|
||||
248 252 248
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -6,10 +6,10 @@ JASC-PAL
|
||||
255 139 131
|
||||
16 16 16
|
||||
246 82 90
|
||||
41 74 139
|
||||
90 180 246
|
||||
57 139 205
|
||||
139 213 255
|
||||
8 106 148
|
||||
65 213 238
|
||||
41 156 189
|
||||
139 238 255
|
||||
255 255 255
|
||||
197 197 197
|
||||
255 230 139
|
||||
|
||||
|
Before Width: | Height: | Size: 479 B After Width: | Height: | Size: 464 B |
|
Before Width: | Height: | Size: 559 B After Width: | Height: | Size: 544 B |
@ -4,7 +4,7 @@ JASC-PAL
|
||||
152 208 160
|
||||
61 77 167
|
||||
118 138 252
|
||||
136 216 224
|
||||
139 158 254
|
||||
79 100 235
|
||||
170 181 211
|
||||
208 236 240
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
@ -2,17 +2,17 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
189 189 213
|
||||
180 180 213
|
||||
255 255 255
|
||||
131 115 139
|
||||
222 230 246
|
||||
205 222 246
|
||||
16 16 16
|
||||
74 74 90
|
||||
222 65 98
|
||||
255 164 164
|
||||
255 115 115
|
||||
255 189 189
|
||||
164 0 16
|
||||
213 98 123
|
||||
255 180 205
|
||||
255 139 156
|
||||
255 205 213
|
||||
139 32 49
|
||||
82 131 197
|
||||
82 131 197
|
||||
131 197 255
|
||||
|
||||
|
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 475 B |
@ -2,18 +2,18 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
114 133 134
|
||||
63 103 103
|
||||
191 220 223
|
||||
150 185 190
|
||||
75 114 106
|
||||
52 74 64
|
||||
134 186 173
|
||||
116 161 150
|
||||
175 155 10
|
||||
249 216 0
|
||||
222 223 222
|
||||
15 15 15
|
||||
156 151 156
|
||||
100 145 142
|
||||
146 180 177
|
||||
114 94 22
|
||||
255 181 9
|
||||
209 147 16
|
||||
142 187 183
|
||||
194 231 233
|
||||
143 103 130
|
||||
255 179 230
|
||||
255 143 219
|
||||
118 152 148
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 693 B |
@ -3,17 +3,17 @@ JASC-PAL
|
||||
16
|
||||
152 208 160
|
||||
82 41 32
|
||||
230 197 74
|
||||
213 180 106
|
||||
123 65 57
|
||||
32 32 41
|
||||
197 156 65
|
||||
255 238 148
|
||||
16 16 16
|
||||
238 213 164
|
||||
156 98 74
|
||||
197 156 65
|
||||
172 131 41
|
||||
255 255 197
|
||||
255 255 255
|
||||
248 248 248
|
||||
115 115 115
|
||||
156 0 0
|
||||
255 148 98
|
||||
120 64 56
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
@ -2,18 +2,18 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
112 0 56
|
||||
248 176 184
|
||||
160 48 104
|
||||
32 32 40
|
||||
232 152 160
|
||||
248 232 216
|
||||
216 88 136
|
||||
216 112 120
|
||||
248 232 240
|
||||
115 0 57
|
||||
255 180 189
|
||||
164 49 106
|
||||
16 16 16
|
||||
255 238 222
|
||||
222 90 139
|
||||
238 156 164
|
||||
222 115 123
|
||||
255 238 246
|
||||
248 248 248
|
||||
112 112 112
|
||||
152 0 0
|
||||
248 144 96
|
||||
120 64 56
|
||||
115 115 115
|
||||
156 0 0
|
||||
255 148 98
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 382 B |
@ -4,16 +4,16 @@ JASC-PAL
|
||||
152 208 160
|
||||
63 171 181
|
||||
40 89 112
|
||||
96 204 248
|
||||
201 245 240
|
||||
136 247 236
|
||||
44 49 56
|
||||
96 132 152
|
||||
152 204 216
|
||||
248 248 48
|
||||
16 16 16
|
||||
81 96 158
|
||||
64 44 96
|
||||
129 159 225
|
||||
216 184 232
|
||||
70 117 212
|
||||
36 70 138
|
||||
108 146 229
|
||||
141 168 227
|
||||
67 78 94
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 636 B |
@ -5,14 +5,14 @@ JASC-PAL
|
||||
53 103 115
|
||||
16 16 16
|
||||
217 255 247
|
||||
99 191 188
|
||||
16 24 96
|
||||
184 255 240
|
||||
32 111 131
|
||||
87 222 219
|
||||
65 143 199
|
||||
80 156 240
|
||||
56 48 104
|
||||
133 144 249
|
||||
87 88 181
|
||||
78 187 217
|
||||
163 255 235
|
||||
28 81 186
|
||||
92 144 249
|
||||
63 119 232
|
||||
32 40 80
|
||||
48 68 120
|
||||
120 152 184
|
||||
|
||||
|
Before Width: | Height: | Size: 849 B After Width: | Height: | Size: 949 B |
@ -2,18 +2,18 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
40 152 240
|
||||
112 200 248
|
||||
168 232 248
|
||||
48 80 184
|
||||
72 168 240
|
||||
144 24 0
|
||||
216 72 0
|
||||
240 128 0
|
||||
49 106 172
|
||||
90 156 238
|
||||
123 180 246
|
||||
24 57 115
|
||||
65 131 205
|
||||
148 16 16
|
||||
189 41 49
|
||||
222 65 82
|
||||
16 16 16
|
||||
248 248 248
|
||||
224 224 232
|
||||
56 64 64
|
||||
200 200 216
|
||||
197 230 238
|
||||
98 98 98
|
||||
180 197 205
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
@ -2,18 +2,18 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
200 200 248
|
||||
72 88 96
|
||||
16 16 16
|
||||
90 90 98
|
||||
0 0 0
|
||||
248 248 248
|
||||
112 120 128
|
||||
40 48 56
|
||||
152 88 96
|
||||
248 176 192
|
||||
200 176 96
|
||||
224 128 152
|
||||
104 56 64
|
||||
32 88 192
|
||||
248 192 208
|
||||
232 240 168
|
||||
88 88 56
|
||||
216 200 120
|
||||
172 172 180
|
||||
49 49 49
|
||||
156 98 106
|
||||
246 180 164
|
||||
213 172 115
|
||||
213 139 131
|
||||
106 65 65
|
||||
32 123 205
|
||||
238 213 189
|
||||
255 238 180
|
||||
115 98 57
|
||||
255 213 131
|
||||
|
||||
|
Before Width: | Height: | Size: 615 B After Width: | Height: | Size: 612 B |
|
Before Width: | Height: | Size: 711 B After Width: | Height: | Size: 700 B |
@ -15,5 +15,5 @@ JASC-PAL
|
||||
224 164 152
|
||||
96 40 56
|
||||
128 68 72
|
||||
88 184 232
|
||||
0 0 0
|
||||
32 115 229
|
||||
26 97 189
|
||||
|
||||
@ -6,7 +6,7 @@ JASC-PAL
|
||||
135 199 210
|
||||
102 157 165
|
||||
16 16 16
|
||||
240 132 128
|
||||
153 216 224
|
||||
112 92 96
|
||||
160 144 144
|
||||
200 192 192
|
||||
@ -15,5 +15,5 @@ JASC-PAL
|
||||
206 182 159
|
||||
96 40 56
|
||||
128 68 72
|
||||
59 112 145
|
||||
0 0 0
|
||||
21 76 148
|
||||
17 59 115
|
||||
|
||||
|
Before Width: | Height: | Size: 479 B After Width: | Height: | Size: 464 B |
@ -4,7 +4,7 @@ JASC-PAL
|
||||
152 208 160
|
||||
61 77 167
|
||||
118 138 252
|
||||
136 216 224
|
||||
139 158 254
|
||||
79 100 235
|
||||
170 181 211
|
||||
208 236 240
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 878 B After Width: | Height: | Size: 876 B |
|
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 701 B |
|
Before Width: | Height: | Size: 111 B After Width: | Height: | Size: 111 B |
|
Before Width: | Height: | Size: 112 B After Width: | Height: | Size: 112 B |
|
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 99 B |
|
Before Width: | Height: | Size: 99 B After Width: | Height: | Size: 99 B |
|
Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 535 B |
|
Before Width: | Height: | Size: 881 B After Width: | Height: | Size: 881 B |
0
graphics/pokemon/tauros/aqua/icon.png → graphics/pokemon/tauros/paldean_aqua_breed/icon.png
Executable file → Normal file
|
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 389 B |
|
Before Width: | Height: | Size: 569 B After Width: | Height: | Size: 569 B |
|
Before Width: | Height: | Size: 895 B After Width: | Height: | Size: 895 B |
0
graphics/pokemon/tauros/blaze/icon.png → graphics/pokemon/tauros/paldean_blaze_breed/icon.png
Executable file → Normal file
|
Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 391 B |
|
Before Width: | Height: | Size: 488 B After Width: | Height: | Size: 488 B |
|
Before Width: | Height: | Size: 805 B After Width: | Height: | Size: 805 B |
0
graphics/pokemon/tauros/combat/icon.png → graphics/pokemon/tauros/paldean_combat_breed/icon.png
Executable file → Normal file
|
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 369 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
@ -7,10 +7,10 @@ JASC-PAL
|
||||
246 65 82
|
||||
180 41 32
|
||||
131 16 16
|
||||
168 160 176
|
||||
128 120 136
|
||||
120 112 120
|
||||
96 96 104
|
||||
230 213 164
|
||||
180 172 115
|
||||
131 131 65
|
||||
82 82 32
|
||||
200 200 200
|
||||
131 205 230
|
||||
106 180 230
|
||||
|
||||
|
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 306 B |
|
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 399 B |
@ -2,17 +2,17 @@ JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
156 122 24
|
||||
184 180 192
|
||||
232 228 224
|
||||
173 111 11
|
||||
214 150 13
|
||||
255 185 8
|
||||
248 252 248
|
||||
16 16 16
|
||||
194 150 45
|
||||
120 44 64
|
||||
252 202 77
|
||||
232 92 112
|
||||
8 41 123
|
||||
49 82 164
|
||||
62 54 173
|
||||
44 39 125
|
||||
100 91 220
|
||||
79 67 222
|
||||
56 80 72
|
||||
80 112 104
|
||||
120 156 136
|
||||
152 184 168
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 504 B |
|
Before Width: | Height: | Size: 464 B After Width: | Height: | Size: 464 B |
|
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 485 B |
|
Before Width: | Height: | Size: 808 B After Width: | Height: | Size: 700 B |
@ -3,14 +3,14 @@ JASC-PAL
|
||||
16
|
||||
152 208 160
|
||||
55 58 158
|
||||
248 120 152
|
||||
110 113 194
|
||||
40 33 117
|
||||
248 252 248
|
||||
75 79 197
|
||||
16 16 16
|
||||
134 61 19
|
||||
242 158 69
|
||||
203 102 24
|
||||
139 65 9
|
||||
237 151 45
|
||||
201 108 14
|
||||
48 48 56
|
||||
64 72 88
|
||||
104 128 128
|
||||
|
||||
1
graphics/unused/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
redyellowgreen_frame.bin
|
||||
@ -20,7 +20,7 @@ JPCONTESTGFXDIR := graphics/contest/japanese
|
||||
POKEDEXGFXDIR := graphics/pokedex
|
||||
STARTERGFXDIR := graphics/starter_choose
|
||||
NAMINGGFXDIR := graphics/naming_screen
|
||||
SPINDAGFXDIR := graphics/spinda_spots
|
||||
SPINDAGFXDIR := graphics/pokemon/spinda/spots
|
||||
|
||||
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
|
||||
@ -253,10 +253,10 @@ $(FONTGFXDIR)/short.fwjpnfont: $(FONTGFXDIR)/japanese_short.png
|
||||
$(FONTGFXDIR)/braille.fwjpnfont: $(FONTGFXDIR)/braille.png
|
||||
$(GFX) $< $@
|
||||
|
||||
$(FONTGFXDIR)/frlg_male.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_male_font.png
|
||||
$(FONTGFXDIR)/frlg_male.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_male.png
|
||||
$(GFX) $< $@
|
||||
|
||||
$(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female_font.png
|
||||
$(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female.png
|
||||
$(GFX) $< $@
|
||||
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#include "pokeball.h"
|
||||
#include "battle_debug.h"
|
||||
#include "battle_dynamax.h"
|
||||
#include "random.h" // for rng_value_t
|
||||
|
||||
// Used to exclude moves learned temporarily by Transform or Mimic
|
||||
#define MOVE_IS_PERMANENT(battler, moveSlot) \
|
||||
@ -44,6 +45,9 @@
|
||||
|
||||
#define BATTLE_BUFFER_LINK_SIZE 0x1000
|
||||
|
||||
// Special indicator value for shellBellDmg in SpecialStatus
|
||||
#define IGNORE_SHELL_BELL 0xFFFF
|
||||
|
||||
struct ResourceFlags
|
||||
{
|
||||
u32 flags[MAX_BATTLERS_COUNT];
|
||||
@ -56,6 +60,7 @@ struct ResourceFlags
|
||||
#define RESOURCE_FLAG_TRACED 0x10
|
||||
#define RESOURCE_FLAG_EMERGENCY_EXIT 0x20
|
||||
#define RESOURCE_FLAG_NEUTRALIZING_GAS 0x40
|
||||
#define RESOURCE_FLAG_ICE_FACE 0x80
|
||||
|
||||
struct DisableStruct
|
||||
{
|
||||
@ -63,8 +68,8 @@ struct DisableStruct
|
||||
u32 transformedMonOtId;
|
||||
u16 disabledMove;
|
||||
u16 encoredMove;
|
||||
u8 protectUses;
|
||||
u8 stockpileCounter;
|
||||
u8 protectUses:4;
|
||||
u8 stockpileCounter:4;
|
||||
s8 stockpileDef;
|
||||
s8 stockpileSpDef;
|
||||
s8 stockpileBeforeDef;
|
||||
@ -110,6 +115,7 @@ struct DisableStruct
|
||||
u8 steelSurgeDone:1;
|
||||
u8 weatherAbilityDone:1;
|
||||
u8 terrainAbilityDone:1;
|
||||
u8 usedProteanLibero:1;
|
||||
};
|
||||
|
||||
struct ProtectStruct
|
||||
@ -158,6 +164,7 @@ struct ProtectStruct
|
||||
u16 silkTrapped:1;
|
||||
u16 eatMirrorHerb:1;
|
||||
u16 activateOpportunist:2; // 2 - to copy stats. 1 - stats copied (do not repeat). 0 - no stats to copy
|
||||
u16 usedAllySwitch:1;
|
||||
u32 physicalDmg;
|
||||
u32 specialDmg;
|
||||
u8 physicalBattlerId;
|
||||
@ -166,7 +173,7 @@ struct ProtectStruct
|
||||
|
||||
struct SpecialStatus
|
||||
{
|
||||
s32 dmg;
|
||||
s32 shellBellDmg;
|
||||
s32 physicalDmg;
|
||||
s32 specialDmg;
|
||||
u8 physicalBattlerId;
|
||||
@ -203,6 +210,7 @@ struct SpecialStatus
|
||||
// End of byte
|
||||
u8 emergencyExited:1;
|
||||
u8 afterYou:1;
|
||||
u8 magicianStolen:1; // So that Life Orb doesn't activate after Magician steals it.
|
||||
};
|
||||
|
||||
struct SideTimer
|
||||
@ -539,7 +547,7 @@ struct ZMoveData
|
||||
u8 active:1; // is z move being used this turn
|
||||
u8 zStatusActive:1;
|
||||
u8 healReplacement:1;
|
||||
u8 activeSplit:2; // active z move split
|
||||
u8 activeCategory:2; // active z move category
|
||||
u8 zUnused:1;
|
||||
u8 triggerSpriteId;
|
||||
u8 possibleZMoves[MAX_BATTLERS_COUNT];
|
||||
@ -548,7 +556,7 @@ struct ZMoveData
|
||||
u8 used[MAX_BATTLERS_COUNT]; //one per bank for multi-battles
|
||||
u16 toBeUsed[MAX_BATTLERS_COUNT]; // z moves per battler to be used
|
||||
u16 baseMoves[MAX_BATTLERS_COUNT];
|
||||
u8 splits[MAX_BATTLERS_COUNT];
|
||||
u8 categories[MAX_BATTLERS_COUNT];
|
||||
};
|
||||
|
||||
struct DynamaxData
|
||||
@ -560,8 +568,8 @@ struct DynamaxData
|
||||
bool8 dynamaxed[MAX_BATTLERS_COUNT];
|
||||
u8 dynamaxTurns[MAX_BATTLERS_COUNT];
|
||||
u8 usingMaxMove[MAX_BATTLERS_COUNT];
|
||||
u8 activeSplit;
|
||||
u8 splits[MAX_BATTLERS_COUNT];
|
||||
u8 activeCategory;
|
||||
u8 categories[MAX_BATTLERS_COUNT];
|
||||
u16 baseMove[MAX_BATTLERS_COUNT]; // base move of Max Move
|
||||
u16 lastUsedBaseMove;
|
||||
u16 levelUpHP;
|
||||
@ -573,6 +581,13 @@ struct LostItem
|
||||
u16 stolen:1;
|
||||
};
|
||||
|
||||
#if HQ_RANDOM == TRUE
|
||||
struct BattleVideo {
|
||||
u32 battleTypeFlags;
|
||||
rng_value_t rngSeed;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct BattleStruct
|
||||
{
|
||||
u8 turnEffectsTracker;
|
||||
@ -644,7 +659,12 @@ struct BattleStruct
|
||||
u16 lastTakenMoveFrom[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT]; // a 2-D array [target][attacker]
|
||||
union {
|
||||
struct LinkBattlerHeader linkBattlerHeader;
|
||||
|
||||
#if HQ_RANDOM == FALSE
|
||||
u32 battleVideo[2];
|
||||
#else
|
||||
struct BattleVideo battleVideo;
|
||||
#endif
|
||||
} multiBuffer;
|
||||
u8 wishPerishSongState;
|
||||
u8 wishPerishSongBattlerId;
|
||||
@ -696,10 +716,10 @@ struct BattleStruct
|
||||
u16 changedSpecies[NUM_BATTLE_SIDES][PARTY_SIZE]; // For forms when multiple mons can change into the same pokemon.
|
||||
u8 quickClawBattlerId;
|
||||
struct LostItem itemLost[PARTY_SIZE]; // Player's team that had items consumed or stolen (two bytes per party member)
|
||||
u8 blunderPolicy:1; // should blunder policy activate
|
||||
u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky
|
||||
u8 forcedSwitch:4; // For each battler
|
||||
u8 switchInAbilityPostponed:4; // To not activate against an empty field, each bit for battler
|
||||
u8 blunderPolicy:1; // should blunder policy activate
|
||||
u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky
|
||||
u8 ballSpriteIds[2]; // item gfx, window gfx
|
||||
u8 appearedInBattle; // Bitfield to track which Pokemon appeared in battle. Used for Burmy's form change
|
||||
u8 skyDropTargets[MAX_BATTLERS_COUNT]; // For Sky Drop, to account for if multiple Pokemon use Sky Drop in a double battle.
|
||||
@ -718,20 +738,24 @@ struct BattleStruct
|
||||
uq4_12_t supremeOverlordModifier[MAX_BATTLERS_COUNT];
|
||||
u8 itemPartyIndex[MAX_BATTLERS_COUNT];
|
||||
u8 itemMoveIndex[MAX_BATTLERS_COUNT];
|
||||
bool8 trainerSlideHalfHpMsgDone;
|
||||
u8 trainerSlideFirstCriticalHitMsgState:2;
|
||||
u8 trainerSlideFirstSuperEffectiveHitMsgState:2;
|
||||
u8 trainerSlideFirstSTABMoveMsgState:2;
|
||||
u8 trainerSlidePlayerMonUnaffectedMsgState:2;
|
||||
bool8 trainerSlideMegaEvolutionMsgDone;
|
||||
bool8 trainerSlideZMoveMsgDone;
|
||||
bool8 trainerSlideBeforeFirstTurnMsgDone;
|
||||
bool8 trainerSlideDynamaxMsgDone;
|
||||
u8 trainerSlideHalfHpMsgDone:1;
|
||||
u8 trainerSlideMegaEvolutionMsgDone:1;
|
||||
u8 trainerSlideZMoveMsgDone:1;
|
||||
u8 trainerSlideBeforeFirstTurnMsgDone:1;
|
||||
u8 trainerSlideDynamaxMsgDone:1;
|
||||
u8 pledgeMove:1;
|
||||
u8 isSkyBattle:1;
|
||||
u32 aiDelayTimer; // Counts number of frames AI takes to choose an action.
|
||||
u32 aiDelayFrames; // Number of frames it took to choose an action.
|
||||
bool8 transformZeroToHero[PARTY_SIZE][NUM_BATTLE_SIDES];
|
||||
u8 pledgeMove:1;
|
||||
bool8 isSkyBattle:1;
|
||||
u8 timesGotHit[NUM_BATTLE_SIDES][PARTY_SIZE];
|
||||
u8 enduredDamage;
|
||||
u8 transformZeroToHero[NUM_BATTLE_SIDES];
|
||||
u8 intrepidSwordBoost[NUM_BATTLE_SIDES];
|
||||
u8 dauntlessShieldBoost[NUM_BATTLE_SIDES];
|
||||
};
|
||||
|
||||
// The palaceFlags member of struct BattleStruct contains 1 flag per move to indicate which moves the AI should consider,
|
||||
@ -739,9 +763,9 @@ struct BattleStruct
|
||||
// The assert below is to ensure palaceFlags is large enough to store these flags without overlap.
|
||||
STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLERS_COUNT + MAX_MON_MOVES, PalaceFlagsTooSmall)
|
||||
|
||||
#define F_DYNAMIC_TYPE_1 (1 << 6)
|
||||
#define F_DYNAMIC_TYPE_2 (1 << 7)
|
||||
#define DYNAMIC_TYPE_MASK (F_DYNAMIC_TYPE_1 - 1)
|
||||
#define DYNAMIC_TYPE_MASK ((1 << 6) - 1)
|
||||
#define F_DYNAMIC_TYPE_IGNORE_PHYSICALITY (1 << 6) // If set, the dynamic type's physicality won't be used for certain move effects.
|
||||
#define F_DYNAMIC_TYPE_SET (1 << 7) // Set for all dynamic types to distinguish a dynamic type of Normal (0) from no dynamic type.
|
||||
|
||||
#define GET_MOVE_TYPE(move, typeArg) \
|
||||
{ \
|
||||
@ -751,21 +775,17 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER
|
||||
typeArg = gBattleMoves[move].type; \
|
||||
}
|
||||
|
||||
#define IS_MOVE_PHYSICAL(move)(GetBattleMoveSplit(move) == SPLIT_PHYSICAL)
|
||||
#define IS_MOVE_SPECIAL(move)(GetBattleMoveSplit(move) == SPLIT_SPECIAL)
|
||||
#define IS_MOVE_STATUS(move)(gBattleMoves[move].split == SPLIT_STATUS)
|
||||
#define IS_MOVE_PHYSICAL(move)(GetBattleMoveCategory(move) == BATTLE_CATEGORY_PHYSICAL)
|
||||
#define IS_MOVE_SPECIAL(move)(GetBattleMoveCategory(move) == BATTLE_CATEGORY_SPECIAL)
|
||||
#define IS_MOVE_STATUS(move)(gBattleMoves[move].category == BATTLE_CATEGORY_STATUS)
|
||||
|
||||
#define IS_EFFECT_RECOIL(effect)(effect == EFFECT_RECOIL_25 \
|
||||
|| effect == EFFECT_RECOIL_IF_MISS \
|
||||
|| effect == EFFECT_RECOIL_50 \
|
||||
|| effect == EFFECT_RECOIL_33 \
|
||||
|| effect == EFFECT_RECOIL_33_STATUS)
|
||||
#define IS_EFFECT_RECOIL(effect)(effect == EFFECT_RECOIL || effect == EFFECT_RECOIL_IF_MISS)
|
||||
|
||||
#define IS_MOVE_RECOIL(move)(IS_EFFECT_RECOIL(gBattleMoves[move].effect))
|
||||
|
||||
#define BATTLER_MAX_HP(battlerId)(gBattleMons[battlerId].hp == gBattleMons[battlerId].maxHP)
|
||||
#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0))
|
||||
#define BATTLER_DAMAGED(battlerId) ((gSpecialStatuses[battlerId].physicalDmg != 0 || gSpecialStatuses[battlerId].specialDmg != 0))
|
||||
#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0) || (gBattleStruct->enduredDamage & gBitTable[gBattlerTarget]))
|
||||
#define BATTLER_TURN_DAMAGED(battlerId) ((gSpecialStatuses[battlerId].physicalDmg != 0 || gSpecialStatuses[battlerId].specialDmg != 0) || (gBattleStruct->enduredDamage & gBitTable[battler]))
|
||||
|
||||
#define IS_BATTLER_OF_TYPE(battlerId, type)((GetBattlerType(battlerId, 0) == type || GetBattlerType(battlerId, 1) == type || (GetBattlerType(battlerId, 2) != TYPE_MYSTERY && GetBattlerType(battlerId, 2) == type)))
|
||||
|
||||
@ -968,7 +988,7 @@ extern u16 gBattle_WIN1V;
|
||||
extern u8 gDisplayedStringBattle[425];
|
||||
extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
|
||||
extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
|
||||
extern u8 gBattleTextBuff3[30]; //to handle stupidly large z move names
|
||||
extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT + 13]; //to handle stupidly large z move names
|
||||
extern u32 gBattleTypeFlags;
|
||||
extern u8 gBattleTerrain;
|
||||
extern u32 gUnusedFirstBattleVar1;
|
||||
@ -991,7 +1011,7 @@ extern u16 gChosenMove;
|
||||
extern u16 gCalledMove;
|
||||
extern s32 gBattleMoveDamage;
|
||||
extern s32 gHpDealt;
|
||||
extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
|
||||
extern s32 gBideDmg[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastUsedItem;
|
||||
extern u16 gLastUsedAbility;
|
||||
extern u8 gBattlerAttacker;
|
||||
@ -1017,7 +1037,7 @@ extern u8 gLastHitBy[MAX_BATTLERS_COUNT];
|
||||
extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
|
||||
extern u16 gMoveResultFlags;
|
||||
extern u32 gHitMarker;
|
||||
extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBideTarget[MAX_BATTLERS_COUNT];
|
||||
extern u8 gUnusedFirstBattleVar2;
|
||||
extern u32 gSideStatuses[NUM_BATTLE_SIDES];
|
||||
extern struct SideTimer gSideTimers[NUM_BATTLE_SIDES];
|
||||
@ -1026,7 +1046,6 @@ extern u32 gStatuses4[MAX_BATTLERS_COUNT];
|
||||
extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT];
|
||||
extern u16 gPauseCounterBattle;
|
||||
extern u16 gPaydayMoney;
|
||||
extern u16 gRandomTurnNumber;
|
||||
extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT];
|
||||
extern u8 gBattleOutcome;
|
||||
extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
|
||||
|
||||