This is an old revision of the document!
RotateVectorSC to RotateVectorCSRotateVectorSC(x, y, s, c) calls to RotateVectorCS(x, y, c, s)PackShorts format to fix SHORT_MIN getting turned into 0trunc and itrunc returning X - 1 for integer Xs.RotateVectorSCAnglesToVectorAngleDiffrandintlength2d and length3d aliasesacsutils_noerrors is 1.HudSetTextOrigin with HudSetAlignment and HUD_TEXTORIGIN_* with HUD_ALIGN_*.PackShorts output in database or cvars, copy broken UnpackShorts implementation from previous version of ACSUtils and implement backwards compatibility.This is a hotfix release to fix broken 3D HudMessages in HUD Library.
No changes needed.
FIXED_MIN and FIXED_MAX constants for BCSUtils.No changes needed.
This release breaks backwards compatibility. Be sure to update your code accordingly.
acsutils_noerrors cvar. ACSUtilsErrorHandler is ignored.StrRepeat having wrong argument type.HasColorCodes and SkipColorCodeAt interpreting literal "\\c" as a colorcode beginning.rad2deg and deg2rad should now be more accurate and faster.IsAlive now checks that the activator is in game.KeyBoundKeyToggledKeyToggledAnyPlayerKeyToggledPlayerKeyToggledAnygetbitsetbitclrbittglbitnotflagfractbitlog2condTruecondFalserandboolrandsignRandomPickStrIEqualsStrContainsLeftPadRightPadStrIsIntStrIsFixedSetActivatorToPlayer2ConsolePlayerInGameConsolePlayerNameConsolePlayerTeamSetActivatorToConsolePlayerPlayerIsDeadSpectatorPickRandomDeadSpectatorDeadSpectatorCountGetPlayerTeamPickRandomTeamPlayerTeamPlayerCountGetUserCVarFixedToggleActorInventoryIsServerOnlyIsClientOnlyGetGravityGSetGravityGjumpz2heightheight2jumpzTAU (see http://tauday.com/tau-manifesto)USHORT_MAXSBYTE_MAXSBYTE_MINUBYTE_MAXMAX_PLAYERS_ZDOOMTEAM_NONEHUDTICCOLORCODE
1. Remove ACSUTILS_HUDLIB_SAVEDSTATES and ACSUtilsErrorHandler from your project.
2. Replace any uses of removed functions according to the table:
| Name | Original | Replacement |
|---|---|---|
| AngleDistCCW | AngleDistCCW(a, b) | abs(a - b) |
| AngleDistCW | AngleDistCW(a, b) | (1.0 - abs(a - b)) |
| itof | itof(x) | (x << 16) |
| lang | lang(s) | StrParam(l:s) |
| byte2ang | byte2ang(x) | (x * 256) |
| ang2byte | ang2byte(x) | (x / 256) |
| GetCVarPercentage | GetCVarPercentage(name) | ((GetCVar(name)<<16) / 100) |
3. Rename the following functions:
| Original name | New name |
|---|---|
| GetActorCurrentSpeed | GetActorVelocity |
| GetActorCurrentSpeed2D | GetActorXYVelocity |
| StrTimes | StrRepeat |
| StrMidRange | StrSlice |
| HasRoom | HasRoomFor |
| StatusBarShown | StatusBarVisible |
| TakeAllInventory | TakeMaxInventory |
| TakeAllActorInventory | TakeMaxActorInventory |
4. Replace all uses of SwapActivator and RestoreActivator with ACS_NamedExecuteWithResult.
5. Recompile all script objects linked to ACSUtils to suppress warnings about renamed internal arrays.
This is a bugfix release. It now uses the MIT license.
GetCVarFixed crashing ZDoom when trying to access a nonexistent CVar. Now it returns 0.mod.#libdefine.ChangeFlag now support short flag names (e.g. "NOAUTOFIRE" instead of "WEAPON.NOAUTOFIRE"). Update decorate/changeflag.txt to use this. (Thanks to The Zombie Killer.)GetAspectRatio updated to a newer version.decorate/changeflag.txt.SendString!
IsZandronum212()GetAspectRatio() now triggers a ProgramError when used serverside.ChangeFlag not working with INVENTORY.NOTELEPORTFREEZE.ACSUtils_ prefix.ScreenWidth(), ScreenHeight(), and AspectRatio().ScreenWidth() and ScreenHeight() with ZDoom functions GetScreenWidth and GetScreenHeight.AspectRatio() with IntDiv(GetScreenWidth(), GetScreenHeight()).Widescreen support!
GetAspectRatio().ACSUtils is now distributed not as a collection of files, bu as a single file (generated using acsinclude).
swap().atoi() and atof() now return INT_MAX multiplied by sign instead of 0 on overflow.ftoi().ftoi() with floor().atoi() and atof().Fixed duplicate actor warnings in changeflag.txt
No changes needed.
ChangeFlag, IsGZDoom, and improved cursor API! Thanks to The Zombie Killer for allowing ACS-X technologies to be included into ACSUtils!
ChangeFlag! (implementation from ACS-X)CursorMotionX() and CursorMotionY() and changed CursorDeltaX() and CursorDeltaY() to return the actual delta.EnableCursorWrapX() and EnableCursorWrapY().IsOpenGL() now does not return true in ZDoom with vid_renderer 1.ClearHudMessageBold().CusrorDeltaX/Y and need them to return non-zero values at the edges of the screen, replace their uses with CursorMotionX/Y.Fixed a very dumb bug in fixed-point logarithms that I made when adding them to ACSUtils.
New logarithm functions and proper IntDiv by TechnoDoomed1. Thank you!
IntDiv now handles any numbers whose ratio is less than 32768.SyncSpeed().ACSUtilsVersion().No changes needed.
This is a bugfix release.
GetCVarFixed to a_GetCVarFixed for GDCC compatibility.HudSetCameraAngles no longer inverts the pitch.StrIsAscii storing an integer in a str variable. GetCVarFixed with a_GetCVarFixed.HudSetCameraAngles.New features!
IsOpenGL() now emits a ProgramError when used serverside.IsOpenGL() is now very slightly more accurate.IsServer() killing the calling script in ZDoom.npo2().mod().cond().sign() to sgn() to reduce name clashes.#define ACSUTILS_HUDLIB_SAVEDSTATES 16 ACSUtils settings before #include “acsutils.acs”. You can change the amount of saved states if needed.sign() with sgn().IsOpenGL().HudSetProjectionMode(HUD_PROJECTION_YSHEARING).HudSetProjectionMode(HUD_PROJECTION_3D) to fix the ProgramError about using IsOpenGL() serverside.This is a maintenance release that enables ACSUtils to be used in AOW-scale projects.
IsServer() returning false in singleplayer.IsServer().This is a bugfix release.
IsServer() function.StrAddInt(), StrAddFixed(), and StrAddChar() functions.IsOpenGL() now takes gl_nogl into account.ActorName() to GetActorName() to reduce name clashes.ParseFixed() returning an error on integers.PARSENUMBER_BADFORMAT and PARSENUMBER_OVERFLOW having the same value.ActorName() with GetActorName().This is a release that overcomes the 256 functions per compiled file limitation.
#nocompact to fix ZDoom crashes when there are more than 256 functions in a compiled file.No changes needed.
#libdefine instead of #define, making them usable in map scripts.GiveMaxInventory, GiveMaxActorInventory, TakeAllInventory, TakeAllActorInventory.IntDivlangceil and iceil incorrectly adding 1 to already round numbers (ceil(1.0) == 2.0)SetInventory and SetActorInventory for multiplayer.ACSUTILS_ERROR_HANDLER.ceil.