Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/network/src/lib/graphics/importer/md2/resource_md2.cc @ 9922

Last change on this file since 9922 was 9922, checked in by patrick, 18 years ago

network bug fixed

File size: 1.9 KB
RevLine 
[9781]1
[9824]2#include "resource_md2.h"
[9823]3#include "substring.h"
4#include "multi_type.h"
[9790]5#include "debug.h"
[9781]6
7
[9854]8ResourceMD2::ResourceMD2(const std::string& modelName, const std::string& skinName, float scale, const Resources::KeepLevel& keepLevel)
[9847]9    : Resource(&ResourceMD2::type)
[9784]10{
[9824]11  Resources::StorePointer* ptr = this->acquireResource(loadString(modelName, skinName, scale));
[9922]12
[9784]13  if (ptr)
[9786]14  {
[9825]15    PRINTF(0)("FOUND MD2: %s\n", modelName.c_str());
[9824]16    this->acquireData(static_cast<ResourceMD2::MD2ResourcePointer*>(ptr)->ptr());
[9786]17  }
[9784]18  else
19  {
[9825]20    PRINTF(0)("NOT FOUND MD2: %s\n", modelName.c_str());
[9847]21    std::string modelFileName = this->Resource::locateFile(modelName);
[9912]22    std::string skinFileName = this->Resource::locateFile(skinName);
23    PRINTF(0)("NEW %s::%s\n", modelName.c_str(), modelFileName.c_str());
[9825]24    this->MD2Model::load(modelFileName, skinName, scale);
[9912]25    this->Resource::addResource(new ResourceMD2::MD2ResourcePointer(loadString(modelName, skinFileName, scale), keepLevel, this->MD2Model::dataPointer()));
[9784]26  }
[9824]27
[9784]28}
29
[9854]30ResourceMD2 ResourceMD2::createFromString(const std::string& loadString, const Resources::KeepLevel& keepLevel)
[9823]31{
32  SubString loadValues(loadString, ',');
[9824]33  std::string modelName;
34  std::string skinName;
35  float scale = 1.0f;
[9823]36  if (loadValues.size() > 0)
[9824]37    modelName = loadValues[0];
[9823]38  if (loadValues.size() > 1)
[9824]39    skinName = loadValues[1];
40  if (loadValues.size() > 2)
41    scale = MultiType(loadValues[2]).getFloat();
[9784]42
[9854]43  return ResourceMD2(modelName, skinName, scale, keepLevel);
[9823]44}
[9784]45
[9824]46std::string ResourceMD2::loadString(const std::string& modelName, const std::string& skinName, float scale)
47{
48  return modelName + ',' + skinName + ',' + MultiType(scale).getString();
49}
[9784]50
51
[9824]52Resources::tType<ResourceMD2> ResourceMD2::type("MD2");
[9784]53
54
[9823]55
56
57
[9824]58ResourceMD2::MD2ResourcePointer::MD2ResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const MD2Data::Pointer& data)
[9791]59    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
[9785]60{}
[9781]61
62
Note: See TracBrowser for help on using the repository browser.