80 Commits

Author SHA1 Message Date
Martin Griffin
1551a33069
Fix leftover test change from #5033 (#5987) 2025-01-09 17:28:09 -03: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
831b394ca1 Merge branch '_pret/master' into _RHH/pr/master/pretSync20240909
# Conflicts:
#	Makefile
#	include/battle.h
#	include/battle_main.h
#	include/battle_util.h
#	include/data.h
#	make_tools.mk
#	map_data_rules.mk
#	src/battle_setup.c
#	src/fieldmap.c
2024-09-11 15:26:14 -03:00
GriffinR
04197b4912 Fix swapped cycling road entrances 2024-08-31 01:54:25 -04:00
psf
bf8b09b1b6
Item Ball refactor / Pluralize item names for giveitem and finditem (#3942)
* Emptied out item_ball_scripts
Added GetObjectEventTrainerRangeFromTemplate
Added Common_EventScript_FindItem

* Replaced trainer_sight_or_berry_tree_id with item constant
Replaced scripts with Common_EventScript_FindItem

* Renamed to GetItemBallIdAndAmountFromTemplate
Moved to item_ball.c

* Updated ObjectEventTemplate

* Updated inc files to support plural item names

* Refactored CopyItemNameHandlePlural to handle all items

* Change failsafe in GetItemBallIdFromTemplate to be ITEM_NONE + 1 instead of ITEMS_COUNT

* Converted spaces to tabs
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415663
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415525
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415409
https://github.com/rh-hideout/pokeemerald-expansion/pull/3942\#discussion_r1446415130

* Added warning on object_event macro to prevent silent failure
Reverted global.fieldmap to original state, per feedback

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-01-14 21:35:45 +01:00
Eduardo Quezada
9917f5cc8b Merge remote-tracking branch 'pret/master' into RHH/sync/pret_20230303
# Conflicts:
#	Makefile
#	include/constants/pokemon.h
#	include/pokemon.h
#	make_tools.mk
#	src/battle_ai_script_commands.c
#	src/battle_controllers.c
#	src/battle_main.c
#	src/battle_script_commands.c
#	src/party_menu.c
#	src/pokemon.c
#	src/trade.c
#	src/trainer_pokemon_sprites.c
2023-03-03 11:00:50 -03:00
Zunawe
f376b71f7c Fix wrong route in item flag name 2023-02-25 13:48:39 -08:00
Eduardo Quezada
e4a439aa46 Merge remote-tracking branch 'pret/master' into RHH/pr/sync/pretmerge_20221030
# Conflicts:
#	src/data/bard_music/moves.h
#	src/data/bard_music/pokemon.h
2022-10-30 12:30:38 -03:00
GriffinR
cc182bf05e Use Porymap's new order for connection fields 2022-10-24 10:05:59 -04:00
GriffinR
36551dff2f Treat warp ids as strings to allow constants 2022-09-03 15:43:43 -04:00
ultima-soul
d408b56549 Merge branch 'master' of github.com:pret/pokeemerald into item_expansion_sync 2021-12-01 20:18:57 -08:00
ultima-soul
a8f9a54787 Merge branch 'master' of github.com:pret/pokeemerald into item_expansion_sync 2021-11-21 10:41:32 -08:00
GriffinR
e66ea0cb99 Reformat compare + goto_if/call_if to single statements 2021-11-18 23:06:51 -05:00
cbt6
32aaf6912f Rename movement scripts to use Faster over Fastest 2021-11-05 02:22:28 +08:00
ultima-soul
5cb73a012c Merge branch 'item_expansion' of github.com:rh-hideout/pokeemerald-expansion into item_id_revamp 2021-08-30 11:57:27 -07:00
GriffinR
06351bf63c Remove address comments 2021-07-20 15:18:31 -04:00
ultima-soul
ad8cfda831 Add and rearrange Key Items. 2021-07-06 17:03:46 -07:00
ExpoSeed
6a977bdbfc Document second parameter of playbgm 2021-05-21 15:08:00 -05:00
GriffinR
0851c34bac Add berry tree id constants 2021-02-05 15:25:12 -05:00
GriffinR
3014241179 Give songs meaningful english names 2020-08-20 19:06:14 -04:00
GriffinR
3ba8cabd80 Fix Brenday typo 2020-08-18 15:56:44 -04:00
GriffinR
fac6288156 Add local object event ids for referenced objects 2020-06-22 17:18:58 -04:00
GriffinR
e5757a3def Use trainer type constants 2020-04-28 19:59:08 -05:00
GriffinR
b1d26e10a8 Sync map header property names with pokefirered 2020-04-28 19:59:08 -05:00
GriffinR
e92cc7752b Merge branch 'master' of https://github.com/pret/pokeemerald into fix-eventobj 2020-01-13 20:41:57 -05:00
GriffinR
f2e7b1507e Port some macro/script fixes from pokefirered 2020-01-11 14:12:31 -05:00
GriffinR
635267ce32
Merge branch 'master' into fix-eventobj 2020-01-08 05:51:49 -05:00
Fontbane
31b4656324 Labels better 2019-12-25 22:39:06 -05:00
GriffinR
82cb741d8b Standardize EVENT_OBJECT to OBJECT_EVENT 2019-11-20 23:12:51 -05:00
GriffinR
525ec2025d Document Routes 111-118 2019-11-14 17:41:01 -06:00
GriffinR
dd01942c4f Document aqua/magma hideout scripts 2019-11-01 17:22:45 -05:00
Marcus Huderle
aad430c049 Document route 110 scripts 2019-10-26 12:55:53 -05:00
GriffinR
d914c1d659 Document common movements 2019-10-06 13:55:30 -04:00
GriffinR
1d703e786b move some data out of event_scripts, use game stat constants 2019-09-05 14:56:34 -04:00
GriffinR
0f5d96e5f5
name used and unnamed vars 2019-08-03 14:12:48 -04:00
Fontbane
901a83d249 Fix some labels and include decorations.h
Include decorations.h in shop.c

Include decorations.h in event_scripts.s
2019-04-22 17:23:59 -05:00
Fontbane
2c076f1f3e Doc most OnTransitions 2019-04-22 17:23:59 -05:00
Fontbane
90e32f4ec5 Document landmark setting and item balls 2019-04-04 19:34:35 -05:00
huderlem
84573f1774
Merge pull request #574 from Phlosioneer/event-vars
Event vars
2019-02-25 08:02:28 -06:00
Phlosioneer
8816aa527d Update map script files 2019-02-25 08:01:22 -06:00
Phlosioneer
4e5fae0086 Merge branch 'master' into event-vars 2019-02-25 02:24:20 -05:00
Phlosioneer
0de831fd29 Name some common single-entry movements 2019-02-24 10:10:18 -06:00
Phlosioneer
4582fd1545 Name a ton of commonly used event scripts 2019-02-24 10:10:18 -06:00
Phlosioneer
e12a7790cf Start porting pokeruby vars to pokeemerald 2019-02-22 04:01:38 -05:00
Marcus Huderle
19b76bffda Use strings for map json trainer_type and trainer_sight_or_berry_tree_id fields 2019-02-16 16:56:41 -06:00
garak
0b1bb9e4e9 use strings for map json coord_event var_value 2019-02-16 16:14:43 -06:00
Marcus Huderle
29d6221935 Convert map data to JSON 2019-01-31 15:51:20 -06:00
Marcus Huderle
5c1667b41a Define layout constants 2019-01-29 16:55:25 -06:00
Marcus Huderle
36a1825bbe Document trainer approach funcs, and use movement type constants in scripts 2019-01-29 14:36:02 -06:00
Tetrable
a3ebca4d81 Fix merge conflicts 2019-01-02 21:25:14 +00:00