Commit graph

4474 commits

Author SHA1 Message Date
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
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
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
alexey.lysiuk
8b92c45f84 Fixed crash in lump filtering caused by uninitialized variables 2015-04-04 12:38:37 +03:00
Christoph Oelckers
747e160c96 Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-04 10:30:37 +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
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
Randy Heit
fc6f983c13 Fix memory leak when passing directories to -file 2015-04-03 21:50:08 -05:00
Randy Heit
efa82cf38b Consolidate archive sorting into FResourceFile base class 2015-04-03 20:22:18 -05:00
Randy Heit
966d0b7034 Use FString for FResourceLump::FullName 2015-04-03 20:00:58 -05:00
Christoph Oelckers
2ec8e2c2ac - moved spawn ID definitions to MAPINFO as well and removed all 'Game' directives from DECORATE because editor and spawn numbers are the only thing that required them. 2015-04-04 00:39:09 +02:00
Christoph Oelckers
4f7ec3ad89 - print proper information about non-actor mapthings. 2015-04-03 22:23:42 +02:00
Christoph Oelckers
9e5bf38123 - handle all special mapthing items (player starts, polyobj spots) via the new MAPINFO method instead of hard coding them in the spawn function.
(Note: The buildmap loading code should be adjusted to the new functionality as well eventually.)
2015-04-03 21:17:10 +02:00
Christoph Oelckers
15dbbc9137 - set editor numbers through MAPINFO. The DECORATE way still works ans will override any definition made in MAPINFO.
- use a standard TMap for finding editor numbers
2015-04-03 16:51:45 +02:00
Christoph Oelckers
ccd9fb9c23 - moved FDoomEdMap to its own file to make the upcoming changes a bit nicer to handle. 2015-04-03 10:54:55 +02:00
Christoph Oelckers
6c603b3c78 Merge branch 'misc_code_improvements' of https://github.com/edward-san/zdoom 2015-04-03 09:33:33 +02:00
Christoph Oelckers
4c06e71536 Merge branch 'dmgforcedfix' of https://github.com/MajorCooke/zdoom 2015-04-03 09:32:46 +02:00
MajorCooke
27c1434585 - Fixed: Buddha never took forced damage into account. 2015-04-02 20:52:51 -05:00
Randy Heit
d37f9cbcae Add flies (doomed #112) from the Hexen retail beta
...because it brought back memories of adding Strife support.
- The search function is radically different, but the flying mechanics are
  the same.
2015-04-02 17:52:54 -05:00
Edoardo Prezioso
7c7c3fb54e - Make the 'crashout' CCMD available in non-win32. 2015-04-02 20:14:33 +02:00
Edoardo Prezioso
a88f515364 - Import GAMENAMELOWERCASE macro from Zandronum.
This will greatly help reducing the code delta between ZDoom and the child ports.
2015-04-02 13:27:52 +02:00
Edoardo Prezioso
e07f64a23a - Increase the SDL crashinfo char buffer to 4 KB.
This helps the crash catcher when there are numerous wad files, for which it's possible that either the wad list, the map or the position is truncated. A more reliable alternative to this should be allocating the char buffer, but I never heard about a way to do this reliably during signal handling.
2015-04-02 13:19:48 +02:00
Edoardo Prezioso
6c07d765db - Fixed a wrong linux macro in an ifdef. 2015-04-02 13:18:37 +02:00
Christoph Oelckers
0a16855232 - fixed: The assignment to the 'player' variable in P_DamageMobj occured too late, skipping a few cases.
- changed monster unblocking logic to include players as well (i.e. a player being stuck inside another actor is allowed to move away from that other actor.)
2015-04-02 10:05:32 +02:00
MajorCooke
e70aae91e3 - Fixed NODAMAGE not ignoring telefrag damage. 2015-04-01 10:31:47 -05:00
Christoph Oelckers
74f4ae86d8 - forgot to save this... 2015-04-01 11:57:10 +02:00
Christoph Oelckers
ad9e4413fa - made the texture precaching code a bit more self-descriptive after finding a discrepancy in handling between ZDoom and GZDoom's versions. 2015-04-01 11:48:47 +02:00
Christoph Oelckers
34aeb428a1 - Removed the check for this flag from P_RadiusAttack because MF7_CAUSEPAIN cannot be used for radius attacks. Their logic is too different from regular attacks. 2015-04-01 10:01:48 +02:00
Christoph Oelckers
d940c6a2ee - fixed: With the recent changes to the damage code, the check for MF5_NODAMAGE was too early. Putting it into AActor::TakeSpecialDamage is also not the best idea because that limits that function's potential. 2015-03-31 23:15:43 +02:00
Christoph Oelckers
5febac0994 - removed incorrect multiplication from FraggleScript's PointToDist function. The problem was introduced by replacing a (fixed_t) type cast with FLOATTOFIXED without removing the value range adjustment. 2015-03-31 15:21:15 +02:00
Christoph Oelckers
4d59190446 - redit commit 5f56fb5a16 without altering the line endings throughout thingdef_codeptr.cpp.
* Changed the behavior of SetActorTeleFog.
- Don't force "null" to resolve to no actor since "none" is already defined as NULL (via FindClass). (This change also applies to the decorate properties.)
- Passing an empty actor name will keep the existing fog since there's otherwise no way set only one fog. Since "none" works to remove the fog, I see no reason not to have this option.
2015-03-31 09:24:16 +02:00
Braden Obrzut
5f56fb5a16 Changed the behavior of SetActorTeleFog.
- Don't force "null" to resolve to no actor since "none" is already defined as NULL (via FindClass). (This change also applies to the decorate properties.)
- Passing an empty actor name will keep the existing fog since there's otherwise no way set only one fog. Since "none" works to remove the fog, I see no reason not to have this option.
2015-03-30 21:54:58 -04:00
Christoph Oelckers
3849cb8623 - added precaching of textures via MAPINFO. 2015-03-29 13:02:45 +02:00
alexey.lysiuk
267054071f Added missing render styles to info console command 2015-03-28 12:13:47 +02:00
Christoph Oelckers
25e5ac7e2a - fixed: CheckForResurrection should check whether the active translation is actually a blood translation before resetting it, not assuming that GenericCrush is a single state with infinite duration. 2015-03-27 18:29:57 +01:00
Christoph Oelckers
15e0f19fdb - fixed another flags mismatch. 2015-03-27 17:16:53 +01:00
Christoph Oelckers
94a04f36e5 - fixed: Dormant monsters should not be telefraggable. 2015-03-27 17:06:56 +01:00
Christoph Oelckers
164d523eca - fixed incorrect flags word access. 2015-03-27 16:58:21 +01:00
Christoph Oelckers
eb78c24140 - small oversight: TakeSpecialDamage must be called if damage is 0 (to do the special death state checks) but it may not be called if damage is already -1, because that means that damage and pain have already been ruled out completely. 2015-03-27 14:37:13 +01:00
Christoph Oelckers
9d5e6d32c7 - review of P_DamageMobj:
* decided that the pain threshold should always be checked against the actual damage, even if it's down to 0, for consistency. This also restores the original behavior of using actual damage for checking the pain threshold which was altered by the introduction of the ALLOWPAIN and CAUSEPAIN flags.
* removed all newly added exceptions that excluded the player from checks for completely cancelled out damage.
* if anything during damage modification causes negative damage, no pain handling whatsoever will be initiated.
* made sure that TELEFRAG_DAMAGE will not be subjected to damage amount modification by protection items and any other kind of damage modification.
2015-03-27 13:49:47 +01:00