Commit graph

209 commits

Author SHA1 Message Date
Christoph Oelckers
daf43f9d35 - added polyobject serializer.
- added sanity checks to prevent a savegame from being loaded with an incompatible map
- refactored a few things to simplify serialization.
- started work on main level serializer function.
2016-09-20 09:11:13 +02:00
Christoph Oelckers
fd7b833ad5 - added some helper code mainly designed to help GZDoom maintain the vertex buffer for the textured automap. 2016-08-06 19:20:41 +02:00
Christoph Oelckers
78055733c8 - fixed: automap markers were scaled too small 2016-05-18 21:25:58 +02:00
Christoph Oelckers
2447f7bc38 - renamed FTransform access functions. 2016-04-23 13:40:02 +02:00
Christoph Oelckers
bc2a5b3f16 - fixed typo in automap background position calculation. 2016-04-17 10:19:56 +02:00
Christoph Oelckers
1eeaee1ac7 - completely reviewed and fixed all codes using angles in the automap. 2016-04-07 13:05:29 +02:00
Christoph Oelckers
14b370df66 - fixed automap rotation to point upward, not downward when am_rotate is on. 2016-04-07 10:39:15 +02:00
Christoph Oelckers
b93d4a796a - fixed angles for am_rotate. 2016-04-06 17:28:31 +02:00
Christoph Oelckers
9b5a4b6d43 - removed several unused setter functions for level data structures and fixed some incorrect uses. 2016-04-02 22:05:23 +02:00
Christoph Oelckers
931774ab38 - fixed some issues with the PathTraverse and sight checking code:
* typo in calculating end position from a trace vector
 * must use floor to convert from floating point block coordinate to block index to account for running off the negative side of the blockmap. (Int cast always rounds toward zero which is wrong here.)
 * bad calculation of sight checking slopes - they has the actor's z coordinate duplicated.

- fixed scaling of automap markers.
2016-04-02 20:10:48 +02:00
Christoph Oelckers
8680391e0b - floatified the global view variables.
The software renderer still uses internal copies of the fixed point version.
2016-04-01 12:22:16 +02:00
Christoph Oelckers
8fd76f0c8a - floatified bmaporgx and bmaporgy, allowing to remove the gross overflow prevention hacks present in the blockmap code. 2016-03-31 09:23:14 +02:00
Christoph Oelckers
7a2c8fdc1c - floatified po_man.cpp and the remaining bits in p_lnspec.cpp 2016-03-31 00:41:21 +02:00
Christoph Oelckers
66929cbaff - floatified p_trace, p_slopes and p_udmf.cpp.
- major cleanup of unused code.
2016-03-30 16:30:22 +02:00
Christoph Oelckers
35bb686281 - floatification of sector_t::centerspot. 2016-03-26 09:38:58 +01:00
Christoph Oelckers
e42b0171b3 - floatification of bot code. 2016-03-26 00:34:56 +01:00
Christoph Oelckers
8e13d13916 - floatified the automap. 2016-03-25 21:54:59 +01:00
Christoph Oelckers
fb8e03d5eb - floatified FLineOpening.
- some smaller fixes.
2016-03-25 18:43:37 +01:00
Christoph Oelckers
1125101b37 - floatified AActor::Prev plus the stuff using it.
- rewrote some coordinate functions in AActor to use real float math instead of converting back and forth between float and fixed.
2016-03-25 16:25:25 +01:00
Christoph Oelckers
8b6b5e7b1c - preparation for upcoming work: rename the fixed point versions of PosRelative. 2016-03-25 14:18:50 +01:00
Christoph Oelckers
41387622f2 - changed angle parameter of FillSimplePoly. 2016-03-24 16:36:43 +01:00
Christoph Oelckers
4a79602325 - floatification of g_shared.
- rewrote FraggleScript's movecamera function because it was utterly incomprehensible.
2016-03-24 01:46:11 +01:00
Christoph Oelckers
6b3c0ecbd3 - floatified viewheight variables and some related code. 2016-03-22 18:06:08 +01:00
Christoph Oelckers
4e60ea0252 - made AActor::alpha a floating point value
- replaced some uses of FRACUNIT with OPAQUE when it was about translucency.
- simplified some overly complicated translucency multiplications in the SBARINFO code.
2016-03-21 12:18:46 +01:00
Christoph Oelckers
0bdb65c477 - made AActor::radius a double.
This means that all files in g_doom are now fully converted.
2016-03-20 15:04:13 +01:00
Christoph Oelckers
ada5097e34 - converted scale variables in AActor, FMapThing and skin to float. 2016-03-20 12:13:00 +01:00
Christoph Oelckers
51b05d331d - replaced AActor::vel and player_t::Vel with a floating point version.
- Converted P_MovePlayer and all associated variables to floating point because this wasn't working well with a mixture between float and fixed.

Like the angle commit this has just been patched up to compile, the bulk of work is yet to be done.
2016-03-20 00:54:18 +01:00
Christoph Oelckers
671291227e - first stage of converting actor angles to float complete
Patched up everything so that it compiles without errors again. This only addresses code related to some compile error. A large portion of the angle code still uses angle_t and converts back and forth.
2016-03-16 12:41:26 +01:00
Christoph Oelckers
51ab60178a - added portal overlays to automap. 2016-03-13 12:33:58 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
alexey.lysiuk
3c044ebd5e Removed usage of register keyword
No more 'register storage class specifier is deprecated' warnings
2016-02-27 15:03:44 +02:00
Christoph Oelckers
58d3b04590 - fixed some places in p_pillar.cpp where sector plane z's were calculated at (0, 0) which could cause overflows if the actual plane is too far away from the origin.
- renamed sector_t::soundorg in centerspot, changed the type to a fixedvec2 and removed the CenterSpot #define.

Since this thing was used in lots of places that have nothing to do with sound the name made no sense. Having it as a fixed_t array also made it clumsy to use and the CenterSpot #define used a potentially dangerous type cast.
2016-02-24 14:49:59 +01:00
Christoph Oelckers
6adb069506 - rewrote p_local.h so that it doesn't pull in the entire bunch of headers.
This was to resolve some circular dependencies with the portal code.
The most notable changees:

 * FTextureID was moved from textures.h to doomtype.h because it is frequently needed in files that don't want to do anything with actual textures.
 * split off the parts from p_maputl into a separate header.
 * consolidated all blockmap related data into p_blockmap.h
 * split off the polyobject parts into po_man.h
2016-02-15 02:14:34 +01:00
Christoph Oelckers
158caf78a0 - more float to double conversion.
In particular this removes all assignments of FIXED2FLOAT to double variables because they not only lose precision but also generate unnecessary code.
2016-02-11 21:33:30 +01:00
Christoph Oelckers
7b5a77a8d8 - added various action specials and parameter extensions defined by Eternity Engine.
The reason for defining them is to be able to fill out the Eternity translation table for GZDoom's Extradata parser.
Most of the new specials are mere specializations of ZDoom's Generic_* functions and occupy positions above 255 to avoid filling up the last remaining free slots available for Hexen format maps.
Allowing action specials greater than 255 required a few changes:
 * all access to action specials is now through a small set of access functions.
 * Two new PCodes were added to ACC to handle these new specials from scripts.
 * a minor change to the network protocol, so netgame  and demo version numbers were bumped.
 * FS_Execute is now properly defined in p_lnspec.cpp.
Two of the newly added specials - generalizations of the special 'close Door in 30 seconds' and 'raise door in 5 minutes' sector types, will also be available to Hexen format maps. The rest are limited to use in ACS, UDMF and DECORATE.
This also adds 'change' and 'crush' parameters to most Floor_* and Ceiling_* specials, again to match Eternity's feature set.
2016-01-25 18:49:56 +01:00
Christoph Oelckers
3e446ea04d - replaced access to AActor's coordinate members with access functions
(first 200 compile errors down...)
2016-01-17 13:48:16 +01:00
Christoph Oelckers
6a63effa1f - fixed: A_CheckTerrain did not use the proper damage type for processing an instant death sector.
- moved sector secret information from sector_t::special and secretsector to two flag bits in sector_t::Flags.

This is to get rid of the bit masking madness in the floor/ceiling thinkers which need to preserve this bit when they change a sector's type.
2016-01-06 01:50:45 +01:00
Randy Heit
c86cd53753 Merge branch 'master' of https://github.com/crimsondusk/zdoom into crimsondusk-master
Conflicts:
	src/am_map.cpp
2015-12-31 20:18:54 -06:00
Christoph Oelckers
4a18a28448 - fixed: am_showtriggerlines will now ignore any non-activatable linedef types. 2015-11-25 12:20:35 +01:00
Teemu Piippo
69fd0e6eb4 Stylistical coherence.. 2015-09-12 14:07:40 +03:00
Teemu Piippo
67a7f48ca3 Handle locknumber in boundary checks, check for FS_Execute 2015-09-12 14:02:07 +03:00
Teemu Piippo
2f027504b6 Show sector action boundaries on the automap like line specials are. 2015-09-12 04:47:49 +03:00
Christoph Oelckers
3efbf6c74e - fixed: am_restorecolors did not work
This CCMD tried to access the current menu to decide which colors to reset but that is not available at all when this function gets called. It now uses the automap's own CVAR arrays.
2015-08-09 09:03:12 +02:00
Christoph Oelckers
4444d3c0c5 - removed the _3DFLOOR #define because we really do not want to comment this out anymore, right? 2015-06-07 09:41:44 +02:00
Randy Heit
fd7ed2bc25 Undo most of ZzZombo's changes
- "If it ain't broke, don't fix it."
- Some of the changes were downright wrong and some were pointless, so undo
  everything that doesn't look like an actual improvement.
2015-02-08 20:44:18 -06:00
ZzZombo
322742d4b1 - Fixed various instances of unused variables, accessing arrays out of bounds, initialization of non-primitive members in constructor's body, dead code, passing parameters by value instead of reference, usage of uninitialized variables, as reported by cppcheck. 2015-02-07 23:35:23 +08:00
Christoph Oelckers
8edace83c5 - made CheatKey and EasyKey vector graphics configurable through MAPINFO. 2014-10-25 10:19:14 +02:00
Christoph Oelckers
65e8563cf4 replaced all character arrays for lump/texture names in the level_info_t and FLevelLocals structures with FStrings as first preparation for allowing long texture names. 2014-05-13 11:33:59 +02:00
Christoph Oelckers
18386e4b23 Merge branch 'maint' 2013-09-03 08:44:52 +02:00
Christoph Oelckers
11c026ee84 - fixed: displaying sprites on the automap ignored both the actor's scale and translation. 2013-09-03 08:34:55 +02:00
Christoph Oelckers
62830f7927 - added separate automap color for non-counting monsters.
- fixed: using a nonexistent CVAR in a ColorPicker menu item caused a crash.
2013-08-14 00:32:05 +02:00
Christoph Oelckers
c8f0df44f2 Merge branch 'maint'
Conflicts:
	src/am_map.cpp
2013-08-10 09:41:50 +02:00
Christoph Oelckers
211d293002 - added MF6_NOTONAUTOMAP flag to exclude things from being shown with the scanner powerup. The IDDT cheat will not be affected by this. 2013-08-10 08:53:37 +02:00
Christoph Oelckers
151d54aaf5 - added 3 more modes for am_cheat: 4-6 are the same as 1-3 with the exception that lines not drawn on the regular automap won't be shown. 2013-08-09 11:32:46 +02:00
Christoph Oelckers
9f35788164 - added custom automap overlay colors.
- extended am_drawmapback so that map backgrounds can only be drawn if used with custom colorsets and Raven's, assuming that these sets were specifically made for the accompanying backgrounds.
2013-08-09 11:00:24 +02:00
Christoph Oelckers
aa72857c72 - implemented automap color parser for MAPINFO (code not tested yet!) 2013-08-02 16:56:42 +02:00
Christoph Oelckers
845020c617 - ovthingcolors were not properly set.
- added all the missing color CVARs for the overlays which previously duplicated use of one of the other CVARs.
2013-07-31 23:13:20 +02:00
Christoph Oelckers
d77673d681 - reorganization of automap color handling for easier maintenance
Mostly preparation to implement a per-mod automap option but also fixes a few minor issues with some colors that are not defined in the original game specific colorsets.
2013-07-31 22:59:35 +02:00
Christoph Oelckers
16456bec56 - added separate colors for the various types of 2-sided walls for the overlay automap. They previously all mapped to the same CVAR. 2013-07-30 13:17:20 +02:00
Christoph Oelckers
775ecdeebb - fall back to drawing triangles on automap when encountering actors with non-displayable sprites 2013-07-28 10:14:46 +02:00
Christoph Oelckers
7006df8d96 - fixed sprite rotation in automap submission 2013-07-25 17:19:36 +02:00
alexey.lysiuk
76e1e87456 + things as sprites on map, controlled with am_showthingsprites CVAR
drawing of sprites instead of things/players markers with am_cheat >= 2
possible am_showthingsprites values are:
0 - sprites disabled
1 - static front sprites
2 - animated front sprites
3 - animated sprites with actual things angles
2013-07-25 17:01:07 +03:00
Randy Heit
be0845acf1 - Moved all BorderNeedRefresh and SB_state updating code into separate functions that won't crash if screen is NULL.
SVN r4167 (trunk)
2013-02-27 03:10:25 +00:00
Randy Heit
682c7d2a8a - Fixed: The originx and originy for the textured automap is supposed to be calculated after
rotating originpt by the automap, not before.

SVN r3998 (trunk)
2012-12-22 00:55:27 +00:00
Randy Heit
c114113fe8 - Fixed: Sky floors should not be drawn in the textured automap.
SVN r3997 (trunk)
2012-12-22 00:26:26 +00:00
Randy Heit
b1543fdc08 - Skip 3D floors in the textured automap that are not set to draw their planes.
- Fixed: The textured automap also needs to take the texture origin for 3D floors from the control sector.

SVN r3978 (trunk)
2012-12-04 03:47:10 +00:00
Randy Heit
736c7f093a - Fixed: The textured automap used the main sector's floor's rotation and scaling when drawing 3D floors.
SVN r3977 (trunk)
2012-12-04 03:37:52 +00:00
Randy Heit
dac802d28a - Fixed: Toggling the automap could cancel out ending the level, among other things.
SVN r3765 (trunk)
2012-07-15 03:55:05 +00:00
Randy Heit
5a95c997d1 - Added keys on the automap for Heretic in easy mode, courtesy of Gez.
SVN r3356 (trunk)
2012-02-12 02:45:48 +00:00
Randy Heit
033b3964f1 - Fixed: C_DoKey() must disable all doublebind processing if it isn't passed any doublebindings.
This is because the automap calls it with its own bindings, which effectively cancelled all
  doublebindings while the automap was open.

SVN r3354 (trunk)
2012-02-11 01:44:56 +00:00
Randy Heit
8e636b8abf - Fixed: Must not try to draw null flats in the textured automap.
SVN r3333 (trunk)
2011-12-14 00:36:47 +00:00
Christoph Oelckers
b1905c16ef - added UDMF LOcknumber property, submitted by Nightfall.
SVN r3331 (trunk)
2011-12-12 16:07:32 +00:00
Braden Obrzut
9c8bb236ec - Backport r1253 through r1256 and r1259 of GZDoom.
* By pressing request, allow Linux users to build ZDoom with an FMOD version that doesn't give them 3D sound positioning. :p
	* Fixed severe copy-pasta portal copy bug.
	* 3D floors hidden by being moved above the ceiling or below the floor will no longer show in the automap.
	* Reject TEXTURES scale of 0. They'd do nothing but provoke a division by zero error.
	* Maybe fixed Linux compilation?

SVN r3297 (trunk)
2011-09-27 01:14:31 +00:00
Christoph Oelckers
5bfcaab25c - separation of software renderer from the rest of the code complete. All external access to the renderer is routed through the FRenderer interface class now, with two exceptions (2D texture drawing to a canvas and polymost testing code) that are handled by #defines.
SVN r3263 (trunk)
2011-07-07 15:37:47 +00:00
Christoph Oelckers
163301dcd5 - took all includes of farchive.h out of headers. This file will have to be included explicitly in each source file that needs it.
SVN r3259 (trunk)
2011-07-06 14:20:54 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +00:00
Christoph Oelckers
5c6fd66ed5 - rename src/resources to src/r_data.
SVN r3254 (trunk)
2011-07-06 07:35:36 +00:00
Christoph Oelckers
4626492f50 - separated all colormap related code from v_palette.cpp and r_data.cpp into its own file.
SVN r3245 (trunk)
2011-07-03 10:47:35 +00:00
Randy Heit
ef69e2bbf0 - Fix overflows in AM_clipMline().
SVN r3182 (trunk)
2011-04-17 03:43:42 +00:00
Randy Heit
d3b44a4172 - Fix errors/warnings from MinGW 4.5.0 (tdm-1).
- Disable the missing field initializers warnings that -Wextra produces from GCC.

SVN r3173 (trunk)
2011-03-29 05:20:33 +00:00
Christoph Oelckers
fae8ed444c - merged 3dfloors2 branch into trunk.
SVN r3124 (trunk)
2011-01-29 11:09:38 +00:00
Christoph Oelckers
e7eb43a343 - added Gez's automap patch to mark trigger lines.
SVN r3040 (trunk)
2010-12-15 00:14:42 +00:00
Christoph Oelckers
f0f17e531c - move static AM color initialization into the AM_StaticInit function.
- move D_LoadWadSettings to keysections.cpp.
- made some more data reloadable.
- data structures filled by P_SetupLevel should be cleared before loading the level. They can remain non-empty in case of an error. There's probably more to fix here...
- fixed: MidiDevices and MusicAliases were not cleared before reloading local SNDINFOs.
- fixed signed/unsigned warnings in AddSwitchPair for real (GCC really allows -1u? MSVC prints a warning for that.)


SVN r3036 (trunk)
2010-12-14 00:50:02 +00:00
Christoph Oelckers
572bc4620a - changed automap initialization so that static data only gets initialized once upon startup instead of each time a level starts.
- initialize AUTOPAGE only once when the level starts, not each time the automap is switched on.


SVN r3031 (trunk)
2010-12-12 17:54:10 +00:00
Christoph Oelckers
7dd8a0fce9 - replaced all calls to sqrtf with sqrt. Also changed P_RadiusAttack to use doubles for all floating point calculations.
SVN r2989 (trunk)
2010-11-07 14:39:09 +00:00
Christoph Oelckers
b0c7ac6868 - made "follow player" automap option a CVAR and added a menu item for it.
SVN r2965 (trunk)
2010-10-24 07:39:48 +00:00
Christoph Oelckers
ce7921c9d9 - externalized the vector graphics for the automap arrows and the key.
SVN r2949 (trunk)
2010-10-16 22:37:30 +00:00
Christoph Oelckers
5be9729872 - FScanner::Float is a double so there's no need to cast values to float before assigning them to this variable.
SVN r2865 (trunk)
2010-09-29 07:25:14 +00:00
Christoph Oelckers
ec0b07b5e2 - added Entryway's AM_Rotate optimization.
SVN r2739 (trunk)
2010-09-10 13:49:08 +00:00
Christoph Oelckers
ce2c2bd825 - replaced AM_Rotate with a more precise floating point version posted by Entryway.
SVN r2713 (trunk)
2010-09-07 20:23:44 +00:00
Randy Heit
0202c0c3a9 - Added the am_zoom command to zoom the automap by a specific step and set default mouse wheel
bindings for it. I'm not sure how this should be exposed through the menu, however. Technically,
  it's different from the pan keys, but from an end user's point of view, they both zoom the
  automap, so they should both be listed under the Zoom in and out controls. But the menu code
  can't handle that.

SVN r2663 (trunk)
2010-09-01 05:03:17 +00:00
Randy Heit
f9691a24ff - Fixed: The automap was too aggressive about hiding markers.
SVN r2628 (trunk)
2010-08-29 03:37:41 +00:00
Christoph Oelckers
4e1a514455 - fixed: Subsectors which are the origin of polyobjects should not be drawn on the textured automap because the vertices no longer are where they'd be expected to be.
SVN r2622 (trunk)
2010-08-28 16:51:41 +00:00
Christoph Oelckers
76816f7da8 - disable check for hidden sectors because it does more harm than good.
- don't draw a textured automap in overlay mode.


SVN r2614 (trunk)
2010-08-27 17:49:27 +00:00
Christoph Oelckers
9a4abe0915 - merged automap branch into trunk.
SVN r2609 (trunk)
2010-08-27 15:20:05 +00:00
Randy Heit
677d07f837 - Merge BSP-able polyobjects back into the trunk.
SVN r2480 (trunk)
2010-08-01 02:41:56 +00:00
Christoph Oelckers
35ba99ed31 - Added Gez's automap enhancements but made the new key icon optional.
SVN r2462 (trunk)
2010-07-25 21:46:51 +00:00
Christoph Oelckers
4ac64b6df7 - merged polyobject branch into trunk and made some adjustments for savegame compatibility.
SVN r2448 (trunk)
2010-07-23 05:56:25 +00:00
Christoph Oelckers
b2cef54d72 - fixed: Classes inherited from PowerScanner didn't work anymore.
SVN r2368 (trunk)
2010-06-13 10:11:50 +00:00
Christoph Oelckers
80f5a58e34 - fix automap cheat to avoid division by 0.
SVN r2308 (trunk)
2010-05-01 20:34:28 +00:00