Commit graph

87 commits

Author SHA1 Message Date
terminx
b0a4b6a1ee Convert loops using unsigned integers as iterators to use regular signed ints instead
https://kristerw.blogspot.com/2016/02/how-undefined-signed-overflow-enables.html

Doing this as cleanly as possible involved demoting several function parameters concerning object sizes and counts from size_t to int--I'm fine with this change as the functions in question are not actually capable of handling input with sizes larger than what can be stored in a signed 32-bit integer, making the use of size_t here misleading at best.

git-svn-id: https://svn.eduke32.com/eduke32@7673 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/tilepacker.cpp
2019-09-20 10:04:24 +02:00
terminx
509febe25a Fix actor z position update bug
git-svn-id: https://svn.eduke32.com/eduke32@7667 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:42 +02:00
terminx
549ef41eb7 EDUKE32_STANDALONE stuff
git-svn-id: https://svn.eduke32.com/eduke32@7666 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:40 +02:00
terminx
562e6f419c Use function overloading to clean up some of the CON event execution function names
git-svn-id: https://svn.eduke32.com/eduke32@7636 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:37 +02:00
terminx
e9116bd23a Add SFLAG_QUEUEDFORDELETE, to handle detection and manipulation of things like decal sprites marked for deletion
git-svn-id: https://svn.eduke32.com/eduke32@7604 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:51:41 +02:00
terminx
301ac48ccd Utilize the types added in the previous commit
This patch is a bit large.

git-svn-id: https://svn.eduke32.com/eduke32@7603 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/mdsprite.h
#	source/build/src/build.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
2019-09-19 14:46:31 +02:00
terminx
91d8953420 Patch from Fox adding SFLAG_NOWATERSECTOR, to prevent certain sprites from moving into water
git-svn-id: https://svn.eduke32.com/eduke32@7489 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:33 +02:00
pogokeen
0bfde1c4d3 Fix issue where swingdoors would refuse to open or close if an enemy was in front of the door in an overlapping but unrelated/disjoint sector
git-svn-id: https://svn.eduke32.com/eduke32@7473 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:35 +02:00
terminx
b62fa1fa5c Fix stupid bug in r7409
git-svn-id: https://svn.eduke32.com/eduke32@7461 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:23:47 +02:00
terminx
b65bfefd0f Revert change to enemy step heights that wasn't working out
git-svn-id: https://svn.eduke32.com/eduke32@7448 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:24:13 +02:00
terminx
d48ca24079 This should fix most of the remaining issues with projectiles colliding with ledges they shouldn't be hitting
git-svn-id: https://svn.eduke32.com/eduke32@7436 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:14:26 +02:00
terminx
d869e612e4 Fix stupid typo in hardcoded Duke3D actor
git-svn-id: https://svn.eduke32.com/eduke32@7426 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-13 00:51:02 +02:00
terminx
da6b01bf8e Improve collision for projectiles
This does a few things:

-projectiles now use clipmovex() instead of clipmove() (this is like CON_CLIPMOVENOSLIDE)
-the z distances passed to clipmove() are now calculated from the sprite's size instead of being hard-coded
-projectiles now move as if they had SFLAG_NOCLIP applied for the first tic after spawning

git-svn-id: https://svn.eduke32.com/eduke32@7409 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:27 +00:00
terminx
c7f003a1a9 Remove a couple of blocks in A_MoveSpriteClipdist() from standalone builds and call setsprite() unconditionally before doing any movement
git-svn-id: https://svn.eduke32.com/eduke32@7406 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:16 +00:00
terminx
06ac4f88b9 This fixes S_CheckSoundPlaying() and makes CON_IFSOUND work correctly in scripts that run during menus. These changes together fix the exchange between Duke and Lani at the end of episode 3 of Duke3D.
git-svn-id: https://svn.eduke32.com/eduke32@7279 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:25 +00:00
terminx
b4404978d6 Change A_AddToDeleteQueue() to call A_DeleteSprite() on sprites it removes from the queue directly, as sprites with statnums other than STAT_ACTOR and STAT_MISC are not deleted automatically when their xrepeat is 0. This fixes using CON_INSERTSPRITEQ with sprites of statnums other than STAT_ACTOR and STAT_MISC.
git-svn-id: https://svn.eduke32.com/eduke32@7275 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:03 +00:00
terminx
ef6a60396c Remove unnecessary spriteNum argument from P_Submerge() and P_Emerge()
git-svn-id: https://svn.eduke32.com/eduke32@7243 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:15 +00:00
seventyfive
87cf4495bf - Packet code implementation (merge from private c/s repo), world updates are now synced through snapshots. See tag SVN_SyncPoint_Dec2018 on master of the other repo.
- "Scratch pad" sprites implementation, to avoid desyncs in sprite indexes, clients will insert temporary sprites which are cleared out when they receive the next snapshot from the server.
- Patches from Striker which fix player stomping frag counts, the accept button when hosting a game through the menu, and a "noffire" command line parameter.
- Patches from NY00123: t_data sync optimizations to improve some jittery behavior on the client side.

git-svn-id: https://svn.eduke32.com/eduke32@7242 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-08 00:40:39 +00:00
terminx
1cbdb901bd This one is for Hendricks
git-svn-id: https://svn.eduke32.com/eduke32@7223 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:25 +00:00
terminx
279bdca726 Was checking something out for a mapper and noticed this block of code should be nested deeper.
git-svn-id: https://svn.eduke32.com/eduke32@7222 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:19 +00:00
terminx
0d652ae063 Switch VM_EventCommon to use references
git-svn-id: https://svn.eduke32.com/eduke32@7205 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:44 +00:00
terminx
3aaa5e04aa Clean up some of the level initialization and player value reset functions that live in premap.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7171 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:51 +00:00
terminx
86496a8126 CON structure member access readability cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7169 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:38 +00:00
terminx
ad7d61baa1 Use range-based loops for simplicity
git-svn-id: https://svn.eduke32.com/eduke32@7130 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:40 +00:00
terminx
af728b2641 Remove a few useless forward declarations and const-ify a couple of function parameters. Yawn.
git-svn-id: https://svn.eduke32.com/eduke32@7070 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:08:50 +00:00
terminx
7b1cdb6f12 Remove redundant statements. This commit doesn't actually do anything.
git-svn-id: https://svn.eduke32.com/eduke32@7066 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 19:15:38 +00:00
terminx
eee0a71496 Remove dead code branch from RECON (logic oversight) and get rid of a useless fallthrough__
git-svn-id: https://svn.eduke32.com/eduke32@7047 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:23:53 +00:00
terminx
e6277dd8da Replace a bunch of fall-through comments with our fallthrough__ macro.
git-svn-id: https://svn.eduke32.com/eduke32@6976 1a8010ca-5511-0410-912e-c29ae57300e0
2018-09-04 05:57:41 +00:00
terminx
8d72c6e5c5 Disable a few more hard-coded sounds in EDUKE32_STANDALONE builds
git-svn-id: https://svn.eduke32.com/eduke32@6975 1a8010ca-5511-0410-912e-c29ae57300e0
2018-09-01 19:36:20 +00:00
terminx
2738d8e2a4 Add PROJECTILE_RPG_IMPACT_DAMAGE flag for projectiles, 0x00400000. This makes PROJECTILE_RPG_IMPACT function more or less how it did prior to late 2016 when an issue involving the damage was identified and fixed, and moves the damage to the new flag.
git-svn-id: https://svn.eduke32.com/eduke32@6974 1a8010ca-5511-0410-912e-c29ae57300e0
2018-09-01 19:36:15 +00:00
hendricks266
104bdb131b Fix warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
git-svn-id: https://svn.eduke32.com/eduke32@6949 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-23 02:55:53 +00:00
terminx
b2e788b7e9 EDUKE32_STANDALONE stuff
git-svn-id: https://svn.eduke32.com/eduke32@6942 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-21 00:18:03 +00:00
terminx
983781b56d Fix issue with viewing the player sprite through a security camera
git-svn-id: https://svn.eduke32.com/eduke32@6927 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-21 04:12:04 +00:00
terminx
725d556bc4 Fix conveyor belt speed in IM, but not Duke because it breaks gameplay
git-svn-id: https://svn.eduke32.com/eduke32@6914 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-09 20:36:47 +00:00
terminx
0dd623a7fe Don't spawn hardcoded Duke3D debris/guts/glass sprites when compiled as EDUKE32_STANDALONE
git-svn-id: https://svn.eduke32.com/eduke32@6911 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-09 20:36:31 +00:00
terminx
9c313158e8 Rework SE26 movement to function more like SE14 than SE24
git-svn-id: https://svn.eduke32.com/eduke32@6910 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-09 20:36:24 +00:00
terminx
326af0d062 Fix SFLAG_WAKEUPBADGUYS
git-svn-id: https://svn.eduke32.com/eduke32@6908 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-05 21:59:52 +00:00
pogokeen
712646f713 actors.cpp: improve SE_11_SWINGING_DOOR detection and handling of players that block a door's path
git-svn-id: https://svn.eduke32.com/eduke32@6893 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-22 10:01:17 +00:00
hendricks266
7c7b8f62a9 CON: Revert r6526 and r6527. This restores the longstanding behavior of the killit command, and setting sprites' xrepeat to zero, to not actually delete sprites unless their statnum is STAT_ACTOR or STAT_MISC. Be sure to set a sprite's statnum to one of these statnums if you want it to be deleted.
This should fix the broken E1L1 sector warp in the existing release of the Duke 64 mod, and the Polymer light culling used in HHR.

git-svn-id: https://svn.eduke32.com/eduke32@6892 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-22 05:59:08 +00:00
terminx
1fd209444f Continuing the quest for clearer function names
git-svn-id: https://svn.eduke32.com/eduke32@6829 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:12 +00:00
terminx
0340e3cc0f Engine function name cleanup round 2
git-svn-id: https://svn.eduke32.com/eduke32@6828 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:51 +00:00
terminx
ad75d09d57 Use FindDistance3D() instead of sepdist() directly because we don't need/want it inlined here
git-svn-id: https://svn.eduke32.com/eduke32@6816 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-06 01:43:03 +00:00
terminx
34525aa853 Standalone build warning fix
git-svn-id: https://svn.eduke32.com/eduke32@6806 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-05 04:39:23 +00:00
terminx
23471fdf0a Build fixes, oops
git-svn-id: https://svn.eduke32.com/eduke32@6805 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-04 21:06:07 +00:00
terminx
316db0ee5e Guards
git-svn-id: https://svn.eduke32.com/eduke32@6804 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-04 20:48:15 +00:00
terminx
d9b24b8f5c #ifndef EDUKE32_STANDALONE guard a bunch of hardcoded behavior
git-svn-id: https://svn.eduke32.com/eduke32@6798 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-02 22:00:44 +00:00
terminx
f978ba0d07 Optimize A_RadiusDamage()
git-svn-id: https://svn.eduke32.com/eduke32@6796 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-02 22:00:33 +00:00
terminx
aba97eb6a9 Fix hitradius performance when affecting tons of walls
git-svn-id: https://svn.eduke32.com/eduke32@6793 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-02 22:00:17 +00:00
hendricks266
f19607daa8 Fix build
git-svn-id: https://svn.eduke32.com/eduke32@6775 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-17 06:44:27 +00:00
hendricks266
928ce686a6 CON: Add EVENT_DAMAGESPRITE, EVENT_POSTDAMAGESPRITE, EVENT_DAMAGEWALL, EVENT_DAMAGECEILING, and EVENT_DAMAGEFLOOR.
In these events, THISACTOR is the projectile (or source of damage), and RETURN is the sprite/wall/sector affected.
Set RETURN to -1 to cancel any hardcoded effects.
ud.return 1 through 5 are the parameters passed to hitradius if RADIUSEXPLOSION is the source of the damage. ud.return 1 is -1 otherwise.

New tokens "damageeventtile" and "damageeventtilerange" or tiledata[].gameflags & SFLAG_DAMAGEEVENT to enable processing for receivers with corresponding tilenums.

CON commands to replicate hardcoded effects (beyond switching tilenums, such as spawning glass) are forthcoming.

Use of EVENT_DAMAGEHPLANE is hereby discouraged.

Patch from Striker, based on work by Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6771 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-17 03:26:10 +00:00