#include "app/globals.h"
#include "lisp/lisp.h"
#include "lisp/writer.h"
+#include "object_factory.h"
TileMap::TileMap()
: solid(false), speed(1), width(0), height(0), layer(LAYER_TILES),
/** if we don't round here, we'll have a 1 pixel gap on screen sometimes.
* I have no idea why */
float start_x = roundf(context.get_translation().x);
+ if(start_x < 0) start_x = 0;
float start_y = roundf(context.get_translation().y);
+ if(start_y < 0) start_y = 0;
float end_x = std::min(start_x + screen->w, float(width * 32));
float end_y = std::min(start_y + screen->h, float(height * 32));
start_x -= int(start_x) % 32;
{
change(int(pos.x)/32, int(pos.y)/32, newtile);
}
+
+IMPLEMENT_FACTORY(TileMap, "tilemap");