getNumDigits
.bitlog2
that returned 0 for numbers greater than 15.flag2index
as a replacement for bitlog2
.GetActorVelocityXY
alias for GetActorXYVelocity
.HudSetAlign*
aliases for HudSetAlignment*
.
Replace uses of bitlog2
with flag2index
.
Fixed AngleDiff
outputting wrong results for some angles.
No changes needed.
decorate.acsutils
.RotateVector
no longer multiplies rotation angle by -1.RotateVectorSC
to RotateVectorCS
(different argument order)byte2ang
and ang2byte
RotateVector(x, y, angle)
calls to RotateVector(x, y, -angle)
RotateVectorSC(x, y, s, c)
calls to RotateVectorCS(x, y, c, s)
decorate/changeflag.txt
and copy decorate.acsutils
to your project.PackShorts
format to fix SHORT_MIN
getting turned into 0trunc
and itrunc
returning X - 1 for integer Xs.RotateVectorSC
AnglesToVector
AngleDiff
randint
length2d
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.KeyBound
KeyToggled
KeyToggledAny
PlayerKeyToggled
PlayerKeyToggledAny
getbit
setbit
clrbit
tglbit
notflag
fract
bitlog2
condTrue
condFalse
randbool
randsign
RandomPick
StrIEquals
StrContains
LeftPad
RightPad
StrIsInt
StrIsFixed
SetActivatorToPlayer2
ConsolePlayerInGame
ConsolePlayerName
ConsolePlayerTeam
SetActivatorToConsolePlayer
PlayerIsDeadSpectator
PickRandomDeadSpectator
DeadSpectatorCount
GetPlayerTeam
PickRandomTeamPlayer
TeamPlayerCount
GetUserCVarFixed
ToggleActorInventory
IsServerOnly
IsClientOnly
GetGravityG
SetGravityG
jumpz2height
height2jumpz
TAU
(see http://tauday.com/tau-manifesto)USHORT_MAX
SBYTE_MAX
SBYTE_MIN
UBYTE_MAX
MAX_PLAYERS_ZDOOM
TEAM_NONE
HUDTIC
COLORCODE
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
.IntDiv
lang
ceil
and iceil
incorrectly adding 1 to already round numbers (ceil(1.0) == 2.0
)SetInventory
and SetActorInventory
for multiplayer.ACSUTILS_ERROR_HANDLER
.ceil
.