107 Commits

Author SHA1 Message Date
Bivurnum
47723c34e5
Follower NPCs (follow-me) (#6500)
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
2025-04-27 14:56:18 +02:00
Bassoonian
708bb4a831 Merge branch 'master' of https://github.com/pret/pokeemerald into pretmerge10apr 2025-04-10 23:57:57 +02:00
cawtds
1672d99060 make linkDirection more robust to member reordering 2025-04-09 13:40:39 +02:00
Salem
01e8d8233e
Trainer Battle Parameter Consolidation (#5982) 2025-01-25 22:02:39 +01:00
Martin Griffin
bb781f21a1
Arbitrary trainer scripts + map script/trigger softlock prevention (#5033)
Script_RunImmediatelyUntilEffect runs a script until either a specified
effect may occur or it reaches an end.

All existing script commands and natives, and some specials, call
Script_RequestEffects which allows us to analyze them.

Any downstream script commands/natives/specials will be statically known
not to call Script_RequestEffects and treated as if they have all
effects. Manually tagging them with requests_effects=1 and calling
Script_RequestEffects will make them analyzable.

Using these, we're able to execute scripts until they either exit with
no effect, or would possibly have an effect. This allows us to:
1. Not run on frame map scripts or triggers if they would have no
   effect.
2. Immediately run triggers if they only affect flags/vars. This removes
   the lag frames when biking into the Cycling Road, for example.
3. Migrate on load/on transition/on resume/on return to field/on dive
   warp scripts onto the global script context if they would block
   (approximated via SCREFF_HARDWARE).
4. Support arbitrary control flow in trainer scripts. The trainer does
   not see the player if the script has no effect, and the trainer will
   use whichever trainerbattle command is branched to.
5. Support arbitrary scripts in trainer scripts. cant_see and
   cant_see_if_* commands have been introduced so that scripts are able
   to do something when the player interacts with the trainer even if
   that trainer wouldn't see them.
2025-01-08 10:27:00 +00:00
Eduardo Quezada
80447bee8e Merge branch '_pret/master' into _RHH/pr/master/pretSync20241015 2024-10-15 20:56:56 -03:00
luckytyphlosion
a55c75d350
Get rid of common syms (#2040) 2024-10-14 23:52:11 -04:00
Eduardo Quezada
6d5cd7cbd7 Removed duplicate tags 2024-05-28 14:58:26 -04:00
Eduardo Quezada
8854eaa880 Removed duplicated object event tags 2024-05-28 14:16:34 -04:00
Eduardo Quezada
9fc7e37c73 Comment updates 2024-05-21 19:38:42 -04:00
Eduardo Quezada
3d9c7732f6 Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	include/event_object_movement.h
#	src/data.c
#	src/data/graphics/pokemon.h
#	src/data/pokemon/species_info/gen_4_families.h
2024-04-20 13:23:14 -04:00
Bassoonian
8329d8368d Merge branch 'master' of https://github.com/pret/pokeemerald into pretmergemidapril 2024-04-12 12:16:28 +02:00
pkmnsnfrn
71b8d20397 Replaced magic numbers regarding triggerGroundEffectsOnMove to TRUE / FALSE 2024-04-04 16:21:34 -04:00
Eduardo Quezada
124c17d315 Merge remote-tracking branch 'merrp_origin/followers-expanded-id' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	README.md
#	data/field_effect_scripts.s
#	data/maps/AncientTomb/scripts.inc
#	data/maps/DesertRuins/scripts.inc
#	data/maps/IslandCave/scripts.inc
#	data/scripts/follower.inc
#	graphics/object_events/pics/pokemon/wailord.png
#	graphics/object_events/pics/pokemon_old/substitute.png
#	include/constants/event_objects.h
#	include/global.h
#	remote_build.sh
#	spritesheet_rules.mk
#	src/bike.c
#	src/data/object_events/object_event_anims.h
#	src/data/object_events/object_event_graphics.h
#	src/data/object_events/object_event_graphics_info_followers.h
#	src/data/object_events/object_event_pic_tables.h
#	src/event_object_movement.c
#	src/field_effect_helpers.c
#	src/field_screen_effect.c
#	src/overworld.c
#	src/palette.c
#	src/pokemon_summary_screen.c
#	src/scrcmd.c
#	src/trainer_see.c
2024-02-17 23:40:08 -03:00
Ariel A
725252905b Merge branch 'merrp/pr/style' into followers 2024-02-15 22:49:36 -05:00
Ariel A
afbb88d77a Undo (most) indentation changes. 2024-02-15 22:24:20 -05:00
Ariel A
a407c72235 Cleaned up follower code.
Added support for asymmetrical follower pokemon.
Fixed bug with changing GraphicsInfo size.
Added follower Substitute gfx. Credit: shikashipx
2024-02-12 20:37:01 -05:00
Eduardo Quezada
ebbcb7d025 Whitespace, documentation and style 2024-01-22 19:12:52 -03:00
Eduardo Quezada
ddc752eb14 Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/merrpFollowers
# Conflicts:
#	asm/macros/event.inc
#	data/field_effect_scripts.s
#	data/maps/BattleFrontier_BattleTowerLobby/scripts.inc
#	data/script_cmd_table.inc
#	graphics/pokemon/castform/sunny/anim_front.png
#	graphics/pokemon/castform/sunny/normal.pal
#	include/battle_util.h
#	include/constants/event_object_movement.h
#	include/constants/field_effects.h
#	src/battle_controller_player.c
#	src/battle_util.c
#	src/data/object_events/movement_action_func_tables.h
#	src/data/object_events/object_event_pic_tables.h
#	src/data/trainer_graphics/back_pic_anims.h
#	src/daycare.c
#	src/event_object_movement.c
#	src/field_effect_helpers.c
#	src/load_save.c
#	src/scrcmd.c
#	src/trainer_see.c
2024-01-17 18:11:35 -03:00
Ariel A
7d7531f2fa Merge branch 'master' into followers 2023-12-31 01:28:27 -05:00
psf
fe16a2cdee
Port pokefirered's Vs. Seeker to pokeemerald (#3256)
* First version of Vs. Seeker

* Update movement.inc

98f7e9978d (r1306721924)

* Update field_effect_scripts.s

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722004

* Update field_effect_scripts.s

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722024

* Update item_use.h

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722401

* Update movement_action_func_tables.h

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722828

* Update event_object_movement.c

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306722887

* Update overworld.c

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306723396

* Update vs_seeker.h

https://github.com/rh-hideout/pokeemerald-expansion/pull/3256/files#r1306724158

* Update vs_seeker.c

Addressed some cleanup comments from SBird

* Update UpdateRandomTrainerRematches
Fixed typo in ClearAllTrainerRematchStates
Fixed types in GetRematchableTrainerLocalId

* Updated UseVsSeekerEffect_2

* Updated UseVsSeekerEffect_3

* Updated UseVsSeekerEffect_4

* Fixed bug that allowed Vs Seeker to be used indoors in correct places
Moved VsSeeker function declarations into header

* Refactored FieldUseFunc_VsSeeker

* Added curly braces to else case in FieldUseFunc_VsSeeker

* renamed data[x] in Task_ResetObjectsRematchWantedState

* Refactored Task_ResetObjectsRematchWantedState

* Refactored VsSeekerResetObjectMovementAfterChargeComplete

* Refactored ResetMovementOfRematchableTrainers

* Refactored GatherNearbyTrainerInfo

* Refactored Task_VsSeeker_3

* CanUseVsSeeker

* Refactored GetVsSeekerResponseInArea

* GetCurVsSeekerResponse refactored

* Cleaned up GetTrainerFlagFromScript

* Gave sensible names to Task_VsSeeker

* Fixed two bugs where player would not have the right gfx state after using VsSeeker on a Bike or Underwater

* Renamed UseVsSeeker Functions

* Added I_VS_SEEKER_CHARGING to make Vs. Seeker broken until flag is assigned
Removed extra VsSeeker animation code

* Addressed PR feedback

* Fixed issue with building non-modern

* Refactored GetRunningBehaviorFromGraphicsId and renamed to GetResponseMovementTypeFromTrainerGraphicsId

* Addresses Lunos's PR feedback: https://github.com/rh-hideout/pokeemerald-expansion/pull/3256\#pullrequestreview-1623547850
Removed the check to see if a map was not indoors to improve readability
Made IsValidLocationForVsSeeker into a static function

* Added changes in response to Jasper's feedback
https://github.com/rh-hideout/pokeemerald-expansion/pull/3256\#pullrequestreview-1725276522

* Updated with Edu's discord feedback https://discord.com/channels/419213663107416084/1135040810082123907/1176872015085453392

* Removed ifdef tags around the repo unless needed
b5dc744ced
2023-11-26 18:58:43 +01:00
Eduardo Quezada
a6940c9e03 Merge branch 'pret_master' into RHH/pr/upcoming/pret_Merge20231002
# Conflicts:
#	src/battle_ai_script_commands.c
#	src/battle_controller_player.c
#	src/battle_controller_recorded_opponent.c
#	src/battle_controller_safari.c
#	src/battle_controller_wally.c
#	src/battle_controllers.c
#	src/battle_gfx_sfx_util.c
#	src/battle_interface.c
#	src/battle_main.c
#	src/battle_script_commands.c
#	src/battle_util.c
#	src/mystery_gift_menu.c
#	src/pokemon.c
2023-10-02 17:17:41 -03:00
Eduardo Quezada
af210da972 Solved a bunch of -Wall errors on modern 2023-09-20 19:01:08 -03:00
Ariel A
8df538479a Merge branch 'master' into followers 2023-09-03 17:39:35 -04:00
Eduardo Quezada
0d5b00aaf2 Merge remote-tracking branch 'pret/master' into RHH/pr/upcoming/pret_20230829
# Conflicts:
#	README.md
#	data/battle_ai_scripts.s
#	data/battle_scripts_1.s
#	data/maps/BattleFrontier_Lounge7/scripts.inc
#	include/battle_anim.h
#	include/battle_message.h
#	include/constants/items.h
#	src/battle_ai_script_commands.c
#	src/battle_ai_switch_items.c
#	src/battle_anim_throw.c
#	src/battle_anim_utility_funcs.c
#	src/battle_controller_link_opponent.c
#	src/battle_controller_link_partner.c
#	src/battle_controller_opponent.c
#	src/battle_controller_player.c
#	src/battle_controller_player_partner.c
#	src/battle_controller_recorded_opponent.c
#	src/battle_controller_recorded_player.c
#	src/battle_controller_wally.c
#	src/battle_gfx_sfx_util.c
#	src/battle_message.c
#	src/battle_script_commands.c
#	src/battle_util.c
#	src/data/party_menu.h
#	src/data/pokemon/tmhm_learnsets.h
#	src/daycare.c
#	src/field_specials.c
#	src/hall_of_fame.c
#	src/party_menu.c
#	src/pokemon.c
#	src/tv.c
2023-08-31 14:28:01 -04:00
GriffinR
e70577d59b Add missing sizeof in trainer_see 2023-08-20 17:22:29 -04:00
Eduardo Quezada
c391c66249 Cleanup pt4
- Removed TIME_OF_DAY_FADE and UpdateTimeOfDayPaletteFade
- Renamed FieldCallback_Fly back to FieldCallback_UseFly
2023-06-18 01:45:04 -04:00
Eduardo Quezada
bf814e11cd Cleanup
- Proper whitespace
- Bracket pret style
- Simplified RemoveObjectEventInternal
- SImplified GetMonInfo
- Made IsFollowerVisible easier to read
2023-06-18 01:19:46 -04:00
Eduardo Quezada
341ce6fd95 Merge remote-tracking branch 'merrp_origin/followers-expanded-id' into merrp/followers_RHH_merge3
# Conflicts:
#	.github/workflows/build.yml
#	README.md
#	gflib/sprite.c
#	graphics/pokemon/banette/anim_front.png
#	graphics/pokemon/banette/normal.pal
#	graphics/pokemon/sentret/normal.pal
#	graphics/pokemon/togetic/anim_front.png
#	graphics/pokemon/togetic/normal.pal
#	include/battle_script_commands.h
#	include/data.h
#	ld_script.txt
#	src/battle_controller_player.c
#	src/bike.c
#	src/event_object_movement.c
2023-06-16 21:25:16 -04:00
Ariel A
d12efe8cd7 Merge branch 'master' into followers 2023-05-15 18:37:38 -04:00
Eduardo Quezada
b62e5aa72e Merge remote-tracking branch 'pret/master' into RHH/sync/pret_20230214
# Conflicts:
#	src/battle_main.c
#	src/field_specials.c
#	src/trade.c
2023-02-15 14:11:03 -03:00
Ariel A
66c57e3442 Merge branch 'master' into followers 2023-01-29 18:44:06 -05:00
GriffinR
7681340966 Merge branch 'master' of https://github.com/pret/pokeemerald into sync-trade 2023-01-23 14:45:51 -05:00
Eduardo Quezada
749225ace1 Matching merge from upstream pret
# Conflicts:
#	graphics/interface/menu_info.png
#	include/pokemon.h
#	src/battle_ai_switch_items.c
#	src/battle_anim_mons.c
#	src/battle_anim_water.c
#	src/battle_controller_opponent.c
#	src/battle_gfx_sfx_util.c
#	src/battle_main.c
#	src/battle_pike.c
#	src/battle_script_commands.c
#	src/data/pokemon/species_info.h
#	src/pokemon.c
#	src/pokemon_summary_screen.c
2023-01-20 12:31:54 -03:00
Jaizu
a3ae182fc2
Add constants when using GetMonsStateToDoubles_2 2023-01-15 09:50:31 +01:00
GriffinR
347a02ace1 Sync trade 2022-12-15 15:40:59 -05:00
Ariel A
1c011a9c1c Merge branch 'master' into followers 2022-10-07 20:52:15 -04:00
TheXaman
7696a78760
Update src/trainer_see.c
Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
2022-09-05 11:04:21 +02:00
Eduardo Quezada D'Ottone
4017fc3e20
Apply style suggestions from code review 2022-09-03 21:22:15 -04:00
TheXaman
367b12801e changed debug_config.h to overworld_config.h,
changed no bag use and no catching flags to battle_config.h,
removed TX reference (big sad)
2022-09-02 12:33:42 +02:00
TheXaman
ad57551db1 removed unnecessary script, cheat start now with national dex, reverted accidental type hin removal, changed indentation 2022-09-02 12:10:11 +02:00
TheXaman
04c40677bd Changed the way debug flags are handled, now in constants/battle_config.h 2022-08-30 17:41:35 +02:00
TheXaman
bed5639074 Changed preproc defines to TRUE/FALSE, small cleanup 2022-08-29 19:36:44 +02:00
TheXaman
8c9a59ec1c Merge branch 'tx_debug_system' of https://github.com/TheXaman/pokeemerald into tx_debug_system_rhh 2022-08-29 19:13:11 +02:00
tustin2121
1cb659df8c Renaming Script Contexts
- Determined how the various script contexts were used and renamed accordingly.
- ScriptContext2_Enable/Disable => Lock/UnlockPlayerFieldControls - The sole purpose of the flag is to make sure the player can't move around in the overworld. It has nothing to do with script contexts.
- ScriptContext1 => ScriptContext - It is the global script context used to set up scripts which run over many frames.
- ScriptContext2_RunNewScript => RunScriptImmediately - ScriptContext2's sole purpose was to run scripts immediately and in a separate context, usually while the global context is waiting for things like map loads or screen changes.
2022-08-15 15:18:12 -04:00
Eduardo Quezada
2e1bf0d965 OamData mosaic FALSE 2022-07-29 21:27:39 -04:00
Ariel A
9beee311c4 Merge branch 'master' into romhack 2022-07-17 15:13:15 -04:00
Ariel A
28ec60a776 Fixed some field effect palettes. Removed leftover CacheLightMetatiles. 2022-05-10 23:21:54 -04:00
TheXaman
c54bf21b01 Merge branch 'master' of https://github.com/pret/pokeemerald into tx_debug_system 2022-04-16 23:18:35 +02:00
GriffinR
1ff0b0efa9 Add missing collision constant usage 2022-01-29 21:13:46 -05:00