version 1.1 | | version 1.2 |
---|
| | |
* u,v coordinate computation for segment faces | | * u,v coordinate computation for segment faces |
* | | * |
* $Log$ | | * $Log$ |
* Revision 1.1 1999/06/14 22:04:31 donut | | * Revision 1.2 2003/03/09 06:34:09 donut |
* Initial revision | | * change byte typedef to sbyte to avoid conflict with win32 byte which is unsigned |
| | * |
| | * Revision 1.1.1.1 1999/06/14 22:04:31 donut |
| | * Import of d1x 1.37 source. |
* | | * |
* Revision 2.1 1995/05/08 10:49:34 mike | | * Revision 2.1 1995/05/08 10:49:34 mike |
* fix lighting bug: oblong segments could be very dark. | | * fix lighting bug: oblong segments could be very dark. |
| | |
for (sidenum=0; sidenum < MAX_SIDES_PER_SEGMENT; sidenum++) { | | for (sidenum=0; sidenum < MAX_SIDES_PER_SEGMENT; sidenum++) { |
if (!IS_CHILD(segp->children[sidenum])) { | | if (!IS_CHILD(segp->children[sidenum])) { |
side *sidep = &segp->sides[sidenum]; | | side *sidep = &segp->sides[sidenum]; |
byte *vp = Side_to_verts[sidenum]; | | sbyte *vp = Side_to_verts[sidenum]; |
int v; | | int v; |
| | |
for (v=0; v<4; v++) | | for (v=0; v<4; v++) |
| | |
for (sidenum=0; sidenum < MAX_SIDES_PER_SEGMENT; sidenum++) { | | for (sidenum=0; sidenum < MAX_SIDES_PER_SEGMENT; sidenum++) { |
if (!IS_CHILD(segp->children[sidenum])) { | | if (!IS_CHILD(segp->children[sidenum])) { |
side *sidep = &segp->sides[sidenum]; | | side *sidep = &segp->sides[sidenum]; |
byte *vp = Side_to_verts[sidenum]; | | sbyte *vp = Side_to_verts[sidenum]; |
int v; | | int v; |
| | |
for (v=0; v<4; v++) | | for (v=0; v<4; v++) |
| | |
for (si=0; si<MAX_SIDES_PER_SEGMENT; si++) { | | for (si=0; si<MAX_SIDES_PER_SEGMENT; si++) { |
if (!IS_CHILD(segp->children[si])) { | | if (!IS_CHILD(segp->children[si])) { |
side *sidep = &segp->sides[si]; | | side *sidep = &segp->sides[si]; |
byte *vp = Side_to_verts[si]; | | sbyte *vp = Side_to_verts[si]; |
int vv; | | int vv; |
| | |
for (vv=0; vv<4; vv++) | | for (vv=0; vv<4; vv++) |
| | |
wid_result = WALL_IS_DOORWAY(segp, sidenum); | | wid_result = WALL_IS_DOORWAY(segp, sidenum); |
if ((wid_result != WID_FLY_FLAG) && (wid_result != WID_NO_WALL)) { | | if ((wid_result != WID_FLY_FLAG) && (wid_result != WID_NO_WALL)) { |
side *sidep = &segp->sides[sidenum]; | | side *sidep = &segp->sides[sidenum]; |
byte *vp = Side_to_verts[sidenum]; | | sbyte *vp = Side_to_verts[sidenum]; |
int v; | | int v; |
| | |
for (v=0; v<4; v++) | | for (v=0; v<4; v++) |
| | |
// vms_vector tvec; | | // vms_vector tvec; |
// fix dist_ratios[MAX_VERTICES_PER_POLY]; | | // fix dist_ratios[MAX_VERTICES_PER_POLY]; |
side *sidep = &segp->sides[sidenum]; | | side *sidep = &segp->sides[sidenum]; |
// byte *vp = Side_to_verts[sidenum]; | | // sbyte *vp = Side_to_verts[sidenum]; |
| | |
// This next hunk doesn't seem to affect anything. @mk, 02/13/94 | | // This next hunk doesn't seem to affect anything. @mk, 02/13/94 |
// for (v=1; v<4; v++) { | | // for (v=1; v<4; v++) { |
| | |
vms_matrix rotmat; | | vms_matrix rotmat; |
uvl uvls[4],ruvmag,fuvmag,uvlo,uvhi; | | uvl uvls[4],ruvmag,fuvmag,uvlo,uvhi; |
fix fmag,mag01; | | fix fmag,mag01; |
byte *vp; | | sbyte *vp; |
| | |
Assert( (va<4) && (vb<4) ); | | Assert( (va<4) && (vb<4) ); |
Assert((abs(va - vb) == 1) || (abs(va - vb) == 3)); // make sure the verticies specify an edge | | Assert((abs(va - vb) == 1) || (abs(va - vb) == 3)); // make sure the verticies specify an edge |
| | |
vp = (byte *)&Side_to_verts[sidenum]; | | vp = (sbyte *)&Side_to_verts[sidenum]; |
| | |
// We want vlo precedes vhi, ie vlo < vhi, or vlo = 3, vhi = 0 | | // We want vlo precedes vhi, ie vlo < vhi, or vlo = 3, vhi = 0 |
if (va == ((vb + 1) % 4)) { // va = vb + 1 | | if (va == ((vb + 1) % 4)) { // va = vb + 1 |
| | |
void assign_default_uvs_to_side(segment *segp,int side) | | void assign_default_uvs_to_side(segment *segp,int side) |
{ | | { |
uvl uv0,uv1; | | uvl uv0,uv1; |
byte *vp; | | sbyte *vp; |
| | |
uv0.u = 0; | | uv0.u = 0; |
uv0.v = 0; | | uv0.v = 0; |
| | |
| | |
} | | } |
| | |
byte Edge_between_sides[MAX_SIDES_PER_SEGMENT][MAX_SIDES_PER_SEGMENT][2] = { | | sbyte Edge_between_sides[MAX_SIDES_PER_SEGMENT][MAX_SIDES_PER_SEGMENT][2] = { |
// left top right bottom back front | | // left top right bottom back front |
{ {-1,-1}, { 3, 7}, {-1,-1}, { 2, 6}, { 6, 7}, { 2, 3} }, // left | | { {-1,-1}, { 3, 7}, {-1,-1}, { 2, 6}, { 6, 7}, { 2, 3} }, // left |
{ { 3, 7}, {-1,-1}, { 0, 4}, {-1,-1}, { 4, 7}, { 0, 3} }, // top | | { { 3, 7}, {-1,-1}, { 0, 4}, {-1,-1}, { 4, 7}, { 0, 3} }, // top |
| | |
//int Bugseg = 27; | | //int Bugseg = 27; |
| | |
typedef struct { | | typedef struct { |
byte flag, hit_type; | | sbyte flag, hit_type; |
vms_vector vector; | | vms_vector vector; |
} hash_info; | | } hash_info; |
| | |