Commit graph

224 commits

Author SHA1 Message Date
Christoph Oelckers
0da233a664 changed ZScript include mechanism.
* It will now use #include, just like most other definition formats and can be mixed with regular definitions. However, due to how the Lemon-generated parser works this will not recursively pull in all files, but store them in a list and process them sequentially. Functionally this shouldn't make a difference, because ZScript is mostly order-independent - the only thing where order is important is native classes, but these are completely internal to zdoom.pk3 where proper order is observed.
2016-12-03 13:16:09 +01:00
Christoph Oelckers
8551a4f6e1 - scriptified the Sigil. This isn't fully tested yet. 2016-11-28 14:39:25 +01:00
Christoph Oelckers
f409a24d2d - fixed: Readonly pointers never were flagged as such.
- fixed: Assignment from a readonly to a read-allowed pointer must be an error.
- made GetDefaultByType a builtin so that it can do proper type assignment to the result, which for a function would be problematic in this case, even if automatic type deduction was implemented. Since this returns the class defaults which are not a real object, the result cannot be subjected to a type cast.
- error out if a type cast of a readonly pointer is attempted.
- fixed: FxBooleanNot could clobber a local variable because it used the source register to manipulate the result.
2016-11-27 16:24:33 +01:00
Christoph Oelckers
3dd323ac0d - scriptified the Flechette. Not fully tested yet.
- fixed issues with the refactoring of the recent commits. This one starts again.
- added builtins for TextureID.

Note about builtins: Currently they are just hacked into the compiler backend. They really should be made part of the respective types to keep matters clean and allow more widespread use of builtins to create more efficient code.
2016-11-27 16:24:33 +01:00
Christoph Oelckers
8dba322775 - scriptified Heretic's Skull Rod.
- Took the opportunity and fixed the logic for the Skull Rod's rain spawner. The old code which was part of the 3D floor submission was unable to work with portals at all. The new approach no longer tries to hide the dead projectile in the ceiling, it leaves it where it is and changes a few flags, so that its z-position can be used as reference to get the actual ceiling. This works for line portals, but for sector portals still requires some changes to sector_t::NextHighestCeilingAt to work, but at least this can be made to work unlike the old code.
- added names for the player-related translations to A_SetTranslation.
- fixed: Failure to resolve a function argument was checked for, too late.
- made the parameter for A_SetTranslation a name instead of a string, because it is more efficient. We do not need full strings here.
2016-11-25 16:05:03 +01:00
Christoph Oelckers
9ae272d753 - scriptified Heretic's blaster.
- scriptified all Effect functions of Fastprojectile's children
- implemented access to class meta data.
- added a VM instruction to retrieve the class metadata, to eliminate the overhead of the function call that would otherwise be needed.
- made GetClass() a builtin so that it can use the new instruction

Important note about this commit: Scriptifying CFlameMissile::Effect revealed a problem with the virtual function interface: In order to work, this needs to be explicitly enabled for each single native class that may be used as a base for a scripted class. Needless to say, this will end up way too much work, as there are over 100 native classes, excluding those which will be scriptified. But in order to fix the problem this partially broken state needs to be committed first.
2016-11-24 20:02:44 +01:00
Christoph Oelckers
3f5bf88d69 - scriptified Heretic's mace.
- fixed: FxAssignSelf did not the correct number of registers for vector operations.
- fixed a few asserts in vector2 instructions.
- turned the virtual AActor::HitFloor method into a flag MF7_SMASHABLE. The only use of this function was to kill Hexen's pottery when they hit the floor, and this looks like something that can be exposed to modders less clumsily.
2016-11-24 13:45:43 +01:00
Christoph Oelckers
980c986305 - allow defining native fields through scripts. Internally this only requires exporting the address, but not the entire field.
- added new VARF_Transient flag so that the decision whether to serialize a field does not depend solely on its native status. It may actually make a lot of sense to use the auto-serializer for native fields, too, as this would eliminate a lot of maintenance code.
- defined (u)int8/16 as aliases to the byte and short types (Can't we not just get rid of this naming convention already...?)
- exporting the fields of Actor revealed a few name clashes between them and some global types, so Actor.Sector was renamed to CurSector and Actor.Inventory was renamed to Actor.Inv.
2016-11-22 19:20:31 +01:00
Christoph Oelckers
7d99552903 - added two new integral types SpriteID and TextureID, both are needed to allow proper serialization as they require something different to be written out than a regular integer. 2016-11-21 13:45:33 +01:00
Christoph Oelckers
de2eb18727 - added per-channel access for color variables. However, since they are locally stored in registers, it required a minor bit of fudging for this case.
- make sure that a PFunction's implementation is always initialized before starting the code generator.
2016-11-21 12:38:39 +01:00
Christoph Oelckers
3ce699bf9b - implemented pass-by-reference arguments - so far only for memory based variables.
- changed Dehacked weapon function lookup to check the symbol table instead of directly referencing the VM functions. Once scriptified these pointers will no longer be available.
- removed all special ATAGs from the VM. While well intentioned any pointer tagged with them is basically unusable because it'd trigger asserts all over the place.
- scriptified A_Punch for testing pass-by-reference parameters and stack variables.
2016-11-19 01:23:56 +01:00
Christoph Oelckers
3bcd85eb8a added class pointer casts. Due to grammar problems the type has to be put into parentheses to get the class token out of the global parsing namespace:
class<Actor> myclass = (class<Actor>)(GetClass());
2016-11-17 20:31:53 +01:00
Christoph Oelckers
4f998fa879 - finished the state usage parser.
- added state usage specifiers to Actor and Inventory. The states in these classes must be set to full access so that any existing mod can link to them.
2016-11-14 23:24:10 +01:00
Christoph Oelckers
56a3dcfe80 - moved the 'brainexplode' state to the rocket, which is the actor which actually uses it.
This appears to be the only case where an actor was set to a state owned by a completely unrelated actor which would present some problems with state owner checking in AActor::SetState, so let's better get rid of it ASAP.
I believe the only reason this wasn't changed when all actors were exported 8 years ago was that old binary DEHSUPP lump.
2016-11-14 15:02:44 +01:00
Christoph Oelckers
ac86a535e7 - fixed: State labels were resolved in the calling function's context instead of the called function one's.
This could cause problems with functions that take states as parameters but use them to set them internally instead of passing them through the A_Jump interface back to the caller, like A_Chase or A_LookEx.
This required some quite significant refactoring because the entire state resolution logic had been baked into the compiler which turned out to be a major maintenance problem.
Fixed this by adding a new builtin type 'statelabel'. This is an opaque identifier representing a state, with the actual data either directly encoded into the number for single label state or an index into a state information table.
The state resolution is now the task of the called function as it should always have remained. Note, that this required giving back the 'action' qualifier to most state jumping functions.

- refactored most A_Jump checkers to a two stage setup with a pure checker that returns a boolean and a scripted A_Jump wrapper, for some simpler checks the checker function was entirely omitted and calculated inline in the A_Jump function. It is strongly recommended to use the boolean checkers unless using an inline function invocation in a state as they lead to vastly clearer code and offer more flexibility.

- let Min() and Max() use the OP_MIN and OP_MAX opcodes. Although these were present, these function were implemented using some grossly inefficient branching tests.
- the DECORATE 'state' cast kludge will now actually call ResolveState because a state label is not a state and needs conversion.
2016-11-14 14:12:27 +01:00
Christoph Oelckers
98fa3d2d93 - added an accessor to the actor defaults. This might have been possible with less work using a function but that would have necessitated some type casts when using it on subclasses.
- scriptified A_BarrelDestroy to test the above.
2016-11-05 17:14:16 +01:00
Christoph Oelckers
f940216c17 Merge branch 'master' into zscript
# Conflicts:
#	src/p_actionfunctions.cpp
#	wadsrc/static/actors/actor.txt
2016-11-02 11:08:51 +01:00
FishyClockwork
b1880964fa Added two new sub-blocks for Choice blocks
Added two new sub-blocks for Choice blocks: Require and Exclude.
The syntax for both is the same as Cost blocks.

Require defines what item must be present in your inventory in order to show this choice/reply.
Exclude defines what item must not be present in your inventory in order to show this choice/reply.

If any Require/Exclude blocks are defined then this choice/reply will be hidden until all blocks of both types are satisfied.
2016-10-30 19:30:53 +01:00
Christoph Oelckers
ac1c022911 - implemented the 'is' operator (i.e. class type check.) 2016-10-30 01:05:56 +02:00
Christoph Oelckers
7209f9edd6 - implemented passing vectors as parameters. So far working for native functions.
- removed the bogus optional value from the first A_Jump argument. A quick test with an older ZDoom revealed that this was never working - and implementing it would make things a lot more complicated, especially error checking in the code generator.
- fixed: The check for insufficient parameters to a function call was missing.
2016-10-29 13:10:27 +02:00
Christoph Oelckers
f5d1b1a491 - added vector builtins Length() and Unit().
This should complete the vector type except for use as function parameter.
2016-10-29 10:43:22 +02:00
Christoph Oelckers
3fa315aaea - replaced 'vector<2>' and 'vector<3>' with 'vector2' and 'vector3'.
- added initializer syntax for vectors. A vector can be set with vectorvar = (x,y,z); for a 3-dimensional vector and vectorvar = (x, y); for a 2-dimensional one.
2016-10-28 01:14:21 +02:00
Christoph Oelckers
7c759f9fcf - removed the FxDamageValue hack and implemented it properly using FxReturnStatement.
- added handling of damage functions for ZScript.
2016-10-26 14:04:49 +02:00
Christoph Oelckers
c2b37aeeea - fixed a conversion warning with the pointer-type AActor fields.
- added master and tracer to the list of exported variables.
- fixed: 'none' as class type must map to the real null pointer so that it won't get rejected by the stricter type checks.
- added handling for member function calls to zcc_compile.cpp.
- fixed: FxMemberFunctionCall may not delete the self expression if it gets passed on to the actual function call.
2016-10-22 19:43:53 +02:00
Christoph Oelckers
5bed0a2b39 - implemented class member access for variables. (Struct members and functions not done yet.) 2016-10-21 17:41:39 +02:00
Christoph Oelckers
32a3f57a54 - more preparations to compile functions:
* Allow PFunction to work without a VMFunction being attached.
 * The Variant for a function must store the prototype itself instead of relying on the VMFunction it points to. Otherwise it would not be possible to reference a prototype during compilation of the function because it does not exist yet.
 * Give the variant a list of the function's argument's names, because these are also needed to compile the function.
 * create an anonymous function symbol when the function gets registered to the builder. At this point we have all the needed information to set it up correctly, but later this is no longer the case. This is the most convenient info to have here because it contains everything that's needed to compile the function in the proper context, so it has to be present when starting compilation.
 * added some preparations to implement special handling for weapons and custom inventory items, which can run action functions in another actor's context. This part is not active yet but the basics are present in SetImplicitArgs.
2016-10-15 14:36:08 +02:00
Christoph Oelckers
5f5da26321 Merge branch 'master' of https://github.com/rheit/zdoom into zscript 2016-10-15 10:52:35 +02:00
FishyClockwork
ecffd0bea6 Done the code changes.
This time only nulls I've added are nullptrs
2016-10-14 23:11:57 +02:00
Christoph Oelckers
52005214c1 - Added some fudging so that A_PlayerSkinCheck creates proper code until I can rewrite the FunctionCall expression to match what the script compiler needs. The current version of this class is too much geared toward DECORATE. 2016-10-14 21:15:46 +02:00
Christoph Oelckers
d8c689d874 - initialize function symbols. At the moment all it does is process the existing native functions. Any further processing will be done once the base classes of the engine can be parsed from the scripting files.
- switched the types of the internal 'self' and 'stateowner' parameters so that they get assigned correctly. I can't tell if this will error out if fields get accessed from the caller with the wrong class, but for actual scripting to work these must be correct.

The committed 'actor.txt' can be parsed successfully, with the exception of a few subclass references that cannot be resolved yet.
2016-10-11 18:53:10 +02:00
Christoph Oelckers
ad43f2bc7e - parse the list of class/struct fields and add the PField entries to their type.
- fixed a few issues with trying to access a class's Type before it got initialized.
2016-10-09 21:54:23 +02:00
Christoph Oelckers
ff0b879323 - added UDMF portal flags. Names are identical with Eternity for compatibility reasons. 2016-10-02 00:31:25 +02:00
Major Cooke
dfa4f38c8f Updated to new save game code. 2016-09-24 09:17:18 +02:00
raa-eruanna
780d672b25 Adds user-definable weapon bob speed 2016-09-22 08:42:59 +02:00
Leonard2
db9f4c1385 Re-allow indexes as state parameter in sequences 2016-08-07 22:10:00 +02:00
Leonard2
5907ff662d Added a new state that the weapon jumps to when it is lowered all the way and the player is currently dead
The state is undefined by default to preserve the original behavior of having the weapon layer deleted which modders can now avoid by defining it properly
2016-07-28 17:42:22 +02:00
Randy Heit
e83bc53678 Add atan2, which was conspicuously absent, to the VM
- DECORATE now has atan2(y,x) and VectorAngle(x,y) functions. They are
  identical except for the order of their parameters. The returned angle
  is in degrees (not radians).
2016-04-18 23:06:17 -05:00
Randy Heit
c160121f45 Add float casts to DECORATE for the sake of completeness 2016-03-01 11:36:15 -06:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Randy Heit
fd78686679 Add clamp() to DECORATE 2016-02-25 14:31:37 -06:00
Randy Heit
a862f728b6 Add remaining VM-supported floating point operations to DECORATE
- These are:
  * exp
  * log
  * log10
  * ceil
  * floor
  * acos
  * asin
  * atan
  * tan
  * cosh
  * sinh
  * tanh
2016-02-25 09:41:49 -06:00
Randy Heit
326907f6ab Cleanup parsing of DECORATE intrinsics
- Split specific parsing for each intrinsic out of ParseExpression0 and
  into their own functions.
- Instead of reserving keywords for intrinsics, identify them by name
  within TK_Identifier's handling.
2016-02-23 19:39:29 -06:00
Randy Heit
e7b9e7e955 Rename A_Int/A_Bool/A_State to int/bool/state
- This is an effort to emphasize that these are just type casts. Now they
  look like function-style casts with no action function styling.
  They do no magic joojoo at all. The only reason they exist is because
  the DECORATE parser can only parse return statements that call a
  function, so these satisfy that requirement. i.e. *return int(666);* is
  identical to *return 666;* (if the parser could handle the latter).
2016-02-20 22:05:17 -06:00
MajorCooke
35b7a5ccc1 Updated for scripting branch merge. 2016-02-04 22:41:02 -06:00
MajorCooke
a1c1de9edb Fixed merge conflicts. 2016-02-02 18:26:20 -06:00
Christoph Oelckers
bf747075e8 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_hexen/a_clericstaff.cpp
	src/p_enemy.cpp
	src/p_interaction.cpp
	src/p_local.h
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:57:55 +01:00
Christoph Oelckers
cfcd2668cc Merge commit '772a5724313f2ad0bd6828fcc28545a9ee5e6068' into scripting
Conflicts:
	src/p_pspr.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:00:45 +01:00
Christoph Oelckers
fbaab5044d Merge commit '38df0665e3a2018cf1d0028a36357df6c7e908e9' into scripting
Conflicts:
	src/d_dehacked.cpp
	src/decallib.cpp
	src/g_hexen/a_clericstaff.cpp
	src/p_interaction.cpp
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
	wadsrc/static/actors/shared/inventory.txt
2016-01-17 19:50:34 +01:00
Christoph Oelckers
71c7f2b42c - added 'floorterrain' and 'ceilingterrain' sector properties for UDMF. These will take precedence over texture based terrain if used.
'ceilingterrain' is needed because the top of 3D-floors refers to the model sector's ceiling, so in order to give a 3D floor a terrain it must be assignable to the sector's ceiling.
Note that although it is basically the same property, its actual function bears no relevance to its use in Eternity.
2016-01-09 12:10:36 +01:00
Christoph Oelckers
5474e01de8 - removed FraggleScript's 'sectortype' function. This was GZDoom exclusive and never documented so it got no public exposure. Since this is incompatible with the damage related changes, it has no more use.
- major overhaul of the static sector damage system:

* consolidated special based damage, Sector_SetDamage and UDMF properties into one set of damage properties. The parallel handling that could lead to double damage infliction was removed. This also means that damage through sector specials can be retroactively changed through Sector_SetDamage.
* all special cases were turned into flags. The new system can switch between Strife's delayed damage and regular damage, and it can also set whether terrain splashes are used or not. It also has access to the special properties of the end-level type (i.e. switching off god mode and ending the level.)
* the damage related flags are accessible through Sector_ChangeFlags, not the damage functions themselves.
2016-01-06 12:12:47 +01:00
Christoph Oelckers
2b519a92b1 - allow setting the sector's damage properties through UDMF. 2016-01-05 16:19:55 +01:00
MajorCooke
eed6680a67 Added support for weapon states User#.
- Added keybinds for the user state triggering.
- Added WRF_USER# flags which must be specified in order to use.
- # can be 1-4.
2015-12-31 16:46:16 -06:00
Christoph Oelckers
9bfd676783 - allow setting the FloatbobPhase through UDMF. 2015-11-29 11:28:26 +01:00
MajorCooke
75100d76fb - Added Threshold Manipulation.
- Added 'threshold' and 'defthreshold' to DECORATE expression exposure.
- ChaseThreshold sets the default threshold for how long a monster must chase one target before it can switch targets. Default is 100, must not be negative.
- A_SetChaseThreshold can be used to alter the current or default threshold of an actor <pointer>.
- Changing current threshold has no effect on what the default will be once it hits 0 and something makes it infight with another.
2015-10-12 11:06:55 -05:00
Christoph Oelckers
2e0f999fea Merge branch 'master' into scripting
Conflicts:
	src/p_effect.cpp
	src/p_effect.h
	src/p_local.h
	src/p_map.cpp
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/actor.txt
	wadsrc/static/actors/shared/inventory.txt
	zdoom.vcproj
2015-04-28 14:45:13 +02:00
Christoph Oelckers
1f2a431d15 Merge branch 'master' into openal 2015-04-24 09:21:06 +02:00
Christoph Oelckers
b921157f57 - uncouple sector tag storage from the sector data to allow multiple tags per sector.
Tags are now handled by a tag manager class which stores sector/tag pairs. This way multiple entries can be added per sector.
Since UDMF does not have any arrays the additional tags are stored as a space separated string as 'MoreIDs'.
2015-04-19 12:33:27 +02:00
Randy Heit
8cb269388e Eliminate .mreg section
- Member variables are now declared all in one place: InitThingdef(). They
  are not partially defined in thingdef_expression.cpp and further refined
  in actor.txt.
- This left ParseNativeVariable() parsing only functions, so it has been
  renamed to ParseNativeFunction().
- Note that their declarations in InitThingdef() are expected to be
  temporary.
2015-03-14 22:16:05 -05:00
Chris Robinson
a8348b13de Merge remote-tracking branch 'zdoom/master' into openal
Conflicts:
	output_sdl/CMakeLists.txt
	src/namedef.h
2015-01-15 13:08:05 -08:00
Randy Heit
bd3e49c0e8 Make actor damages readable from DECORATE (again) 2015-01-10 23:02:00 -06:00
Randy Heit
b5e4153c78 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/b_think.cpp
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_clericstaff.cpp
	src/g_hexen/a_fighterplayer.cpp
	src/namedef.h
	src/p_enemy.cpp
	src/p_local.h
	src/p_mobj.cpp
	src/p_teleport.cpp
	src/sc_man_tokens.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_function.cpp
	src/thingdef/thingdef_parse.cpp
	wadsrc/static/actors/actor.txt
	wadsrc/static/actors/constants.txt
	wadsrc/static/actors/shared/inventory.txt

- Added register reuse to VMFunctionBuilder for FxPick's code emitter.
- Note to self: Need to reimplement IsPointerEqual and CheckClass, which
  were added to thingdef_function.cpp over the past year, as this file no
  longer exists in this branch.
2014-12-21 21:15:11 -06:00
Randy Heit
2d87eb0ba2 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/actor.h
	src/g_heretic/a_hereticmisc.cpp
	src/g_heretic/a_hereticweaps.cpp
	src/g_heretic/a_ironlich.cpp
	src/info.h
	src/namedef.h
	src/p_buildmap.cpp
	src/p_enemy.cpp
	src/p_map.cpp
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	zdoom.vcproj
2014-12-20 19:13:14 -06:00
MajorCooke
785f72d6eb - Renamed RClamp to Pick. 2014-12-13 15:59:27 -06:00
MajorCooke
8c5a8c54f0 - Added rclamp(<int>,<int>).
- Usable for DECORATE expressions. Chooses one of the two numbers placed in the field.
2014-12-13 15:08:18 -06:00
Christoph Oelckers
c66c497811 Merge branch 'master' of https://github.com/crimsondusk/zdoom 2014-09-29 00:43:19 +02:00
Teemu Piippo
770547e661 - added udmf key midtex3dimpassible which causes the midtex to behave like a finite-height impassible line; practically this means the mid texture lets projectiles pass through it. 2014-09-28 17:17:19 +03:00
fdari
a2f7b86a0f IsPointerEqual (ACS and Decorate)
Decorate: IsPointerEqual(int aaptr_selector1, int aaptr_selector2)
ACS: IsPointerEqual(int aaptr_selector1, int aaptr_selector2, int tid1 = 0, int tid2 = 0)

Compare the pointers values returned by two pointer select operations. Returns true if they both resolve to the same value. Null values can be explicitly tested using IsPointerEqual(AAPTR_NULL, ...)

ACS: IsPointerEqual(int aaptr1, int aaptr2, int tid1 = 0, int tid2 = 0)

This function lets you compare pointers from other actors than the activator, using tids. Tid1 determines the actor used to resolve aaptr1, Tid2 does the same for aaptr2. If tid1 and tid2 are equal, the same actor will be used for resolving both pointers (that could always happen randomly; this way you know it will happen).
2014-09-28 11:52:37 +02:00
MajorCooke
6586fa29fd - Added FDARI's A_JumpIf CheckClass submission.
- bool CheckClass(string classname, int ptr_select = aaptr_default, bool
match_superclass = false)
2014-09-25 23:56:10 -05:00
Chris Robinson
7ff7c151a8 Merge remote-tracking branch 'origin/master' into openal
Conflicts:
	src/CMakeLists.txt
2014-06-15 12:04:15 -07:00
Christoph Oelckers
47a9dab56d - allow setting sector planes' plane equations directly from UDMF. 2014-05-14 12:16:33 +02:00
Christoph Oelckers
30f57c0b8e - added new renderstyles AddStencil and AddShaded. 2014-05-13 21:16:06 +02:00
Gaerzi
4cac599b88 Less flags, more generic properties 2014-04-11 00:58:59 +02:00
Gaerzi
580094a792 More editing flags
PSX-inspired flags to change the render styles of monsters (and other
things).
2014-04-10 12:32:23 +02:00
Randy Heit
e7616ec0bd Add D-style properties to the numeric types
- This is stuff like min and max for integral types and infinity and nan
  for floating point types.
2013-10-29 22:06:03 -05:00
Randy Heit
e696fff0be Capitalize some names that weren't before.
- Since this caused several duplicate names to creep in, try to be more
  consistant abount name capitalization.
2013-10-29 22:05:49 -05:00
Randy Heit
61b419c187 Remove duplicated names from namedef.h
- Added an assertion in FName::NameManager::InitBuckets() that makes these
  errors easier to spot in the future.
2013-10-29 22:05:32 -05:00
Randy Heit
b227a2f508 Add the basic types to the global symbol table 2013-10-29 22:05:16 -05:00
Braden Obrzut
97d7b1e59e Merge branch 'origin/maint'
Conflicts:
	src/sound/fmodsound.cpp
2013-10-23 19:39:22 -04:00
Randy Heit
285be8db92 Fixed: wi_noautostartmap was not sync safe
- Make wi_noautostartmap a userinfo cvar. This allows it to be
  communicated across the network and saved in demos. If any player has it
  set, then the intermission screen will not automatically advance to the
  next level.
2013-09-18 20:45:39 -05:00
Christoph Oelckers
3e4678765b Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/thingdef/thingdef_codeptr.cpp
2013-08-18 12:18:59 +02:00
Christoph Oelckers
6a07118ea4 - added ML_BLOCKHITSCAN line flag. 2013-08-09 20:35:10 +02:00
Christoph Oelckers
bba092cc0b Merge branch 'master' into scripting
Conflicts:
	src/d_player.h
	src/g_doom/a_archvile.cpp
	src/thingdef/thingdef.h
	src/thingdef/thingdef_properties.cpp
2013-08-09 13:03:28 +02:00
Christoph Oelckers
e6c880c93a - fixed: The sector's 'hidden' UDMF property did not properly clear the corresponding flag if the value was 'false'.
- added UDMF 'waterzone' property for sectors.
2013-08-09 11:47:25 +02:00
Randy Heit
11b588de4a Add names for fallback tokens.
- Fixed: When falling back to the IDENTIFIER token, the identifier it
  would get was undefined, because it never got initialized.
2013-08-02 21:54:50 -05:00
Randy Heit
459ad5abff - Updated scripting branch to latest version in trunk.
SVN r4337 (scripting)
2013-06-07 03:31:30 +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
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
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
8b6b55ce40 - P_DaggerAlert() now puts the emitter into its Pain.Dagger state if it has one, but will still
use the regular Pain state if not.

SVN r4034 (trunk)
2013-01-23 03:46:12 +00:00
Randy Heit
3c54047b9f - Added Gez's "Using arg*str instead of SpawnID" patch, with modifications.
SVN r3958 (trunk)
2012-11-09 23:25:56 +00:00
Randy Heit
0f0dcc08a2 - Added a new UDMF sidedef flag: lightfog.
SVN r3933 (trunk)
2012-11-03 02:02:42 +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
644f0c0e05 - Add a name to VMFunction so that the disassembly can be more informative.
SVN r3768 (scripting)
2012-07-17 03:35:03 +00:00
Randy Heit
562cf04db2 - Update scripting branch to trunk.
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00
Randy Heit
44932a6c56 - Added OB_MPDEFAULT string for being killed by a player for an unknown reason. This can be
overridden in custom player classes by changing their Obituary property to something else.
- ClientObituary() now only looks up the obituary message from the killing player's weapon if the
  damage type was 'Melee' or 'Hitscan'.
- Gave P_GunShot() and A_FireBullets the new damage type 'Hitscan'.
- Switched A_Saw and A_CustomPunch to the 'Melee' damage type.

SVN r3646 (trunk)
2012-05-13 01:06:28 +00:00
Christoph Oelckers
4df1ea63b5 - added DavidPH's sqrt for DECORATE submission.
SVN r3586 (trunk)
2012-04-22 08:17:27 +00:00
Christoph Oelckers
235a09d92a - Added Xaser's weapon patch to check +reload and +zoom in A_WeaponReady.
SVN r3530 (trunk)
2012-04-07 13:07:25 +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
Christoph Oelckers
b1905c16ef - added UDMF LOcknumber property, submitted by Nightfall.
SVN r3331 (trunk)
2011-12-12 16:07:32 +00:00