summaryrefslogtreecommitdiff
path: root/src/script
AgeCommit message (Collapse)Author
2021-10-20Fix #9626, ddafc0d: Incorrect loading of script saved data (#9629)Loïc Guilloux
2021-10-02Fix #9548, e5fedcd: [Squirrel] Crash during engine cleanup after reaching ↵Loïc Guilloux
memory limit on realloc (#9592)
2021-10-02Fix #9588, 140a96b: [Squirrel] Reaching memory limit during script ↵Loïc Guilloux
registration could prevent further script detections (#9589) Also the memory allocation triggering the limit was never freed. And if the exception was thrown in a constructor using placement new, the pre-allocated memory was not freed either.
2021-09-25Change: Heading for 13 now (#9573)Patric Stout
2021-09-25Add: allow gamescripts to build neutral objects (#9568)dP
2021-09-14Feature: [AI/GS] Missing water related functions and objects (#8390)SamuXarick
2021-08-15Change: rebrand 1.12.0 to 12.0Patric Stout
One question that keeps popping up: "when do we release 2.0?". NewGRF will force that at least 1.16 will be 2.0, but to not wait for this, let's drop the "1." and be for ever done with that conversation. We are following in the footstep of giants here.
2021-08-12Add: [AI] Get the number of vehicles in a given group (#9462)SamuXarick
2021-08-10Fix 8706dcd9: [Script] Byte-swap grfids to match normal expectations.Michael Lutz
2021-08-10Fix 14f197c: [Script] int64 values don't fit into int (#9465)Loïc Guilloux
2021-08-09Add: [Script] Basic information about loaded NewGRFs for scripts. (#9464)Michael Lutz
Currently, scripts use various heuristics to detect loaded NewGRFs that are inherently unreliable. The list of loaded NewGRFs is easily accessible to a human player, and thus giving scripts the same information is consistent with the current approach to not give scripts more information than a human player.
2021-07-20Codechange: Remove (unused) ability to specify min/max of OverflowSafeIntCharles Pigott
2021-07-09Codechange: access the name of a setting via an accessor functionRubidium
2021-07-06Fix 39e90ec: Integers for scripts are 64bit, but saved as 32bit (#9415)Loïc Guilloux
2021-07-02Feature: framework to make savegames self-descriptivePatric Stout
We won't be able to make it fully self-descriptive (looking at you MAP-chunks), but anything else can. With this framework, we can add headers for each chunk explaining how each chunk looks like in detail. They also will all be tables, making it a lot easier to read in external tooling, and opening the way to consider a database (like SQLite) to use as savegame format. Lastly, with the headers in the savegame, you can freely add fields without needing a savegame version bump; older versions of OpenTTD will simply ignore the new field. This also means we can remove all the SLE_CONDNULL, as they are irrelevant. The next few commits will start using this framework.
2021-06-17Cleanup: simplify some boolean expressionsRubidium
2021-06-17Cleanup: [Script] Use nullptr instead of 0 or NULLRubidium
2021-06-15Change: prefix SL_ARR with the length of the arrayPatric Stout
This means that during loading we can validate that what is saved is also that what is expected. Additionally, this makes all list types similar to how they are stored on disk: First a gamma to indicate length, followed by the data. The size still depends on the type.
2021-06-15Cleanup: remove some unneeded c_str() callsRubidium
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-06-13Codechange: make the name of SettingDesc a std::stringrubidium42
2021-06-12Fix #9353: [Script] Garbage collecting on priority queues could crash the gamerubidium42
2021-06-11Fix 4079c47: Missed a file when removing generated .sq files from the repo ↵Loïc Guilloux
(#9350)
2021-06-11Fix: [Script] doxygen_filter is very strict about DOXYGEN_API usage (#9351)Loïc Guilloux
2021-06-10Fix: [Script] Ensure the saved script strings are properly validated and ↵rubidium42
terminated when being read from the savegame
2021-06-06Codechange: merge guiflags and flags in settings .ini filesPatric Stout
It was rather confusing which one was for what, especially as some SaveLoad flags were settings-only. Clean up this mess a bit by having only Setting flags.
2021-06-03Codechange: use "[[maybe_unused]]" instead of a wide variety of other ways ↵Patric Stout
we had While at it, replace OTTD_ASSERT with WITH_ASSERT, as this is always set if assert() is valid. No matter if NDEBUG is set or not.
2021-05-31Codechange: C++-ify lists for SaveLoad (#9323)Patric Stout
Basically, this changes "SaveLoad *" to either: 1) "SaveLoadTable" if a list of SaveLoads was meant 2) "SaveLoad &" if a single entry was meant As added bonus, this removes SL_END / SLE_END / SLEG_END. This also adds core/span.hpp, a "std::span"-lite.
2021-05-31Codechange: use AsIntSetting()->Read() wrapper if possible (#9324)Patric Stout
2021-05-30Codechange: [Network] Let admin-game script use std::stringrubidium42
2021-05-30Codechange: [Game] Pass the length instead of '\0' terminating (and undoing ↵rubidium42
that) in the middle of a C-string
2021-05-29Codechange: use setting name instead of index for CmdChange(Company)Setting ↵Patric Stout
(#9306) This is mostly done as there are now constraints on settings.ini you might not expected. For example, conditional settings always have to come last, as otherwise they would influence the index.
2021-05-29Codechange: Rename window related DeleteXXX to match new behaviourglx22
2021-05-29Codechange: move from C-string to std::string for DoCommandrubidium42
2021-05-29Codechange: move casting a "const char *" to "char *" to the callerPatric Stout
It is not nice to have your definition say you won't change a value while in fact the whole reason for your existance is to change it.
2021-05-29Fix: ScriptObject::DoCommand could modify "text" while defined "const"Patric Stout
This could have unwanted side-effects, as it could change the source for ever and ever.
2021-05-29Codechange: rename str_validate to StrMakeValid(InPlace) (#9304)Patric Stout
This to be more explicit the function changes the value, and not returns yes/no.
2021-05-27Codechange: remove SettingDescType in lieu of the actual classesrubidium42
2021-05-27Codechange: let SettingDesc extend SettingDescBaserubidium42
2021-05-27Codechange: just pass the SettingDesc to SetSettingValue and remove ↵rubidium42
distinction between (non)company
2021-05-16Codechange: [Network] Let NetworkClientInfo use std::stringrubidium42
2021-05-15Change: Use gender-neutral pronounsrubidium42
2021-05-13Codechange: clean up C-string support from settingsrubidium42
2021-05-13Codechange: move script settings to std::stringrubidium42
2021-05-13Codechange: make explicit that virtual functions in a con/destructor are ↵Rubidium
resolved statically This as during construction the sub class has not been initialized yet, and during destruction the sub class has already been destroyed, so the overriding virtual function would be accessing uninitialized data.
2021-05-13Codechange: Replace TILE_AREA_LOOP with range-based for loopsglx22
2021-05-08Change: Use gender-neutral pronouns in console command messages (and ↵William Davis
comments) (#9203)
2021-05-03Codechange: Replace FOR_ALL_SEARCHPATHS with range-based for loopsglx22
2021-05-03Codechange: Replace FOR_ALL_TARS with range-based for loopsglx22
2021-04-29Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loopsglx22