dungeon_crawler

annotate prototype/src/tile.h @ 46:f3030df27110

debugging the particles
author John Tsiombikas <nuclear@mutantstargoat.com>
date Thu, 13 Sep 2012 06:33:51 +0300
parents dfd3a413ef9e
children aa9e28670ae2
rev   line source
nuclear@1 1 #ifndef TILE_H_
nuclear@1 2 #define TILE_H_
nuclear@1 3
nuclear@2 4 #include <vector>
nuclear@7 5 #include <map>
nuclear@7 6 #include <assimp/scene.h>
nuclear@38 7 #include <psys/psys.h>
nuclear@2 8 #include "mesh.h"
nuclear@4 9 #include "light.h"
nuclear@2 10
nuclear@3 11 enum {
nuclear@3 12 TILE_NORTH = 1,
nuclear@3 13 TILE_SOUTH = 2,
nuclear@3 14 TILE_EAST = 4,
nuclear@3 15 TILE_WEST = 8,
nuclear@7 16 TILE_ALL = 0xffff
nuclear@3 17 };
nuclear@3 18
nuclear@11 19 class TileSet;
nuclear@11 20
nuclear@1 21 class Tile {
nuclear@2 22 private:
nuclear@11 23 TileSet *tset;
nuclear@11 24
nuclear@2 25 std::vector<Mesh*> meshes;
nuclear@46 26 std::vector<unsigned int> mesh_side, light_side, psys_side;
nuclear@3 27 std::vector<Light*> lights;
nuclear@45 28 // attributes for gridcell-unique particle systems
nuclear@38 29 std::vector<struct psys_attributes*> psattr;
nuclear@45 30 // global particle systems (simulated once, drawn for each tile instance).
nuclear@45 31 std::vector<struct psys_emitter*> psys_global;
nuclear@46 32 long last_upd;
nuclear@2 33
nuclear@4 34 int load_lights(const aiScene *scn);
nuclear@7 35 int load_meshes(const aiScene *scn, const std::map<aiMesh*, aiNode*> &nmap);
nuclear@4 36
nuclear@1 37 public:
nuclear@11 38 Tile(TileSet *tileset = 0);
nuclear@38 39 ~Tile();
nuclear@11 40
nuclear@46 41 const struct psys_attributes * const *get_unique_psys() const;
nuclear@45 42 int get_unique_psys_count() const;
nuclear@45 43
nuclear@1 44 bool load(const char *fname);
nuclear@1 45
nuclear@38 46 void update(unsigned long msec, float dt);
nuclear@38 47
nuclear@3 48 void draw(unsigned int drawmask) const;
nuclear@23 49 void draw_lights(unsigned int drawmask) const;
nuclear@46 50 void draw_post(unsigned int drawmask) const;
nuclear@1 51 };
nuclear@1 52
nuclear@5 53
nuclear@1 54 #endif // TILE_H_