Commit graph

226 commits

Author SHA1 Message Date
Randy Heit
26c17dc697 - Added ACS support for setting HUD messages alpha levels. This is an additional optional
parameter added to the end of the HudMessage command's existing parameter lists. So for
  HUDMSG_PLAIN, it comes after the hold time. For HUDMSG_FADEOUT and HUDMSG_TYPEONE, it comes
  after the fade time. And for HUDMSG_FADEINOUT, it comes after the out time.
  - Alpha is a fixed point number between 0.0 and 1.0.
  - Example:
    Without alpha (unchanged from before):
      HudMessage(s:"Some text", HUDMSG_PLAIN, 0, CR_UNTRANSLATED, 0.5, 0.5, 3.0);
    With alpha (alpha is added to the end):
      HudMessage(s:"Some text", HUDMSG_PLAIN, 0, CR_UNTRANSLATED, 0.5, 0.5, 3.0, 0.5 /* this is the alpha */);

SVN r3825 (trunk)
2012-08-12 23:24:41 +00:00
Randy Heit
c9b480e0ec - Added lowlevel support for custom alphas for HUD messages.
- Added HUDMSG_ADDBLEND to draw HUD messages with additive blending.

SVN r3824 (trunk)
2012-08-12 23:14:31 +00:00
Randy Heit
73552f0365 - Added HUD message visibility flags, which are ORed into the type field:
* HUDMSG_NOTWITH3DVIEW : This message does not appear when the 3D view is active.
  * HUDMSG_NOTWITHFULLMAP : This message does not appear when the fullscreen automap is active.
  * HUDMSG_NOTWITHOVERLAYMAP : This message does not appear when the overlay automap is active.
  These flags may be combined, so for example: HUDMSG_NOTWITHFULLMAP | HUDMSG_NOTWITHOVERLAYMAP
  would prevent the message from appearing if any form of automap is active.

- Added HUD message layers, which are ORed into the type field:
  * HUDMSG_LAYER_OVERHUD : This is the default and standard behavior. The message appear on
    top of most HUD elements. This definition is just included for completeness' sake; you
    don't need to explicitly use it.
  * HUDMSG_LAYER_UNDERHUD : The message appears underneath other HUD elements, such as the status bar.
  * HUDMSG_LAYER_OVERMAP : The message appears on top of the fullscreen automap. At the moment,
    this layer is functionally equivalent to using the flags HUDMSG_NOTWITH3DVIEW | HUDMSG_NOTWITHOVERLAYMAP.
    However, if Blzut3 decides to implement support for drawing the automap permanently on a
    second screen, messages on this layer will move to that screen with the automap and be permanently
    visible as long as the map is visible on that other screen.
  These are not flags, so for example HUDMSG_LAYER_UNDERHUD | HUDMSG_LAYER_OVERHUD is not valid.

SVN r3821 (trunk)
2012-08-12 22:24:15 +00:00
Randy Heit
8c465df44e - Added ACS function IsTIDUsed(tid): It returns whether any actors using the given TID exist. This
is more efficient than ThingCount(tid, T_NONE), because it only needs to check for one actor
  with the TID and not all of them. It also makes no distinction between dead things and live
  things like ThingCount does.
- Added ACS function UniqueTID(tid, limit): It returns a new TID that is not currently used by
  any actors. It has two modes of operation. If tid is non-zero, then it checks TIDs one-by-one
  starting at the given tid until if finds a free one. If tid is zero, then it returns a completely
  random TID. If limit is non-zero, then it will only check that many times for a free TID, so
  it might not find a free one. If no free TID is found, 0 is returned. If limit is zero, then
  the search is effectively unlimited.

SVN r3798 (trunk)
2012-08-01 03:12:43 +00:00
Randy Heit
0aee56be15 - Fixed typo in r3795's change to GetActorZ and a potential null pointer dereference.
SVN r3796 (trunk)
2012-07-30 00:50:19 +00:00
Randy Heit
9c0b0dc774 - Add the bob offset to the missiles spawned by P_SpawnMissile(), P_SpawnMissileAngle(), P_SpawnMissileAngleSpeed(), A_MissileAttack, A_ComboAttack, A_BasicAttack, A_CustomMissile, A_CustomComboAttack, A_ThrowGrenade, A_SpawnDebris, and A_Burst.
- Add the bob offset to the value returned by GetActorZ.

SVN r3795 (trunk)
2012-07-30 00:05:24 +00:00
Randy Heit
1c1957085f - Enumerate ZDaemon's ACSF_ values.
SVN r3757 (trunk)
2012-07-14 02:01:08 +00:00
Randy Heit
616672237d - Added PCD_SCRIPTWAITNAMED p-code.
SVN r3756 (trunk)
2012-07-11 04:00:04 +00:00
Randy Heit
95b9eae242 - Fixed: PCD_SCRIPTWAITDIRECT had different semantics than PCD_SCRIPTWAIT.
SVN r3754 (trunk)
2012-07-11 03:14:08 +00:00
Braden Obrzut
72f1a37ec4 - Fixed: ACS function pointer instructions need to call GetFunction on the tagged module instead of the active behavior.
SVN r3732 (trunk)
2012-07-03 20:17:31 +00:00
Braden Obrzut
439b60ae68 - Added support for Eternity Engine's function pointer ACS instructions. (Note that an alternative ACS compiler is necessary to use these instructions properly.)
SVN r3731 (trunk)
2012-07-03 01:24:52 +00:00
Randy Heit
7d3d09e523 - Quadruple ACS runaway limit to 2 million instructions.
SVN r3697 (trunk)
2012-06-17 04:06:52 +00:00
Braden Obrzut
af30e933e4 - Fixed: Direct instructions need to tag their strings before lookup.
SVN r3686 (trunk)
2012-06-11 21:46:47 +00:00
Randy Heit
086d0a797e - Added AActor::SetFriendPlayer() to make setting FriendPlayer cleaner to read when doing it with
a player_t pointer.

SVN r3681 (trunk)
2012-06-09 04:15:56 +00:00
Christoph Oelckers
9c4a565366 - fixed: Inventory clearing after changing a level with the ACS ChangeLevel command did not properly clear the inventory. This will now use the same code as the ACS ClearInventory command.
SVN r3673 (trunk)
2012-05-31 09:46:07 +00:00
Randy Heit
3523e4f24a - Fixed: SectorDamage did not work with 3D floors.
SVN r3594 (trunk)
2012-04-26 02:35:02 +00:00
Randy Heit
142a15b9c6 - Fixed: The length of the SFLG chunk was used incorrectly, resulting in erroneous flag setting
if such a chunk was present.

SVN r3593 (trunk)
2012-04-26 02:03:43 +00:00
Christoph Oelckers
10c783dde2 - changed ACS parameter truncation for Hexen so that it's only done for ACS_Old format.
SVN r3497 (trunk)
2012-03-31 20:53:01 +00:00
Randy Heit
ab60c1afcc - Changed CheckActorFloor/CeilingTexture to only check 3D floors that exist and are solid.
SVN r3459 (trunk)
2012-03-20 03:00:33 +00:00
Randy Heit
e93029a42a - Make CheckActorFloorTexture and CheckActorCeilingTexture aware of 3D-floors.
SVN r3454 (trunk)
2012-03-18 02:44:46 +00:00
Randy Heit
6f12a6e8bb - Fix signed/unsigned mismatch warned by GCC.
SVN r3450 (trunk)
2012-03-17 03:10:19 +00:00
Randy Heit
977b2caa30 - Applied a modified version of FDARI's patch to prevent giving health to dead things:
* P_GiveBody() now takes a max parameter so that it can also do the bulk of the work
    AHealth::TryPickup() previously did.
  * Setting an actor's health to 0 or below with SetActorProperty will now kill the actor
    properly.

SVN r3438 (trunk)
2012-03-15 21:21:00 +00:00
Randy Heit
6290ea4fcb - Added setactivation command for compatibility.cpp to fix the gear boxes on hexdd.wad, map54,
which should be set for player uses activation but are not.
- Added some developer mode messages for setlinespecial and clearlinespecial.

SVN r3437 (trunk)
2012-03-15 20:33:33 +00:00
Randy Heit
ba2e8b2461 - Fixed: Old-style ACS has the string table record offsets from the start of the object file to
the strings, not from the start of the string table, so UnescapeStringTable() needs to be
  told where the offsets are based.

SVN r3436 (trunk)
2012-03-15 19:08:19 +00:00
Randy Heit
58f7e72d1b - Restored savegame compatibility that was removed in r3427.
SVN r3435 (trunk)
2012-03-13 02:43:24 +00:00
Christoph Oelckers
e4880d162f - added Xaser's submission for accessing accuracy and stamina from DECORATE and ACS.
- added DECORATE properties for accuracy and stamina.
- Since these changes move properties from player_t to AActor all savegame compatibility code was removed and the min. savegame version bumped.


SVN r3427 (trunk)
2012-03-11 09:08:35 +00:00
Randy Heit
51e66acc6b - Fixed: UnescapeStringTable() used the wrong position in the script file for Hexen-style ACS.
SVN r3424 (trunk)
2012-03-11 03:47:45 +00:00
Randy Heit
5564b99d3a - Fixed: UseInventory from ACS should ignore the totally frozen property.
SVN r3415 (trunk)
2012-03-09 01:56:37 +00:00
Randy Heit
ac3b805dd9 - Fixed: ACS's ClearInventory was not equipped to handle items that destroy other items when
destroyed. For example, if a weapon has a sister weapon immediately after it in the inventory
  list, they would both be destroyed by the call to destroy the weapon, and ClearInventory
  would fail to find anything beyond the sister weapon in the inventory list.

SVN r3413 (trunk)
2012-03-09 01:19:02 +00:00
Randy Heit
e5e1ee00a6 - Handle ACS string escape sequences at load time rather than print time.
- Fixed: FBehavior::FindStringInChunk() was not big-endian safe.
- Fixed: FBehavior::LookupString() was not big-endian safe.

SVN r3406 (trunk)
2012-03-08 21:37:34 +00:00
Randy Heit
5f88d2c9f0 - All ACS debugging messages are now aware of named scripts.
- Identify script types by name in FBehavior::StaticStartTypedScripts().

SVN r3405 (trunk)
2012-03-08 20:48:53 +00:00
Randy Heit
f2f9bd800d - Fixed: When processing the SFLG and SVCT chunks in ACS objects, the script number must be
read as a signed integer.

SVN r3402 (trunk)
2012-03-04 03:18:06 +00:00
Randy Heit
1e21ebad5d - Let puke and pukename take up to four script parameters.
- Pass ACS_ExecuteWithResult's fifth argument as a fourth script parameter.
- Simplify P_StartScript()'s usage.

SVN r3394 (trunk)
2012-02-26 03:36:05 +00:00
Randy Heit
7106c06811 - Allow for ACS_NamedExecute and friends to be used with SetThingSpecial.
SVN r3389 (trunk)
2012-02-26 02:25:33 +00:00
Randy Heit
67bbc0f95c - Print named script's names for the scriptstat console command.
SVN r3374 (trunk)
2012-02-21 19:27:30 +00:00
Randy Heit
cbf7162e16 - Allow for using ACS_NamedExecute and friends with SetLineSpecial.
SVN r3371 (trunk)
2012-02-18 02:17:33 +00:00
Randy Heit
4195993023 - Make deferred scripts work with named scripts.
- Added ACS_Named* function variants of the ACS_* specials that take script names instead of
  numbers. As these are functions and not specials, they can only be used from inside ACS.

SVN r3363 (trunk)
2012-02-16 21:23:03 +00:00
Randy Heit
9ffb4c40ac - Added support for loading named ACS scripts. You can't run them directly at the moment, but
you can still use them for automatically executed script types (like open and enter).
- Change the DACSThinker::RunningScripts array into a TMap so that it can catalog the new range
  of ACS scripts (up to 32767).


SVN r3359 (trunk)
2012-02-15 02:18:30 +00:00
Randy Heit
cd150bd170 - Fixed: Forgot to divide the length of the SVCT chunks in ACS objects by 4 to get the actual
number of scripts to set VarCount for.

SVN r3352 (trunk)
2012-02-11 01:04:42 +00:00
Randy Heit
83fc6cf53a - Fixed: Hexen's ACS implementation truncates all line specials to bytes, so we need to do the
same for maps defined with Hexen-style MAPINFOs.

SVN r3336 (trunk)
2012-01-21 23:47:13 +00:00
Randy Heit
243197bfd4 - Fixed: Setting an actor's score with ACS also modified its nametag.
SVN r3335 (trunk)
2012-01-21 23:16:35 +00:00
Braden Obrzut
f6ddad95b7 - Set the CMAKE_MODULE_DIR so that we can use find_package instead of include for FluidSynth.
- Fixed: FadeTo() accepted parameters out of range.
- Fixed: "Enable autosaves" menu option didn't handle all possible values of disableautosave.

SVN r3280 (trunk)
2011-08-16 21:59:35 +00:00
Christoph Oelckers
163301dcd5 - took all includes of farchive.h out of headers. This file will have to be included explicitly in each source file that needs it.
SVN r3259 (trunk)
2011-07-06 14:20:54 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +00:00
Christoph Oelckers
5d65ab6e6c - cleaned up setPointer interface.
- ZDoom part of setPointer/setActivator, submitted by FDARI.


SVN r3230 (trunk)
2011-06-13 10:22:47 +00:00
Christoph Oelckers
74ad869e62 - ZDoom implementation of strcpy, submitted by FDARI.
SVN r3227 (trunk)
2011-06-13 09:14:02 +00:00
Braden Obrzut
400442ebc1 - Added ACSF_AnnouncerSound from Skulltag to EACSFunctions.
SVN r3209 (trunk)
2011-05-16 23:47:58 +00:00
Christoph Oelckers
4264b05e79 - added FDARI's ACS savestring submission.
SVN r3204 (trunk)
2011-05-11 22:29:49 +00:00
Randy Heit
e36dc34d8f - Fixed: When loading FBehavior::SerializeVarSet() would only zero the variables if there were
non-zero variables to load. This was fine when all variables defaulted to zero, but map variables
  have been able to default to something else for some time now. This meant that if all map
  variables were zero when the game was saved, they would be restored to their default values
  when the game was loaded.

SVN r3190 (trunk)
2011-04-24 17:16:13 +00:00
Randy Heit
d3b44a4172 - Fix errors/warnings from MinGW 4.5.0 (tdm-1).
- Disable the missing field initializers warnings that -Wextra produces from GCC.

SVN r3173 (trunk)
2011-03-29 05:20:33 +00:00