Commit graph

626 commits

Author SHA1 Message Date
Randy Heit
1f723c10ae Add CF_INTERPVIEW for players.
- Added CF_INTERPVIEW flag for players. A_SetPitch/A_SetAngle and the
  similar ACS APROPs set this when changing an angle. This forces the
  renderer to interpolate the view angles instead of updating with the
  latest mouse positions. The effect lasts one tick.
2013-10-09 21:50:24 -05:00
Randy Heit
fc843c28ba Merge branch 'maint' 2013-09-18 22:06:31 -05:00
Randy Heit
a7a7d5d6b3 Add missing prantheses for A_CustomPunch's puffFlags calculation
- Fixed: Need parentheses for precedence when setting puffFlags in
  A_CustomPunch. Otherwise, it's completely broken.
2013-09-18 21:25:00 -05:00
Randy Heit
2ab3974752 Add a PSymbolConstString class
- Constants can be strings, but the existing PSymbolConst couldn't handle
  them. The old PSymbolConst is now PSymbolConstNumeric, and the new
  PSymbolConst is a now a baseclass for it and PSymbolConstString.
2013-09-10 22:01:00 -05:00
Randy Heit
6584819d01 Use PType for typing things in PSymbolConst. 2013-09-07 20:35:46 -05:00
Christoph Oelckers
251cdacf26 Merge branch 'master' into scripting
Conflicts:
	src/g_shared/a_randomspawner.cpp
	src/g_strife/a_strifeweapons.cpp
	src/thingdef/thingdef_parse.cpp
	wadsrc/static/actors/constants.txt
2013-09-03 09:01:28 +02:00
Randy Heit
33ee8f9fef Merge branch 'maint' 2013-08-29 22:27:49 -05:00
Randy Heit
7143ae49e1 Fixed: CheckPlayerCamera not sync safe
-  If a player is spying through another player, CheckPlayerCamera will
   return the TID of the player you are "spying", but as coopspy isn't a
   net command, this wont be reflected by all nodes. So to fix this,
   CheckPlayerCamera now returns -1 if a player's camera is that of any
   player at all. (thanks edward850)
2013-08-29 21:45:37 -05:00
Randy Heit
aac0de3e48 Fixed: Make A_SetTics work with weapons.
- When A_SetTics is called from a weapon, we need to set the tics for the
  psprite instead of the actor itself.
2013-08-29 21:40:01 -05:00
Braden Obrzut
0fb37ca5f1 Merge branch 'maint' 2013-08-27 20:41:10 -04:00
Braden Obrzut
5079d6c505 - Fixed: clang 32-bit compile (I hear it still doesn't run though).
- Applied edward's patch to remove boolean increment.
2013-08-27 20:28:38 -04:00
Randy Heit
956d754804 DECORATE cleanup
- Remove some ExpVal stuff that wasn't used.
2013-08-23 22:17:08 -05:00
Randy Heit
2f7183b937 Use PField instead of PSymbolVariable for DECORATE expressions
- The type systems used by PField and FxExpression are completely
  incompatible, but I think I got the differences taken care of as far
  as ParseNativeVariable(), ParseUserVariable(), and FxClassMember are
  concerned.
- Support for declaring native bool variables has been removed for the time
  being. It wasn't used anyway.
- Removed PSymbolVariable.
2013-08-23 22:02:51 -05:00
Randy Heit
a69089ffd7 Change disassembly dumps to be controlled from one spot
- Instead of changing three places to turn disassembly dumps on and off,
  do it with just one place. As a side effect, this now handles the case
  where the dump file can't be opened.
2013-08-23 21:43:56 -05:00
Randy Heit
3f6c3fa927 Remove unused GetVariableValue() 2013-08-21 23:19:46 -05:00
Randy Heit
d798c7896c Remove FxGlobalVariable class 2013-08-21 23:01:41 -05:00
Randy Heit
01822c002f Use PField instead of PSymbolVariable for A_SetUserVar/Array 2013-08-21 22:58:12 -05:00
Randy Heit
6198c000af Fix A_DropItem from merge 2013-08-21 22:31:40 -05:00
Christoph Oelckers
3e4678765b Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/thingdef/thingdef_codeptr.cpp
2013-08-18 12:18:59 +02:00
Randy Heit
5fe5fe7c51 Merge branch 'scripting' of github.com:rheit/zdoom into scripting 2013-08-14 22:15:28 -05:00
Randy Heit
cf87d0f1e9 Use PFunction instead of PSymbolActionFunction in DECORATE parser 2013-08-14 22:00:16 -05:00
Christoph Oelckers
7a87e08107 - added MF7_ALWAYSTELEFRAG flag that causes an actor to be telefragged by everything that teleports into the same place. 2013-08-13 21:01:14 +02:00
Christoph Oelckers
61c94648dc - added ACS CheckFlag function. 2013-08-12 22:38:52 +02:00
Christoph Oelckers
aa03609b69 - added IF_TOSSED inventory flag. 2013-08-12 21:00:23 +02:00
Christoph Oelckers
be1a00c537 Merge branch 'maint' 2013-08-12 20:42:21 +02:00
Christoph Oelckers
e14590d8ce - moved NOTELESTOMP to flags7. When committing I was accidentally on maint instead of master and in master flags6 was already full. 2013-08-12 20:41:33 +02:00
Christoph Oelckers
44a1b94ad9 - added MF6_NOTELESTOMP flag that prevents an actor from telefragging under all possible circumstances. 2013-08-12 20:23:54 +02:00
Christoph Oelckers
f2c250d35d - flags7 variable added to AActor. 2013-08-12 20:09:21 +02:00
Christoph Oelckers
2bcc5cd7cc Merge branch 'maint' 2013-08-12 09:14:18 +02:00
Christoph Oelckers
ecfe67dd78 - removed weirdness from Powerup.Strength property that was specifically tailored to its use on PowerInvisibility and made its use problematic elsewhere. 2013-08-12 09:13:55 +02:00
Christoph Oelckers
fabf8272e6 Merge branch 'maint' 2013-08-11 21:04:17 +02:00
Christoph Oelckers
c0174ea7cd - Added A_DropItem for DECORATE. 2013-08-11 20:48:08 +02:00
Christoph Oelckers
c8f0df44f2 Merge branch 'maint'
Conflicts:
	src/am_map.cpp
2013-08-10 09:41:50 +02:00
Christoph Oelckers
25ec3fb8fe - added MF6_RELATIVETOFLOOR flag. 2013-08-10 09:32:55 +02:00
Christoph Oelckers
211d293002 - added MF6_NOTONAUTOMAP flag to exclude things from being shown with the scanner powerup. The IDDT cheat will not be affected by this. 2013-08-10 08:53:37 +02:00
Christoph Oelckers
9c12c03684 Merge branch 'maint' 2013-08-09 20:36:08 +02:00
Christoph Oelckers
a78ad3188b - added MF5_NOFORWARDFALL flag to prevent attacks from making its victim fall forward randomly. 2013-08-09 20:20:23 +02:00
Christoph Oelckers
bba092cc0b Merge branch 'master' into scripting
Conflicts:
	src/d_player.h
	src/g_doom/a_archvile.cpp
	src/thingdef/thingdef.h
	src/thingdef/thingdef_properties.cpp
2013-08-09 13:03:28 +02:00
Christoph Oelckers
21bce3b0c4 Merge branch 'maint' 2013-08-09 12:51:26 +02:00
Christoph Oelckers
34b71baad1 - added Player.Aircapacity property which is used as a multiplier for the level's air supply. 2013-08-09 11:57:14 +02:00
Randy Heit
5cc8a9c2a7 Remove redundant Resolves
- ParseExpression() calls Resolve() on the FxExpression before returing
  it, so there's no need to immediately Resolve() what it returns.
2013-08-02 21:19:05 -05:00
Randy Heit
4f528e3832 Remove lax from FCompileContext
- It's always set to true these days, so let's get rid of it.
2013-08-02 21:13:40 -05:00
Randy Heit
09c902ce55 Remove isconst from FCompileContext.
- It's not used anymore, so keeping it around is pointless.
2013-08-02 21:09:49 -05:00
Edoardo Prezioso
0dc70f847c - Be more compatible with C++11 narrowing conversions system. 2013-07-31 12:27:54 +02:00
Edoardo Prezioso
8cab8f180b - Be clear about the safe 'memset/memcpy' operations on virtual classes.
Since I remember that 'memset/memcpy' is safe in this code, it should be okay to cast to the generic pointer all the 'virtual class' arguments before calling the above functions. Shuts up Clang warnings.
2013-07-31 12:23:31 +02:00
Randy Heit
58f088c1ab Remove FxExpression::EvalExpression() entirely
- For the purposes of getting constant values from expressions, the only
  class where Resolve doesn't duplicate the functionality of
  EvalExpression was FxConstant. So, every other class has had its
  EvalExpression taken away, and FxConstant has had it renamed to GetValue.
2013-07-30 22:52:27 -05:00
Randy Heit
c810b4d724 Use new degree FLOPs for DECORATE expressions.
- Now that the VM supports degrees, use those instructions when emitting
  code for cos and sin DECORATE expressions. (This looks like it also
  fixed a bug where sqrt also did the degree to radian conversion.)
2013-07-28 20:31:23 -05:00
Randy Heit
0468b1f9ce Delete default expressions for action definitions
- After StateParams was removed in commit 4a1fbdb, the expressions for
  default paramaters that ParseActionDef() created went nowhere and were
  lost. Properly throw them away by deleting them as soon as they've been
  parsed.
2013-07-28 20:05:07 -05:00
Randy Heit
241622300e Removed some EvalExpression implementations
- Removed EvalExpression() implementations from some subclasses of
  FxExpression that don't make any sense in the context of evaluating a
  constant value.
2013-07-28 19:40:48 -05:00
Randy Heit
2c24e7f9c6 Remove self pointer from FxExpression::EvalExpression()
- Every place that calls this now (which are all in thingdef_parse.cpp)
  passed NULL for the self pointer, so it was superfluous to have around.
2013-07-28 19:28:14 -05:00
Christoph Oelckers
909ec2e35a Merge branch 'maint' into scripting 2013-07-28 10:47:17 +02:00
Randy Heit
4a1fbdb32a Remove all state expression/param stuff
- This all became vestigial code after the relevant information was all
  moved into FStateTempCall. Now that the MBF code pointer code has been
  converted, I can be sure it wasn't still used anywhere.
2013-07-27 22:34:44 -05:00
Randy Heit
6cf0916f72 Use VMFunctionBuilder::EmitParamInt in thingdef_expression.cpp 2013-07-27 22:06:14 -05:00
Randy Heit
070c0a9e30 Stop leaking function damage expressions.
- Function damage expressions parsed from DECORATE are now stored in a
  single array and deleted at the end of FinishThingdef().
2013-07-25 21:42:30 -05:00
Christoph Oelckers
cbc0b70e7c - TransferStencilColor A_SpawnItemEx patch / by Ryan Cordell. 2013-07-24 20:15:17 +02:00
Randy Heit
9c86f1c220 Merge branch 'master' into scripting for plugged userinfo memory leak
Conflicts:
	src/d_player.h
	src/p_interaction.cpp
	src/thingdef/thingdef_codeptr.cpp
2013-07-23 21:01:13 -05:00
Christoph Oelckers
f3d8790995 Merge branch 'maint' of https://github.com/rheit/zdoom into maint 2013-07-22 22:54:45 +02:00
Christoph Oelckers
83bd8ba1b8 - added NeuralStunner's player.userange submission, but changed it to use the value directly from the PlayerPawn data.
- bumped savegame version for addition of APlayerPawn::userange.
2013-07-22 22:37:50 +02:00
Christoph Oelckers
a90b49dc72 - added string table replacement for A_Print, A_PrintBold and A_Log. 2013-07-14 14:33:45 +02:00
Randy Heit
4deeb8d8ae Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_doom/a_doomweaps.cpp
	src/p_local.h
	src/p_map.cpp
	src/sdl/i_main.cpp
	src/thingdef/thingdef_codeptr.cpp
2013-06-25 19:28:25 -05:00
Christoph Oelckers
94a3d92f93 Merge branch 'maint' 2013-06-24 16:49:51 +02:00
Christoph Oelckers
394f21f71e - fixed: Draining health from a victim must check for damage reduction before awarding the health to the player. This affected Heretic's gauntlets, A_Saw and A_CustomPunch.
- added a DONTDRAIN flag that prevents the above attacks from draining any health at all.
2013-06-24 16:42:43 +02:00
Christoph Oelckers
7d56311152 - added Ryan Cordell's A_CheckRange submission. 2013-06-23 18:45:17 +02:00
Randy Heit
459ad5abff - Updated scripting branch to latest version in trunk.
SVN r4337 (scripting)
2013-06-07 03:31:30 +00:00
Randy Heit
2d13a45773 - Added read access to an actor's melee range from DECORATE and ACS, via Blue Shadow.
SVN r4305 (trunk)
2013-06-01 02:23:27 +00:00
Christoph Oelckers
9e3c6a3cc7 - fixed parameter type for Floatbobphase property.
SVN r4300 (trunk)
2013-05-31 18:10:41 +00:00
Christoph Oelckers
ad12be4877 - fixed inappropriate type for FloatBobPhase property.
SVN r4299 (trunk)
2013-05-30 21:10:54 +00:00
Christoph Oelckers
a7c2346b32 - added a FloatBobPhase property for DECORATE. Now, if FloatBobPhase is anything but -1 it will be used directly as the initial phase, allowing to define actors that bob in sync. The allowed range of phases is 0 - 63. The main reason for this is that each actor spawn called the pr_spawnmobj RNG just to randomize this value which causes problems with non-interactive actors, in particular GZDoom's dynamic lights.
SVN r4296 (trunk)
2013-05-30 08:52:29 +00:00
Randy Heit
504496278b - Fixed: FxBinaryInts that needed to cast the right-side parameter to an int resolved the left
side instead.

SVN r4265 (trunk)
2013-05-13 02:55:48 +00:00
Randy Heit
894c4198b0 - Fixed possible NULL pointer deref in A_FireBullets
SVN r4263 (trunk)
2013-05-13 02:27:39 +00:00
Randy Heit
c63273348a - Fixed possible NULL pointer deref in A_CustomPunch
SVN r4255 (trunk)
2013-05-12 18:31:36 +00:00
Randy Heit
2668988870 - Switched to a genericly extensible representation for userinfo.
- Fixed: The playerinfo CCMD did not range check the player number.

SVN r4253 (trunk)
2013-05-12 18:27:03 +00:00
Randy Heit
9072c25e65 - Added a big-endian fix for actor flag fields that aren't four bytes wide.
SVN r4251 (trunk)
2013-05-05 00:01:51 +00:00
Randy Heit
40f7abb8e9 - Added bounce states. Set the BOUNCE_UseBounceState flag to use them (+USEBOUNCESTATE via
DECORATE). Then you can use:
  * Bounce
  * Bounce.Floor
  * Bounce.Ceiling
  * Bounce.Wall
  * Bounce.Actor
  * Bounce.Actor.Creature
  Partial matches work just like Pain states, so if an actor bounces off a floor and you don't
  have a Bounce.Floor state, but you do have a Bounce state, it will use the Bounce state.
  Conversely, if you only have a Bounce.Floor state but no Bounce state, then the actor will
  only enter the Bounce.Floor state when it bounces on a floor; bouncing off anything else will
  not cause it to change state.

SVN r4250 (trunk)
2013-05-04 22:52:37 +00:00
Christoph Oelckers
bed47c6eff - A_KIllSiblings and A_DamageSiblings didn't check for a valid master.
SVN r4242 (trunk)
2013-04-30 06:48:53 +00:00
Randy Heit
0e19a0e330 - Added a NODELAY state flag. This is only valid for a state immediately following a Spawn label.
When set, the actor will run this state during its first tick. This means Spawn
  states may now run an action function if you set this flag. Note that this action function
  is executed during the actor's first tick, which is not the same as when it is spawned.

SVN r4240 (trunk)
2013-04-30 04:20:09 +00:00
Randy Heit
5dc034c2ed - Fixed: A_RemoveSiblings and A_KillSiblings did not check that the caller had a master to deduce siblings from.
SVN r4237 (trunk)
2013-04-30 02:46:47 +00:00
Randy Heit
f7aa019f85 - Stylistic changes.
SVN r4236 (trunk)
2013-04-30 02:45:15 +00:00
Randy Heit
e92560b4da - Be consistent with whitespace tabs.
SVN r4235 (trunk)
2013-04-30 02:41:59 +00:00
Christoph Oelckers
9f71c7cb4e - added Xaser's reactiontime for ACS and DECORATE expression patch.
SVN r4222 (trunk)
2013-04-20 21:32:03 +00:00
Randy Heit
cb64014494 - Added CROUCHABLEMORPH flag for the PlayerPawn class. Use this to indicate that a morphed
player class can crouch. (Regular players can always crouch, hence the name CROUCHABLEMORPH
  and not CANMORPH or ALLOWMORPH.)

SVN r4221 (trunk)
2013-04-19 02:24:20 +00:00
Randy Heit
ec6d522a29 - Remove the requirement that only action function default parameters can accept a constant
expression that evaluates to the class 'None'. (I don't know why that was there to begin with.)

SVN r4210 (trunk)
2013-04-09 22:15:41 +00:00
Randy Heit
147da94e2f - Added FDARI's CLOFF_JUMP_ON_MISS and CLOFF_AIM_VERT_NOOFFSET flags.
SVN r4207 (trunk)
2013-03-28 01:29:23 +00:00
Randy Heit
324b13c89b - Added Weapon.MinSelectionAmmo1 and Weapon.MinSelectionAmmo2 to exclude weapons from autoselection
even if they have enough ammo to be used.

SVN r4203 (trunk)
2013-03-24 02:25:12 +00:00
Randy Heit
f9915d7cf2 - Added FDARI's A_CheckLOF, modified to use a Trace callback function.
SVN r4201 (trunk)
2013-03-23 02:55:59 +00:00
Randy Heit
c54ea7f6b7 - Added SXF_TRANSFERSPECIAL and SXF_CLEARCALLERSPECIAL flags for A_SpawnItemEx.
SVN r4199 (trunk)
2013-03-23 01:22:37 +00:00
Randy Heit
2874d927b1 - Random spawners no longer move the missile forward when spawning them, because presumably
whatever spawned the random spawner already took care of this.
- Added a maxdist parameter to P_CheckMissileSpawn() to help ensure that it doesn't completely 
  move the spawned missile outside of its shooter (and potentially beyond a wall the shooter
  might happen to be standing next to).

SVN r4194 (trunk)
2013-03-21 03:06:04 +00:00
Randy Heit
53e73783e0 - Added spawnofs_z parameter to A_RailAttack and A_CustomRailgun.
SVN r4191 (trunk)
2013-03-20 03:36:45 +00:00
Randy Heit
277d59b2bb - Added flags SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, and SXF_TRANSFERSCALE for A_SpawnItemEx.
SVN r4188 (trunk)
2013-03-20 03:07:45 +00:00
Randy Heit
de20936b13 - Allow negative force for A_RadiusThrust.
SVN r4187 (trunk)
2013-03-20 02:41:59 +00:00
Christoph Oelckers
b0203c9f1d - added Xaser's SXF_USEBLOODCOLOR for A_SpawnItemEx submission
SVN r4181 (trunk)
2013-03-13 11:27:30 +00:00
Randy Heit
8410ac760a - Added A_SetDamageType.
SVN r4180 (trunk)
2013-03-13 04:04:48 +00:00
Christoph Oelckers
c7aa7e2a4b - missing NORANDOMPUFFZ code.
SVN r4177 (trunk)
2013-03-09 07:09:40 +00:00
Randy Heit
bd601a1bc8 - Added NOTRAIL flag for PowerSpeed.
SVN r4146 (trunk)
2013-02-19 02:44:49 +00:00
Randy Heit
ae6b0c6215 - Added IF_NOSCREENFLASH>
SVN r4145 (trunk)
2013-02-19 02:27:41 +00:00
Braden Obrzut
dcb1a3c8bd - GCC warning cleanup
SVN r4031 (trunk)
2013-01-21 22:30:30 +00:00
Braden Obrzut
de65ae809f - Fixed: BobStyle was assigned as if they were flags.
SVN r4027 (trunk)
2013-01-17 19:25:22 +00:00
Randy Heit
549712e719 - P_DamageMobj() now returns the amount of damage actually done so that the bleed functions
can perform based on the amount of damage actually taken after all modifications are done to
  it. However, if the damage is canceled away, blood will still spawn for the original damage
  amount rather than the modified amount.

SVN r4012 (trunk)
2013-01-02 04:39:59 +00:00
Randy Heit
dfe470e5f2 - Added JLOSF_NOAUTOAIM flag for when you want to use A_JumpIfTargetInLOS in conjunction with
something that never autoaims, such as a railgun.
- Fixed: A_JumpIfTargetInLOS should use P_AimLineAttack() instead of P_BulletSlope(), because the
  latter intentionally checks to the sides of the aimed line.

SVN r4007 (trunk)
2013-01-02 03:17:52 +00:00
Randy Heit
a71736b598 - Fixed: If there are not enough states for a spawned debris chunk, A_SpawnDebris should still
fling it somewhere.

SVN r3963 (trunk)
2012-11-10 03:38:52 +00:00
Randy Heit
2ce1debe8d - Added FDARI's get actor height and radius patch.
SVN r3955 (trunk)
2012-11-09 23:06:40 +00:00
Randy Heit
c2e700f116 - Move the RET and RETI final flag into the high bit of the destination selector.
SVN r3922 (scripting)
2012-10-29 01:11:24 +00:00
Christoph Oelckers
b630410372 - fixed: CreateDamageFunction needs to return NULL for a damage value of 0 to preserve the collision detection handling of non-damaging actors.
SVN r3920 (scripting)
2012-10-28 06:56:56 +00:00
Randy Heit
6e88529324 - Added a RETI instruction for returning 15-bit signed immediate values.
- Changed Actor's Damage property into an actual function. All access to the damage property
  must now be done through GetMissileDamage. actor->GetMissileDamage(0, 1) is equivalent
  to the former actor->Damage, for the case where actor->Damage was not an expression. (I
  suppose I will probably need to make a thunk for DECORATE expressions that want to read it.)
- Cleaned up some decorate expression evaluation functions that are no longer used.

SVN r3919 (scripting)
2012-10-28 04:36:52 +00:00
Randy Heit
e6b150bab9 - Fixed: A_Explode should always perform the distance <= 0 check, not just when damage < 0.
SVN r3914 (scripting)
2012-10-27 02:13:53 +00:00
Randy Heit
ac251cfe80 - Fixed: FxCompareEq::Emit()'s output must be in an integer register.
SVN r3910 (scripting)
2012-10-26 20:27:49 +00:00
Randy Heit
83480fd7f3 - Fixed: A_CustomMissile's pitch argument is an angle, not an int.
SVN r3909 (scripting)
2012-10-26 20:12:55 +00:00
Randy Heit
aade32a749 - Add PClass::AllClasses to the list of root items for the GC. Failure to do so will cause any
actors with names that conflicted with preceding actors from being freed, even though they
  can still be accessed via PClassActor::AllActorClasses, which gets iterated over in a number
  of places. (e.g. Zen Dynamics defines a Grenade actor, although there is one in zdoom.pk3 now.
  The Zen Dynamics' version would not go in the TypeTable, so it would be collected on map load,
  leading to a crash when attempts to access it through AllActorClasses are made.)

SVN r3908 (scripting)
2012-10-26 19:52:24 +00:00
Randy Heit
1a02d16356 - Added DecoFindSingleNameState for the extremely common case of finding a state with only
one name in its label. This avoids the alloca and security cookie calls.
- Consolidated lots of copy-pasted code in thingdef_expression.cpp to install helper functions
  into FindDecorateBuiltinFunction().

SVN r3907 (scripting)
2012-10-26 04:04:06 +00:00
Randy Heit
5c6bf0aeb4 - Fixed: FxCompareEq::Emit() needs to allocate the output register before freeing the inputs.
SVN r3906 (scripting)
2012-10-25 03:56:09 +00:00
Randy Heit
0dae6527ad - Fixed: FxCompareRel::Emit() needs to allocate the output register before freeing either of
the operands.

SVN r3903 (scripting)
2012-10-23 03:19:26 +00:00
Randy Heit
d0c91083bc - Re-jigged DoJump() to not be recursive so that 0-tic A_Jump* loops are no longer
able to potentially blow up the stack.

SVN r3902 (scripting)
2012-10-23 03:19:17 +00:00
Randy Heit
2c92941f6b - Fixed: FxCompareRel::Emit() generated broken code for floating point operands.
SVN r3895 (scripting)
2012-10-18 04:04:33 +00:00
Randy Heit
38d7b7d203 - Fixed errors and warnings when compiling with GCC. (Unfortunately, the VC++ debug builds
become ungodly slow when using mods with complex DECORATE. The GCC debug builds run just
  fine, however. Hopefully this is something that can be fixed later with an assembly-optimized
  version of the main VM loop, because I don't relish the thought of being stuck with GDB
  for debugging.)
- Fixed: The ACS_Named* action specials were erroneously defined as taking strings instead of
  names.
- Fixed: Copy-paste error caused FxMultiNameState::Emit to generate code that called
  DecoNameToClass instead of DecoFindMultiNameState.
- Updated FxActionSpecialCall::Emit for named script specials.
- Fixed inverted asserts for FxMinusSign::Emit and FxUnaryNotBitwise::Emit.


SVN r3893 (scripting)
2012-10-18 03:19:27 +00:00
Randy Heit
e7efa1d802 - Update to latest version in trunk.
SVN r3890 (scripting)
2012-10-17 04:24:54 +00:00
Randy Heit
81ce8b28f2 - Added the Inventory flag IF_NEVERRESPAWN.
SVN r3885 (trunk)
2012-10-11 04:12:35 +00:00
Randy Heit
a77705e04e - Added A_JumpIfTargetOutsideMeleeRange and A_JumpIfTargetInsideMeleeRange because I thought
I could be clever and have the beggar chase after you some after you attack him, with a
  random chance to cease pursuit. However, that didn't look much different from his normal
  wandering animation, and he usually gave up before getting anywhere near you, so it was
  kind of pointless. I kept the action functions around anyway, since they're simple things that
  somebody else might find useful.
- Added a melee range check to A_SentinelRefire for actors without missile states. This fixes
  Strife's Beggar trying to attack you when you're nowhere near him.

SVN r3863 (trunk)
2012-09-06 03:36:25 +00:00
Randy Heit
6a91335841 - Turned A_Explode's affectsource parameter into a flags parameter and added XF_NOTMISSILE
and RTF_NOTMISSILE so that you can use A_Explode and A_RadiusThrust with non-missiles without
  them telling P_RadiusAttack() that the target is the source.

SVN r3860 (trunk)
2012-08-30 04:01:50 +00:00
Randy Heit
a94cf9d548 - Added A_SetTics.
SVN r3851 (trunk)
2012-08-24 21:02:49 +00:00
Randy Heit
1c71c1dce1 - Added support for random state durations. Instead of defining a frame like this:
POSS A 10 A_Look
  You can define it as:
    POSS A random(10,20) A_Look
  and the state will last a random duration between 10 and 20 tics, inclusive.

SVN r3847 (trunk)
2012-08-23 01:00:30 +00:00
Randy Heit
d5d4584008 - Ignore the Skulltag-based SERVERSIDEONLY flag in actor definitions.
SVN r3833 (trunk)
2012-08-22 21:35:47 +00:00
Randy Heit
100391507e - Added two new PlayerPawn properties:
* GruntSpeed: The minimum speed a player must be falling at the time of landing to play *grunt.
  * FallingScreamSpeed: When a player is falling within this range of speeds, they will play *falling.

SVN r3829 (trunk)
2012-08-14 03:24:59 +00:00
Randy Heit
27f6d431ca - Trying to replace an actor that does not exist is now a warning rather than an error.
SVN r3820 (trunk)
2012-08-12 03:36:49 +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
97372c9c05 - Changed A_SpawnItem and A_SpawnItemEx to take the caller's floatbob into account when calculating the spawned actor's z.
SVN r3790 (trunk)
2012-07-27 02:01:36 +00:00
Randy Heit
fcceeb814a - Changed state calls to use the VM's standard return value mechanism. StateCallData has been
removed as a result, so now action functions take a minimum of three parameters rather than four.

SVN r3770 (scripting)
2012-07-17 05:31:41 +00:00
Randy Heit
e1a2f3b546 - Added the TAIL instruction to perform a CALL and a RET in the same instruction. The called
function will pass its results directly to this function's caller. Eventually, this should
  be changed to do a proper tail call for scripted functions.

SVN r3769 (scripting)
2012-07-17 04:06:28 +00:00
Randy Heit
644f0c0e05 - Add a name to VMFunction so that the disassembly can be more informative.
SVN r3768 (scripting)
2012-07-17 03:35:03 +00:00
Randy Heit
d85604da19 - Update scripting branch to latest version of trunk.
SVN r3767 (scripting)
2012-07-17 02:53:53 +00:00
Randy Heit
fdc6a03125 - Remove Item from StateCallData, since it isn't read anywhere.
SVN r3766 (trunk)
2012-07-15 23:00:16 +00:00
Randy Heit
a26cd841ae - Fixed: Getting remorphed into a chicken should give you a Tome of Power so that you become a
super chicken. Rawr! The PlayerPawn flag CANSUPERMORPH now enables this.

SVN r3763 (trunk)
2012-07-15 03:10:00 +00:00
Randy Heit
6f93b88245 - Fixed type in A_Respawn.
SVN r3762 (trunk)
2012-07-15 01:59:49 +00:00
Randy Heit
615f49572b - Fix assertion failure when using FRandom.
SVN r3759 (scripting)
2012-07-14 03:10:47 +00:00
Randy Heit
562cf04db2 - Update scripting branch to trunk.
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00
Randy Heit
ba00e3a185 - Remove FloatBobOffsets[], since it's just a mini-finesine[] table multiplied by 8.
SVN r3753 (trunk)
2012-07-11 02:50:13 +00:00
Randy Heit
8a925757f5 - Added the item flag IF_RESTRICTABSOLUTELY. When this is set, players of the wrong class cannot
pickup an item at all. (For instance, normally players in Hexen can still pick up other players'
  weapons for ammo. With this flag set, they cannot do that either.)

SVN r3751 (trunk)
2012-07-08 02:45:46 +00:00
Randy Heit
fd784b05c2 - Fix some GCC 4.7.1 warnings.
SVN r3747 (trunk)
2012-07-07 03:43:11 +00:00
Randy Heit
5a245af2ad - Fixed: The action function version of ACS_NamedExecuteWithResult only accepted three script parameters.
SVN r3741 (trunk)
2012-07-06 03:09:17 +00:00
Randy Heit
4bbc9266e2 - Fixed: FRandom told the expression evaluator that it returned an int instead of a float, so
using it in in any expression would automatically downcast it to an int unless ① its sibling in the expression tree was a float, or ② it was the only thing in the expression.

SVN r3721 (trunk)
2012-07-01 03:16:37 +00:00
Randy Heit
ce8ca26bc9 - Fixed: Don't warn when an Inventory item's Icon is set to "".
SVN r3720 (trunk)
2012-07-01 02:57:00 +00:00
Randy Heit
70c11f7568 - Added RGF_CENTERZ to spawn a rail from the actor's center instead of offsetting it upward.
- Merged all the multiple bool parameters to the railgun functions into a single flags parameter.

SVN r3706 (trunk)
2012-06-22 03:56:08 +00:00
Christoph Oelckers
a8ac550827 - fixed: a few DECORATE commands had incorrect parameter lists.
SVN r3700 (trunk)
2012-06-21 07:55:59 +00:00
Randy Heit
b982482f74 - Fixed: P_LineAttack() calls that use damage type 'None' should use 'Hitscan' instead.
SVN r3694 (trunk)
2012-06-17 03:18:26 +00:00
Christoph Oelckers
37d9519673 - added Xaser's submission for no impact damage from blasting.
SVN r3693 (trunk)
2012-06-16 09:01:05 +00:00
Christoph Oelckers
ff25785781 - removed the MF5_FASTER and MF5_FASTMELEE flags and replaced them with a 'Fast' state flag.
SVN r3692 (trunk)
2012-06-16 08:35:51 +00:00
Christoph Oelckers
3d7c6811c1 - The bouncing check from r3643 cannot be applied retroactively to the existing DOOMBOUNCE flag because mods depend on the old behavior. Instead of modifying BOUNCE_OnOff's behavior the correct way of doing this has to be implemented as a separate flag in order to avoid problems.
SVN r3685 (trunk)
2012-06-10 10:17:49 +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
Randy Heit
9473e229f1 - Fix tiny error in A_WolfAttack, courtesy of Gez.
SVN r3666 (trunk)
2012-05-26 01:03:39 +00:00
Christoph Oelckers
7356350d5c - fixed: having a state immediately followed label with a goto immediately following that label did not link the state to its proper next state.
SVN r3661 (trunk)
2012-05-17 11:16:20 +00:00
Randy Heit
0fae305224 - Fixed: A_LookEx did not default to a 180 degree cone.
SVN r3655 (trunk)
2012-05-15 22:05:14 +00:00