c745c635db- Fixed: The Cacodemon had a FastSpeed definition even though it shouldn't. - Fixed: FastSpeed was used unconditionally when defined.
Christoph Oelckers
2006-11-02 07:23:08 +0000
a8ba2a99ea- Fixed: SetActorPitch with a 0-tid (i.e. affect the activator) set the angle instead of the pitch. - Fixed: The check for special death states in AActor::TakeSpecialDamage didn't work.
Christoph Oelckers
2006-10-31 21:49:45 +0000
1b741775a4Removed one unused variable.
Christoph Oelckers
2006-10-31 16:11:11 +0000
0cf2ae0127Forgot to save the last change before committing.
Christoph Oelckers
2006-10-31 15:24:22 +0000
063c85b157- Fixed: The global WeaponSection string was never freed. It has been replaced with an FString now. - Fixed: The music strings in the default level info were never freed and caused memory leaks when used repeatedly. - Fixed: The intermusic string in the level info was never freed. - Fixed: The default fire obituary should only be printed if the damage came from the environment. If it comes from a monster the monster specific obituary should be used instead. - Added custom damage types from the floating point test release. - Changed Pain Elemental's massacre check. Now A_PainDie checks for the damage type and doesn't spawn anything if it is NAME_Massacre. A_PainDie can also be used by other actors so a more generalized approach is needed than hard coding it into the Pain Elemental. - Converted a few of Doom's monsters to DECORATE because I couldn't test the first version of the custom state code with the corpses inheriting from them. - Added custom states from last year's floating point test release and fixed some bugs I found in that code. Unfortunately it wasn't all salvageable and it was easier to recreate some parts from scratch.
Christoph Oelckers
2006-10-31 14:53:21 +0000
3b2c2efcb1- Version bump to 2.1.7. - Fixed: Placing a /* */ comment at the very end of a file without a terminating newline would not parse reliably. - Added a NULL WallSpriteTile check to R_RenderDecal().
2.1.7
Randy Heit
2006-10-31 00:47:05 +0000
88ca8e630c- Changed parameter storage for states to use a separate member variable instead of forcing it into misc1/misc2. Although this increases the EXE's size by 30k it has several advantages: * State parameters are no longer limited to 65535 for all states combined. * State parameters can be used with long durations. * Some special handling in the weapon state set functions can be removed.
Christoph Oelckers
2006-10-29 11:01:00 +0000
b178bb2612- Fixed: The MinotaurFriend's MF4_NOTARGETSWITCH was put on AMinotaurFX1.
Christoph Oelckers
2006-10-27 08:20:54 +0000
bcca366e8f- Removed A_JumpSet and merged its functionality with A_Jump by turning A_Jump into a varargs function. - Fixed: P_MorphPlayer() should check that the desired type is actually a PlayerPawn. - Added an optional parameter to the morphme ccmd that specifies the player class to morph into. - Changed the SetActorPitch, SetActorAngle, Thing_Spawn*, Thing_Projectile*, and Thing_Move functions so that TID 0 affects the activator.
Randy Heit
2006-10-27 03:03:34 +0000
753f280e04- Moved the sector type translation for Doom format maps into a simple lump in zdoom.pk3. - Changed Line_SetIdentification so that the fifth arg is a high-byte for the line ID.
Christoph Oelckers
2006-10-25 16:21:08 +0000
2efba66558- Added the A_JumpSet function for what seems to be a fairly common scenario. It is like A_Jump, except it accepts up to 20 jump targets. The jump probability is still the first parameter and controls whether any jump is taken at all; use 256 if you always want to jump. If a jump is taken, then one of the jump targets will be chosen at random, with each target having an equal chance of being chosen. - Fixed: The unfreeze ccmd was not multiplayer-safe. And I renamed it to thaw, since it has nothing to do with the freeze ccmd.
Randy Heit
2006-10-24 02:32:12 +0000
0d5e3cf97e- Added MF5_PIERCEARMOR flag that allows damaging objects that aren't affected by armor. - Added an unfreeze CCMD so that frozen players can be unfrozen for testing. - Added special death states for projectiles hitting actors. - Added ACS SetActorPitch/GetActorPitch functions. - Added cameraheight property for actors.
Christoph Oelckers
2006-10-22 10:32:41 +0000
fb5f4a132b- Fixed: The yellow color range contained gaps in its definition which resulted in incorrect colors. - Fixed: FFont::BuildTranslations didn't clamp the RGB color values. This can happen if some font colors overflow or underflow due to incomplete range specifications.
Christoph Oelckers
2006-10-21 09:01:45 +0000
dd5f01b91e- Fixed: ExpData::EvalConst() did not NULL the children pointers for binary operators after deleting them, so ~ExpData() would try to delete them again later.
Randy Heit
2006-10-21 04:38:57 +0000
ef1a5a115f- Added a new MapMarker actor. Instead of appearing in the 3D view, it appears on the automap instead. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a TID matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is one. You can use Thing_Activate and Thing_Deactivate on markers to turn them on and off. And if you subclass MapMarker with DECORATE, you can easily make your own custom markers. - Fixed: Map markers could not be drawn partially off the map. They were drawn either fully or not at all. - Fixed: Map markers appeared in the wrong place on a rotated overlay map if screenblocks < 10.
Randy Heit
2006-10-20 04:04:04 +0000
35ca16ba4f- Added the MF2_PASSMOBJ for P_Thing_Spawn() from January 4, 2003, to DLevelScript::DoSpawn(). - Changed VectorNormalize() (and VectorNormalize2) to use doubles for storing the vector lengths, fixing desyncs between GCC/VC++ games that happened because the two compilers produced slightly different results for some slopes. GCC kept them in registers, so they were never truncated to floats. VC++ stored them to memory and reloaded them in order to truncate them to the defined precision. Lesson learned: Floating point numbers in local variables should always be doubles to produce the best code with VC++ that has the best chance of matching GCC's default behavior. - Removed netget and netsend function pointers. PacketGet and PacketSend are now called directly. - Fixed: Watching a demo from the point of view of someone other than the first player could cause a crash when the demo ended. - Removed invcount from the expression evaluator at Grubber's suggestion, because it doesn't work. - Fixed: vid_nowidescreen should fire off setsizeneeded so that changes to it can happen immediately instead of at the next resolution change.
Randy Heit
2006-10-20 01:58:26 +0000
7c1fbe7ee5- Modified the way autosaves are done. Instead of setting gameaction to ga_autosave, write DEM_CHECKAUTOSAVE to the net stream. When this is processed, it will check if it's okay to do an autosave. If it is, it writes DEM_DOAUTOSAVE to the net stream, which the sets gameaction to ga_autosave. Essentially, about half of the functionality was moved out of G_DoAutoSave() and into Net_DoCommand(). - Minor changes to OS detection: The os_WinNT enumeration has been renamed to os_WinNT4, since every new OS coming out of Microsoft these days is essentially NT. NT 5.2 and 6.0 are now properly identified as "Windows Server 2003" and "Windows Vista" respectively, and any unknown NT versions Microsoft introduces in the future will now be displayed as "Windows NT" instead of "Windows 2000" if the minor version is 0 and "Windows XP" if the minor version is non-0. Win32s detection has also been removed. Presumably if somebody is foolish enough to try to run this on Windows 3.x with Win32s, it won't even load due to missing DLLs. - Fixed: Demos with NETD chunks should not set netgame to true unless they have more than one player. And since netdemo is ignored if netgame is false, it doesn't need to set that either. - Fixed: FTexture::GetScaled* functions did not check for scale values of 0.
Randy Heit
2006-10-19 20:20:56 +0000
39d2ef0460- Changed the rocket so that the FX_ROCKET flag is set in the actor definition and not in BeginPlay. - Changed the special explosion behavior of the rocket to a flag (MF5_DEHEXPLOSION) so that its effects can be used on other actors as well without having to inherit from the rocket.
Christoph Oelckers
2006-10-15 20:27:16 +0000
92c3a89255- Fixed: PrintAlias passed FString objects directly to Printf. - Added bitwise not (~) operator to ACS.
Christoph Oelckers
2006-10-09 15:55:47 +0000
3dabd38359- Fixed: Hires texture replacements must call AddPatch if the texture isn't defined yet in order to replace lumps that are not in the list of preinitialized graphics. - Changed font initialization to occur after textures have been completely initialized. This is necessary so that the font characters can be replaced with hires versions.
Christoph Oelckers
2006-10-06 21:07:58 +0000
6fe9c98b47- Fixed: Hires texture replacements and auto-scaled flats require the bWorldPanning flag. Also added some NULL pointer checks to the hires texture loading code. - Added Sector_SetFloorScale2 and Sector_SetCeilingScale2 line specials. They are mostly the same as Sector_Set*Scale but take fixed point parameters. This makes them easier to use and more precise than the old ones which offered very small fractional precision. - Changed Thing_Deactivate so that passing a tid of 0 deactivates the calling actor. - Added MeansOfDeath parameter to DamageThing.
Christoph Oelckers
2006-10-05 20:32:16 +0000
2c2261884cSVN r349 (trunk)
Randy Heit
2006-10-05 03:30:44 +0000
28ea15d8f4- When exiting the level on a damaging floor the player could be in the pain state and make its pain noise at the start of the next level. - Fixed: The FPS counter obstructed the key display in Doom's fullscreen HUD.
Christoph Oelckers
2006-10-04 07:45:44 +0000
65bb04b7e8- Fixed: V_BreakLines() failed to produce output for the final line if it was only one character long. - Fixed: When players respawned in multiplayer, scripts that started on their old body kept executing on that body instead of being transferred to the new one. I'm doing this with general pointer substitution now, so everything that pointed to the old body will use the new one; not sure if that's best, or if it should applied exclusively to scripts, though. - Fixed: Hexen's delay ACS command actually waited one extra tic. Now if you're playing Hexen and an old-style ACS script delays it will wait one extra tic in ZDoom as well. - Fixed: When G_FinishTravel() created a temporary player, P_SpawnPlayer() thought the old player actor was a voodoo doll and stopped its scripts and moved its inventory.
Randy Heit
2006-10-03 03:14:28 +0000
b85806901dVersion bumped to 2.1.6.
2.1.6
Randy Heit
2006-10-01 21:50:02 +0000
c0bd4e54f4- Fixed: player_t::GetSpawnClass() always returned the spawn flags for the local player, so co-op games would spawn only the things relevant for the local player and not all the things relevant for all players.
Randy Heit
2006-10-01 01:38:37 +0000
fa2fc3f4d7- Fixed: Default flags for APlayerPawn and APlayerChunk were not defined.
Christoph Oelckers
2006-09-30 22:28:38 +0000
299380f990Fixed missing break in PCD_GETPLAYERINFO
Christoph Oelckers
2006-09-30 08:35:09 +0000
a3f39c3789- Fixed: Monsters should never target friends, even if the friendliness state has changed since the target has been acquired. - Fixed: Multiplayer telefrag obituaries must be handled before weapon dependent obituary messages.
Christoph Oelckers
2006-09-28 07:37:19 +0000
6c3b569e66- Fixed GCC compilation again. - PClass::StaticInit() now sorts the class metadata so that operations that iterate over it (such as the "give all" cheat) are compiler-independant.
Randy Heit
2006-09-27 04:56:18 +0000
a4a23d1b25- Fixed: ACustomInventory::CallStateChain couldn't be called recursively so any item that was giving another CustomInventory item didn't work as intended. - Fixed: CustomInventory items didn't process A_Jump... commands properly for non-players.
Christoph Oelckers
2006-09-25 07:48:52 +0000
adf6579b37- Fixed: Starting a new game didn't remove the deferred scripts.
Christoph Oelckers
2006-09-23 20:14:06 +0000
3deb4e631e- Fixed: FNodeBuilder::ShoveSegBehind needs to check that the result from Heuristic is positive, not just non-zero.
Randy Heit
2006-09-23 02:48:39 +0000
bbfc149bd7- Fixed: Summoned friendly monsters added to the total kill count.
Christoph Oelckers
2006-09-20 08:09:00 +0000
b132575533- Added a dialog that gives the user the chance to fix things if the config could not be saved for some reason. - Added the writeini console command to write the config file, optionally specifying a specific file name for it. - Fixed: "Multiplayer" demos that only had one player were not played back properly because the demo playback code only checked the number of players to determine if it should be played as a netdemo.
Randy Heit
2006-09-20 02:00:19 +0000
8854f95152- Removed m_fixed.cpp - Fixed the GCC _DECLARE_TI macro to use the section name macro.
Randy Heit
2006-09-20 00:08:22 +0000
419724dd02- Assembly code is disabled when building with __APPLE__ defined, for now. - If you aren't targeting x86, m_fixed.h only includes basicinlines.h now. - Moved x64inlines.h into basicinlines.h. - Replaced uses of __int64 with types from doomtype.h. - The stop console command no longer ends single player games, just the demo that was being recorded. - In C mode, the sc_man parser no longer allows multi-line string constants without using the \ character to preface the newline character. This makes it much easier to diagnose errors where you forget the closing quote of a string. - Fixed: V_BreakLines() added the terminating '\0' to the last line of the input string. - Added font as a parameter to V_BreakLines and removed its keepspace parameter, which was never passed as anything other than the default.
Randy Heit
2006-09-19 23:25:51 +0000
73032c2f3d- Fixed: Texture scale calculations for HIRESTEX were incorrect.
Christoph Oelckers
2006-09-17 15:45:27 +0000
782b8a3b92- Fixed: The sky scrolling calculations caused an integer multiplication overflow. - Fixed: Voodoo dolls should not start ENTER scripts. - Fixed: ActorDamage must not parse the enclosing parentheses as part of the expression. That will produce an error if a flag set or clear command immediately follows. - Fixed: P_DamageMobj ignored MF2_NODMGTHRUST if the damaging object had no owner. - Added a 'font' parameter to A_Print. - Changed A_CustomMeleeAttack to take one damage parameter only. Since expressions can be used this value is not used as a factor for a random value but as a direct damage value instead. - Fixed: AActor::SetState must check whether a called action function resulted in the actor's destruction. A_Jump constructs to a 0-length terminating state will hang if this isn't checked.
Christoph Oelckers
2006-09-17 10:43:51 +0000
b951721c1b- Moved the vid_fps display to the upper-right of the screen. - The stat display can now show multiple stats at once.
Randy Heit
2006-09-14 03:06:09 +0000
76e94bde6bAdded some Linux fixes that were needed after the last commit.
Randy Heit
2006-09-14 00:17:10 +0000
c412b42703- Fixed: cycle_t was still a DWORD and not a QWORD under GCC. - The stat meters now return an FString instead of sprintfing into a fixed output buffer. - NOASM is now automatically defined when compiling for a non-x86 target. - Some changes have been made to the integral types in doomtype.h: - For consistancy with the other integral types, byte is no longer a synonym for BYTE. - Most uses of BOOL have been change to the standard C++ bool type. Those that weren't were changed to INTBOOL to indicate they may contain values other than 0 or 1 but are still used as a boolean. - Compiler-provided types with explicit bit sizes are now used. In particular, DWORD is no longer a long so it will work with both 64-bit Windows and Linux. - Since some files need to include Windows headers, uint32 is a synonym for the non-Windows version of DWORD. - Removed d_textur.h. The pic_t struct it defined was used nowhere, and that was all it contained.
Randy Heit
2006-09-14 00:02:31 +0000
06630b0fee- Added support for scaled textures to DCanvas::DrawTexture. - Changed deh.MaxHealth use to be consistent with other source ports. - Added NULL pointer checks to APlayerPawn's state set functions. If these remove the player from the game a crash is the inevitable result.
Christoph Oelckers
2006-09-09 08:55:47 +0000
4999c3b4aa- Fixed: Weapons did not give you double ammo at baby and nightmare skills. - Fixed: SetTexture() in p_setup.cpp assumed that all color values were six characters. Although this was the intended way to specify colors, earlier versions did no error checking, so other lengths worked too. - Fixed: FPatchTexture waited until MakeTexture() to call CalcBitSize(), so the width and height bit sizes weren't available when using it as a source for a warp texture. - Fixed: R_InitSkyMap() should only warn about two sky textures not being the same height when they are used as part of a double sky. - Added a NULL state check in AActor::Tick() before advancing the current state. Note that this should not happen, so there's an assert there for the debug build as well as a regular check for the release build.
Randy Heit
2006-09-09 01:14:13 +0000
05265c3213- Version bump to 2.1.5. - Fixed: P_LoadSegs() checked for invalid vertices too late.
2.1.5
Randy Heit
2006-09-01 22:09:03 +0000
da32156d41- Changed: Starting a new game or reloading an old one reset the chasecam.
Randy Heit
2006-09-01 01:52:50 +0000
c87be34b08- Removed the r: ACS print cast. You can do it yourself with s: and an array. - Changed all the bool arguments to the ACS ReplaceTextures and SectorDamage commands with a single flags argument. SectorDamage also gained extended functionality: you can now make it hurt only players, only non-players, or both. Previously, hurting only non-players was not possible. - Added the HUDMSG_COLORSTRING flag for ACS hudmessages. If you OR it in with the message type, the color will be treated as a string naming the color you want to use, so now you can use custom colors with hudmessages.
Randy Heit
2006-09-01 01:08:27 +0000
a2fbb8c880GCC fixes for recent code changes.
Randy Heit
2006-08-31 01:30:22 +0000
b1e564d907- Added the FNameNoInit class that is exactly like FName except it does not initialize its index, so it can be used from inside Actors without overwriting the runtime default value. - V_BreakLines() now returns an array of FStrings instead of char *'s. - Added support for custom text colors in messages like this: print (s:"\c[Chartreuce]This text is in the color 'Bleargh'"); This also obsoletes some of the functionality of the r: print specifier before it even saw a release version, because you can do this with the standard colors too: print (s:"\c[Green]Some text"); - Added two new decorate functionns: A_PlaySoundEx("sound_name", "channel" [, bLooping]) and A_StopSoundEx("channel"), where "channel" is "Auto", "Weapon", "Voice", "Item", "Body", "SoundSlot5", "SoundSlot6", or "SoundSlot7". - Added a third parameter to S_IsActorPlayingSomething() to allow it to check if the actor is playing a specific sound.
Randy Heit
2006-08-31 00:19:51 +0000
603e905c42SVN r314 (trunk)
Randy Heit
2006-08-31 00:16:12 +0000
2fb55622e7- Moved the text color definitions out of the executable and into an external data file. - Removed the setcolor CCMD. It's been obsolete for years, ever since color- aware cvars were added. - Changed V_GetColorStringByName() to return an FString, because it did a copystring() call. - Extended V_GetColorFromString() so that it accepts HTML-style #RRGGBB and #RGB color strings.
Randy Heit
2006-08-30 02:38:39 +0000
38f650f7c5SVN r312 (trunk)
Christoph Oelckers
2006-08-27 08:51:01 +0000
1b879c61c2- Fixed: Multiple-choice sound sequences could not be assigned IDs for use with polyobjects and the sound sequence selector things.
Randy Heit
2006-08-26 02:50:06 +0000
cf3b1bfd6e- Removed the 64 seg limit for polyobjects defined with Polyobj_ExplicitLine. - Polyobj_StartLine and Polyobj_ExplicitLine can now set a line's ID. This is the fourth parameter for Polyobj_StartLine and the fifth parameter for Polyobj_ExplicitLine.
Randy Heit
2006-08-24 19:19:15 +0000
a69d7f529e- Added support for DDS textures compressed with DXT1, DXT3, or DXT5.
Randy Heit
2006-08-24 18:30:34 +0000
848097cd2e- Fixed incorrect spawn ID for cell pack.
Christoph Oelckers
2006-08-23 14:09:15 +0000
d62e6c5332- Added Martin Howe's code for replacing environment variables in partial IWAD search paths.
Randy Heit
2006-08-22 22:34:35 +0000
1a7253e53c- Added support for casting color names in ACS print-type statements. What that means is that instead of writing this: print (s:"\cDSome text"); You can write this: print (r:CR_GREEN, s:"Some text"); - Added some new colors, based on the ones jimmy91 posted in the forum: cream, light blue, black, olive, dark green, dark red, dark brown, purple, and dark gray. - Simplified FFont::BuildTranslations() and BuildTranslations2() to make adding new colors easier.
Randy Heit
2006-08-22 21:58:24 +0000
66295cf9e9- Removed a few redundant calls to FTexture::GetWidth because all textures are now fully initialized when being created. - Added GZDoom's HI_START/HI_END namespace and HIRESTEX support. - Added sprite scaling to the weapon drawing code
Christoph Oelckers
2006-08-22 21:45:12 +0000
5c7eeed018- Added support for PCX textures (1, 4, 8 and 24 bit variants.)
Christoph Oelckers
2006-08-21 13:09:55 +0000
e3c5dd4644The last commit contained a broken version of tgatexture.cpp.
Christoph Oelckers
2006-08-20 23:25:40 +0000
93beb4d42eFixed a few problems with the new texture code.
Christoph Oelckers
2006-08-20 17:07:22 +0000
2536eca01d- Changed: Patch and IMGZ textures now initialize their dimensions upon creation. The lump is open anyway at that time so deferring this action until the information is needed doesn't give any speed improvements. Now GetDimensions and all its associated overhead is gone. - Added support for TGA textures. It can handle all of the common variations of this format. - Changed: GI_PAGESARERAW is no longer checked. It wasn't really necessary before because the chance of texture misidentification is absolutely minimal. But raw pages are now restricted to textures of type TEX_MiscPatch only. - Changed the automap parchment to use a regular texture. The previous FAutomapTexture is only used as a last resort fallback now. If the code finds a recognizable graphic it will create a proper texture for it now. - Fixed: Flats were only auto-scaled when in Doom flat format. - Fixed: FMultiPatchTexture::CheckForHacks blindly assumed that all patches were FPstchTextures. Since the texture code does not have any type information I added a new flag bIsPatch for this purpose. - Moved all texture classes into their own source files and created a new subdirectory 'textures' for that. - Cleaned up the texture management code and added some stricter checks for the validity of Doom patches. The old code liked to crash when being passed some non-graphic data.
Christoph Oelckers
2006-08-20 12:55:46 +0000
ab947ce16b- Added custom fail messages to the puzzle items.
Christoph Oelckers
2006-08-18 22:22:39 +0000
aef5df6628- Did some minor reorganization of code in r_data.cpp (mostly to make handling of textures easier in GZDoom.) - Did some preparations to allow loading folders on the HD into the lump directory.
Christoph Oelckers
2006-08-17 22:10:50 +0000
f66b7de8c8- Took MF2_WINDTHRUST off AMorphedMonster. This is something that should not be a default setting. - Moved a_artiegg.cpp to g_shared and renamed it to a_morph.cpp to better reflect its meaning. - Fixed: AMorphProjectile's PlayerClass and MonsterClass members must be serialized as FNames. Serializing them as ints is not safe because name indices are not guaranteed to be the same each time the game is started. Same for APlayerPawn's MorphWeapon member. - Converted EggFX, ArtiEgg, PorkFX and ArtiPork to DECORATE. - Added a new parameter to A_FireCustomMissile. Previously it always aimed straight ahead and altered the projectile's angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly. - Changed custom morphing to be based on a new MorphProjectile class, not the Heretic specific EggFX. The EggFX properties are now prefixed with 'MorphProjectile.'.
Christoph Oelckers
2006-08-17 09:54:42 +0000
a6d656b108- Updated thingdef_specials.h for the new thingdef_specials.gperf file. - Created a new MorphedMonster class that Chicken and Pig now derive from. This class automatically takes care of unmorphing the monster when its time is up. - Made PlayerClass and MonsterClass properties of EggFX. You can override these in a subclass to create new kinds of morpher projectiles. Along with that, MorphWeapon is a new property of PlayerPawn that controls what type of weapon you have available while morphed ("None" means you have no weapons). - Changed morphed monsters to record the time when they want to unmorph, not the time left until they unmorph. This simplifies calling P_UpdateMorhpedMonster() because you don't need to pass it a tic count. - Added an optional second parameter to A_SpawnDebris and an optional fifth parameter to A_SpawnItem that both do the same thing: If you set it to 1, then the spawned actor will be assigned the same translation table as the actor that called the function. - Moved the blood colorization in P_SpawnBlood() ahead of the SetDamage() call so that the blood color will available to the states of the blood actor. - Extended the puke command so that giving it a negative script number will act like ACS_ExecuteAlways and always execute the script. (Ugh. Why did I use's Raven's cheat code to name this command?)
Randy Heit
2006-08-17 00:19:26 +0000
c16cff7f47Added some missing specials to thingdef_specials.gperf.
Christoph Oelckers
2006-08-16 21:59:45 +0000
7dc4be302f- Added action special support to the thingdef expression evaluator. Now you can use them like normal functions, which is probably most useful for ACS_ExecuteWithResult.
Randy Heit
2006-08-16 20:56:06 +0000
ed12bdc0f4- Switched to IJG code for reading JPEG images. I have included a stripped- down version of the library with the ZDoom source. (It actually uses less space than zlib now.) Unix users probably ought to use the system-supplied libjpeg instead. I modified Makefile.linux to hopefully do that. I'm sure Jim or someone will correct me if it doesn't actually work.
Randy Heit
2006-08-16 18:08:39 +0000
21869a6c08- Added JPEG texture support, courtesy of Ken's Picture Library. I will probably switch to the IJG library once I pare it down. (Ken's code is 18K of C source but does not support progressive JPEG. The IJG library is over a megabyte of source and supports pretty much everything you would ever need ever.) - Fixed endianness issue in FTextureManager::CreateTexture(). - Added support for interlaced PNGs. Now ZDoom is a mostly complete PNG reader. The only thing missing is 48-bit RGB and 16-bit grayscale support, which are just wastes of bits here, but also less likely to appear than an interlaced PNG. (However, if you are using interlaced PNGs for textures, then you are needlessly wasting space, since the image won't display progressively.) - Fixed: Writing named screenshots didn't work.
Randy Heit
2006-08-15 04:34:35 +0000
89396964f5- Added support for truecolor PNG textures. They still get resampled to the global palette, but at least they are visible now. - Optimized UnfilterRow() in m_png.cpp a little.
Randy Heit
2006-08-13 03:38:18 +0000
8ecfe6a8ac- Fixed: P_CheckOnMobjZ returned the first thing an actor could stand on, not the highest possible.
Christoph Oelckers
2006-08-12 21:02:46 +0000
7f93ab05ee- Added disintegration damage to SectorDamage. - Bumped savegame version, min. savegame version, netgame version and demo version because the inventory and damage changes are incompatible with the old code.
Christoph Oelckers
2006-08-12 08:38:00 +0000
b25c7722f3- Added the ACS commands ReplaceTextures (str old_texture, str new_texture, optional bool not_lower, optional bool not_mid, optional bool not_upper, optional bool not_floor, optional bool not_ceiling); and SectorDamage (int tag, int amount, str type, bool players_only, bool in_air, str protection_item, bool subclasses_okay); - Added the vid_nowidescreen cvar to disable widescreen aspect ratio correction. When this is enabled, the only display ratio available is 4:3 (and 5:4 if vid_tft is set). - Added support for setting an actor's damage property to an expression through decorate. Just enclose it within parentheses, and the expression will be evaluated exactly as-is without the normal Doom damage calculation. So if you want something that does exactly 6 damage, use a "Damage (6)" property. To deal normal Doom missile damage, you can use "Damage (random(1,8)*6)" instead of "Damage 6". - Moved InvFirst and InvSel into APlayerPawn so that they can be consistantly maintained by ObtainInventory.
Randy Heit
2006-08-12 02:30:57 +0000
55e299e4b3Upgraded ccdv-win32.c and the Makefiles so that they are fully functional under MSYS.
Randy Heit
2006-08-11 03:07:32 +0000
b8312a9bd8- Gave Strife's PhosphorousFire the MF2_NODMGTHRUST flag so that its damage is truly thrustless. The 'thrustless' parameter disabled all thrust done by PIT_RadiusDamage but not the one done by P_DamageMobj. Also gave Hexen's poison cloud the MF3_BLOODLESSIMPACT flag and made spawning of blood decals in PIT_RadiusAttack depend on that. Since with these changes the 'bombthrustless' argument to P_RadiusAttack is no longer useful I removed it.
Christoph Oelckers
2006-08-10 21:03:17 +0000
8e2c37957eForgot to remove some debug code before committing
Christoph Oelckers
2006-08-10 15:45:26 +0000
688476b9aaAugust 10, 2006 (Changes by Graf Zahl) - Fixed: CheckActorInventory stored the return value in the wrong address on the ACS stack. - Fixed: Skin sounds weren't properly restored after a SNDINFO reset. - Added a more flexible ACS ChangeLevel function. It gets passed a level name instead of a level number and has several additional options (e.g. changing skill, starting the map without monsters and clearing the players' inventories. (UNTESTED!) - Changed Thing_Activate so that passing a tid of 0 activates the calling actor. - Changed Thing_Remove so that passing a tid of 0 removes the calling actor. - Added DECORATE parameters to A_Saw.
Christoph Oelckers
2006-08-10 15:28:12 +0000
2b0fa809c6Fix ccdv-win32.c so that it works under Windows 95/98/ME.
Randy Heit
2006-08-10 01:17:58 +0000
f2333b6f26- Fixed: The ACS VM made no checks for object files without strings, assuming that if it didn't have any strings, then it didn't matter what it calculated for the location of the string table because it would never be referenced. While this is true for a script all by itself, it means a crash if you have a map script without strings that imports a library with strings and the library tries to use one of its strings.
Randy Heit
2006-08-03 03:45:58 +0000
3a552d4aa0- It turns out that the Visual C++ 2005 runtime calls IsDebuggerPresent, which is not available under Windows 95. Since this is (or at least should be) the only thing preventing us from running under Windows 95, I added a stub that replaces __imp__IsDebuggerPresent@0 with a pointer to a function that checks for the real thing.
Randy Heit
2006-08-02 04:57:36 +0000
effa46975e- Fixed: The pickup message for Hexen's fighter's axe was assigned to the AxePuff, not the weapon itself. - Fixed: P_RunEffects used the consoleplayer's camera without checking its validity. - Fixed: CopyFriendliness needs to copy target to LastHeard as well in order to make newly spawned monsters chase their spawner's target.
Christoph Oelckers
2006-08-01 22:11:49 +0000
5ac0789e6e- Added a type check to Spawn(actorname,...) to allow it to print a meaningful message instead of the nondescript 'Tried to spawn a class-less actor'. - Converted AGlassJunk to DECORATE and made the spawn function a little more flexible so that replacing the shard is easier. - Converted ABloodSplatter to DECORATE. - Removed A_Jiggle because it never worked properly. - Changed DECORATE parser to allow commas between arguments for multi- argument properties. For all newly added properties this format will become mandatory but for backwards compatibility it is optional for old ones. - Added a check for negative indices to TAutoGrowArray::SetVal to prevent passing an index of -1 from crashing the game. - Fixed: Morphing must clear the weapon's flash sprite. - Fixed: Resurrecting a morphed player caused a crash. - Fixed: Random sounds that recursively refer to themselves caused a stack overflow. Now they print a warning and get ignored.
Christoph Oelckers
2006-07-31 10:22:53 +0000
d6bc07c3b1- Fixed: Starting a game without skill menu always started the first episode. - Changed A_AlertMonsters so that it can be placed directly in a weapon state. - Fixed: Frozen corpses of stealth monsters were invisible. - Added: Calling Radius_Quake with a tid of 0 now uses the activator as the quake's center.
Christoph Oelckers
2006-07-30 08:31:26 +0000
3f90f1655c- Used the new explosion handling to clean up the old style projectile definitions. The SimpleProjectile class is gone and it uses the meta data and A_ExplodeParms instead now. - Removed the deprecation warnings for explosion parameters again because the new system is fully inheritable and therefore useful. - Changed the explosion properties into meta data and adjusted A_ExplodeParams to use these when called without any parameters. Also removed all special parsing for A_Explode so now this function can be called with expressions like any other function. - Changed DECORATE parsing so that functions with completely optional parameter lists don't create an empty list when called without parameters.
Christoph Oelckers
2006-07-29 10:47:14 +0000
06681ec72d- Version bump to 2.1.4. - Fixed: Friendlies would not turn to face you when you engaged them in conversation, nor would they reliably return to their original facing when you stopped talking to them. - Added deprecation warnings for the DontHurtShooter, ExplosionRadius, and ExplosionDamage actor "properties." They were considered deprecated before; now this is explicitly stated when they are used. The problem with them is that they are not really properties and do not behave like other properties and cannot be inherited, because they are really just an alternate way of specifying parameters for A_Explode. (Anything that currently prints a deprecation warning will be removed completely in 2.2.0, which will be the version where custom state labels make their debut.)
2.1.4
Randy Heit
2006-07-29 01:26:24 +0000
f203219d24- Changed player sprite translation for the menu so that it uses a regular translation table instead of a local custom buffer. - Fixed: ResetBaggage must set MeleeDamage to 0.
Christoph Oelckers
2006-07-26 09:50:17 +0000
35d79553b2- Made SafeReadMemory() in i_crash.cpp more readable.
Randy Heit
2006-07-21 22:36:39 +0000
f7a8653196- Here's something MinGW users will probably like: i_crash.cpp no longer needs dbghelp.h if you compile with GCC.
Randy Heit
2006-07-21 22:28:54 +0000
361f855de0- Added some simple translucency map analysis for BOOM maps to more intelligently pick the value to use for TranslucentLine's second argument. - Added a queryiwad_key cvar to control which key can force the IWAD selection to appear. It can be either "shift" or "control". Any other value will disable its functionality. - Fixed: A_SkullPop() and A_FreezeDeathChunks() did not transfer the player's inventory to the new dismembered head "player".
Randy Heit
2006-07-20 05:13:39 +0000
6d389c6b7d- Fixed: C_midPrint() needs a NULL status bar check.
Randy Heit
2006-07-19 16:00:44 +0000
b1989b4d34- Fixed: PClass::CreateDerivedClass forgot to NULL FActorInfo::Replacee.
Christoph Oelckers
2006-07-18 23:09:11 +0000
f95e70654cVersion bump for 2.1.3.
2.1.3
Randy Heit
2006-07-18 00:12:34 +0000
3da76cd73cSize optimized the pngs in zdoom.pk3 using pngout and deflopt.
Randy Heit
2006-07-17 02:19:09 +0000
c32b9df059- Fixed: S_ClearSoundData cleared PlayerClasses instead of PlayerClassLookups.
Christoph Oelckers
2006-07-16 23:03:39 +0000
1ff4d09bed- Added NecroMage's submission for bitwise/shift assignment operators for ACS.
Christoph Oelckers
2006-07-16 20:13:24 +0000
e5a26c75fa- Added replacement handling to A_BossDeath.
Christoph Oelckers
2006-07-16 15:00:10 +0000
93cd78ebfb- Fixed: The check for no skill menu was incorrect when a custom player class menu was present so instead of starting the game specific skill menu it always started Hexen's. - Fixed: When a non-player tried to play a player sound it tried to access the actor object as an APlayerPawn. - Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the HereticPlayer to use the same animation as PlayAttacking2. Now the special handling for Heretic in the FireWeapon functions can be removed.
Christoph Oelckers
2006-07-16 10:23:14 +0000