This works around a flaw in the .ext loading logic that I don't have time to debug right now.
git-svn-id: https://svn.eduke32.com/eduke32@7882 1a8010ca-5511-0410-912e-c29ae57300e0
I don't know that this is any faster, but there's something to be said for standardization and consistency. I will be making most of this stuff use bitmap_set/test/clear() soon.
git-svn-id: https://svn.eduke32.com/eduke32@7876 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
This was removed a long time ago because Duke3D and Shadow Warrior don't use it.
git-svn-id: https://svn.eduke32.com/eduke32@7873 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
and additionally modifying G_SetupCamTile() to call EVENT_DISPLAYROOMSCAMERATILE after calling renderSetTarget()
git-svn-id: https://svn.eduke32.com/eduke32@7852 1a8010ca-5511-0410-912e-c29ae57300e0
This automatically saves the dependencies used for a given object file during the first compilation, then uses the generated data for each subsequent compile to determine if the object needs to be rebuilt. Why? Because if I see one more warning about the C++ One Definition Rule, I'm going to fucking snap.
git-svn-id: https://svn.eduke32.com/eduke32@7839 1a8010ca-5511-0410-912e-c29ae57300e0
These updatesector counterparts are more performant for tasks that require determining whether nearby sectors exist at a point as they will not exhaustively search the map.
This also leads to more correct behaviour when sectors are disjoint, as queries will breadth-first search neighbouring sectors rather than risk accidentally stumbling first across accomodating disjoint sectors.
git-svn-id: https://svn.eduke32.com/eduke32@7805 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/build.h
Normally I wouldn't be in favor of changing indexes that are already exposed to scripts around, but gamefunc_AutoRun is a locally handled key that doesn't have any script events associated with it, and gamefunc_Alt_Fire is pretty important to have up near the top wherever gamefuncs are listed.
git-svn-id: https://svn.eduke32.com/eduke32@7762 1a8010ca-5511-0410-912e-c29ae57300e0
Now, destination and subject locators should be assigned one hitag channel. Destination locators will be visited starting from lotag 0 and counting upward.
Subject locators can have any lotag within the same hitag channel, and may also be a destination if the lotag is not separated from the destination locator ids.
Destination locators must now specify their subject locator in their owner field by lotag.
git-svn-id: https://svn.eduke32.com/eduke32@7739 1a8010ca-5511-0410-912e-c29ae57300e0
Additionally, raise minimum number of stencil buffer bits to accomodate future use of the stencil buffer.
git-svn-id: https://svn.eduke32.com/eduke32@7736 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/build.h
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/kenbuild/src/game.cpp
EVENT_RESETGOTPICS is called after the last call to EVENT_DISPLAYROOMS in a frame, but before any engine-side calls to renderDrawRoomsQ16()
git-svn-id: https://svn.eduke32.com/eduke32@7734 1a8010ca-5511-0410-912e-c29ae57300e0
Additionally, prefer rendering early and compensating with a late frame due to clock precision rather than the other way around so that we are more consistently within a target vblank period.
git-svn-id: https://svn.eduke32.com/eduke32@7731 1a8010ca-5511-0410-912e-c29ae57300e0
videoNextPage() is now called immediately after preparing the frame for drawing, outside of G_FPSLimit() but on the condition that its return value is true.
git-svn-id: https://svn.eduke32.com/eduke32@7730 1a8010ca-5511-0410-912e-c29ae57300e0
Allow the demo camera to be used while not playing back a recorded demo.
Add the ability for the camera to follow paths specified by locators.
git-svn-id: https://svn.eduke32.com/eduke32@7727 1a8010ca-5511-0410-912e-c29ae57300e0
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.
git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/mdsprite.cpp
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/build/src/texcache.cpp
# source/build/src/voxmodel.cpp
This may also fix a minor performance regression introduced in Polymer sometime after we switched to building as C++, caused by confusion between STRUCT_TRACKERS_ENABLED and UNTRACKED_STRUCTS. UNTRACKED_STRUCTS is now named UNTRACT_STRUCTS__ to dissuade use outside of buildtypes.h.
git-svn-id: https://svn.eduke32.com/eduke32@7695 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
This improves, but doesn't fix, the issue with sound popping when the player angle changes.
git-svn-id: https://svn.eduke32.com/eduke32@7676 1a8010ca-5511-0410-912e-c29ae57300e0
This removes some of the error handling for gamevar reads and writes and trades it for simpler code and a small-but-benchmarkable performance increase.
git-svn-id: https://svn.eduke32.com/eduke32@7674 1a8010ca-5511-0410-912e-c29ae57300e0
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
"Add 'bsubweapon' player structure. Same as 'subweapon', except that it writes a bit for each weapon. For example, 'ife player[].bsubweapon GROW_WEAPON 1' has the same result as 'ifand player[].subweapon 2048'."
git-svn-id: https://svn.eduke32.com/eduke32@7668 1a8010ca-5511-0410-912e-c29ae57300e0
I don't remember if there was any particular reason they were added as gamevars in the first place.
git-svn-id: https://svn.eduke32.com/eduke32@7664 1a8010ca-5511-0410-912e-c29ae57300e0