ecce60e8f9SVN r258 (trunk)
Christoph Oelckers
2006-07-16 09:10:45 +0000
1391b28643Version bump for 2.1.2.
2.1.2
Randy Heit
2006-07-16 01:39:35 +0000
5e37e4a0b8- Fixed: Makefile.mgw was mysteriously missing some targets. After fixing that, I also removed some of GCC's warnings.
Randy Heit
2006-07-16 01:25:29 +0000
de6add8e59Removed the cbuild and autotools files from the repository, as they are unmaintained.
Randy Heit
2006-07-16 00:54:39 +0000
1c3153690a- Fixed: Any kill in multiplayer games that could not be credited to a player didn't count at all - not even toward the global level statistics. - ...and removed it again. It was not an accident. The only reason the PowerupGiver had its own RespawnTics was to account for the pickup flash delay. But that is better handled by checking the flag and adding the additional 30 tics in AInventory::Hide because then it affects all items that have one - and only those. The AT_GAME_SET function didn't work anyway because it was called after parsing DECORATE.
Christoph Oelckers
2006-07-14 08:04:17 +0000
3113037229- Restored the PowerupGiver AT_GAME_SET function. I assume its removal was an accident from merging in Grubber's custom player classes.
Randy Heit
2006-07-14 00:33:11 +0000
bada3bf462- Removed the game filter check from addplayerclass. If a player class is added here the game filter is irrelevant and there's nothing that should prevent the HereticPlayer being added to a Hexen game, for example. - Changed: The addplayerclass CCMD was far too paranoid and needlessly aborted the game for any error being encountered. Since an empty player class list is checked for elsewhere outputting the messages to the console is sufficient.
Christoph Oelckers
2006-07-13 10:24:54 +0000
31c749058b- Generalized Hexen's class-based spawning to be a property of the player class so now it is available in all games. - Replaced the call to A_FlameSnd in the HereticPlayer's burn death sequence with A_FireScream and defined *burndeath for Heretic. - Added Grubber's custom player class support.
Christoph Oelckers
2006-07-13 10:17:56 +0000
38a073626f- Changed decorate replacement to be opt-in instead of opt-out. This allows for greater flexibility in what can be replaced (replaced actors need not be ancestors of actors that replace them) at the expense of not having universal actor replacement. Instances where replacements work: - Line specials that spawn things (Thing_Spawn and related) - ACS spawning commands (SpawnSpot and the like) - Spawning mapthings at level load time in P_SpawnMapThing() - Spawning items off of dead dudes in P_DropItem() - The A_SpawnItem decorate function - The summon and summonfriend console commands - ThingCount will count both original actors and their replacements as the same things. TBD: Should the ACS inventory functions use replacements too, or not?
Randy Heit
2006-07-13 03:34:50 +0000
56427d1b1c- Fixed: The game would crash after informing you of a duplicate class registration because PClass::CreateDerivedClass() did not initialize everything before calling InsertIntoHash(). - Fixed: Forcefully removing a weapon from a player's inventory would not reset the player's refire counter. - Fixed: FreeKeySections() was called before M_SaveDefaults() during shutdown, so all custom keys would go to a "(null)" section instead of their intended section.
Randy Heit
2006-07-13 02:08:39 +0000
18af8a57cf- Restored the previous level flag values to avoid needlessly breaking some savegames at this point in time. - Fixed: R_ClearPlanes() did not clear skybox planes for a full clear. - Streamlined zip file loading by delaying the processing of the local file header until it is actually needed.
Randy Heit
2006-07-12 03:35:55 +0000
2e02a4fa36SVN r246 (trunk)
Christoph Oelckers
2006-07-11 11:36:34 +0000
5d1563b0e4- Changed the additive scrollers option into a compatibility flag so that it can be changed from the menu.
Christoph Oelckers
2006-07-11 08:27:05 +0000
0b3730392c- Fixed closed doors between the front sector's floor and ceiling the right way. I was just missing a non-null texture check. - Removed references to texturewidthmask. What was that?
Randy Heit
2006-07-11 04:48:10 +0000
133a035c76- Fixed: The earthquake code needs to check whether a quake's spot is still valid. Super Sonic Doom crashed due to this. - Fixed: G_DoAutosave could divide by 0 if autosavecount was 0.
Christoph Oelckers
2006-07-11 00:20:45 +0000
a9470f8642- Fixed: The calls to DCanvas::Dim in c_console.cpp were missing some type casts. - Fixed: CCMD(dir) passes FStrings directly to Printf.
Christoph Oelckers
2006-07-09 21:50:16 +0000
dd3c0d82f7SVN r241 (trunk)
Christoph Oelckers
2006-07-09 20:15:38 +0000
d027aafb4c- Fixed: If the sector behind a seg was closed, but it was closed between the ceiling and floor of the front sector, the renderer did not add it to the solid clip list. - Blends created with the ACS fade commands now degrade to transparent overlays when the console is visible, just as they do for the menu.
Randy Heit
2006-07-09 20:04:05 +0000
5541dc69f1- Fixed: Specifying 'strifefallingdamage' in MAPINFO cleared all other flags. - Fixed: maxstepheight and maxdropoffheight were stored as ints instead of fixed_t's by the DECORATE parser.
Christoph Oelckers
2006-07-08 20:17:52 +0000
6695e255ce- Added actor replacement for DECORATE. This works at a higher level than using duplicate DoomEdNums and will affect all attempts to spawn the replaced actor. However, because this happens for all spawns and not just at map load, the replacing actor must be compatible with the replaced actor, which means that an actor can only serve as a replacement for one of its baseclasses. For example, if you want to use a modified imp, you can use this DECORATE: actor MyImp : DoomImp replaces DoompImp { // Put changed properties here } - New: The IWAD dialog now remembers the last IWAD you picked and automatically highlights it the next time you run the game. This also applies if you check "Don't ask me this again": The IWAD selected will be the one that gets automatically loaded, not the one located first. (Using the -iwad parameter will not change the default IWAD.) In addition, you can now bring the dialog up even if you disable it by holding down SHIFT during startup. - Changed ExtractFilePath() and ExtractFileBase() to return FStrings instead of writing to a provided output buffer. ExtractFileBase() can also optionally keep the file's extension in the result. - Removed the -heapsize parameter entirely. The informational message should no longer be needed. - Removed -maxdemo parameter. There's no point to having it around since the demo buffer grows automatically.
Randy Heit
2006-07-08 02:17:35 +0000
43c1ec4a74- Fixed: Changed initialization of Weapon.Kickback so that it is only done for direct descendants of AWeapon and not for every weapon being defined. - Changed parsing of actor names back to not use C-mode. This change breaks any definition that contain periods in their name and apparently there's more than anyone could expect. Also altered the parser to manually check for colons inside the parsed string so that placing spaces around them is no longer necessary. - Fixed: Weapons could be picked up for ammo even if they gave none. - Fixed: A_Beacon was missing a NULL pointer check for the beacon's owner. - Fixed: The status bar tried to access CPlayer->camera without checking its validity. In spy mode there is a possibility that it is NULL.
Christoph Oelckers
2006-07-03 09:07:56 +0000
9e6d5c8fd9- Fixed: G_NewInit destroyed the players' userinfo data. - Changed the special radius damage handling for the barrel and boss brain into an actor flag. - Added A_RadiusThrust code pointer for DECORATE and adjusted the radius attack functions accordingly.
Christoph Oelckers
2006-07-02 21:58:10 +0000
0398ddcc76- Changed the earthquake view shaking so that it works for anything and not just players.
Randy Heit
2006-07-01 00:21:36 +0000
207c84e3dd- Fixed: In multiplayer games, when trying to change targets, A_Chase forgot to check whether the new target was the same as the old one and treated this case as a real target change.
Christoph Oelckers
2006-07-01 00:15:06 +0000
9fdcb553aa- Added some hackery at the start of MouseRead_Win32() that prevents it from yanking the mouse around if they keys haven't been read yet to combat the same situation that causes the keyboard to return DIERR_NOTACQUIRED in KeyRead(): The window is sort of in focus and sort of not. User.dll considers it to be focused and it's drawn as such, but another focused window is on top of it, and DirectInput doesn't see it as focused. - Fixed: KeyRead() should handle DIERR_NOTACQUIRED errors the same way it handles DIERR_INPUTLOST errors. This can happen if our window had the focus stolen away from it before we tried to acquire the keyboard in DI_Init2(). Strangely, MouseRead_DI() already did this. - When a stack overflow occurs, report.txt now only includes the first and last 16KB of the stack to make it more manageable. - Limited StreamEditBinary() to the first 64KB of the file to keep it from taking too long on large dumps. - And now I know why gathering crash information in the same process that crashed can be bad: Stack overflows. You get one spare page to play with when the stack overflows. MiniDumpWriteDump() needs more than that and causes an access violation when it runs out of leftover stack, silently terminating the application. Windows XP x64 offers SetThreadStackGuarantee() to increase this, but that isn't available on anything older, including 32-bit XP. To get around this, a new thread is created to write the mini dump when the stack overflows. - Changed A_Burnination() to be closer to Strife's. - Fixed: When playing back demos, DoAddBot() can be called without an associated call to SpawnBot(). So if the bot can't spawn, botnum can go negative, which will cause problems later in DCajunMaster::Main() when it sees that wanted_botnum (0) is higher than botnum (-1). - Fixed: Stopping demo recording in multiplayer games should not abruptly drop the recorder out of the game without notifying the other players. In fact, there's no reason why it should drop them out of multiplayer at all. - Fixed: Earthquakes were unreliable in multiplayer games because P_PredictPlayer() did not preserve the player's xviewshift. - Fixed: PlayerIsGone() needs to stop any scripts that belong to the player who left, in addition to executing disconnect scripts. - Fixed: APlayerPawn::AddInventory() should also check for a NULL player->mo in case the player left but somebody still has a reference to their actor. - Fixed: DDrawFB::PaintToWindow() should simulate proper unlocking behavior and set Buffer to NULL. - Improved feedback for network game initialization with the console ticker. - Moved i_net.cpp and i_net.h out of sdl/ and win32/ and into the main source directory. They are identical, so keeping two copies of them is bad. - Fixed: (At least with Creative's driver's,) EAX settings are global and not per-application. So if you play a multiplayer ZDoom game on one computer (or even another EAX-using application), ZDoom needs to restore the environment when it regains focus. - Maybe fixed: (See http://forum.zdoom.org/potato.php?t=10689) Apparently, PacketGet can receive ECONNRESET from nodes that aren't in the game. It should be safe to just ignore these packets. - Fixed: PlayerIsGone() should set the gone player's camera to NULL in case the player who left was player 0. This is because if a remaining player receives a "recoverable" error, they will become player 0. Once that happens, they game will try to update sounds through their camera and crash in FMODSoundRenderer::UpdateListener() because the zones array is now NULL. G_NewInit() should also clear all the player structures.
Randy Heit
2006-06-30 02:13:26 +0000
38b0230253- Added a 'default' setting to all color selection menu items that leaves the font untranslated. - Fixed: Heretic's monsters were missing the MF2_MCROSS flag.
Christoph Oelckers
2006-06-29 14:21:56 +0000
81ee5b4942- Fixed: Bouncing projectiles should not bounce off horizon lines. Now they vanish instead. - Changed masses of ice chunks and glass shards to make small splashes
Christoph Oelckers
2006-06-28 11:14:20 +0000
7ff576adf4- Fixed: P_UndoPlayerMorph didn't properly transfer the inventory. It just copied the pointer instead of using ObtainInventory.
Christoph Oelckers
2006-06-27 23:49:45 +0000
3b39092412- Moved the version resource into the "compile-time directives" section of the resource script so that Developer Studio won't replace the version macros in it with their literal values. Now updating version.h is guaranteed to be enough to bump the version everywhere it's used.
2.1.1
Randy Heit
2006-06-25 01:16:18 +0000
96bb74047fBumped version to 2.1.1.
Randy Heit
2006-06-25 01:11:28 +0000
7266c1e929- Fixed: PIT_CheckThing checked AActor::tid instead of TidToHate to determine whether a monster of the same species can be hurt. - Added new ice chunk sprites submitted by Enjay.
Christoph Oelckers
2006-06-24 23:58:01 +0000
0711b62cabReplaced all occurences of 'ZDoom' in i_crash.cpp with a define from version.h so that this file doesn't need to be changed for altering the texts.
Christoph Oelckers
2006-06-24 08:26:21 +0000
2c7b4d9350Forgot to copy the correct strifehelp.acs from my ACC compile directory.
Christoph Oelckers
2006-06-24 08:06:25 +0000
3c3a9dd8f8- Deleted the programmer death script from strifehelp.acs because it is no longer used. - Fixed: strifehelp.acs and the PUMPUPS cheat need to give 10 UpgradeStaminas because that item is using Inventory::Amount now.
Christoph Oelckers
2006-06-24 08:03:15 +0000
05fc3cb016The last commit was also incomplete.
Randy Heit
2006-06-24 03:49:48 +0000
2d05cdbda4Last commit was incomplete.
Randy Heit
2006-06-24 03:48:38 +0000
27ff97f16e- Changed the archive format for crash reports from tar.gz to zip. - Went back to a single process model for crash reporting. It appears there are some machines that don't like having another process collect the information and report it. I still feel that having another process do it _should_ be more reliable, because that process can execute in a known good state. Ah well. I haven't yet seen anything that left the main process in a totally unrecoverable state, so it's probably okay. Unlike before, this single-process version is still GCC-compatible.
Randy Heit
2006-06-24 03:47:17 +0000
1faa6d57a4- Fixed: The resurrect cheat didn't reset the player's damage type so if he died by being frozen the blue blend didn't disappear.
Christoph Oelckers
2006-06-23 16:20:41 +0000
27c00bcb95- Fixed: FWarpTexture::MakeTexture must be declared virtual so that the FWarp2Texture version of it can be called.
Christoph Oelckers
2006-06-23 08:20:08 +0000
550d687bcf- Fixed: The check to prevent items from being given to dead players didn't work properly. It has to be done in the cheat code, not in APlayerPawn::AddInventory. - Fixed: The medikit and stimpack used a MaxAmount of 100 so that stamina upgrades were ineffective.
Christoph Oelckers
2006-06-22 20:52:49 +0000
a0c912ef2d- Fixed: Jumping and crouching at the same time created jerky results. Now jumping takes precedence and you can't crouch while pressing the jump key (which causes an uncrouch.)
Christoph Oelckers
2006-06-22 09:36:48 +0000
e6268bf0a2- Fixed: DF_NO_COOP_WEAPON_SPAWN was handled backwardly.
Randy Heit
2006-06-22 02:19:43 +0000
9eb0aa1a02- Fixed: G_InitLevelLocals() needs to OR in the crouching bits, otherwise it discards the jumping bits. - ProcessActor() now sets C mode before retrieving the actor's name. - Fixed: The new SC_GetString() scanner accepted slashes at the end of tokens when not in C mode, even if they were the start of a comment. Now if you want a slash at the end, you must quote it.
Randy Heit
2006-06-21 23:22:17 +0000
729e3b346d- Fixed: Decal actors with an invalid decal texture caused a crash.
Christoph Oelckers
2006-06-21 20:45:19 +0000
e7f21912a5Fixed: Player could crouch while dead.
Christoph Oelckers
2006-06-21 17:59:34 +0000
14765bf64b- Fixed: The sidedef loader could allocate insufficient memory if a map contained unused sidedefs. - Fixed: Color control sequences were written to the log file. Since any entered console command contains such a sequence it was quite noticable.
Christoph Oelckers
2006-06-21 15:40:42 +0000
f356e356a0- Fixed: The obituary code didn't use the attacker's name for kills caused by other players.
Christoph Oelckers
2006-06-21 12:10:36 +0000
e2ac4c1168- Fixed: PIT_StompThing never checked for COMPATF_NO_PASSMOBJ. - Fixed: COMPATF_TRACE returned true for all two-sided lines, not just for those with the same sector on both sides.
Christoph Oelckers
2006-06-21 11:47:27 +0000
19dad144e1- Added grubber's thingdef_exp.cpp. I might not use it later, but I can still use it now. - Fixed sc_man_scanner.re for negative numbers in C mode.
Randy Heit
2006-06-20 21:21:52 +0000
c54f2f66fc- Unlimited the monster pain sounds in Hexen after playing as the Cleric a while and killing centaurs with the flechette. - Fixed: Moving to an old level in a hub caused the old player's inventory to spawn owned by the current player (but still hanging off the old player), so the game would hang when trying to delete it. - Modified re2c so that it doesn't add a date to the file it generates. Thus, if it regenerates a file during a full rebuild, SVN won't see it as a change. Also updated it to 0.10.5. - Fixed: SC_GetString() did not properly terminate sc_String when the last token in the file had no white space after it. Since I could not actually find the problem (it works fine in debug mode and I saw no logic errors), I decided to take this opportunity to reimplement it using an re2c-generated scanner. Now it's 1.6x faster than before and correctness is easier to verify. - Fixed: FMODSoundRenderer::Shutdown() also needs to reset NumChannels. - Added back the Manifest to zdoom.rc for non-VC8 Windows compilers. - Fixed MinGW compilation again. Now it uses the same method as Makefile.linux to find all the source files so that it doesn't need to be manually updated each time source files are added or removed. - Added the SVN revision number to the version string. A new tool is used to obtain this information from the svnversion command and write it into a header file. If you don't have the svn command line tools installed or didn't check it out from the repository, you can still build. I added some rules for this to Makefile.linux, and I assume they work because they do for Makefile.mingw. - Fixed: MIDISong2 did not delete MusHeader in its destructor.
Randy Heit
2006-06-20 20:30:39 +0000
cf7d8ab43b- Removed the unused sfx_ variables for the chainsaw sounds. - Fixed map name checks in idclev, hxvisit, for +map and the titlemap. - Changed handling of Zips so that the patches/, graphics/, sounds/ and music/ subdirectories no longer are placed in the global namespace. Instead new namespaces are defined. These namespaces aren't merged, however and searching in them either returns a lump inside it or one from the global namespace when it doesn't come from a Zip file. Proper order of files is still observed though. As a result proper use of the directories inside Zips is strictly enforced now so that for example anything used as a patch must be in the patches/ directory and won't be found anywhere else.
Christoph Oelckers
2006-06-19 15:31:10 +0000
a42f98af15- Added another set of ACS inventory functions which take a tid for the actor and aren't limited to the script's activator. - Added GetSectorLightLevel(tag), GetActorCeilingZ(tid) and SetActorPosition(tid, x, y, z, fog) ACS functions. - Fixed: First initialization of camera textures should not mark the rendered lines as mapped.
Christoph Oelckers
2006-06-18 15:49:00 +0000
c87e2252ed- Finally implemented code to keep some or all of your inventory intact when respawning in coop. Now the new inventory code should finally be complete. :-) - Fixed: PROP_Inventory_PickupMessage was improperly defined for non-VC++ compilation.
Randy Heit
2006-06-18 04:10:47 +0000
1bd6ac028b- Converted a_doomhealth.cpp to DECORATE. - Added a PickupMessage property to the internal actor parser, replaced most of the virtual PickupMessages with it and placed the code that reads the metadata into AInventory::PickupMessage. Now the PickupMessage method is truly virtual and I can do: Added a Health.LowMessage property to define double message items like Doom's medikit in DECORATE. - Since defining Mana3 as an ammo type and then overriding the TryPickup method means that this item defeats all ammo checks in the game it might as well be defined as a CustomInventory item. At least this fixes the amount given in easy and very hard skills. - Converted all ammo items to DECORATE. - Changed internal property setting of ammo types and sister weapons to use fuglyname as for DECORATE definitions. This allows to export the ammo definitions into DECORATE definitions without doing it for the weapons themselves. - Replaced obituary methods with actor properties. - Fixed: The secret map check didn't work for maps inside Zips.
Christoph Oelckers
2006-06-17 20:29:41 +0000
9338c7360b- Fixed: The secret map check didn't work for maps inside Zips.
Christoph Oelckers
2006-06-17 07:46:02 +0000
461f8a796aMore map loader fixes.
Christoph Oelckers
2006-06-15 17:26:27 +0000
3eb63cf1faFor some unknown reason the HasBehavior check in P_OpenMapData was gone.
Christoph Oelckers
2006-06-15 16:23:41 +0000
ba78504419Fixed index variable in P_OpenMapData.
Christoph Oelckers
2006-06-15 08:26:13 +0000
d99f5b4b99SVN r191 (trunk)
Randy Heit
2006-06-15 03:31:19 +0000
6e198e034b- Removed my "backwards compatibility fix" for APROP_Speed. It turns out that in all the public versions where monster speed is not fixed point, you couldn't modify the monster's speed due to a bug in P_Move() anyway. So there's nothing to be backward compatible with.
Randy Heit
2006-06-14 23:22:14 +0000
6e19881b6fGCC compile fixes.
Christoph Oelckers
2006-06-14 20:24:43 +0000
fd79fac52c- Fixed: Saving on maps that don't contain a MAPINFO definition didn't work. - Fixed: The Zip loader loaded all WADs inside a Zip into the lump directory. This is only supposed to be done for WADs in the root directory. - Complete restructuring of the map loading code. Previously the only way to put maps into Zips was to load them as embedded WADs which caused some problems, most importantly that the map's file name was irrelevant and the internal map label was used instead. With the new code there is now a properly defined way to add maps to Zips: * Maps are placed in a subdirectory called 'maps'. * Maps are stored as WADs that contain all map related lumps. * The first lump in the map's WAD directory must be the map label. * All lumps not belonging to the first map are ignored. * The map's file name determines the name the map is identified with. For maps stored this way the internal map label is ignored so with this method renaming maps is as easy as renaming a file and it is no longer necessary to manipulate the map label. With the new code it is also possible to load external maps without adding them to the WAD list. Type 'open mapfile.wad' in the console to start such a map. The new code also performs stricter lump name checks to prevent accidental loading of non-map data.
Christoph Oelckers
2006-06-14 15:56:56 +0000
2a0216cf6f- Fixed: In the past, ZDoom worked like Doom and used integral values for monster speeds. Now it uses fixed point so that an actor's speed property can always be considered is always fixed point. So DoSetActorProperty() should scale very slow speeds, just like dehacked's PatchThing() has done for some time now.
Randy Heit
2006-06-14 03:57:58 +0000
37ab80b566- Changed UpgradeStamina to use AInventory's Amount and MaxAmount to control the amount of upgrade and the maximum that can be reached.
Christoph Oelckers
2006-06-12 20:54:39 +0000
bb5a44fc90- Fixed: The skin loader assumed that all skin textures are in Doom patch format. Now it calls FTexture::CreateTexture to do proper checks. - Removed the PickupSound method from FakeInventory and changed it so that it uses AInventory::PickupSound to store its custom pickup sound. - Removed the PickupMessage method from FakeInventory. This can be handled by the standard pickup message code now that it uses the meta data for the message. - Fixed: The maximum indices for StrifeTypes were inconsistent. Now the allowed range is 0-1000 in all situations. - Fixed: Setting a local SNDINFO for a map deleted all skin based sounds. - Added a crouchsprite property to the skin info. - Fixed: Crouching sprites must be checked each frame, not just each tic. - Added an srand call to D_DoomMain in order to randomize the values returned by rand which is being used to shuffle the playlist.
Christoph Oelckers
2006-06-11 11:28:48 +0000
e2179d5c2dGuess what. It's not 2005 anymore.
Randy Heit
2006-06-11 01:37:00 +0000
5859aa7194- Fixed: Information added with addkeysection and addmenukey was never freed. - Fixed: A classic decorate FakeInventory's PickupText was never freed. - Fixed: Colored lights were never freed. - Fixed: When a dehacked patch was applied, the dehacked StateMap was never freed. - Removed termdone checks around atterm(S_ClearSoundData) and atterm(S_Shutdown) because atterm() already checks for duplicates. - Fixed: S_ClearSoundData() should unload all sounds before it clears S_sfx. - Fixed: AltSoundRenderer::LoadSound() didn't check if the sound had already been loaded and lost the old sound data if it had been. - Fixed: FinishDehPatch() needlessly duplicated the new DehackedPickup's name. - Fixed: PatchStrings() allocated a private string and never freed it.
Randy Heit
2006-06-11 01:06:19 +0000
9655ee9843- Changed music name handling in MAPINFO so that music can be specified by full path of a file in a Zip. - Fixed: intermusic in MAPINFO was limited to WAD lumps and couldn't handle external data.
Christoph Oelckers
2006-06-09 08:19:46 +0000
c808041337- Fixed: Trying to play a 0-length song from a wad inside a zip caused a crash.
Randy Heit
2006-06-09 00:26:07 +0000
0c62f08a58- Modified Makefile.linux to use ccdv for easier error spotting and to make the dependancy files at the same time it makes the object files.
Randy Heit
2006-06-08 02:43:35 +0000
6b821afa64SVN r179 (trunk)
Christoph Oelckers
2006-06-07 20:53:40 +0000
7a601515df- ClassifyLine now chooses either SSE2 or regular x87 math depending on whether or not SSE2 is available at runtime. Since most of the time is spent in ClassifyLine, using SSE2 in just this one function helps the most. - Nodebuilding is a little faster if we inline PointOnSide. - Changed FEventTree into a regular binary tree, since there just aren't enough nodes inserted into it to make a red-black tree worthwhile. - Added more checks at the start of ClassifyLine so that it has a better chance of avoiding the more complicated checking, and it seems to have paid off with a reasonably modest performance boost. - Added a "vertex map" for ZDBSP's vertex selection. (Think BLOCKMAP for vertices instead of lines.) On large maps, this can result in a very significant speed up. (In one particular map, ZDBSP had previously spent 40% of its time just scanning through all the vertices in the map. Now the time it spends finding vertices is immeasurable.) On small maps, this won't make much of a difference, because the number of vertices to search was so small to begin with.
Randy Heit
2006-06-06 21:39:08 +0000
6975103dd9Added Jim's latest changes to the Linux makefiles.
Christoph Oelckers
2006-06-05 07:56:30 +0000
9e5d7c3289Fixed: StartConversation didn't check for a valid target.
Christoph Oelckers
2006-06-04 14:49:17 +0000
15681d0588- Added a StartConversation special that allows automatic activation of Strife dialogs. - Added Thing_Raise special that allows Arch-Vile like resurrections from scripts or DECORATE states. - Added a RadiusDamageFactor property for actors. This replaces the hard coded factor of 0.25 for Hexen's players. - Added new SpawnProjectile function to ACS. It's the same as Thing_Projectile2 but the projectile is specified by name, not spawn ID. - Added MAPINFO option to set the compatibility flags. If this is done these explicit settings will take precedence over the compatflags CVAR.
Christoph Oelckers
2006-06-03 12:30:11 +0000
4325fb8993- Merged in recent ZDBSP fixes: - Added code to explicitly handle outputting overlapping segs when building GL nodes with ZDBSP, removing the check that discarded them early on. - AddIntersection() should convert to doubles before subtracting the vertex from the node, not after, to avoid integer overflow. (See cah.wad, MAP12 and MAP13.) A simpler dot product will also suffice for distance calculation. - Splitters that come too close to a vertex should be avoided. (See cata.wad.) - Red-Black Tree implementation was broken and colored every node red. - Moved most of the code for outputting degenerate GL subsectors into another function.
Randy Heit
2006-06-01 01:43:16 +0000
fd1a239c66SVN r158 (trunk)
Christoph Oelckers
2006-06-01 00:05:03 +0000
92dff5f302Added Jim's and Mannequin's latest Linux makefile submissions.
Christoph Oelckers
2006-05-29 09:00:20 +0000
12b066ef2e- Fixed: When building GL nodes for Deathkings MAP42, one polyobject had one of its segs thrown away, so the map could not start. This was because the nodebuilder assumed all subsectors would be 2D and could not handle the case where a degenerate 1D subsector is created. In this case, that happens because that map has three polyobjects in the middle of the void, so the only way to assign them to a subsector is to use a 1D subsector.
Randy Heit
2006-05-29 03:27:32 +0000
fb31db860d- Fixed: Monsters couldn't hurt other monsters of the same species if they were supposed to hate them. - Since I was editing the file anyway I added checks for Heretic's and Strife's damaging floor types to DCajunMaster::IsDangerous. - Added a NULL pointer check to DCajunMaster::TurnToAng because a crash log indicated that this can happen. - Fixed: Strife's energy pod contains 20 units when dropped by monsters. To achieve this I added an Ammo.DropAmount property because there are no other means to control this from inside a conversation script.
Christoph Oelckers
2006-05-28 14:54:01 +0000
96f6cfd18aSVN r148 (trunk)
Christoph Oelckers
2006-05-27 10:27:51 +0000
67da924a02- Changed makewad's zip routines so that it simply stores files that cannot be compressed smaller instead of using deflate anyway. Saves 133 bytes currently.
Randy Heit
2006-05-27 02:17:30 +0000
5abd6b972cSVN r146 (trunk)
Christoph Oelckers
2006-05-26 08:19:39 +0000
90b5130db0- Fixed: The C code in AltSoundRenderer::CopyAndClip() did not shift the sample data enough (2 bits instead of 8), so it was super loud and aliased. - Fixes for GCC 4.1: Several type-punned pointer warnings, but more importantly, declaring a friend function inside a class body is no longer enough to declare that function globally; you must declare it again outside the class. - Upgraded FArchive::SerializePointer so that it can store 32-bit indices. - ACS printing pcodes now build their string in an FSttring instead of a fixed sized buffer on the stack.
Randy Heit
2006-05-26 04:38:22 +0000
43abfba723- Modified ccdv-win32 to show "Generating X" messages when running lemon and re2c instead of "Linking X". - Updated lemon and re2c to the latest versions and ported dehsupp to use them for code generation. (Xlatcc is next.) - Added function level linking for Makefile.mingw.
Randy Heit
2006-05-25 04:32:20 +0000
3aa1c6c361Added Jim's latest Makefile.linux and default.cbd and added options for no RTTI and function level linking to FLAC.vcproj and zlib.vcproj.
Christoph Oelckers
2006-05-24 20:25:02 +0000
f50b284fdaSVN r142 (trunk)
Randy Heit
2006-05-24 15:31:21 +0000
283d5971fe- Fixed: A_SpawnItem performed an integer multiplication with fixed point values to calculate the spawn position. - Fixed: A_SpawnItem tried to set the spawned actor's angle before checking the validity of the returned pointer.
Christoph Oelckers
2006-05-24 13:11:30 +0000
2ff618e474SVN r140 (trunk)
Randy Heit
2006-05-24 00:22:15 +0000
cccf66f34b- Added missing linker dependencies for Visual C++ 2005 Express Edition and fixed building of the assembly files when the source is located in a path with spaces.
Randy Heit
2006-05-23 23:59:41 +0000
cb18719d05- Fixed: The new sound pausing on menu open interrupted Strife conversations. - Did some very preliminary support for x64 compiling. - Now I see why makewad is using the __fastcall calling convention by default: Because the release zlib is built with it as well. - Fixed: Conversion from 'const char *' to 'char *' in DEM_SAVEGAME case in Net_DoCommand(). - Updated the project files for Visual C++ 2005.
Randy Heit
2006-05-23 04:25:49 +0000
ade6319a3c- Fixed: The new Thing_ChangeTID check would infinite loop if an actor scheduled for destruction was encountered.
Randy Heit
2006-05-22 22:02:13 +0000
7f2ac35dce- Fixed: Thing_ChangeTid must check whether the actor whose tid is about to be changed is scheduled for destruction. - Fixed: G_FinishTravel added the player to the hash chain twice. - Fixed: The animations for Doom's E3 intermission used incorrect patch names. - Added a check for MF_NOLIFTDROP to PIT_CeilingRaise because the overlapping bridges in 007LTSD got moved by this function.
Christoph Oelckers
2006-05-22 09:53:09 +0000
df799ade24- Fixed GCC 4 warnings in FNodeBuilder::CreateSubsectorsForReal(). - Changed f_finale.cpp/atkstates[] into a static variable, since its anonymous type prevents it from being accessed from other files anyway. - Fixed: The behavior of the eventtail advancement in d_net.cpp/CheckAbort() was compiler-dependant. - Fixed warnings GCC 4 threw up while compiling re2c and lemon. - Removed __cdecl from makewad.c again. This is already defined as a builtin for MinGW, and redefining it produces a warning. (Why is main explicitly declared __cdecl anyway?) - Fixed building ccdv-win32 with GCC 4. GCC 4 creates a memcpy call, which won't work because it doesn't get linked with the standard C library.
Randy Heit
2006-05-22 01:34:07 +0000
62b7dd3efc- Fixed default.cbd and Makefile.mingw for current code state. - New: Pausing the game (through any means, not just the pause key) now pauses sound effects as well as music. "PauseMusicInMenus" has been added as a MAPINFO flag to also pause the music when a menu or the console are open.
Randy Heit
2006-05-21 02:10:16 +0000
f8bdceab38- Fixed: The automap code had the check for rotation reversed. - Changed type PClass::FreeIndices to TArray<unsigned int> because that's the type of the indices. - Fixed: makewad.c needs __cdecl for non-Windows builds. - Fixed: FinishThingdef didn't check whether the WeaponClass pointer in AWeaponPiece was a valid name.
Christoph Oelckers
2006-05-20 09:16:08 +0000
2b91f31d86- Fixed: FloorAndCeiling_Raise/Lower did not work with slopes because they used ZatPointDist instead of PointToDist to calculate the destination distance for the plane equation. - Fixed: Sky scroll positions could "jump" once they wrapped past position 32767. An fmod now keeps them within range of the sky textures' real widths.
Randy Heit
2006-05-20 01:34:31 +0000
3431564b02- Increased the StrifeTypes array to 999 entries so that custom WADs have more flexibility.
Christoph Oelckers
2006-05-19 21:31:25 +0000
cf63f2c28e- Added a check against rw_havelow in the "sky hack" part of R_NewWall(). This prevents the front ceiling from being moved up if there has been no texture defined to draw on the wall. This makes various parts of The Darkest Hour render properly again while still allowing the crosses in heroes2.wad and lamasery.wad to render correctly.
Randy Heit
2006-05-19 06:22:36 +0000