Commit graph

3412 commits

Author SHA1 Message Date
Randy Heit
c2bac9d2df Add WorldPanning flag for camera texture definitions.
- To make camera textures pan in world units instead of texture units, you
  can now add "WorldPanning" at the end of the cameratexture definition in
  ANIMDEFS, after the "fit" specification. e.g.

    cameratexture CAMTEX 128 128 fit 64 64 worldpanning
2013-10-09 21:29:28 -05:00
Christoph Oelckers
8170cfbf98 - added my own FMOD path to CMakeLists.txt so that I can use it to create VC++ 2010 files with it. 2013-10-09 12:52:07 +02:00
Randy Heit
0c9c624e8c Do not follow NextThinker links in DestroyThinkersInList
- Fixed: DThinker::Destroy(Most)ThinkersInList() were unreliable when
  destroyed thinkers destroyed more thinkers in the same list.
  Specifically, if the thinker it destroyed caused the very next thinker
  in the list to also be destroyed, it would get lost in the thinker list
  and end up with a NULL node. So just keep iterating through the first
  thinker in the list until there are none left. Since destroying a
  thinker causes it to remove itself from its list, the first thinker will
  always be changing as long as there's something to destroy.
2013-10-08 21:32:26 -05:00
Randy Heit
3c376aa342 Move C_ExecCmdLineParams() call slightly later in the startup process.
- Fixed: You could not set any CVARINFO-defined cvars from the command line
  because command line console commands were executed before wads were
  even loaded. Off the top of my head, I can't think of anything that would\
  break by having them get executed after wads are loaded.
2013-10-08 20:18:35 -05:00
Randy Heit
d558cf51a9 - Fixed: ABackpackItem::CreateTossable did not check for failure from the supermethod. 2013-10-08 19:59:46 -05:00
Christoph Oelckers
c4d2a021b0 - fixed: AInventory::BecomePickup must not restore the MF_COUNTITEM flag when transforming the inventory item into a pickup again. 2013-10-07 11:53:58 +02:00
Randy Heit
5850279090 - Fixed: Thing_SetGoal could put an actor's target and goal out of sync.
If an actor is already targeting a goal, and Thing_SetGoal is used on
  it, it would still be left targeting the old goal instead of the new
  one. This messed up checks in A_Chase for walking towards a goal vs a
  real target.
2013-09-18 22:03:59 -05:00
Randy Heit
ad7aefff20 - Fixed: Do not apply AVOIDMELEE logic when moving toward a goal 2013-09-18 21:52:29 -05:00
Randy Heit
75535fba72 Do not enter testing mode if a valid mode is not selected.
- It doesn't make much sense to "test" the current mode if a non-video
  mode is selected in the menu, so don't.
2013-09-18 21:32:46 -05:00
Randy Heit
e3741c8097 GetSelectedSize() needs to check for a valid selection.
- With mouse navigation, there's no guarantee that there even is a
  selected item.
2013-09-18 21:29:19 -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
d05cdb79ef Switch true to LAF_ISMELEEATTACK inside A_Punch's call to P_LineAttack() 2013-09-18 21:22:21 -05:00
Randy Heit
0cf68af7d2 Overload operator = for player_t
- This fixes crashes when quitting multiplayer games because the default
  byte-for-byte copy caused PredictionPlayerBackup and the console player
  to point to the exact same userinfo data and to both try and free it
  when they are deleted.
2013-09-18 21:14:44 -05:00
Randy Heit
285be8db92 Fixed: wi_noautostartmap was not sync safe
- Make wi_noautostartmap a userinfo cvar. This allows it to be
  communicated across the network and saved in demos. If any player has it
  set, then the intermission screen will not automatically advance to the
  next level.
2013-09-18 20:45:39 -05:00
Christoph Oelckers
8847d5649a - fixed: Bridge needs to call Super::Destroy. 2013-09-15 23:11:55 +02:00
Christoph Oelckers
ea0e4ed344 - fixed: The Hexen bridge must make its balls disappear when it gets destroyed.
Hexen did this with a call to A_BridgeRemove in Thing_Destroy which merely set a flag in the bridge object, which cannot be done safely in ZDoom because it's not guaranteed that the ball object calls A_BridgeOrbit and the garbage collector may delete the bridge actor before it can be checked so now the Bridge's Destroy method deletes all balls attached to the bridge object itself.
2013-09-13 10:07:43 +02:00
Christoph Oelckers
11c026ee84 - fixed: displaying sprites on the automap ignored both the actor's scale and translation. 2013-09-03 08:34:55 +02:00
Christoph Oelckers
75dd5503cf - fixed: Cost strings for dialogues must not be added in the dialogue parser but while displaying the message to properly handle stringtable entries. 2013-09-03 08:24:47 +02:00
Randy Heit
260ce62175 Don't abort for TEXTUREx lumps that define textures with no patches
- A texture defined in TEXTUREx without any patches isn't necessarily an
  error, so accept. This also means they shouldn't be used for determining
  if a TEXTURE directory belongs to Strife instead of Doom.
2013-08-30 23:10:20 -05:00
Randy Heit
b0371e1804 Don't abort when merely checking if a non-map is a map
- When P_OpenMapData() is called by P_CheckMapData(), we don't actually
  care if any required lumps are missing. This just means it isn't a valid
  map, so don't abort with I_Error().
2013-08-30 22:38:57 -05:00
Randy Heit
0f0d9da839 Reset FirstFreeEntry in ACSStringPool::ReadStrings()
- Fixed: When an ACS string pool was read from a savegame, FirstFreeEntry
  would not be updatedt, except by the Clear() function. This left FirstFreeEntry
  at 0, which meant the next string added to the pool would always go in
  slot 0, whether it was free or not.
2013-08-29 22:22:30 -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
Randy Heit
28e5cc536a Add some awareness of short file names
- Added I_GetLongPathName(). It wraps the Win32 API's GetLongPathName().
  DArgs::CollectFiles() now calls this for every argument it processes, so
  any arguments passed using short file names will be converted to long
  file names. This is mainly of interest so that savegames will never
  record the short file name, which can change based on what else is in
  the directory.
2013-08-29 21:24:05 -05:00
Christoph Oelckers
26c381224c - removed unused constants in p_map.cpp. 2013-08-28 11:16:30 +02:00
Christoph Oelckers
f8899f98fc - fixed: The secret counter was not incremented for items that had the UDMF COUNTSECRET flag set. 2013-08-28 11:14:48 +02: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
Christoph Oelckers
1b79f7d956 - fixed chance default for ACS's DropItem. 2013-08-13 08:52:53 +02:00
Christoph Oelckers
072b66fb9f - fixed: The music that's defined in the Gameinfo section of MAPINFO could not set the order for multitrack music lumps. 2013-08-12 21:11:53 +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
1b2d8420bb - DropItem for ACS. 2013-08-11 20:57:53 +02:00
Christoph Oelckers
c0174ea7cd - Added A_DropItem for DECORATE. 2013-08-11 20:48:08 +02:00
Christoph Oelckers
35764ff3b2 - fixed: Powerup.Strength is a fixed point value, so using it as health amount for PowerRegeneration requires division by FRACUNIT. 2013-08-11 20:39:53 +02:00
Christoph Oelckers
c5cba70fc8 - removed obsolete quit message #defines. 2013-08-11 13:36:48 +02:00
Christoph Oelckers
c7a46492eb - fixed bad index variable in R_RenderFakeWallRange. 2013-08-11 12:41:14 +02:00
Christoph Oelckers
1c889dc9fa - let APowerRegeneration use the Strength property to define the amount of regeneration it gives. 2013-08-10 09:51:48 +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
6a07118ea4 - added ML_BLOCKHITSCAN line flag. 2013-08-09 20:35:10 +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
0a258f95ea - added gravity property to UDMF things. Positive values are multiplied with the class's gravity property, negative values are used as their absolute. 2013-08-09 16:25:16 +02:00
Christoph Oelckers
5d0369d4ed - Ability to set A_VileAttack's initial attack's damage type - by BlueShadow. 2013-08-09 12:18:58 +02:00
Christoph Oelckers
b187451a71 - added APROP_ViewHeight and APROP_AttackZOffset submission by TheFortuneTeller. 2013-08-09 12:06:51 +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
Christoph Oelckers
a0c214104d Merge branch 'maint' of https://github.com/rheit/zdoom into maint 2013-08-09 11:47:33 +02:00
Christoph Oelckers
e6c880c93a - fixed: The sector's 'hidden' UDMF property did not properly clear the corresponding flag if the value was 'false'.
- added UDMF 'waterzone' property for sectors.
2013-08-09 11:47:25 +02:00
Braden Obrzut
7e76fb0078 - Fixed: Disable ifitem jumping if a link isn't specified since an invalid value can cause a crash. 2013-08-09 00:25:29 -04:00
Braden Obrzut
bb494292c6 - Fixed P_CheckMapData allowed non-map lump names to pass resulting in a crash when actually trying to load the map. 2013-08-08 23:47:58 -04:00
Christoph Oelckers
3480d40484 - fixed: AActor::Die may only randomize the death state's duration if it is positive. Otherwise -1 (infinite) gets clobbered. 2013-07-30 16:52:36 +02:00
Christoph Oelckers
a13af5cc65 Merge branch 'maint' of https://github.com/edward-san/zdoom into maint 2013-07-30 15:08:44 +02:00
Edoardo Prezioso
7e21eafc2f - Fixed mismatched alloc/dealloc in FTextureManager.
The 'TextureFrames', which is attached to all the 'mAnimatedDoors', were deleted with one-pointer 'delete' and they were allocated with 'new[]'.
2013-07-30 13:36:56 +02:00