SBSPSS/Utils/MapEdit/TileSet.h
2001-03-05 20:49:46 +00:00

109 lines
2.8 KiB
C++

/*********************/
/*** TileSet Stuph ***/
/*********************/
#ifndef __TILESET_HEADER__
#define __TILESET_HEADER__
#include "stdafx.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <Vector>
#include <gfname.hpp>
#include "Layer.h"
#include "TexCache.h"
#include "Elem.h"
#include "MapEdit.h"
#include "LayerTileGui.h"
/*****************************************************************************/
enum TileSetEnum
{
DefTileBrowserWidth=8,
};
/*****************************************************************************/
class CCore;
/*****************************************************************************/
class CTileBank : public CLayer, public CElemBank
{
public:
CTileBank();
~CTileBank();
enum BrushEnum
{
LBrush=0,
RBrush,
MaxBrush
};
// Overloads
int GetType() {return(0);}
void Render(CCore *Core,Vector3 &CamPos,bool Is3d);
void RenderGrid(CCore *Core,Vector3 &CamPos,bool Active);
void RenderSelection(CCore *Core,Vector3 &ThisCam){};
void RenderCursor(CCore *Core,Vector3 &CamPos,bool Is3d);
void FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos);
void GUIInit(CCore *Core);
void GUIKill(CCore *Core);
void GUIUpdate(CCore *Core);
void GUIChanged(CCore *Core);
void Load(CFile *File,int Version);
void Save(CFile *File);
void Export(CCore *Core,CExport &Exp){};
bool LButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,bool DownFlag);
bool RButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,bool DownFlag);
bool MouseMove(CCore *Core,UINT nFlags, CPoint &CursorPos);
bool Command(int CmdMsg,CCore *Core,int Param0=0,int Param1=0);
// ElemSet Thruput
const char *GetSetName(int Set) {return(SetList[Set].GetName());}
const char *GetSetFilename(int Set) {return(SetList[Set].GetFilename());}
CElem &GetTile(int Set,int Tile) {return(SetList[Set].GetElem(Tile));}
void RenderTile(int Set,int Elem,int Flags,bool Is3d) {SetList[Set].RenderElem(Elem,Flags,Is3d);}
// Local
void DeleteCurrent();
CMap &GetLBrush() {return(Brush[LBrush]);}
CMap &GetRBrush() {return(Brush[RBrush]);}
CMap &GetBrush(int i) {return(Brush[i]);}
CMap &GetActiveBrush() {return(GetBrush(ActiveBrush));}
bool CanClose() {return(SelStart==-1);}
CPoint GetTilePos(int ID,int Width);
// Functions
bool SelectCancel();
void DeleteSet(CCore *Core);
protected:
bool Select(int BrushID,bool DownFlag);
void SetBrush(CMap &ThisBrush);
//!! CList<CTileSet> TileSet;
int CurrentSet,LastSet;
CMap Brush[2];
int ActiveBrush;
int SelStart,SelEnd;
bool LoadFlag;
int LastCursorPos,CursorPos;
CLayerTileGUI TileBankGUI;
};
/*****************************************************************************/
#endif