Commit graph

28 commits

Author SHA1 Message Date
Randy Heit
ac678ff7b8 Add script/function arrays to ACC
- 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.
2014-07-24 14:41:39 -05:00
Randy Heit
c447410ad8 Don't convert string constants to numbers for #define
- 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.
2014-07-21 23:32:57 -05:00
Braden Obrzut
9ae0c430ba - Moved Sqrt, FixedSqrt, and VectorLength to zspecial.acs.
SVN r3889 (trunk)
2012-10-13 22:56:30 +00:00
Randy Heit
292f20fc46 - Fixed: Wrong opcode for fixedsqrt.
SVN r3887 (trunk)
2012-10-13 13:41:41 +00:00
Randy Heit
7aa5c4d120 - Added sqrt, fixedsqrt, and vectorlength to ACC.
SVN r3884 (trunk)
2012-10-11 03:40:21 +00:00
Randy Heit
72b11c089f - Optimize away PCD_DUP when the preceding instruction is PCD_PUSHBYTE.
- Added NamedScriptWait (PCD_SCRIPTWAITNAMED) and ACS_NamedExecuteWait.

SVN r3755 (trunk)
2012-07-11 03:59:01 +00:00
Randy Heit
5ed47e2aa6 - Updated ACC with current Skulltag definitions. (LSPEC6[DIRECT] has become a more useful
GetInvasionWave/GetInvasionState combination, it has a few more line specials, and there
  are several more spawntypes added to zdefs.acs.

SVN r1552 (trunk)
2009-04-18 01:44:46 +00:00
Randy Heit
e0c76d6e4d - Fixed: When DeleteNode() deleted a node with two children, it freed the name of the
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)
2009-02-19 23:15:11 +00:00
Randy Heit
65ed9f744a - Add ClassifyActor pcode to ACC.
SVN r1309 (trunk)
2008-12-07 02:11:38 +00:00
Randy Heit
01c497ff05 - Added GetPlayerInput() support to ACS.
SVN r1214 (trunk)
2008-09-13 02:45:50 +00:00
Christoph Oelckers
60e1004642 - ACC Changes for morph update.
SVN r988 (trunk)
2008-05-22 19:36:21 +00:00
Christoph Oelckers
0fd2ab850e - ACC psrt of CheckPlayerCamera.
SVN r913 (trunk)
2008-04-15 09:58:39 +00:00
Christoph Oelckers
3a126268a8 - ACC part of ThingCountSector
SVN r829 (trunk)
2008-03-21 12:24:13 +00:00
Christoph Oelckers
dd20e4aaf9 - ACC related parts of SetMugShot addition.
SVN r813 (trunk)
2008-03-19 09:53:57 +00:00
Christoph Oelckers
1a09a82355 - fixed: A_CountdownArg used 0 based indices although all uses of it assumed
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)
2008-03-01 16:59:17 +00:00
Christoph Oelckers
98502afc24 - added UseInventory/UseActorInventory ACS functions.
SVN r636 (trunk)
2007-12-25 08:44:13 +00:00
Randy Heit
d239a69963 Committed ACC changes.
SVN r516 (trunk)
2007-04-22 17:08:17 +00:00
Christoph Oelckers
423dc08319 - Added MF5_PIERCEARMOR flag that allows damaging objects that aren't
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)
2006-10-22 10:32:41 +00:00
Randy Heit
aebf8d6695 - Removed PCD_PRINTCOLOR.
- Updated ReplaceTextures and SectorDamage parameter counts.

SVN r317 (trunk)
2006-09-01 00:47:32 +00:00
Randy Heit
911d10c48d Added PCD_SECTORDAMAGE and PCD_REPLACETEXTURES support.
SVN r287 (trunk)
2006-08-12 02:30:14 +00:00
Christoph Oelckers
1685caa03c August 10, 2006 (Changes by Graf Zahl)
- 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)
2006-08-10 15:28:12 +00:00
Randy Heit
a96324456a - Fixed: Inside an ACS library, you could not use a normal #define to specify
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)
2006-08-03 03:45:26 +00:00
Christoph Oelckers
ae59218dba - Added Grubber's GetPlayerInfo ACS function.
SVN r276 (trunk)
2006-07-30 22:56:20 +00:00
Christoph Oelckers
4c94a58e95 - Generalized Hexen's class-based spawning to be a property of the player class
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)
2006-07-13 10:17:56 +00:00
Christoph Oelckers
4e9a15c606 SVN r241 (trunk) 2006-07-09 20:15:38 +00:00
Christoph Oelckers
25848cd9b3 - Added another set of ACS inventory functions which take a tid for the actor
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)
2006-06-18 15:49:00 +00:00
Christoph Oelckers
31a9e80ba0 - Added a StartConversation special that allows automatic activation of Strife
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)
2006-06-03 12:30:11 +00:00
Randy Heit
56f3ff15d8 Initial commit for ACC.
SVN r8 (trunk)
2006-02-24 05:03:04 +00:00