- Add convenient way for save/load-persistent strings and floats:
- Double the amount of possible handles to 4294967295
- Add more AI-functions for instances
- Allow to now hook external engine functions
- Support function arguments/return values for engine hooks
- Escape/unescape extended ASCII characters
- Allow manual hiding of Bars
- Set alpha values properly for both views of Bars
- Fix negative protection values after Trialog
- Increase compatibility of hooks
- Fix View_Open when called every frame
- Check handle validity in Talents
- Simplify HookDaedalus and move local jumps safely
- Fix memory leak in PermMem
- Clean up data stack in between FrameFunction calls to avoid stack overflow
- Remove warning during
- Remove obsolete safety check in Anim8
- Do not create talent when merely checking for a buff
- Do not create buff list when not desired (
Buffs_DisplayForHero == False)
When updating from a previous version, please take note of the commit message aeea75a.
- Auto-update bars with screen resolution
- Auto-hide bars in menus and dialogs (following playerstatus)
- Add function
Bar_Resizeto resize existing bars
- Add pixel-based equivalents
- Add GameTimer-based equivalent
- Improve initialization for mods that add LeGo later on, i.e. not with a new game
- Improve virtual-pixel conversion accuracy, i.e.
Print_ToPixelare now more accurate
- Fix crash on loading unknown classes, instances and functions in PermMem (classes/instances are skipped, functions are replaced with empty ones)
- Fix potential data stack corruption by checking the return type of
- Fix potential data stack corruption in
- Fix crash after deleting Buffs, Buttons and Anim8 objects during their respective foreach-loops
- Fix deletion of Anim8 objects (delete leftover A8Commands when deleting their parent A8Head)
- Fix initialization of Trialoge by adding
LeGo_AI_Functiondependency (thanks to LootaBox)
- Fix swapping of NPC visuals in Trialoge (thanks to Marek and Umfi)
- Fix visual bug with
- Fix potential bug in
on_leavefunction call in
Button_Deactivateby pushing missing function argument
- Remove Buttons array and make Buttons handling foreach-based (thanks to blood4ng3l)
- Buffs on the Hero now fade out visually over time. This behaviour can be deactivated in
Userconst.d. It may impact performance.
- Buffs are now hidden when the player interface is hidden, e.g. in dialogs.
- Anim8 now uses the ingame timer, i.e. it's paused when a menu is open.
- Added functions to change the individual texture of bars (Thanks to KarolWojtasiuk)
Q_Peek(queue), to peek at the next element of a queue
- Added some miscellaneous functions, trigonometry related
- Fixed an issue with FFs if they had their delay set to 0 and were using the ingame timer.
oCNpc_RemoveFromSlotfor Gothic 1
- Fixed a crash in
Render.d(Thanks to bogu9821)
- PermMem: Critical fix in quick saves for correct loading of handles
- TimerGT: New timer that only runs during the game and is paused when any menu is open
- FrameFunctions: New functions for the TimerGT, new function for removing all FF that point to a specific function (thanks to the Dirty Swamp mod team!)
- Buffs + Anim8: Now use the TimerGT
- Buffs: New constant (
UserConst.dthat allows showing or hiding icons for the player
- Anim8: Small fixes and a new on-remove-function that acts like a destructor for anim8 objects
0if no NPC was found
Button_Moveis now fixed
- DialogGestures: Fix for resetting animations
- HookEngine: Data stack is now cleared in-between function calls
- Talents: Talents arrays won't be automatically created anymore when simply checking for it with
- Interface: Simplifying the PrintScreen-Fix (was very slow when using
- HookDaedalus: NEW! See wiki (German language only).
- Bloodsplats: Damage perceptions will no longer be overwritten, s.t. you may register your own damage perception functions along side the Bloodsplats
- ConsoleCommands: When entering
LeGointo the game console (given the ConsoleCommands package is initialized) the LeGo version as well as all active LeGo flags will be returned in human-readable format. This information is also sent to the zSpy on initialization of LeGo (screenshot).
- Separate G1 and G2 header files (more information below)
To simplify the installation of LeGo, there are now separate SRC files for Gothic 1 and Gothic 2:
Header_G2.src, respectively. When updating to this version, remember to update the respective entry in your
Unfortunately, the package "Buffs" has not been promoted out of its experimental state. We appreciate any feedback from people who are already using it!
- Gothic 1 support (except for experimental packages)
- Hooks have been reworked (allow recursive hooks, backup global instances and secure data stack)
- Draw3D, see wiki (German language only)
- ConsoleCommands are no longer written to game saves, but kept for the duration of the session
- It can now be checked whether hooks are active (and they may be removed, not recommended)
- New functions to replace and disable engine functions
- NPCs are no longer stuck after trialogs (thanks to Cryp18Struct)
- Level change is now correctly detected every time (sure...)
- New List functions (List_AddFront*)
- New View function (View_AddTextColored)
- Minor fixes on Anim8, Bloodspats, Interface, zCViewText and arrays
Because of the Gothc 1 compatibility, the files EngineAdr_G1.d or EngineAdr_G2.d now need to be removed when installing LeGo for Gothic 2 or Gothic 1, respectively. There is an attempt to warn users when they forget to do this, but there's not much we can do in terms of error messages.
- The constant LeGo_Version has been updated to reflect the version number (rare enough to be worth a mention!)
- Various "magic numbers" have been moved to EngineAdr.d
- Fixed two warnings that would pop up during save/load
- Minor changes to increase portability to G1
- ConsoleCommands! See wiki
Buffs and Render still experimental.
- Fixed an error that prevented parsing in Names.d
- Fixed a bug concerning initialization order (happened if you never created a handle during startup)
- Fixed a small bug in View.d (thanks to mud-freak)
- Changed MEM_SetUseInstance() to expect a zCPar_Symbol* instead of a symbolID.
Note: Although I fixed a bug with the buffs, both Buffs.d and Render.d are not yet included in LeGo_All.