Commit graph

3004 commits

Author SHA1 Message Date
Randy Heit
e5e1ee00a6 - Handle ACS string escape sequences at load time rather than print time.
- Fixed: FBehavior::FindStringInChunk() was not big-endian safe.
- Fixed: FBehavior::LookupString() was not big-endian safe.

SVN r3406 (trunk)
2012-03-08 21:37:34 +00:00
Randy Heit
5f88d2c9f0 - All ACS debugging messages are now aware of named scripts.
- Identify script types by name in FBehavior::StaticStartTypedScripts().

SVN r3405 (trunk)
2012-03-08 20:48:53 +00:00
Christoph Oelckers
d3981197c5 - moved the FRenderer::StateChanged call from AActor::StaticSpawn to AActor::PostBeginPlay.
- ensured that all classes reach AActor's PostBeginPlay method. Some were missing a Super call.


SVN r3404 (trunk)
2012-03-07 01:03:56 +00:00
Randy Heit
f2f9bd800d - Fixed: When processing the SFLG and SVCT chunks in ACS objects, the script number must be
read as a signed integer.

SVN r3402 (trunk)
2012-03-04 03:18:06 +00:00
Randy Heit
64fb6410cf - Fixed: FStringTable::operator[] would crash when passed a NULL string pointer.
SVN r3401 (trunk)
2012-03-03 03:19:29 +00:00
Randy Heit
676ce338b1 - Fixed: The game would lockup when using the override polyobject specials with cyclical chains
of mirrored polyobjects. Fixing this has also removed lots of duplicated code for mirrored
  polyobjects.

SVN r3400 (trunk)
2012-03-02 02:23:37 +00:00
Randy Heit
f6c1c0e2df - Truncate rotating polyobjects to 7 bits of fractional precision per vertex.
Fixes known cases of freezing.

SVN r3399 (trunk)
2012-02-28 03:05:31 +00:00
Randy Heit
64e992f648 - Remove seeker missile restriction from A_JumpIfTracerCloser.
SVN r3398 (trunk)
2012-02-28 02:19:57 +00:00
Randy Heit
0fc6d9a0c6 - Unload all bound camera textures when FCanvasTextureInfo::EmptyList() is called.
SVN r3397 (trunk)
2012-02-28 02:17:29 +00:00
Randy Heit
fcb0840246 - Fixed: The DConversationMenu constructor is not the appropriate place to set menuactive to
MENU_OnNoPause.

SVN r3396 (trunk)
2012-02-28 02:07:06 +00:00
Randy Heit
d59280eadb - Preserve the MF_BLOCKED flag on level-spawned actors that have it in their default properties.
SVN r3395 (trunk)
2012-02-28 01:54:35 +00:00
Randy Heit
1e21ebad5d - Let puke and pukename take up to four script parameters.
- Pass ACS_ExecuteWithResult's fifth argument as a fourth script parameter.
- Simplify P_StartScript()'s usage.

SVN r3394 (trunk)
2012-02-26 03:36:05 +00:00
Randy Heit
3fae0e3906 - Enable arg0str for UDMF things and named scripts.
SVN r3390 (trunk)
2012-02-26 02:32:45 +00:00
Randy Heit
7106c06811 - Allow for ACS_NamedExecute and friends to be used with SetThingSpecial.
SVN r3389 (trunk)
2012-02-26 02:25:33 +00:00
Randy Heit
87f23f6d38 - Use a signed integer for the script number when loading the transitional ACS binary format
in order to be congruent with the present-day binary format.

SVN r3388 (trunk)
2012-02-26 02:10:32 +00:00
Randy Heit
cf0f0b964a SVN r3387 (trunk) 2012-02-26 00:13:59 +00:00
Randy Heit
77a4b9a29b - Give actors modified via Dehacked than CANUSEWALLS flag, whether they look like monsters
at first glance or not.

SVN r3386 (trunk)
2012-02-23 03:24:13 +00:00
Randy Heit
22dfc82338 - Use the same darkening amount for default blood and custom blood particles.
- Cache particle colors so custom particle colors don't require a full scan of the palette each
  time they're created. Also fixes a bug with custom blood colors.

SVN r3385 (trunk)
2012-02-23 02:50:36 +00:00
Randy Heit
9457a1b3f8 - So, apparently the XMIDI library uses a fixed 120 Hz clock for MIDI events. As a result, we
should ignore any tempo events in XMIDI songs that were left over from the original MIDI
  files, since the converter didn't remove them.

SVN r3384 (trunk)
2012-02-23 02:22:56 +00:00
Randy Heit
c3dba9ca9a - Added writemidi console command. If the currently playing song is a MIDI variant, this will
write it to disk.

SVN r3383 (trunk)
2012-02-22 03:28:33 +00:00
Randy Heit
d3ad8ca3d8 - Fixed: XMISong::ProcessInitialMetaEvents() did not set the Division for tempo events. (Why
does XMI modify the division based on the tempo?)

SVN r3382 (trunk)
2012-02-22 02:05:12 +00:00
Randy Heit
d6e898be38 - Fixed: UDMFParser::AddUserKey() checked against the wrong token types when determining
the values type. Also, GetUDMFInt() performed a float-to-fixed conversion on the value it
  returned.

SVN r3381 (trunk)
2012-02-21 22:11:52 +00:00
Randy Heit
472ac1b07c - Fixed: The nodebuilder is highly likely to renumber vertices, so we need to remember how the
original vertices map to the new ones until after vertex slopes are handled.

SVN r3380 (trunk)
2012-02-21 21:52:42 +00:00
Randy Heit
514f29a34a - Added Gez's custom flechettes patch, with ArtiPoisonBag4 renamed to ArtiPoisonBagGiver and
ArtiPoisonBag5 renamed to ArtiPoisonBagShooter.

SVN r3379 (trunk)
2012-02-21 20:58:33 +00:00
Randy Heit
2918a87479 - Added Gez's thrupushups fix.
SVN r3378 (trunk)
2012-02-21 20:50:38 +00:00
Randy Heit
170284ad57 - Added Gez's HMI/XMI division fixes, and partially the XMI tempo fix (not currently used).
SVN r3377 (trunk)
2012-02-21 20:19:25 +00:00
Randy Heit
91ba2ec404 - Fix strife linetype 11 again, courtesy of Gez.
SVN r3376 (trunk)
2012-02-21 19:56:25 +00:00
Randy Heit
d54f9c3616 - Added startup screen customization, courtesy of Gez.
SVN r3375 (trunk)
2012-02-21 19:52:40 +00:00
Randy Heit
67bbc0f95c - Print named script's names for the scriptstat console command.
SVN r3374 (trunk)
2012-02-21 19:27:30 +00:00
Randy Heit
7b5612c45a - Added ACS_NamedExecuteWithResult for DECORATE expressions. Since this is a pretty long name,
you can also use CallACS, if you wish. The two are synonyms.

SVN r3373 (trunk)
2012-02-21 19:24:02 +00:00
Randy Heit
d9b8b344ff - Added support for using named scripts with UDMF maps. On lines with ACS specials
(i.e. ACS_Execute, etc.), set the arg0str property to the name of the script to execute. The
  standard numeric arg0 property will be ignored in this case.

SVN r3372 (trunk)
2012-02-18 02:39:01 +00:00
Randy Heit
cbf7162e16 - Allow for using ACS_NamedExecute and friends with SetLineSpecial.
SVN r3371 (trunk)
2012-02-18 02:17:33 +00:00
Braden Obrzut
9cd0e48ea3 - Fixed: Forgot to initialize inventoryItem to NULL in DrawBar.
SVN r3370 (trunk)
2012-02-18 02:01:28 +00:00
Braden Obrzut
449bd90121 - Fixed: Runtime error on Mac OS X. For whatever reason merely having the call to CFUserNotificationDisplayAlert() in I_FatalError caused exception handling to quit working. Moving it to a separate file seems to fix this. Also removed the warning about FRenderer having a non-virtual destructor.
SVN r3367 (trunk)
2012-02-16 22:58:17 +00:00
Randy Heit
8f516a1007 - Added pukename console command. This is mostly the same as puke, except the scripts are
named, and to run a script using ACS_ExecuteAlways, you need to add "always" after the script
  name but before any arguments. e.g.:
    pukename "A Script" 1
  Will run the script "A Script" with a single argument of 1, provided the script is not 
  already running.
    pukename "A Script" always 1
  Will always run the script "A Script" with a single argument of 1.

SVN r3365 (trunk)
2012-02-16 22:13:46 +00:00
Randy Heit
7561beb212 - Added action functions that work with script names instead of script numbers. They are
named the same as their ACS function equivalents. e.g. From DECORATE, you can now use
  ACS_NamedExecuteAlways to run a script with a name.

SVN r3364 (trunk)
2012-02-16 21:49:09 +00:00
Randy Heit
4195993023 - Make deferred scripts work with named scripts.
- Added ACS_Named* function variants of the ACS_* specials that take script names instead of
  numbers. As these are functions and not specials, they can only be used from inside ACS.

SVN r3363 (trunk)
2012-02-16 21:23:03 +00:00
Braden Obrzut
6f17e0f51b - Fixed: Mac universal binary build. (I actually just realized that my DRDTeam build script ended up just working because of this modification.)
SVN r3362 (trunk)
2012-02-16 20:18:46 +00:00
Braden Obrzut
da974c3444 - Allow any parameterized SBarInfo value to use parentheses to help make the syntax a little more consistent.
SVN r3361 (trunk)
2012-02-16 05:01:17 +00:00
Braden Obrzut
25b73ac023 - Added ability to use a constant for the maximum comparator for health and armor drawbars.
SVN r3360 (trunk)
2012-02-16 04:21:43 +00:00
Randy Heit
9ffb4c40ac - Added support for loading named ACS scripts. You can't run them directly at the moment, but
you can still use them for automatically executed script types (like open and enter).
- Change the DACSThinker::RunningScripts array into a TMap so that it can catalog the new range
  of ACS scripts (up to 32767).


SVN r3359 (trunk)
2012-02-15 02:18:30 +00:00
Randy Heit
ebd115e7ca - Removed snd_3dspread, because it totally does not do what I want. I was using it to preserve
some of the stereoness of stereo sounds played in 3D. My testing was done only with stereo
  speakers, however, and I did not realize that it was moving the perceived physical location
  of the sound itself (because it sounded fine with my two speakers). So when 3D spread started
  working with mono sounds as well in FMOD 4.28, sound positioning was completely broken for
  everything when outputting to more than two speakers, because sounds were being spread
  across a 180 degree arc.

  Whoops!

  Stereo sounds are now completely mono when not played by you, the listener.

SVN r3357 (trunk)
2012-02-14 03:15:13 +00:00
Randy Heit
5a95c997d1 - Added keys on the automap for Heretic in easy mode, courtesy of Gez.
SVN r3356 (trunk)
2012-02-12 02:45:48 +00:00
Randy Heit
540473cbe0 - Fixed: Sound limiting applied even to sounds that were already playing on the same
actor+channel. Since in this case, it's really just restarting the sound, it shouldn't limit
  it. (Since it's already playing, we know the limit wasn't exceeded when it started playing, so
  it shouldn't be exceeded if we restart it now.)


SVN r3355 (trunk)
2012-02-12 02:41:55 +00:00
Randy Heit
033b3964f1 - Fixed: C_DoKey() must disable all doublebind processing if it isn't passed any doublebindings.
This is because the automap calls it with its own bindings, which effectively cancelled all
  doublebindings while the automap was open.

SVN r3354 (trunk)
2012-02-11 01:44:56 +00:00
Randy Heit
d2c8a86bb4 - Fixed: CheckMobjBlocking() did not consider one-sided lines without the ML_BLOCKING flag to be blocking.
SVN r3353 (trunk)
2012-02-11 01:17:09 +00:00
Randy Heit
cd150bd170 - Fixed: Forgot to divide the length of the SVCT chunks in ACS objects by 4 to get the actual
number of scripts to set VarCount for.

SVN r3352 (trunk)
2012-02-11 01:04:42 +00:00
Randy Heit
e4728ba6f0 - Fixed: DCanvas::DrawTextV needs to accept the entire tag list in one parameter. Otherwise, it
can't pass it to DrawTexture with a simple TAG_MORE. (Not sure why I thought the initial tag
  needed to be separate, though it did catch one case where it wasn't provided.)

SVN r3351 (trunk)
2012-02-11 00:15:03 +00:00
Randy Heit
68fbd75897 - Fixed compilation with FMOD 4.38+. The removal of hardware voices and EAX was a fairly
major change, so I'm making no provisions for using older FMOD DLLs when compiled with the
  4.38 API. However, sound positioning is still broken like in 4.28, so you are recommended
  to continue building with 4.26. Also, the Freeverb-based DSP unit is no longer present in
  FMOD, so the underwater effect is currently unavailable when using 4.38 until I can figure
  out how to make it work with the SFX Reverb unit instead. (And on that topic, the Freeverb
  DSP was officially only for stereo outputs, so I really shouldn't have been using it in the
  first place.)
- Since I would like to eventually figure out the sound positioning issues with the newer
  FMODs, the following have been added:
  * snd_drawoutput now labels its outputs with the speakers they represent.
  * DCanvas::DrawTextA was added as an alias for DrawText, since the Windows headers #define
    DrawText to a Unicode/non-Unicode variant.
  * The loopsound console command was added to spawn an actor at the player's location and
    have it loop a sound infinitely.
  Hopefully I can figure it out. FMOD's 3D example works, so I assume the problem lies with
  my code, though I don't really know where to begin looking for the problem.

SVN r3350 (trunk)
2012-02-10 00:53:50 +00:00
Christoph Oelckers
5d7ee4dbfd - fixed: Line type 49 was wrong for all games. Fixed by adding a new Ceiling_CrushAndRaiseDist special. (thanks to Gez for the patch)
SVN r3348 (trunk)
2012-02-09 19:59:32 +00:00