Releases: llde/xOBSE
xOBSE 22.11
Fix/Changes:
- Use correct length for stringVar serialization and ToString($) operator for multibyte strings
- Compiler: Climate forms are now an allowed type for StandardCompiler
- ExtractArgEx now support extracting TESClimate forms in commands. Commands using kFormType_Climate should only use ExtractArgsEx (or the expression evaluator with OBSE compiler)
- GetClimate*, SetClimate*, SetCurrentClimate now use kFormType_Climate arguments instead of kFormType_WeatherID
Docs:
- Moved links to cs.uesp.net
- Additions
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.10
`
Additions:
- Compiler: add error when using invalid filter strings identifier (the first element of a zz::yy pair) in SetEventHandler and related functions
- Improved Diagnostic for script errors
- Task2 Interface for plugins to better handle Removable Tasks
- Add GameInitialized Message (for OBSE plugins interop)
- Added Compatibility for OBCN, similar of what was done for OBJA in 22.8 (EXPERIMENTAL)
- Added a workaround for OBCN/OBJA to simulate know OBJA crash workaround (initialization codepath trying to access a D3DSwapchain memebers directly)
Fix :
- Compiler: fix SetEventHandler/RemoveEventHandler/EventHandlerExist filters when the identifier was used unquoted and defined as a variable name
- Changes to Steam version handling, solving some of the instances of Application load error
- Allow sorting arrays of arrays when using ar_CustomSort
- Fix for Ref Walking documentation
- More precise handling of replace/count/find matching part of a multibyte character (stringVar are now internally wide string, proper handling require the proper locale and codepage setted in the system)
- Fix RemoveEventHandler for OnKeyEvent/OnControlEvent to remove all events with partial filter definition
- Avoid rare null pointer access in ShowRuntimeError (thanks @Fox2Code)
- Fix Menu{Tap/Hold/Release}Key commands not properly registering the button event for the UI.
- Fix xOBSE 22.7 regression for Useful House, now unmodified IR won't reset the stack extraDataList, possible if it was modified by another IR or directly by the engine.
- Fix CTD when GetNextRef is called in a script after returning a null reference, without a GetFirstRef call to reinitialize the scan.
Changes:
- Force C++20 Standard, modified some places for compliance
API:
- Add PatchCallsInRange
Loader:
- Added CS Editor checksum for visual style + DPI awareness executable
`
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.10beta2
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.10beta
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.9
Fix:
- Commit new ExtraData to container only if ExtraCount isn't the only data present. Fix duplicated items in inventory using MOO companions
- Flush IR, when another IR is created on the same container (workaround to common instabilities as for Break Armors and Take or Equip, precursor to script based lifetime IRs ) and it's executing a DeferredAction
- Invalidate IR after SetEquip Deferred actions
- Revert GetEditorID changes for REID as Realtime Interactions depended strictly on the old beahviours. Deprecate it and add GetEditorID2 as the contract was funcky and there are better functions to operate on formIDs
- Copy ExtraDataList of the IR in case of SetEquip Actions (non deferred)
- Fix a couple of Memory leaks related to ExtraWorn data and IRs
Documentation:
- Fix documentation for Alchemy Types
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.8
Fix:
- Fixed an issue for using RemoveItem in a Container Loop, fixing a crash with Maskar Oblivion Overhaul
- Properly process base container item in container loops
- Fix modifying extra data with InventoryReference when original item had no extra data (fix some instances of SetCurrentSoulLevel for instance)
- Allow OnEventKey and OnEventControl unfiltered if no first or sencond filter are specified
- Fix OnControl Release event never triggered for mouse controls.
- Allow using Player in OBSE expressions as PlayerRef (mimicking vanilla compiler/evaluator)
Changes:
- Added compatibility with OBJA v16 (Oblivion Japanese Patch OBSE plugin version) for the Input System
- Improve some error messages for Scripts failures in the ExpressionEvaluator, prevent some spam
- Try to print better info about form and reference tokens (some info with RuntimeEditorID only)
API:
- Merge BaseExtraList with ExtraDataList
- Added InventoryReference::InvalidateByItemAndContainer
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.7
Fix:
- Moving an inventory reference to another container with RemoveMeIR copy the extradata from the temp ref.
- Control events weren't fired properly when triggered by mouse with controls having a keyboard binding
- Write All IR extradata to the parent container extradata
Additions:
- Introduce handling of swapped mouse buttons configuration
Changes:
- Change the loader to use the Windows and not the Console subsystems. Should fix issues with Steam Deck.
- Add 0XBF654A48 CRC for another polish executable version
- Bypass stricter check in the steam loader, for confusion about Steam version being applied the japanese patch (CRC marked as GOG version))
π‘ VirusTotal GitHub Action analysis:
xOBSE 22.6.1 (Hotfix Release)
Fix:
- Fix GetProjectile Regressions
- Fix loader crash when checking for hotfix releases
xOBSE 22.6
General:
- Add CRC for DRM Removed Polish Version from Cenega (GOTY Deluxe/Anthology)
- Launcher will give a message if a new version is available (if you are connected to internet, only executable launcher)
Changes/Fix:
- Fixed Use After Free when RemoveMeIR was used with the destination container equals as the origin. Trade And Commerce Update rely on this working.
- Add Wheel events for OnKeyEvent event handler
- Re-add SetMouseSpeedX and SetMouseSpeedY (some mods use them)
- Fix functionality of OBSEIOInterface, fix Blockhead WASD in character creation
- Print xOBSE version on initialzing.
- Fix a tList issue where removing last item of the iteration was causing the loop to not terminate.
- Fix a potential crash where map markers with no name would cause a CTD on save load.
- Fix multiple command issue with multibyte string. (Japanese encoding affected)
- DeleteReference can now delete disabled clone actors
Addition:
- Add SetCameraFOV2 (unbounded version of SetFOV, con_SetCameraFOV)
- IsMajorRef,IsDiseased added as script and condition function.
- GetFirstRef / GetFirstRefInCell added parameter to include deleted reference.
- Type 90 now match only the deleted reference.
- Added SetInvertFastTravel, IsInvertFastTravel, SetCantWait,IsCantWait, SetOwningRequiredRank, SetParentCellOwningFactionRequiredRank, GetLoadedTypeArray
- HasSpell, IsMajor, GetActorLightAmount added as conditional functions
- GetDisease vanilla unimplmented function replaced with IsDiseased
PluginAPI:
- Added Replace to OBSECommandTableInterface
- Bumped PluginInfo to 3
xOBSE 22.5
xOBSE 22.5
Changes/Fix:
- Fix for OnEventKey and OnEventControl events
- Fix for SetHarvested 0 not being saved in the savegame
- Fix for CopyIR function breaking Wax Key perk from Real Time Lockpicking
- Fix for IR SetEquipped not working.
- Containers Loop execute the associated IR delayed actions (regression from 22.0). These last two entries fix Mig Pickpocketing mod and Break Armor.
- Full interop with CSE for warnings.
- Add IsMiscItem Command
API:
- Full C++latest conformance.
- Separate ExpressionEvaluator from ScriptUtils
- Standardize PASS_COMMAND_ARGS , use macro instead of hardcoding arguments for ExtractArgs, ExtractArgsEx sometimes
Docs:
- Multiple docs fixed by @laulajatar