Commit graph

84162 commits

Author SHA1 Message Date
Charles Dang
a52c5e133a Game Lua Kernel: simplify a horrendous loop
This can't be done in a simple loop over all_children_range since splice_children modifies
the source config. This adds a new getter method for a view over all tag names.
2024-09-18 15:42:21 -04:00
Charles Dang
39729290df GUI2: optimize create_widget_builder
No need for all this config searching... there's only one tag!
2024-09-18 15:42:21 -04:00
Charles Dang
5f31a5b2fd Game Lua Kernel: simplify dummy AI stage cleanup 2024-09-18 15:42:21 -04:00
Charles Dang
97d61649f0 Game Events/Handler: initialize all members 2024-09-18 15:42:21 -04:00
pentarctagon
ea8cdf9282 1.19.4+dev 2024-09-17 21:22:35 -05:00
pentarctagon
ff9c4461ae 1.19.4 2024-09-17 21:21:55 -05:00
pentarctagon
1ba012f05c pot-update and regenerate doc files 2024-09-17 21:20:42 -05:00
pentarctagon
4c8dc3d8f3 changelog_entries 2024-09-17 21:18:23 -05:00
Celtic Minstrel
14df301b7f Wrap all LATTR_[GS]ETTER macros in anonymous namespaces
Without this, seemingly random link errors occur when either file is modified.
2024-09-16 23:20:50 -04:00
Jonathan-Kelly
c4610a0283 Tests of events in [abilities] and [specials] tags 2024-09-16 21:07:38 -04:00
Jonathan-Kelly
bddbf060a5 Support events in [abilities] and [specials] tags 2024-09-16 21:07:38 -04:00
Gunter Labes
fb42d4b5ac
Don't redirect --usercache-path 2024-09-16 22:56:13 +02:00
Gunter Labes
47aac28db1
Correct error message 2024-09-16 22:56:13 +02:00
Gunter Labes
41f37021bd
Fix formatting issues 2024-09-16 22:56:13 +02:00
Gothyoba
4cb3b8fd82 Use proper apostrophe to spell Shek’kahan 2024-09-17 06:51:40 +10:00
Celtic Minstrel
711b77b7e2 Lua API: Add __dir metamethod to wesnoth.terrain_types 2024-09-15 15:27:39 -04:00
Celtic Minstrel
cb1853b4bc Lua API: Add __dir metamethod to side objects 2024-09-15 15:27:39 -04:00
Celtic Minstrel
c7ad093ac5 Lua API: Avoid trying to iterate a userdata in location_set.of_pairs
Fixes #9345
2024-09-15 15:27:39 -04:00
Celtic Minstrel
78360a582e Lua API: Add __dir metamethod to wesnoth.unit_types, wesnoth.unit_types.TYPE, wesnoth.unit_types.TYPE.variations 2024-09-15 15:27:39 -04:00
Celtic Minstrel
b977496dcb Lua API: Add a mechanism for userdata to declare that they are "table-like" for the purpose of the __dir metamethod
This can serve as a hint that you can dig down into them.

Use the mechanism for wesnoth.colors, wesnoth.game_config, and wesnoth.current.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
a690d780cb Lua API: Add __dir metamethod to wesnoth.game_events
The purpose of this is to show all potential hooks in the output, not just the hooks that are currently assigned.

This alse adds an __index metamethod that returns no-op versions of each callback, so that the __dir output correctly shows them as functions.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
6f0567df8f Lua API: Add __dir metamethod for wesnoth.game_config 2024-09-15 15:27:39 -04:00
Celtic Minstrel
03924aac1d Lua API: Remove deprecated wesnoth.game_config attributes 2024-09-15 15:27:39 -04:00
Celtic Minstrel
1079d2541d Lua API: Exclude campaign, era, and mp_settings from scenario __dir as appropriate 2024-09-15 15:27:39 -04:00
Celtic Minstrel
5bbca1a1c9 Lua API: Exclude color ranges with numeric names from the __dir output
In general they are not supposed to have numeric names, but several with numeric names exist for backwards compatibility.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
d7eba7b950 Lua API: Add __dir metafunction to schedule objects
This covers both wesnoth.current.schedule and the objects returned by wesnoth.map.get_area()

Also, the wesnoth.schedule module is no longer treated like the schedule metatable, since none of the functions in the module take a schedule as the first argument. This may be reverted in the future.

The attribute registration system has also been extended to permit registry tables to conditionally add certain keys.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
facf4eefda Lua API: Add __dir metamethod to wesnoth.scenario 2024-09-15 15:27:39 -04:00
Celtic Minstrel
dd5dbf96c8 Lua API: Add __dir metamethod to wesnoth.current 2024-09-15 15:27:39 -04:00
Celtic Minstrel
fcd66c25a3 Lua API: Add __dir metamethod to wesnoth.interface.game_display 2024-09-15 15:27:39 -04:00
Celtic Minstrel
c32ae8146e Lua API: Add __dir metamethod to unit variables and unit statuses 2024-09-15 15:27:39 -04:00
Celtic Minstrel
d4278fa1be Lua API: Add __dir metamethod to units metatable
This implements a new system for registering attributes, adapted from the system for widget attributes.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
ab022c09ae Lua API: Add unit:rebuild
Fixes #9314
2024-09-15 15:27:39 -04:00
Celtic Minstrel
6d8a17aa8d Lua API: Add mathx.lerp_index and wesnoth.game_config.palettes 2024-09-15 15:27:39 -04:00
Celtic Minstrel
752f251a93 WFL: Add lerp_index and get_palette functions
The latter exposes access to the [color_palette] tags in game_config, as well as the colour scales.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
fc86cb0b93 WFL: Add replace_all, starts_with, and ends_with string functions.
The latter two are also added to the Lua stringx module.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
1b63da9974 Lua API: Named tuples no longer all have the same __metatable
Now the __metatable contains the list of member names.

This means that wesnoth.type won't treat named tuples with different members as the same thing – not evne if they're the same length. Which is probably a good thing!
2024-09-15 15:27:39 -04:00
Celtic Minstrel
2a26a68025 Some updates to Lua map location operations
* Rename the vector operations to hex_vector (to emphasize that they are NOT standard vector ops) and document them as official API
* Add new get_hexes_at_radius, which returns an unfilled ring (as opposed to get_hexes_in_radius which returns a filled circle)
* Expose the new cubic coordinate conversions
2024-09-15 15:27:39 -04:00
Celtic Minstrel
6547d224e0 Remove map_location::get_in_basis_N_NE
It was ONLY used in one place, to calculate rotate_right_around_center, and was likely not a very efficient way of calculating that anyway. I've included a different implementation of rotate_right_around_center that uses cubic coordinates.
2024-09-15 15:27:39 -04:00
Celtic Minstrel
81e612b75b Fix copy-paste error 2024-09-15 15:27:39 -04:00
Celtic Minstrel
ca52118ff0 Lua/WFL: Expose healthy and fearless attributes 2024-09-15 15:27:39 -04:00
Charles Dang
0af60e6fcc Display: use split_view when parsing overlay teams
We have references to existing strings here. No need to make copies with `split`.
2024-09-15 12:23:02 -04:00
Charles Dang
ccdc8b17f4 Fixup 3af690331a
Its not Lua.
2024-09-15 12:22:45 -04:00
Gunter Labes
654a199d5f
Use proper apostrophe 2024-09-15 13:13:29 +02:00
Charles Dang
3af690331a Lua API: remove deprecated unit.side and terrain.owner 2024-09-15 01:43:11 -04:00
Charles Dang
78676a27ad Use structured bindings for config attribute ranges in most places 2024-09-15 00:16:51 -04:00
Charles Dang
857799da37 Config: remove <ctime> and <iterator> includes 2024-09-15 00:16:51 -04:00
Charles Dang
6df2653c61 Config: use structured bindings 2024-09-15 00:16:51 -04:00
Charles Dang
a9e6af20d3 Config: avoid second lookup when adding child nodes 2024-09-15 00:16:51 -04:00
Charles Dang
7332e124eb Config: remove string and const char* overloads for operator[]
Since these just construct a string_view from their arguments, we can just let the implicit conversion happen.
2024-09-15 00:16:51 -04:00
Charles Dang
c34a18da47 Config: fix a couple functions not taking string_view args 2024-09-15 00:16:51 -04:00