Пример #1
0
bool Block::Load(File* f)
{
  if (!GameObject::Load(f))
  {
    return false;
  }

  // Load position
  if (!LoadVec3(f, &m_pos))
  {
    f->ReportError("Expected block position");
    return false;
  }
//  m_pos = m_pos * m_mat;

  if (!LoadMeshResource(f))
  {
    f->ReportError("Failed to load block mesh");
    return false;
  }

  if (!LoadShadow(f))
  {
    return false;
  }

  return true;
}
Пример #2
0
bool Dino::Load(File* f)
{
  if (!Npc::Load(f))
  {
    return false;
  }
  m_startPos = m_pos;

  // Load mesh and 2 textures
  if (!f->GetDataLine(&m_md2Name))
  {
    f->ReportError("Expected pet md2 filename");
    return false;
  }

  if (!f->GetDataLine(&m_texNames[0]))
  {
    f->ReportError("Expected dino tex0 filename");
    return false;
  }

  if (!f->GetDataLine(&m_texNames[1]))
  {
    f->ReportError("Expected dino tex1 filename");
    return false;
  }

  if (!f->GetDataLine(&m_bloodTex[0]))
  {
    f->ReportError("Expected blood tex0 filename");
    return false;
  }

  if (!f->GetDataLine(&m_bloodTex[1]))
  {
    f->ReportError("Expected blood tex1 filename");
    return false;
  }

  if (!LoadShadow(f))
  {
    return false;
  }

  return true;
}
Пример #3
0
EntityNode* SceneLoader::LoadEntityNode(QDomElement element)
{
  if (element.nodeName() != QString ("node") ||
      QString::compare(element.attribute("type"), "entity", Qt::CaseInsensitive) != 0)
    {
      printf ("ceXMLDataLoader::LoadEntityNode: Illegal data format: '%s' != 'entitynode'\n", element.nodeName().toStdString().c_str()); fflush (stdout);
      return 0;
    }

  EntityNode* entity = new EntityNode();
  QString  name = element.attribute("name");
  if (!name.isNull())
    {
      entity->SetName(name.toStdString());
    }


  QDomElement geometryElement = element.firstChildElement("geometry");
  if (!geometryElement.isNull())
    {
      Geometry* geom = LoadGeometry(geometryElement);
      if (geom)
        {
          _geometryIdx++;
        }
      entity->SetGeometry(geom);
    }

  QDomElement shadowElement = element.firstChildElement("shadow");
  if (!shadowElement.isNull())
    {
      LoadShadow (entity, shadowElement);
    }
  entity->SetCastShadow(true);

  QDomElement transformElement = element.firstChildElement("transformation");
  if (!transformElement.isNull())
    {
      QDomElement matrixElement = transformElement.firstChildElement("matrix");
      entity->SetMatrix(LoadMatrix4f(matrixElement));
      entity->FinishTransformation(false);
    }

  return entity;
}