Commit graph

1255 commits

Author SHA1 Message Date
Christoph Oelckers
92d17c0397 - cleaned up g_level.cpp
SVN r1392 (newmapinfo)
2009-02-03 18:13:58 +00:00
Christoph Oelckers
fabc0906a7 - fixed: When parsing an endgame block there was one check too many for an opening brace.
- fixed: Endgame texts across multiple lines did not get newlines added.
- increased string heap to 128kb after getting overflows with some MAPINFOs that contained a lot of large endgame texts.


SVN r1390 (newmapinfo)
2009-02-01 16:49:31 +00:00
Christoph Oelckers
f0d89f71d0 - more MAPINFO fixes:
* moved inlined parsing functions out of g_level.h into g_mapinfo.cpp.
  * made music parsing a subfunction because this code got repeated multiple times.
  * renamed some function
  * removed unused functions
  * fixed HexenHack handling. There was still a local variable involved that prevented access to the global one.
  * parsing of teaser keyword in episodes did not work.
  * fixed sky scroll speed values

The current code processes all old MAPINFOs I tested it with properly and did the same for
one I changed to the new format.


SVN r1389 (newmapinfo)
2009-02-01 12:44:30 +00:00
Christoph Oelckers
164901f8db - Bugfixing of new MAPINFO parser. Most old MAPINFOs I tested are working again.
SVN r1385 (newmapinfo)
2009-01-31 19:21:08 +00:00
Christoph Oelckers
2c793bce0a - Some data restructuring in MAPINFO branch:
* removed support for custom cluster properties
  * Changed how G_MaybeLookupLevelName works and made it return an FString.
  * removed 64 character limit on level names.



SVN r1379 (newmapinfo)
2009-01-30 12:07:45 +00:00
Christoph Oelckers
e7141238ba - new MAPINFO parser complete but still untested.
- split of parser code from g_level.cpp
- const-ified parameters to F_StartFinale.


SVN r1378 (newmapinfo)
2009-01-30 09:51:16 +00:00
Christoph Oelckers
bf08ec6daf MAPINFO work:
- converted map block parser.
- replaced all uses of ReplaceString in level_info_t with FStrings and made the specialaction data a TArray so that levelinfos can be handled without error prone maintenance functions.


NOTE: The mapinfo_branch still doesn't produce a working executable!


SVN r1370 (newmapinfo)
2009-01-27 00:00:49 +00:00
Christoph Oelckers
c0e9a4607a - finished changes to the skill parser
- made parser changes to episode parser.


SVN r1361 (newmapinfo)
2009-01-18 22:29:06 +00:00
Christoph Oelckers
3d08272a54 - started work on new MAPINFO parser:
* split level_info_t::flags into 2 DWORDS so that I don't have to deal with 64 bit values later.
  * split off skill code into its own file
  * started creating a parser class for MAPINFO
  * made necessary changes to skill parsing code to handle both formats

NOTE: This code compiles but will most certainly not be able to parse a MAPINFO lump successfully!

SVN r1360 (newmapinfo)
2009-01-18 22:09:06 +00:00
Christoph Oelckers
bbda4622e7 - Added a CopyInfo function to FTexture that contains all code required to
clone a texture. Used for creating warping textures.
- Fixed: P_FindFloorCeiling should not be called before setting the actor's z-
  coordinate. For testing 3D Midtex lines and 3D floors the proper position
  needs to be set first.
- Fixed the autoaim fix from Jan 10.


SVN r1358 (trunk)
2009-01-18 09:31:49 +00:00
Christoph Oelckers
51391f889c - Added option to specify the amount of ammo to be given by a WeaponGiver.
SVN r1357 (trunk)
2009-01-18 08:20:29 +00:00
Christoph Oelckers
b4b76ed4e6 - fixed: Identification of Doom1 Freedoom IWAD did not work.
- fixed: UDMF did not initialize a sector's light colors.
- fixed implementation of DF2_NOAUTOAIM flag.


SVN r1356 (trunk)
2009-01-10 09:40:47 +00:00
Christoph Oelckers
35cc39f094 - copied some 3D floor fixes from GZDoom.
- fixed: Crushing polyobject did incomplete checks for blocked moves.


SVN r1355 (trunk)
2009-01-07 18:45:39 +00:00
Christoph Oelckers
bf63041585 - fixed: Parsing of color strings with 6 characters and spaces did not work.
- fixed: State labels must be evaluated for the state's owner, not the calling actor.



SVN r1354 (trunk)
2009-01-06 00:03:18 +00:00
Christoph Oelckers
6eb32dc0c2 - moved #ifdef in p_3dfloors.cpp below the #includes.
SVN r1353 (trunk)
2009-01-04 17:31:59 +00:00
Christoph Oelckers
a73b008255 - Fixed: For map spawns any change to an actor's floor z-coordinate must be
delayed until after its z-coordinate has been set. That means that for 
  map spawns AActor::StaticSpawn may not call P_FindFloorCeiling for such
  actors.


SVN r1352 (trunk)
2009-01-04 15:51:00 +00:00
Christoph Oelckers
78933df10d - added GZDoom's 3D floor physics code. This is not active yet so anything compiled from this code won't have any support for it!
SVN r1351 (trunk)
2009-01-04 15:00:29 +00:00
Christoph Oelckers
f7148b6b40 - Used new functionality to avoid moving the puff around in SpawnDeepSplash.
- Fixed: P_RailAttack used the shooting actor or a default puff for some splash
  related actions. It should use the puff type passed to it as a parameter instead.
- Changed splash handling in P_LineAttack to use the actual hit position to
  spawn the splash and not the puff's spawn position which is offset a little.
- made some precision related changes to P_HitWater. The precise hit coordinate
  can now be passed as parameters.


SVN r1350 (trunk)
2009-01-04 12:25:22 +00:00
Christoph Oelckers
3fe5db901c - fixed: x64 compile used debug updaterevision for release target.
SVN r1349 (trunk)
2009-01-03 21:43:08 +00:00
Christoph Oelckers
bbdb2b10a8 - Made spawning of floor- and ceiling huggers a little more intelligent.
SVN r1348 (trunk)
2009-01-03 18:09:33 +00:00
Christoph Oelckers
fdfee91b9f - Fixed: 'None' was no longer recognized as a NULL class name by the
DECORATE parser.


SVN r1347 (trunk)
2009-01-03 14:44:41 +00:00
Christoph Oelckers
35edd15386 - Added 'ininventory item, amount' option to SBARINFO to check for a minimum
amount instead of mere presence in the inventory.
- Fixed: Door lock messages were overwritten by remote messages.

SVN r1346 (trunk)
2009-01-02 17:49:48 +00:00
Christoph Oelckers
aa5bdd0884 - fixed r1342 changes
SVN r1345 (trunk)
2009-01-01 22:35:29 +00:00
Christoph Oelckers
7fde758e26 - Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types.
- Added a few missing NULL pointer checks to SBARINFO code.


SVN r1344 (trunk)
2009-01-01 16:46:05 +00:00
Christoph Oelckers
6a321fd8f5 - Changed pickup sounds of local player to unpaused to resolve problems with
the time freezer and make them behave better.
- Fixed: When sounds are paused not all newly started sounds should actually
  be played.
- Fixed: SBARINFO had no means to check if a weapon uses any ammo at all and
  as a result the inventory icon was misplaced if a no-ammo weapon was selected.

SVN r1343 (trunk)
2009-01-01 15:09:49 +00:00
Christoph Oelckers
ee8ce6c1e1 - Changed Linux's I_MSTime to work the same as Windows's.
SVN r1342 (trunk)
2009-01-01 12:05:02 +00:00
Christoph Oelckers
9098bc1a46 - Added a constant name for Skulltag's 128 flag for A_SpawnItemEx. For
compatibility ZDoom needs to define this name, too, even though it doesn't 
  use it.
- Fixed: The nodebuilder could hang on badly set up polyobjects. Now it aborts 
  when the loop iterates NumberOfSegs times.

SVN r1338 (trunk)
2008-12-31 12:02:08 +00:00
Christoph Oelckers
987c878a9a - Fixed: FMOD calls for setting the water reverb must check the return code
for errors.
- Fixed: Hexen's dual attack weapons must check distance to targets in 3D,
  not 2D.


SVN r1336 (trunk)
2008-12-30 23:27:27 +00:00
Christoph Oelckers
aeaf94c1c4 - disabled debug messages.
SVN r1335 (trunk)
2008-12-30 14:24:55 +00:00
Christoph Oelckers
f8c38e5f54 - Made several DECORATE errors which do not involve parsing non-fatal.
- Added a static error counter to FScriptPosition class.
- Changed initialization of actor class type properties: fuglyname is gone as
  is the postprocessing in FinishThingdef. Instead an empty placeholder class
  is now created when a class is first referenced and this placeholder is later
  filled in. 
- Added option to replace backslash with '^' in state frame definitions because
  the backslash is just causing too many problems because it's also an escape
  character.


SVN r1334 (trunk)
2008-12-29 23:03:38 +00:00
Christoph Oelckers
8f686a5e02 - Added Karate Chris's new DMFlags submission.
SVN r1333 (trunk)
2008-12-28 09:49:15 +00:00
Christoph Oelckers
37d056c041 - Fixed: The correct player class was not remembered when the menu had both
a player class selection menu and an episode menu.
- Fixed: AddToConsole could write outside its working buffer.
- Fixed: 0 was no longer recognized as placeholder for 'no state' in A_Chase.
- Fixed: When picking up weapons the code did not check if it should switch away
  from weak weapons.


SVN r1332 (trunk)
2008-12-27 20:18:31 +00:00
Christoph Oelckers
a66eb7f8c3 - Fixed: The Boss Brain could crash when it tried to shoot a cube but having no spawn spots placed.
SVN r1331 (trunk)
2008-12-26 08:53:12 +00:00
Randy Heit
120233eebd - OggMod improperly decodes the right channel of stereo samples when sending
them to OggEnc, so I have no choice but to convert them to mono by chopping
  off the right channel and only using the left channel information.


SVN r1327 (trunk)
2008-12-21 04:14:16 +00:00
Randy Heit
97de7897de - Fixed: OggMod passes the raw sample data to OggEnc for stereo samples, so
the resultant Vorbis stream is not actually stereo but mono with the right
  channel after the left. The two need to be interleaved just like
  uncompressed samples are.
- Removed the pattern length limit in the XM reader.


SVN r1326 (trunk)
2008-12-20 04:17:10 +00:00
Randy Heit
835ed26370 - Decal changes as per Xaser's suggestions: Smaller decal for PhoenixFX2,
CrossbowFX2 and MaceFX4 were missing decals, and HornRodFX2 gets a whole
  new decal.
- Fixed: bfgscrc2.png had some holes in the middle that did not look so good.
  (From previously being handled through WinTex, maybe?)


SVN r1325 (trunk)
2008-12-19 03:57:24 +00:00
Randy Heit
48be3f7022 - Fixed: Thing_ProjectileIntercept broke slightly when converted to the new
vector math routines (almost two years ago!) because the original code
  multiplied down columns of the rotation matrix, but the new code multiplies
  across rows of the matrix instead. This is remedied by flipping the matrix
  across the x=y axis by reversing the sign of the sine value passed to the
  matrix constructor.


SVN r1324 (trunk)
2008-12-18 06:22:18 +00:00
Randy Heit
45fc728f2e - Fixed: Autoloading a game (e.g. respawning after dying in single player)
during demo playback prematurely ended demo control of the player.


SVN r1321 (trunk)
2008-12-16 04:56:25 +00:00
Randy Heit
86c04f6b82 - Fixed: Loading a multiplayer save with only one player crashed.
SVN r1319 (trunk)
2008-12-16 03:59:28 +00:00
Randy Heit
4c14c197f8 - Changed the co-op intermission screen to draw the stats with the small font.
SVN r1318 (trunk)
2008-12-16 03:15:03 +00:00
Randy Heit
49120f59d4 - Added Karate Chris's patch to optionally specify an angle offset for
summoning.
- Added Karate Chris's fix for Serpent Staff vampirism on teammates.
- Locks and teleporters now take precedence over one-sidedness for automap
  coloring.


SVN r1317 (trunk)
2008-12-16 01:23:44 +00:00
Randy Heit
f435576f1d - Increased maximum number of per-pattern rows for the XM loader from
256 to 1024 to deal with a module that otherwise would not load.
- Removed the artificial restriction on not supporting Vorbis-compressed
  samples in XMs if they are stereo, since it turns out that OggMod does
  support them.


SVN r1316 (trunk)
2008-12-16 00:59:20 +00:00
Christoph Oelckers
bd9e318863 - Added a SECF_NORESPAWN flag for sectors that prevents players from being respawned
in such a sector. As a workaround for current map formats a new actor
  (DoomEdNum 9041) was added that can set the extended sector flags without the
  use of ACS and sector tags. The new flag can also be set with Sector_ChangeFlags.
- Fixed: Players ignored MF2_TELESTOMP and always telefragged what was in the way.
- Fixed: Actors with MF5_NOINTERACTION were not affected by the time freezer.


SVN r1315 (trunk)
2008-12-14 19:12:41 +00:00
Christoph Oelckers
34ab6ba862 - Fixed: The DECORATE parser was missing some 'break's.
SVN r1314 (trunk)
2008-12-07 21:35:56 +00:00
Christoph Oelckers
11d1c41873 - Added a strbin1 function that does the same as strbin but creates a copy
instead of overwriting the original string. ACS performing this operation
  in place caused crashes with RTC-3057.
- fixed: FScriptPosition::Message did not print the message if it was not 
  a fatal error.


SVN r1313 (trunk)
2008-12-07 17:50:03 +00:00
Christoph Oelckers
081658d3d5 - Fixed: The save percentage for Doom's green armor was slightly too low
which caused roundoff errors that made it less than 1/3 effective.
- Added support for "RRGGBB" strings to V_GetColor.
- Fixed: Desaturation maps for the TEXTURES lump were calculated incorrectly.
- Changed GetSpriteIndex to cache the last used sprite name so that the code
  using this function doesn't have to do it itself.
- Moved some more code for the state parser into p_states.cpp.
- Fixed: TDeletingArray should not try to delete NULL pointers.

SVN r1312 (trunk)
2008-12-07 12:11:59 +00:00
Randy Heit
238de9cda1 - Added binary (b) and hexadecimal (x) cast types for ACS's various print
statements.
- Added ClassifyActor(tid) ACS builtin function. This takes a TID and returns
  a set of bits describing the actor. If TID is 0, it returns information
  about the activator. If there is more than one actor with the given TID,
  only the first one is considered. Currently defined bits are:
    ACTOR_NONE         No actors with this TID exist (only when TID is not 0).
    ACTOR_WORLD        Activator is the world (only when TID is 0).
    ACTOR_PLAYER       Actor is a player (includes bots and voodoo dolls).
    ACTOR_BOT          Actor is a bot.
    ACTOR_VOODOODOLL   Actor is a voodoo doll.
    ACTOR_MONSTER      Actor is a monster.
    ACTOR_ALIVE        Actor is alive (players/monsters only).
    ACTOR_DEAD         Actor is dead (players/monsters only).
    ACTOR_MISSILE      Actor is a missile.
    ACTOR_GENERIC      Actor exists, but no further information is available.


SVN r1310 (trunk)
2008-12-07 03:55:49 +00:00
Randy Heit
b90a04f3be How could I have forgotten about fputs?
SVN r1308 (trunk)
2008-12-07 01:50:12 +00:00
Randy Heit
ef3b57fb8f - Moved ExpandEnvVars() from d_main.cpp to cmdlib.cpp.
- AutoExec paths now support the same variable expansion as the search paths.
  Additionally, on Windows, the default autoexec path is now relative to
  $PROGDIR, rather than using a fixed path to the executable's current
  directory.
- All usable Autoload and AutoExec sections are now created at the top of
  the config file along with some brief explanatory notes so they are
  readily visible to anyone who wants to edit them.


SVN r1307 (trunk)
2008-12-07 00:50:04 +00:00
Christoph Oelckers
fb75c46806 - fixed a typo in armor damage calculation code.
SVN r1306 (trunk)
2008-12-06 13:48:31 +00:00