2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#ifndef TLEVEL_INCLUDED
|
|
|
|
#define TLEVEL_INCLUDED
|
|
|
|
|
|
|
|
#include "timage.h"
|
|
|
|
#include "tfilepath.h"
|
|
|
|
|
|
|
|
#undef DVAPI
|
|
|
|
#undef DVVAR
|
|
|
|
#ifdef TIMAGE_EXPORTS
|
|
|
|
#define DVAPI DV_EXPORT_API
|
|
|
|
#define DVVAR DV_EXPORT_VAR
|
|
|
|
#else
|
|
|
|
#define DVAPI DV_IMPORT_API
|
|
|
|
#define DVVAR DV_IMPORT_VAR
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-06-29 18:17:12 +12:00
|
|
|
class DVAPI TLevel final : public TSmartObject {
|
2016-06-15 18:43:10 +12:00
|
|
|
DECLARE_CLASS_CODE
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
typedef std::map<const TFrameId, TImageP> Table;
|
|
|
|
typedef Table::iterator Iterator;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
private:
|
2016-06-15 18:43:10 +12:00
|
|
|
std::string m_name;
|
|
|
|
Table *m_table;
|
|
|
|
TPalette *m_palette;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
TLevel();
|
|
|
|
~TLevel();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
private:
|
2016-06-15 18:43:10 +12:00
|
|
|
// not implemented
|
|
|
|
TLevel(const TLevel &);
|
|
|
|
TLevel &operator=(const TLevel &);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
// nome
|
|
|
|
std::string getName() const;
|
|
|
|
void setName(std::string name);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// frames
|
|
|
|
int getFrameCount() const { return (int)m_table->size(); };
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
const TImageP &frame(const TFrameId fid);
|
|
|
|
const TImageP &frame(int f) { return frame(TFrameId(f)); };
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setFrame(const TFrameId &fid, const TImageP &img);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// ritorna la posizione (0..getNFrames()-1) del frame f
|
|
|
|
// se il frame f non c'e' ritorna -1
|
|
|
|
// int getIndex(const TFrameId fid);
|
|
|
|
// int getIndex(int f) {return getIndex(TFrameId(f));};
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
Iterator begin() { return m_table->begin(); };
|
|
|
|
Iterator end() { return m_table->end(); };
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// uh - oh; serve a tinytoonz/filmstrip.
|
|
|
|
// PROVVISORIO !!
|
|
|
|
Table *getTable() { return m_table; }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TPalette *getPalette();
|
|
|
|
void setPalette(TPalette *);
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-04-15 17:11:23 +12:00
|
|
|
#ifdef _WIN32
|
2016-03-19 06:57:51 +13:00
|
|
|
template class DVAPI TSmartPointerT<TLevel>;
|
|
|
|
#endif
|
|
|
|
|
2016-06-29 18:17:12 +12:00
|
|
|
class DVAPI TLevelP final : public TSmartPointerT<TLevel> {
|
2016-03-19 06:57:51 +13:00
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
TLevelP() : TSmartPointerT<TLevel>(new TLevel) {}
|
|
|
|
TLevelP(TLevel *level) : TSmartPointerT<TLevel>(level) {}
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
|
|
|
#endif
|