Commit graph

  • a39f5bb8f7 - Fixed: M_NotifyNewSave() needlessly created a copy of the filename. - Fixed: Any touching_sectorlists for actors unlinked in G_StartTravel() were lost forever. - Fixed: DLightningThinker::Serialize() did not delete the old LightningLightLevels array when loading from an archive. - Fixed: Although I moved the correct polyobject freeing code into P_FreeLevelData(), I left the old wrong code there too, which just deleted the array without deleting anything hanging off of it. Randy Heit 2006-05-18 04:25:26 +0000
  • ba01f00d7c SVN r126 (trunk) Randy Heit 2006-05-18 01:43:19 +0000
  • 6863938e67 - Texture animation improvements: * Animations are now millisecond-accurate, so delays in ANIMDEFS can have fractional parts. * Cleaned up the animation code and moved it into r_anim.cpp. * Blood's oscillating texture animations are now available for use by actual supported games by adding the word "oscillate" after a "range" definition in ANIMDEFS. * Not exactly texture animation, but it's handled in the same function as texture animations: Scrolling skies also have millisecond precision. Randy Heit 2006-05-18 01:42:50 +0000
  • 3f51b80cac - Implemented Quasar's suggestion to use line flag 2048 as a "reserved" flag that, if set, clears all the non-original-Doom flags on a line. This is only for Doom format maps when playing Doom. Randy Heit 2006-05-17 02:19:20 +0000
  • c770d4a99a - Added support for automatically loading ACS objects (even for Doom-format maps). To use it, compile the ACS files as ordinary libraries placed between A_START/A_END markers. Then outside the markers, create a lump called LOADACS. This is just a plain text lump that lists all the libraries you want to autoload with every map. You can do this with as many libraries as you want, and LOADACS lumps are also cummulative. Randy Heit 2006-05-17 01:38:07 +0000
  • 3e9fbf5616 - Don't need blocks.nas in the repository, as it hasn't been used for ages. Randy Heit 2006-05-16 23:25:22 +0000
  • c4bda7e0be - Fixed: ApplyActorDefault() must ensure that dataint is non-negative before calculating a non-NULL state. When compiling with Visual C++, states are stored in the defaults list as byte values, but when compiling with GCC, they are passed as 32-bit arguments to the function directly. So in VC++, using ~0 to specify a NULL state appears as 255, but in GCC, it appears as -1. Randy Heit 2006-05-16 22:31:58 +0000
  • 2ad91cc973 - Added a missing NULL pointer check to APlayerPawn::Tick. - Fixed: The falling scream should not be played when the player is under water. Christoph Oelckers 2006-05-16 17:53:15 +0000
  • 4a8ca6d134 Changed TAG_MORE parameter to a struct containing a va_list to ensure that no matter how va_list is defined the address can be taken. Christoph Oelckers 2006-05-16 10:06:23 +0000
  • bb25008804 Fixed ZDBSP seg splitter. On occasion it assigned the offset to the incorrect of the two segs created by a split. Christoph Oelckers 2006-05-16 09:26:54 +0000
  • 6cd1e2ce6a - Fixed: CopyPlayer() in p_saveg.cpp should use normal assignment, not memcpy to copy the player structures. - Fixed compilation with MinGW again and removed most of the new warnings. Randy Heit 2006-05-16 04:19:20 +0000
  • ac53ed6ecd SVN r116 (trunk) Randy Heit 2006-05-16 02:50:18 +0000
  • afd6a1258f - Added a show_obituaries option to disable obituaries without disabling other more important message types which have lower priority for some reason. - Added a menu option for show_messages after accidentally switching it off far too often and wondering why no messages appear. - Added crouching DoomPlayer sprites submitted by Enjay. - Fixed DF_NO_CROUCH was not checked. - Fixed: The intermission script parser had some of its cases in the keyword parser incorrectly sorted. - Fixed: atterm was still defined to take a STACK_ARGS function argument. - Added an AltFlash state for weapons. - Turned FloatSpeed into an actor property and changed the value to 5 for all floating Strife actors, as a comment in the source indicated. (r114 below): - Added GZDoom's code for Vavoom slope things because I wanted to test something with a map from Silent Steel. - Added nocrouch and allowcrouch MAPINFO commands and a DF_NO_CROUCH dmflag. - Added GZDoom's crouching code after cleaning it up so that adding crouching sprites will be easier. Christoph Oelckers 2006-05-15 15:28:46 +0000
  • caed57baa5 SVN r114 (trunk) Christoph Oelckers 2006-05-14 14:30:13 +0000
  • b97c417101 - Fixed: P_StartScript was missing a NULL pointer check for the error message. When trying to puke a script outside a map it crashed. - Fixed: The random number generator for large numbers must mask out the sign bit before performing a modulo. - Now that the conversation states are pointers there is no need to make AActor::ConversationAnimation virtual. No class overrides this method anymore. - Replaced AMacil1::TakeSpecialDamage with MF5_NODAMAGE. - Fixed: AMacil2::TakeSpecialDamage and AOracle::TakeSpecialDamage didn't check whether inflictor was NULL and crashed when used with 'kill monsters'. - Fixed: Some Strife decorations didn't loop their animation Christoph Oelckers 2006-05-13 21:22:08 +0000
  • bb617dfbfd - Changed: The decision whether blood splatter sprites are spawned is no longer determined by game. Instead there's a new flag, MF5_BLOODSPLATTER which is deciding what to do. To keep backwards compatibility this flag is unset for projectiles in Doom and Strife and set for them in Heretic and Hexen. The same applies to DECORATE but of course the flag can be manipulated here. - BLODxx sprites are now globally renamed to BLUDxx when not playing Doom. This allows using the same states in every game, including the Raven-specific blood actors. - Gave the bullet puff and the axe blood masses of 5 so that the make small splashes. - Added A_Light(value) code pointer for DECORATE to generalize the weapon light effect. - Added 'noskillmenu' option to MAPINFO episode definitions. This is for WADs that want to implement a skill selection level. - Added APROP_ChaseGoal and APROP_Frightened actor properties for ACS. - Added MF5_CHASEGOAL flag that makes monsters to go after their goal even if they have a valid target. - Fixed some issues with the changes to P_NewChaseDir I made to include MBF's dropoff logic. - Added a PowerFrightener powerup class. It seemed like such a waste to have this cool feature but no means to use it in a decent fashion. - Fixed: S_Init and S_ParseSndInfo should call atterm only once but not each time they are called. Christoph Oelckers 2006-05-13 12:41:15 +0000
  • 8fcf93d65a - Merged a lot of these static destructor-only structs into regular functions added to the exit chain with atterm so that they can be called in a deterministic order and not whatever order the linker decides to put them in. - Fixed: DCajunMaster did not free its getspawned. - Fixed: P_FreeLevelData() did not free ACS scripts. - Fixed: Level snapshots were not freed at exit. - Fixed: The save/load menu list was not freed at exit. - Fixed: FCompressedMemFile needs a destructor to free the m_ImplodedBuffer. - Fixed: G_DoLoadGame() did not free the engine string. - Fixed: M_ReadSaveStrings() did not free the engine string. - Fixed: Processing DEM_SAVEGAME did not free the pathname string. - Added a check for truncated flats to FFlatTexture::MakeTexture() because Heretic's F_SKY1 is only four bytes long. - Added a dump of the offending state to the "Cannot find state..." diagnostic. - Fixed: FCompressedFile did not initialize m_Mode in its default constructor. - Fixed: Heretic and Hexen status bars did not initialize ArtiRefresh. - Fixed: PNGHandle destructor should use delete[] to free TextChunks. Randy Heit 2006-05-12 03:14:40 +0000
  • 01441cd4f0 - Converted the stealth monsters to DECORATE. - Added string replacement option to obituary strings. - Changed lock and pickup message handling so that it is either a real string or a LANGUAGE identifier. The only reason I did the mixed format in the first place were Hexen's lock messages but they have been replaced by unique strings in the mean time so the feature isn't needed any more. - Added a flags parameter to TranslucentLine. - Extended the second arg of Line_SetIdentification to set not only ML_ZONEBOUNDARY but all 8 bits of the third byte in the flag word. This allows a relatively simple means of setting all the new flags directly. - Moved ML_ZONEBOUNDARY to doomdata.h so that it is in the same place as the other line flags. - Fixed: Strife's teleport swirl didn't loop its animation. - Fixed: Strife's rat is not supposed to be shootable. Christoph Oelckers 2006-05-11 17:56:35 +0000
  • e89867489c - Fixed: Strife's MiniMissile pickup amount was still incorrect. - Moved Strife's random dialogs into the string table. Now it should also be possible to define dialogs for other actors as well. Christoph Oelckers 2006-05-11 12:11:59 +0000
  • 2b391c69a1 - Fixed: sdl/i_net.cpp needs the same changes as win32/i_net.cpp. Randy Heit 2006-05-11 05:02:47 +0000
  • b8e61376c3 - Fixed: When revisiting a map in a hub, the player could spawn at the wrong height if the floor had moved while they were there before. This was because the player was spawned on the original copy of the map before the changes to it were dearchived, so they didn't know about the new floor height. - Fixed: Calling BaseFileSearch() and letting it fill in the file's extension didn't work because the space for the path was deallocated before it returned. - Guess we're not leak-free yet. Try travelling around in a hub and see that it leaks. I don't have time to track it down right now. Randy Heit 2006-05-11 05:00:35 +0000
  • a0c88a9b31 - Yay! We now seem to be free of memory leaks! The next step will be to merge a lot of these static destructor-only structs into regular functions added to the exit chain with atterm so that they can be called in a deterministic order and not whatever order the linker decides to put them in. (Interestingly, the amount of memory used when repeatedly executing the same map command at the console varies up and down, but it now stays relatively stable rather than increasing unbounded.) - Fixed: The list of resolutions in the video modes menu was not freed at exit. - Fixed: mus_playing.name was not freed at exit. - Fixed: SN_StopAllSequences() should be called at the start of P_FreeLevelData(), not just before the call to P_SetupLevel() in G_DoLoadLevel(), so it can run even at exit. And C_FullConsole() can call P_FreeLevelData() to free more memory too. - Fixed: StatusBar was not freed at exit. - Fixed: spritesorter was not freed at exit. - Fixed: Bad things happened if FString's data pool was destroyed before all C_RemoveTabCommand() calls were made. - Added an overload for FArchive << FString. - Fixed: The players' log text was not freed at exit. - Fixed: Bot information was not freed at exit. - Fixed: doomcom was not freed at exit. But since it's always created, there's no reason why it needs to be allocated from the heap. My guess is that in the DOS days, the external packet driver was responsible for allocating doomcom and passed its location with the -net parameter. - Fixed: FBlockNodes were not freed at exit. - Fixed: Openings were not freed at exit. - Fixed: Drawsegs were not freed at exit. - Fixed: Vissprites were not freed at exit. - Fixed: Console command history was not freed at exit. - Fixed: Visplanes were not freed at exit. - Fixed: Call P_FreeLevelData() at exit. - Fixed: Channel, SoundCurve, and PlayList in s_sound.cpp were not freed at exit. - Fixed: Sound sequences were not freed at exit. - Fixed: DSeqNode::Serialize() did not resize the m_SequenceChoices array when loading. Randy Heit 2006-05-11 04:00:58 +0000
  • 0069ca4072 - Fixed mvlineasm1 and mvlineasm4 so that they can be used with textures taller than 256 pixels. There was a very slight performance hit for this, but I was able to tweak mvlineasm4 to make it approximately as fast as before. Interestingly, maskwallscan manages to be nearly as fast as wallscan despite having to check every pixel for transparency. I'm tempted to dump all the old masked rendering code and use (trans)maskwallscan for everything for the sake of simplicity: Only two functions to maintain for each render style, and much less complicated supporting code. Currently, I need five different functions for each rendering style: One traditional column-at-a-time style like Doom did it originally, two for rt_draw4cols, and two for transmaskwallscan. (Right now, I have cheated, and just done the ones that can be used by walls for transmaskwallscan, so the actual number of different functions isn't quite so high.) For small textures, such as font characters and far-away sprites, I'm sure maskwallscan is faster than the current code. For large textures, it's probably still competitive even if it isn't faster. But considering how similar wallscan and maskwallscan perform, the difference is probably pretty minimal, and maskwallscan still might come out ahead due to its simpler overhead. Randy Heit 2006-05-11 01:15:15 +0000
  • ee12c25f47 - Fixed: PClass::CreateNew didn't check whether the class had valid defaults and tried to copy data from a NULL pointer. - Fixed: FireThing and BrassTorch were misspelled in hexendecorations.txt Christoph Oelckers 2006-05-10 16:43:46 +0000
  • 159c548c5a - Changed A_ChangeFlag so that it doesn't need to alter the flag string. With strings being passed as names this is unsafe. - Removed unused parameter types from the function parameter parser for DECORATE. - Changed: All actor name parameters in DECORATE are now passed as FNames, not as strings. - Fixed: The MAPINFO parser stored the RedirectType as a type pointer. But at this point DECORATE hasn't been read yet so this was limited to the internal classes. - Fixed: TXT_NEED_IDCARD wasn't terminated with a ';'. - Fixed: Strife's DeadRebel was missing its DoomEdNum. - With names as type identifiers it is no longer necessary to remap the monster types to internal constants in A_BossDeath. - Fixed: A_BossDeath got the string from a name - just to get a name from the string. Using the name directly is sufficient. Christoph Oelckers 2006-05-10 15:07:14 +0000
  • 032526340a - Redid ClearLcoks() fix that I accidentally removed. Randy Heit 2006-05-10 04:12:43 +0000
  • c70ba60fd6 - Fixed: Some non-POD arguments to printf and a typo in the GCC portion of dobject.h. Randy Heit 2006-05-10 03:29:07 +0000
  • d1ba4a1b76 - Added a new setting for am_rotate: 2 will enable rotation only for the overlay map while leaving the regular map unrotated. Randy Heit 2006-05-10 03:24:32 +0000
  • 0bf87acb00 - Added a new setting for am_overlay: 2 will disable the normal automap and show only the overlayed version. Randy Heit 2006-05-10 03:17:34 +0000
  • def53bdd5d - Fixed?: WallSpriteColumn apparently needs to set dc_texturefrac. At least Valgrind seems to say so. - Fixed: The FWadCollection destructor needs to use free to free the LumpInfo and Wads arrays. - Fixed: The ColorMapKiller needs to use the delete[] form of delete. - Fixed: FConfigFile::ClearCurrentSection() should be calling the delete[] form of delete to free the entry. - Fixed: FPatchTexture::MakeTexture() does not need to blindly recreate the Spans if they already exist. - Fixed: The FMultiPatchTexture destructor did not call its Unload() method. - Restored the original padding calculation to FMultiPatchTexture::MakeTexture(). I believe the Valgrind errors were caused by accessing off the end of the screen buffer, not from accessing off the end of a texture. Randy Heit 2006-05-10 03:08:27 +0000
  • d878c2e7d6 - Backported the classnames-are-names changes from the FP code. Randy Heit 2006-05-10 02:40:43 +0000
  • 632e03fa7e - Fixed a few Strife ammo amount values. - Fixed the ClearLocks function so it doesn't crash when called before the ActorInfos have been created. Christoph Oelckers 2006-05-10 00:25:53 +0000
  • de54d7a667 Fixed: vplce[] has an underscore under Linux?!? Randy Heit 2006-05-09 22:12:24 +0000
  • 199d4dc57f - Backported the improved hierarchical dumpclasses command from the FP code. Randy Heit 2006-05-09 22:10:43 +0000
  • 981f663319 - Updated Jim's Makefile.linux. - Added support for wrapping midtextures vertically. - Since zdoom.wad is now zdoom.pk3, the default mapinfos can use full pathnames. So now they do. - Fixed: The DSimpleCanvas constructor used a pitch too narrow on screens wider than 640 pixels when using a non-AMD processor and the processor's L1 cache line size could not be determined. I think this should fix the issue of weirdly rendered 8 pixel wide borders on the left and right of the screen that some people experienced. - Fixed: The secnodes were never freed. Randy Heit 2006-05-09 21:30:31 +0000
  • 7ed597fcbe - Fixed: The FSpecialFont constructor created the name string twice. - Fixed: The animated door parser was still leaking memory when it encountered an invalid animation due to missing textures. - Fixed: The music volume list wasn't freed. - Fixed: The image for WADs that were loaded from inside Zips was never freed. Christoph Oelckers 2006-05-09 21:21:57 +0000
  • 6de9e9a433 - Changed FDoorAnimation deletion so that the array takes care of it. The original destructor approach would have necessitated a lot more supporting code to work as intended. Christoph Oelckers 2006-05-09 15:51:17 +0000
  • 763efb3682 - Fixed: Skin definitions were never freed. - Fixed: Names in terrain definitions were never freed. Replacing them with FNames would have been a good idea anyway. - Fixed: The lock definitions were never freed. - Fixed: FDoorAnimation was missing a destructor. - Fixed: animation and switch definitions were never freed. - Replaced all other places where FindType was used with FNames with IFindType. Christoph Oelckers 2006-05-09 15:07:45 +0000
  • ace3ed1188 May 9, 2006 (Changes by Graf Zahl) - Fixed: If you want to use a name as the missile parameter for the basic attack functions the type search in DoAttack must be case insensitive. - Fixed: APowerup::DoEffect must do more thorough checks before resetting the fixed colormap. Christoph Oelckers 2006-05-09 08:58:30 +0000
  • df17a60f5d - Fixed: The names in the Depths array in m_options.cpp were never freed. - Fixed: FDoomEdMap needed a destructor. - Fixed: Decal animators were never freed. - Fixed: Colormaps were never freed. - Fixed: Memory allocated in R_InitTranslationTables() was never freed. - Fixed: R_InitParticles() allocated way more memory than it needed to. (And the particle memory was never freed, either.) - Fixed: FMetaTable::FreeMeta() should use delete[] to free string metadata. - Fixed: FConfigFile::ClearCurrentSection() must cast the entry to a char * before deleting it, because that's the way it was allocated. - Fixed definitions of DeadZombieMan and DeadShotgunGuy in doom/deadthings.txt. Skip_super resets the dropitem list, so having it after "DropItem None" is pointless. - Fixed: Decorate DropItem information was never freed. - Fixed: FinishStates() allocated even 0-entry state arrays. - Fixed: Default actor instances were never freed. - Fixed: FRandomSoundList never freed its sound list. - Fixed: Level and cluster strings read from MAPINFO were never freed. - Fixed: Episode names were never freed. - Fixed: InverseColormap and GoldColormap were never freed. Since they're always allocated, they can just be arrays rather than pointers. - Fixed: FFont destructor never freed any of the character data or the font's name. - Fixed: Fonts were not freed at exit. - Fixed: FStringTable::LoadLanguage() did not call SC_Close(). - Fixed: When using the -iwad parameter, IdentifyVersion() did not release the buffer it created to hold the parameter's path. Randy Heit 2006-05-09 03:40:15 +0000
  • 201e17082c - Blends created with the ACS fade commands now degrade to transparent overlays when the menu is visible, so they can no longer obscure the menu. Randy Heit 2006-05-09 00:28:01 +0000
  • fa2ef4611b SVN r86 (trunk) Randy Heit 2006-05-09 00:04:36 +0000
  • 748d7bf4b1 - The game is now free of leaks up to the point just after the wads are loaded. - Fixed: Although TypeInfos are now deleted at exit, their FlatPointers or ActorInfo data was not freed. I chose not to use a destructor to handle this, because then it would no longer be a POD type that can be statically initialized. - Fixed: Aliases were not deleted at exit. - Fixed: FWadCollection did not free its hash tables, lump info, full names, or the list of open files when destroyed. Randy Heit 2006-05-09 00:02:37 +0000
  • d4160f7211 May 7, 2006 (Changes by Graf Zahl) - Added a misc/secret sound definition for Heretic. - Fixed: Powered up weapons were not properly deselected when the level ended and their ready state was different from the main weapon's. - Made some improvements to A_CountdownArg. - Removed the 'Yes', 'No' and 'Greetings' state assignment commands. They haven't been documented and thus haven't been used at all so far. Therefore they don't need to be handled considering that they will go away anyway. - Changed the DECORATE state parser so that Stop can also be specified right after a label, in addition to goto. Christoph Oelckers 2006-05-07 23:55:17 +0000
  • 605a9a7715 May 6, 2006 (Changes by Graf Zahl) - Converted a_zombie.cpp and most of a_strifestuff.cpp to DECORATE. - Converted a_strifekeys.cpp to DECORATE and moved the pickup messages to the string table. - Removed the WIF_HITS_GHOSTS weapon flag and replaced it with MF2_THRUGHOST. There is no need to keep two flags around with virtually the same meaning. - Changed the ShadowArmor to use the VISIBILITYPULSE flag to change its translucency. It looks much better now than the cheap code pointer based blinking it used before. - Converted most of a_strifeitems.cpp to DECORATE and moved the pickup messages to the string table. - Converted a_strifearmor.cpp to DECORATE and moved the pickup messages to the string table. - Moved the messages for killing spectres to the string table. - Converted the quest items to DECORATE. Also changed A_GiveQuestItem to get the messages it prints from the string table instead of the quest item's tag string. Christoph Oelckers 2006-05-07 00:27:22 +0000
  • abed04ab23 - Updated Italian strings that someone kindly e-mailed to me. - The CRT no longer detects any memory leaks when I run to the IWAD picker and quit. - Fixed: The memory used to hold the path to zdoom.wad/.pk3 was not freed if the IWAD picker was cancelled. - Fixed: Some implementations of cvar->GetGenericRep (CVAR_String) returned a statically allocated string and others returned a dynamically allocated string. To be consistant, they should all be static. - Fixed: DObject also has three static TArrays that should not be explicitly initialized: Objects, FreeIndices, and ToDestroy. - Added a new do-nothing constructor for TArray that can be used for BSS objects that are manipulated before startup. Specifically, this was added because C_AddTabCommand() is called before main, but the TabCommands constructor is called after the array already has over 100 entries in it, orphaning everything that was already inserted. And since the code is much nicer-looking now, I didn't want to revert to the old non-TArray version. Randy Heit 2006-05-06 23:43:44 +0000
  • 3c9b55d1db SVN r81 (trunk) Randy Heit 2006-05-06 03:25:12 +0000
  • fd0c5a6db6 - Changed TAG_MORE to pass a va_list pointer instead of a va_list because it's a non-POD type when targeting several non-ix86 targets with GCC. Hopefully this works. Randy Heit 2006-05-06 00:54:41 +0000
  • e78385f807 - Rewrote FName to use only POD types for its static data so that it can be used without any explicit constructors being called. - Fixed: ZTwinedTorchUnlit, ZWallTorchUnlit, ZFireBullUnlit, and ZCauldronUnlit were missing game filters. Randy Heit 2006-05-05 04:37:10 +0000
  • d06793ad7e - Converted A_Puzzleitems.cpp and parts of A_HexenSpecialdecs.cpp to DECORATE and fixed a few broken Hexen items. Christoph Oelckers 2006-05-04 19:36:12 +0000
  • 650d07b8c1 May 4, 2006 (Changes by Graf Zahl) - Converted A_Hexendecorations.cpp - Changed the lower decal spawning code to transfer the main decal's color if the lower decal's default color is the same as the main decal's. - Changed the decal stretcher back to use the specified size parameters as a scaling factor and not a destination size because this is more consistent with the rest of the decal code. Also adjusted the blood smear definition in DECALDEF and the description in the Wiki for this. - Added Jim's most recent fixes. Christoph Oelckers 2006-05-04 12:40:39 +0000
  • fe84b6077e - Fixed: Conversion of c_bind.cpp to FString was incomplete. - Fixed some functions that were declared as taking size_t's but defined as taking unsigned ints. - Added a dummy object to delete sound environments on exit. - Fixed: FWarpTexture did not delete its Spans when destroyed. - Changed wadclusterinfos and wadlevelinfos arrays into TArrays. - Added the TypeInfo::AutoTypeInfoPtr for TypeInfo::m_RuntimeActors so they can be automatically deleted. - Changed TypeInfo::m_Types into a TArray so it will be automatically deleted on exit. - Fixed: TArray::Resize() did not deconstruct entries when shrinking the array. - Changed TArray::Push() so that it calls Grow() instead of duplicating the growth calculations itself. - Calling TArray::Grow() for a small amount when the array is short should grow it a bit more than it was doing. Randy Heit 2006-05-04 06:14:52 +0000
  • c8cdb52863 - Removed generational garbage collection from the string pool because it didn't actually work. - Turned the list of TabCommands into a TArray because I saw lots of console commands in the memory leak report at exit. Then I realized those were actually key bindings, so I changed the Bindings and DoubleBindings arrays into FString arrays. - Fixed: FStringCVar was missing a destructor. - Added TArray::Insert(). - Fixed: TArray::Delete() used memmove(). - Renamed Malloc(), Realloc(), and Calloc() to M_Malloc(), M_Realloc(), and M_Calloc() so that the debug versions can be defined as macros. - Enabled the CRT's memory leak detection in WinMain(). - Moved contents of PO_DeInit() into P_FreeLevelData(). - Removed "PolyBlockMap = NULL;" from P_SetupLevel(), because the P_FreeLevelData() call it makes next does the exact same thing, but also freeing it if needed. - Fixed: Unneeded memcpy in UnpackUserCmd() when ucmd and basis are the same Randy Heit 2006-05-04 03:49:46 +0000
  • ea3b76815d - Removed -bpal parameter. Blood's blood.pal is loaded from blood.rff, and its tiles are loaded from the same directory. - RFF files now load their entire directories into the lumplist. - Added char * and const char * type coversions for FString, so FStrings can be freely passed to functions expecting C strings. (Except varargs functions, which still require manually fetching the C string out of it.) - Renamed the name class to FName. - Renamed the string class to FString to emphasize that it is not std::string. Randy Heit 2006-05-03 22:45:01 +0000
  • 0e69196370 May 3, 2006 (Changes by Graf Zahl) - Removed doom.x, heretic.x and strife.x from the SVN repository. These are generated files. - Fixed: A_PainDie has to check whether a valid target exists before calling IsFriend. - Fixed: FDecalLib::FindAnimator needs a signed counter to work properly. Christoph Oelckers 2006-05-03 14:54:48 +0000
  • 01a41a6f13 - Made loading of Build's palette.dat automatic if it's found inside a loaded group file, but the -bpal parameter remains for now. - Made loading of Build art tiles automatic if they are found inside a group file. Removed the corresponding command-line parameter. - Added support for Ken Silverman's group files. Randy Heit 2006-05-02 04:38:12 +0000
  • 29cd024aba SVN r71 (trunk) Christoph Oelckers 2006-04-30 21:49:18 +0000
  • eff7c898cf - ZDoom now loads zdoom.pk3 instead of zdoom.wad. - Fixed: StreamSong::SetVolume should check the m_stream pointer. This can happen when a TimiditySong doesn't use FMOD and outputs the sound itself. - Fixed: 'use' sector actions were using the incorrect sector on several occasions. - Added a wi_noautostartmap CVAR and a noautostartmap intermission option that force the user to manually end the 'entering level' page. Christoph Oelckers 2006-04-29 12:40:09 +0000
  • 75aec5dde9 GCC fixes: (courtesy of Jim and zloba) - default.cbd was missing thingdef_exp.cpp - tools/makewad/Makefile.mgw was outdated thanks to recently added zip support - wadsrc/wadmake should not be in the repository, as it needs to use host machine path separator conventions Randy Heit 2006-04-29 04:52:30 +0000
  • 19a7cf743e SVN r68 (trunk) Christoph Oelckers 2006-04-27 15:12:17 +0000
  • 9b5f9a1d70 SVN r67 (trunk) Christoph Oelckers 2006-04-24 14:26:06 +0000
  • 790ff69f52 - Removed ABossEye::Serialize because it didn't do anything. - Fixed the issues with .96x's railgun code and added it to the current version. - Fixed: Setting of the friendly Minotaur's angle was inconsistent and could cause it to move backwards in a féw situation. - Fixed: The minotaur did checks for type by checking for the MF_FRIENDLY flag, not by checking for the actor class. That made it impossible to spawn friendly 'normal' minotaurs. - Moved a few virtual methods which are only applicable to the friendly minotaur to AMinotaurFriend. - Fixed: The friendly minotaur checked the master's health instead of the target's when deciding whether to switch targets. Replaced with MF4_NOTARGETSWITCH. - Fixed: maybedrawnow must not draw the console unless the background texture has been set up. Christoph Oelckers 2006-04-23 20:12:27 +0000
  • b229d07500 SVN r65 (trunk) Christoph Oelckers 2006-04-23 09:02:19 +0000
  • 1e1db5dd0c - Fixed: To prevent the pointer cleanup code from crashing numsectors has to be set to 0 when the sectors array is deleted. Christoph Oelckers 2006-04-23 00:03:32 +0000
  • 9aae758ec5 - Added Zloba's fix for Linux's I_FindFirst. Christoph Oelckers 2006-04-22 15:02:08 +0000
  • 663a0f5209 - Fixed: Doom's status bar assumed that STBAR was always in Doom patch format. - Added MF3_DONTSPLASH to the newly created sound sequence things. Christoph Oelckers 2006-04-21 21:42:12 +0000
  • 283dca5750 Made makewad.c compilable as C. Christoph Oelckers 2006-04-21 20:32:24 +0000
  • 67bf668ad9 April 20, 2006 (Changes by Graf Zahl) - Fixed: Strife's ending check included destroying the computer - an event that happens before the branch in the story. - Fixed: The overloaded FRandom::Random2 function with mask parameter didn't use its parameter. - Added Jim's latest makefile.linux Christoph Oelckers 2006-04-21 16:32:49 +0000
  • 6cd650271a Added a_soundsequence.cpp to the repository. Randy Heit 2006-04-21 14:29:05 +0000
  • 8ea6569de8 - Fixed: Crash when opening the player setup menu when you're so dead that your head has popped off your body. - Fixed: When item respawning is on and you play on skill 1 or 5, picking up ammo would permanently double the amount of ammo received from that item the next time it gets picked up. - Added a check to PlayerIsGone() for players who have already had their actors destroyed before calling it. - Fixed: G_CheckDemoStatus() only restored your name, autoaim, and color settings after playing back a demo. - Added DEM_SPRAY net command so that sprayed decals work in multiplayer and demos. - Changed DEM_GIVECHEAT to use a word for specifying the item quantity. This is useful mainly for giving yourself more than 255 health at a time. - Fixed: DEM_SUMMONFRIEND was not handled by Net_SkipCommand(). Randy Heit 2006-04-21 05:44:21 +0000
  • 7e7ab6b4ec - Fixed compilation with mingw again. - Added multiple-choice sound sequences. These overcome one of the major deficiences of the Hexen-inherited SNDSEQ system while still being Hexen compatible: Custom door sounds can now use different opening and closing sequences, for both normal and blazing speeds. - Added a serializer for TArray. - Added a countof macro to doomtype.h. See the1's blog to find out why it's implemented the way it is. <http://blogs.msdn.com/the1/articles/210011.aspx> - Added a new method to FRandom for getting random numbers larger than 255, which lets me: - Fixed: SNDSEQ delayrand commands could delay for no more than 255 tics. - Fixed: If you're going to have sector_t.SoundTarget, then they need to be included in the pointer cleanup scans. - Ported back newer name code from 2.1. - Fixed: Using -warp with only one parameter in Doom and Heretic to select a map on episode 1 no longer worked. - New: Loading a multiplayer save now restores the players based on their names rather than on their connection order. Using connection order was sensible when -net was the only way to start a network game, but with -host/-join, it's not so nice. Also, if there aren't enough players in the save, then the extra players will be spawned normally, so you can continue a saved game with more players than you started it with. - Added some new SNDSEQ commands to make it possible to define Heretic's ambient sounds in SNDSEQ: volumerel, volumerand, slot, randomsequence, delayonce, and restart. With these, it is basically possible to obsolete all of the $ambient SNDINFO commands. - Fixed: Sound sequences would only execute one command each time they were ticked. - Fixed: No bounds checking was done on the volume sound sequences played at. - Fixed: The tic parameter to playloop was useless and caused it to act like a redundant playrepeat. I have removed all the logic that caused playloop to play repeating sounds, and now it acts like an infinite sequence of play/delay commands until the sequence is stopped. - Fixed: Sound sequences were ticked every frame, not every tic, so all the delay commands were timed incorrectly and varied depending on your framerate. Since this is useful for restarting looping sounds that got cut off, I have not changed this. Instead, the delay commands now record the tic when execution should resume, not the number of tics left to delay. Randy Heit 2006-04-21 01:22:55 +0000
  • 66c663e9d8 - Fixed: Hexen's ammo display in the status bar cannot be refreshed partially because the background patch has to be drawn always to overwrite the old display. - Fixed: Giving a health item to a non-player caused a crash. - Added a compatibility option to limit deh.MaxHealth to the health bonus. Originally this value wasn't used for health packs. Doing this was a bug in Boom but since there's quite a few maps out there which require Boom's altered behavior it has to be compatibility optioned. - Fixed: The health bonus's max health must be defined by deh.MaxHealth, not deh.MaxSoulsphere. To achieve this deh.MaxHealth's handling had to be altered because it has to default to 100. - Fixed: ZDBSP created incorrect side references with compressed sidedefs and both sidedefs of a linedef being the same. This only affects the external tool because the internal node builder is run after uncompressing the sidedefs. - Added Jim's latest makefile.linux. - Added a consistency check to the PNAMES loader because one crash log indicated that it crashed due to a corrupt PNAMES lump. - Brought back the sector based sound target handling as a compatibility option. This radical change just broke far too many maps that depend on the original behavior. Strife's special AI functions are excluded though because they work better with the new method. Christoph Oelckers 2006-04-20 14:21:27 +0000
  • b2b729fd37 April 19, 2006 (Changes by Graf Zahl) - Fixed: Hexen had no default sound sequence for doors and passed a NULL pointer to SN_StartSequence in DoorSound. Christoph Oelckers 2006-04-20 00:25:30 +0000
  • 8e631eca0b SVN r54 (trunk) Christoph Oelckers 2006-04-18 22:15:05 +0000
  • c3c22c9453 - Fixed: FBaseStatusBar::DrBNumber() should behave like Doom's STlib_drawNum(), and FDoomStatusBarTexture::DrawToBar() should add the textures left offset to the x coordinate before drawing. These fix Twice Risen's status bar. - Changed: VPrintf now uses string.VFormat(), instead of vsprintf(). Randy Heit 2006-04-18 06:07:09 +0000
  • d8500150f3 SVN r52 (trunk) Christoph Oelckers 2006-04-17 16:04:27 +0000
  • 36e37becb5 SVN r51 (trunk) Christoph Oelckers 2006-04-17 13:53:34 +0000
  • fa7987005e - Fixed: After respawning in a singleplayer demo, demo playback went out of sync becase the RNG seed was being altered during recording but not during playback. This was caused by an inappropriate fix for a similar problem: -record calls G_InitNew() before it actually starts recording the demo, but -playdemo calls G_InitNew() after it starts playback. So the rngseed stored in the demo was already altered. The correct thing to do is not to prevent the rngseed from changing during playback but to move the call to G_InitNew() after the call to G_BeginRecording(). - Fixed: After respawning in a demo, demo playback was prematurely terminated. Randy Heit 2006-04-16 19:09:36 +0000
  • da51ac7446 SVN r49 (trunk) Christoph Oelckers 2006-04-16 13:29:50 +0000
  • 3165756b02 Make the line endings in ccdv-win32.c consistantly CR/LF. Randy Heit 2006-04-16 05:20:20 +0000
  • 2bfc183154 SVN r47 (trunk) Randy Heit 2006-04-16 03:31:40 +0000
  • 8a7ba616f4 SVN r46 (trunk) Christoph Oelckers 2006-04-15 15:00:29 +0000
  • 153d3b4681 SVN r45 (trunk) Christoph Oelckers 2006-04-14 16:25:57 +0000
  • 07f35a7008 SVN r44 (trunk) Christoph Oelckers 2006-04-14 12:58:52 +0000
  • 4dd936e438 SVN r43 (trunk) Christoph Oelckers 2006-04-13 22:40:43 +0000
  • ab1d4a2e0f Updated Jim's Makefile.linux. Randy Heit 2006-04-13 22:35:56 +0000
  • 00f332c678 - Fix farchive.cpp swappers for GCC again. Now that they use entirely integer math, they should work with all GCC versions. - Updated FLAC readers to #define FLAC__NO_DLL to match the new FLAC builds. Randy Heit 2006-04-13 22:25:26 +0000
  • 7138ab86a8 Updated FLAC code to version 1.1.2. Randy Heit 2006-04-13 22:18:41 +0000
  • e8c7a10f80 SVN r39 (trunk) Christoph Oelckers 2006-04-13 20:33:19 +0000
  • 218fd0ae56 SVN r38 (trunk) Christoph Oelckers 2006-04-13 16:56:06 +0000
  • fdeb374fdb SVN r37 (trunk) Christoph Oelckers 2006-04-13 16:52:24 +0000
  • b00360a08c - Fixed: Using printinv before starting a game crashed. - Fixed: DMover::MovePlane() would not stop moving the plane when it exactly reached its target height unless it was a floor moving down. - Fixed: Actors that can't attack should not be valid haters for Thing_Hate. - Fixed: AArtiBlastRadius::BlastActor() should not set MF2_SLIDE for missiles. - Fixed: sdl/i_input.cpp should check !iscntrl() before generating EV_GUI_Char messages. Randy Heit 2006-04-13 03:13:07 +0000
  • 735e6d72c4 - Added Jim's Makefile.linux; - Changed: Decal scales now use full precision fixed point numbers. - Changed: Keeping impact decals in their own statlist is enough to keep track of them for when one needs to be destroyed. There's no need to maintain a separate list for them. - Fixed: Decal actors did not spread their decals across neighboring walls. - Fixed: Decal groups did not initialize their IDs and could not be reliably used with the decal actor. - Fixed: Decals on moving polyobjects were not interpolated. R_RenderDecal() now uses the decal's LeftDistance to calculate its visible location, so it always stays in sync with the wall's vertices. This also lets me dump some code from the polyobjects that maintained the decals' (x, y) coordinates. Also, the decals' x and y information is redundant and can be removed. Doing this revealed a bug with slider decals and horizontal sliding: That is, it didn't work at all. I have opted to simply remove the horizontal sliding support so that I don't have to worry about what happens when a decal slides across the edge of a wall. - Fixed: DBaseDecal::LeftDistance was calculated as a 30.2 fixed point number. It should be 2.30 fixed point. Randy Heit 2006-04-13 02:01:40 +0000
  • 4982558bbf SVN r34 (trunk) Christoph Oelckers 2006-04-12 21:49:03 +0000
  • 78a367a2d7 Fixed: GCC misoptimized the SWAP macros in farchive.cpp. Randy Heit 2006-04-12 05:30:27 +0000
  • 63adffee3d Found Chris's default.cbd patch for r17 and merged that. Randy Heit 2006-04-12 03:37:46 +0000
  • ec4b8719aa Fixed: Compiling with mingw once again works, although savegame loading problems are not yet fixed. Randy Heit 2006-04-12 03:03:58 +0000
  • e815474cbe - Fixed: ACS improperly calculated the address of local variables when returning from one function to another function when the function that was called was used as part of an expression. - Fixed: Using Thing_Hate with arg0 (hater) set to 0 from an open script could crash. - Fixed: Some items along ledges in Hexen's MAP32 (Orchard of Lamentations) appeared at the bottom of the ledge (and consequently inside it) instead of on top of it because the items were placed directly on the lines. AActor::LinkToWorldForMapThing() needs to use the original R_PointOnLineSide() code to handle situations like this. Previously, it just used the original code for straight horizontal/vertical lines and used the new code for diagonal lines. - Fixed: FWadCollection::MergeLumps() used in incorrect realloc. - Fixed: FPlayList::NextLine() did not properly handle blank lines in the playlist. - Changed: Decals now use lightweight thinkers instead of actors. (76 bytes versus 396, so you save 320k if you have 1024 decals present.) - Fixed: Wads added with pullin were loaded immediately after the IWAD. Exec files are now processed immediately before -file but after autoloading wads in D_DoomMain(). - Fixed: sdl/i_system.h unconditionally defined SHARE_DIR, preventing redefinition from the command line. - Fixed: The standard way to include SDL.h is <SDL.h>, not <SDL/SDL.h>. - Fixed: Returned FActiveInterpolation::HashKey()'s return type to size_t, avoiding a pointer truncation warning. Randy Heit 2006-04-12 01:50:09 +0000
  • d15325e282 Removed file/folder Christoph Oelckers 2006-04-11 18:09:10 +0000
  • 69eb7e9f03 SVN r28 (trunk) Christoph Oelckers 2006-04-11 18:02:51 +0000