#include <Moof/Octree.hh>
#include <Moof/Script.hh>
#include <Moof/Settings.hh>
-#include <Moof/Tilemap.hh>
#include "Scene.hh"
+#include "Tilemap.hh"
struct Scene::Impl : public Mf::Mippleton<Impl>
Mf::Scalar vertices_[12];
Mf::Scalar texCoords_[8];
- Mf::Tilemap tilemap_;
+ Tilemap tilemap_;
bool blending_;
bool fog_;
};
Quad(const Mf::Vector3 vertices[4], const std::string& texture,
- Mf::Tilemap::Index tileIndex) :
+ Tilemap::Index tileIndex) :
tilemap_(texture),
blending_(false),
fog_(false)
- Mf::Script script;
-
Mf::Matrix4 transform;
std::string texture;
explicit Impl(const std::string& name) :
Mf::Mippleton<Impl>(name)
{
- script.importStandardLibraries();
- importLogScript(script);
-
- importSceneBindings(script);
loadFromFile();
}
void loadFromFile()
{
+ Mf::Script script;
std::string filePath = Scene::getPath(getName());
+ script.importStandardLibraries();
+ importLogScript(script);
+ importSceneBindings(script);
+
if (script.doFile(filePath) != Mf::Script::SUCCESS)
{
std::string str;
if (nTiles % width != 0) table.throwError("invalid number of tiles");
- std::vector< std::vector<Mf::Tilemap::Index> > indices;
+ std::vector< std::vector<Tilemap::Index> > indices;
int i, w, h;
i = 1;
for (h = height - 1; h >= 0; --h)
{
- std::vector<Mf::Tilemap::Index> row;
+ std::vector<Tilemap::Index> row;
for (w = 0; w < width; ++w, ++i)
{
script.push(long(i));
tiles.pushField();
- long index;
+ Tilemap::Index index;
top.get(index);
- row.push_back(Mf::Tilemap::Index(index));
+ row.push_back(index);
}
indices[h] = row;
{
for (int w = 0; w <= width; ++w)
{
- vertices[h][w] = Mf::Vector4(Mf::Scalar(w), Mf::Scalar(h), 0.0, 1.0) *
- transposedTransform;
+ vertices[h][w] = Mf::Vector4(w, h, 0.0, 1.0) * transposedTransform;
}
}
{
for (int w = 0; w < width; ++w)
{
- if (indices[h][w] == Mf::Tilemap::NO_TILE) continue;
+ if (indices[h][w] == Tilemap::NO_TILE) continue;
Mf::Vector3 quadVertices[4];
quadVertices[2] = Mf::demote(vertices[1][w+1]);
quadVertices[3] = Mf::demote(vertices[1][w]);
- Quad* quad = new Quad(quadVertices, texture, Mf::Tilemap::Index(index));
+ Quad* quad = new Quad(quadVertices, texture, Tilemap::Index(index));
quad->setBlending(blending);
quad->setFog(fog);