//  DescriptionHere - gameDB.h
//  Created by John Ryland (jryland@xiaofrog.com), 02/11/2017
//  Copyright (c) 2017 InvertedLogic
//  All rights reserved.
#pragma once

#include <vector>
#include <string>
#include <stdint.h>

typedef int PatternID;
struct Pattern
{
  PatternID m_id;        // table index
  uint8_t m_tiles;
  uint32_t m_score;
  uint64_t m_offsets;
  uint64_t m_lengths;
};

typedef int AssetID;
struct Asset
{
  AssetID m_id;          // table index
  std::string m_name;    // asset name
};

typedef int TileTypeID;
struct TileType
{
  TileTypeID m_id;       // table index
  bool m_moveable;       // is it a blocker or a piece the player can move
  AssetID m_assetId;     // the renderable image of the tile
};

struct GameDB
{
  std::vector<Pattern> m_patterns;
  std::vector<Asset> m_assets;
  std::vector<TileType> m_tileTypes;
};

bool loadGameDB(GameDB& a_gameDB);


