Releases: Lehona/LeGo
Release list
LeGo 2.9.0
- Fix Sprite priorities on deletion and on initialization
- Fix register values in AI Functions hook
- Fix text alignment on negative margin of
ViewPtr_AlignTextin View (#27) - Fix the removal of dangling handles and other minor issues in Buff (#34)
- Fix corrupted Daedalus stack in
PM_Bindof PermMem - Fix deprecated Misc NPC slot functions
- Fix undefined behavior for negative values of Bars (#30)
- Avoid relying on
selfafterWld_InsertNpcin ItemHelper - Remove obsolete code in PermMem archive
- Make for-loops breakable with
rBreak(analogous to foreachHndl) in List and Hashtable - Add foreach loop for
zCArraywith a conditional function to skip elements, used in PermMem - Make nested for-loops local-safe in List and Hashtale
- Reduce redundancy in for loops and foreach loops in List and PermMem
- Improve stability of Locals in conjunction with loops in Hashtable and HookEngine
- Improve performance of NPC-by-talent-ID lookup in Talents (#32)
LeGo 2.8.0
- Add convenient way for save/load-persistent strings and floats:
PM_BindStringandPM_BindFloat, analogously:PM_BindInt - Double the amount of possible handles to 4294967295
- Provide
selfin AI-functions - 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
PM_Reset - 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.
LeGo 2.7.1
Hotfix to remember the last screen resolution across saves for updating the bars.
LeGo 2.7.0
- 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
Bar_MoveToPxlandBar_ResizePxl - Add GameTimer-based equivalent
FF_ApplyOnceGT - Improve initialization for mods that add LeGo later on, i.e. not with a new game
- Improve virtual-pixel conversion accuracy, i.e.
Print_ToVirtualandPrint_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
ForEachHandlecallbacks - Fix potential data stack corruption in
_Buff_checkand_Anim8_Loop - 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
Buff_ApplyOrRefresh - Fix potential bug in
Buff_Has - Fix
on_leavefunction call inButton_Deactivateby pushing missing function argument - Remove Buttons array and make Buttons handling foreach-based (thanks to blood4ng3l)
LeGo 2.6.0
- 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)
- Added
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.
- Fixed
oCNpc_RemoveFromSlotfor Gothic 1 - Fixed a crash in
Render.d(Thanks to bogu9821)
LeGo 2.5.1
- 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 (
Buffs_DisplayForHero) inUserConst.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
- Talents:
Npc_FindByIDnow returns0if no NPC was found - Buttons:
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
TAL_GetValue - Interface: Simplifying the PrintScreen-Fix (was very slow when using
PrintScreena lot) - 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_G1.src and Header_G2.src, respectively. When updating to this version, remember to update the respective entry in your Gothic.src.
Unfortunately, the package "Buffs" has not been promoted out of its experimental state. We appreciate any feedback from people who are already using it!
LeGo 2.5.0
- 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.
LeGo 2.4.0
- 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.
LeGo 2.3.7
LeGo 2.3.6
- 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.