Commit graph

282 commits

Author SHA1 Message Date
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
hispidence
813b8bb42a Add documentation comments in GameFlowScript.cpp.
Move windowTitle from GameScriptSettings to GameFlowScript and rename it to SetWindowTitleKey.
2021-08-15 23:04:56 +01:00
hispidence
93117c56a3 Fix some documentation. 2021-08-12 22:11:50 +01:00
hispidence
adcee07c68 Fix some GameLogic documentation. 2021-08-12 20:14:40 +01:00
hispidence
c8de277d44 Remove GetLara as the Lara object is easier to use.
Add documentation for the Lara object.
2021-08-12 20:14:02 +01:00
hispidence
cd16268e19 Actually add documentation. 2021-08-12 19:58:22 +01:00
hispidence
3efa8f16b7 Take CalculateDistance and CalculateHorizontalDistance out of header file as they can be static now.
Add documentation for said functions.
2021-08-12 19:57:17 +01:00
hispidence
53cd3add4f Register CalculateDistance and CalculateHorizontalDistance in GameLogicScript. 2021-08-12 19:54:03 +01:00
hispidence
582b000fb9 Make OnControlPhase take a float, representing the delta time.
This is not ACTUALLY the amount of time that has passed, since things in the gameplay loop appear to assume they are being called thirty times per second, even if more or less time has passed. Thus to keep the scripts in sync with the the rest of the engine, we force a 1/30 second delta time.
2021-08-12 18:20:14 +01:00
hispidence
196646297b Amend doc comment. 2021-08-12 17:20:09 +01:00
hispidence
adf1361d99 Fix documentation; Level -> LevelVars. 2021-08-12 02:43:59 +01:00
hispidence
ea1649b7b1 Make "loop" arg to PlayAudioTrack optional; defaulting to false. 2021-08-12 02:39:29 +01:00
hispidence
b708a6068d Add comments and update documentation for InventoryAdd/InventoryRemove. 2021-08-12 02:38:30 +01:00
hispidence
c1b46afd62 Rename Lua tables Game and Level to GameVars and LevelVars to disambiguate the latter from the Level class. 2021-08-12 00:39:52 +01:00
hispidence
16a605f102 Remove GameScriptLevel members which look superfluous. Mark some others as unused (for now). 2021-08-11 14:51:21 +01:00