Commit graph

113 commits

Author SHA1 Message Date
Christoph Oelckers
ebd17de30a - Fixed: PIT_FindFloorCeiling required tmx and tmy to be set but
P_FindFloorCeiling never did that.
- Merged Check_Sides and PIT_CrossLine into A_PainShootSkull.
- Replaced P_BlockLinesIterator with FBlockLinesIterator in all places it was
  used. This also allowed to remove all the global variable saving in
  P_CreateSecNodeList.
- Added a new FBlockLinesIterator class that doesn't need a callback
  function because debugging the previous bug proved to be a bit annoying
  because it involved a P_BlockLinesIterator loop.
- Fixed: The MBF code to move monsters away from dropoffs did not work as 
  intended due to some random decisions in P_DoNewChaseDir. When in the
  avoiding dropoff mode these are ignored now. This should cure the problem
  that monsters hanging over a dropoff tended to drop down. 

SVN r887 (trunk)
2008-04-06 17:33:43 +00:00
Christoph Oelckers
d938121378 - Added a NOTIMEFREEZE flag that excludes actors from being affected by
the time freezer powerup.
- Changed: Empty pickup messages are no longer printed. 

SVN r886 (trunk)
2008-04-06 09:24:41 +00:00
Christoph Oelckers
e105a29e99 - Externalized all default episode definitions. Added an 'optional' keyword
to handle M4 and 5 in Doom and Heretic.
- Added P_CheckMapData functions and replaced all calls to P_OpenMapData that
  only checked for a map's presence with it.
- Added Martin Howe's player statusbar face submission.
- Added an 'adddefaultmap' option for MAPINFO. This is the same as 'defaultmap'
  but keeps all existing information in the default and just adds to it. This
  is needed because Hexen and Strife set some information in their base
  MAPINFO and using 'defaultmap' in a PWAD would override that.
- Fixed: Using MAPINFO's f1 option could cause memory leaks.
- Added option to load lumps by full name to several places:
  * Finale texts loaded from a text lump
  * Demos
  * Local SNDINFOs
  * Local SNDSEQs
  * Image names in FONTDEFS
  * intermission script names
- Changed the STCFN121 handling. The character is not an 'I' but a '|' so
  instead of discarding it it should be inserted at position 124.
- Renamed indexfont.fon to indexfont so that I could remove a special case
  from V_GetFont that was just added for this one font.
- Added a 'dumpspawnedthings' CVAR that enables a listing of all things in 
  the map and the actor type they spawned.


SVN r882 (trunk)
2008-04-05 12:14:33 +00:00
Christoph Oelckers
cb1bd7739e - Fixed: P_CheckSwitchRange accessed invalid memory when testing a one-sided
line.
- Fixed: P_SpawnPuff assumed that all melee attacks have the same range
  (MELEERANGE) and didn't set the puff to its melee state if the range
  was different. Even worse, it checked a global variable for this so
  the behavior was undefined when P_SpawnPuff was called from anywhere
  else but P_LineAttack. To reduce the amount of parameters I combined
  this information with the hitthing and temporary parameters into one
  flags parameter. Also changed P_LineAttack so that it gets passed
  an additional parameter that specifies whether the attack is a melee
  attack or not and set this to true in all calls that are to be considered
  melee attacks. I couldn't use the damage type because A_CustomPunch
  and A_CustomMeleeAttack allow passing any damage type they want.
- Added a sprite option as an alternative of particles for FX_ROCKET 
  and FX_GRENADE.


SVN r879 (trunk)
2008-04-04 14:31:20 +00:00
Christoph Oelckers
d780c2e3a4 - Fixed: The minimum parameter count for ACS_Execute and ACS_ExecuteAlways for
DECORATE was wrong (2 instead of 1.)
- Changed: Hexen set every cluster to be a hub if it hadn't been defined before
  a level using this cluster. Now it will only do that if HexenHack is true, 
  i.e. when original Hexen format MAPINFOs are parsed. For ZDoom format 
  MAPINFOs it will now be the same as for the other games which means that 
  'hub' has to be declared explicitly.
- Added an Idle state that is entered in place of the spawn state if a monster
  has to return to its inactive state if it can't find any more targets.
- Added MF5_NOINTERACTION flag which completely disables all physics related
  code for any actor with this flag. Mostly useful for particle effects where
  the actors just move a certain distance and then disappear.
- Removed the last remains of the antialias precalculation code from
  am_map.cpp because it was no longer used.
- Fixed: Two-sided lines bordering a secret sector were not drawn in the
  proper color
- Fixed: The automap didn't check ACS_LockedExecuteDoor for its lock color.


SVN r876 (trunk)
2008-04-03 10:49:54 +00:00
Randy Heit
776d89428d - Changed D3DFB to explicitly request double buffering instead of assuming
that the drivers will treat a BackBufferCount of 0 as a request for
  double buffering.
- Fixed: Unsetting a cvar did not remove it from the list of tab
  completions.
- Added "" as a synonym for "nullimage" in SBARINFO.
- Fixed: MAKESAVESIG's stringifier in version.h did not work as expected.
  It stringified the passed macro name, not the value of the macro.
- Moved DCajunMaster off the DObject hierarchy.
- Changed DCajunMaster::getspawned into a TArray of FStrings. It was
  mysteriously being left pointing to uninitialized memory during the
  final GC at exit and crashing.
- Fixed: The code that removed hexdd.wad from the list of IWADs when
  hexen.wad was not present did not work.


SVN r861 (trunk)
2008-03-28 00:38:17 +00:00
Christoph Oelckers
997533e0c8 - Fixed: DCajunMaster::End was missing a write barrier for getspawned. The
same problem in D_DoomMain.
- Made bglobal a pointer because it was causing problems with the garbage 
  collector.


SVN r859 (trunk)
2008-03-27 22:37:13 +00:00
Christoph Oelckers
07e795e656 - Changed DObject's pointer substitution so that the pointers inside an
object are handled by a virtual function. This allows subclasses to
  implement their own handling if they need it.


SVN r797 (trunk)
2008-03-12 16:27:47 +00:00
Christoph Oelckers
f609f43187 - Bumped the minimum savegame version because the current version crashes
each time an old savegame is loaded.


SVN r796 (trunk)
2008-03-12 13:48:35 +00:00
Randy Heit
f2660dc336 - Merged the GC branch back into the trunk, so now it can receive more
testing from the people who download SVN trunk builds.

SVN r795 (trunk)
2008-03-12 02:56:11 +00:00
Randy Heit
ef99d9c057 - Fixed: PTR_BounceTraverse only checked for projectiles that were too
high to pass through two-sided lines, but not ones that were too low.
- Fixed: SBARINFO couldn't detect the extreme death damage type for the
  player face animation.


SVN r782 (trunk)
2008-03-04 00:56:22 +00:00
Christoph Oelckers
5589f6b7a1 - 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
03617dc6f0 - Fixed: When starting a level while the music has been paused S_Start has
to stop the old music so the new one always starts at the beginning.
- Fixed:: AActor::master was not serialized.
- Fixed: Sound targets pointing to dead players should be cleared before 
  respawning the player.
- Fixed: When the DONTMOVE flag is set A_Chase must not call P_NewChaseDir.
- Changed PowerupGiver initialization so that the actual powerup class is looked
  up during postprocessing.
- Gave Strife's instant death sector type its own damage type.


SVN r778 (trunk)
2008-03-01 13:12:33 +00:00
Randy Heit
5124a28a15 SVN r753 (trunk) 2008-02-19 01:34:15 +00:00
Randy Heit
e8e7cebe18 - Fixed: Turning off follow mode with automap rotating enabled did not
function in an easy-to-understand manner.
- Fixed: D_AddWildFile() blindly assumed that all matches were files.
- Added back the dead player check to CheckIfExitIsGood(), but now it
  applies only if the next map is part of the same hub. Otherwise, you can
  still exit the map while dead.
- Removed the SpawnedPuff global variable and made it a return value from 
  P_LineAttack().
- Fixed: P_SpawnPuff() played sounds for temporary puffs.


SVN r739 (trunk)
2008-02-12 05:54:03 +00:00
Randy Heit
6af5665575 - Fixed: Morphed pig and chicken players made normal human *usefail sounds.
- G_DoSaveGame() now receives the filename and description from its arguments
  rather than global variables, so autosaves and manual saves can be done
  in close proximity to each other without overwriting the parameters for
  one of them.
- Fixed potential buffer overrun in G_SaveGame() and added a check so that
  you can't interfere with saves that are still pending.
- Fixed: P_LineAttack() creates temporary puffs to get damage types, but this
  had the side effect of creating particles for the puff.
- Fixed: The Heretic status bar tried to use the graphic "SELECTBOX" for the
  inventory selector. The correct name is "SELECTBO".
- Fixed: Using allowrespawn for a single-player map would fire off enter
  scripts instead of respawn script because the player wasn't assigned the
  state PST_REBORN.
- Fixed: P_CheckMissileSpawn() now passes the BlockingMobj to
  P_ExplodeMissile() so that it can select the appropriate death state.
- Added the manifest to MinGW-compiled builds of updaterevision so you can
  build under Vista with MinGW without needing administrative privileges.
  (But I still want to know why Vista thinks it needs elevated privileges
  without a manifest telling it otherwise.)
- Using four 0xFF bytes for the final note of an IMF song should signal the
  end of the song.


SVN r733 (trunk)
2008-02-05 23:32:49 +00:00
Christoph Oelckers
01e5ec251c - Fixed: The render style table for old decorations was missing STYLE_Stencil so
STYLE_Translucent was mapped incorrectly.


SVN r727 (trunk)
2008-01-31 21:00:34 +00:00
Christoph Oelckers
58816f5d09 - Added Karate Chris's patch for teamplay MAPINFO option.
- Added Karate Chris's patch for custom damage color per player class.
- Added Karate Chris's patch for respawnlimit skill property.
- Added Karate Chris's patch for Strife quit messages.
- Fixed: P_RailAttack ignored the puff's damage type.


SVN r714 (trunk)
2008-01-26 16:42:16 +00:00
Randy Heit
e5572a1c4e - Updated lempar.c to v1.31.
- Added .txt files to the list of types (wad, zip, and pk3) that can be
  loaded without listing them after -file.
- Fonts that are created by the ACS setfont command to wrap a texture now
  support animated textures.
- FON2 fonts can now use their full palette for CR_UNTRANSLATED when drawn
  with the hardware 2D path instead of being restricted to the game palette.
- Fixed: Toggling vid_vsync would reset the displayed fullscreen gamma to 1
  on a Radeon 9000.
- Added back the off-by-one palette handling, but in a much more limited
  scope than before. The skipped entry is assumed to always be at 248, and
  it is assumed that all Shader Model 1.4 cards suffer from this. That's
  because all SM1.4 cards are based on variants of the ATI R200 core, and the
  RV250 in a Radeon 9000 craps up like this. I see no reason to assume that
  other flavors of the R200 are any different. (Interesting note: With the
  Radeon 9000, D3DTADDRESS_CLAMP is an invalid address mode when using the
  debug Direct3D 9 runtime, but it works perfectly fine with the retail
  Direct3D 9 runtime.) (Insight: The R200 probably uses bytes for all its
  math inside pixel shaders. That would explain perfectly why I can't use
  constants greater than 1 with PS1.4 and why it can't do an exact mapping to
  every entry in the color palette.
- Fixed: The software shaded drawer did not work for 2D, because its selected
  "color"map was replaced with the identitymap before being used.
- Fixed: I cannot use Printf to output messages before the framebuffer was
  completely setup, meaning that Shader Model 1.4 cards could not change
  resolution.
- I have decided to let remap palettes specify variable alpha values for
  their colors. D3DFB no longer forces them to 255.
- Updated re2c to version 0.12.3.
- Fixed: A_Wander used threshold as a timer, when it should have used
  reactiontime.
- Fixed: A_CustomRailgun would not fire at all for actors without a target
  when the aim parameter was disabled.
- Made the warp command work in multiplayer, again courtesy of Karate Chris.
- Fixed: Trying to spawn a bot while not in a game made for a crashing time.
  (Patch courtesy of Karate Chris.)
- Removed some floating point math from hu_scores.cpp that somebody's GCC
  gave warnings for (not mine, though).
- Fixed: The SBarInfo drawbar command crashed if the sprite image was
  unavailable.
- Fixed: FString::operator=(const char *) did not release its old buffer when
  being assigned to the null string.
- The scanner no longer has an upper limit on the length of strings it
  accepts, though short strings will be faster than long ones.
- Moved all the text scanning functions into a class. Mainly, this means that
  multiple script scanner states can be stored without being forced to do so
  recursively. I think I might be taking advantage of that in the near
  future. Possibly. Maybe.
- Removed some potential buffer overflows from the decal parser.
- Applied Blzut3's SBARINFO update #9:
  * Fixed: When using even length values in drawnumber it would cap to a 98
    value instead of a 99 as intended.
  * The SBarInfo parser can now accept negatives for coordinates. This
    doesn't allow much right now, but later I plan to add better fullscreen
    hud support in which the negatives will be more useful. This also cleans
    up the source a bit since all calls for (x, y) coordinates are with the
    function getCoordinates().
- Added support for stencilling actors.
- Added support for non-black colors specified with DTA_ColorOverlay to the
  software renderer.
- Fixed: The inverse, gold, red, and green fixed colormaps each allocated
  space for 32 different colormaps, even though each only used the first one.
- Added two new blending flags to make reverse subtract blending more useful:
  STYLEF_InvertSource and STYLEF_InvertOverlay. These invert the color that
  gets blended with the background, since that seems like a good idea for
  reverse subtraction. They also work with the other two blending operations.
- Added subtract and reverse subtract blending operations to the renderer.
  Since the ERenderStyle enumeration was getting rather unwieldy, I converted
  it into a new FRenderStyle structure that lets each parameter of the
  blending equation be set separately. This simplified the set up for the
  blend quite a bit, and it means a number of new combinations are available
  by setting the parameters properly.


SVN r710 (trunk)
2008-01-25 23:57:44 +00:00
Randy Heit
25e0f0644a - Plugged more leaks in SBARINFO.
- Spawned actors that have MF2_DORMANT set in their default instance now have
  Deactivate() called on them immediately after spawning.


SVN r707 (trunk)
2008-01-16 04:43:50 +00:00
Randy Heit
c694c55afd - Fixed: When starting a teamplay netgame, players who did not specify a team
were not informed about which team they ended up joining.
- Added Skulltag's DF2_SAME_SPAWN_SPOT flags.
- Fixed: DF2_YES_DEGENERATION was pretty much guaranteed to go out of sync
  because it used gametic for timing.
- Added DoubleAmmoFactor as a skill property for the DF2_YES_DOUBLEAMMO flag.
- Renumbered the dmflags2 entries to match Skulltag's again.
- Added Karate Chris's infinite ammo patch.


SVN r683 (trunk)
2008-01-09 02:53:38 +00:00
Christoph Oelckers
0535d15df3 - Split off the entire translation code from r_draw.cpp into r_translate.cpp.
- Moved the common code of ACS and DECORATE translation generation into the
  FRemapTable class.
- Fixed: The DECORATE translation code was not changed for the new data structures.
- Expanded range of ACS and DECORATE translations to 65535. 
- Fixed: R_CopyTranslation was not altered for the new functionality.
  I removed the function and replaced the one use with a simple assignment.


SVN r644 (trunk)
2007-12-26 16:06:03 +00:00
Christoph Oelckers
faa9cc4302 - added a P_PointInSector function and replaced all calls to retrieve an
actor's sector in the game engine code with it. This way there's a clear
  distinction between renderer-specific and game-specific calls.


SVN r638 (trunk)
2007-12-25 10:07:58 +00:00
Christoph Oelckers
b48cc1792b - Added Karate Chris's TEAMINFO submission.
SVN r610 (trunk)
2007-12-20 20:22:31 +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
Randy Heit
6a00173a12 - Fixed: SECSPAC_EyesSurface and SECSPAC_EyesDive did not trigger due to
crouching motion.
- Fixed: The keypress for nightmare mode verification appeared in the console
  if the fullscreen console was open while using the menu.
- Added support for scaling down large console fonts in the customize
  controls menu.
- Fixed: Joining a negative team was possible.


SVN r590 (trunk)
2007-12-09 03:40:02 +00:00
Christoph Oelckers
aeee07218c - after looking at the most recent Vavoom update I realized that A_FastChase should not
use the multi-purpose special2 as counter for strafing so I added a new variable
  for this purpose.
- forgot to save p_lnspec.cpp before last commut.


SVN r574 (trunk)
2007-11-28 13:53:55 +00:00
Christoph Oelckers
621fe2ed98 - Changed PowerFlight so that Hexen's infiniteness is not controlled by being
in a hub but by a level flag instead.
- Fixed: Floor and ceiling huggers must set themselves to floor and ceiling each
  time they move.
- Added a LEVEL_NOMONSTERS flag so that G_ChangeLevel doesn't have to mess with
  the dmflags CVAR to start the level without monsters.


SVN r563 (trunk)
2007-11-08 09:22:06 +00:00
Christoph Oelckers
170b633e91 - added two new things which can set a sector's color without the need of tags
or scripts. ColorSetter (#9038) sets the sector's color and FadeSetter (#9039)
  sets the fog color.
- added new flags MF5_ALWAYSFAST and MF5_NEVERFAST. These flags unconditionally
  enable or disable fast movement logic, regardless of skill settings.
- added an abstraction layer for skill related settings. This is a preparation
  for implementing custom skill definitions but right now all it does is
  returning the original values but keeping the related information all in one
  place


SVN r557 (trunk)
2007-10-29 22:15:46 +00:00
Christoph Oelckers
b15767c26f - Fixed: The pointer cleanup code must also check a sector's sky box pointers.
- Fixed: Right after teleporting P_SlideMove could cause player movement.
  Added a check for reactiontime to prevent that.
- Fixed: PainChances and Damagefactors were never freed.
- Added option to A_Chase that prevents the monster from moving.
- Fixed: The stained glass shards were missing the HEXENBOUNCE flag.
- Added some NULL pointer checks to AActor::GiveAmmo.
- Fixed: The FSwordMissile was missing the special damage handling that
  reduces damage when hitting a player.

SVN r555 (trunk)
2007-10-29 20:27:40 +00:00
Christoph Oelckers
7539d5ad70 SVN r548 (trunk) 2007-09-25 23:49:20 +00:00
Christoph Oelckers
09f5bbc2d3 - Fixed: AActor::CopyFriendliness must not copy the target if it has the
MF3_NOTARGET flag set.
- Fixed: Picking up weapons in deathmatch gives 2.5 times as much ammo as
  in other modes.


SVN r547 (trunk)
2007-09-25 23:31:27 +00:00
Christoph Oelckers
5e2e389bd1 - fixed: The BFGBall's explosion sequence was missing a state.
- fixed: The brown Chaos Serpent in Hexen had an incorrect sprite for its
  ice death sequence set.
- fixed: Ammo upon game start does not get multiplied when on easy skill.
  Implementing this as an inventory flag IF_IGNORESKILL also allows to create
  ammo/weapon/backpack types that don't multiply the ammo given when on this
  skill.
- moved Doom exit sounds into SNDINFO as $random definitions.
- Fixed: Dying Lost Souls could be reset to their see state if they slammed into
  something.

SVN r540 (trunk)
2007-07-28 12:38:10 +00:00
Christoph Oelckers
2829361c5c - Added DTA_TopOffset and DTA_LeftOffset values to the automap background drawer.
- Fixed: DECORATE color translations with explicit colors didn't work because the
  code treated byte values as fixed point.
- Fixed: LEVEL_NOALLIES must clear MF_FRIENDLY off any spawned actor except players.
  Otherwise it doesn't work properly.
- Fixed: Entering a backslash in the player's name box caused a crash because 
  the code analyzing the string was missing a NULL pointer check.
- Fixed: Thing_Hate and Teleport_ZombieChanger unconditionally made state jumps,
  even for dead monsters.
- Fixed: The palette flash for item pickup was not reset upon a player's death.
- Fixed: P_DamageMobj tried to get damage multiplier information from the
  damage inflictor, not the attacker.
- Fixed: PowerTimeFreezer::DoEffect did not call its superclass method.
- fixed: When morphed monsters died they tried to set MF3_STAYMORPHED for the
  attacker, not themselves. This caused a crash when they were killed by a crusher.


SVN r539 (trunk)
2007-07-12 15:15:57 +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
Christoph Oelckers
d60a5ee1b9 - added Skulltag's custom F1 help screen MAPINFO option.
- Fixed: Resurrecting a player must restore all flags words, not just the first one.
- Fixed: APowerWeaponLevel2::EndEffect must check PendingWeapon for WP_NOCHANGE.
- added Skulltag's high jump rune as a powerup
- Added Skulltag's Drain and Regeneration runes as powerups and used specific player
  sounds for their sound effects instead of using misc/i_pkup.
  (If I ever decide to implement runes it will be in a way that can use the regular
  powerups instead of having to define specific classes for them.)
- Added Skulltag's PowerQuadDamage and PowerQuarterDamage as more customizable
  PowerDamage and PowerProtection. These new powerups allow free customization of
  the damage modification per damage type by inheriting from these classes and
  setting specific values. Such derived damage/protection powerups will be considered
  as separate powers so that for example a QuadDamage and a DoubleDamage item can be
  stacked which would result in 8x damage.
- merged player_t::cheats and player_t::Powers into one variable.


SVN r529 (trunk)
2007-05-10 22:22:38 +00:00
Christoph Oelckers
12c122a7dd - Fixed: player_t::Powers was not saved in a savegame.
- Removed all unused PW_* player power flags.
- Added Skulltag's TimeFreezer powerup.


SVN r527 (trunk)
2007-05-01 15:09:44 +00:00
Christoph Oelckers
9deec29b34 - added a CANUSEWALLS flag which allows a monster to activate 'use' specials
like doors. This flag is on by default for any monster which was the
  previous behavior.
- Optimized the DECORATE flag parser so it can more efficiently handle
  the deprecated flags. As a side effect of this optimization the deprecated
  flags became usable in A_ChangeFlag again.
- Changed LONGMELEERANGE flag into a MeleeThreshold property.
- Changed SHORTMISSILERANGE flag into a MaxTargetRange property.
- Added Thing_Stop action special.


SVN r517 (trunk)
2007-04-22 21:01:35 +00:00
Christoph Oelckers
a370ea70c6 - Fixed: ShowErrorPane deleted the StartScreen instead of just calling
NetDone.
- moved the DIM_MAP define into v_palette.h so that it can be accessed
  from outside the status bar code.
- Fixed: The check for non-swimmable water in UpdateWaterLevel checked for
  SECF_UNDERWATER instead of SECF_UNDERWATERMASK.


SVN r514 (trunk)
2007-04-22 07:45:18 +00:00
Randy Heit
38c821a96e - Fixed: Morphed players did not regain their innate armor when unmorphing.
(Only Hexen has players with innate armor, under normal conditions.)


SVN r504 (trunk)
2007-03-14 01:48:19 +00:00
Randy Heit
72643bece6 - Changed P_SpawnPlayerMissile() to use the same height calculation as
P_(Aim)LineAttack().
- Added an AttackZOffset to PlayerPawn. This is the offset from the
  center of the player at which their attacks are fired and scales
  according to their crouched height.
- Changed the version of P_SpawnPlayerMissile() that takes coordinates
  to use that location as an offset from the standard attack location
  rather than as an explicit attack location.


SVN r498 (trunk)
2007-03-07 17:31:40 +00:00
Randy Heit
e01ff5707c - Added an IF_KEEPDEPLETED flag for inventory items to keep them in the
player's inventory even when they have been used up. If the item also
  has an inventory bar icon, it will be drawn darkened when it is
  depleted.


SVN r497 (trunk)
2007-03-07 02:24:24 +00:00
Christoph Oelckers
d26824e5d1 - Fixed: In the Doom2 cast finale it was impossible to toggle the console.
- Added APROP_Friendly actor property for ACS.
- Added a new flag, MF2_DONTREFLECT that prevents missiles from being reflected.
- Fixed: ALoreShot::DoSpecialDamage must check whether the shooter is still
  present. If it had been removed before the projectile hits its target
  a crash could occur.
- Fixed: GetPlayerInfo was missing breaks and always returned 0 as a result.
- Added Grubber's submission for printing key bindings in ACS.


SVN r491 (trunk)
2007-02-24 12:09:36 +00:00
Randy Heit
01cd91fd9e - Fixed: EV_Teleport() did not set players to their idle state, so if they
were running when the teleported, they would still be running afterward
  even though they weren't moving anywhere. Normally, P_XYMovement() does
  this when they stop due to friction.
- Fixed: AActor::TakeSpecialDamage() completely bypassed the standard rules
  for target switching on actors with MF5_NODAMAGE set.
- Changed the return values of the ACS spawn, spawnspot, and spawnspotfacing
  commands to be the total count of things spawned, rather than a pretty
  much useless reference to the actor spawned at the last map spot.
- Fixed: DLevelScript::DoSpawn() takes a byte angle, but DoSpawnSpotFacing()
  passed it a full-length angle.
- Fixed: When MF_SKULLFLY is removed because an actor slams into something,
  it was set to a see or spawn state, resetting its tic count and bypassing
  the effectiveness of the MF2_DORMANT flag. While I was at it, I decided
  dormant skulls shouldn't do slamming damage, either.
- Fixed: P_Thing_Spawn() returned success only if all thing instances were
  successfully spawned. As long as at least one thing was spawned, it should
  be considered a success.
- Fixed: Flipped single rotation sprites were only flipped every other 22.5
  degree interval.


SVN r484 (trunk)
2007-02-14 22:47:01 +00:00
Randy Heit
4a6fa7f2a3 - Removed the 63-character limit on sound names.
SVN r475 (trunk)
2007-02-04 00:33:17 +00:00
Randy Heit
b361ba05d8 - Reduced the rate at which drowning damage increases.
- Added more player water sounds:
    *dive - Played when your head goes below water.
    *surface - Played when your head goes back above water.
    *gasp - Played when you were drowning and get your air back.
  If your head surfaces and you were drowning, only *gasp plays, not both.
- Added damage-specific player death sounds, in the same fashion as the
  damage-specific player pain sounds. It looks for a sound with a name like
  "*death-damagetype" first and then "*death" if the first sound didn't exist.
- Removed the constraint that player sounds must be reserved before they can
  be assigned. Hence, the $playerreserve command has been eliminated, because
  it is no longer needed and it was never accessible from user wads, so I
  don't need to worry about breaking anything by removing it.


SVN r474 (trunk)
2007-02-04 00:22:56 +00:00
Christoph Oelckers
d0c910fca6 - added Grubber's submission for customizable gravity per actor.
- Fixed: A_Jump didn't work for weapons or CustomInventory items.



SVN r456 (trunk)
2007-01-20 14:27:44 +00:00
Randy Heit
47c401f4ec - Replaced the vector math routines with the ones I developed for the FP code.
SVN r454 (trunk)
2007-01-19 02:00:39 +00:00
Christoph Oelckers
3c976ac02c - Converted the StrifePlayer to DECORATE. Even though it requires exporting
3 new code pointers without general use it was necessary to handle
  GiveDefaultInventory consistently for all players without the need to 
  subclass this function.
- Added a Player.RunHealth property to expose the StrifePlayer's behavior of
  not being able to run when its health is below 10.
- Changed APlayerPawn::GiveDefaultInventory so that it always adds a HexenArmor
  and a BasicArmor item to the inventory. If these items are not the first ones
  added to the inventory anything else that might absorb damage is not guaranteed 
  to work consistently because their function depends on the order in the inventory.
- Changed handling of APowerup's DoEffect so that it is called from the owner's
  Tick function, not the item's. This is so that the order of execution is
  determined by the order in the inventory. When done in the item's Tick function
  order depends on the global thinker table which can cause problems with the
  order in which conflicting powerups apply their effect. Now it is guaranteed
  that the item that was added to the inventory first applies its effect last.
- Fixed: Added checks for Speed==0 to A_Tracer and A_Tracer2 because this could
  cause a divide by zero.
- Fixed: P_MoveThing must also set the moved actor's previous position to
  prevent interpolation of the move.
- Fixed: APowerInvisibility and its subclasses need to constantly update
  the owner's translucency information in case of interference between different
  subclasses. Also changed Hexen's Cleric's invulnerability mode to disable
  the translucency effect if an invisibility powerup is active.


SVN r448 (trunk)
2007-01-12 15:24:10 +00:00
Christoph Oelckers
4510ccf849 - Ported GZDoom's deep water splash code so that splashes are handled properly
in Boom maps with non-swimmable water.
- Changed ENDOOM CVAR so that there is an option to show only modified versions.


SVN r444 (trunk)
2007-01-07 09:43:58 +00:00