Changeset 790
- Timestamp:
- Jul 23, 2011, 11:14:40 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/deushax/debugsprite.cpp
r785 r790 26 26 private: 27 27 Game *game; 28 int tiler;28 TileSet *tileset; 29 29 vec3 pos; 30 30 }; … … 39 39 data->game = game; 40 40 Ticker::Ref(game); 41 data->tile r= Tiler::Register("deushax/art/test/character-dress.png",42 32, 0, sqrtf(2));41 data->tileset = Tiler::Register("deushax/art/test/character-dress.png", 42 32, 0, sqrtf(2)); 43 43 data->pos = vec3(320, 206, 0); 44 44 } … … 58 58 vec3i pos = (vec3i)data->pos; 59 59 60 Scene::GetDefault()->AddTile( (data->tiler << 16) |31,60 Scene::GetDefault()->AddTile(data->tileset, 31, 61 61 pos.x - 16, pos.y, pos.z, 1); 62 Scene::GetDefault()->AddTile( (data->tiler << 16) |15,62 Scene::GetDefault()->AddTile(data->tileset, 15, 63 63 pos.x - 16, pos.y, pos.z + 32, 1); 64 64 } … … 67 67 { 68 68 Ticker::Unref(data->game); 69 Tiler::Deregister(data->tile r);69 Tiler::Deregister(data->tileset); 70 70 delete data; 71 71 } -
trunk/monsterz/board.cpp
r759 r790 44 44 int minnpieces, npieces, maxnpieces; 45 45 46 int screen, board, tiles,icons;46 TileSet *screen, *board, *tiles, *icons; 47 47 int click, whip; 48 48 … … 254 254 Entity::TickDraw(deltams); 255 255 256 Scene::GetDefault()->AddTile( (data->board << 16) |0,256 Scene::GetDefault()->AddTile(data->board, 0, 257 257 position.x, position.y, 1, 0); 258 Scene::GetDefault()->AddTile( (data->screen << 16) |0, 0, 0, 10, 0);258 Scene::GetDefault()->AddTile(data->screen, 0, 0, 0, 10, 0); 259 259 260 260 switch (data->game) -
trunk/monsterz/interface.cpp
r786 r790 37 37 Title *title; 38 38 Board *board; 39 inttiles;39 TileSet *tiles; 40 40 41 41 enum … … 100 100 { 101 101 vec2i m = mouse + vec2i(-6, 6 - 48); 102 Scene::GetDefault()->AddTile( (data->tiles << 16) |22, m.x, m.y, 30, 0);102 Scene::GetDefault()->AddTile(data->tiles, 22, m.x, m.y, 30, 0); 103 103 } 104 104 } -
trunk/monsterz/piece.cpp
r759 r790 35 35 Piece::piece_t piece; 36 36 37 int tiler;37 TileSet *tileset; 38 38 Emitter *emitter; 39 39 Piece *above, *below; … … 94 94 case PIECE_HUNT: 95 95 data->size = 48; 96 data->tile r= Tiler::Register(PNG_TILES, data->size, 0, 1.0f);96 data->tileset = Tiler::Register(PNG_TILES, data->size, 0, 1.0f); 97 97 data->id = 80 + 20 * id; 98 98 break; … … 383 383 384 384 if (data->state != PieceData::DEAD) 385 Scene::GetDefault()->AddTile( (data->tiler << 16) |id, x, y, z, 0);385 Scene::GetDefault()->AddTile(data->tileset, id, x, y, z, 0); 386 386 387 387 if (data->state == PieceData::GRAB && Platform::GetMouseCount()) 388 Scene::GetDefault()->AddTile( (data->tiler << 16) |0, x, y, 9, 0);388 Scene::GetDefault()->AddTile(data->tileset, 0, x, y, 9, 0); 389 389 } 390 390 … … 396 396 Ticker::Unref(data->below); 397 397 Ticker::Unref(data->emitter); 398 Tiler::Deregister(data->tile r);398 Tiler::Deregister(data->tileset); 399 399 delete data; 400 400 } -
trunk/monsterz/thumbs.cpp
r735 r790 33 33 34 34 private: 35 TileSet *icons; 35 36 int npieces; 36 int icons;37 37 38 38 Text *text[MAX_PIECES]; … … 74 74 { 75 75 vec2i p = vec2i(459, 372 - 27 * n); 76 Scene::GetDefault()->AddTile( (data->icons << 16) |n, p.x, p.y, 11, 0);76 Scene::GetDefault()->AddTile(data->icons, n, p.x, p.y, 11, 0); 77 77 } 78 78 } -
trunk/monsterz/title.cpp
r758 r790 40 40 41 41 private: 42 int title, stars, clouds, eagle, logo,ground;43 intanim[6];44 intevent[7];42 TileSet *title, *stars, *clouds, *eagle, *logo, *ground; 43 TileSet *anim[6]; 44 TileSet *event[7]; 45 45 46 46 enum … … 279 279 /* The background, always here. */ 280 280 int backid = (int)data->period; 281 Scene::GetDefault()->AddTile( (data->title << 16) |backid,281 Scene::GetDefault()->AddTile(data->title, backid, 282 282 data->ground_pos.x, data->ground_pos.y, 1, 0); 283 283 … … 285 285 if (data->period != TitleData::DAY) 286 286 { 287 Scene::GetDefault()->AddTile( (data->stars << 16) |0,287 Scene::GetDefault()->AddTile(data->stars, 0, 288 288 24 + 0, 72 + 240, 2, 0); 289 289 } … … 295 295 { 296 296 int cloudid = n * 4 + cloudoff; 297 Scene::GetDefault()->AddTile( (data->clouds << 16) |cloudid,297 Scene::GetDefault()->AddTile(data->clouds, cloudid, 298 298 24 + data->cloudpos[n].x, 299 299 72 + data->cloudpos[n].y, 2, 0); 300 Scene::GetDefault()->AddTile( (data->clouds << 16) |cloudid,300 Scene::GetDefault()->AddTile(data->clouds, cloudid, 301 301 24 + data->cloudpos[n].x - 384.0f, 302 302 72 + data->cloudpos[n].y, 2, 0); … … 312 312 int x = (DURATION_EAGLE - data->eagletimer) * 384 / DURATION_EAGLE; 313 313 int y = data->eagley + 5.0f * sinf(phase); 314 Scene::GetDefault()->AddTile( (data->eagle << 16) |eagleid,314 Scene::GetDefault()->AddTile(data->eagle, eagleid, 315 315 24 + x, 72 + y, 3, 0); 316 316 } … … 320 320 x < Video::GetSize().x; x += 384) 321 321 { 322 Scene::GetDefault()->AddTile( (data->ground << 16) |0,322 Scene::GetDefault()->AddTile(data->ground, 0, 323 323 x, data->ground_pos.y, 0, 0); 324 324 } 325 325 326 326 /* Maybe an animation? */ 327 int tiler = 0;327 TileSet *tiler = NULL; 328 328 int id = 0; 329 329 vec2i pos = 0; … … 351 351 } 352 352 if (tiler) 353 Scene::GetDefault()->AddTile( (tiler << 16) |id,353 Scene::GetDefault()->AddTile(tiler, id, 354 354 data->ground_pos.x + pos.x, 355 355 data->ground_pos.y + pos.y, 1, 0); 356 356 357 357 /* The logo, on top of the rest. */ 358 Scene::GetDefault()->AddTile( (data->logo << 16) |0, 26, 250, 3, 0);358 Scene::GetDefault()->AddTile(data->logo, 0, 26, 250, 3, 0); 359 359 } 360 360 -
trunk/src/emitter.cpp
r735 r790 31 31 32 32 private: 33 int tiler;33 TileSet *tileset; 34 34 vec3 gravity; 35 35 int particles[MAX_PARTICLES]; … … 43 43 */ 44 44 45 Emitter::Emitter( int tiler, vec3 gravity)45 Emitter::Emitter(TileSet *tileset, vec3 gravity) 46 46 : data(new EmitterData()) 47 47 { 48 data->tile r = tiler;48 data->tileset = tileset; 49 49 data->gravity = gravity; 50 50 data->nparticles = 0; … … 74 74 75 75 for (int i = 0; i < data->nparticles; i++) 76 Scene::GetDefault()->AddTile( (data->tiler << 16) |data->particles[i],76 Scene::GetDefault()->AddTile(data->tileset, data->particles[i], 77 77 data->positions[i].x, 78 78 data->positions[i].y, -
trunk/src/emitter.h
r748 r790 18 18 19 19 #include "entity.h" 20 #include "tileset.h" 20 21 21 22 namespace lol … … 27 28 { 28 29 public: 29 Emitter( int tiler, vec3 gravity);30 Emitter(TileSet *tileset, vec3 gravity); 30 31 virtual ~Emitter(); 31 32 -
trunk/src/font.cpp
r787 r790 33 33 private: 34 34 char *name; 35 int tiler;35 TileSet *tileset; 36 36 vec2i size; 37 37 }; … … 47 47 sprintf(data->name, "<font> %s", path); 48 48 49 data->tile r= Tiler::Register(path, 0, 16, 1.0f);50 data->size = Tiler::GetSize(data->tiler,0);49 data->tileset = Tiler::Register(path, 0, 16, 1.0f); 50 data->size = data->tileset->GetSize(0); 51 51 52 52 drawgroup = DRAWGROUP_BEFORE; … … 55 55 Font::~Font() 56 56 { 57 Tiler::Deregister(data->tile r);57 Tiler::Deregister(data->tileset); 58 58 free(data->name); 59 59 delete data; … … 79 79 80 80 if (ch != ' ') 81 scene->AddTile( (data->tiler << 16) | (ch & 255),81 scene->AddTile(data->tileset, ch & 255, 82 82 pos.x, pos.y, pos.z, 0); 83 83 -
trunk/src/layer.cpp
r758 r790 48 48 void Layer::Render(int x, int y, int z) 49 49 { 50 Log::Error("FIXME: Layer::Render no longer works\n"); 51 #if 0 50 52 Scene *scene = Scene::GetDefault(); 51 53 for (int j = 0; j < height; j++) … … 55 57 x + i * 32, y + j * 32 - altitude, 56 58 altitude + z, orientation); 59 #endif 57 60 } 58 61 -
trunk/src/map.cpp
r758 r790 34 34 friend class Map; 35 35 36 static int const MAX_TILE RS = 128;36 static int const MAX_TILESETS = 128; 37 37 38 38 private: 39 int tilers[MAX_TILERS];39 TileSet *tilesets[MAX_TILESETS]; 40 40 int ntilers; 41 41 … … 60 60 61 61 char tmp[BUFSIZ]; 62 int gids[MapData::MAX_TILE RS];62 int gids[MapData::MAX_TILESETS]; 63 63 uint32_t *tiles = NULL; 64 64 int level = 0, orientation = 0, ntiles = 0; … … 96 96 || id < gids[n + 1]) 97 97 { 98 code = (data->tilers[n] << 16) | (id - gids[n]); 98 Log::Error("tilesets no longer work this way"); 99 //code = (data->tilesets[n] << 16) | (id - gids[n]); 99 100 break; 100 101 } … … 133 134 { 134 135 /* This is a tileset image file. Associate it with firstgid. */ 135 data->tile rs[data->ntilers] = Tiler::Register(str, 32, 0,136 data->tilesets[data->ntilers] = Tiler::Register(str, 32, 0, 136 137 sqrtf(2)); 137 138 data->ntilers++; … … 159 160 { 160 161 for (int i = 0; i < data->ntilers; i++) 161 Tiler::Deregister(data->tile rs[i]);162 Tiler::Deregister(data->tilesets[i]); 162 163 for (int i = 0; i < data->nlayers; i++) 163 164 delete data->layers[i]; -
trunk/src/scene.cpp
r784 r790 29 29 struct Tile 30 30 { 31 uint32_t prio, code; 32 int x, y, z, o; 31 TileSet *tileset; 32 uint32_t prio; 33 int id, x, y, z, o; 33 34 }; 34 35 … … 114 115 } 115 116 116 void Scene::AddTile( uint32_t code, int x, int y, int z, int o)117 void Scene::AddTile(TileSet *tileset, int id, int x, int y, int z, int o) 117 118 { 118 119 if ((data->ntiles % 1024) == 0) … … 121 122 /* FIXME: this sorting only works for a 45-degree camera */ 122 123 data->tiles[data->ntiles].prio = -y - 2 * 32 * z + (o ? 0 : 32); 123 data->tiles[data->ntiles].code = code; 124 data->tiles[data->ntiles].tileset = tileset; 125 data->tiles[data->ntiles].id = id; 124 126 data->tiles[data->ntiles].x = x; 125 127 data->tiles[data->ntiles].y = y; … … 274 276 /* Count how many quads will be needed */ 275 277 for (n = i + 1; n < data->ntiles; n++) 276 if (data->tiles[i]. code >> 16 != data->tiles[n].code >> 16)278 if (data->tiles[i].tileset != data->tiles[n].tileset) 277 279 break; 278 280 … … 283 285 for (int j = i; j < n; j++) 284 286 { 285 Tiler::BlitTile(data->tiles[j].code, data->tiles[j].x, 286 data->tiles[j].y, data->tiles[j].z, data->tiles[j].o, 287 data->tiles[i].tileset->BlitTile(data->tiles[j].id, 288 data->tiles[j].x, data->tiles[j].y, 289 data->tiles[j].z, data->tiles[j].o, 287 290 vertex + 18 * (j - i), texture + 12 * (j - i)); 288 291 } … … 291 294 292 295 /* Bind texture */ 293 Tiler::Bind(data->tiles[i].code);296 data->tiles[i].tileset->Bind(); 294 297 295 298 /* Bind vertex, color and texture coordinate buffers */ -
trunk/src/scene.h
r748 r790 19 19 #include <stdint.h> 20 20 21 #include "tileset.h" 22 21 23 namespace lol 22 24 { … … 33 35 static void Reset(); 34 36 35 void AddTile( uint32_t code, int x, int y, int z, int o);37 void AddTile(TileSet *tileset, int id, int x, int y, int z, int o); 36 38 void Render(); 37 39 -
trunk/src/tiler.cpp
r787 r790 28 28 public: 29 29 TilerData() 30 #if !LOL_RELEASE31 : lasterror(-1)32 #endif33 30 { } 34 31 35 32 private: 36 33 Dict tilesets; 37 #if !LOL_RELEASE38 int lasterror;39 #endif40 34 } 41 35 tilerdata; … … 47 41 */ 48 42 49 int Tiler::Register(char const *path, vec2i size, vec2i count, float dilate) 43 TileSet *Tiler::Register(char const *path, vec2i size, vec2i count, 44 float dilate) 50 45 { 51 46 int id = data->tilesets.MakeSlot(path); 47 TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); 52 48 53 if (! data->tilesets.GetEntity(id))49 if (!tileset) 54 50 { 55 TileSet *tileset = new TileSet(path, size, count, dilate);51 tileset = new TileSet(path, size, count, dilate); 56 52 data->tilesets.SetEntity(id, tileset); 57 #if !LOL_RELEASE58 if (id == data->lasterror)59 data->lasterror = -1;60 #endif61 53 } 62 54 63 return id + 1; /* ID 0 is for the empty tileset */55 return tileset; 64 56 } 65 57 66 void Tiler::Deregister( int id)58 void Tiler::Deregister(TileSet *tileset) 67 59 { 68 data->tilesets.RemoveSlot(id - 1); /* ID 0 is for the empty tileset */ 69 } 70 71 vec2i Tiler::GetCount(int id) 72 { 73 TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id - 1); 74 #if !LOL_RELEASE 75 if (!tileset) 76 { 77 Log::Error("getting count for null tiler #%i\n", id); 78 return 0; 79 } 80 #endif 81 return tileset->GetCount(); 82 } 83 84 vec2i Tiler::GetSize(int id, int tileid) 85 { 86 TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id - 1); 87 #if !LOL_RELEASE 88 if (!tileset) 89 { 90 Log::Error("getting size for null tiler #%i\n", id); 91 return 0; 92 } 93 #endif 94 return tileset->GetSize(tileid); 95 } 96 97 void Tiler::Bind(uint32_t code) 98 { 99 int id = (code >> 16) - 1; /* ID 0 is for the empty tileset */ 100 101 TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); 102 #if !LOL_RELEASE 103 if (!tileset) 104 { 105 if (id != data->lasterror) 106 Log::Error("binding null tiler #%i\n", id); 107 data->lasterror = id; 108 return; 109 } 110 #endif 111 tileset->Bind(); 112 } 113 114 void Tiler::BlitTile(uint32_t code, int x, int y, int z, int o, 115 float *vertex, float *texture) 116 { 117 int id = (code >> 16) - 1; /* ID 0 is for the empty tileset */ 118 119 TileSet *tileset = (TileSet *)data->tilesets.GetEntity(id); 120 #if !LOL_RELEASE 121 if (!tileset) 122 { 123 if (id != data->lasterror) 124 Log::Error("blitting to null tiler #%i\n", id); 125 data->lasterror = id; 126 return; 127 } 128 #endif 129 tileset->BlitTile(code & 0xffff, x, y, z, o, vertex, texture); 60 data->tilesets.RemoveSlot(tileset); 130 61 } 131 62 -
trunk/src/tiler.h
r787 r790 20 20 #include <stdint.h> 21 21 22 #include "tileset.h" 23 22 24 namespace lol 23 25 { … … 26 28 { 27 29 public: 28 static intRegister(char const *path, vec2i size, vec2i count,30 static TileSet *Register(char const *path, vec2i size, vec2i count, 29 31 float dilate); 30 static void Deregister(int id); 31 32 static vec2i GetCount(int id); 33 static vec2i GetSize(int id, int tileid); 34 static void Bind(uint32_t code); 35 static void BlitTile(uint32_t code, int x, int y, int z, int o, 36 float *vertex, float *texture); 32 static void Deregister(TileSet *); 37 33 }; 38 34
Note: See TracChangeset
for help on using the changeset viewer.