Commit graph

159 commits

Author SHA1 Message Date
Leonard2
bca9829950 Fixed: a few members weren't properly initialized
This could go wrong if a layer had only one state of -1 tics
2016-05-27 22:58:27 +02:00
Leonard2
599fa7cfd1 Fixed: it was no longer possible to set the flash state in the very first
weapon's state

This was due to an oversight in my first commit
2016-05-27 22:31:18 +02:00
Christoph Oelckers
e6d89b9f71 - re-added P_SetPSprite.
For debugging purposes it's better to have this as a function.
2016-05-24 13:05:43 +02:00
Christoph Oelckers
d767d10322 - made PSprites submission GC aware. 2016-05-21 13:11:43 +02:00
Leonard2
8c205ebac3 Added A_OverlayOffset
Like A_WeaponOffset except it can access any psprites
2016-05-20 17:04:45 +02:00
Leonard2
1ecfb5897b Added A_Overlay 2016-05-20 17:04:45 +02:00
Leonard2
1966b61b8f Generalized the psprites implementation 2016-05-20 17:04:44 +02:00
MajorCooke
115dbd0b58 - Added A_WeaponOffset(x = 0, y = 32, flags).
- Places the weapon offset by the defined x and y. Both are floats. This stacks with weapon bobbing.
- WOF_KEEPX: Don't change the X offset.
- WOF_KEEPY: Don't change the Y offset.
- WOF_ADD: Add onto instead of replacing the coordinates.
2016-05-18 11:19:24 +02:00
Christoph Oelckers
7ebb961917 - added weapon bobbing interpolation.
This was so ridiculously simple that I really fail to understand why the previous attempt was so overcomplicated that it just failed for that.
2016-04-07 11:48:23 +02:00
Christoph Oelckers
7f23a91488 - fixed: smooth bobbing uses the full angular range to calculate its position. 2016-04-07 11:14:39 +02:00
Christoph Oelckers
21340c6eba - floatified the rest of thingdef_codeptr.cpp and got rid of the remaining fixed_t and angle_t parameters in VM-accessed function. The VM should now be free of those types completely. 2016-03-25 12:57:22 +01:00
Christoph Oelckers
6557f3b8c8 - floatified quake and weapon code 2016-03-23 20:45:48 +01:00
Christoph Oelckers
2d2eeb49f0 - make weapon sprite offsets floats. 2016-03-21 01:16:34 +01:00
Christoph Oelckers
51b05d331d - replaced AActor::vel and player_t::Vel with a floating point version.
- Converted P_MovePlayer and all associated variables to floating point because this wasn't working well with a mixture between float and fixed.

Like the angle commit this has just been patched up to compile, the bulk of work is yet to be done.
2016-03-20 00:54:18 +01:00
Christoph Oelckers
f332a098cd - reworked calls to P_SpawnPlayerMissile, P_AimLineAttack and P_LineAttack to use floating point angles. 2016-03-18 00:43:05 +01:00
Christoph Oelckers
671291227e - first stage of converting actor angles to float complete
Patched up everything so that it compiles without errors again. This only addresses code related to some compile error. A large portion of the angle code still uses angle_t and converts back and forth.
2016-03-16 12:41:26 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers
b4a002a07f - preparations for allowing hitscans through portals.
To allow processing the hit through an arbitrary portal without reference to the portal group table, P_AimLineAttack and P_LineAttack need to pass some more info than just the linetarget.
We need the relative positions of shooter and target within the visual reference of the other to calculate proper angles and we need to know if such a portal was crossed at all, because a few things, e.g. seeker missiles won't work with them.

- fixed setup of target acquisition for the Mage Staff.

The pre-acquired seeker target was never passed to the spawned projectiles.
2016-03-01 16:39:31 +01:00
Randy Heit
b2ccd0bd28 Use action function return value to make state jumps happen
- The A_Jump family of action functions now return the state to jump
  to (NULL if no jump is to be taken) instead of jumping directly.
  It is the caller's responsibility to handle the jump. This will
  make it possible to use their results in if statements and
  do something other than jump.
- DECORATE return statements can now return the result of a function
  (but not any random expression--it must be a function call). To
  make a jump happen from inside a multi-action block, you must
  return the value of an A_Jump function. e.g.:
    { return A_Jump(128, "SomeState"); }
- The VMFunction class now contains its prototype instead of storing
  it at a higher level in PFunction. This is so that
  FState::CallAction can easily tell if a function returns a state.
- Removed the FxTailable class because with explicit return
  statements, it's not useful anymore.
2016-02-18 20:39:40 -06:00
Randy Heit
b3b0886b64 Merge branch 'scripting'
Conflicts:
	src/actor.h
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_blastradius.cpp
	src/p_enemy.cpp
	src/p_enemy.h
	src/thingdef/thingdef.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-02-04 15:17:22 -06:00
rheit
56359b6f23 Merge pull request #342 from marrub--/fastweaponsfix
sv_fastweapons extension
2016-02-04 13:31:47 -06:00
Braden Obrzut
88a616da75 - Removed what appears to be a debug breakpoint.
- Cleared some GCC and Clang warnings. Mostly static analysis false positives, but one of them generated a pretty massive warning in a release build.
- Use -Wno-unused-result since I doubt we're going to address those unless they actually prove to be a problem (and they only appear in release builds).
2016-01-23 19:36:13 -05:00
Christoph Oelckers
cfcd2668cc Merge commit '772a5724313f2ad0bd6828fcc28545a9ee5e6068' into scripting
Conflicts:
	src/p_pspr.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:00:45 +01:00
MajorCooke
77013877d1 A_WeaponReady Fix
- Zoom and Reload keys triggered the other states instead of themselves (i.e. zoom keybind triggered reload states instead of zoom)
2016-01-02 11:27:02 -06:00
Randy Heit
1d759283c0 Cleanup the zoom/reload/userX handling for A_WeaponReady
- There was lots of code duplication. Consolidated it.
- Renamed WRF_UserX to WRF_AllowUserX for consistancy.
2015-12-31 16:46:19 -06:00
MajorCooke
3566d3157a Use | instead of +. 2015-12-31 16:46:17 -06:00
MajorCooke
eed6680a67 Added support for weapon states User#.
- Added keybinds for the user state triggering.
- Added WRF_USER# flags which must be specified in order to use.
- # can be 1-4.
2015-12-31 16:46:16 -06:00
Christoph Oelckers
b613db4ae5 Revert "Merge pull request #359 from Leonard2/master"
This reverts commit 364ca11b43, reversing
changes made to dae0e217d1.

Conflicts:
	src/r_data/r_interpolate.cpp
2015-09-18 17:41:16 +02:00
Leonard
86e9504d04 Added weapon interpolation. 2015-08-19 15:59:54 +02:00
Marrub
08e9d75538 removed sv_fastweapons 4 as it may cause issues 2015-06-27 15:00:31 -04:00
Marrub
4208993f22 use sv_fastweapons 3 and 4 instead 2015-06-27 08:26:48 -04:00
Marrub
873ef3fea8 that works better 2015-06-25 10:15:40 -04:00
Marrub
bbc3173629 yep 2015-06-25 09:47:37 -04:00
Christoph Oelckers
bfc10f4c5e Merge branch 'master' into scripting 2015-05-05 11:24:43 +02:00
Christoph Oelckers
535102ae6e - fixed: NULLing the flash state in P_BringUpWeapon should be done before setting the main weapon state so that it doesn't cancel any flash state effects that get initiated there. 2015-05-05 11:23:41 +02:00
Randy Heit
b5e4153c78 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/b_think.cpp
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_clericstaff.cpp
	src/g_hexen/a_fighterplayer.cpp
	src/namedef.h
	src/p_enemy.cpp
	src/p_local.h
	src/p_mobj.cpp
	src/p_teleport.cpp
	src/sc_man_tokens.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_function.cpp
	src/thingdef/thingdef_parse.cpp
	wadsrc/static/actors/actor.txt
	wadsrc/static/actors/constants.txt
	wadsrc/static/actors/shared/inventory.txt

- Added register reuse to VMFunctionBuilder for FxPick's code emitter.
- Note to self: Need to reimplement IsPointerEqual and CheckClass, which
  were added to thingdef_function.cpp over the past year, as this file no
  longer exists in this branch.
2014-12-21 21:15:11 -06:00
Randy Heit
2d87eb0ba2 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/actor.h
	src/g_heretic/a_hereticmisc.cpp
	src/g_heretic/a_hereticweaps.cpp
	src/g_heretic/a_ironlich.cpp
	src/info.h
	src/namedef.h
	src/p_buildmap.cpp
	src/p_enemy.cpp
	src/p_map.cpp
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	zdoom.vcproj
2014-12-20 19:13:14 -06:00
ChillyDoom
db323643f8 - Renamed FBot to DBot and made it inherit from DThinker.
- Fixed: Bots added by players other than the net arbitrator did not have their skill set.
2014-10-14 19:57:11 +01:00
ChillyDoom
83d84eaae9 - Moved bot related variables from player_t into a new FBot class. 2014-10-13 18:40:25 +01:00
Christoph Oelckers
ee6e87d94b - use a separate counter from AActor::special1 to count weapon use with some Hexen weapons. special1 is used for some other purposes as well, and when using a separate counter it can be reset to 0 when changing weapons, preventing counting errors. 2014-09-13 12:38:16 +02:00
Christoph Oelckers
261bc77846 - fixed: when bringing up a new weapon the current flash state needs to be removed.
Especially when dropping the current weapon it can still be active, this is most easily observed with Strife's crossbow which loops the flash state, but it also can happen with other weapons, right after shooting.
2014-05-20 10:29:27 +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
445bc148b7 - Fixed: r4067 completely disabled weapon switching via A_ReFire.
SVN r4157 (trunk)
2013-02-22 02:42:42 +00:00
Randy Heit
e0c751114f - Fixed: A TITLEMAP defined with SpawnWithWeaponRaised set caused a crash.
SVN r4156 (trunk)
2013-02-22 01:51:35 +00:00
Randy Heit
619e65ad6f - Allow negative parameters to A_Light.
SVN r4144 (trunk)
2013-02-19 02:25:20 +00:00
Randy Heit
cdfd671dff - P_MovePsprites() should now always call P_CheckWeaponSwitch(), because the latter function
now has its own WF_WEAPONSWITCHOK check in the correct place.

SVN r4068 (trunk)
2013-02-07 20:42:24 +00:00
Randy Heit
2cf141e914 - In A_ReFire, allow refiring when a weapon is pending, but weapon switching is not okay at this time.
SVN r4067 (trunk)
2013-02-07 20:38:41 +00:00
Randy Heit
87b8b6201c - Added WRF_DISABLESWITCH flag for A_WeaponReady to indicate that any attempts to switch the weapon
should be discarded.

SVN r4062 (trunk)
2013-02-05 02:27:35 +00:00
Randy Heit
f0bc2fdc53 - Fixed CF_DOUBLEFIRINGSPEED is in player->cheats, not player->WeaponState.
SVN r4061 (trunk)
2013-02-05 01:45:23 +00:00
Randy Heit
61322cc33b - Fixed: A_Lower needs to check player->cheats for WF_INSTANTWEAPSWITCH, not player->WeaponState.
SVN r4055 (trunk)
2013-01-27 04:08:00 +00:00
Randy Heit
a2f55c8067 - Well, poo. WRF_NoFire is two bits, not just one.
SVN r4054 (trunk)
2013-01-27 03:02:00 +00:00
Randy Heit
ed8a33aeaf - Use P_DropWeapon() everywhere it makes sense.
SVN r4045 (trunk)
2013-01-25 03:32:49 +00:00
Randy Heit
5dca935305 - If this was a git repository, I wouldn't have needed to just make three broken commits in a row.
SVN r4044 (trunk)
2013-01-25 03:32:20 +00:00
Randy Heit
1c999d9d55 - Be more concise for WRF_NoFire in A_WeaponReady.
SVN r4043 (trunk)
2013-01-25 03:25:32 +00:00
Randy Heit
9d43ba39fc - Using the proper container for weapon state flags would be good.
SVN r4042 (trunk)
2013-01-25 03:18:45 +00:00
Randy Heit
281ac3a49a - Separate the player weapon state flags from the other player "cheat" flags.
SVN r4041 (trunk)
2013-01-25 03:09:17 +00:00
Randy Heit
ea81d3638d - Revert WRF_NOSWITCH changes from r4024.
SVN r4039 (trunk)
2013-01-25 02:05:48 +00:00
Braden Obrzut
76b5757dab - Fixed: 0 duration A_Lower loops could cause an infinite loop since A_Lower checked if the player was dead in two different ways and returned before the second one.
SVN r4029 (trunk)
2013-01-18 18:19:05 +00:00
Randy Heit
3111b6e7b0 - Do not clear the CF_WEAPONSWITCHOK flag each tic, so that the last setting from A_WeaponReady
will carry over until the next A_WeaponReady. Changed P_CheckWeaponSwitch() to clear any
  pending weapon requests while weapon switching is disabled.

SVN r4024 (trunk)
2013-01-11 02:53:11 +00:00
Randy Heit
787c338871 - Added MAPINFO flag "SpawnWithWeaponRaised".
SVN r4013 (trunk)
2013-01-03 02:08:08 +00:00
Randy Heit
562cf04db2 - Update scripting branch to trunk.
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00
Randy Heit
44932a6c56 - Added OB_MPDEFAULT string for being killed by a player for an unknown reason. This can be
overridden in custom player classes by changing their Obituary property to something else.
- ClientObituary() now only looks up the obituary message from the killing player's weapon if the
  damage type was 'Melee' or 'Hitscan'.
- Gave P_GunShot() and A_FireBullets the new damage type 'Hitscan'.
- Switched A_Saw and A_CustomPunch to the 'Melee' damage type.

SVN r3646 (trunk)
2012-05-13 01:06:28 +00:00
Christoph Oelckers
cbcc7443c6 - added Xaser's bobbing style options submission.
SVN r3615 (trunk)
2012-05-02 20:58:29 +00:00
Christoph Oelckers
235a09d92a - Added Xaser's weapon patch to check +reload and +zoom in A_WeaponReady.
SVN r3530 (trunk)
2012-04-07 13:07:25 +00:00
Randy Heit
19ec79d4f3 - Apply patch to prevent the flash state from being processed twice after using A_GunFlash.
SVN r3500 (trunk)
2012-04-01 02:49:04 +00:00
Randy Heit
f00f5d2304 - Allow subclasses when checking for PowerWeaponLevel2.
SVN r3314 (trunk)
2011-11-07 00:43:41 +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
6ba0689b8d - added DavidPH's A_AlertMonsters range submission.
SVN r3233 (trunk)
2011-06-13 10:30:30 +00:00
Christoph Oelckers
60a411c9ad - added A_GunFlash extension submission.
SVN r3217 (trunk)
2011-05-26 23:29:36 +00:00
Christoph Oelckers
0715b7dfc6 - cleaned up switch code and fixed several problems:
* savegames stored an index in the switch table and performed no validation when loading a savegame.
  * setting of a random switch animation duration was broken.
  * separated the 2 values stored in the Time variable into 2 separate variables.
  * defining a switch with one texture already belonging to another switch could leave broken definitions in the switch table.
- added function for serializing switch and door animation pointers.
- bumped min. savegame versions due to changes to DButtonThinker and removed all current savegame compatibility code.


SVN r3030 (trunk)
2010-12-12 15:43:35 +00:00
Christoph Oelckers
3662bf8a15 - reverted r2783 because it was causing problems.
SVN r2792 (trunk)
2010-09-16 06:51:42 +00:00
Randy Heit
99670b708c - Sync scripting branch with what was in trunk on Sunday. I believe that would be revision 2739.
SVN r2790 (scripting)
2010-09-16 03:14:32 +00:00
Christoph Oelckers
a0d7693f33 - added Spleen's fix for not running 2 frames of the weapon when the player spawns.
SVN r2783 (trunk)
2010-09-15 14:09:48 +00:00
Randy Heit
f6cd776e2d - Extended state sprite/frame repetition to psprites.
SVN r2295 (trunk)
2010-04-21 01:40:03 +00:00
Randy Heit
178587fff2 - Merged SetState and SetStateNF into a single function.
- Added new sprite #### and frame character # to specify the behavior of sprite ---- on a
  per-sprite and per-frame basis respectively.

SVN r2291 (trunk)
2010-04-19 02:46:50 +00:00
Randy Heit
f88f601230 - Removed the third parameter from dumpclasses when it was restricted it to Actors, because
I have no idea what that was all about.
- Got rid of FActorInfo and merged it into a new PClassActor.

SVN r2240 (scripting)
2010-03-24 02:49:37 +00:00
Randy Heit
913555aa4e - Synced the scripting branch with trunk.
SVN r2166 (scripting)
2010-02-17 04:46:11 +00:00
Randy Heit
739e684549 - Converted all action functions be directly callable by the VM (though they are not yet
usable).

SVN r2154 (scripting)
2010-02-12 06:04:57 +00:00
Christoph Oelckers
1c5103c9b1 - Fixed: Morphed players tried endlessly to switch to a weapon they picked up.
SVN r2027 (trunk)
2009-12-16 22:42:15 +00:00
Christoph Oelckers
8b27bd1434 - added 'defaultterrain' option to terrain parser for mods that want to have
a different default terrain than a generic solid surface.
- added format char processing to A_Print(Bold) and all printable messages
  that can be defined in DECORATE.
- Fixed: The railgun code ignored MF3_ALWAYSPUFF.
- added desaturated translations.
- added optional state parameters to A_ReFire and A_GunFlash and A_CountdownArg.


SVN r1921 (trunk)
2009-10-16 16:04:19 +00:00
Christoph Oelckers
f55d1718f2 - fixed: Weapons must first check if they can be switched and afterwards
if they can be fired. These checks were reversed.


SVN r1789 (trunk)
2009-09-03 19:51:55 +00:00
Christoph Oelckers
6e3fdbdfc8 - fixed: Switching a weapon did not reset the refire counter.
SVN r1776 (trunk)
2009-08-29 15:50:03 +00:00
Randy Heit
b1b258ec55 - Gez's patch for more A_WeaponReady flags:
* WRF_NOBOB (1): Weapon won't bob
  * WRF_NOFIRE (12): Weapon won't fire at all
  * WRF_NOSWITCH (2): Weapon can't be switched off
  * WRF_NOPRIMARY (4): Weapon will not fire its main attack
  * WRF_NOSECONDARY (8): Weapon will not fire its alt attack


SVN r1720 (trunk)
2009-07-16 22:40:04 +00:00
Christoph Oelckers
23e4c47b5b - Added Gez's A_WeaponReady enhancement submission.
SVN r1711 (trunk)
2009-07-06 15:48:31 +00:00
Randy Heit
8554ccf2a3 - Added A_WeaponBob.
SVN r1698 (trunk)
2009-07-01 00:58:26 +00:00
Randy Heit
956b7d5ea3 - Added Skulltag's PowerDoubleFiringSpeed.
SVN r1608 (trunk)
2009-05-26 01:16:39 +00:00
Christoph Oelckers
b4b76ed4e6 - fixed: Identification of Doom1 Freedoom IWAD did not work.
- fixed: UDMF did not initialize a sector's light colors.
- fixed implementation of DF2_NOAUTOAIM flag.


SVN r1356 (trunk)
2009-01-10 09:40:47 +00:00
Christoph Oelckers
bf63041585 - fixed: Parsing of color strings with 6 characters and spaces did not work.
- fixed: State labels must be evaluated for the state's owner, not the calling actor.



SVN r1354 (trunk)
2009-01-06 00:03:18 +00:00
Christoph Oelckers
760f70d3f1 - Changed compilation for g_doom, g_heretic, g_hexen and g_strife folders
so that all files are included by a central one instead of compiling 
  each one separately. This speeds up the compilation process by 25%
  when doing a complete rebuild in Visual C.
- Cleaned up more header dependencies.

SVN r1226 (trunk)
2008-09-15 14:11:05 +00:00
Christoph Oelckers
b07542ddd6 More header cleanup.
SVN r1225 (trunk)
2008-09-15 00:47:31 +00:00
Christoph Oelckers
db5723997c - Cleaned up some include dependencies.
SVN r1224 (trunk)
2008-09-14 23:54:38 +00:00
Christoph Oelckers
1c034c1150 - Macro-fied access to action function parameters.
- Deactivated debug output code in d_Dehacked.cpp.
- fixed: A_FreezeDeathChunks crashed when a player's head got spawned.


SVN r1168 (trunk)
2008-08-13 22:54:24 +00:00
Christoph Oelckers
1957659b1b - Restructured the action function interface to remove the dependence on
the global CallingState variable.


SVN r1163 (trunk)
2008-08-12 14:30:07 +00:00
Christoph Oelckers
1983b5c586 - Changed action function definition so that they have to be defined with a
DEFINE_ACTION_FUNCTION macro. This should make it easier to improve the
  whole system.


SVN r1148 (trunk)
2008-08-10 20:48:55 +00:00
Christoph Oelckers
ac32bd72bb - Added A_ClearReFire code pointer for weapons. Preferably A_WeaponReady should
reset this counter but that can't be done due to unwanted side effects with
  existing weapons.
- Changed the 'scale' variable in CVAR(turbo) to double because the calculations
  depended on the current floating point precision setting and only worked properly
  when set to 'precise' in VC++.


SVN r1057 (trunk)
2008-06-30 23:30:06 +00:00
Randy Heit
0669fb675f - Fixed: P_BulletSlope() did not return the linetarget. This effected
the Sigil, A_JumpIfCloser, and A_JumpIfTargetInLOS.


SVN r1048 (trunk)
2008-06-26 17:25:55 +00:00
Randy Heit
9e42cdaf08 - Replaced the naive area sound implementation with one that takes into
consideration the size and shape of the sector producing the sound. See
  the lifts on Doom 2 MAP30 and compare with previous versions.
- Fixed: The stop sound for sector-based sound sequences was not played with
  the CHAN_AREA flag.
- Removed the distinction between S_Sound() and S_SoundID() functions. Use
  S_Sound() for both names and IDs from now on.


SVN r1034 (trunk)
2008-06-15 02:25:09 +00:00
Christoph Oelckers
3f497fe8e5 - Eliminated some more global variables (onmobj, DoRipping, LastRipped,
MissileActor, bulletpitch and linetarget.) 

SVN r899 (trunk)
2008-04-10 14:38:43 +00:00
Randy Heit
f618134f15 - Fixed: The MAPINFO flags that control jumping, crouching, and freelook,
rather than overriding the dmflags values, actually overwrote the dmflags
  values, so they would continue to be in effect on later maps that didn't
  explicitly specify them.


SVN r595 (trunk)
2007-12-11 04:03:40 +00:00
Christoph Oelckers
50f75b6e8a - Fixed: deadthings.txt contained a superfluous ';' which created parsing errors
with my changed code.
- Cleaned up DECORATE parser a little - moved the old style parsing code into its 
  own file and rearranged a few things.
- Made ProcessStates non-static so that it doesn't need to be passed as an argument
  to all functions in the DECORATE parser.
- Moved DECORATE parser files into their own subdirectory.
- Optimization: SC_GetToken no longer sets sc_name for identifiers. In most cases
  this creates needless overhead by adding a potentially unneeded name to the name
  table and looking up the name. In almost all cases where a name is needed it's as
  easy to assign sc_String to the name variable.
- Added enum definitions to DECORATE.


SVN r537 (trunk)
2007-05-28 14:46:49 +00:00