Commit graph

342 commits

Author SHA1 Message Date
Christoph Oelckers
6f28735b45 Merge branch 'zmaster' 2016-03-03 02:53:07 +01:00
Christoph Oelckers
f5fd0df077 - made P_AimLineAttack work through sector portals.
Note: Test output not removed yet!
2016-03-02 20:44:02 +01:00
Christoph Oelckers
e3c06e3df7 Merge commit '165d26baa1569685651baf4575e12e73c8cbfd2e'
# Conflicts:
#	bzip2/bzip2.vcproj
#	game-music-emu/game-music-emu.vcproj
#	gdtoa/gdtoa.vcproj
#	jpeg-6b/jpeg-6b.vcproj
#	src/p_spec.cpp
#	src/r_defs.h
#	tools/fixrtext/fixrtext.vcproj
#	tools/lemon/lemon.vcproj
#	tools/updaterevision/updaterevision.vcproj
#	tools/zipdir/zipdir.vcproj
#	wadsrc/static/xlat/eternity.txt
#	wadsrc/wadsrc.vcproj
#	zlib/zlib.vcproj
2016-03-01 17:23:35 +01: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
2584108200 - removed the one-sided line portals on polyobjects only limitation. Using Eternity's polyportal testmap shows that it expects one-sided crossable portals on non-polyobject walls.
- converted the P_TranslatePortal* functions to use floating point trigonometry. The combination of R_PointToAngle and finesine even created discrepancies with perfectly parallel portals which is just not acceptable.
- added a function to FPathTraverse to relocate the trace and restart from the new position.
- made P_UseLines portal aware. Traversal through line portals is complete (all types, even teleporters), whether sector portals need better treatment remains to be seen - at the moment it only checks the range at the player's vertical center.
2016-03-01 01:36:36 +01:00
Christoph Oelckers
07771bd56e - changed parameter of P_GetOffsetPosition to a simple coordinate so that it can be used for other things than actors. 2016-02-29 16:29:51 +01:00
Christoph Oelckers
bb4bd76257 Merge branch 'zmaster' 2016-02-26 11:54:08 +01:00
Christoph Oelckers
60c2a55ec4 - added P_GetOffsetPosition calls to all needed functions. 2016-02-26 11:52:53 +01:00
Christoph Oelckers
eafd2519b4 - fixed a few incorrect uses of AngleTo function.
- added portal offsetting to all AproxDistance, AngleTo and Vec*To members of AActor.
- optimized displacement retrieval so that the most common case with no offset retrieves a constant null-vector which can be optimized away fully by the compiler.
- early out in P_GetOffsetPosition if there's no portal lines nearby, so that the common case can skip the traverser completely even on maps with line portals.
2016-02-26 11:52:50 +01:00
Christoph Oelckers
954f03e531 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/actor.h
2016-02-25 01:40:36 +01:00
Christoph Oelckers
e11da06e69 - some preparations for actor interpolation through wall portals. 2016-02-25 00:41:31 +01:00
Christoph Oelckers
8362a4516f Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-24 11:26:35 +01:00
Christoph Oelckers
b01e0fa06e - removed debug output from portal transition code.
- handle the case where a portal transition crosses more than a single boundary in one move.
2016-02-24 10:08:23 +01:00
Christoph Oelckers
01bdd8a7da - actor transition through a sector portal is working. 2016-02-24 01:16:07 +01:00
Christoph Oelckers
e107d8ff48 Merge remote-tracking branch 'remotes/zdoom/master'
# Conflicts:
#	src/portal.h
#	src/r_defs.h
2016-02-22 16:06:31 +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
3841a5f626 - implemented FMultiBlockLinesIterator for checking a position across portals. This is not fully tested yet. 2016-02-19 10:39:40 +01:00
Christoph Oelckers
56202c49f1 Merge branch 'master' of c:\programming\doom-dev\zdoom
# Conflicts:
#	.gitignore
2016-02-16 21:02:13 +01:00
Christoph Oelckers
22e8678903 - refactored P_CollectConnectedGroups to avoid frequent heap allocations for the common cases
* the temporary checking arrays are now static
 * the array that gets the returned values only starts allocating memory when the third touched sector group is found. The most common cases (no touched portal and one touched portal) can be handled without accessing the heap.

- did some streamlining of AActor::LinkToSector:

 * there's only now version of this function that can handle everything
 * moved the FIXMAPTHINGPOS stuff into a separate function.
 * removed LinkToWorldForMapThing and put all special handling this function did into P_PointInSectorBuggy.
2016-02-16 12:51:10 +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
6df435c8c5 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-11 22:58:16 +01:00
Christoph Oelckers
584147b8bb - removed all occurences of FVector2 and FVector3 from the playsim code. 2016-02-11 20:01:12 +01:00
Christoph Oelckers
1098093ead Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-10 20:49:32 +01:00
Christoph Oelckers
a7254a4af5 - removed the conversion operators from the fixedvec structs (again)
They must have been accidentally left in by not properly resolving a merge conflict, I guess.
2016-02-10 14:43:04 +01:00
Christoph Oelckers
15d5a5256f Merge branch 'master' of ZDoom
# Conflicts:
#	.gitignore
#	src/win32/i_system.cpp
2016-02-09 14:41:31 +01:00
Randy Heit
8d159b8506 Add OF_StateChanged handling to NoDelay 2016-02-08 22:11:42 -06:00
Christoph Oelckers
0678a469de Merge remote-tracking branch 'remotes/zdoom/master'
# Conflicts:
#	src/win32/i_system.cpp
#	tools/re2c/re2c.vcproj
2016-02-08 21:47:19 +01:00
Christoph Oelckers
dda73b531c Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
#	src/p_setup.cpp
#	src/r_defs.h
#	src/version.h

This only updates to a compileable state. The new portals are not yet functional in the hardware renderer because they require some refactoring in the data management first.
2016-02-05 12:31:41 +01:00
MajorCooke
35b7a5ccc1 Updated for scripting branch merge. 2016-02-04 22:41:02 -06:00
Edward Richardson
f2025e6a2f Fixed possible issue with GCC/Clang 2016-02-05 12:52:29 +13: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
MajorCooke
a1c1de9edb Fixed merge conflicts. 2016-02-02 18:26:20 -06:00
Christoph Oelckers
d797415745 - fixed: dynamic lights did not relink themselves when their position changed. 2016-02-02 11:58:00 +01:00
Christoph Oelckers
d8d4679471 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-25 21:13:04 +01:00
Christoph Oelckers
c4377b7039 - removed the implicit fixedvec -> TVector conversions because they caused too many problems. Also reviewed all uses of these and made the necessary adjustments. Problems were present in P_SpawnMissileXYZ and P_Thing_Projectile.
- replaced some single precision float math with doubles.
2016-01-23 20:44:33 +01:00
Christoph Oelckers
1a631670fb Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-22 01:11:08 +01: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
alexey.lysiuk
f10dd68ca6 Fixed actors intersection check 2016-01-21 16:21:09 +02:00
Christoph Oelckers
8f7be01dd4 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/r_data/r_interpolate.cpp
2016-01-21 12:09:12 +01:00
Christoph Oelckers
c78344c19d Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/p_user.cpp
	src/thingdef/thingdef_expression.cpp
2016-01-20 15:16:06 +01:00
Christoph Oelckers
68c0f929dc - refactoring complete. The source compiles again with the renamed position variable. 2016-01-20 15:12:51 +01:00
Christoph Oelckers
25107ed421 - since I had to shuffle around the first variables in AActor, let's better commit that change. 2016-01-20 13:49:52 +01:00
Christoph Oelckers
4b9647e539 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_hexen/a_hexenspecialdecs.cpp
	src/g_strife/a_thingstoblowup.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-20 11:45:57 +01:00
Christoph Oelckers
7ea3e49332 - refactored p_mobj.cpp and the first half of p_map.cpp. 2016-01-20 01:48:57 +01:00
Christoph Oelckers
b73e1e65f5 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
2016-01-19 20:17:34 +01:00
Christoph Oelckers
7658111566 - refactoriung of thingdef_codeptr.cpp - probably the ugliest file in the entire project... 2016-01-19 20:15:45 +01: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
Christoph Oelckers
9f78bcd1e6 - Strife game code refactored for coordinates. 2016-01-19 11:50:07 +01:00
Christoph Oelckers
6ae09334a3 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/r_defs.h
2016-01-19 10:51:42 +01:00
Christoph Oelckers
069889c5ce Merge remote-tracking branch 'remotes/zdoom/master' 2016-01-19 10:46:59 +01:00