Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 26, 2006, 4:37:58 PM (18 years ago)
Author:
bottac
Message:

Minor improvements (transparancy). Code formatting revised.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/bsp_model/src/lib/graphics/importer/bsp_file.cc

    r7353 r7385  
    2020#include "debug.h"
    2121#include "material.h"
    22 #include "util/loading/resource_manager.h"
    23 
    2422#include "vertex_array_model.h"
    2523// Necessary ?
    2624#include "base_object.h"
    2725#include "vector.h"
     26#include "util/loading/resource_manager.h"
     27
     28#include <SDL/SDL_endian.h>
     29#include <SDL/SDL_image.h>
    2830
    2931using namespace std;
     
    3638}
    3739
    38 int BspFile::read(char* in_name)
     40int BspFile::read(char* name)
    3941{
    4042  int offset;
    4143  int size;
    4244  struct stat results;
    43    char name [300];
    44           strcpy(name,ResourceManager::getFullName(in_name).c_str());
     45  name = "/root/data/Kanti175.bsp";
    4546 
    4647   if (stat( name , &results) == 0)
     
    138139    // Get the brushSides
    139140    offset = ((int *)(header))[20];
    140     size    = ((int *)(header))[21];
     141    size    = SDL_SwapLE32(((int *)(header))[21]);
    141142    PRINTF(0)("BSP FILE: BrushSidesSize: %i Bytes. \n", size);
    142143    PRINTF(0)("BSP FILE: NumBrushSides: %i. \n", size / 8);
     
    324325void BspFile::load_textures()
    325326{
    326   const char* absFileName;
     327  char absFileName [228];
    327328  char fileName [228];
    328329  char ext [100];
    329330  struct stat results;
    330331
    331   this->Materials = new Material* [this->numTextures];
     332  this->Materials = new AMat[this->numTextures];
    332333  for(int i = 0 ; i < this->numTextures; i++)
    333334  {
     
    336337     // Check for tga
    337338    strcpy(fileName, &this->textures[8+ 72*i]);
    338     //strcpy (absFileName,"/root/data/trunk/");
     339    strcpy (absFileName,"/root/data/trunk/");
    339340    strcpy(ext, ".tga");
    340341    strncat (fileName, ext, strlen(fileName));
    341     //strncat(absFileName,fileName,strlen(fileName));
    342     absFileName = ResourceManager::getFullName(fileName).c_str();
     342    strncat(absFileName,fileName,strlen(fileName));
     343    // absFileName = ResourceManager::getFullName(fileName);
    343344 
    344345    if(stat( absFileName , &results) == 0)
     
    350351    // Check for TGA
    351352    strcpy(fileName, &this->textures[8+ 72*i]);
    352     //strcpy (absFileName,"/root/data/trunk/");
     353    strcpy (absFileName,"/root/data/trunk/");
    353354    strcpy(ext, ".TGA");
    354355    strncat (fileName, ext, strlen(fileName));
    355    // strncat(absFileName,fileName,strlen(fileName));
     356    strncat(absFileName,fileName,strlen(fileName));
    356357    // absFileName = ResourceManager::getFullName(fileName);
    357     absFileName = ResourceManager::getFullName(fileName).c_str();
     358
    358359    if(stat( absFileName , &results) == 0)
    359360    {
     
    364365    // Check for jpg
    365366    strcpy(fileName, &this->textures[8+ 72*i]);
    366     //strcpy (absFileName,"/root/data/trunk/");
     367    strcpy (absFileName,"/root/data/trunk/");
    367368    strcpy(ext, ".jpg");
    368369    strncat (fileName, ext, strlen(fileName));
    369     //strncat(absFileName,fileName,strlen(fileName));
     370    strncat(absFileName,fileName,strlen(fileName));
    370371    // absFileName = ResourceManager::getFullName(fileName);   
    371     absFileName = ResourceManager::getFullName(fileName).c_str();
    372372    if(stat( absFileName , &results) == 0)
    373373    {
     
    380380   // Check for JPG
    381381   strcpy(fileName, &this->textures[8+ 72*i]);
    382    //strcpy (absFileName,"/root/data/trunk/");
     382   strcpy (absFileName,"/root/data/trunk/");
    383383   strcpy(ext, ".JPG");
    384384   strncat (fileName, ext, strlen(fileName));
    385    //strncat(absFileName,fileName,strlen(fileName));
     385   strncat(absFileName,fileName,strlen(fileName));
    386386   // absFileName = ResourceManager::getFullName(fileName);
    387     absFileName = ResourceManager::getFullName(fileName).c_str();
    388387    if(stat( absFileName , &results) == 0)
    389388    {
     
    395394   // Check for jpeg
    396395    strcpy(fileName, &this->textures[8+ 72*i]);
    397     //strcpy (absFileName,"/root/data/trunk/");
     396    strcpy (absFileName,"/root/data/trunk/");
    398397    strcpy(ext, ".jpeg");
    399398    strncat (fileName, ext, strlen(fileName));
    400     //strncat(absFileName,fileName,strlen(fileName));
    401    //  absFileName = ResourceManager::getFullName(fileName);
    402     absFileName = ResourceManager::getFullName(fileName).c_str();
     399    strncat(absFileName,fileName,strlen(fileName));
     400    // absFileName = ResourceManager::getFullName(fileName);
    403401    if(stat( absFileName , &results) == 0)
    404402    {
     
    411409    // Check for JPEG
    412410    strcpy(fileName, &this->textures[8+ 72*i]);
    413     //strcpy (absFileName,"/root/data/trunk/");
     411    strcpy (absFileName,"/root/data/trunk/");
    414412    strcpy(ext, ".JPEG");
    415413    strncat (fileName, ext, strlen(fileName));
    416     //strncat(absFileName,fileName,strlen(fileName));
     414    strncat(absFileName,fileName,strlen(fileName));
    417415    // absFileName = ResourceManager::getFullName(fileName);
    418     absFileName = ResourceManager::getFullName(fileName).c_str();
    419416    PRINTF(0)("BSP FILE: %s . \n", absFileName);
    420417    if(stat( absFileName , &results) == 0)
     
    427424   // Check for bmp
    428425   strcpy(fileName, &this->textures[8+ 72*i]);
    429    //strcpy (absFileName,"/root/data/trunk/");
     426   strcpy (absFileName,"/root/data/trunk/");
    430427   strcpy(ext, ".bmp");
    431428   strncat (fileName, ext, strlen(fileName));
    432    //strncat(absFileName,fileName,strlen(fileName));
    433   //  absFileName = ResourceManager::getFullName(fileName);
    434     absFileName = ResourceManager::getFullName(fileName).c_str();
     429   strncat(absFileName,fileName,strlen(fileName));
     430   // absFileName = ResourceManager::getFullName(fileName);
    435431 
    436432    if(stat( absFileName , &results) == 0)
     
    443439   // Check for BMP
    444440    strcpy(fileName, &this->textures[8+ 72*i]);
    445     //strcpy (absFileName,"/root/data/trunk/");
     441    strcpy (absFileName,"/root/data/trunk/");
    446442    strcpy(ext, ".BMP");
    447443    strncat (fileName, ext, strlen(fileName));
    448   //  strncat(absFileName,fileName,strlen(fileName));
    449    //  absFileName = ResourceManager::getFullName(fileName);
    450     absFileName = ResourceManager::getFullName(fileName).c_str();
     444    strncat(absFileName,fileName,strlen(fileName));
     445    // absFileName = ResourceManager::getFullName(fileName);
    451446
    452447    if(stat( absFileName , &results) == 0)
     
    457452    }
    458453        //      Default Material
    459         this->Materials[i] = new Material();
    460         this->Materials[i]->setDiffuse(0.1,0.1,0.1);
    461         this->Materials[i]->setAmbient(0.1,0.1,0.1 );
    462         this->Materials[i]->setSpecular(0.4,0.4,0.4);
     454        this->Materials[i].mat = new Material();
     455        this->Materials[i].mat->setDiffuse(0.1,0.1,0.1);
     456        this->Materials[i].mat->setAmbient(0.1,0.1,0.1 );
     457        this->Materials[i].mat->setSpecular(0.4,0.4,0.4);
    463458        //this->Materials[i]->setShininess(100.0);
    464         this->Materials[i]->setTransparency(1.0);
    465         this->Materials[i]->setDiffuseMap("pictures/ground.tga");
    466         this->Materials[i]->setAmbientMap("pictures/ground.tga");
    467         this->Materials[i]->setSpecularMap("pictures/ground.tga");
     459        this->Materials[i].mat->setTransparency(1.0);
     460        this->Materials[i].mat->setDiffuseMap("pictures/ground.tga");
     461        this->Materials[i].mat->setAmbientMap("pictures/ground.tga");
     462        this->Materials[i].mat->setSpecularMap("pictures/ground.tga");
     463        this->Materials[i].alpha = false;
    468464  }
    469465}
    470466
    471467
    472 Material* BspFile::loadMat(char* mat)
     468AMat BspFile::loadMat(char* mat)
    473469{
     470  AMat tmpAMat;
     471  this->testSurf = NULL;
     472
     473  this->testSurf = IMG_Load(ResourceManager::getFullName(mat).c_str());
     474  if(this->testSurf != NULL)
     475        {
     476  if(this->testSurf->format->Amask != 0 ) tmpAMat.alpha = true;
     477  else                                 tmpAMat.alpha = false;
     478        }
     479  else   tmpAMat.alpha = false;
     480
    474481  Material* tmp = new Material();
    475482        tmp->setDiffuse(1.0,1.0,1.0);
     
    477484        tmp->setSpecular(1.0,1.0,1.0);
    478485   //   tmp->setShininess(.5);
    479         tmp->setTransparency(1.0);
     486   //   tmp->setTransparency(1.0);
    480487
    481488        tmp->setDiffuseMap(mat);
    482489        tmp->setAmbientMap(mat);
    483490        tmp->setSpecularMap(mat);
    484 
    485   return tmp;
     491 
     492  tmpAMat.mat = tmp;
     493
     494  return tmpAMat;
    486495}
    487496
Note: See TracChangeset for help on using the changeset viewer.