Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 26, 2006, 12:43:56 AM (18 years ago)
Author:
bensch
Message:

first try to make the MD2-model a Resource… it looks quite funny… seems like everything gets loaded, but totally wrong :)

File:
1 copied

Legend:

Unmodified
Added
Removed
  • branches/new_class_id/src/lib/graphics/importer/md2/resource_md2.cc

    r9823 r9824  
    11
    2 #include "resource_texture.h"
     2#include "resource_md2.h"
    33#include "substring.h"
    44#include "multi_type.h"
     
    66
    77
    8 ResourceTexture::ResourceTexture(const std::string& imageName, GLenum target)
    9     : NewResource(&ResourceTexture::type)
     8ResourceMD2::ResourceMD2(const std::string& modelName, const std::string& skinName, float scale)
     9    : NewResource(&ResourceMD2::type)
    1010{
    11   Resources::StorePointer* ptr = this->acquireResource(imageName + ',' + "TEST");
     11  Resources::StorePointer* ptr = this->acquireResource(loadString(modelName, skinName, scale));
    1212
    1313  if (ptr)
    1414  {
    15     PRINTF(5)("FOUNT TEXTURE: %s\n", imageName.c_str());
    16     this->acquireData(static_cast<ResourceTexture::TextureResourcePointer*>(ptr)->ptr());
     15    PRINTF(5)("FOUND MD2: %s\n", modelName.c_str());
     16    this->acquireData(static_cast<ResourceMD2::MD2ResourcePointer*>(ptr)->ptr());
    1717  }
    1818  else
    1919  {
    20     PRINTF(5)("NOT FOUNT TEXTURE: %s\n", imageName.c_str());
    21     std::string fileName = this->NewResource::locateFile(imageName);
    22     this->Texture::loadImage(fileName, target);
    23     this->NewResource::addResource(new ResourceTexture::TextureResourcePointer(imageName + ',' + "TEST", Resources::KeepLevel(0), this->Texture::dataPointer()));
     20    PRINTF(5)("NOT FOUND MD2: %s\n", modelName.c_str());
     21    std::string modelFileName = this->NewResource::locateFile(modelName);
     22    std::string skinFileName = this->NewResource::locateFile(skinName);
     23    this->MD2Model::load(modelFileName, skinFileName, scale);
     24    this->NewResource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skinName, scale), Resources::KeepLevel(0), this->MD2Model::dataPointer()));
    2425  }
     26
    2527}
    2628
    27 ResourceTexture ResourceTexture::createFromString(const std::string& loadString)
     29ResourceMD2 ResourceMD2::createFromString(const std::string& loadString)
    2830{
    2931  SubString loadValues(loadString, ',');
    30   std::string imageName;
    31   GLenum target = GL_TEXTURE_2D;
     32  std::string modelName;
     33  std::string skinName;
     34  float scale = 1.0f;
    3235  if (loadValues.size() > 0)
    33     imageName = loadValues[0];
     36    modelName = loadValues[0];
    3437  if (loadValues.size() > 1)
    35     target = (GLenum)MultiType(loadValues[2]).getInt();
     38    skinName = loadValues[1];
     39  if (loadValues.size() > 2)
     40    scale = MultiType(loadValues[2]).getFloat();
    3641
    37   return ResourceTexture(imageName, target);
     42  return ResourceMD2(modelName, skinName, scale);
     43}
     44
     45std::string ResourceMD2::loadString(const std::string& modelName, const std::string& skinName, float scale)
     46{
     47  return modelName + ',' + skinName + ',' + MultiType(scale).getString();
    3848}
    3949
    4050
    41 
    42 Resources::tType<ResourceTexture> ResourceTexture::type("Texture");
     51Resources::tType<ResourceMD2> ResourceMD2::type("MD2");
    4352
    4453
     
    4655
    4756
    48 ResourceTexture::TextureResourcePointer::TextureResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const TextureData::Pointer& data)
     57ResourceMD2::MD2ResourcePointer::MD2ResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const MD2Data::Pointer& data)
    4958    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
    5059{}
Note: See TracChangeset for help on using the changeset viewer.