Commit graph

3607 commits

Author SHA1 Message Date
Christoph Oelckers
a7c2346b32 - added a FloatBobPhase property for DECORATE. Now, if FloatBobPhase is anything but -1 it will be used directly as the initial phase, allowing to define actors that bob in sync. The allowed range of phases is 0 - 63. The main reason for this is that each actor spawn called the pr_spawnmobj RNG just to randomize this value which causes problems with non-interactive actors, in particular GZDoom's dynamic lights.
SVN r4296 (trunk)
2013-05-30 08:52:29 +00:00
Randy Heit
0eb72156ed I hope I don't regret doing this so close before I want to do a release, since it's a pretty
major change to ACS's workings. However, I had an epiphany yesterday and just had to do this, since it seems like too big a deal to hold off until a later release:
- Dynamically generated strings returned via strparam and get(user)cvar now last as long as they
  need to. They do not disappear at the end of each tic. You can now safely store them in
  variables and hold on to them indefinitely. In addition, strings from libraries no longer
  require you to load the exact same libraries in the exact same order. You can even store a
  library's string in a world variable and retrieve it on another map that doesn't load the
  library at all, and it will still be the correct string.
- ACS library IDs now only get 12 bits instead of 16 so that each string table can hold up
  to about a million strings instead of just 65536. This shouldn't be a problem, although it
  means that save games that had strings with the larger IDs stored in variables are no
  longer compatible. Since many saves don't involve libraries at all, and even many that do 
  are not actually affected, I'm not bumping the min save version. The worst that can happen
  is that you get no text at all where some was expected.

SVN r4295 (trunk)
2013-05-30 02:22:47 +00:00
Randy Heit
493edd2df0 - Added ACS functions GetCVarString and GetUserCVarString. These act like their non-string
counterparts, except that they return strings. Like strparam, the strings they return are
  only guaranteed to be valid for the tick they are called during. (Note that these work with any
  cvar, not just string ones.)

SVN r4293 (trunk)
2013-05-27 02:41:50 +00:00
Randy Heit
587f1e83ba - Added ACS functions SetCVarString and SetUserCVarString. These work just like their non-string
counterparts except that their value argument is an ACS string. (Note that they work with any
  type of cvar, not just string cvars.)
- Make UCVarValue::String point to a constant string.

SVN r4292 (trunk)
2013-05-27 02:20:32 +00:00
Randy Heit
4a8037d66e - Move bitdepth check outside the loop for grayscale unpacking. Also, don't use a multiply for
1-bit pixels. Use a lookup table for 2-bit pixels, because it's probably faster than a bunch
  of shifts and register juggling.

SVN r4291 (trunk)
2013-05-27 02:04:54 +00:00
Braden Obrzut
f436c02a43 - Fixed more possible NULL derefs from r4264
SVN r4290 (trunk)
2013-05-26 20:56:20 +00:00
Braden Obrzut
b493d8e823 - Just remembered that the true color stuff generates textures differently. Changed the previous commit to expand 1, 2, and 4 bit grayscale images while reading the PNG instead of changing the palette.
SVN r4289 (trunk)
2013-05-26 04:56:52 +00:00
Braden Obrzut
dabd48ab81 - Fixed: 4, 2, and 1 bit grayscale images weren't properly supported.
- Fixed: Valgrind uninitialized memory error and a signed/unsigned warning.

SVN r4288 (trunk)
2013-05-26 04:03:47 +00:00
Randy Heit
17c7c32a58 - Fixed potential uninitialized access in FMapInfoParser::ParseEndGame().
SVN r4287 (trunk)
2013-05-26 02:56:25 +00:00
Randy Heit
ce28c9c991 - Added parentheses for clarity.
SVN r4286 (trunk)
2013-05-26 00:53:48 +00:00
Randy Heit
78437d917c - Added edward850's patch to cope with stalled network games.
SVN r4285 (trunk)
2013-05-25 22:01:26 +00:00
Randy Heit
167ee9e7fb - Added three new ACS functions:
* int GetUserCVar(int playernum, "cvarname")
  * bool SetCVar("cvarname", newvalue)
  * bool SetUserCVar(int playernum, "cvarname", newvalue)
  GetUserCVar is analogous to GetCVar, except it returns the value of a user cvar for a
  specific player. (All user cvars can be examined using the playerinfo console command.)
  SetCVar sets a cvar to a new value. If the cvar is floating point, then newvalue is treated
  as a fixed point number, otherwise it's treated as an integer. SetUserCVar is the same, but
  for a specific player's user cvar.

  SetCVar and SetUserCVar can only change cvars created via CVARINFO. They cannot alter built-in cvars.

  If you use GetCVar or SetCVar with a user cvar, they will act on the copy of the user cvar
  for the player who activated the script. e.g.
    GetCVar("gender")
  is the same as
    GetUserCVar(PlayerNumber(), "gender")

  If you get the value of a floating point cvar, it will be returned as a fixed point number.
  Otherwise, it will be returned as an integer.

SVN r4283 (trunk)
2013-05-25 19:08:05 +00:00
Christoph Oelckers
567fbace22 - re-fixed r4279.
SVN r4282 (trunk)
2013-05-25 18:30:23 +00:00
Randy Heit
4fa198244c - Renamed CVAR_NOSEND to CVAR_IGNORE to better reflect its intent.
- Separated CVAR_MODARCHIVE into CVAR_MOD|CVAR_ARCHIVE so that mod-defined cvars can still be
  identified when they aren't meant to be archived.

SVN r4281 (trunk)
2013-05-25 17:08:59 +00:00
Randy Heit
787b84ef91 - Added CVARINFO lump support. This is a lump for defining mod-specific cvars and takes entries
of the form:
    <scope> [noarchive] <type> <name> [= <defaultvalue>];
  Where <scope> is one of:
  * server: This cvar is shared by all players, and in network games, only select players can
    change it.
  * user: Each player has their own copy of this cvar, which they can change independently.
  To prevent the cvar from being written to the config file, add noarchive to its definition.
  <Type> is one of:
  * int: An integral value. Defaults to 0.
  * float: A value that can include a fraction. Defaults to 0.0.
  * color: A color value. Default to black ("00 00 00").
  * bool: A boolean value that can hold either true or false. Defaults to false.
  * string: A string value. It's not too useful for mods but is included for completeness. Defaults to "".
  <Name> is the cvar's name and must begin with a letter and may only include alphanumeric
  characters and the underscore character.
  If you wish a non-standard default add an = character after the cvar's name followed by the
  default value you want to use. Example:
    server int mymod_coolness = 10;
- Fixed: FStringCVar::SetGenericRepDefault() did not make a copy of the input string.

SVN r4280 (trunk)
2013-05-25 16:34:23 +00:00
Christoph Oelckers
2767f31a92 - fixed: PillarAlienPower must loop its state.
SVN r4279 (trunk)
2013-05-25 16:22:51 +00:00
Randy Heit
e271692dbb - Changed C_ArchiveCVars()'s type parameter to a filter parameter, because using an arbitrary
number to represent a flag combination is stupid unreadable now that there's more than just
  the two possibilities it had when it was first written.

SVN r4278 (trunk)
2013-05-25 03:23:44 +00:00
Randy Heit
20b48b7c65 - Remove now-unused lumpname variable.
SVN r4277 (trunk)
2013-05-25 02:06:34 +00:00
Braden Obrzut
332e39d6c8 - Fixed: Typo in WaterDropOnFloor actor's active sound.
SVN r4276 (trunk)
2013-05-22 21:26:06 +00:00
Braden Obrzut
7fd0950ab9 - Changed the way DrawSelectedInventory is casted so that clang doesn't warn about it.
SVN r4275 (trunk)
2013-05-20 21:27:50 +00:00
Braden Obrzut
5007571732 - Fixed: Possible NULL deref in P_RailAttack.
SVN r4274 (trunk)
2013-05-20 20:47:55 +00:00
Braden Obrzut
1d4fbc05a5 - Fixed: glbsp nodes in a wad file inside a pk3 would not be loaded.
- Fixed: Typo from r4270.

SVN r4273 (trunk)
2013-05-20 20:39:34 +00:00
Randy Heit
8af465189a - Fix broken loading of pre-r4253 savegames.
SVN r4272 (trunk)
2013-05-18 15:38:10 +00:00
Randy Heit
6ada6158ef - Added a fallback for accented characters to use unaccented ones.
- Updated Portuguese strings with the version here: http://forum.zdoom.org/viewtopic.php?p=672839#p672839

SVN r4271 (trunk)
2013-05-17 02:35:35 +00:00
Randy Heit
71f42122bc - Added a definition for OB_MPMAULER1 and removed the needless reference to OB_MPMAULER2.
SVN r4270 (trunk)
2013-05-17 01:22:19 +00:00
Randy Heit
ec7f433da3 - Fixed: Strife line special 200 should also be marked as repeatable.
SVN r4269 (trunk)
2013-05-17 01:06:47 +00:00
Randy Heit
4692e3f69c - Fixed: Strife line special should have been marked repeatable.
SVN r4268 (trunk)
2013-05-17 01:02:43 +00:00
Randy Heit
5b74e1acba - Fixed: A_Face() should use other instead of self->target when calculating pitch.
SVN r4267 (trunk)
2013-05-17 00:49:45 +00:00
Randy Heit
6922049b83 - Redo r4259, because I guess those weren't actually whitespace changes. (Although they looked like it to me.)
SVN r4266 (trunk)
2013-05-14 23:34:24 +00:00
Randy Heit
504496278b - Fixed: FxBinaryInts that needed to cast the right-side parameter to an int resolved the left
side instead.

SVN r4265 (trunk)
2013-05-13 02:55:48 +00:00
Randy Heit
b418f7de8d - Fixed possible NULL pointer derefs in P_LineAttack()
SVN r4264 (trunk)
2013-05-13 02:30:55 +00:00
Randy Heit
894c4198b0 - Fixed possible NULL pointer deref in A_FireBullets
SVN r4263 (trunk)
2013-05-13 02:27:39 +00:00
Randy Heit
20d0cc717b - Fix previous fix: Don't zero the velocity when a missile steps up and bounces.
SVN r4262 (trunk)
2013-05-12 19:05:00 +00:00
Randy Heit
0ef00cdf6e - Fixed: Missiles with STEPMISSILE set should probably be able to bounce off the floor they step up onto.
SVN r4261 (trunk)
2013-05-12 19:02:15 +00:00
Randy Heit
1e32e75eef - Removed the music strings from the Brazilian Portuguese translations. (And apparently some whitespace changes too?)
SVN r4260 (trunk)
2013-05-12 18:43:28 +00:00
Randy Heit
cb7bc7e66c - Fixed: TAG_MINEKEY still contained the underscore character.
SVN r4259 (trunk)
2013-05-12 18:41:44 +00:00
Randy Heit
363ca592b0 - Fixed possible memory leak in the non-Windows version of CreatePath().
SVN r4258 (trunk)
2013-05-12 18:37:31 +00:00
Randy Heit
e8d8e67b56 - Fixed possible NULL pointer deref in P_SpawnPlayerMissile().
SVN r4257 (trunk)
2013-05-12 18:36:03 +00:00
Randy Heit
e935cf9e62 - Fixed possible NULL pointer deref in PrintDLS().
SVN r4256 (trunk)
2013-05-12 18:34:01 +00:00
Randy Heit
c63273348a - Fixed possible NULL pointer deref in A_CustomPunch
SVN r4255 (trunk)
2013-05-12 18:31:36 +00:00
Randy Heit
e130150af0 - Fixed possible NULL pointer deref in AActor::Grind().
SVN r4254 (trunk)
2013-05-12 18:29:28 +00:00
Randy Heit
2668988870 - Switched to a genericly extensible representation for userinfo.
- Fixed: The playerinfo CCMD did not range check the player number.

SVN r4253 (trunk)
2013-05-12 18:27:03 +00:00
Randy Heit
404df07629 - Fixed: The Ironlich lost its Pain state when it was converted to DECORATE.
SVN r4252 (trunk)
2013-05-07 01:57:05 +00:00
Randy Heit
9072c25e65 - Added a big-endian fix for actor flag fields that aren't four bytes wide.
SVN r4251 (trunk)
2013-05-05 00:01:51 +00:00
Randy Heit
40f7abb8e9 - Added bounce states. Set the BOUNCE_UseBounceState flag to use them (+USEBOUNCESTATE via
DECORATE). Then you can use:
  * Bounce
  * Bounce.Floor
  * Bounce.Ceiling
  * Bounce.Wall
  * Bounce.Actor
  * Bounce.Actor.Creature
  Partial matches work just like Pain states, so if an actor bounces off a floor and you don't
  have a Bounce.Floor state, but you do have a Bounce state, it will use the Bounce state.
  Conversely, if you only have a Bounce.Floor state but no Bounce state, then the actor will
  only enter the Bounce.Floor state when it bounces on a floor; bouncing off anything else will
  not cause it to change state.

SVN r4250 (trunk)
2013-05-04 22:52:37 +00:00
Randy Heit
8830d3a07a - Fixed: Ever since r1078, D'Sparil has been too quiet.
SVN r4249 (trunk)
2013-05-04 19:46:38 +00:00
Randy Heit
a5b5172449 - Remove now-unused dropammofactor variable from AWeaponGiver::TryPickup().
SVN r4248 (trunk)
2013-05-04 19:24:24 +00:00
Randy Heit
63704a8b69 - Fixed: r4225 accidentally removed the sky texture check for markceiling disabling.
SVN r4247 (trunk)
2013-05-04 19:08:17 +00:00
Randy Heit
d86b16d540 - Added a DropAmmoFactor field to WeaponGiver so that ModifyDropAmount() can record the drop
amount modifier into it without fiddling with the actual AmmoGiveX fields.

SVN r4246 (trunk)
2013-05-02 00:24:53 +00:00
Randy Heit
163d8ba3e6 - Fixed crash when an actor's spawn state ends by destroying the actor and the first state has
NoDelay set and it only consists of 0-tic states.

SVN r4245 (trunk)
2013-05-02 00:07:56 +00:00