Commit graph

659 commits

Author SHA1 Message Date
Randy Heit
59801d2b00 - Added pixel-doubled and -quadrupled screen modes to D3DFB so that users with
recent NVidia drivers can still use resolutions below 640x480, since NVidia
  saw fit to remove all support for them.


SVN r724 (trunk)
2008-01-29 18:20:05 +00:00
Christoph Oelckers
465bcfd199 - Added a PrecacheTexture virtual function to DFrameBuffer because it's the
renderer which should decide how to precache a texture.


SVN r723 (trunk)
2008-01-28 10:23:18 +00:00
Christoph Oelckers
ebbe9c84f8 - Added SnowKate709's APROP_MaxHealth submission.
- Fixed: FTexture::GetScaledWidth/Height always rounded down which could result in
  imprecisions (e.g. when scaling from 128 to 96.)


SVN r722 (trunk)
2008-01-28 09:39:46 +00:00
Christoph Oelckers
c02ed1263f - Yet another 'GCC is stupid' fix.
SVN r721 (trunk)
2008-01-27 21:06:31 +00:00
Christoph Oelckers
2695a4360a - Forgot to add changes to i_musicinterns.h for last commit.
SVN r720 (trunk)
2008-01-27 18:09:06 +00:00
Christoph Oelckers
a37c437588 - added a mastervolume CVAR for Timidity because for me its output is considerably louder than everything else.
- reverted removal of AddPatch call in crosshair initialization.
- Modified makewad.c so that it doesn't write file names with '[]^' to the dependency file. Apparenly make
  can't handle these names and an incomplete list is still better than something that doesn't work at all.


SVN r719 (trunk)
2008-01-27 16:56:25 +00:00
Christoph Oelckers
5dfc81af36 - Changed license for r_data.cpp because there isn't anything of id's original
code left in that file.
- Cleaned up r_data.cpp.
- Fixed: FTextureManager::FindTexture should not print error messages if it
  doesn't find the texture.
- Added Karate Chris's patch for fixing Strife quit messages.


SVN r718 (trunk)
2008-01-27 09:38:37 +00:00
Randy Heit
499fefec07 - Added preloading of fonts to reduce the chance that characters from a single
font will require more than one hardware texture to display.


SVN r717 (trunk)
2008-01-27 05:23:10 +00:00
Randy Heit
4c9d633a94 - Fixed: P_RailAttack() crashed if you didn't specify a puff for a rail.
- Decided that allowing arbitrary alpha values for color remaps isn't so hot.
  Changed it back the way it was.


SVN r716 (trunk)
2008-01-27 04:53:55 +00:00
Christoph Oelckers
1b28557341 - Got rid of most TexMan.AddPatch calls because they are no longer needed.
- Got rid of R_InitPatches because the new texture init code needs to preload
  everything to work correctly.
- Rewrote texture manager initialization to order textures primarily by WAD 
  rather than by type. This way later textures will always override earlier 
  ones. The only exception is that TEX_MiscPatch are only used as a fallback
  if nothing else can be found.
- Optimized the tryany case of FTextureManager::CheckForTexture. It is not
  necessary to scan the hash chain twice. The required information can be
  retrieved during the first pass as easily and even offers a little more
  control.
- Made FFont destructor virtual.
- Added 'Ice' translation to DECORATE.

(Caution: Not fully tested yet!)

SVN r715 (trunk)
2008-01-26 23:20: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
Christoph Oelckers
d134deda95 - Fixed: ACS used incompatible values for APROP_RenderStyle. It needs to use
the exact same values as previous ZDoom versions
- Added a DECORATE 'stencilcolor' property so that the stencil render style
  can be used.
- Added some NULL pointer checks to the font loading code.

SVN r713 (trunk)
2008-01-26 15:50:52 +00:00
Randy Heit
9706a2b140 - GCC cleanup.
SVN r712 (trunk)
2008-01-26 04:47:58 +00:00
Randy Heit
ec17f5a5b9 - Undid some of the changes from lempar.c v1.30->v1.31, because it broke
error handling.
- Fixed: dehsupp/scanner.re defined "}" as the token RPAREN. dehsupp/parse.y
  also defined action_list_def as needing a RBARCE. I'm surprised it worked
  at all before. I guess Lemon really was too accepting.
- Changed the way that xlatcc handles include statements so that I don't need
  to modify the logic of lempar.c. I also discovered that the grammar was
  improperly defined and only accepted the first statement. It worked before
  because Lemon used to accept multiple times before reaching the EOF token.
  I have also verified that it is still generating the proper lumps.
- Removed some unused wadsrc files from the repository.
- Fixed my re2c upgrade.
- Updated lemon.c to v1.53.

SVN r711 (trunk)
2008-01-26 04:33:34 +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
Christoph Oelckers
67afc9d4fc - Fixed: The StatusBar pointer was not NULLed after being deleted.
SVN r709 (trunk)
2008-01-16 14:44:27 +00:00
Christoph Oelckers
f9c78a1b80 - Fixed: Skip_Super didn't clear the current state label list.
SVN r708 (trunk)
2008-01-16 10:14:10 +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
d36d4aa863 - Fixed: ACS translations were loaded into the wrong slot after restoring a
savegame.
- Fixed exploit: Dropping ammo at baby and nightmare skill levels would give
  you back more than you dropped.


SVN r706 (trunk)
2008-01-15 04:57:25 +00:00
Randy Heit
685de5ce30 - Applied Blzut3's SBARINFO update #8:
* Fixed: Drawbar had a few memory leaks.
- Added another temporary cvar called pc to play with the multipiler used by D3DFB::SetPaletteTexture().

SVN r704 (trunk)
2008-01-13 05:10:33 +00:00
Christoph Oelckers
d13fdec9bf - removed some unused code from shared_hud.cpp.
SVN r703 (trunk)
2008-01-12 21:20:18 +00:00
Randy Heit
e8d38ad683 - Applied Blzut3's SBARINFO update #7.
- GCC warnings, go away.

SVN r702 (trunk)
2008-01-12 17:35:32 +00:00
Randy Heit
cb47b3a1f7 - Completely removed code for the PNG filter heuristic from the compiled code when it's been disabled.
- Added a temporary cvar called pal to play with the offset used by D3DFB::SetPaletteTexture().

SVN r701 (trunk)
2008-01-12 17:06:38 +00:00
Christoph Oelckers
2e613c3557 - Moved renderer dependent part of savegame pic creation into DFrameBuffer
as a virtual function so that it can be overridden.


SVN r700 (trunk)
2008-01-12 12:49:05 +00:00
Christoph Oelckers
f691c973d4 - Fixed: M_SaveBitmap::prior was too small. It must be 3 bytes per pixel, not 1.
SVN r699 (trunk)
2008-01-12 09:59:19 +00:00
Randy Heit
9902d73a24 - Added support for 24-bit screenshots, so now accelerated 2D screenshots
can work.
- Tweaked the box splitting algorithm for packed textures to hopefully
  produce less wasted space.


SVN r696 (trunk)
2008-01-12 06:27:13 +00:00
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
Christoph Oelckers
6b79a75293 GCC re-fix
SVN r682 (trunk)
2008-01-08 16:23:02 +00:00
Christoph Oelckers
fa6a40bdda GCC fix
SVN r681 (trunk)
2008-01-08 14:32:18 +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
bec0d3438f GCC fixes.
SVN r677 (trunk)
2008-01-08 01:48:33 +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
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
c911e995a9 - Changes for MinGW compile.
SVN r651 (trunk)
2007-12-27 14:22:45 +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
3df3d6d052 SVN r645 (trunk) 2007-12-26 16:37:27 +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
813b59edee - Removed a few new warnings spewed by GCC.
SVN r641 (trunk)
2007-12-26 05:03:14 +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
6b9f3c8247 - forgot to change 2 files for last commit.
SVN r639 (trunk)
2007-12-25 10:25:43 +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
2e11d31bb5 - Forgot to save p_acs.cpp before last commit.
SVN r637 (trunk)
2007-12-25 09:31:10 +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
3c4344f2ec - minor fix in DrawPlayerBackdrop.
SVN r633 (trunk)
2007-12-23 22:22:21 +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
7ae2a4e35c - got rid of a few warnings in sbarinfo.cpp.
SVN r631 (trunk)
2007-12-23 21:03:42 +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
6b1a70952a - Added Blzut3's SBARINFO update. (for real this time)
SVN r619 (trunk)
2007-12-22 10:17:32 +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