hispidence
1d1653f995
Replace WarningsAsErrors usage with ScriptAssert usage.
...
For recoverable errors, add some recovery behaviour and logging so a level designer can see in the log what was done as a result of the error.
Warn about default behaviour if no callbacks are added.
2021-08-04 16:51:28 +01:00
hispidence
5929180395
Remove AddLuaId and GetItemById.
2021-08-04 16:21:00 +01:00
hispidence
a637701d63
Replace std::runtime_exception with TENScriptException.
2021-08-03 15:15:42 +01:00
hispidence
e6c076eb41
Move GameScriptLevel, GameScriptAudioTrack, GameScriptInventoryObject, GameScriptSkyLayer, GameScriptSettings and GameScriptMirror into their own files. This could be changed later as this does create many small .h and .cpp files, but for now this cleans things up and makes it easier to check things class by class.
...
Treat functions as global that would previously be accessed through the GameFlow table. This does pollute the global environment in Lua a bit, but keeps it consistent with the functions in GameLogicScript, which are all accessed as globals.
Add some default member initialisers.
Remove WriteDefaults. Rename Intro to IntroImagePath and make it a std::string.
Add some documentation for the functions of GameFlowScript.
Fix some comments.
2021-07-28 18:44:24 +01:00
hispidence
783d344185
Add SOUND_SOURCE_INFO and AI_OBJECT names when loading in the level data. Implement remaining functions on the GameLogicScript side.
2021-07-24 12:45:33 +01:00
hispidence
447ba86d30
Add GameScriptSoundSourceInfo and GameScriptAIObject, and associated functions.
2021-07-24 12:29:25 +01:00
hispidence
f9ae0046c6
Add AddLuaNameSink, RemoveLuaNameSink, and GetSinkByName.
...
Make a template that all GetXByName member functions work off, to reduce copypasted functions.
For consistency, rename RemoveLuaName and AddLuaName to RemoveLuaNameItem and AddLuaNameItem.
Fix some documentation comments, order function documentation into sections.
2021-07-23 16:02:30 +01:00
hispidence
5257a3c074
Add m_camerasMapName, AddLuaNameCamera, RemoveLuaNameCamera, GetCameraByName, and GetMeshByName.
2021-07-23 02:09:52 +01:00
hispidence
bd4df80c46
Add documentation and constructor member initialisers for GameScript.
2021-07-21 18:19:57 +01:00
hispidence
23ec719020
Link up MeshInfo with GameLogicScript, adding a m_meshesMapName and implementing AddLuaNameMesh and RemoveLuaNameMesh.
...
Add GetMeshByName and make GetItemByName take a constant reference.
Remove no-longer-used headers.
2021-07-21 18:12:17 +01:00
hispidence
63a696f25e
Make the "Lara" global non-owning. Will look into this and see if we actually need it.
2021-07-21 18:09:53 +01:00
hispidence
4fd68787dc
Make GetItemByName take a const ref, and make its error print the name of the item that could not be found.
...
Register GetItemByName in GameLogicScript instead of winmain. Register GameScriptColor too.
Define the lambdas passed to GameScriptItemInfo in terms of the actual functions we define. Functions that make a GameScriptItemInfo should pass false to make_unique (so the Lua object made does not control the lifetime of the ITEM_INFO).
2021-07-20 17:58:11 +01:00
hispidence
1ba7007d92
Make the contents of ObjectIDs.h part of the Lua interface.
2021-07-20 00:16:15 +01:00
hispidence
87ebe31767
Uncomment ExecuteFunction and make it take a const ref.
...
Make «Add/Remove»LuaName return a bool for future error checking, and pass them via lambdas to GameScriptItemInfo, allowing it to call them whenever an object is added or removed (they would not have access to the m_itemsMapName otherwise).
2021-07-17 22:26:07 +01:00
MontyTRC89
7c1e29e6d0
Added code (to finish) for executing LUA triggers
2021-07-17 05:56:40 +02:00
MontyTRC89
916d22759b
Merge remote-tracking branch 'origin/lara_info'
...
# Conflicts:
# TR5Main/Game/Lara/lara_flare.h
# TR5Main/Scripting/GameLogicScript.cpp
2021-07-14 05:48:42 +02:00
Troye
5d8bb0014d
FLARE_AGE constant; fix dynamic light intensity; fix release builds
2021-07-13 22:29:47 -05:00
hispidence
3599cf68d4
Make GameLogicScript use kInventorySlots. Make InvItem a read-only table. This means we do not need to write an enum directly in the Lua source.
2021-07-13 13:21:13 +01:00
hispidence
5dd8ca33a8
Implement GiveInvItem, TakeInvItem, GetInvItemCount and SetInvItemCount (names to be finalized).
2021-07-10 14:05:01 +01:00
MontyTRC89
c98c51f5b5
Made LUA script optional; Deleted my bugged test code for volumes;
2021-07-06 11:54:34 +02:00
hispidence
7a43cd156c
Make InventoryAdd and InventoryRemove static. Add them as Lua functions.
2021-07-05 18:18:20 +01:00
hispidence
47f5745304
Register SetAmbientTrack and PlayAudioTrack. Make PlayAudioTrack static, pass its string arg by reference-to-const, and let it use the loop bool passed in instead of the one stored in global state.
...
Improve some text formatting in the header.
2021-07-04 14:33:57 +01:00
hispidence
b7d2a45a29
Make SetAmbientTrack take a string by const ref. Change functions to access GameScript[Position/Rotation] members directly instead of via getters/setters.
2021-07-03 23:18:10 +01:00
hispidence
4e09dc1d1d
Add doCallback function to throw an exception if one of the callback encounters an error (and if WarningsAsErrors is on).
2021-07-03 23:16:28 +01:00
hispidence
932ac8f4a2
Add implementation of GameScript::InitCallbacks and the C++ holders of the callbacks. This might well be a needless layer of indirection, but it prevents the callbacks being reassigned outside of the class.
2021-07-01 19:33:48 +01:00
hispidence
b4a52de5d0
Register GameScriptRotation and GameScriptPosition in GameScript constructor. Remove GameScriptItem class, which has been merged into GameScriptItemInfo.
2021-07-01 19:29:58 +01:00
MontyTRC89
a507e9e1be
Moved GameScriptPosition, GameScriptRotation and GameScriptColor classes in separate files
2021-06-29 05:28:17 +02:00
MontyTRC89
aaee0e833a
Merge branch 'NewLuaScripting' of https://github.com/MontyTRC89/TR5Main into NewLuaScripting
...
# Conflicts:
# TR5Main/Scripting/GameLogicScript.cpp
2021-06-29 05:03:57 +02:00
MontyTRC89
255393b589
Added FROM_DEGREES function; Added quantity param to PickedUpObject(); LUA scripting refactoring WIP;
2021-06-29 05:00:15 +02:00
hispidence
b2ace2c1bf
Include and register GameScriptItemInfo.
2021-06-28 18:35:16 +01:00
MontyTRC89
a4d3ec9d26
Switched audio tracks from int index to string; Added Tracks.lua loading support;
2021-06-26 07:36:54 +02:00
MontyTRC89
127e142622
Merge branch 'NewLuaScripting' of https://github.com/MontyTRC89/TR5Main into NewLuaScripting
...
# Conflicts:
# TR5Main/Scripting/GameLogicScript.cpp
2021-06-23 05:59:25 +02:00
MontyTRC89
a455a091c0
Removed test code; Removed scripts from project (they will be created by LD); Added some missing strings for inventory; Added scripting for puzzles; Removed some old code for scripting;
2021-06-23 05:58:24 +02:00
hispidence
befb08c759
Remove test code.
2021-06-21 16:23:18 +01:00
hispidence
a70bd1f13d
GameLogicScript inherits from LuaHandler now.
2021-06-16 14:39:43 +01:00
asasas9500
10a3d9167a
Fix line endings
2020-12-21 13:16:29 -03:00
asasas9500
26a4b39b43
Fix bridges; Fix script IDs
2020-09-28 10:04:44 -03:00
asasas9500
0e6e42b619
Remove ControlXRayMachine(); Move bridges to generic objects folder; Merge bridges
2020-09-27 20:44:17 -03:00
Woops
0cf06102ee
implement
2020-08-28 12:05:25 -05:00
MontyTRC89
83bba01a99
Moving all globals of level under LEVEL struct; Fixed severe performance issue;
2020-07-21 09:56:47 +02:00
MontyTRC89
5b8c90b688
Merge branch 'master' of https://github.com/MontyTRC89/TR5Main
2020-06-26 07:06:51 +02:00
MontyTRC89
d8bf82eab1
New FLOOR_INFO struct; Refactoring rooms part I
2020-06-26 07:06:18 +02:00
Raildex
b635f4df13
Fixed std namespace collisions
...
Refactored ChunkID/ChunkReader/Writer
2020-06-20 23:39:08 +02:00
TokyoSU
2b2a58d44c
Implemented Mutant and Locusts
...
- Added ItemNearTarget().
2020-06-10 21:38:25 +02:00
asasas9500
b58fc1473e
Scripting ( #211 )
...
* Create template for variables; Rename properties; Improve console input
* Improve console input again
2020-06-09 09:16:51 +02:00
TokyoSU
977e338eb7
Implemented Big Rat (TR1) Template
...
- Fixed old object (added by me) missing from the lua script.
2020-06-08 13:51:44 +02:00
TokyoSU
900235c967
Implemented Baboon
...
- Fixed AIObject not being initialized !
- Fixed ITEM_DEACTIVATED (cause im french and ITEM_DESACTIVATED is more appropriate)
2020-06-04 12:49:08 +02:00
TokyoSU
b615a98c46
(Broken) Deleted Global Folder
...
- No more enums.h, constants.h, macro.h, etc...
- moved all structure in types.h to there respective file.
2020-05-30 15:55:23 +02:00
TokyoSU
cd1d5f5482
Refactor include and moving some structure to right file
...
- started moving structure out of types.h.
- fixed ExtraAnim using 0 instead of -1.
- changed void(*)(); to function<> for lara routines.
- changed short(*)() effect to function<> for CreatureEffect/CreatureEffect2.
- renamed guardian to laserhead.
- moved some structure to their right place.
- renamed TYPE_ZONE to ZoneTypeEnum.
- fixed zoneType not using ZoneTypeEnum as variable.
- fixed LOT.zone not using ZoneEnumType.
- changed "variable : 1" to bool in some structure.
- implemented @krys new collision structure and improved it a bit (but commented for "later")
- level need #pragma pack(push, 1) #pragma pack(pop) to work (for structure), else it crash at LoadTexturesInfos().
Co-Authored-By: krys <krys@users.noreply.github.com>
2020-05-28 15:17:34 +02:00
TokyoSU
963706c3af
Partially finished Entity Folder Refactoring
...
- Less Compile Time
- ObjectInfo now use std::function.
- added isPickup and isPuzzleHole in ObjectInfo.
- Renamed EVIL_LARA to LARA_DOPPELGANGER (DOPPELGANGER in xml)
- Removed TR1 Larson/Pierre and TR1 Raptor.
2020-05-27 19:07:34 +02:00