- Script arrays are semantically identical to map arrays: They have fixed
sizes and can be multidimensional. They can also be initialized, although
this is just syntactic sugar. e.g.
int init_array[2] = { 10, 20 }
produces code identical to:
int init_array[2];
init_array[0] = 10;
init_array[1] = 20;
Script arrays are also implicitly initialized to 0, just like any other
variable in ACS.
- Unlike map arrays, they only exist for the life of the script, and each
script gets its own copy of the array.
- Script arrays exists in a separate space from script variables. I did
not repeat the bullshittery of map arrays here. (I still have no idea what I
was thinking when I designed them that way.)
- Each script and function that uses local arrays is recorded with a new
chunk: SARY for scripts and FARY for functions. The first two bytes are the
script/function number, and the rest of the chunk consists of four-byte
integers describing the size (in ints) of each array used by that
script/function. To determine how many arrays a script/function uses,
take the chunk length, subtract two, and divide by four.
- Fixed: You could not #define a string for use in a library, because it
was converted to a number at definition time and not at use time. This
is no longer the case. Symbolic constants now store the string in its
original form, and they now expand into the string when encountered
instead of their string table index.
GetInvasionWave/GetInvasionState combination, it has a few more line specials, and there
are several more spawntypes added to zdefs.acs.
SVN r1552 (trunk)
node that was moved into the spot of the deleted node, effectively making the
immediate predecessor or successor of the deleted node inaccessible, since it was left
with freed memory as a name.
SVN r1427 (trunk)
it is 1-based.
- added MF5_DONTRIP flag.
- added CheckActorFloorTexture, CheckActorCeilingTexture and
GetActorLightLevel ACS functions.
- added IF_ADDITIVETIME flag to create powerups that add their duration
to the one of the currently active item of the same type.
- fixed: bouncecount wasn't decreased when bouncing on walls.
- Added MF5_ALWAYSRESPAWN and MF5_NEVERRESPAWN flags that selectively
enable or disable monster respawning regardless of skill setting.
- Prettified deprecated flag handling.
SVN r780 (trunk)
affected by armor.
- Added an unfreeze CCMD so that frozen players can be unfrozen for testing.
- Added special death states for projectiles hitting actors.
- Added ACS SetActorPitch/GetActorPitch functions.
- Added cameraheight property for actors.
SVN r359 (trunk)
- Fixed: CheckActorInventory stored the return value in the wrong address
on the ACS stack.
- Fixed: Skin sounds weren't properly restored after a SNDINFO reset.
- Added a more flexible ACS ChangeLevel function. It gets passed a level name
instead of a level number and has several additional options (e.g. changing
skill, starting the map without monsters and clearing the players' inventories. (UNTESTED!)
- Changed Thing_Activate so that passing a tid of 0 activates the calling actor.
- Changed Thing_Remove so that passing a tid of 0 removes the calling actor.
- Added DECORATE parameters to A_Saw.
SVN r283 (trunk)
the size of an array. Now #defines are fully processed inside an import but
are forgotten when the import is popped if they weren't created with
#libdefine.
SVN r280 (trunk)
so now it is available in all games.
- Replaced the call to A_FlameSnd in the HereticPlayer's burn death sequence
with A_FireScream and defined *burndeath for Heretic.
- Added Grubber's custom player class support.
SVN r250 (trunk)
and aren't limited to the script's activator.
- Added GetSectorLightLevel(tag), GetActorCeilingZ(tid) and
SetActorPosition(tid, x, y, z, fog) ACS functions.
- Fixed: First initialization of camera textures should not mark the rendered
lines as mapped.
SVN r198 (trunk)
dialogs.
- Added Thing_Raise special that allows Arch-Vile like resurrections from scripts
or DECORATE states.
- Added a RadiusDamageFactor property for actors. This replaces the hard coded
factor of 0.25 for Hexen's players.
- Added new SpawnProjectile function to ACS. It's the same as Thing_Projectile2
but the projectile is specified by name, not spawn ID.
- Added MAPINFO option to set the compatibility flags. If this is done these
explicit settings will take precedence over the compatflags CVAR.
SVN r164 (trunk)