summaryrefslogtreecommitdiff
path: root/src/script/script_instance.cpp
AgeCommit message (Collapse)Author
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-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-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-06-12Fix #9353: [Script] Garbage collecting on priority queues could crash the gamerubidium42
2021-06-10Fix: [Script] Ensure the saved script strings are properly validated and ↵rubidium42
terminated when being read from the savegame
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-03Codechange: Replace FOR_ALL_SEARCHPATHS with range-based for loopsglx22
2021-04-17Change: [Script] Let Script_FatalError use std::string instead of const char *Rubidium
2020-12-27Codechange: Convert some more FIO functions to take std::string.Michael Lutz
2020-12-27Codechange: Use std::string in FIO search path handling.Michael Lutz
2020-06-01Add: [Script] Native priority queue; useful e.g. for pathfinders.Michael Lutz
2019-11-15Fix #7606: Game crash when trying to clean up a crashed scriptCharles Pigott
Also fix another possible memory leak
2019-11-15Codechange: new instead of mallocCharles Pigott
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-09-07Fix b3fd7879: Ignore command flags when verifying script commandsNiels Martin Hansen
Multiplayer games has the server add some flags to the cmd value during the handling. These flags should not be included in the verification, mask them out. Without this masking out, scripts tend to die when executing their first command in multiplayer.
2019-09-07Fix #7188: check the validity of command callback for scripts (#7701)glx22
2019-05-15Codechange: catch script exceptions by referenceglx
2019-05-11Change: Limit memory allocations for each Squirrel instanceNiels Martin Hansen
This can avoid out-of-memory situations due to single scripts using up the entire address space. Instead, scripts that go above the maximum are killed. The maximum is default 1 GB per script, but can be configured by a setting.
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2014-09-07(svn r26785) -Fix [Squirrel]: loading a value saved as boolean caused it to ↵rubidium
be of type integer instead of boolean
2014-09-06(svn r26771) -Cleanup: remove OTTD2SQ and SQ2OTTDrubidium
2014-04-23(svn r26489) -Codechange: properly account for the end of buffers in the ↵rubidium
file io code instead of assuming MAX_PATH is okay
2014-04-23(svn r26485) -Codechange: Replace ttd_strlcpy and ttd_strlcat with strecpy ↵frosch
and strecat.
2014-04-23(svn r26482) -Codechange: add an include that allows us to undefine/redefine ↵rubidium
"unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2013-11-23(svn r26057) -Fix: a number of possibly uninitialised variablesrubidium
2013-06-09(svn r25342) -Add: StoryPage data structures and GS APIzuu
2012-09-21(svn r24538) -Fix-ish: remove compiler warning about initialization orderyexo
2012-09-21(svn r24537) -Feature: Scripts can be suspended even if the game is still ↵zuu
progressing, thus break-on-log now works also for Game Scripts.
2012-08-13(svn r24468) -Add [FS#5219]: API compatibility scripts for Goal Scripts ↵yexo
(Hirundo)
2012-01-03(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp filesrubidium
2011-12-19(svn r23632) -Add: GSCompanyMode, to change company in GameScriptstruebrain
2011-12-19(svn r23630) -Add: a Goal GUI to show your current goalstruebrain
2011-12-19(svn r23623) -Add: allow bi-directional communication with the AdminPort and ↵truebrain
GameScript
2011-12-01(svn r23387) -Fix: move ai.script_max_opcode_till_suspend to ↵truebrain
script.script_max_opcode_till_suspend
2011-12-01(svn r23386) -Fix: debug script related events to 'script' (removes 'ai')truebrain
2011-11-29(svn r23366) -Codechange: move most of the Dummy code to script/, unifying ittruebrain
2011-11-29(svn r23365) -Codechange: move constants to a single place, to avoid ↵truebrain
duplication (and in time, different values)
2011-11-29(svn r23360) -Codechange: move AIInstance to ScriptInstance, making it ↵truebrain
reusable by other script API instances