Releases: simonvic/sFramework
v3.0.0-exp
ADDED
- Improved documentation about user configuration and server constraints
- A
preloadfunction that implementing user configurations could hook into for preloading - New
SLOGlogger implementation superseding the now deprecatedSLog - New
SLOGoptions added in the diagnostic menu - New
sDebugUIfunction for building checkbox returning its boolean state - New
sDebugUIfunction for building sliders returning its float value - New
onValueChangeevent (ScriptInvoker) for user configuration options that gets fired when the value of the option effectively changes
CHANGED
- The default message of a server constraint is now an empty string and it will default to the localized string in the UI. This resulted in a slight reduction in the data size being sent to the clients over the wire
- Improved logging related to user configurations and server constraints
- User configuration and server constraints are initialized earlier in the game lifecycle (
DayZGame::DeferredInit) - Removed default user configuration.
The implementation was meh, it was unused and it only complicated the user configuration APIs with no real benefit.
SPOILER: it might come back once the user configuration gets refactored to be more similar to DayZ vanilla settings - Removed user configuration and server constraints validation step.
- Removed unnecessary typedefs in favor of the actual type
- Replaced client/server checks with
IsDedicatedServer - Cleaner and more human readable log entry format
- Improved UI and localization for boolean based constraints
- The method loading a user configuration will now return the loaded instance
- The method loading a server constraint will now return the loaded instance
sJONSSerializableserialization and deserialization now returns a boolean value based on whether or not the operation was successful- The new logging implementation is now used throughout sFramework
FIXED
- Mod list in log files wouldn't be printed entirely if too long
- File handles are now being closed only if it was actually open
- The user configuration constraint reading flow has been refactored, and should fix a rare case of constraints not being applied correctly.
FULL CHANGELOG
v2.0.1
v2.0.1.exp
FIXED
- Various syntax errors
MODDING
- The
begin()function for DebugUI now returns the enabled status - The
onValueChange()user config callback would not get called for array based options
FULL CHANGELOG
v2.0.0
And here we are with the 2.0 update, which brings some breaking changes about PostProcessingeffects, but for a greater good. For this reason (and lack of free time on my side), the 2.0update has been sitting in the experimental version of sFramework for quite a while; apologies for thedelay.
With this update, sFramework removes its implementation of the sPPEManager, since vanillaDayZ added its own implementation (PPEManager).
That leads to the sPPEffect now extending the vanilla PPERequester class.
But why all these breaking changes?
Compatibility!
Previously, sFramework's PPEffect system was necessary since vanilla DayZ lacked one, andif two mods wanted to use ppeffects at the same time without sFramework, all bets were off!
With the new vanilla system (which all mods can and should use) it's much easier for mods tocooperate.
For this reason, sFramework now relies on it too to provide you the API for defining PPEffects, with thebenefit of compatibility with any other mod, without the need to make compatibility mods.
Although the new vanilla system is pretty similar to my previous implementation, it comes withsome differences, which means you may need to make some changes to your effects.To learn more about it, I highly suggest giving a read to thenew sPPEffect tutorial
ADDED
isActive(),activate(),deactivate()andtoggle()functions have been added tosCameraOverlayisActive(),activate(),deactivate()andtoggle()functions have been added tosPPEffect- Builders for CameraOverlays
- Modded diagnostic menu (only available with diagnostic executable)
sDebugUIbuilder function with default visibility state
CHANGED
sPPEffectnow extends the vanillaPPERequester- Removed
sPPEManager - Removed
PPEPresetandPPEDefaultPreset - Removed
DoFPreset - The
sColorclass is now the preferred way to define and use colors - Removed arguments in CameraOverlays constructors;
onInitis now the preferred way tooverride default settings of an overlay - The overlays default priorities have been changed to allow finer control between types of overlays
- Cleaned up overlay root layout
- Removed unnecessary typedefs
FIXED
CameraOverlayManager::getAnimatingwould return a set of overlays weak ref
FULL CHANGELOG
v1.4.0
ADDED
- New camera transition timing from 3rd person vehicle to 3rd person (DayZ 1.20)
- sDebugUI widgets now use consumable options instead of parameters
- sColor method to build color from string
- sDebugUI: option helper function with map argument
- sDebugUI: window body color can now be changed with
body.bgoption - sDebugUI: new options for table cells flags (
table.cell.flags.set,table.cell.flags.set) - Helper function to convert array to csv row
- sColor: getter for normalized array in RGBA format
- sColor: allow hashtag (#) in color string representation
CHANGED
- sDebugUI: Enabling/disabling a DUI won't show/hide it
FIXED
- sColor: memory leak
- sDebugUI: vertical scale option not working for plot widget
- sDebugUI: null pointer exception on server
- sDebugUI: possible lost refs when instatiating a DUI early during game init
- sSpawnableBundle: missin argument in constructor
MODDING
- Preprocessor defines are now declared according to DayZ 1.21 changes
- Removed debug plugin
FULL CHANGELOG
v1.3.0
Because of some breaking changes to user config constraints, server owners are advised to delete the current constraints.json files and let the server regenerate it.
Alternatively you can use this tool to edit the constraints: sConstraintsEditor
ADDED
- New logo
- sDebugUI IMGUI framework
- sMath: normalize() function
- sMath: normalizeClamp() function
- sMath: map() function
- sMath: mapClamp() function
- sMath: squared PI constant
- sSpawnableBundle API
- ComboWidget options can now be registered in the Options menu
- sTreeNode: allow max depth in debug print
CHANGED
- sConstraints enabled field has been renamed to constrain
- sConstraints now can get preloaded at mission start
- User config array options only worked with floats
- Removed sCameraManager
- Code refactor and cleanup
FIXED
- sCameraOverlay not hiding along with the HUD
- sLog: the header will now be printed at every boot
- sLog: filename date format
- sMath: Wrong arctan computation
- sPPEManager: potenrially wrong DoF reset
- sPPEManager: PiP not working without sVisual
- sUserConfigConstraints deserialization validation
FULL CHANGELOG
v1.2.0
ADDED
- Added sObservableArray API
- Added sTest framework (UnitTesting). sTest related stuff is only compiled with
DIAG_DEVELOPERdirective - Added test unit for sMath
- Added test unit for sConstraints
- Added test unit for sUserConfigs
- Added test unit for sObservableArray
v1.1.1a
v1.1.1
v1.1.0
ADDED
- ServerSide config constraints
sUserConfig can now be constrained based on constraints defined on the server - InfoBox in options menu, containing option (and constraints) description
- sUserConfigOption
A generic option, to replace the old coupled way of creating UserConfig - JSONSerializable interface
- sConstraintBase (for primitive and non primitive data)
- sConstraintSimple
- sConstraintMinMax
CHANGED
- Completely reworked sUserConfig
- sUserConfigBase now implements JSONSerializable interface
- options are now held in the new generic sUserConfigOption
- options must be registered with a unique string identifier
- Improved generalization of user config UI controllers
- widgets that control options now need to be binded with the option
- they won't handle the option change anymore (the option itself will)
- improved config change handling to reduce reads/writes on disk
- Improved sMath and sTest
FIXED
- onInit method in SCameraOverlayTimed was not getting called at the right time