Commit graph

572 commits

Author SHA1 Message Date
Randy Heit
88549aebcd - For compatibility with the software renderer, D3DFB::DrawTextureV needs to
truncate the coordinates to integers before sending them to the hardware.
  Otherwise, there can be one pixel gaps compared to the software renderer,
  because the hardware is rounding to nearest but the software renderer is
  simply truncating the fractional part of the coordinate. This is the real
  cause of the gap above the status bar at 1152x864 (and another gap to the
  left of the status bar at 800x500).
- Fixed: When D3DFB::DrawTextureV had to clip a tile, it adjusted the 
  texture coordinates erroneously, still using the old calculations from
  before texture packing was implemented.


SVN r695 (trunk)
2008-01-12 02:12:09 +00:00
Randy Heit
ce388163e1 - Moved thingdef_codeptr.cpp into thingdef/ with the other thingdef files.
- Fixed: After loading a savegame, G_UnSnapshotLevel() destroyed the
  unmorphed versions of players because it thought they were extras.


SVN r694 (trunk)
2008-01-12 01:17:37 +00:00
Christoph Oelckers
0b7357b2fc - Added Skulltag's pickup sprite and related information to the pistol. This
will also double as the pistol's icon in the AltHUD.
- Added a generic log display that can show Strife's log messages in all games
  regardless of the current game, active status bar and HUD mode.
- Added GZDoom's alt HUD.

SVN r693 (trunk)
2008-01-11 22:38:10 +00:00
Christoph Oelckers
e06c645310 - Moved the code that renders the view from D_Display into a virtual function
of the frame buffer so I can get rid of the last remaining renderer check
  outside the display code in GZDoom.
- made V_SetResolution a virtual function in IVideo. It's probably not a perfect
  solution but at least it allows overriding it (which I need in GZDoom.)
  Note: There's a lot of redundancy between hardware.cpp/h in the SDL and Win32
  folders so some cleaning up might be a good idea.


SVN r692 (trunk)
2008-01-11 21:04:22 +00:00
Randy Heit
a9dc8ddce3 - Fixed: Weapon positions were only adjusted in 1280x1024 if the status
bar was hidden.
- Fixed: If you died in co-op and somebody else ended the map before you
  respawned, you would start the next map with only default inventory, no
  matter what dmflags was set to.


SVN r691 (trunk)
2008-01-11 01:43:37 +00:00
Randy Heit
756be2755a - Applied Karate Chris's TEAMINFO logo patch.
SVN r690 (trunk)
2008-01-11 00:22:52 +00:00
Christoph Oelckers
a5265c4ec5 - defined a constant for the crosshair menu entry's index to get a direct
reference out of the function code.
- Fixed: The BrainExplosions should not perform any collision detection. To
  achieve this their Damage value must be set to 0 when being spawned.
- Added a safety check to savegame versioning so that an invalid revision
  (reported as 0) will be handled without breaking savegame compatibility.


SVN r689 (trunk)
2008-01-10 11:02:07 +00:00
Randy Heit
612d1b2fa3 - Added Blzut3's SBARINFO update #6:
* Fixed: A tutti-frutti like effect would occur if transparent images were used
    in bars.
  * Fixed: drawswitchableimage didn't count having 0 of an item as not having
    the said item.
  * Added alwaysshowcounter flag to both drawinventorybar and
    drawselectedinventory.
  * Added armoricon image type to drawimage.
  * Added low-on secondary coloring and high-on coloring to drawnumber.


SVN r688 (trunk)
2008-01-10 04:22:48 +00:00
Randy Heit
ca0b61d066 - Added texture packing to D3DFB so that textures that are temporally related
can share the same hardware texture. This greatly reduces the number of
  DrawPrimitive calls that need to be made when drawing text (or any 2D
  graphics in general), so now hardware text is much faster than software text
  all around. (As an example, one scenario went from 315 fps to over 1635 fps
  for hardware, compared to 540 fps for software.)


SVN r687 (trunk)
2008-01-10 04:11:38 +00:00
Randy Heit
9839cbfc82 - Fixed: The mouse was being grabbed in windowed mode again.
- Modified M_DrawFrame() and R_DrawTopBorder() so that they call FlatFill() to
  draw the edges of the frames. This at least seems a bit faster for hardware
  2D.
- Implemented FlatFill() for D3DFB. It seems to be exactly as fast as the
  default implementation that just calls DrawTexture() to tile the pieces onto
  the screen, so I'm not sure it was worth the bother.


SVN r686 (trunk)
2008-01-09 23:04:49 +00:00
Randy Heit
0b4092e98e - Merged the separate line and quad vertex buffers in D3DFB back into a single
vertex buffer, made line batching automatic, and added an index buffer for
  use when batching quads. The index buffer actually offered more of a
  performance boost than simply batching the quads alone did.


SVN r685 (trunk)
2008-01-09 21:04:21 +00:00
Christoph Oelckers
3bd53dafbe - Fixed: 'Painchance' in DECORATE failed when reading custom damage type names.
- Added Karate Chris's patch for menu opening console commands.


SVN r684 (trunk)
2008-01-09 09:01:30 +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
Randy Heit
761c77d033 - Added support for user-defined crosshairs in the Display Options menu. See
xhairs.txt in zdoom.pk3. It's pretty simple.


SVN r679 (trunk)
2008-01-08 04:00:43 +00:00
Randy Heit
2d4b679fcb - Fixed: P_BounceWall() cannot assume that BlockingLine is the line the actor
should bounce off of. Since the order lines in a blockmap cell are checked
  for collision is essentially undefined, there could be another line closer to
  the actor that it should bounce off of instead.

SVN r678 (trunk)
2008-01-08 03:21:01 +00:00
Randy Heit
016ac67376 - Fixed: Thing_SetTranslation still used a 16-bit word to hold the translation.
- Bumped the maximum resolution up to 2560x1600.
- Fixed: DCanvas::DrawTexture() only expanded virtual screen sizes for widescreen
  resolutions but left 5:4 modes alone. This fix neccessitated the addition of
  DTA_Bottom320x200 for the status bar to use so that it could be flush with the
  bottom of the screen rather than sitting slightly above it.
- Fixed: FConfigFile::ReadConfig()'s definition of whitespace was too broad.
- Fixed: Defining custom translation ranges in descending order and/or with gaps
  made for crashes.


SVN r676 (trunk)
2008-01-08 01:08:27 +00:00
Christoph Oelckers
ed242b32df - Fixed: translationtables cannot use a TAutoGrowArray because it doesn't
initialize newly added fields when growing.


SVN r675 (trunk)
2008-01-07 22:07:25 +00:00
Christoph Oelckers
9cdd0b98ce - Added fix for Heretic IDKFA cheat by Karate Chris.
- Added fix for Strife's AlienSpectre obituary by Karate Chris.


SVN r674 (trunk)
2008-01-07 08:58:18 +00:00
Christoph Oelckers
f918a43286 - Re-converted icebreak.flac because the old version apparently didn't work.
SVN r673 (trunk)
2008-01-06 20:54:18 +00:00
Christoph Oelckers
1f0fa7c457 - Added SBARINFO update #5 by blzut3:
- Fixed: Playerclass still didn't work due to comparing of improper numbers.
    - Fixed: The arrows on drawinventorybar had a hard coded location instead of
      relative to the specified coordinates.
    - Added noarrows flag to drawinventorybar to remove the blue arrows drawn when
      there are more items to the left or right of the viewable bar.
    - Added forcescaled flag to the statusbar command.  This is ignored on the
      inventory and inventoryfullscreen types.
- Added obituary fix for Strife peasants by Karate Chris.
- Added fix for loading during demo playback by Karate Chris.


SVN r672 (trunk)
2008-01-06 19:10:52 +00:00
Christoph Oelckers
d7add9ce76 - Added scoreboard fix by Karate Chris.
SVN r671 (trunk)
2008-01-06 11:46:01 +00:00
Christoph Oelckers
fdbd18c50e - Added teamgame fix for menu by Karate Chris.
- Added GZDoom's Sector_Outside sector type which forces outside fog
  regardless of ceiling texture.


SVN r670 (trunk)
2008-01-06 10:05:24 +00:00
Randy Heit
59c007d5f4 - Fixed: Since the minimum size for a texture is 2x2, FBarShader can't use
a one-dimensional texture.


SVN r669 (trunk)
2008-01-06 04:20:53 +00:00
Randy Heit
51461aa010 - Added back the code to allow some variation to the players' shades when
players are on teams.
- Set TEAM_None back to 255. Since a player's team has already been accessible
  through ACS, needlessly redefining this is a bad thing to do, since it can
  break existing maps. 255 different teams should still be more than enough.
- Fixed: At certain resolutions, there was a one pixel row between the status
  bar and the rest of the screen, thanks to rounding error.
- Added automatic batching of quads to D3DFB. Screens with a lot of text are
  ever-so-slightly faster now, though still only about half the speed of
  sofware-only text. I suppose the only way to see a marked improvement is
  going to be by stuffing multiple glyphs in a single texture.
- Fixed: Crosshairgrow's animation was not framerate-independent.


SVN r668 (trunk)
2008-01-06 04:03:33 +00:00
Christoph Oelckers
935eeb06f1 - Added: Automap markers are stored in savegames now. Also moved the call
to AM_LevelInit to its proper place in G_DoLoadLevel, right after
  the call to P_SetupLevel to make it work as intended.


SVN r667 (trunk)
2008-01-05 12:15:10 +00:00
Christoph Oelckers
10b71b09c8 - Changed savegame versioning to use the SVN revision number instead of
an arbitrarily defined value. This reduces the amount of relevant values
  that have to be defined in version.h to 1 (the minimum compatible savegame
  version) instead of previously 3.


SVN r666 (trunk)
2008-01-05 09:12:05 +00:00
Randy Heit
3017f7646d - Fixed: FBarShader::PrepareShader() set a member variable to point at a
local variable just before returning. Then I made some more changes so that
  it can be a properly functioning texture. After doing that, I decided to
  rewrite the texture generation to be easier for me to read and hopefully
  faster, since this thing is getting generated every frame. (Please don't
  hurt me if I got it wrong. I'm basing this on the description in the wiki,
  since I couldn't wrap my head around what the code was doing by looking
  at it.) Then I realized that there's really no reason to have more than four
  of these ever, and they can be statically generated, so I simplified it some
  more.
- Added Blzut3's latest SBARINFO patch:
 * Fixed a massive memory leak in SBARINFO. The leak also lead to progressive
   CPU usage.
 * Fixed: Playerclass didn't work in SBARINFO.
 * Fixed: Artiflash was improperly initialized causing it not to display the
   first time.
 * Changed the variable SBarInfoScript to be a pointer to prevent more memory
   leaks.


SVN r665 (trunk)
2008-01-05 04:23:34 +00:00
Christoph Oelckers
aa90336765 - Removed the patches for the Doom/Heretic E1 intermission screens from
R_InitPatches. This isn't needed anymore because all these are loaded through
  an intermission script.
- Fixed: A_SpawnDebris read the third and fourth arguments from the first one's
  address.


SVN r664 (trunk)
2008-01-04 08:51:51 +00:00
Randy Heit
5cbb2bd472 - Moved the pixel shaders' color information out of the constant registers
and into the vertex data.
- Added functions for doing line drawing with Direct3D, including a new pair
  of functions to do batched line drawing so that the map can actually be
  drawn faster in hardware than in software (instead of an order of magnitude
  slower).


SVN r663 (trunk)
2008-01-04 05:22:30 +00:00
Randy Heit
5d9d2a9088 - Tried adding bilinear filtering support for paletted textures, but the
shader seems to be producing crappy output, so it's disabled for now.
  Specifically, it produces distorted output at regular intervals for
  textures that aren't power-of-2-sized, and it's still doing visible
  filtering when the texture is rendered at its original size, so
  obviously it's not doing something right.
- Fixed the use of power-of-2-sized native textures for smaller game
  textures again.
- Fixed: D3DFB did not restore all the state it needed to after resetting
  the device.
- Fixed: R_DrawTopBorder() must clip itself around the 3D view, since it's
  now drawn later.
- With full software rendering, palette flashes once again effect the whole
  screen.

Changes I neglected to put in the previous commit log:

- Moved the view border drawing into the 2D mode part. When using Begin2D()
  now, the only part of the software buffer that gets updated to the screen
  is the part with the actual 3D scene and only if you tell it to.
- Fixed a D3D memory leak on every frame in windowed mode and the same thing
  for the screen wipes. Note to self: If it's an interface, be sure to
  Release it, because it will be AddRef'ed before being returned to you.
- Moved the BlendView() call out of FBaseStatusBar::Draw() so that it can be
  applied before copying the 3D scene to the screen underneath the 2D parts.
- Restored the console's darkening level to its old table-based amount.
- Fixed D3DFB::SetColorOverlay()'s incorrect calculations.
- Fixed the D3D screen wipes for letterboxed modes.

SVN r662 (trunk)
2008-01-03 05:39:36 +00:00
Randy Heit
59c8faa7df - The mouse is no longer grabbed at all unless you're actually in a level,
since I couldn't think of any reason why it should be grabbed at any other
  time. (This only applies to windowed mode, where it makes sense to let the
  OS have control of the pointer.)


SVN r661 (trunk)
2008-01-02 05:21:48 +00:00
Christoph Oelckers
8be8c48585 - Fixed: A_JumpIfTargetInLOS had inconsistent parameter definitions.
SVN r660 (trunk)
2008-01-01 08:47:49 +00:00
Randy Heit
dc98279403 - Removed the screenshot parameter from D_Display(), since it was a relic of
a long-abandoned experiment to write directly to video memory instead of
  to a temporary buffer in system meroy.
- Added Direct3D versions of the melt and burn screenwipes.
- Fixed the strip sizes for the melt screenwipe to match what Doom would have
  produced on a 320x200 screen, rather than producing more, thinner strips
  for wider screens.


SVN r659 (trunk)
2008-01-01 03:07:05 +00:00
Randy Heit
db54c43175 - Started writing Direct3D-friendly wipe code. It's just a Q&D crossfade for
now. More to come later.
- What is it about updaterevision.vcproj that makes it keep changing?

SVN r658 (trunk)
2007-12-30 04:18:39 +00:00
Christoph Oelckers
68e2134f70 SVN r657 (trunk) 2007-12-29 10:25:07 +00:00
Randy Heit
6872bcd3ef - Fixed position of the Doom HUD selectbox as per SnowKate709's guidance.
SVN r656 (trunk)
2007-12-29 03:02:25 +00:00
Christoph Oelckers
5e56a6512a - Changed FImageCollection so that it accepts a matching texture of any type.
This is necessary to load hires sprite replacements for certain icons.


SVN r655 (trunk)
2007-12-28 22:00:41 +00:00
Christoph Oelckers
a329efe9a4 - Added a check to Wads.CheckNumForName to return -1 for names longer than
8 characters which contain path separators.
- Fixed: Hires texture replacement must replace all matching textures, not
  just the first one found. This is particularly important for icons based
  on sprites.
- added a con_alpha CVAR to set the console's translucency.
- Added MartinHowe's submission for A_CustomBulletAttack aimfacing parameter.
- Added MartinHowe's submission for A_PlaySoundEx attenuation parameter.
- Fixed: Bots shouldn't target friendly monsters.
- Fixed a typo in sbarinfo.cpp (noatribox instead of noartibox.)

SVN r654 (trunk)
2007-12-28 11:17:52 +00:00
Randy Heit
37f9c50b4e - Fixed cases where a larger power-of-2-sized native texture had to be
allocated. (I wonder if D3D actually handles this automatically when you use
  D3DPOOL_MANAGED, because I'm pretty sure my laptops's x300 doesn't support
  non-power-of-2 texture sizes, yet it worked just fine before.) 
- Fixed vertical positioning of 2D elements in letterboxed modes.

SVN r653 (trunk)
2007-12-28 03:30:05 +00:00
Randy Heit
522e7fe07f - Removed DCanvas::Blit(), as it's no longer used.
- Added a function to create a texture from a stand-alone PNG file. The save/
  load menus now use this to get their thumbnails.


SVN r652 (trunk)
2007-12-28 01:54:14 +00:00
Christoph Oelckers
e19cd0bec3 - Fixed: DFrameBuffer::CopyPixelData copied data as RGBA instead of BGRA.
- Temporarily changed FPNGTexture and FDDSTexture to always create True Color
  native textures to preserve the original colors.


SVN r650 (trunk)
2007-12-27 11:53:09 +00:00
Christoph Oelckers
f1241099f8 - Darkened the console background a little after finding out that on
very bright title pics it became quite hard to read the console's contents.
- Fixed: PROP_Translation needed to be changed for the new value format.
- Added GZDoom's MAPINFO fog parameters as no op dummies so I can use
  WADs that contain them without constantly having to edit the MAPINFO.
  It also allows using them to optimize hardware fog for WADs that should
  run with ZDoom as well.


SVN r649 (trunk)
2007-12-27 11:25:25 +00:00
Randy Heit
834e4bef32 - Changed the way gamma works for D3DFB: In windowed mode, the display is
drawn to a texture, then that texture is copied to the real back buffer
  using a gamma-correcting pixel shader. In fullscreen mode, SetGammaRamp
  is used.
- Fixed flashing of vid_fps display when fps > 1000.
- Fixed loading of RGB textures for native 2D mode.
- Changed the first rotozoomer's data because it just became too obvious when
  the backdrop is drawn with a full 256 distinct colors available.
- Set the player backdrop to update no more frequently than 35 FPS, so opening
  the player setup menu before starting a game won't produce a very fast
  moving backdrop.
- Changed the player backdrop into a texture so that it can be drawn like
  anything else.


SVN r648 (trunk)
2007-12-27 04:30:12 +00:00
Randy Heit
d1655ca2b9 SVN r647 (trunk) 2007-12-26 22:33:26 +00:00
Christoph Oelckers
5a0009cbab - Fixed: The FSpecialFont constructor copied the untranslated colors directly
from the source palette instead of the font's identity map.


SVN r646 (trunk)
2007-12-26 21:37:00 +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
6804e66208 - Replaced 'C:\\ZDOOMDAT' with a #define in version.h.
- Moved screenshot code into DCanvas so that it can be overridden by
  subclasses with a different buffer.


SVN r643 (trunk)
2007-12-26 09:56:09 +00:00
Randy Heit
682e0dbe95 - Fixed: The fullscreen console crashed when opened before starting a game.
SVN r642 (trunk)
2007-12-26 05:20:30 +00:00
Randy Heit
1acc3d00c4 - Discovered that Shader Model 1.4 clamps my constants, so I can't use
palettes smaller than 256 entries with the shader I wrote for it. Is there
  a list of gotchas like this listed some where? I'd really like to see it.
  
  Well, when compiled with SM2.0, the PalTex shader seems to be every-so-
  slightly faster on my GF7950GT than the SM1.4 version, so I guess it's a
  minor win for cards that support it.
- Fixed: ST_Endoom() failed to free the bitmap it used.
- Added the DTA_ColorOverlay attribute to blend a color with the texture
  being drawn. For software, this (currently) only works with black. For
  hardware, it works with any color. The motiviation for this was so I could
  rewrite the status bar calls that passed DIM_MAP to DTA_Translation to
  draw darker icons into something that didn't require making a whole new
  remap table.
- After having an "OMG! How could I have been so stupid?" moment, I have
  removed the off-by-one check from D3DFB. I had thought the off-by-one error
  was caused by rounding errors by the shader hardware. Not so. Rather, I
  wasn't sampling what I thought I was sampling. A texture that uses palette
  index 255 passes the value 1.0 to the shader. The shader needs to adjust the
  range of its palette indexes, or it will end up trying to read color 256
  from the palette texture when it should be reading color 255. Doh!
- The TranslationToTable() function has been added to map from translation
  numbers used by actors to the tables those numbers represent. This function
  performs validation for the input and returns NULL if the input value
  is invalid.
- Major changes to the way translation tables work: No longer are they each a
  256-byte array. Instead, the FRemapTable structure is used to represent each
  one. It includes a remap array for the software renderer, a palette array
  for a hardware renderer, and a native texture pointer for D3DFB. The
  translationtables array itself is now an array of TArrays that point to the
  real tables. The DTA_Translation attribute must also be passed a pointer
  to a FRemapTable, not a byte array as previously.
- Modified DFrameBuffer::DrawRateStuff() so that it can do its thing properly
  for D3DFB's 2D mode. Before, any fullscreen graphics (like help images)
  covered it up.


SVN r640 (trunk)
2007-12-26 04:42:15 +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
671cf5a888 - added UseInventory/UseActorInventory ACS functions.
SVN r636 (trunk)
2007-12-25 08:44:13 +00:00
Christoph Oelckers
3eb741e391 - added some functionality to FDynamicColormap to allow not creating
the colormap data if it isn't needed by the renderer.


SVN r635 (trunk)
2007-12-24 21:56:49 +00:00
Christoph Oelckers
d12ede252f - also replaced the AM crosshair drawer by a DCanvas::DrawPixel function.
- moved the AM line drawer into DCanvas as a virtual function. While testing
  this code I discovered that the antialias precalculation was never used
  except for the very first frame of AM drawing. However, since I couldn't
  detect even a marginal performance improvement using this code on 2 computers
  I just disabled it completely because it severely complicates a more generic
  implementation. I also disabled am_ovtrans in the process because I couldn't
  see any positive effects of using this cvar. All it does is adding some 
  ugly distortion to the lines it affects without any apparent benefits.
* Added fix by Karate Chris containing:
- Added a 'No team changing' DMFlag2 which prevents players from changing teams 
  unless they are not on a team.
- Added a 'No respawn' DMFlag2 which prevents a player from respawning after 
  they have died.
- Added a 'Keep frags gained' DMFlag2 which allows you to choose whether you 
  want to reset the frags of each player next level or not.
- Added a small visual enhancement to the cooperative scoreboard to show 
  if a player has died.
- Fixed: If the 'teamplay' console variable was set to 'true' in a cooperative 
  game, the scoreboard would show team play related items as opposed to 
  cooperative items.
- Fixed: The 'bot_observer' console variable should not work in network games.
- Fixed: Bots made intermission skip really fast.


SVN r634 (trunk)
2007-12-24 14:24:24 +00:00
Christoph Oelckers
8a433d6f12 - Fixed a few font related problems.
- Fixed: ASkyViewpoint::Destroy was missing the super call.
- Added SnowKate709's A_LookEx update.
- Moved M_DrawPlayerBackdrop into DCanvas as a virtual function. Since this
  directly accesses the frame buffer it must be overridable for renderers
  that work differently.


SVN r632 (trunk)
2007-12-23 21:56:46 +00:00
Christoph Oelckers
9c89381400 - Added Blzut3's third SBARINFO update:
* Added drawshader to draw Heretic style transparency gradients.
 * Added artiflash flag to drawselectedinventory.
 * Fixed: Drawgem used the wrong operator when determining the chain size.
 * Fixed: ZDoom would crash if an undefined font was used.
 * I also started cleaning up the source a little.  I have been informed that
 when checking for flags the "== flagname" is redundant.
- Added indexfont anf hudfont from GZDoom to zdoom.pk3 so that they are always 
  available when defining custom status bars.


SVN r629 (trunk)
2007-12-23 20:59:06 +00:00
Christoph Oelckers
1aa191421a - Added Karate Chris's 'sv_losefrag' submission.
SVN r628 (trunk)
2007-12-23 17:45:53 +00:00
Christoph Oelckers
e5ed1c4be3 - Added Karate Chris's 'sv_degeneration' submission.
- Fixed: 'Bot joined the team' message was passing an FString to Printf.


SVN r627 (trunk)
2007-12-23 17:03:52 +00:00
Christoph Oelckers
154e21d9e7 - Backported GZDoom's true color font mappings for use with native textures
when the time comes.


SVN r626 (trunk)
2007-12-23 16:53:39 +00:00
Christoph Oelckers
1791acfb56 - Added Karate Chris's 'sv_doubleammo' submission.
SVN r625 (trunk)
2007-12-23 14:57:12 +00:00
Christoph Oelckers
ac04233590 - Added Karate Chris's 'Take' console command submission.
SVN r624 (trunk)
2007-12-23 14:23:52 +00:00
Christoph Oelckers
eb2e40cde0 - Changed DTA_Translation parameter for DrawTexture to an integer to avoid
passing renderer specific data to the function. Also added DTA_Font so
  that the renderer can fetch font translations from the proper font.
  DIM_MAP/ConShade had to be made a regular translation table to make it
  work.
- Added Karate Chris's fix for scoreboard displaying team play related data
  in non teamplay games.
- Fixed: The team selection menu didn't work.
- Fixed: UpdateTeam passed an FString to Printf.


SVN r623 (trunk)
2007-12-23 14:13:29 +00:00
Randy Heit
e419cc246f - Had a look at sbarinfo.cpp and noticed a few places where it allocated
character arrays and never freed them. Those have been replaced with
  uses of FString. (One of these was even an instance of a member variable
  being set to point at a stack variable.)


SVN r622 (trunk)
2007-12-22 23:19:08 +00:00
Christoph Oelckers
4131ec141d - Added Karate Chris's teamdamage in MAPINFO submission.
- Added Blzut3's second SBARINFO update.


SVN r621 (trunk)
2007-12-22 22:04:20 +00:00
Christoph Oelckers
279aec66bb - Added Blzut3's SBARINFO update.
SVN r618 (trunk)
2007-12-22 10:17:07 +00:00
Randy Heit
dddc781f18 - Added versions of Dim and Clear to D3DFB for use in 2D mode.
- Added a new color parameter to DCanvas::Clear() that specifies the
  ARGB value of the color. This is used if the old color parameter,
  which specifies a palette entry, is -1.


SVN r617 (trunk)
2007-12-22 04:52:51 +00:00
Randy Heit
e84bece8eb - Fixed: TEAMINFO broke bot parsing for bots with invalid team names by
redefining TEAM_None from 255 to -1.


SVN r616 (trunk)
2007-12-22 04:00:25 +00:00
Christoph Oelckers
2b86ebe4e5 - Added Karate Chris's fix for TEAMINFO definitions with just one team.
SVN r615 (trunk)
2007-12-21 13:45:57 +00:00
Christoph Oelckers
5ffda41c7e - Added Blzut3's SBARINFO submission.
SVN r613 (trunk)
2007-12-20 22:35:02 +00:00
Christoph Oelckers
16a2eb3b0c - Added SnowKate709's A_LookEx submission.
SVN r611 (trunk)
2007-12-20 20:37:06 +00:00
Christoph Oelckers
b48cc1792b - Added Karate Chris's TEAMINFO submission.
SVN r610 (trunk)
2007-12-20 20:22:31 +00:00
Christoph Oelckers
b88f46736b - Added true color processing to FDDSTexture. This is untested so far
because I don't have any DDS textures to check it with.


SVN r609 (trunk)
2007-12-20 20:00:05 +00:00
Christoph Oelckers
28db2d9f15 - Fixed: FTexture::~FTexture() must destroy the associated native texture
if present.
- Modified GZDoom's true color texture copy functions and added them
  to generate 32 bit D3D textures. Paletted TGAs and PCXs are also handled
  this way but I don't think these 2 formats are worth some more special
  handling.
  (Question: Is it worth it to implement special handling for paletted PNGs
   so that they are used as 8 bit textures internally?)


SVN r608 (trunk)
2007-12-20 18:53:35 +00:00
Christoph Oelckers
457976d88d - Fixed: DCanvas::Blit unlocked the destination twice instead of unlocking
both dest and src. Also changed this function so that it is owned by the
  destination canvas of the operation which is necessary if it needs to 
  be overridden by subclasses.


SVN r607 (trunk)
2007-12-20 14:05:08 +00:00
Christoph Oelckers
a7bc9262d9 - Fixed: The StrifePlayer defined the wrong color range for its translations.
SVN r606 (trunk)
2007-12-20 08:44:45 +00:00
Randy Heit
111853e623 - Added a framework for drawing the 2D screen elements with Direct3D textures.
They are not actually drawn with it yet, nor is it complete, but it's
  something to start with.
- Split up DCanvas::DrawTexture() into more pieces to make it easier to
  virtualize.
- Removed support for non-32-bit palette textures from D3DFB. What kind of
  card supports pixel shaders but not 32-bit textures?


SVN r605 (trunk)
2007-12-20 04:36:43 +00:00
Randy Heit
990f720409 - Fixed: In the video modes menu, pressing Enter tried to change the screen
mode, even if the cursor wasn't on one of the mode items.


SVN r604 (trunk)
2007-12-18 03:53:02 +00:00
Randy Heit
1b55520a8b - Fixed: Heretic's mace never respawned in deathmatch games.
- Fixed: At resolutions taller than 600 pixels or so, tall sky textures were
  drawn a row too low. This was quite visible on Hexen MAP06.
- Fixed: P_CheckSlopeWalk() must return false if floorsector != sector, or
  the actor will be yanked down to the floorsector by P_TryMove().
- Fixed: ClearActorInventory, GiveActorInventory, and TakeActorInventory
  only affected the first actor with the given TID.
- Fixed: The color boxes for the colorpicker menu items were drawn a little
  too low.

SVN r603 (trunk)
2007-12-18 03:25:19 +00:00
Randy Heit
4c8bf4552a - Fixed: Clean scaling at 720x480 looked borked.
SVN r602 (trunk)
2007-12-18 02:15:32 +00:00
Randy Heit
c087e4d411 - New: When using the D3D9 framebuffer, palette blending is now applied only
to the 3D area of the screen. This means the console and (the primary
  rectangular area of) the status bar are no longer blended.


SVN r601 (trunk)
2007-12-18 01:50:08 +00:00
Christoph Oelckers
4d6fc97a9a - Fixed: When a skybox viewpoint is destroyed it should clear all
sector references to itself.


SVN r600 (trunk)
2007-12-17 22:18:52 +00:00
Randy Heit
dd460fed2a - Fixed: G_QueueBody() should only change the translation to one of its
private slots if the one currently used is a player range.
- Fixed: Changing the fraglimit during the middle of a game would not trigger
  a level change if somebody was already over the new limit.


SVN r599 (trunk)
2007-12-15 03:51:17 +00:00
Randy Heit
8d5402cec2 - Added "\c" support to ParseCommandLine() when it parses quoted strings.
- Fixed: When changing your name from the menu, you got an extra " appended
  to your name if it ended with a backslash.
- Added escape sequences for user info strings, so now they can contain
  embedded backslashes.
- Fixed an array-out-of-bounds access when drawing the player setup menu with
  an invalid team number.


SVN r598 (trunk)
2007-12-15 03:27:40 +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
acbe3a191e - Fixed: Redefining a decal did not rebind any old references to the decal, so
they would be left pointing at invalid data.


SVN r594 (trunk)
2007-12-11 03:29:31 +00:00
Randy Heit
e666cde418 - Fixed some more GCC warnings.
- Updated project files for nasm 2.0, which is now named nasm.exe for the
  Windows version, rather than nasmw.exe. Also fixed the annoying new warnings
  it generated.


SVN r593 (trunk)
2007-12-11 02:38:38 +00:00
Christoph Oelckers
7d63937d7d - Fixed: M_VerifyNightmare must use the selected skill level to start the
game, not always 4.


SVN r592 (trunk)
2007-12-10 08:21:25 +00:00
Christoph Oelckers
b8827b1b86 - Fixed: There was no working means to pass 'no state' to A_Chase.
Now 0 or an empty string will do that.
- Copied the empty string fix for SC_CheckNumber to SC_CheckFloat.

SVN r591 (trunk)
2007-12-09 09:54:58 +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
Randy Heit
1225071f78 - Fixed: Skill level confirmation only worked with Doom. Also fixed parsing
of MustConfirm: It looked for TK_String when it should have used TK_StringConst.
- Fixed: When travelling to a new non-hub map, any items being carried with
  amounts of 0 would be upped to 1.


SVN r589 (trunk)
2007-12-09 02:27:02 +00:00
Randy Heit
a849564d62 - Fixed: When the game starts with the net pane open, the abort button
receives the input focus. When the pane is closed, the focus doesn't
  return to any window, so even though the window is still active, it no
  longer has the focus and does not receive input events.
- Fixed: The network synch timer was still left running after the game
  started. (Windows only)
- Fixed: When a player leaves the game at the exact moment they are being
  damaged, the game could crash because their actor still had a valid player
  pointer, but the player's mo pointer had been NULLed.


SVN r588 (trunk)
2007-12-09 01:14:35 +00:00
Randy Heit
282e9f5f01 - Fixed: MAPINFO is parsed before the text colors are read, so the TextColor
option for skills wouldn't work.


SVN r587 (trunk)
2007-12-08 22:57:55 +00:00
Randy Heit
351ed8dcd1 - Changed the PowerTimeFreezer "blink" effect back to checking against
EffectTics (now + 1), because I wasn't convinced of the correctness of
  using level.time.
- Fixed: SC_CheckNumber() considered the empty string "" as the number 0.


SVN r586 (trunk)
2007-12-08 22:29:59 +00:00
Randy Heit
f76ef6ffc2 - Reverted the 'None' name change from r569.
SVN r585 (trunk)
2007-12-08 22:17:48 +00:00
Randy Heit
cc9dc13f55 - Fixed the PowerTimeFreezer, too. It got easier once I realized that I only
need to be concerned about changing the flag on odd tics, since A_Tracer()
  is called every two tics, not four.


SVN r584 (trunk)
2007-12-07 05:12:30 +00:00
Randy Heit
0adaaeb5d7 - Fixed: Using the freeze command would make the Revenant missiles switch
their seekingness. The only sane way to deal with this seemed to be to
  sync the freeze changes with the timer check in A_Tracer(), so that's what
  I did: Freeze mode only changes every four tics now.


SVN r583 (trunk)
2007-12-06 23:17:38 +00:00
Randy Heit
7f52e6537b - Added IWAD-based [*.Autoload] ini support for games that have more than one
IWAD. They are:
  * [Doom1.Autoload]
  * [Doom2.Autoload]
  * [Plutonia.Autoload]
  * [TNT.Autoload]
  * [HexenDK.Autoload]
  These are loaded after the more general game-specific [Doom.Autoload] and
  [Hexen.Autoload] sections if those are present.
- Changed the banner texts for the Final Doom IWADs to identify them as Final
  Doom rather than as DOOM 2. I know this differs from the original behavior,
  but they're marketed as Final Doom, not Doom 2.


SVN r582 (trunk)
2007-12-06 22:38:45 +00:00
Randy Heit
1dede60c5c - New: On Windows, the game now checks the registry to see if you have Steam
installed. If so, it checks your SteamApps directory for any IWADs you may
  have purchased through Steam and adds any it finds to the list of available
  IWADs you can play. This means that if you bought your id games through
  Steam, you can just extract ZDoom anywhere you like and run it without doing
  any additional setup.


SVN r581 (trunk)
2007-12-06 19:15:07 +00:00
Randy Heit
1eca84d644 - Fixed: The FLAC/makefile.mgw should use md5.o as an OBJ, not md5.c.
- Fixed: The Linux makefile probably shouldn't be using the bundled zlib headers,
  either.


SVN r580 (trunk)
2007-12-06 17:38:05 +00:00
Christoph Oelckers
1af122142b - Added Karate Chris's submission for scoreboard enhancement.
SVN r579 (trunk)
2007-12-06 14:33:28 +00:00
Christoph Oelckers
47dafa3824 - Fixed: A_PainDie and A_DualPainAttack could fail to spawn the correct actor
if the first spawned one died and executed some code in its death state.
- Added Karate Chris's submission for 'allowrespawn' MAPINFO option.
- Added Karate Chris's submission for customizable skill confirmation text.
- Fixed: Doom's statusbar only checked for primary attacks, not secondary ones when
  setting Doomguy's face. (Thanks to Karate Chris for the fix.)
- added Skulltag's FORCEYBILLBOARD and FORCEXYBILLBOARD flags to the DECORATE parser.
  Even though the software renderer has no use for them it is necessary to support them
  so that mods can use these flags without becoming incompatible with ZDoom.


SVN r576 (trunk)
2007-12-06 08:55:17 +00:00