Commit graph

5675 commits

Author SHA1 Message Date
Christoph Oelckers
2cc6e74b31 - renamed Hacx's autoload sections to remove minor version numbers. 2015-04-06 21:43:55 +02:00
Christoph Oelckers
4971e7def1 - another GCC countof fix... 2015-04-06 21:40:14 +02:00
Christoph Oelckers
7d2ab461d9 - don't use 'countof' to iterate through a static array that's defined inside a function. Some GCC versions apparently do not like that. 2015-04-06 20:59:43 +02:00
Christoph Oelckers
a013703e1c - add a NULL pointer check for the config to BaseFileSearch. 2015-04-06 16:44:03 +02:00
Christoph Oelckers
dfda74ffe3 - automatically create autoload section based on IWADINFO.
This has an important implication:
Previously the config was loaded before IWADINFO so in order to allow the config to access the data this had to be switched around.
This means that zdoom.pk3 will not be looked for in the global IWAD search paths anymore, but since it shouldn't be there to begin with it should be an acceptable compromise.
2015-04-06 13:52:08 +02:00
Christoph Oelckers
258822ef3b - redid autoload handler and resource file filtering to use the newly defined method with multi-part names.
As a result the old 'Group' property could be removed and all other means to get a section name were disabled.
As an example, if the code gets 'doom.doom2.commercial' it will use the following sections in this order:

global.autoload
doom.autoload
doom.doom2.autoload
doom.doom2.commercial.autoload.
2015-04-06 11:57:12 +02:00
Christoph Oelckers
3241b1d3db - add new config section names to iwadinfo.txt 2015-04-06 11:31:08 +02:00
Christoph Oelckers
3114a26bc8 - allow renaming of config sections and added migration code to rename the old autoload sections to the more flexible naming system that's planned. 2015-04-06 11:21:28 +02:00
Christoph Oelckers
cac634567b - use a proper FString to hold the name of config sections instead of a buffer tacked onto the actual structure. This is necessary if we want to be able to rename a section. 2015-04-06 10:51:28 +02:00
Randy Heit
b300cfaf62 Remove old pre-INI config migration code
- As if any of this matters now. It's not the 90s anymore.
2015-04-05 21:56:00 -05:00
Randy Heit
c36222d2ef Externalized default key bindings 2015-04-05 21:40:53 -05:00
Randy Heit
62d036a63e Added gametype-based filter
- For when IWADs are too specific, filter by the base gametype too.
- Minor small edits to the sndinfo.txt files so that zipdir will notice
  the changes, since it doesn't check path names when checking for
  file differences.
2015-04-05 20:24:49 -05:00
Christoph Oelckers
a91997d12c - fixed: Don't try to load autoload sections for empty section names. 2015-04-05 22:07:24 +02:00
Christoph Oelckers
b45c88fc4f - changed shaders. 2015-04-05 20:20:56 +02:00
Christoph Oelckers
cf7cb4f00f - use hardware clip planes to split translucent walls and sprites by 3D floor planes.
This method has the advantage that it also works for models, xy-billboarded sprites and walls that require complex splitting of the polygon. The old method using actual polygon splitting only works for strictly vertical data that could be trivially split in two.
2015-04-05 19:00:35 +02:00
Christoph Oelckers
45526c2769 - basics for using hardware clip planes to split translucent stuff by 3D floor planes. 2015-04-05 18:55:21 +02:00
Christoph Oelckers
0ae74b844d Merge branch 'osx_text_paste' of https://github.com/alexey-lysiuk/gzdoom 2015-04-05 12:18:23 +02:00
alexey.lysiuk
7b89312923 Fixed potential issue with read beyond buffer boundaries 2015-04-05 11:52:57 +03:00
alexey.lysiuk
ebd8f24103 Fixed compilation with OS X SDK 10.4 2015-04-05 11:39:49 +03:00
alexey.lysiuk
82f7b439c8 Improved text pasting on OS X
Support for UTF-8 and UTF-16 encodings should cover all cases of text pasting from clipboard
2015-04-05 10:59:07 +03:00
Christoph Oelckers
8762ab48d3 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-05 09:47:27 +02:00
Randy Heit
89054f5d60 Use filtering and LOADACS to autoload strfhelp.o
- No more special case for STRFHELP in the executable!
2015-04-04 18:40:48 -05:00
Randy Heit
e451faa1cc Fixed: FString::ReallocBuffer could write to unallocated memory
- Previously, calling ReallocBuffer with a smaller buffer size than the
  current one could overwrite unallocated memory. This required that the
  string it was called on had more than one reference and therefore
  required creating a new copy. The entire original string would be
  copied, whether it fit in the new buffer or not.
2015-04-04 18:20:05 -05:00
Randy Heit
6da887c34f Use Truncate to chop off extension in LumpNameSetup.
- Left() always creates a new string. Truncate() can reuse the old one if
  it only has one reference.
2015-04-04 18:20:05 -05:00
Randy Heit
4315423200 Rename ns_invalid to ns_hidden
- Also use ns_hidden by name in LumpNameSetup().
2015-04-04 18:20:04 -05:00
Randy Heit
2103fe2a14 Make FResourceLump::LumpNameSetup's argument an FString 2015-04-04 18:20:03 -05:00
Randy Heit
bbbbb7ac9d Reorder FMapThing to remove padding 2015-04-04 18:20:03 -05:00
Christoph Oelckers
1fddd1859e - fixed: FResourceFile::FilterLumps must use a proper copy of the filename to pass to LumpNameSetup instead of a pointer to the file name's stringbuffer, because that function will overwrite the variable it is taken from. 2015-04-05 00:38:29 +02:00
Christoph Oelckers
25e19ab471 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-05 00:31:55 +02:00
Christoph Oelckers
b6a4511dd1 - move conversation ID definition to MAPINFO as well. Uses the newly added filter feature to handle the teaser differences. 2015-04-05 00:31:15 +02:00
rheit
60a0966f0f Merge pull request #306 from alexey-lysiuk/osx_vid_autoswitch
Added control of automatic graphics switching on OS X
2015-04-04 15:41:18 -05:00
Christoph Oelckers
6e45c565a0 - fixed: FResourceLump::LumpNameSetup's iname parameter can point to the FullName variable's stringbuffer so any assignment to that variable must be done indirectly. 2015-04-04 20:52:55 +02:00
Christoph Oelckers
a5c75c1b1a - added some missing autoload sections (Hacx 1.2 vs. Hacx 2, Hexen vs Deathkings and Heretic vs. Shadows of the Serpent Riders.) and filter names for Strifeteaser1 and Strifeteaser2 which are needed for exporting the conversation IDs to MAPINFO 2015-04-04 20:44:27 +02:00
Christoph Oelckers
bead3e046b - fixed weapon positioning again, after finding out that the first fix just worked around the actual problem: The entire coordinate calculation must be done in floating point with no integer math at all. Due to roundoff errors the stored int values needed for wall and flat placement significantly lack precision and with the high scaling factor that needs to be used for weapon HUD sprites these can easily become several pixels. After fixing this the border around sprite textures could be reverted to one pixel again.
- fixed: The 'may not be expanded' state should be stored in the texture and reused later. This also needs to revalidate the material if it decides that expansion should be disallowed.
2015-04-04 17:50:22 +02:00
alexey.lysiuk
193b491b63 Added control of automatic graphics switching on OS X
Automatic graphics switching is enabled by default
Set vid_autoswitch CVAR to false to disable it
2015-04-04 17:36:55 +03:00
Christoph Oelckers
85ef1a11e9 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-04 14:13:37 +02:00
Christoph Oelckers
87229f4787 Merge branch 'fix_filter_crash' of https://github.com/alexey-lysiuk/gzdoom 2015-04-04 14:12:13 +02:00
Christoph Oelckers
bd96adafda - cleanup 2015-04-04 14:12:04 +02:00
Christoph Oelckers
91eafed5d3 - fixed coordinate calculations for trimmed sprites which were quite a bit broken. 2015-04-04 13:37:55 +02:00
Christoph Oelckers
67334bfa2b - calculate weapon positions fully in floating point to avoid roundoff errors.
- In order to get reliable results the empty border around scaled sprites must be the same scale as the sprite (i.e. 2 pixels for 2x scale and 4 pixels for 4x scale.)
2015-04-04 12:35:10 +02:00
alexey.lysiuk
8b92c45f84 Fixed crash in lump filtering caused by uninitialized variables 2015-04-04 12:38:37 +03:00
Christoph Oelckers
b0c0012d60 - add dynamic lights to editor number table and remove them from DECORATE definitions. 2015-04-04 10:42:44 +02:00
Christoph Oelckers
39b5bcc4f0 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-04 10:38:28 +02:00
Christoph Oelckers
a65c9bec40 - move video options override out of menudef.z.
This is to allow easier merging with future ZDoom changes
It was done this way only to avoid having to deal with SVN's poor merging capabilities but with Git this is no longer an issue.
The OpenGL submenus will remain where they are, though.
2015-04-04 10:37:31 +02:00
Christoph Oelckers
5f2f11a43b Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-04 10:32:23 +02:00
Christoph Oelckers
747e160c96 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-04 10:30:37 +02:00
Christoph Oelckers
338a220df8 - add empty editor number mapping for GZDoom's dynamic lights so that these will no longer produce errors when loaded with ZDoom. 2015-04-04 10:30:09 +02:00
Christoph Oelckers
51591d10b0 - handle slope things through new definition tables as well. Since these get processed outside P_SpawnMapThing it required some restructuring so that the actual spawn data is present when slope things get processed.
- removed FMapThing::Serialize because it isn't used anywhere - it was rather broken anyway.
2015-04-04 10:25:01 +02:00
Randy Heit
a5e67f7332 Split sndinfo.txt up into multiple files using filter directories.
- This means the original need for $ifdoom, $ifheretic, etc directives is
  no more, but they need to stay for compatibility with third-party wads
  that use them.
2015-04-03 22:58:58 -05:00
Randy Heit
7b4d6e2f87 Add lump filtering for archive resources
- Multi-directory archives (e.g. zips) now support filtering lumps
  depending on the loaded IWAD. The search rules are the same as for the
  Autoload entries in the user's ini. For instance, if you are playing
  Doom 2, the following filters will be applied:
  * "filter/doom2/*"
  * "filter/doom/*"
  They will be renamed to strip out the "filter/doom2/" and "filter/doom/"
  parts and will be ordered so they take precedence over any files not
  inside a filter/ directory. Any files inside another filter/ directory
  (e.g. "filter/hexen/*") will be ignored.
2015-04-03 22:42:22 -05:00