Commit graph

3284 commits

Author SHA1 Message Date
Randy Heit
d50a16a847 - Fixed: The AmmoPerAttack table was filled with the function pointers before the functions
were created, so they were all NULL, and the Dehacked ammo modification loop failed to
  find any of them in the weapon. The result being that all standard weapons were left with an
  AmmoUse1 of 0.

SVN r3925 (scripting)
2012-10-30 02:09:57 +00:00
Randy Heit
80782d7e5e - Fixed: Because PClass is a child of DObject now, attempts to serialize them get caught by
the DObject serialization template. Therefore, FArchive::SerializeObject() needs to be
  able to handle them specially from other objects.

SVN r3924 (scripting)
2012-10-30 01:38:05 +00:00
Randy Heit
e7168b3a51 - Transform the Actor Damage functions to/from an integer for saving. (I am occasionally
encountering unknown class "None" when loading now, which is not so nice.)

SVN r3923 (scripting)
2012-10-29 01:13:26 +00:00
Randy Heit
c2e700f116 - Move the RET and RETI final flag into the high bit of the destination selector.
SVN r3922 (scripting)
2012-10-29 01:11:24 +00:00
Randy Heit
35ba5b79d3 - Added a NULL Defaults check to PClassActor::PropagateMark().
SVN r3921 (scripting)
2012-10-29 00:42:58 +00:00
Christoph Oelckers
b630410372 - fixed: CreateDamageFunction needs to return NULL for a damage value of 0 to preserve the collision detection handling of non-damaging actors.
SVN r3920 (scripting)
2012-10-28 06:56:56 +00:00
Randy Heit
6e88529324 - Added a RETI instruction for returning 15-bit signed immediate values.
- Changed Actor's Damage property into an actual function. All access to the damage property
  must now be done through GetMissileDamage. actor->GetMissileDamage(0, 1) is equivalent
  to the former actor->Damage, for the case where actor->Damage was not an expression. (I
  suppose I will probably need to make a thunk for DECORATE expressions that want to read it.)
- Cleaned up some decorate expression evaluation functions that are no longer used.

SVN r3919 (scripting)
2012-10-28 04:36:52 +00:00
Randy Heit
5e184260ac - Fixed: FastProjectile's missile height needs to be initialized to 0.
SVN r3918 (scripting)
2012-10-28 01:26:10 +00:00
Randy Heit
29bc9cbf35 - Change the formatting for floating immediates in the dissasembly to %g.
SVN r3917 (scripting)
2012-10-28 01:16:01 +00:00
Randy Heit
31ab5ed866 - Added zcc-parse.c dependency to CMakeLists.txt
SVN r3916 (scripting)
2012-10-27 03:56:44 +00:00
Randy Heit
be27e68fc4 - Fixed: A_BrainSpit's parameter is optional.
SVN r3915 (scripting)
2012-10-27 02:37:40 +00:00
Randy Heit
e6b150bab9 - Fixed: A_Explode should always perform the distance <= 0 check, not just when damage < 0.
SVN r3914 (scripting)
2012-10-27 02:13:53 +00:00
Randy Heit
7171281507 - Compatibility fix: Classes redefined in DECORATE should cause the newer one to replace the
older one in the type table.

SVN r3913 (scripting)
2012-10-27 02:04:35 +00:00
Randy Heit
5b8a54e5ee - Fixed: Inventory's AltHUDIcon must be initialized to null, not invalid.
SVN r3912 (scripting)
2012-10-27 01:37:10 +00:00
Randy Heit
110c253854 - Silence GCC warning stuffs.
SVN r3911 (scripting)
2012-10-26 22:56:50 +00:00
Randy Heit
ac251cfe80 - Fixed: FxCompareEq::Emit()'s output must be in an integer register.
SVN r3910 (scripting)
2012-10-26 20:27:49 +00:00
Randy Heit
83480fd7f3 - Fixed: A_CustomMissile's pitch argument is an angle, not an int.
SVN r3909 (scripting)
2012-10-26 20:12:55 +00:00
Randy Heit
aade32a749 - Add PClass::AllClasses to the list of root items for the GC. Failure to do so will cause any
actors with names that conflicted with preceding actors from being freed, even though they
  can still be accessed via PClassActor::AllActorClasses, which gets iterated over in a number
  of places. (e.g. Zen Dynamics defines a Grenade actor, although there is one in zdoom.pk3 now.
  The Zen Dynamics' version would not go in the TypeTable, so it would be collected on map load,
  leading to a crash when attempts to access it through AllActorClasses are made.)

SVN r3908 (scripting)
2012-10-26 19:52:24 +00:00
Randy Heit
1a02d16356 - Added DecoFindSingleNameState for the extremely common case of finding a state with only
one name in its label. This avoids the alloca and security cookie calls.
- Consolidated lots of copy-pasted code in thingdef_expression.cpp to install helper functions
  into FindDecorateBuiltinFunction().

SVN r3907 (scripting)
2012-10-26 04:04:06 +00:00
Randy Heit
5c6bf0aeb4 - Fixed: FxCompareEq::Emit() needs to allocate the output register before freeing the inputs.
SVN r3906 (scripting)
2012-10-25 03:56:09 +00:00
Randy Heit
79228e4331 - Fixed: The disassembly for jmp opcodes displayed the wrong address.
SVN r3904 (scripting)
2012-10-23 04:05:45 +00:00
Randy Heit
0dae6527ad - Fixed: FxCompareRel::Emit() needs to allocate the output register before freeing either of
the operands.

SVN r3903 (scripting)
2012-10-23 03:19:26 +00:00
Randy Heit
d0c91083bc - Re-jigged DoJump() to not be recursive so that 0-tic A_Jump* loops are no longer
able to potentially blow up the stack.

SVN r3902 (scripting)
2012-10-23 03:19:17 +00:00
Randy Heit
47eec0b275 - Added tracking of time spent specifically in running action functions. I feel kind of stupid
about this now. I spent three days trying to figure out why the VC++ debug version was so slow.
  It turns out I had a conditional breakpoint set in a high-traffic area. D'oh!

The rest of this stuff should get merged into trunk:

- Fixed: Writing to debugfile uses the standard fprintf, which does not understand %td on VC++.
- Fixed: Instead of crashing when a sprite has been scaled to 0, just don't draw it.

SVN r3896 (scripting)
2012-10-21 03:46:17 +00:00
Randy Heit
2c92941f6b - Fixed: FxCompareRel::Emit() generated broken code for floating point operands.
SVN r3895 (scripting)
2012-10-18 04:04:33 +00:00
Randy Heit
c1aefec1e3 - Redo one GCC fix to make it compatible with VC++.
SVN r3894 (scripting)
2012-10-18 03:32:00 +00:00
Randy Heit
38d7b7d203 - Fixed errors and warnings when compiling with GCC. (Unfortunately, the VC++ debug builds
become ungodly slow when using mods with complex DECORATE. The GCC debug builds run just
  fine, however. Hopefully this is something that can be fixed later with an assembly-optimized
  version of the main VM loop, because I don't relish the thought of being stuck with GDB
  for debugging.)
- Fixed: The ACS_Named* action specials were erroneously defined as taking strings instead of
  names.
- Fixed: Copy-paste error caused FxMultiNameState::Emit to generate code that called
  DecoNameToClass instead of DecoFindMultiNameState.
- Updated FxActionSpecialCall::Emit for named script specials.
- Fixed inverted asserts for FxMinusSign::Emit and FxUnaryNotBitwise::Emit.


SVN r3893 (scripting)
2012-10-18 03:19:27 +00:00
Randy Heit
e7efa1d802 - Update to latest version in trunk.
SVN r3890 (scripting)
2012-10-17 04:24:54 +00:00
Braden Obrzut
441f633983 - Moved Sqrt, FixedSqrt, and VectorLength to ACSF_ instead of adding new opcodes.
SVN r3888 (trunk)
2012-10-13 22:55:44 +00:00
Randy Heit
f3b40a9f36 - Fixed: WeaponGiver needs to set the MF_DROPPED flag of the spawned weapon to match its own (so
that it can't be used as an infinite source of ammo when sv_weaponstay is true).
- Fixed: WeaponGiver should not remember the given weapon after it is picked up (to avoid giving
  a weapon owned by one player to a different player when sv_weaponstay is true).

SVN r3886 (trunk)
2012-10-11 04:38:52 +00:00
Randy Heit
81ce8b28f2 - Added the Inventory flag IF_NEVERRESPAWN.
SVN r3885 (trunk)
2012-10-11 04:12:35 +00:00
Randy Heit
924cd3ef38 - Added sqrt, fixedsqrt, and vectorlength to ACS.
SVN r3883 (trunk)
2012-10-11 03:38:12 +00:00
Braden Obrzut
5011a0dede - Fixed: FString::Insert copied too many charactes.
SVN r3882 (trunk)
2012-10-09 23:05:59 +00:00
Randy Heit
934c27d34a - Fixed: R_GetColumn() needs to clamp negative column indexes to be inside the texture if the
texture's width isn't a power of 2.

SVN r3881 (trunk)
2012-10-05 04:21:34 +00:00
Randy Heit
12e1901150 - Fixed: FListMenuItemPlayerDisplay::Drawer() used the sprite's scale but not the texture's scale.
SVN r3880 (trunk)
2012-10-05 03:48:51 +00:00
Randy Heit
864fb5798e - Added desaturated translation support to ACS.
SVN r3878 (trunk)
2012-09-20 02:14:43 +00:00
Randy Heit
9a28216e30 - Added HUDMSG_ALPHA flag. To use alpha with hud messages, you now need to include this flag,
so old mods with extra arguments to hudmessage don't produce unexpected results.

SVN r3876 (trunk)
2012-09-20 02:06:50 +00:00
Randy Heit
d28ebe543b - Changed FRemapTable::AddDesaturation() to take doubles as parameters, since the C ABI always
passes doubles to functions anyway.
- Fixed: FRemapTable::AddDesaturation() excluded the final entry from the loop. Also, it was
  less forgiving than AddColorRange, in that it did not support ranges in descending order.

SVN r3875 (trunk)
2012-09-19 01:45:00 +00:00
Randy Heit
a0f19fc788 - Fixed: When P_MoveThing() moves the current camera, it also needs to reset the view interpolation.
SVN r3874 (trunk)
2012-09-16 04:59:01 +00:00
Randy Heit
44b1879553 - Increased max resolution to 5760x3600, which is enough to do 2x supersampling on the currently
largest resolution monitors available (which is the MacBook Pro with Retina Display's 2880x1800).

SVN r3873 (trunk)
2012-09-16 04:51:28 +00:00
Randy Heit
11ca707485 - Added vid_maxfps cvar to limit the frame rate to some arbitrary rate between 35 and 1000 FPS. It
defaults to 200. Setting it to 0 will restore the previous behavior of having no frame rate
  limit. Note that vid_maxfps 35 is NOT the same as cl_capfps 1. cl_capfps caps the frame rate
  by tying the video update directly to the game timer. With vid_maxfps 35, the video update and
  game timer are running on separate timers, and results will not be as good as with cl_capfps 1,
  which uses only one timer.

SVN r3872 (trunk)
2012-09-16 04:40:56 +00:00
Randy Heit
1e234c9853 - Disable the teleports on lines 1107 and 1108 of nukemine.wad E1M2 so that the map is completable.
SVN r3871 (trunk)
2012-09-14 03:02:51 +00:00
Randy Heit
077feefb0b - Fixed one small copy-paste error in decaldef.txt for SnakeScorch22.
SVN r3870 (trunk)
2012-09-11 01:42:01 +00:00
Randy Heit
8f81f57ce7 - Don't notify when other players use the chasecam in deathmatch.
SVN r3869 (trunk)
2012-09-09 03:07:41 +00:00
Randy Heit
a2c761bee6 - The chasecam is now only considered a cheat for deathmatch mode. (For that, there is still
the sv_chasecam flag in dmflags2.)

SVN r3868 (trunk)
2012-09-09 03:01:49 +00:00
Randy Heit
9f3a93bfd2 - Added compatibility setting for Community Chest 3, map03.
SVN r3867 (trunk)
2012-09-09 02:58:37 +00:00
Randy Heit
c4859261ab - Reformatted the info ccmd to be less verbose.
SVN r3866 (trunk)
2012-09-09 02:36:53 +00:00
Randy Heit
a33b2fe2d5 - Daedalus maps 31 and 32 don't need compatibility settings.
SVN r3865 (trunk)
2012-09-09 01:50:45 +00:00
Randy Heit
7a99d28e8c - Added compatibility entries for Daedalus to fix SPAC_Push-triggered lines that aren't actually pushable.
SVN r3864 (trunk)
2012-09-08 03:41:31 +00:00
Randy Heit
a77705e04e - Added A_JumpIfTargetOutsideMeleeRange and A_JumpIfTargetInsideMeleeRange because I thought
I could be clever and have the beggar chase after you some after you attack him, with a
  random chance to cease pursuit. However, that didn't look much different from his normal
  wandering animation, and he usually gave up before getting anywhere near you, so it was
  kind of pointless. I kept the action functions around anyway, since they're simple things that
  somebody else might find useful.
- Added a melee range check to A_SentinelRefire for actors without missile states. This fixes
  Strife's Beggar trying to attack you when you're nowhere near him.

SVN r3863 (trunk)
2012-09-06 03:36:25 +00:00