Browse Source

Add more error reporting to the Tiler and the Ticker.

legacy
Sam Hocevar sam 14 years ago
parent
commit
66ab1860ef
2 changed files with 27 additions and 0 deletions
  1. +3
    -0
      src/ticker.cpp
  2. +24
    -0
      src/tiler.cpp

+ 3
- 0
src/ticker.cpp View File

@@ -179,6 +179,9 @@ void Ticker::TickGame()
for (Entity *e = data->list[i]; e && n < data->panic; e = e->gamenext)
if (e->ref)
{
#if !FINAL_RELEASE
fprintf(stderr, "ERROR: poking %s\n", e->GetName());
#endif
e->ref--;
n++;
}


+ 24
- 0
src/tiler.cpp View File

@@ -12,6 +12,8 @@
# include "config.h"
#endif

#include <cstdio>

#include "core.h"

/*
@@ -23,7 +25,17 @@ static class TilerData
friend class Tiler;

public:
TilerData()
#if !FINAL_RELEASE
: lasterror(-1)
#endif
{ }

private:
Dict tilesets;
#if !FINAL_RELEASE
int lasterror;
#endif
}
tilerdata;

@@ -41,6 +53,10 @@ int Tiler::Register(char const *path, int w, int h, float dilate)
{
TileSet *tileset = new TileSet(path, w, h, dilate);
data->tilesets.SetEntity(id, tileset);
#if !FINAL_RELEASE
if (id == data->lasterror)
data->lasterror = -1;
#endif
}

return id + 1; /* ID 0 is for the empty tileset */
@@ -56,6 +72,14 @@ void Tiler::BlitTile(uint32_t code, int x, int y, int z, int o)
int id = (code >> 16) - 1; /* ID 0 is for the empty tileset */

TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id);
#if !FINAL_RELEASE
if (!tileset && id != data->lasterror)
{
fprintf(stderr, "ERROR: blitting to null tiler #%i\n", id);
data->lasterror = id;
return;
}
#endif
tileset->BlitTile(code & 0xffff, x, y, z, o);
}


Loading…
Cancel
Save