- Moved R_AlignFlat out of renderer into main game code (r_ to p_.)
- Moved the code from r_data.cpp to some better fitting places and deleted this file and r_data.h because the remaining parts of it were just a random collection of unrelated functions.
- Updated CMakeLists.txt for last commit.
- Separated all voxel related resource maintenance code from r_things.cpp and r_data.cpp into its own file.
* Adapted GL files to #include changes.
* Added back GL-needed fields to FVoxel, FVoxeldef and FCanvasTexture.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1221 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The compatibility savegame handling for the lightning code did not read the obsolete LightningLightLevels data from the savegame.
- Fixed: LightningLightLevels[] was not just an array of light levels. The latter part was also a bitmask describing which sectors had lightning. When this was expanded to shorts, the result was that random sectors would have their lighting zero'ed after a lightning flash. I really have to wonder what I was thinking when I decided to cram two completely unrelated things into the same array. Since a short is wide enough, I did away with the bitmask and just use SHRT_MAX to mark sectors that weren't lightninged.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1219 b0f79afe-0144-0410-b225-9a4edf0717df
Fixed: In gccinlines.h, the alternative for DivScale32 that took idiv's parameter in memory did not mark eax as an early-clobber register, so GCC might decide to pass the memory address in eax, and it would get clobbered by the inline assembly before fetching the value to divide by. But rather than fix it by adding another '&', I have opted to mark it as in/out and do the zeroing outside the inline assembly, so GCC has maximum flexibility for scheduling the code.
Fixed: D3DFB::Draw3DPart() treated the screen's pitch as if it always equaled the width. Considering this hasn't been guaranteed since before the D3DFB class was even written, this should have never made it in as-is.
Fixed case of damage type variables.
Fixed loading of BMF fonts' palettes. Index 0 is always transparent and the stored palette data starts at index 1.
Changed R_InstallSpriteLump so that it doesn't abort for every seemingly misnamed lump in the sprites namespace. A warning is fully sufficient here.
Added FDARI's A_Warp submission.
Added Major Cooke's Death/Paintype submission.
Added DavidPH's DOHARMSPECIES submission.
Added DavidPH's PoisonDamageType submission.
Added DavidPH's submission for allowing a special state on puffs when hitting bleeding actors.
Added DavidPH's A_AlertMonsters range submission.
Added DavifPH's submission for allowing THRUGHOST on puffs.
Added DavifPH's fix for poisoning invulnerable players.
cleaned up setPointer interface.
ZDoom part of setPointer/setActivator, submitted by FDARI.
Added DavidPH's ProjectileKickback submission.
ZDoom implementation of strcpy, submitted by FDARI.
Revert r3214, which added some completely useless warnings for GCC. I'm sure there are good reasons even GCC doesn't enable them by default when you use -Wall.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1218 b0f79afe-0144-0410-b225-9a4edf0717df
Emulate the size limit of Doom's lightscale table by capping the value of vis passed to GETPALOOKUP. The end result is that there is a minimum distance around you where light amplification stops and it gets no brighter. Should this scale with visibility? I can't say. So, yeah, it turns out all these years ago, I made this out to be harder than it really is.
Fixed: Light levels outside the range [0,255] really do matter.
Added FDARI's latest actor pointer submission.
Added kgsws's 3D floor textute rotation fix.
Added DavidPH's damage type specific damage color submission.
Added DavidPH's A_PainAttack extension submission.
Fixed: Telefrag damage should not be affected by skill damage factors.
Added A_GunFlash extension submission.
Added DONTCORPSE submission.
Added SEEINVISIBLE submission.
Added submission for disabling some new and rather pointless GCC warnings.
Fixed: Selecting TiMidity++ as a MIDI device without a working timidity.exe, then switching to a different MIDI device would leave music silent until a new song was started. (The discrepancy between mus_playing.handle and currSong is one which should probably be handled properly at some point.)
Fixed: Typo in FClipRect::Intersect() could case bad clipping.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1216 b0f79afe-0144-0410-b225-9a4edf0717df
- Added ACSF_AnnouncerSound from Skulltag to EACSFunctions.
- Removed a couple warnings about implicit vector truncation reported by fxc. (Apparently, it also decided to compile some other shaders slightly differently, too.)
- Fixed: The InGameColormap had been designed without taking alpha into consideration. As the least likely parameter to be used, desaturation has been moved into a constant register to make room for the alpha parameter to live in the vertex's color value.
- Restore the BOOM fudging and destination Z calculations that disappeared sometime in
ZDoom's prehistory to EV_SilentLineTeleport().
- Fixed: Wrong speed for Boom line type 175.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1214 b0f79afe-0144-0410-b225-9a4edf0717df
Fixed: The sign in Eternall.wad, map25 on line 2236 rendered at the wrong height because Doom ignored the Y locations of patches drawn on two-sided midtextures and always drew them at the top of the texture. Added a compatibility flag.
Added FDARI's ACS savestring submission.
Added optional fullthrustdistance to A_RadiusThrust to specify the distance at which thrust starts diminishing.
Added r_shadercolormaps cvar. Set it to false to disable shaders for fixed colormap effects (e.g. invulnerability). This should only be necessary for SM1.4 cards with buggy drivers. I doubt the problem is very widespread. The one piece of SM1.4 hardware I obtained specifically for testing purposes has no problems using shaders for these effects.
Added Gez's A_WolfAttack submission.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1213 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: P_CheckPosition() should checks all lines contacted by the actor. Stopping once it finds one blocking line will prevent any further lines with specials from activating their specials.
- Add the wad a map is defined in to the output of listmaps.
- Fixed: DDrawFB::Lock() should only act on NeedResRecreate when going from LockCount 0 -> 1.
- Fixed: When DDrawFB::Lock() has to recreate resources, it left the LockCount at 0. This causes problems if something else locks it before it is unlocked, because the second locker will think it is the first. This happens in R_RenderViewToCanvas(). See DDrawFB::PaletteChanged() for the most common reason why Lock() would need to recreate resources.
- Fixed: DDrawFB::CreateSurfacesComplex() had debugging cruft left in that skipped all but the last attempts.
- Fixed logging of video debug info to a file to not multiply define dbg.
- Fixed: Building with NOASM defined no longer worked, because the DrawSlab routines in a.asm conflicted with the ones in r_draw.cpp.
- Colorize missing texture messages.
- Place a limit on the number of reports per missing texture. On maps with many lines and many sides of missing textures, this can take a very long time, because each missing textures causes a scan of every single line (for the sake of packed sidedefs), and each output line also requires an update of the hidden RichEdit logging control.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1212 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: When loading FBehavior::SerializeVarSet() would only zero the variables if there were non-zero variables to load. This was fine when all variables defaulted to zero, but map variables have been able to default to something else for some time now. This meant that if all map variables were zero when the game was saved, they would be restored to their default values when the game was loaded.
- Restore [in software mode] the original Doom algorithm for calculating xtoviewangle[] for the inner 90 degrees of the field of vision, since it reduces the chances of duplicate sky columns output next to each other compared to a straight tangent-to-angle calculation.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1210 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: PIT_CheckLine() always called CheckForPushSpecial() with the front of the line, even if the actor was hitting it from the back.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1209 b0f79afe-0144-0410-b225-9a4edf0717df
- Add more information when trying to load old savegames.
- When loading a game from the menu, do not hide the fullscreen console until we know we can load the save. Otherwise, the gamestate goes invalid if the save is no good.
- Add NULL pointer to check to FWeaponSlot::PickWeapon() (for when this is called outside of a game).
- Move the call to DrawLetterbox() into D3DFB::Flip() so that it is the last thing that happens before the scene is presented. Now it properly obscures 2D graphics.
- Fix overflows in AM_clipMline().
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1207 b0f79afe-0144-0410-b225-9a4edf0717df
- Apply kgsws-CZ's fixes:
* Added new cvar, r_3dfloors for testing, so for example, you can see the FPS difference.
* ds_p->bkup is not always allocated.
* Fixed particles visible through 3D floors.
* Fixed FAKE3D flag names.
* Fixed r_3dfloors.h and r_bsp.cpp to allow compilation.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1205 b0f79afe-0144-0410-b225-9a4edf0717df
- Add $edfoverride to SNDINFO for the sake of ignorability.
- Fix errors/warnings from MinGW 4.5.0 (tdm-1).
- Disable the missing field initializers warnings that -Wextra produces from GCC.
- Update zlib to version 1.2.5.
- Fixed: FxAbs::Resolve() called isNumeric() on the wrong ValueType (which is not initialized until the end of the function).
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1204 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: COLORMAP tricks to produce bright lights do not work with the hardware renderer, so do not hardware accelerate weapon sprites that use them. (see Harmony) [Does not concern OpenGL.]
- Added FDARI's pointer operation submission.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1203 b0f79afe-0144-0410-b225-9a4edf0717df
- Relax the restriction that display resolutions must be a multiple of 8 so that they only need be even. The software wiping code requires multiples of two, so odd resolutions cannot be supported without requiring hardware-acceleration (which can be toggled off at any time with immediate effects). The code that required multiples of 8 no longer seems to be present, so now people with cheapo 1366x768 laptop panels can run fullscreen properly.
- Added a prefix option to drawnumber.
- Added a flag to remove the cap on drawnumber (this means on the lower length numbers will be drawn).
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1202 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The shareware -file check wasn't working anymore.
- Damn integer type confusion... :(
- GCC warning fixes (GCC stupidity for the most part.)
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1199 b0f79afe-0144-0410-b225-9a4edf0717df
- Added a function to execute action specials and changed all calls to use this function. This was done to make it easier to check such calls.
- Fixed: Menu mouse navigation didn't work in fullscreen on Linux.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1198 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Sector_SetLink did incorrect checks for the returned control sector
- Added Sector_SetTranslucent special so set translucency of portal planes at run time.
- Added 'additive' information for portal planes. This is no-op at the moment because the flat drawers can't handle additive translucency yet though.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1195 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed compile warnings in savegame menu code.
- Fixed: plane specific lighting values were no longer used when generating the visplanes.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1188 b0f79afe-0144-0410-b225-9a4edf0717df
- Add ~/.zdoom as a default path in [FileSearch.Directories] on Unix systems.
- Fixed: Fake floor's validcounts were not initialized.
- Fixed: When loading non-UDMF maps, things did not have their conversation field zero'ed.
- Added an assert for the FAKE3D_REFRESHCLIP case at the end of R_RenderMaskedSegRange(), because Valgrind indicates this is being run
without ds->bkup being set to something valid. I do not immediately know how this should be fixed.
- Fixed: Actions in the saee menu need to do full range checks for the number of currently selected item.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1187 b0f79afe-0144-0410-b225-9a4edf0717df
- Added a 'block sight' line flag.
- Updated UDMF spec for player class and skill amount because the old menu limits no longer apply.
- Fixed: FloorAndCeiling_LowerRaise needs to consider 4 args in maps to account for the Boom compatibility hack parameter.
- Fixed: 3DMidtextures did not work correctly in sectors with slopes.
- Added a check to output a clear error message if no IWAD definitions could be loaded.
- Added fix for timing of the boss cube while a time freezer is active.
- Added cursor support for SDL.
- Let's not be so quick to break savegame compatibility...
- Fixed some incorrect P_CheckSight flag use in p_enemy.cpp.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1183 b0f79afe-0144-0410-b225-9a4edf0717df
* fixed secret CCMD colors for thing based secrets.
* Added DesingatedTeam property from Skulltag. Allows friendly fire calculations to be applied to monsters/objects and allows the friendly AI to be aware of teams.
* Enable menu mouse navigation on SDL systems.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1182 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: Spawning things abuve a 3D midtexture did not provess the 'is above midtexture' state properly.
- Fixed: When teleporting an actor the destination must be checked with the new z position, not the old one.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1180 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The summoned minotaur should not return to its own spawn state when idle but to the parent class's.
- Changed ACS Checkweapon to compare names instead of strings.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1177 b0f79afe-0144-0410-b225-9a4edf0717df
- disabled radial fog and Doom light mode on SM3 cards because it won't work when using the builtin ftransform function which is needed here because we have to draw some parts without any shader.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1170 b0f79afe-0144-0410-b225-9a4edf0717df
- Fixed: The Skin initialization code did not NULL the Voxel pointer in its sprite definitions.
- Fixed: The help screens were stretched on 16:9 displays
- Fixed: The bunny scroller did not advance its animation to the end when aborted.
- Fixed: DLevelScript always initialized the first 3 local variables, even if less were allocated.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1165 b0f79afe-0144-0410-b225-9a4edf0717df
* use FSharedStringArena to handle AActor's tag strings properly. They were names before which are not case sensitive and could cause problems.
* Fixed FSharedStringArena::FreeAll did not NULL TopBlock.
* bumped savegame version for above changes.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1164 b0f79afe-0144-0410-b225-9a4edf0717df
- Removed obsolete references to 'generated' directory from Wadsrc project.
- Fixed: The internal blockmap builder still used 16 bit WORDs to reference linedefs so it failed on USMF maps which exceed this value.
- Fixed: Hexen's chess ending should never use the cluster's endtext.
- Make the assembly span drawers compatible with newer NASM's default optimization level.
- Added Chris's second crashcatcher patch.
git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1161 b0f79afe-0144-0410-b225-9a4edf0717df