Commit graph

457 commits

Author SHA1 Message Date
Christoph Oelckers
fb4da6bbd4 - added some utilities.
This also had to use explicit types in a few places to clear ambiguities.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
793e9b7623 - renamed DDukeActor::floorz, ceilingz. 2022-10-02 20:46:56 +02:00
Christoph Oelckers
4d423004e9 - unlimited the displayable sprites.
Now with Polymost gone this can finally be done properly.
2022-08-07 10:25:15 +02:00
Christoph Oelckers
3ca9052b7a - deleted updateanimation function for models.
It is currently unused and will certainly have to redone once model support is added for the new renderer.
Since this tries to guess game state from purely engine-side data it has its share of major problems, most importantly it is not compatible with games other than Duke.
2022-08-07 08:58:59 +02:00
Christoph Oelckers
4f2170655c - animateoffs cleanup and consolidation
This was rewritten based on specs alone - it still doesn’t look that different due to its simplicity.
2022-08-05 23:32:16 +02:00
Christoph Oelckers
83c0ad55f2 - rewrote nextsectorneighborzptr with a better parameter interface 2022-08-05 18:43:48 +02:00
Christoph Oelckers
ec66f39535 - replaced a few naked chars with better types. 2022-08-05 17:04:46 +02:00
Christoph Oelckers
48b6ce2f4d - replaced spriteheightofsptr with a method in DCoreActor. 2022-08-05 17:04:46 +02:00
Christoph Oelckers
dcb4e1e39b - updatesector* cleanup.
got rid of all remaining Build code in here, stripped down the wrapper interface and moved everything into a separate header file.
2022-08-05 17:04:46 +02:00
Christoph Oelckers
e1eb54ecda - replaced sectordist with a floating point variant with better precision. 2022-08-05 17:04:46 +02:00
Christoph Oelckers
b31e6c0bdf - replaced getclosestpointonwall_internal with a floating point version based on NearestPointLine. 2022-08-05 17:04:46 +02:00
Christoph Oelckers
c2fc7577db - cleanup of 3D viewport code.
Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
4ec748a92b - removed some unused variables and declarations. 2022-08-05 17:04:45 +02:00
Christoph Oelckers
b60181eed5 - variable cleanup. 2022-08-03 15:58:18 +02:00
Christoph Oelckers
291726cc55 - removed the Polymost renderer. 2022-08-03 15:50:27 +02:00
Christoph Oelckers
7374364527 - doFurniture floatified and inside rewritten as a floating point algorithm that works without bit masking. 2022-02-15 22:18:25 +01:00
Christoph Oelckers
0398ba4ff0 - added all parts needed to implement the actor property parser.
Not hooked up yet with the rest of the code, this just adds the needed files in compilable form.
2022-01-23 13:03:39 +01:00
Christoph Oelckers
3aff12cf4c - sky management rework. 2022-01-16 12:12:43 +01:00
Christoph Oelckers
ddcee4ecbf - split up g_visibility into two variables.
This is preparation for experimenting with the weapon flashes that can be quite annoying with how they brighten distant parts of the level far more than nearby parts.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
a9b162b8e9 - moved the tsprite flags from cstat2 to clipdist which was already holding other ones.
cstat2 should only hold flags for game-side sprites.
2021-12-30 19:00:35 +01:00
Christoph Oelckers
4bc32e2777 - use actors in the sloped sprite utilities. 2021-12-30 16:11:14 +01:00
Christoph Oelckers
50a3089648 - eliminated tspriteptr_t and moved a few polymost-exclusive inlines into polymost.cpp. 2021-12-30 11:51:33 +01:00
Christoph Oelckers
44d2cc1951 - eliminated usectorptr_t. 2021-12-30 11:45:58 +01:00
Christoph Oelckers
285a5f2fd2 - eliminated uwallptr_t. 2021-12-30 11:38:34 +01:00
Christoph Oelckers
18fdb7548e - changed sprite argument in get_floorspr_points to DCoreActor and eliminated uspriteptr_t. 2021-12-30 11:35:49 +01:00
Christoph Oelckers
17736d1d5e - changed sprite argument in spriteheightofsptr to DCoreActor. 2021-12-30 11:31:45 +01:00
Christoph Oelckers
7676958f40 - changed try_facespr_intersect's sprite argument to DCoreActor. 2021-12-30 11:28:09 +01:00
Christoph Oelckers
3fee8f3c4e - replaced dragpoint (both the generic and the Blood variant) with a newly written vertexscan function.
This is a template allowing to run any task on a set of walls with equivalent start point.
Code was redesigned from scratch to be more clear than the existing variants.

The idea here is to reuse the base algorithm for other things that need to operate on the equivalent set of a given wall's start point.
2021-12-30 09:58:15 +01:00
Mitchell Richters
118ceb18ca - Capitalise vec2_t y variable. 2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba - Capitalise vec2_t x variable. 2021-12-30 09:57:02 +01:00
Christoph Oelckers
1edccf1423 - added slope setter methods to sectortype.
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
11f41a97d5 - made gotpic a FixedBitArray.
gets rid of some inline garbage.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
5f18109371 - consolidated all getslope code into a single function.
This also caches a wall's length to avoid taking the square root every single time for a slope calculation.
2021-12-30 09:53:55 +01:00
Christoph Oelckers
dddf48fd3e - cleaned up and renamed buildtypes.h.
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
4a5de6f56e - make sure that all changes of wall coordinates invalidate associated data.
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
d8ccfa1a5f - cleaned up nextsectorneighborz, added a safe variant and use this in all places where the sector pointer is not validated. 2021-12-26 23:10:05 +01:00
Christoph Oelckers
b8c4354691 - got rid of the MAX... constants and adjusted all places still using them. 2021-12-26 23:10:02 +01:00
Christoph Oelckers
1a3b9f8ac0 - made several arrays holding sector related data dynamic. 2021-12-26 23:10:02 +01:00
Christoph Oelckers
2a07159c8d - removed some unused and obsolete content from engine files. 2021-12-26 23:10:02 +01:00
Christoph Oelckers
838bed7800 - final cleanup of sectnum related stuff.
Made sure that remaining uses of sector indices are safe to be kept and deleted a few redundant functions.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6d432fca0a - made spritetype::sectnum a pointer. 2021-12-26 23:10:01 +01:00
Christoph Oelckers
2d913982da - changed map loader to work without relying on spritetype::sectnum.
All access to this field is done through access functions now.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
30786360bb - derive spritetype and tspritetype from a common base class to consolidate their common content. 2021-12-26 23:09:57 +01:00
Christoph Oelckers
d3b1e34d78 - moved sprite[], spriteext[] and spritesmooth[] into DCoreActor.
Also removed the last remaining sprite pointer in saveable data.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
f855b1020f - actor lists refactored.
No more shorts, no more static arrays.
This was one of the biggest blockers for unlimiting the engine.
2021-12-26 23:09:54 +01:00
Christoph Oelckers
eaff9e359f - refactored the owner index in tspritetype.
This is now a separate type from spritetype which contains an actor pointer instead so that sprite display can be handled without requiring a static sprite array.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
793dd032b0 - getzrange cleanup. 2021-12-26 23:09:53 +01:00
Christoph Oelckers
bcc532d36f - eliminated the getzrange wrapper. 2021-12-26 23:09:53 +01:00
Christoph Oelckers
2541425b9d - getzrange is free of hack values, too. 2021-12-26 23:09:53 +01:00
Christoph Oelckers
183f554733 - hitscan cleanup.
Also removed a bit of leftover TROR code.
2021-12-26 23:09:52 +01:00