Changelog
0.3.4.0
[BREAKING-CHANGE][REMOVED] Ikarus support for g2o client.
[BREAKING-CHANGE][REMOVED] <modification> tag from config.xml
[BREAKING-CHANGE][RENAMED] Client-side class Texture to Sprite.
[BREAKING-CHANGE][RENAMED] Client-side class Draw to Label.
[BREAKING-CHANGE][UPDATED] Label.text is now limited to 10000 characters due to introduced optimalization for text rendering (rendering text in one draw call, instead of calling draw call per each letter).
[BREAKING-CHANGE][REMOVED] Client-side class Draw3d, use Projector3d in conjuction with Label instead, you can also checkout examples/draw3d.nut from default server package.
[BREAKING-CHANGE][REMOVED] Support for arm server architecture, use arm64 instead.
[BREAKING-CHANGE][UPDATED] Linux binaries will now use GLIBC 2.36 (previous used version was 2.31).
[BREAKING-CHANGE][UPDATED] Linux binaries will now require at least OpenSSL 3.0.7 to be installed on the host system.
[BREAKING-CHANGE][UPDATED] Shared function setTimer might return null if you pass interval argument as negative value.
[FIXED] Issues with not shooting from ranged weapon by npc, when game for some reason didn't insert the munition to hand.
[FIXED] Music volume not being properly set initially (if music was muted, it could still be played after initial launch).
[FIXED] Client-side function readySpell now swaps the active spell for player/NPC already in magic weapon mode, instead of unnecessarily hiding and re-readying it.
[FIXED] Client-side event onSink not respecting eventValue.
[FIXED] Client-side function useClosestMobQueued triggering unnecessary onMobInterStartInteraction event.
[FIXED] Client-side function useClosestMobQueued not finishing action while ending interaction.
[ADDED] Client-side class Vertex2d.
[ADDED] Client-side field Vertex2d.pos.
[ADDED] Client-side field Vertex2d.uv.
[ADDED] Client-side field Vertex2d.color.
[ADDED] Client-side field Label.letterSpacing.
[ADDED] Client-side field Label.vertices.
[ADDED] Client-side field Label.linearFilterEnabled.
[ADDED] Client-side field Label.autoUpdateViewport.
[ADDED] Client-side field Label.viewportMin.
[ADDED] Client-side field Label.viewportMax.
[ADDED] Client-side field Label.alphaFunc.
[ADDED] Client-side method Label::getLetterColor.
[ADDED] Client-side method Label::setLetterColor.
[ADDED] Sprite.vertices is now limited to 60000 vertices.
[ADDED] Client-side field Sprite.vertices.
[ADDED] Client-side field Sprite.linearFilterEnabled.
[ADDED] Client-side field Sprite.autoUpdateViewport.
[ADDED] Client-side field Sprite.viewportMin.
[ADDED] Client-side field Sprite.viewportMax.
[ADDED] Client-side field Sprite.alphaFunc.
[ADDED] Client-side method Sprite::pushVertex.
[ADDED] Client-side method Sprite::pushVertexPx.
[ADDED] Client-side method Sprite::popVertex.
[ADDED] Client-side class Projector3d.
[ADDED] Client-side field Projector3d.position.
[ADDED] Client-side field Projector3d.distance.
[ADDED] Client-side field Projector3d.visible.
[ADDED] Client-side callbackProjector3d::onVisibilityChange.
[ADDED] Client-side callbackProjector3d::onUpdate.
[ADDED] Client-side class BinkPlayer.
[ADDED] Client-side field BinkPlayer.loop.
[ADDED] Client-side field BinkPlayer.paused.
[ADDED] Client-side field BinkPlayer.alphaSupported.
[ADDED] Client-side field BinkPlayer.volume.
[ADDED] Client-side field BinkPlayer.duration.
[ADDED] Client-side field BinkPlayer.remainingTime.
[ADDED] Client-side field BinkPlayer.currentTime.
[ADDED] Client-side method BinkPlayer::play.
[ADDED] Client-side method BinkPlayer::stop.
[ADDED] Client-side constant ALPHA_FUNC_MAT_DEFAULT.
[ADDED] Client-side constant ALPHA_FUNC_NONE.
[ADDED] Client-side constant ALPHA_FUNC_BLEND.
[ADDED] Client-side constant ALPHA_FUNC_ADD.
[ADDED] Client-side constant ALPHA_FUNC_SUB.
[ADDED] Client-side constant ALPHA_FUNC_MUL.
[ADDED] Client-side constant ALPHA_FUNC_MUL2.
[ADDED] Client-side constant ALPHA_FUNC_TEST.
[ADDED] Client-side constant ALPHA_FUNC_BLEND_TEST.
[FIXED] CEF module Fixed autofocus not being respected.
[FIXED] CEF module Disable keyboard event processing when any HTML UI control is focused.
[FIXED] CEF module Crash caused by out-of-bounds buffer write when resizing the texture buffer.
[ADDED] CEF module Browser.fps field.
[ADDED] CEF module Browser::getActive static method.
[ADDED] CEF module Browser::setActive static method.
[ADDED] CEF module JSPromise class.
[ADDED] Server-side munition field to Daedalus instance
[ADDED] Squirrel function tostring for converting values to string without calling _tostring metamethod.
[ADDED] <debug log_level="level"> optional attribute in config.xml for controlling which g2o logs should be displayed in debug client console & saved to log file.
[ADDED] <log_level>level</log_level> setting in config.xml for controlling which g2o logs should be displayed in server console & saved to log file.
[ADDED] Squirrel foreach is now able to iterate over instance fields.
[ADDED] Squirrel function dump for pretty printing object.
[UPDATED] Client console commands generate will now display a warning if server isn't launched with <debug>true</debug>.
[UPDATED] Printing Vec2 will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Vec2i will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Vec3 will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Vec4 will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Mat3 will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Mat4 will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Quat will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Printing Color will now display it's values pretty formatted, instead of (instance : 0xDEADBEEF).
[UPDATED] Removed minimum interval 50ms limit from shared function setTimer.
[UPDATED] Event handler runtime errors will now display the script path and line where addEventHandler was being called instead of function name & address.
[UPDATED] Squirrel function error will now colorize the error message the same way as runtime error does.
[UPDATED] From now on importing empty .xml file will not prevent server from starting up.
0.3.4.1
[FIXED] Label not supporting line break via\n character.
[FIXED] Setting Sprite.rotation behaving incorrectly.
[FIXED] attackNpcMeleeQueued unnecesarily blocking attacking player due to extending collision range.
0.3.4.2
[FIXED] Client-side function equipItem not properly handling automatic spell slot assignment if slotId optional argument was not given.
[FIXED] Server-side function equipItem not properly handling automatic spell slot assignment if slotId optional argument was not given.
[FIXED] Client-side function useClosestMobQueued not stopping mob interaction properly.
[FIXED] Regression in autopatcher (it stopped working due to issues with cmake minizip-ng dependency).
0.3.4.3
[FIXED] Possible crashes in client npc action queue.
[FIXED] Client-side field Label.color not always updating all of the letters.
[FIXED] Client-side field Label.rotation not properly setting viewport.
[FIXED] Client-side field Sprite.rotation not properly setting viewport.
[ADDED] Client-side function getBloodMode.
0.3.4.4
[FIXED] Setting log_level to trace in config.xml didn't save trace logs to file.
[FIXED] Client-side function useClosestMobQueued potential crashes.
[FIXED] CEF module issues with JS code execution while using Remote Debugger.
[FIXED] CEF module not calling disableControls in every scenario.
[FIXED] CEF module Browser::getSize always returning null.
[FIXED] CEF module Browser::getSizePx always returning null.
[FIXED] CEF module Browser::getUV always returning null.
[FIXED] CEF module crash caused by ANSI characters in gothic path.
[ADDED] Added displaying of total created & active Projector3d objects in onscreendebug command.
[ADDED] Client-side alias command debug for onscreendebug command.
[ADDED] Client-side field Projector3d.fps.
[ADDED] Shared function getEventLastError.
0.3.4.5
[BREAKING-CHANGE][REMOVED] Shared function getEventLastError, because it was unnecessarly added (runtime error handlers will receive all of the required informations).
[FIXED] Squirrel runtime errors not showing up in event handlers.
0.3.4.6
[BREAKING-CHANGE][RENAMED] Squirrel function tostring to rawstring.
[BREAKING-CHANGE][UPDATED] Client-side field Projector3d.visible is now readonly.
[BREAKING-CHANGE][UPDATED] Server-side event onPlayerSpellCast can't be cancelled from now on.
[DEPRECATED] Client-side method Camera::setTargetVob, use Camera.targetVob instead.
[DEPRECATED] Client-side method Camera::setTargetPlayer, use Camera.targetVob instead.
[DEPRECATED] Client-side field Camera.vobMatrix, use Camera.targetVob.matrix instead.
[FIXED] CEF module now differentiate hover and focus states properly.
[FIXED] Shared class Quat default constructor.
[FIXED] Added missing decrement of visible Projector3d count when they are destroyed in the scripts in debug view.
[FIXED] Client-side method Sprite::setPosition not updating vertices position.
[FIXED] Client-side method Sprite::setPositionPx not updating vertices position.
[FIXED] Client-side function chatInputSend blocking camera modes from changing dynamically.
[FIXED] Mob inter game focus names not being displayed.
[UPDATED] Server-side print function will now flush buffer, to properly display message logs in docker.
[UPDATED] Client-side event onPlayerShoot is now cancellable.
[ADDED] Optional multiplayer parameter support --no-sentry.
[ADDED] Optional multiplayer parameter support --no-admin.
[ADDED] Squirrel function getreleasehook.
[ADDED] Squirrel function setreleasehook.
[ADDED] Shared method Packet::writeBlob.
[ADDED] Shared method Packet::readBlob.
[ADDED] Client-side field Camera.targetVob.
[ADDED] Client-side field Camera.targetAlpha.
[ADDED] Client-side classMobInterOptimalPos.
[ADDED] Client-side field MobInterOptimalPos.matrix.
[ADDED] Client-side field MobInterOptimalPos.distance.
[ADDED] Client-side field MobInterOptimalPos.nodeName.
[ADDED] Client-side field MobInter.optimalPositions.
[ADDED] Client-side field MobInter.npcsMax.
[ADDED] Client-side field MobInter.npcsNeeded.
[ADDED] Client-side field MobInter.npcsCurrent.
[ADDED] Client-side class TriggerChangeLevel.
[ADDED] Client-side field TriggerChangeLevel.levelName.
[ADDED] Client-side field TriggerChangeLevel.startVob.
[ADDED] Client-side class TriggerScript.
[ADDED] Client-side field TriggerScript.scriptFunc.
[ADDED] Client-side constant MOVER_STATE_OPEN.
[ADDED] Client-side constant MOVER_STATE_OPENING.
[ADDED] Client-side constant MOVER_STATE_CLOSED.
[ADDED] Client-side constant MOVER_STATE_CLOSING.
[ADDED] Client-side constant MOVER_ANI_TYPE_KEYFRAME.
[ADDED] Client-side constant MOVER_ANI_TYPE_MODEL_ANI.
[ADDED] Client-side constant MOVER_ANI_TYPE_WAYPOINT.
[ADDED] Client-side constant MOVER_BEHAVIOR_2STATE_TOGGLE.
[ADDED] Client-side constant MOVER_BEHAVIOR_2STATE_TRIGGER_CONTROL.
[ADDED] Client-side constant MOVER_BEHAVIOR_2STATE_OPEN_TIMED.
[ADDED] Client-side constant MOVER_BEHAVIOR_NSTATE_LOOP.
[ADDED] Client-side constant MOVER_BEHAVIOR_NSTATE_SINGLE_KEYS.
[ADDED] Client-side constant MOVER_TOUCH_BEHAVIOR_TOGGLE.
[ADDED] Client-side constant MOVER_TOUCH_BEHAVIOR_WAIT.
[ADDED] Client-side constant MOVER_POS_LERP_TYPE_LINEAR.
[ADDED] Client-side constant MOVER_POS_LERP_TYPE_CURVE.
[ADDED] Client-side constant MOVER_SPEED_TYPE_CONST.
[ADDED] Client-side constant MOVER_SPEED_TYPE_SLOW_START_END.
[ADDED] Client-side constant MOVER_SPEED_TYPE_SLOW_START.
[ADDED] Client-side constant MOVER_SPEED_TYPE_SLOW_END.
[ADDED] Client-side constant MOVER_SPEED_TYPE_SEG_SLOW_START_END.
[ADDED] Client-side constant MOVER_SPEED_TYPE_SEG_SLOW_START.
[ADDED] Client-side constant MOVER_SPEED_TYPE_SEG_SLOW_END.
[ADDED] Client-side class Mover.
[ADDED] Client-side field Mover.moverState.
[ADDED] Client-side field Mover.advanceDir.
[ADDED] Client-side field Mover.keyframeList.
[ADDED] Client-side field Mover.moveSpeed.
[ADDED] Client-side field Mover.stayOpenTimeSec.
[ADDED] Client-side field Mover.touchBlockerDamage.
[ADDED] Client-side field Mover.moverLocked.
[ADDED] Client-side field Mover.autoLinkEnabled.
[ADDED] Client-side field Mover.autoRotate.
[ADDED] Client-side field Mover.moverAniType.
[ADDED] Client-side field Mover.moverBehavior.
[ADDED] Client-side field Mover.touchBehavior.
[ADDED] Client-side field Mover.posLerpType.
[ADDED] Client-side field Mover.speedType.
[ADDED] Client-side field Mover.soundOpenStart.
[ADDED] Client-side field Mover.soundOpenEnd.
[ADDED] Client-side field Mover.soundMoving.
[ADDED] Client-side field Mover.soundCloseStart.
[ADDED] Client-side field Mover.soundCloseEnd.
[ADDED] Client-side field Mover.soundLock.
[ADDED] Client-side field Mover.soundUnlock.
[ADDED] Client-side field Mover.soundUseLocked.
[ADDED] Client-side method Mover::moveToKeyframe.
[ADDED] Client-side method Mover::doOpen.
[ADDED] Client-side method Mover::finishedOpening.
[ADDED] Client-side method Mover::doClose.
[ADDED] Client-side method Mover::finishedClosing.
[ADDED] Client-side callback onMoverStart.
[ADDED] Client-side callback onMoverStop.
[ADDED] Client-side callback onMoverStateChange.