Commit graph

296 commits

Author SHA1 Message Date
hispidence
88c31503ca Add this comment to remind myself to think about stuff when implementing loading/saving. 2021-08-31 13:25:42 +01:00
hispidence
70cc036605 Make SetLevelFunc and GetLevelFunc only store the function in m_levelFuncs.
Store the function in m_levelFuncs instead of the table itself.
2021-08-30 18:21:42 +01:00
hispidence
b5d8fe06ad Fix wrong function name. 2021-08-29 21:08:20 +01:00
hispidence
a2303d022f Add the functions/properties SetPos, GetPos, col and key to DisplayString.
Add documentation too.
2021-08-29 20:28:40 +01:00
hispidence
fa5a6fd443 Add DisplayString "flags" and "translated" support, as well as some things I forgot to commit earlier. 2021-08-29 20:25:54 +01:00
hispidence
9a1831bc8f Remove PrintString; it has been "replaced" with DisplayString/AddString. 2021-08-29 20:11:29 +01:00
hispidence
8c1e290683 Rename AddDisplayString to SetDisplayString. Make it call insert_or_assign instead of just insert.
Add GetDisplayString and assorted types/static functions.
2021-08-29 20:09:59 +01:00
hispidence
3d1f2abd0b Add ScreenToPercent and PercentToScreen. 2021-08-29 20:03:51 +01:00
hispidence
dde17f88cd Make MakeReadOnlyTable give the metatable its own metatable with an __index metamethod which raises an error (for now) when you use a variable that doesn't exist. 2021-08-29 17:07:19 +01:00
hispidence
e834d38522 Fix GameScriptColor's D3DCOLOR operator and __tostring, and add a converting constructor. 2021-08-29 17:05:06 +01:00
hispidence
d946f4c118 Add more reserved script names. 2021-08-29 17:03:51 +01:00
hispidence
434b1f146e Change PrintString arg names to better reflect what it does. 2021-08-27 19:08:28 +01:00
hispidence
96441572bf Make default s_callbackRemoveName not throw. 2021-08-27 19:07:55 +01:00
hispidence
6bc5a561a0 Make variables an unordered_map for consistency and speed. 2021-08-27 19:04:03 +01:00
hispidence
e63153cc88 Implement ShowString, HideString, and PrintString. 2021-08-27 18:56:35 +01:00
hispidence
538fe191a8 Add GameScriptDisplayString.h and .cpp. 2021-08-27 18:49:59 +01:00
hispidence
5a5ca519dc Replace Get*ByName with GetByName, AddLuaName* with AddName, and RemoveLuaName* with RemoveName. Replace m_*MapName with m_nameMap. Use a std::variant for the types that m_nameMap elements could be. Modify SetNameCallbacks params to be variadic. These do make it look more complex, but also make it more generic, and mean that specific parameters do not need to be repeated (which will make it easier if/when we change said parameters). 2021-08-27 18:21:37 +01:00
hispidence
b71555efa8 Add ReservedScriptNames.h. This holds some static const strings to be used as template arguments. 2021-08-27 18:11:59 +01:00
hispidence
b5fe8904c1 Add IdentifierType for named script types. This is in an effort to consolidate a lot of very similar functions into a few templates. 2021-08-27 18:10:19 +01:00
hispidence
f7cff1076e Add comment for prev commit. 2021-08-27 14:32:00 +01:00
hispidence
824a65e603 Make GameScriptColor able to convert to D3DCOLOR. 2021-08-27 14:30:41 +01:00
hispidence
578724a9c6 Set callbacks to nil and collect garbage when unloading level. 2021-08-27 12:46:01 +01:00
hispidence
770a791c0d Make ExecuteFunction print a better error message with the name of the function. 2021-08-23 22:07:18 +01:00
hispidence
cb1ad16b2d Remove more vestiges of old trigger system. Replace TO_LUA_SCRIPT with the enum that used to be there - TO_BODYBAG - so that the following enums still have their same values. 2021-08-23 22:05:58 +01:00
hispidence
5f66005277 Remove j. 2021-08-23 19:22:31 +01:00
hispidence
bc9e863307 Give documentation comments new tag names. Part 2 of making the documentation better. 2021-08-23 19:16:24 +01:00
hispidence
bdbded2221 Rename ItemInfo functions newItem and newItemTemporary to new and newTemporary for consistency. 2021-08-23 02:07:17 +01:00
hispidence
9bf5c361e2 Clean up GameLogicScript.
Add some new member functions, ResetLevelTables and GetLevelFunc. The former is called in FreeLevelScripts, which is now called in control.cpp.

Remove AddTrigger, as the LevelFuncs table takes care of triggers.
2021-08-23 02:02:47 +01:00
hispidence
369e4c7562 Add and fix documentation. 2021-08-21 00:29:54 +01:00
hispidence
afdec32c1f Fix GetFrameNumber, SetFrameNumber, GetAnimNumber and SetAnimNumber. 2021-08-21 00:25:15 +01:00
hispidence
a75b43b7c5 Implement ScriptAssertF and ScriptAssertTerminateF.
These are like ScriptAssert, but make use of the fmt library (atm hijacking the version that comes with spdlog). This allows us to pass in a format string and some args, and then only create the format string if there's an actual error. This means we won't waste time doing a ton of std::string concatenations if the assert succeeds.

As these are variadic templates, we can't use a std::optional as the last argument to check if we're forcing a different error mode (we possibly could by assuming the last arg is a std::optional, but that seems unclean), so instead I've just separated them out into two functions.
2021-08-21 00:23:14 +01:00
hispidence
f83add0f4c Float->short to fix a warning. 2021-08-21 00:16:22 +01:00
hispidence
6c3f2d1673 Update SetScriptErrorMode call. 2021-08-21 00:15:56 +01:00
hispidence
8d84ee6f3f Rename SetErrorMode to SetScriptErrorMode to avoid VS getting confused by some MS function with the same name. Add GetScriptErrorMode. 2021-08-21 00:13:44 +01:00
hispidence
a20cad7ed6 Remove obsolete class. 2021-08-20 03:01:32 +01:00
hispidence
1d052a73e1 Remove comments; these are technically no longer unused as they're linked up with Lua variables. 2021-08-20 02:43:56 +01:00
hispidence
10419d15a8 Fixed some GameFlowScript.cpp warnings:
Remove SkyVelocity1 and SkyVelocity2 - they weren't being used.
Change a loop var to a size_t.
Make GameScriptInventoryObject.yOffset a short.
2021-08-20 02:42:47 +01:00
hispidence
2039df5a27 Add newindex error to SoundSourceInfo. 2021-08-20 01:51:51 +01:00
hispidence
1e2a2bfa63 Fix some documentation. 2021-08-20 01:51:16 +01:00
hispidence
93483e76ef Add unlimitedAir documentation comment. 2021-08-20 01:48:06 +01:00
hispidence
51c3ffe3d3 Give newindex errors to script classes which already have index errors. 2021-08-20 01:41:14 +01:00
hispidence
178b66978a Move index_error_maker into new file (ScriptUtil.h). Add newindex_error_maker. Make them call ScriptAssert instead of just throwing an exception so it won't terminate the application on WARN or SILENT error modes. 2021-08-20 01:37:49 +01:00
hispidence
07a756a369 Remove some unused includes. 2021-08-17 14:23:47 +01:00
hispidence
9b4cd106d1 Make some getters const. 2021-08-17 13:37:08 +01:00
hispidence
672f90e238 Add documentation for SetGameFarView, Level.FarView, and Level.UVRotate, as well as some value checking. 2021-08-17 13:36:34 +01:00
hispidence
3a01ec6629 Fix assert error message. 2021-08-17 00:30:21 +01:00
hispidence
b8521b5224 Fail assert if string is not found. 2021-08-16 12:52:45 +01:00
hispidence
af84f318b6 Document errorMode. Make it an enum on the Lua side rather than a string. 2021-08-16 12:52:06 +01:00
hispidence
3f3b259cb9 Make window title a strings.lua string instead. 2021-08-15 23:23:33 +01:00
hispidence
0fd15ad18d Make AudioTrack documentation stub. 2021-08-15 23:07:22 +01:00