Revision 9b00b94e
Added by danij over 17 years ago
Files
- added
- modified
- copied
- renamed
- deleted
- doomsday
- engine
- api
- portable
- include
- src
- dam_main.c (diff)
- dam_read.c (diff)
- p_bmap.c (diff)
- p_data.c (diff)
- p_dmu.c (diff)
- p_maputil.c (diff)
- p_mobj.c (diff)
- p_particle.c (diff)
- p_polyob.c (diff)
- p_sight.c (diff)
- r_shadow.c (diff)
- r_util.c (diff)
- r_world.c (diff)
- rend_clip.c (diff)
- rend_decor.c (diff)
- rend_dyn.c (diff)
- rend_fakeradio.c (diff)
- rend_list.c (diff)
- rend_main.c (diff)
- rend_particle.c (diff)
- s_environ.c (diff)
- sv_pool.c (diff)
- engine
Completely re-factored the subsector polygonization code to remove run-time memory requirements and to improve map loading speed.
Fixed issue resulting in drawing zero-area triangles introduced during the change to using the same list of fvertex_t for all subsector planes.
Replaced vertex_t->float pos2 with vertex_t->fvertex_t v to allow vertex and poly object coords to be treated universally. This change also allowed me to get rid of the additional memory (attached to subsector_t) used for storing vertices copied to rendpolys. We instead, allocate an array of pointers and link to the actual vertex->fvertex_t (this is also now a NULL terminated array).
A side benefit of this change is that because both segs and planes use the same fvertex_ts; there is zero chance of "sparklies" appearing between polyons due to rounding differences on vertex coords.
Subsector flag SUBF_MIDPOINT is no longer used publically; moved to an internal block in mapdata.hs (thus p_maptypes.h).
Changed the method of marking potentially visible seg sections to instead mark surface_ts, this greatly reduces the amount of special case code without changing the purpose; there is now a new surface frameflag SUFINF_PVIS which when set indicates that the given surface is potentially visible on this frame (has passed basic occlusion and back-facing tests).
Added a new line flag LINEF_SELFREF; use this when determining if a linedef is self-referencing (added to make it easier to check given only a seg).
Fixed issue in fakeradio where shadow edges were being created for segs of self-referencing linedefs.
When in wireframe mode, change the way fakeradio edge polys are rendered so they can be easily debugged.
Changed R_IsPointInSector2() and C_CheckSubsector() to use seg vertexes rather than the array of fvertex_ts stored for each subsector (better to use the real values now they are easily accessible).
Changed sec->reverbSSecs to a NULL terminated array.