Table of Contents

Changelog

1.8.2

Porting guide

Replace uses of bitlog2 with flag2index.

1.8.1

Fixed AngleDiff outputting wrong results for some angles.

Porting guide

No changes needed.

1.8

Porting guide

1.7

Porting guide

  1. Replace length2d and length3d with VectorLength and VectorLength3D respectively.
  2. Replace HudSetTextOrigin with HudSetAlignment and HUD_TEXTORIGIN_* with HUD_ALIGN_*.
  3. If you store PackShorts output in database or cvars, copy broken UnpackShorts implementation from previous version of ACSUtils and implement backwards compatibility.

1.6.2

This is a hotfix release to fix broken 3D HudMessages in HUD Library.

Porting guide

No changes needed.

1.6.1

Porting guide

No changes needed.

1.6.0

This release breaks backwards compatibility. Be sure to update your code accordingly.

Porting guide

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.

1.5.1

This is a bugfix release. It now uses the MIT license.

Porting guide

  1. Update decorate/changeflag.txt.
  2. If you are using additive HudMessages in HUD Library, make sure that none of the non-additive messages in your mod became additive.

1.5

SendString!

Porting guide

  1. Replace all uses of ScreenWidth() and ScreenHeight() with ZDoom functions GetScreenWidth and GetScreenHeight.
  2. Replace all uses of AspectRatio() with IntDiv(GetScreenWidth(), GetScreenHeight()).

1.4

Widescreen support!

Porting guide

1.3.2

ACSUtils is now distributed not as a collection of files, bu as a single file (generated using acsinclude).

Porting guide

  1. Remove all ACSUtils files from your project, except acsutils.acs. acsutils.acs now contains the whole ACSUtils.
  2. Replace all uses of ftoi() with floor().
  3. Review all uses of atoi() and atof().

1.3.1

Fixed duplicate actor warnings in changeflag.txt

Porting guide

No changes needed.

1.3

ChangeFlag, IsGZDoom, and improved cursor API! Thanks to The Zombie Killer for allowing ACS-X technologies to be included into ACSUtils!

Porting guide

1.2.2.1

Fixed a very dumb bug in fixed-point logarithms that I made when adding them to ACSUtils.

1.2.2

New logarithm functions and proper IntDiv by TechnoDoomed1. Thank you!

Porting guide

No changes needed.

1.2.1

This is a bugfix release.

Porting guide

  1. Replace all uses of GetCVarFixed with a_GetCVarFixed.
  2. Invert the second argument to HudSetCameraAngles.

1.2

New features!

Porting guide

  1. Add #define ACSUTILS_HUDLIB_SAVEDSTATES 16 ACSUtils settings before #include “acsutils.acs”. You can change the amount of saved states if needed.
  2. Replace all uses of sign() with sgn().
  3. Review all uses of IsOpenGL().
  4. If you require hudlib to use true 3d projection in software, use HudSetProjectionMode(HUD_PROJECTION_YSHEARING).
  5. If you are using 3D hudmessages serverside, use HudSetProjectionMode(HUD_PROJECTION_3D) to fix the ProgramError about using IsOpenGL() serverside.

1.1.3

This is a maintenance release that enables ACSUtils to be used in AOW-scale projects.

Porting guide

  1. Review all uses of IsServer().

1.1.2

This is a bugfix release.

Porting guide

  1. Replace all uses of ActorName() with GetActorName().
  2. Review all code that relies on number parsing to see whether it's affected by the bug fixes.

1.1.1

This is a release that overcomes the 256 functions per compiled file limitation.

Porting guide

No changes needed.

1.1

Porting guide

  1. Replace your error handling script with a function and remove ACSUTILS_ERROR_HANDLER.
  2. Review any uses of ceil.