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