Commit graph

567 commits

Author SHA1 Message Date
Christoph Oelckers
651817fad7 - made AActor::velx/y/z and player_t::velx/y fixedvec's.
(This commit is 95% search & replace with only a few places where velz was used as a local variable changed.)
2016-03-12 14:11:43 +01:00
Christoph Oelckers
161d03231a - added custom math routines for reliability. 2016-03-11 15:45:47 +01:00
Christoph Oelckers
f8ebfb541e - use typedefs for TVector<double> etc.
(Better have this out of the way before messing around with this stuff...)
2016-03-10 20:45:45 +01:00
Randy Heit
72edd7d455 Fixed: GetVarAddrType() bounds check was inverted 2016-03-06 22:17:30 -06:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers
b4a002a07f - preparations for allowing hitscans through portals.
To allow processing the hit through an arbitrary portal without reference to the portal group table, P_AimLineAttack and P_LineAttack need to pass some more info than just the linetarget.
We need the relative positions of shooter and target within the visual reference of the other to calculate proper angles and we need to know if such a portal was crossed at all, because a few things, e.g. seeker missiles won't work with them.

- fixed setup of target acquisition for the Mage Staff.

The pre-acquired seeker target was never passed to the spawned projectiles.
2016-03-01 16:39:31 +01:00
Christoph Oelckers
49bfe717ce Merge remote-tracking branch 'remotes/origin/portal' 2016-02-22 15:54:07 +01:00
alexey.lysiuk
7b49d9d92c Fixed crash when accessing undefined user variable
Presence of DECORATE user variable was not checked before attempting to read or write its value from ACS
2016-02-20 20:02:32 +01:00
Christoph Oelckers
6132f6971a - added support for FFCF_NOPORTALS and FFCF_3DRESTRICT to FindNextLowestFloorAt and FindNextHighestCeilingAt
- use these functions in P_GetFloorCeiling instead of duplicating all this code.
- removed some debug CCMDs.
2016-02-20 02:22:09 +01:00
Christoph Oelckers
dc37f78566 - fixed: Old portal data must be deleted before loading a new level. 2016-02-20 02:22:09 +01:00
Christoph Oelckers
02d7572343 - some header dependency cleanup so that it is no longer needed to include portal.h to get the inline functions. Portal.h has been reduced of most dependencies now so that including it is cheap and can be done in other headers.
- some consolidation in p_map.cpp. PIT_CheckLine and PIT_FindFloorCeiling had quite a bit of redundancy which has been merged.
- Ĩontinued work on FMultiBlockLinesIterator. It's still not completely finished.
2016-02-19 14:08:41 +01:00
Christoph Oelckers
ae02b2fcaf - added NextHighestCeiling/NextLowestFloorAt functions. Not tested yet! 2016-02-16 21:00:34 +01:00
Christoph Oelckers
6adb069506 - rewrote p_local.h so that it doesn't pull in the entire bunch of headers.
This was to resolve some circular dependencies with the portal code.
The most notable changees:

 * FTextureID was moved from textures.h to doomtype.h because it is frequently needed in files that don't want to do anything with actual textures.
 * split off the parts from p_maputl into a separate header.
 * consolidated all blockmap related data into p_blockmap.h
 * split off the polyobject parts into po_man.h
2016-02-15 02:14:34 +01:00
Christoph Oelckers
c5c4ec83c2 - ensure thar PRINTNAME_LEVEL always uses uppercase. 2016-02-11 21:45:34 +01:00
alexey.lysiuk
7fa5cb788b Fixed regression with getting/setting user variables
See http://forum.zdoom.org/viewtopic.php?t=50727
2016-02-07 15:32:55 +02:00
Christoph Oelckers
01b075660d - removed the option to toggle portals with SetLineSpecial.
This is to keep some people from jumping the gun on this and preventing the implementation of a proper toggling mechanism.
The feature itself will come back, but differently.

- removed portal setup from Build maps

they don't define it anyway so it makes no sense to have it there. Once this code gets refactored this will be in a different place that's identical for all map types.
2016-02-05 14:34:01 +01:00
Braden Obrzut
ba54d73e07 Merge branch 'portals2_visual' 2016-02-05 00:10:46 -05:00
Christoph Oelckers
0b7a06c714 Merge branch 'NewEESpecials'
# Conflicts:
#	src/fragglescript/t_fs.h
2016-02-05 01:01:39 +01:00
Randy Heit
b3b0886b64 Merge branch 'scripting'
Conflicts:
	src/actor.h
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_blastradius.cpp
	src/p_enemy.cpp
	src/p_enemy.h
	src/thingdef/thingdef.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-02-04 15:17:22 -06:00
Christoph Oelckers
f6b64430c3 Revert "Merge tag 'a'"
This reverts commit 37578f85b3, reversing
changes made to 66f053f131.

After thoroughly checking the submission I had to conclude that it does more things wrong than right so better leave it out.
2016-02-03 11:36:34 +01:00
Christoph Oelckers
37578f85b3 Merge tag 'a' 2016-02-03 01:02:13 +01:00
Christoph Oelckers
6715a97d6e - removed debug output from previous commit. 2016-01-28 12:04:47 +01:00
Christoph Oelckers
dfcee625db - fixed: The ACS String garbage collector only looked at the active script's stack but never considered a recursive call from another script.
Fixing this required adding an external list of active stack objects that the garbage collector can access.
A nice side effect: It's no longer necessary to pass around the stack info to various functions that might end up triggering a garbage collection.
2016-01-28 11:56:47 +01:00
MajorCooke
0be09f54bd Particles can now scale up to 65535. 2016-01-25 15:44:11 -06:00
Christoph Oelckers
cf43eb6c6d - limit particle size to 127 2016-01-25 21:08:09 +01:00
Christoph Oelckers
7b5a77a8d8 - added various action specials and parameter extensions defined by Eternity Engine.
The reason for defining them is to be able to fill out the Eternity translation table for GZDoom's Extradata parser.
Most of the new specials are mere specializations of ZDoom's Generic_* functions and occupy positions above 255 to avoid filling up the last remaining free slots available for Hexen format maps.
Allowing action specials greater than 255 required a few changes:
 * all access to action specials is now through a small set of access functions.
 * Two new PCodes were added to ACC to handle these new specials from scripts.
 * a minor change to the network protocol, so netgame  and demo version numbers were bumped.
 * FS_Execute is now properly defined in p_lnspec.cpp.
Two of the newly added specials - generalizations of the special 'close Door in 30 seconds' and 'raise door in 5 minutes' sector types, will also be available to Hexen format maps. The rest are limited to use in ACS, UDMF and DECORATE.
This also adds 'change' and 'crush' parameters to most Floor_* and Ceiling_* specials, again to match Eternity's feature set.
2016-01-25 18:49:56 +01:00
Randy Heit
c63f65d441 Merge remote-tracking branch 'origin/master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-01-22 20:53:27 -06:00
Eevee (Lexy Munroe)
24f6f1297a Use ZatPoint(actor) 2016-01-22 16:38:29 -08:00
Eevee (Lexy Munroe)
3e28b195ce Fix a couple old uses of actor->x and friends 2016-01-22 16:35:43 -08:00
Eevee (Lexy Munroe)
85a82bc6e8 Fix minor typo in comments 2016-01-22 16:35:43 -08:00
Eevee (Lexy Munroe)
c08d865b1b Extend CheckActor*Texture to look at any non-solid floor
Upon deep and personal reflection, I realize this is more consistent
with the TERRAIN change I made.
2016-01-22 16:35:43 -08:00
Eevee (Lexy Munroe)
1ab9d15481 Make CheckActor*Texture also consider swimmable 3D floors
An actor standing within a swimmable floor whose ceiling texture is X
and on a solid floor whose texture is Y will now be reported as standing
on both.
2016-01-22 16:35:43 -08:00
MajorCooke
793fc90716 Once more homogenized!
- DECORATE: color, flags, lifetime, size, angle, xyz offset/vel/accel, startalpha, fadestep.
- ACS: Similar, minus the angle parameter.
2016-01-21 19:59:33 -06:00
MajorCooke
28502b9a80 - Reorganized A_SpawnParticle parameters.
- Decorate order is now color, x/y/zoff, velx/y/z, lifetime, angle, flags, size, startalphaf, fadestepf, accelx/y/z.
- ACS order is now color, xyz offset, xyz velocity, lifetime, fullbright, size, startalpha, fadestep, xyz accel
2016-01-21 18:34:39 -06:00
Randy Heit
9744b9e0d9 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/dobject.h
	src/dobjgc.cpp
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
2016-01-21 12:45:06 -06:00
Edward Richardson
e5c67cee83 Merge branch conflicts fix
- CONFLICT (content): Merge conflict in src/p_acs.cpp
- Updated position variables
2016-01-21 10:49:57 +13:00
Christoph Oelckers
bc63b70d88 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/fragglescript/t_func.cpp
	src/g_doom/a_bossbrain.cpp
	src/g_doom/a_revenant.cpp
	src/g_heretic/a_hereticartifacts.cpp
	src/g_heretic/a_hereticweaps.cpp
	src/g_heretic/a_knight.cpp
	src/g_hexen/a_bishop.cpp
	src/g_hexen/a_clericholy.cpp
	src/g_hexen/a_dragon.cpp
	src/g_hexen/a_firedemon.cpp
	src/g_hexen/a_flechette.cpp
	src/g_hexen/a_heresiarch.cpp
	src/g_hexen/a_hexenspecialdecs.cpp
	src/g_hexen/a_iceguy.cpp
	src/g_hexen/a_korax.cpp
	src/g_hexen/a_magelightning.cpp
	src/g_hexen/a_serpent.cpp
	src/g_hexen/a_spike.cpp
	src/g_hexen/a_wraith.cpp
	src/g_raven/a_minotaur.cpp
	src/g_shared/a_bridge.cpp
	src/g_shared/a_pickups.cpp
	src/g_shared/a_randomspawner.cpp
	src/g_strife/a_alienspectres.cpp
	src/g_strife/a_crusader.cpp
	src/g_strife/a_entityboss.cpp
	src/g_strife/a_inquisitor.cpp
	src/g_strife/a_loremaster.cpp
	src/g_strife/a_programmer.cpp
	src/g_strife/a_sentinel.cpp
	src/g_strife/a_spectral.cpp
	src/g_strife/a_strifestuff.cpp
	src/g_strife/a_strifeweapons.cpp
	src/g_strife/a_thingstoblowup.cpp
	src/p_local.h
	src/r_utility.cpp
2016-01-19 13:43:11 +01:00
Braden Obrzut
f3f77a1ba0 Merge branch 'master' into portals2_visual 2016-01-18 09:45:42 -05:00
Christoph Oelckers
43314f0c0d - started refactoring p_map.cpp
- added AActor::Top function to replace the frequent occurences of actor->z + actor->height.
2016-01-18 00:59:16 +01: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
5207aa6cc0 Merge commit '125afcf3defb901e23bd44d32fa86681ef1748f6' into scripting
Conflicts:
	src/p_local.h
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/shared/inventory.txt
2016-01-17 19:09:05 +01:00
Christoph Oelckers
c611456397 - more refactoring of AActor coordinate access. 2016-01-17 18:36:14 +01:00
Christoph Oelckers
3e446ea04d - replaced access to AActor's coordinate members with access functions
(first 200 compile errors down...)
2016-01-17 13:48:16 +01:00
Braden Obrzut
8f31af3ff9 - Work around issue with tree-loop-vectorize in p_acs.cpp. 2016-01-16 00:51:17 -05:00
Christoph Oelckers
53d385a596 - need to validate SetSectorTerrain's 'plane' parameter, 2016-01-09 21:10:12 +01:00
Christoph Oelckers
7f454358b9 - added ACS SetSectorTerrain function. 2016-01-09 12:16:41 +01:00
Christoph Oelckers
d0c372692b - added new ACS function SetSectorDamage which allows the use of actual damage types, unlike the old Sector_SetDamage. Unlike Sector_SetDamage this function does not use damage amount dependent defaults for the interval and the leakiness if none are passed. 2016-01-05 16:29:04 +01:00
Christoph Oelckers
b2f860d7ae - better add a NULL pointer check here. 2016-01-05 11:07:59 +01:00
Benjamin Moir
c9afb199ca Added "pufftid" parameter for LineAttack. 2016-01-05 13:58:00 +10:00
Blue-Shadow
c51abb0161 Added GetMaxInventory ACS function 2015-12-22 19:01:09 +03:00
Edward Richardson
c099cd4581 SpawnParticle functions
- Added A_SpawnParticle Decorate and SpawnParticle ACS functions.
2015-12-08 22:58:24 +13:00
Braden Obrzut
72d4c33453 - Removed GetAspectRatio as the implementation was highly fragile. Even if converted to giving the ratio, I have strong concerns about having this function built in without ZDoom supporting arbitrary aspect ratios as the odds of people checking against the hard coded constants seems high. The existing ACS version of this function returns fixed point ratios (because why not) and I fully expected people to use a switch statement when writing it. 2015-12-07 01:18:56 -05:00
Christoph Oelckers
ad0e71942d - added GetAspectRatio function to ACS.
- added a sixth parameter for SetHUDClipRect so that the forced aspect ratio fudging this function performs can be disabled.
2015-12-06 09:59:02 +01:00
John Palomo Jr
2612fad326 Backport RETURNTID and FORCETID flags for PickActor from GLOOME. Renamed prefix to avoid confusion with Pain Attack flags. Fixed broken enum. 2015-11-21 06:05:16 -05:00
Braden Obrzut
a8ac748123 Merge commit 'e2d874e343da34df6edfad0bb47370cbe10f4bae' 2015-10-25 15:00:43 -04:00
alexey.lysiuk
869e168495 'no monsters' option is no longer ignored in ACS Spawn functions
See http://forum.zdoom.org/viewtopic.php?t=46459
2015-10-18 15:54:07 +03:00
Edoardo Prezioso
6678c3550e - Improve the TFlags code and fix the new errors.
The previous version didn't detect some real mistakes in code which used operator& with the wrong flagset (for now 'converted' to the correcly equivalent counterpart, waiting for the proper fix).
2015-10-13 00:30:06 +02:00
MajorCooke
af9478f818 - Added Warp properties RadiusOffset and Pitch.
- RadiusOffset is a multiplier of the target actor's radius added onto the offsets x and y.
- Pitch is added to the warping actor's current pitch, provided WARPF_USEPITCH is supplied.
- Fixed WARPF_TOFLOOR not working as intended.
2015-10-03 17:28:54 -05:00
ZzZombo
98bdbb1ad8 -Fixed PCD_DROP affecting script result value. 2015-09-19 09:40:19 +08:00
alexey.lysiuk
924a2aaaa7 Added "support" for PCD_CONSOLECOMMAND in ACS
Now attempt to execute a console command from a script will not terminate its execution
An error message will be issued in the console on every such attempt
2015-09-16 16:56:43 +03:00
alexey.lysiuk
b2fa4970fd Fixed potential crash in ACS engine
Unknown p-code in compiled script may lead to a crash if the current module was changed during script execution, e.g. by function call
See http://forum.zdoom.org/viewtopic.php?f=2&t=48524
2015-09-16 16:13:56 +03:00
coelckers
afa438419d Merge pull request #379 from Edward850/sanitize
ACS module error was missing newline
2015-09-13 08:55:14 +02:00
Edward Richardson
36c7002628 ACS module error was missing newline 2015-09-13 13:46:02 +12:00
Edoardo Prezioso
e939d6885d - Fixed a crash in ACS strlen parsing with invalid argument. 2015-09-05 23:58:02 +02:00
MajorCooke
ad14caa800 - Added A_Warp heightoffset property. Only has an effect by two flags.
- WARPF_ADDHEIGHT adds the pointed actor's height to heightoffset, and adds to the pointed actor's z position.
- WARPF_MULHEIGHT multiplies the pointed actor's height by heightoffset, and adds to the pointed actor's z position. Overridden by ADDHEIGHT.
2015-08-10 11:19:54 -05:00
Christoph Oelckers
58870d4871 - fixed: SingleActorFromTid wasn't declared in thingdef_codeptr.cpp 2015-08-01 23:17:06 +02:00
Christoph Oelckers
36974431ba Merge branch 'master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
2015-08-01 09:42:31 +02:00
Benjamin Moir
7163aa9667 Moved Warp to the ZDoom range 2015-07-31 22:28:10 +09:30
Christoph Oelckers
701fc374f7 - consolidated A_Warp and ACS Warp code into a subfunction. 2015-07-31 08:40:33 +02:00
Benjamin Moir
cf43bd969d Added Warp to ACS 2015-07-30 16:56:54 +09:30
Christoph Oelckers
7ba577e1b0 Merge branch 'master' into scripting
Conflicts:
	src/g_heretic/a_hereticweaps.cpp
	src/thingdef/thingdef_codeptr.cpp
2015-06-07 09:43:54 +02:00
ZZYZX
cd39c4b8a6 Merged mirrors with portals; Render part of mirrors done, render part of portals needs further testing 2015-06-07 04:19:17 +03:00
Braden Obrzut
662345adb8 - Fixed: More endian issues in the ACS VM. 2015-06-05 22:22:54 -04:00
Christoph Oelckers
1b29c3b6cf Merge branch 'master' into scripting
Conflicts:
	src/p_interaction.cpp
	tools/lemon/lemon.c
2015-04-30 16:13:32 +02:00
Christoph Oelckers
4316740ee9 - some color coding of error messages during ACS loading. (not that I expect that the people these are meant for will read them anyway...) 2015-04-30 12:59:26 +02:00
Christoph Oelckers
97e63b1319 - split up FBehavior constructor to better be able to weed out broken ACS modules.
Please note that this WILL break old savegames from mods which put ACS sources or unrelated data in the ACS namespace!
2015-04-30 12:53:44 +02:00
Christoph Oelckers
5f1c4d157c Merge branch 'master' into scripting
Conflicts:
	src/g_shared/a_sharedglobal.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_data.cpp
2015-04-30 12:30:36 +02:00
Christoph Oelckers
84351419a3 Merge branch 'master' of https://github.com/crimsondusk/zdoom
Conflicts:
	src/actor.h
2015-04-30 10:03:50 +02:00
Christoph Oelckers
405fc31e81 Merge branch 'master' of https://github.com/DaZombieKiller/zdoom
Conflicts:
	src/actor.h
2015-04-30 09:14:31 +02:00
Christoph Oelckers
646c135eff Merge branch 'master' into scripting
Conflicts:
	src/m_cheat.cpp
	src/p_acs.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_properties.cpp
2015-04-28 23:04:10 +02:00
Christoph Oelckers
f087903fca - remove some redundancy from TeleportFog code. 2015-04-28 22:11:43 +02:00
coelckers
15fbf2510a Merge pull request #320 from edward-san/clang_3_5_crash_solved
- Clang 3.5.1+ fixed the compiler bug in ACS code.
2015-04-28 22:06:50 +02:00
Edoardo Prezioso
92fe265abe - Clang 3.5.1+ fixed the compiler bug in ACS code.
Referring to commit 1c96039d7a .
2015-04-28 19:25:06 +02:00
Edoardo Prezioso
b51fac344d Little TakeInventory refactoring.
Introduce AActor::TakeInventory, which unifies DoTakeInv from ACS and DoTakeInventory from Decorate, and AInventory::DepleteOrDestroy, which is extracted from the DoTakeInv core function, and use both where they're needed.
I don't know if the differences between DoTakeInv and DoTakeInventory were intentional, so I kept both behaviors.
2015-04-28 15:45:11 +02: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
8447990889 Merge commit '2719ce86dc07c9f7b1ad6d61a9a49c974896abf2' into scripting
Conflicts:
	src/info.h
	src/thingdef/thingdef_codeptr.cpp

(until right before the main work for multiple tags.)
2015-04-28 13:32:50 +02:00
Christoph Oelckers
065c0a79cd Merge commit '4f7ec3ad891d556c0d3f680e209a120ed38e9cdb' into scripting
Conflicts:
	src/d_main.cpp
	src/info.cpp
	src/info.h
	src/p_acs.cpp
	src/p_interaction.cpp
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_properties.cpp

(scripting branch update part 5)
2015-04-28 12:48:33 +02:00
Christoph Oelckers
792cad89b3 Merge commit '3849cb86231ce24131a86e9c29795a8cf3706a3d' into scripting
Conflicts:
	src/g_hexen/a_clericstaff.cpp
	src/g_hexen/a_hexenspecialdecs.cpp
	src/p_acs.cpp
	src/p_enemy.cpp
	src/p_interaction.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_expression.cpp

(Scripting branch update part 4)
2015-04-28 11:59:33 +02:00
Christoph Oelckers
d6e3fc0567 Merge commit 'fb9231a38db2025eb77bfd246f36d985cbbccd2e' into scripting
Conflicts:
	src/info.cpp
	src/thingdef/thingdef_expression.cpp
	wadsrc/static/actors/constants.txt

(Scripting branch update part 2)
2015-04-28 09:57:01 +02:00
Edward Richardson
0fd93cc033 Slightly more information on ACS serialize errors 2015-04-25 18:10:26 +12:00
Randy Heit
8d501fdb9f Fix some issues with changing player viewheight at runtime
- Viewheight change was delayed: Viewheight must be copied to player
  structure as well as the PlayerPawn. Not sure if should actually use
  deltaviewheight to spread the change out over a few tics instead of
  being instant.
- Viewheight not preserved when travelling: player->viewheight must be
  restored from pawn->ViewHeight, because the temporary player set it back
  to the default viewheight.
2015-04-22 23:22:27 -05: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
Christoph Oelckers
47543bb766 - while we're at it, let's also wrap line ID searches in an iterator class so that we can do multiple IDs per line later as well. 2015-04-15 00:47:06 +02:00
Christoph Oelckers
425e5b9ffc - replaced P_FindSectorFromTag with an FSectorTagIterator class.
This is done to encapsulate the gory details of tag search in one place so that the implementation of multiple tags per sector remains contained to a few isolated spots in the code.
This also moves the special 'tag == 0 -> activate backsector' handling into the iterator class.
2015-04-14 22:39:57 +02:00
Christoph Oelckers
238046655c - wrapped all accesses to the sector tag into accessor functions, as preparation for allowing multiple tags per sector. 2015-04-14 18:32:14 +02:00
arezey
e40f3c7350 Merge branch 'master' of https://github.com/crimsondusk/zdoom 2015-04-12 02:16:34 +03:00
Randy Heit
89054f5d60 Use filtering and LOADACS to autoload strfhelp.o
- No more special case for STRFHELP in the executable!
2015-04-04 18:40:48 -05:00
Teemu Piippo
ca012bc9be - adapted AActor to use TFlags 2015-04-04 19:40:43 +03:00
Braden Obrzut
5f56fb5a16 Changed the behavior of SetActorTeleFog.
- Don't force "null" to resolve to no actor since "none" is already defined as NULL (via FindClass). (This change also applies to the decorate properties.)
- Passing an empty actor name will keep the existing fog since there's otherwise no way set only one fog. Since "none" works to remove the fog, I see no reason not to have this option.
2015-03-30 21:54:58 -04:00
Braden Obrzut
e29b8b2094 - Fixed: QuakeEx ACS function didn't handle fixed->double conversion. 2015-03-24 00:02:25 -04:00
MajorCooke
b6ca1947ff Added QuakeEx for ACS. ACC is ready as well. 2015-03-12 09:26:47 +01:00
Edoardo Prezioso
d61c48db25 - Fixed imprecise bound checking in ACS code.
It was possible to access 'playeringame[8]', outside the [0:7] buffer range. Discovered with GCC 4.9 + Address Sanitizer.
2015-03-04 20:37:49 +01:00
Braden Obrzut
f941fa9e40 - Fixed: SwapActorTeleFog didn't work with tid 0 (activator). 2015-03-02 17:25:35 -05:00
Randy Heit
867bfd2751 Typo fix: concidered -> considered 2015-02-08 21:07:28 -06:00
Randy Heit
c3227729e7 Remove superfluous if in DoGiveInv()
- I'm assuming this check was here for a reason, but when both branches of
  the if do the same thing and it's been this way since before recorded
  history, it's not obvious what was intended here.
2015-02-08 20:54:13 -06:00
Randy Heit
fd7ed2bc25 Undo most of ZzZombo's changes
- "If it ain't broke, don't fix it."
- Some of the changes were downright wrong and some were pointless, so undo
  everything that doesn't look like an actual improvement.
2015-02-08 20:44:18 -06:00
ZzZombo
c4b742ebf0 - Part 2 of the sanity crusade. 2015-02-08 17:03:49 +08:00
Randy Heit
775e33ede7 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_doom/a_archvile.cpp
	src/g_shared/a_morph.cpp
	src/p_enemy.h
	src/p_local.h
	src/p_mobj.cpp
	src/sc_man_tokens.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_exp.h
	src/thingdef/thingdef_expression.cpp
	src/thingdef/thingdef_states.cpp
	wadsrc/static/actors/actor.txt
2015-01-29 20:53:08 -06:00
Benjamin Moir
6dff8da503 Added +NODECAL and +FORCEDECAL actor flags
Added FHF_NOIMPACTDECAL for LineAttack
2015-01-20 12:05:00 +10:30
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
Randy Heit
f76d137d33 Be less ugly when hiding warnings for using the %B formatter
- Take advantage of the new _Pragma operator to hide the printf warning
  suppression inside of macros instead of needing to litter the code
  around Printfs with a bunch of junk.
2014-12-26 18:58:59 -06:00
Randy Heit
ec98937c88 Read script number as signed when parsing SARY chunks
- Fixed: Script arrays didn't work in named scripts because the loader
  read the script number as an unsigned word, hence it would never find
  named scripts, since they are stored with negative numbers.
2014-12-26 14:41:01 -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
7bc2e5c67e - Tiny fix to ACS. 2014-12-19 06:21:37 -06:00
MajorCooke
2747f9a9f3 - Make ACS SetTeleFog follow the same format as the DECORATE version too. 2014-12-18 09:29:23 -06:00
MajorCooke
ba346616e5 - Fixed: ACS version of SetTeleFog and SwapTeleFog targeted the caller despite TID. 2014-12-18 09:24:35 -06:00
MajorCooke
93ca8502dd - Rewrote a bunch of things for stability. 2014-12-17 21:47:00 -06:00
Edward Richardson
a418f564e9 Fixed message duplication in logs
- Any printed hud messages would have duplicate entries in logs.
2014-11-28 16:34:42 +13:00
Christoph Oelckers
7f8c0b4f64 Merge branch 'ACS_check' of https://github.com/Edward850/zdoom 2014-11-25 16:29:02 +01:00
Christoph Oelckers
64d88166cc Merge branch 'APROP_DamageMultiply' of https://github.com/Edward850/zdoom 2014-11-25 16:28:36 +01:00
Edward Richardson
3437f4fcab Check ACS module size in saved games 2014-11-21 17:49:57 +13:00
Edward Richardson
99b2cfa147 Added APROP_DamageMultiply
- Used with Set/GetActorProperty, adds a generic multiplier for damage a
source deals.
2014-11-20 18:57:40 +13:00
alexey.lysiuk
1bda54f3cd Fixed a few endian issues in ACS system
KDiZD Intro, a.k.a. Title Map, is now played correctly; camera on Z1M1 is functional
2014-11-16 13:15:56 +02:00
Edward Richardson
5170abfeed DACSThinker can exist with no scripts 2014-11-09 22:57:14 +13:00
Edward Richardson
e3640b5bf5 Stop DLevelScript from recursively Serializing 2014-11-09 21:06:50 +13:00
alexey.lysiuk
8f915c9dcc Fixed broken ACS on Big Endian platforms
This fixes maps transition in Strife
http://forum.zdoom.org/viewtopic.php?f=2&t=36754
2014-11-02 15:58:47 +02:00
Christoph Oelckers
ccbdcfea81 Merge branch 'master' of https://github.com/j-palomo/zdoom 2014-10-21 14:28:31 +02:00
John Palomo Jr
82255c4dfd Using PickActor will only set the TID if the picked actor doesn't have a TID already. An optional 8th parameter (bool forceTID) was added to revert to the old behavior. 2014-10-19 20:52:48 -04:00
ChillyDoom
db323643f8 - Renamed FBot to DBot and made it inherit from DThinker.
- Fixed: Bots added by players other than the net arbitrator did not have their skill set.
2014-10-14 19:57:11 +01:00
ChillyDoom
83d84eaae9 - Moved bot related variables from player_t into a new FBot class. 2014-10-13 18:40:25 +01:00
Christoph Oelckers
81076abba2 Merge branch 'canraise' of https://github.com/GitExl/zdoom
Conflicts:
	src/p_acs.cpp
2014-09-29 00:42:09 +02: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
John Palomo Jr
79d9a573bb Added AProp_MeleeRange to SetActorProperty. 2014-09-24 03:56:20 -04:00
GitExl
bb3d2fa535 Add CanRaiseActor ACS function. 2014-09-23 12:10:39 +02:00
GitExl
313b229319 Add PickActor ACS function. 2014-09-21 16:43:17 +02:00
MajorCooke
16a380f82a - Added Blue Shadow's DropInventory ACS function. 2014-09-19 17:27:18 -05:00
Edoardo Prezioso
1c96039d7a - Fixed miscompilation with Clang 3.5.0.
The optimizer miscompiles the function FBehavior::LoadScriptsDirectory and causes random crashes when zdoom is run with wads containing scripts.
As said in the comment, I just hope that the Clang devs fix it for the next patching release, ie 3.5.1.
2014-09-15 19:46:43 +02:00
Christoph Oelckers
5364116354 - fixed: APROP_Friendly did not manage monster counting correctly. 2014-08-23 13:24:15 +02:00
Christoph Oelckers
f0eccb9d15 - BlueShadow's submission for keeping the max save amount of BasicArmorPickups around when picking up armor bonuses. 2014-08-11 10:08:49 +02:00
Christoph Oelckers
1fcde91298 - BlueShadow's GetArmorInfo submission. 2014-08-08 09:25:35 +02:00
alexey.lysiuk
6ef67e1d3e Fixed build on compilers other than MSVC
No more "Call to 'LittleShort' is ambiguous" error
2014-08-02 13:14:25 +03:00
Randy Heit
ea7ba9dba3 Add per-actor friction
- This is multiplied by the sector's friction.
- This is intentionally not serialized yet, while awaiting feedback.
2014-07-28 23:15:50 -05:00
Randy Heit
4c6edd5e58 Add script array support to ZDoom 2014-07-28 21:02:20 -05:00
Braden Obrzut
84cb49b074 - Fixed: Legacy render style array was in the wrong order. 2014-07-16 19:19:20 -04:00
Christoph Oelckers
400a573e65 - fixed: ACS's LineAttack function with a valid tid still used the activator as the attack's source. 2014-07-13 09:12:46 +02:00
Christoph Oelckers
25f4af734f - fixed: ACS's check...Texture functions must use the same search flags as the texture initialization code in p_setup.cpp and p_udmf.cpp. It also should not create textures that don't exist yet. We are only doing a comparison so it's not relevant if the texture exists or not. 2014-05-16 10:56:23 +02:00
Christoph Oelckers
a375454474 - removed 8 character limit for map names. 2014-05-14 00:52:16 +02:00