Commit graph

4973 commits

Author SHA1 Message Date
Randy Heit
649875b17e Add if/else blocks for action sequences
- So now you can do something like this for an action:
    {
      if (health > 1000)
      {
        A_Scream;
      }
      else
      {
        A_XScream;
      }
    }
  Yes, the braces are required. Because I see too many instances where
  somebody writes an if statement in ACS and doesn't understand why it
  doesn't work right because they forgot braces.
- Fixed: Not actually putting an action between { and } would crash.
2015-01-08 21:36:42 -06:00
Christoph Oelckers
67b68e6b48 Merge branch 'pillar_tag0' of https://github.com/edward-san/zdoom 2015-01-08 20:00:43 +01:00
Edoardo Prezioso
c3c22315d9 - Added zero tag handling for Pillar actions.
Pillar actions will refer to the back sector if the tag is set to 0.
2015-01-08 19:52:23 +01:00
alexey.lysiuk
f3cc872677 Added Retina/HiDPI option to video mode menu (OS X only) 2015-01-08 12:50:23 +02:00
Randy Heit
7d0faa5bd5 Allow multiple actions per frame
- You can now call several actions from one frame by grouping them between
  curly braces. i.e. :
   POSS G 3 { A_Pain; A_Log("Ow! That hurt!"); }
  I will probably add an `if (something) { blah; blah; } else { wah; wah; }`
  construct later, but that's the extent of the munging I plan for DECORATE. The
  real work goes to the scripting language, not here. But if this branch is
  getting merged to master sooner than later, here's an immediate benefit
  from it right now.
2015-01-07 22:42:03 -06:00
Randy Heit
9044ac9503 Don't free non-registers.
- Fixed: ExpEmit::Free() would try to free REGT_NIL registers, which
  don't really exist
2015-01-07 22:31:48 -06:00
alexey.lysiuk
83c6798651 Fixed a very slim chance that window will be white and empty after startup
There are a few quite specific steps to reproduce this issue:
* 640x480 video resolution
* -iwad ... -warp ... command line parameters
* OS X 10.4 or 10.5 PowerPC, maybe performance related
When all these requirements are met, content view doesn't show up sometimes
The simplest solution for this issue is to set initial window size to non-existent video resolution
2015-01-07 14:50:55 +02:00
Randy Heit
00274c5e4c Split action parsing out of ParseStates() and into ParseAction() 2015-01-06 20:02:22 -06:00
Randy Heit
910451a351 Return a FxVMFunctionCall from DoActionSpecials()
- DoActionSpecials no longer sets the function call in FStateTempCall.
  Instead, it returns the function so the caller can do it.
2015-01-06 19:50:01 -06:00
Randy Heit
320fb9aec5 Allow empty parameter lists for action functions without parameters
- Using A_Scream() in a state instead of A_Scream is now valid.
2015-01-06 19:44:20 -06:00
Randy Heit
f71b1a8983 Whoops. 2015-01-06 19:34:11 -06:00
Randy Heit
b2abf224b5 Save function name for error message in ParseStates()
- The error "You cannot pass parameters to..." used the most recent token,
  which was always ( and not the function name. (Note that this was
  already fixed in the scripting branch, so this is probably going to be a
  conflict. Meh.)
2015-01-06 19:31:00 -06:00
Edoardo Prezioso
4ea918ab3b - Fixed bad characters in the info command string. 2015-01-06 23:16:25 +01:00
Christoph Oelckers
95496cdb4d Merge branch 'additions' of https://github.com/MajorCooke/zdoom 2015-01-06 19:05:56 +01:00
MajorCooke
643d37ab7c - Added A_SetFloatBobPhase(int). Takes a number between 0 and 63. If it's outside that range, it does nothing.
- Added A_Warp flags:
- WARPF_BOB: Gets the bob offset of actor pointer with the FLOATBOB flag.
- WARPF_MOVEPTR: The function is inversed to move the pointed actor with applied flags, but only the original caller will make the success/jump.
2015-01-06 11:55:41 -06:00
alexey.lysiuk
86b2a8530b Fixed launching with additional arguments from IWAD picker on OS X 10.4 2015-01-06 17:08:09 +02:00
alexey.lysiuk
1a69221f80 Removed trailing tab characters in Cocoa IWAD picker 2015-01-06 17:08:01 +02:00
Christoph Oelckers
dac2ae6411 Merge branch 'lorefix' of https://github.com/MajorCooke/zdoom 2015-01-06 15:55:22 +01:00
MajorCooke
f374cf514d - Fixed: Lore Shot didn't take DONTTHRUST into account. 2015-01-06 08:20:13 -06:00
Christoph Oelckers
2095f5ddf4 Merge branch 'osx_improvements' of https://github.com/alexey-lysiuk/gzdoom 2015-01-06 15:04:28 +01:00
alexey.lysiuk
324a1a7b77 Added support for dynamic device attachment and removal to IOKit gaming controllers handling 2015-01-06 13:40:39 +02:00
Edoardo Prezioso
4aac586dd8 - Fixed another erroneous FString comparison.
A comparison between an FString object and 'NULL' doesn't check for the emptiness of the examined string.
2015-01-05 23:37:40 +01:00
alexey.lysiuk
04d3802960 Fixed build issue with OS X SDK 10.4 2015-01-05 18:12:07 +02:00
alexey.lysiuk
b59fc59539 Added missing header comment 2015-01-05 17:26:06 +02:00
alexey.lysiuk
cb681aad2d Rearranged header files and #include's
Removed unused OS version check
Reduced number of headers
Fixed build with SDK 10.4
2015-01-05 17:24:54 +02:00
alexey.lysiuk
d418648e59 Fixed compiler warning with format string parameter 2015-01-05 15:46:57 +02:00
alexey.lysiuk
31d232e886 Added polling of analog axes to IOKit gaming controllers handling
This feature helps a lot with buggy gamepads that constantly generate events from "sticky" hats/sticks
Polling is enabled by default, use joy_axespolling CVAR to turn it on/off
2015-01-05 13:22:53 +02:00
nashmuhandes
2b12db153b New functions to manipulate an actor's roll.
- DECORATE functions: A_SetRoll code pointer.
- DECORATE expressions: "roll" variable.
- ACS functions: SetActorRoll, GetActorRoll.
2015-01-05 17:51:32 +08:00
unknown
f03e05d69f Merge branch 'joystick_pure_iokit' of https://github.com/alexey-lysiuk/gzdoom 2015-01-04 18:09:42 +01:00
unknown
d0ec3180c8 Merge branch 'master' of https://github.com/Blue-Shadow/zdoom 2015-01-04 18:07:49 +01:00
alexey.lysiuk
aa1f51d3d2 Reimplemented gaming controllers support in native OS X backend using pure IOKit 2015-01-04 14:08:53 +02:00
Randy Heit
8c105ff3a0 Use FxVMFunctionCall in FStateTempCall
- Leveraging FxVMFunctionCall simplifies FinishThingdef() slightly.
2015-01-03 22:45:11 -06:00
Randy Heit
86986446a5 Fixed: TicSpecial could run out of space when writing data
- Fixed: TicSpecial::CheckSpace() never thought it ran out of space due to
  unsigned math.
- Fixed: TicSpecial::GetMoreSpace() assumed only relatively small amounts
  of data would be written at a time so made no effort to ensure it
  actually got enough space. This assumption could be violated by writing
  a very long string, which can happen when replicating a string cvar.
2015-01-01 17:57:09 -06:00
Blue-Shadow
ba3988290c Added an option to A_Check[SightOr]Range to be able to perform a 2D-based distance check. 2015-01-01 22:16:51 +03:00
alexey.lysiuk
26cf383ead Fixed incorrect volume levels of Timidity instruments
With Emulate TiMidity option on (midi_timiditylike CVAR set to true) GUS emulation tried to output tones with infinite volumes
2014-12-31 12:48:18 +02:00
alexey.lysiuk
2900f03fa1 Merge branch 'master' of https://github.com/rheit/zdoom into z_osx_refactor 2014-12-31 11:17:45 +02:00
Christoph Oelckers
c57cc91d7c - cleaned up the RipLevel logic a bit to be less confusing. 2014-12-31 10:13:15 +01:00
Randy Heit
85a2042394 Reimplement CheckClass and IsPointerEqual functions
- The definition of FxGlobalFunctionCall_CheckClass was big and scary. I
  would say this is a big improvement, since now it gets to leverage the
  same framework that action functions use.
- The definition of FxGlobalFunctionCall_IsPointerEqual was not so big and
  scary, so this can't be called so much of an improvement as
  CheckClass was. (Which is not to say that it isn't better anyway.)
2014-12-30 23:36:56 -06:00
Randy Heit
c6c2b21901 Add FxVMFunctionCall class
- This replaces the general extensibility that had existed formerly
  in thingdef_function.cpp. Parameter parsing for function calls is
  shared with state parameter parsing. Functions are defined exactly in
  the same way as action functions, but without the 'action' keyword.
2014-12-30 23:31:07 -06:00
Randy Heit
9e3ed70021 Add non-action function parsing to the DECORATE parser 2014-12-30 21:15:48 -06:00
MajorCooke
4ddfd0f46a - Added 3 new properties and 3 functions to control them.
- Rippers will rip through anything with an equivalent ripper level, or if their level is between or on the min and max ranges.
- If no min or max is defined, it simply checks if the monster's ripper level is lower than the missiles.
- Functions: A_SetRipperLevel(int level), A_SetRipMin(int min), A_SetRipMax(int max)
- Properties: RipperLevel, RipLevelMin, and RipLevelMax.
- RipperLevel: Applicable to monsters and projectiles.
- RipLevelMin and RipLevelMax are only useful on monsters.
- By default, all are 0.
2014-12-30 19:59:31 -06:00
alexey.lysiuk
68dbd56eab Small cleanup in i_video.mm 2014-12-29 18:03:36 +02:00
alexey.lysiuk
5c88364300 Merge branch 'master' of https://github.com/rheit/zdoom into z_osx_refactor 2014-12-29 12:17:14 +02:00
alexey.lysiuk
1c102ef9c9 Internals of native OS X backend event processing are no longer exposed 2014-12-29 12:16:17 +02:00
alexey.lysiuk
21d557ee11 Further cleanup of i_main.mm 2014-12-29 12:10:18 +02:00
alexey.lysiuk
e3f92db395 Custom cursor in OS native backend without global variable 2014-12-29 11:34:57 +02:00
alexey.lysiuk
51afe8a541 Removed explicit release of window in Cocoa IVideo implementation
It caused a crash on older OS X like 10.5 and it absence doesn't lead to a memory leak
2014-12-29 10:29:16 +02:00
Christoph Oelckers
b5d0c5c357 - fixed: When a player drops his inventory, the dropped weapons must be checked for their class to ensure that they are not DehackedPickups which cannot be modified as intended. 2014-12-28 22:15:12 +01:00
alexey.lysiuk
4662069b94 Fixed compilation issues with GCC 4.2 2014-12-28 17:11:30 +02:00
alexey.lysiuk
a67dc4148b Split implementation of native OS X backend into several files 2014-12-28 16:35:00 +02:00