Commit graph

3633 commits

Author SHA1 Message Date
Braden Obrzut
5079d6c505 - Fixed: clang 32-bit compile (I hear it still doesn't run though).
- Applied edward's patch to remove boolean increment.
2013-08-27 20:28:38 -04:00
Randy Heit
064710422b Accept empty struct and enum definitions (useless as they may be) 2013-08-24 20:32:59 -05:00
Randy Heit
80daf736ec Accept enums and structs defined at global scope 2013-08-24 20:28:26 -05:00
Randy Heit
956d754804 DECORATE cleanup
- Remove some ExpVal stuff that wasn't used.
2013-08-23 22:17:08 -05:00
Randy Heit
2f7183b937 Use PField instead of PSymbolVariable for DECORATE expressions
- The type systems used by PField and FxExpression are completely
  incompatible, but I think I got the differences taken care of as far
  as ParseNativeVariable(), ParseUserVariable(), and FxClassMember are
  concerned.
- Support for declaring native bool variables has been removed for the time
  being. It wasn't used anyway.
- Removed PSymbolVariable.
2013-08-23 22:02:51 -05:00
Randy Heit
0d1973a659 Make PStruct::AddField() check for duplicates
- PStruct::AddField() now checks the symbol table for a symbol of the same
  name before adding a new field. If the name is in use, it returns NULL.
2013-08-23 21:56:18 -05:00
Randy Heit
27ddaad7ca Set PStatePointer's TypeTableType in PType::StaticInit()
- It was forgotten about earlier.
2013-08-23 21:54:35 -05:00
Randy Heit
263b160905 Add PFixed and PArray types
- These are types that are stored as integers but otherwise handled as floating point values.
2013-08-23 21:53:54 -05:00
Randy Heit
b5d37348f6 Add code generation simplification methods to PType
- To assist with using PType with DECORATE expression code generation,
  added GetStoreOp(), GetLoadOp(), and GetRegType() to PType.
2013-08-23 21:52:04 -05:00
Randy Heit
2ec3cbddb9 Mark PType's GetValueInt method as const 2013-08-23 21:50:33 -05:00
Randy Heit
3ea0d1b444 Add VM opcodes NOP, LANG, and SANG
- To simplify code generation genericizing, add three new opcodes
  * NOP: No-Operation
  * LANG: Load Angle - load a BAM angle into a float reg as degrees
  * SANG: Save Angle - store a float reg into a BEM angle, converting from degrees
2013-08-23 21:46:40 -05:00
Randy Heit
a69089ffd7 Change disassembly dumps to be controlled from one spot
- Instead of changing three places to turn disassembly dumps on and off,
  do it with just one place. As a side effect, this now handles the case
  where the dump file can't be opened.
2013-08-23 21:43:56 -05:00
Randy Heit
3f6c3fa927 Remove unused GetVariableValue() 2013-08-21 23:19:46 -05:00
Randy Heit
d798c7896c Remove FxGlobalVariable class 2013-08-21 23:01:41 -05:00
Randy Heit
01822c002f Use PField instead of PSymbolVariable for A_SetUserVar/Array 2013-08-21 22:58:12 -05:00
Randy Heit
6aee7833d0 Use PField instead of PSymbolVariable for SetMapThingUserData() 2013-08-21 22:51:12 -05:00
Randy Heit
5aff8156ba Use PField and not PSymbolVariable for ACS's Get/SetUserVariable 2013-08-21 22:39:28 -05:00
Randy Heit
4cf0ef7e3f Minor PField changes.
- Rename FieldOffset and FieldType so they no longer have the "Field" prefix
- Add a Flags field.
2013-08-21 22:38:05 -05:00
Randy Heit
e50c00c856 Add generic integer setters and getters for PInt and PFloat types 2013-08-21 22:36:46 -05:00
Randy Heit
6198c000af Fix A_DropItem from merge 2013-08-21 22:31:40 -05:00
Randy Heit
fd9c450c6e Fix merge for ACS's DropItem 2013-08-21 22:28:53 -05:00
Christoph Oelckers
8e8f6cf5a6 - A_AlertMonsters flags submission by NeuralStunner. 2013-08-20 20:33:03 +02: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
116defbb35 - fixed: LookForEnemiesInBlock needs to check for MF7_NEVERTARGET. 2013-08-18 09:11:40 +02:00
Randy Heit
5fe5fe7c51 Merge branch 'scripting' of github.com:rheit/zdoom into scripting 2013-08-14 22:15:28 -05:00
Randy Heit
cf87d0f1e9 Use PFunction instead of PSymbolActionFunction in DECORATE parser 2013-08-14 22:00:16 -05:00
Randy Heit
aba691ad72 Implement NewClassPointer() 2013-08-14 21:59:10 -05:00
Randy Heit
8fbb4b90fb Add some flags for PFunction 2013-08-14 21:56:21 -05:00
Randy Heit
ed1c22186f Add PStatePointer type 2013-08-14 21:53:03 -05:00
Christoph Oelckers
62830f7927 - added separate automap color for non-counting monsters.
- fixed: using a nonexistent CVAR in a ColorPicker menu item caused a crash.
2013-08-14 00:32:05 +02:00
Christoph Oelckers
c8b4fb0d3d - added a 'closemenu' CCMD so that menu options that close the menu can be added. 2013-08-13 21:09:46 +02:00
Christoph Oelckers
7a87e08107 - added MF7_ALWAYSTELEFRAG flag that causes an actor to be telefragged by everything that teleports into the same place. 2013-08-13 21:01:14 +02:00
Christoph Oelckers
9ebf345fec Merge branch 'maint' 2013-08-13 08:53:23 +02:00
Christoph Oelckers
1b79f7d956 - fixed chance default for ACS's DropItem. 2013-08-13 08:52:53 +02:00
Christoph Oelckers
3518b4dd28 - allow menu's back button and the pause sign to be animated. 2013-08-12 22:46:45 +02:00
Christoph Oelckers
61c94648dc - added ACS CheckFlag function. 2013-08-12 22:38:52 +02:00
Christoph Oelckers
ba3e57281a Merge branch 'maint' 2013-08-12 21:12:20 +02:00
Christoph Oelckers
072b66fb9f - fixed: The music that's defined in the Gameinfo section of MAPINFO could not set the order for multitrack music lumps. 2013-08-12 21:11:53 +02:00
Christoph Oelckers
aa03609b69 - added IF_TOSSED inventory flag. 2013-08-12 21:00:23 +02:00
Christoph Oelckers
be1a00c537 Merge branch 'maint' 2013-08-12 20:42:21 +02:00
Christoph Oelckers
e14590d8ce - moved NOTELESTOMP to flags7. When committing I was accidentally on maint instead of master and in master flags6 was already full. 2013-08-12 20:41:33 +02:00
Christoph Oelckers
44a1b94ad9 - added MF6_NOTELESTOMP flag that prevents an actor from telefragging under all possible circumstances. 2013-08-12 20:23:54 +02:00
Christoph Oelckers
f2c250d35d - flags7 variable added to AActor. 2013-08-12 20:09:21 +02:00
Christoph Oelckers
2bcc5cd7cc Merge branch 'maint' 2013-08-12 09:14:18 +02:00
Christoph Oelckers
ecfe67dd78 - removed weirdness from Powerup.Strength property that was specifically tailored to its use on PowerInvisibility and made its use problematic elsewhere. 2013-08-12 09:13:55 +02:00
Christoph Oelckers
fabf8272e6 Merge branch 'maint' 2013-08-11 21:04:17 +02:00
Christoph Oelckers
1b2d8420bb - DropItem for ACS. 2013-08-11 20:57:53 +02:00
Christoph Oelckers
c0174ea7cd - Added A_DropItem for DECORATE. 2013-08-11 20:48:08 +02:00
Christoph Oelckers
35764ff3b2 - fixed: Powerup.Strength is a fixed point value, so using it as health amount for PowerRegeneration requires division by FRACUNIT. 2013-08-11 20:39:53 +02:00
Christoph Oelckers
5bb4b558a4 Merge branch 'maint' 2013-08-11 13:37:36 +02:00
Christoph Oelckers
c5cba70fc8 - removed obsolete quit message #defines. 2013-08-11 13:36:48 +02:00
Christoph Oelckers
c7a46492eb - fixed bad index variable in R_RenderFakeWallRange. 2013-08-11 12:41:14 +02:00
Randy Heit
55bec365e8 Added a way to specify paramater flags for PFunction
- And right now, the only flag is "Optional".
2013-08-10 20:24:12 -05:00
Randy Heit
973b0f5c56 Change PFunction's superclass from PNamedType to PSymbol 2013-08-10 20:17:55 -05:00
Randy Heit
6575499f37 Added basic implementation for PField.
- I don't know why this didn't give me trouble before, but I needed to add IMPLEMENT_CLASS for PField.
2013-08-10 20:17:29 -05:00
Randy Heit
3e46e6376c Added NewPrototype() function 2013-08-10 20:06:54 -05:00
Randy Heit
f18c7b8959 Make FType::Hash work for PPrototype
- For Prototypes, Hash is passed the address of two TArrays. If we blindly
  hash those without checking their contents, then we can forget about
  ever finding any matching prototypes in the type table. (Not that I
  remember why I wanted them to be unique, but I'm sure I must have had my
  reasons.)
2013-08-10 20:05:42 -05:00
Christoph Oelckers
3bcc4078b1 Merge branch 'maint' 2013-08-10 10:19:20 +02:00
Christoph Oelckers
1c889dc9fa - let APowerRegeneration use the Strength property to define the amount of regeneration it gives. 2013-08-10 09:51:48 +02:00
Christoph Oelckers
c8f0df44f2 Merge branch 'maint'
Conflicts:
	src/am_map.cpp
2013-08-10 09:41:50 +02:00
Christoph Oelckers
25ec3fb8fe - added MF6_RELATIVETOFLOOR flag. 2013-08-10 09:32:55 +02:00
Christoph Oelckers
211d293002 - added MF6_NOTONAUTOMAP flag to exclude things from being shown with the scanner powerup. The IDDT cheat will not be affected by this. 2013-08-10 08:53:37 +02:00
Christoph Oelckers
55f637c906 - fixed: When creating colormaps for 3D floors the model sector's fade value must be used when defining a fog volume. 2013-08-09 23:40:34 +02:00
Christoph Oelckers
9c12c03684 Merge branch 'maint' 2013-08-09 20:36:08 +02:00
Christoph Oelckers
6a07118ea4 - added ML_BLOCKHITSCAN line flag. 2013-08-09 20:35:10 +02:00
Christoph Oelckers
a78ad3188b - added MF5_NOFORWARDFALL flag to prevent attacks from making its victim fall forward randomly. 2013-08-09 20:20:23 +02:00
Christoph Oelckers
0a258f95ea - added gravity property to UDMF things. Positive values are multiplied with the class's gravity property, negative values are used as their absolute. 2013-08-09 16:25:16 +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
21bce3b0c4 Merge branch 'maint' 2013-08-09 12:51:26 +02:00
Christoph Oelckers
5d0369d4ed - Ability to set A_VileAttack's initial attack's damage type - by BlueShadow. 2013-08-09 12:18:58 +02:00
Christoph Oelckers
b187451a71 - added APROP_ViewHeight and APROP_AttackZOffset submission by TheFortuneTeller. 2013-08-09 12:06:51 +02:00
Christoph Oelckers
34b71baad1 - added Player.Aircapacity property which is used as a multiplier for the level's air supply. 2013-08-09 11:57:14 +02:00
Christoph Oelckers
a0c214104d Merge branch 'maint' of https://github.com/rheit/zdoom into maint 2013-08-09 11:47:33 +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
Christoph Oelckers
151d54aaf5 - added 3 more modes for am_cheat: 4-6 are the same as 1-3 with the exception that lines not drawn on the regular automap won't be shown. 2013-08-09 11:32:46 +02:00
Christoph Oelckers
9f35788164 - added custom automap overlay colors.
- extended am_drawmapback so that map backgrounds can only be drawn if used with custom colorsets and Raven's, assuming that these sets were specifically made for the accompanying backgrounds.
2013-08-09 11:00:24 +02:00
Braden Obrzut
5b228ae5a7 Merge branch 'maint' 2013-08-09 00:25:51 -04:00
Braden Obrzut
7e76fb0078 - Fixed: Disable ifitem jumping if a link isn't specified since an invalid value can cause a crash. 2013-08-09 00:25:29 -04:00
Braden Obrzut
bb494292c6 - Fixed P_CheckMapData allowed non-map lump names to pass resulting in a crash when actually trying to load the map. 2013-08-08 23:47:58 -04:00
Randy Heit
93cbdd37a5 PArray's size should take alignment into account. 2013-08-08 22:27:40 -05:00
Randy Heit
6c1f3a1396 Added PStruct::AddField() 2013-08-08 22:27:40 -05:00
Randy Heit
476a98652c Remove extraneous PField class
- Remove the existing PField class, rename PMemberField to PField, and
  derive it from PSymbol instead of the old PField.
2013-08-08 22:27:39 -05:00
Randy Heit
7e24f6b00c - Added NewStruct() function. 2013-08-08 22:27:39 -05:00
Randy Heit
0ec33191aa - Added NewEnum() function. 2013-08-08 22:27:39 -05:00
Randy Heit
12a312b6b4 - Fixed: NewArray returned the element type, not the array type. 2013-08-08 22:27:38 -05:00
Randy Heit
dbaf72772b Move the symbol table from PClass to PStruct. 2013-08-08 22:27:38 -05: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
5cc8a9c2a7 Remove redundant Resolves
- ParseExpression() calls Resolve() on the FxExpression before returing
  it, so there's no need to immediately Resolve() what it returns.
2013-08-02 21:19:05 -05:00
Randy Heit
4f528e3832 Remove lax from FCompileContext
- It's always set to true these days, so let's get rid of it.
2013-08-02 21:13:40 -05:00
Randy Heit
09c902ce55 Remove isconst from FCompileContext.
- It's not used anymore, so keeping it around is pointless.
2013-08-02 21:09:49 -05:00
Christoph Oelckers
8f45e906d4 Merge branch 'automap_colors' 2013-08-02 18:16:05 +02:00
Christoph Oelckers
aa72857c72 - implemented automap color parser for MAPINFO (code not tested yet!) 2013-08-02 16:56:42 +02:00
alexey.lysiuk
5c05f1f3cd - Ignored dehacked.exe from *.zip files to enable loading of *.deh files. 2013-08-02 10:17:06 +03:00
Christoph Oelckers
845020c617 - ovthingcolors were not properly set.
- added all the missing color CVARs for the overlays which previously duplicated use of one of the other CVARs.
2013-07-31 23:13:20 +02:00
Christoph Oelckers
d77673d681 - reorganization of automap color handling for easier maintenance
Mostly preparation to implement a per-mod automap option but also fixes a few minor issues with some colors that are not defined in the original game specific colorsets.
2013-07-31 22:59:35 +02:00
Edoardo Prezioso
0dc70f847c - Be more compatible with C++11 narrowing conversions system. 2013-07-31 12:27:54 +02:00
Edoardo Prezioso
8cab8f180b - Be clear about the safe 'memset/memcpy' operations on virtual classes.
Since I remember that 'memset/memcpy' is safe in this code, it should be okay to cast to the generic pointer all the 'virtual class' arguments before calling the above functions. Shuts up Clang warnings.
2013-07-31 12:23:31 +02:00
Randy Heit
58f088c1ab Remove FxExpression::EvalExpression() entirely
- For the purposes of getting constant values from expressions, the only
  class where Resolve doesn't duplicate the functionality of
  EvalExpression was FxConstant. So, every other class has had its
  EvalExpression taken away, and FxConstant has had it renamed to GetValue.
2013-07-30 22:52:27 -05:00
Christoph Oelckers
4eb6f74e36 Merge branch 'maint' 2013-07-30 16:53:00 +02:00
Christoph Oelckers
3480d40484 - fixed: AActor::Die may only randomize the death state's duration if it is positive. Otherwise -1 (infinite) gets clobbered. 2013-07-30 16:52:36 +02:00