1
0
Fork 0
mirror of https://git.coom.tech/drummyfish/raycastlib.git synced 2024-11-20 20:19:57 +01:00

Roll texture coords

This commit is contained in:
Miloslav Číž 2018-09-15 11:56:20 +02:00
parent fe5617e168
commit 691942dfbe

View file

@ -46,12 +46,18 @@
#endif
#ifndef USE_DIST_APPROX
#define USE_DIST_APPROX 0 /** What distance approximation to use:
#define USE_DIST_APPROX 0 /**< What distance approximation to use:
0: none (compute full Euclidean distance)
1: accurate approximation
2: octagonal approximation (LQ) */
#endif
#ifndef ROLL_TEXTURE_COORDS
#define ROLL_TEXTURE_COORDS 1 /**< Says whether rolling doors should also roll
the texture coordinates along (mostly
desired for doors). */
#endif
#ifndef VERTICAL_FOV
#define VERTICAL_FOV (UNITS_PER_SQUARE / 2)
#endif
@ -1027,11 +1033,9 @@ void _columnFunctionSimple(HitResult *hits, uint16_t hitCount, uint16_t x,
{
// normal hit, check the door roll
Unit doorRoll = hit.doorRoll;
int8_t unrolled = doorRoll >= 0 ?
doorRoll > hit.textureCoord :
hit.textureCoord > UNITS_PER_SQUARE + doorRoll;
int8_t unrolled = hit.doorRoll >= 0 ?
hit.doorRoll > hit.textureCoord :
hit.textureCoord > UNITS_PER_SQUARE + hit.doorRoll;
if (unrolled)
{
@ -1105,6 +1109,10 @@ void _columnFunctionSimple(HitResult *hits, uint16_t hitCount, uint16_t x,
p.isFloor = 1;
p.depth = dist;
#if ROLL_TEXTURE_COORDS == 1
p.hit.textureCoord -= p.hit.doorRoll;
#endif
while (y < wallEnd)
{
p.position.y = y;