extern float texdetail;
extern bool decalstoggle;
-int Model::LineCheck(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate)
+int Model::LineCheck(XYZ* p1, XYZ* p2, XYZ* p, XYZ* move, float* rotate)
{
static float distance;
static float olddistance;
return firstintersecting;
}
-int Model::LineCheckPossible(XYZ *p1, XYZ *p2, XYZ *p, XYZ *move, float *rotate)
+int Model::LineCheckPossible(XYZ* p1, XYZ* p2, XYZ* p, XYZ* move, float* rotate)
{
static float distance;
static float olddistance;
return firstintersecting;
}
-int Model::LineCheckSlidePossible(XYZ *p1, XYZ *p2, XYZ *move, float *rotate)
+int Model::LineCheckSlidePossible(XYZ* p1, XYZ* p2, XYZ* move, float* rotate)
{
static float distance;
static float olddistance;
return firstintersecting;
}
-int Model::SphereCheck(XYZ *p1, float radius, XYZ *p, XYZ *move, float *rotate)
+int Model::SphereCheck(XYZ* p1, float radius, XYZ* p, XYZ* move, float* rotate)
{
static int i;
static float distance;
distance = abs((Triangles[j].facenormal.x * p1->x) + (Triangles[j].facenormal.y * p1->y) + (Triangles[j].facenormal.z * p1->z) - ((Triangles[j].facenormal.x * vertex[Triangles[j].vertex[0]].x) + (Triangles[j].facenormal.y * vertex[Triangles[j].vertex[0]].y) + (Triangles[j].facenormal.z * vertex[Triangles[j].vertex[0]].z)));
if (distance < radius) {
point = *p1 - Triangles[j].facenormal * distance;
- if (PointInTriangle( &point, Triangles[j].facenormal, &vertex[Triangles[j].vertex[0]], &vertex[Triangles[j].vertex[1]], &vertex[Triangles[j].vertex[2]]))
+ if (PointInTriangle(&point, Triangles[j].facenormal, &vertex[Triangles[j].vertex[0]], &vertex[Triangles[j].vertex[1]], &vertex[Triangles[j].vertex[2]]))
intersecting = 1;
if (!intersecting)
intersecting = sphere_line_intersection(&vertex[Triangles[j].vertex[0]], &vertex[Triangles[j].vertex[1]], p1, &radius);
return firstintersecting;
}
-int Model::SphereCheckPossible(XYZ *p1, float radius, XYZ *move, float *rotate)
+int Model::SphereCheckPossible(XYZ* p1, float radius, XYZ* move, float* rotate)
{
static float distance;
static float olddistance;
distance = abs((Triangles[j].facenormal.x * p1->x) + (Triangles[j].facenormal.y * p1->y) + (Triangles[j].facenormal.z * p1->z) - ((Triangles[j].facenormal.x * vertex[Triangles[j].vertex[0]].x) + (Triangles[j].facenormal.y * vertex[Triangles[j].vertex[0]].y) + (Triangles[j].facenormal.z * vertex[Triangles[j].vertex[0]].z)));
if (distance < radius) {
point = *p1 - Triangles[j].facenormal * distance;
- if (PointInTriangle( &point, Triangles[j].facenormal, &vertex[Triangles[j].vertex[0]], &vertex[Triangles[j].vertex[1]], &vertex[Triangles[j].vertex[2]]))
+ if (PointInTriangle(&point, Triangles[j].facenormal, &vertex[Triangles[j].vertex[0]], &vertex[Triangles[j].vertex[1]], &vertex[Triangles[j].vertex[2]]))
intersecting = 1;
if (!intersecting)
intersecting = sphere_line_intersection(&vertex[Triangles[j].vertex[0]], &vertex[Triangles[j].vertex[1]], p1, &radius);
return firstintersecting;
}
-
void Model::UpdateVertexArray()
{
if (type != normaltype && type != decalstype)
bool Model::loadnotex(const std::string& filename)
{
- FILE *tfile;
+ FILE* tfile;
long i;
short triangleNum;
type = notextype;
color = 0;
- tfile = Folders::openMandatoryFile( Folders::getResourcePath(filename), "rb" );
+ tfile = Folders::openMandatoryFile(Folders::getResourcePath(filename), "rb");
// read model settings
return true;
}
-
bool Model::load(const std::string& filename)
{
- FILE *tfile;
+ FILE* tfile;
long i;
short triangleNum;
type = normaltype;
color = 0;
- tfile = Folders::openMandatoryFile( Folders::getResourcePath(filename), "rb" );
+ tfile = Folders::openMandatoryFile(Folders::getResourcePath(filename), "rb");
// read model settings
bool Model::loaddecal(const std::string& filename)
{
- FILE *tfile;
+ FILE* tfile;
long i, j;
short triangleNum;
type = decalstype;
color = 0;
- tfile = Folders::openMandatoryFile( Folders::getResourcePath(filename), "rb" );
+ tfile = Folders::openMandatoryFile(Folders::getResourcePath(filename), "rb");
// read model settings
funpackf(tfile, "Bf Bf Bf", &Triangles[i].gy[0], &Triangles[i].gy[1], &Triangles[i].gy[2]);
}
-
modelTexture.xsz = 0;
fclose(tfile);
bool Model::loadraw(const std::string& filename)
{
- FILE *tfile;
+ FILE* tfile;
long i;
short triangleNum;
type = rawtype;
color = 0;
- tfile = Folders::openMandatoryFile( Folders::getResourcePath(filename), "rb" );
+ tfile = Folders::openMandatoryFile(Folders::getResourcePath(filename), "rb");
// read model settings
Triangles.resize(triangleNum);
vArray = (GLfloat*)malloc(sizeof(GLfloat) * triangleNum * 24);
-
for (i = 0; i < vertexNum; i++) {
funpackf(tfile, "Bf Bf Bf", &vertex[i].x, &vertex[i].y, &vertex[i].z);
}
funpackf(tfile, "Bf Bf Bf", &Triangles[i].gy[0], &Triangles[i].gy[1], &Triangles[i].gy[2]);
}
-
fclose(tfile);
for (i = 0; i < vertexNum; i++) {
return true;
}
-
void Model::UniformTexCoords()
{
for (unsigned int i = 0; i < Triangles.size(); i++) {
UpdateVertexArray();
}
-
void Model::FlipTexCoords()
{
for (unsigned int i = 0; i < Triangles.size(); i++) {
boundingsphereradius = fast_sqrt(boundingsphereradius);
}
-
void Model::CalculateNormals(bool facenormalise)
{
Game::LoadingScreen();
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
if (color) {
- glInterleavedArrays( GL_T2F_C3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
+ glInterleavedArrays(GL_T2F_C3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
} else {
- glInterleavedArrays( GL_T2F_N3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
+ glInterleavedArrays(GL_T2F_N3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
}
textureptr.bind();
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
if (color) {
- glInterleavedArrays( GL_T2F_C3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
+ glInterleavedArrays(GL_T2F_C3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
} else {
- glInterleavedArrays( GL_T2F_N3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
+ glInterleavedArrays(GL_T2F_N3F_V3F, 8 * sizeof(GLfloat), &vArray[0]);
}
texture.bind();
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
- glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glDrawArrays(GL_TRIANGLES, 0, Triangles.size() * 3);
if ((decals[i].type == blooddecal || decals[i].type == blooddecalfast || decals[i].type == blooddecalslow)) {
glColor4f(1, 1, 1, decals[i].opacity);
if (decals[i].alivetime < 4)
- glColor4f(1, 1, 1, decals[i].opacity*decals[i].alivetime*.25);
+ glColor4f(1, 1, 1, decals[i].opacity * decals[i].alivetime * .25);
if (decals[i].alivetime > 58)
glColor4f(1, 1, 1, decals[i].opacity * (60 - decals[i].alivetime) / 2);
}
}
}
-void Model::MakeDecal(decal_type atype, XYZ *where, float *size, float *opacity, float *rotation)
+void Model::MakeDecal(decal_type atype, XYZ* where, float* size, float* opacity, float* rotation)
{
if (decalstoggle) {
if (type != decalstype)
}
Model::Model()
- : vertexNum(0),
- type(nothing),
- owner(0),
- vertex(0),
- normals(0),
- vArray(0),
- color(0),
- boundingspherecenter(),
- boundingsphereradius(0),
- flat(false)
+ : vertexNum(0)
+ , type(nothing)
+ , owner(0)
+ , vertex(0)
+ , normals(0)
+ , vArray(0)
+ , color(0)
+ , boundingspherecenter()
+ , boundingsphereradius(0)
+ , flat(false)
{
memset(&modelTexture, 0, sizeof(modelTexture));
}