Editing
ACS constants
From Eternity Wiki
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
''This page contains text copied from the ZDoom wiki.'' Constants are values that are always the same when executed. An example of a constant would be 1, "Hello", etc. Constants can also be #define'd. The syntax of defining a constant is as follows #define NAME VALUE ==Numbers== These constants can be used as values and also as script numbers. For example: #define SNUM 1 #define VAL 3131 script SNUM (void) { int x = VAL; } Here SNUM would be replaced with '''1''' and VAL would be replaced with '''3131'''. This is useful for a constant that is used a lot. If something like the spawn numbers were to be changed, you'd only need to change the constant for the defined spawn numbers. ==Use of operators== Constants can be used to define other constants. For example: #define WEAPON_FIST 0 #define WEAPON_CHAINSAW WEAPON_FIST + 1 script "Test" Enter { print(i:WEAPON_FIST); print(i:WEAPON_CHAINSAW); } This prints the values '''0''' and '''1''' as messages. You can also make more complex operations. #define HUD_WIDTH 1024 #define HUD_HEIGHT 768 #define HUD_FWIDTH HUD_WIDTH * 1.0 #define HUD_FCENTERX HUD_FWIDTH / 2 #define HUD_FHEIGHT HUD_HEIGHT * 1.0 #define HUD_FCENTERY HUD_FHEIGHT / 2 script "Test2" Enter { print(f:HUD_FWIDTH); print(i:HUD_HEIGHT); } This logs the values '''1024.0''' and '''768''' to the console. ==String Constants== You can define string constants as well. First example: script 1 Open { print(s:"err"); print(s:"err"); } Second example: #define STR_err "err" script 1 Open { print(s:STR_err); print(s:STR_err); } Both examples produce identical output. ==Library Constants== You can also place constants in your [[ACS libraries|Libraries]]. This can be especially useful when, say, applying a [[TID]] to the player, or numbers you may want handy for [[ACS functions|custom functions]]. The syntax is much the same as a normal constant, with one change. #libdefine NAME VALUE Here is an example of some other useful constants. These constants provide quick shortcuts to cardinal directions for [[Polyobject|PolyObjects]] and [[SetActorAngle]]. #libdefine POLY_NORTH 64 #libdefine POLY_SOUTH 192 #libdefine POLY_WEST 128 #libdefine POLY_EAST 0 #libdefine ACTOR_FACE_NORTH 0.25 #libdefine ACTOR_FACE_WEST 0.5 #libdefine ACTOR_FACE_EAST 1.0 #libdefine ACTOR_FACE_SOUTH 0.75 [[category:ACS]] [[category:Editing reference]]
Summary:
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see
Eternity Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Log in
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Search
Tools
What links here
Related changes
Special pages
Page information