This commit is contained in:
Daveo 2001-02-14 22:35:47 +00:00
parent 1b5d03f9db
commit cd1c32cfd1
24 changed files with 466 additions and 595 deletions

View file

@ -45,6 +45,8 @@ public:
void clear() {List.clear();}
void resize(int i) {List.resize(i);}
void erase(int i) {List.erase(List.begin()+i);}
// int begin() {return(List.begin);}
int size() {return(List.size());}

View file

@ -157,6 +157,7 @@ public:
void FlipY(void);
void Resize(int NewWidth,int NewHeight);
u8 GetPixel(int PixX,int PixY) { return(Buffa[PixX+(PixY*Width)]);}
protected:
void CopyFrame(Frame const &);

View file

@ -25,22 +25,20 @@
#include "utils.h"
#include "Export.h"
#include "LayerList.h"
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
CCore::CCore()
{
CurrentMousePos=CPoint(0,0);
CurrentView=NULL;
}
/*****************************************************************************/
CCore::~CCore()
{
GUIRemoveAll();
int ListSize=Layer.size();
for (int i=0; i<ListSize; i++) delete Layer[i];
}
@ -62,9 +60,8 @@ int Width,Height;
// Create Tile Layers
AddLayer(LAYER_TYPE_TILE,LAYER_SUBTYPE_ACTION, Width, Height);
AddLayer(LAYER_TYPE_TILE,LAYER_SUBTYPE_SCRATCH, Width, Height);
// AddLayer(LAYER_TYPE_COLLISION,-1, Width, Height);
ActiveLayer=FindActionLayer();
ActiveLayer=FindLayer(LAYER_TYPE_TILE,LAYER_SUBTYPE_ACTION);
MapCam.Zero();
TileCam.Zero();
TileViewFlag=FALSE;
@ -129,12 +126,13 @@ int LayerCount;
// Check Layers
int MapWidth=Layer[FindActionLayer()]->GetWidth();
int MapHeight=Layer[FindActionLayer()]->GetHeight();
int MapWidth=ActionLayer->GetWidth();
int MapHeight=ActionLayer->GetHeight();
for (i=0;i<LayerCount;i++)
{
Layer[i]->CheckLayerSize(MapWidth,MapHeight);
}
}
/*****************************************************************************/
@ -171,30 +169,42 @@ int LayerCount=Layer.size();
/*****************************************************************************/
BOOL CCore::Question(char *Txt)
{
return(theApp.GetCurrent()->Question(Txt));
CString Str;
Str.Format(Txt);
int Ret=AfxMessageBox(Str,MB_YESNO , MB_ICONQUESTION);
if (Ret==IDYES) return(true);
return(false);
}
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
void CCore::Render(CMapEditView *View,BOOL ForceRender)
void CCore::Render(BOOL ForceRender)
{
if (!CurrentView)
{
TRACE0("No View\n");
UpdateAll();
return;
}
if (TileBank.NeedLoad()) TileBank.LoadTileSets(this);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen
if (TileViewFlag)
{
RenderTileView(View);
RenderTileView();
}
else
{
RenderLayers(View);
RenderLayers();
}
}
/*****************************************************************************/
void CCore::RenderLayers(CMapEditView *View)
void CCore::RenderLayers()
{
Vector3 &ThisCam=GetCam();
int ListSize=Layer.size();
@ -225,16 +235,16 @@ int StartLayer,EndLayer;
// Get Cursor Pos
LastCursorPos=CursorPos;
Layer[ActiveLayer]->FindCursorPos(this,View,GetCam(),CurrentMousePos);
Layer[ActiveLayer]->FindCursorPos(this,GetCam(),CurrentMousePos);
}
/////////////////////////////////////////////////////////////////////////////
void CCore::RenderTileView(CMapEditView *View)
/*****************************************************************************/
void CCore::RenderTileView()
{
Vector3 &ThisCam=GetCam();
GetTileBank().RenderSet(this,ThisCam,Is3dFlag);
GetTileBank().FindCursorPos(this,View,GetCam(),CurrentMousePos);
GetTileBank().FindCursorPos(this,GetCam(),CurrentMousePos);
}
/*****************************************************************************/
@ -247,7 +257,7 @@ BOOL RedrawFlag=FALSE;
}
/*****************************************************************************/
void CCore::LButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag)
void CCore::LButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag)
{
BOOL RedrawFlag=FALSE;
@ -262,21 +272,21 @@ BOOL RedrawFlag=FALSE;
{
if (Layer[ActiveLayer]->IsVisible())
{
RedrawFlag=Layer[ActiveLayer]->LButtonControl(this,View,nFlags,CursorPos,DownFlag);
RedrawFlag=Layer[ActiveLayer]->LButtonControl(this,nFlags,CursorPos,DownFlag);
}
}
GetTileBank().SetActiveBrushL();
if (RedrawFlag) RedrawView();//View->Invalidate();
if (RedrawFlag) RedrawView();
}
/*****************************************************************************/
void CCore::MButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag)
void CCore::MButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag)
{
}
/*****************************************************************************/
void CCore::RButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag)
void CCore::RButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag)
{
BOOL RedrawFlag=FALSE;
@ -291,12 +301,12 @@ BOOL RedrawFlag=FALSE;
{
if (Layer[ActiveLayer]->IsVisible())
{
RedrawFlag=Layer[ActiveLayer]->RButtonControl(this,View,nFlags,CursorPos,DownFlag);
RedrawFlag=Layer[ActiveLayer]->RButtonControl(this,nFlags,CursorPos,DownFlag);
}
}
GetTileBank().SetActiveBrushR();
if (RedrawFlag) RedrawView();//View->Invalidate();
if (RedrawFlag) RedrawView();
}
/*****************************************************************************/
@ -310,7 +320,7 @@ Vector3 Ofs;
/*****************************************************************************/
void CCore::MouseWheel(CMapEditView *View,UINT nFlags, short zDelta, CPoint &pt)
void CCore::MouseWheel(UINT nFlags, short zDelta, CPoint &pt)
{
if (zDelta>0)
Zoom(-0.1f);
@ -319,14 +329,14 @@ void CCore::MouseWheel(CMapEditView *View,UINT nFlags, short zDelta, CPoint &pt)
}
/*****************************************************************************/
void CCore::MouseMove(CMapEditView *View,UINT nFlags, CPoint &point)
void CCore::MouseMove(UINT nFlags, CPoint &point)
{
Vector3 Ofs;
Vector3 &ThisCam=GetCam();
// check if active doc
Ofs.Zero();
if (theApp.GetCurrent()!=View->GetDocument()) return;
if (theApp.GetCurrent()!=CurrentView->GetDocument()) return;
GetWorkingPath();
CurrentMousePos=point;
// Handle Drag Movement
@ -340,7 +350,7 @@ Vector3 &ThisCam=GetCam();
{
MoveSpd*=4;
}
View->GetWindowRect(&ThisRect);
CurrentView->GetWindowRect(&ThisRect);
XS=ThisCam.z*MoveSpd;
YS=ThisCam.z*MoveSpd;
XS/=((ThisRect.right-ThisRect.left));
@ -362,10 +372,10 @@ Vector3 &ThisCam=GetCam();
{
if (Layer[ActiveLayer]->IsVisible())
{
Layer[ActiveLayer]->MouseMove(this,View,nFlags,CursorPos);
Layer[ActiveLayer]->MouseMove(this,nFlags,CursorPos);
}
}
// Mouse still moved, so need to redraw windows, to get CursorPos (And pos render)
// Mouse still moved, so need to redraw windows, to get CursorPos
RedrawView();
}
LastMousePos=CurrentMousePos;
@ -377,13 +387,12 @@ Vector3 &ThisCam=GetCam();
/*****************************************************************************/
void CCore::UpdateParamBar()
{
CMainFrame *Frm=(CMainFrame*)AfxGetApp()->GetMainWnd();
CMainFrame *Frm=(CMainFrame*)AfxGetMainWnd();
CMultiBar *ParamBar=Frm->GetParamBar();
GUIRemoveAll();
GUIAdd(LayerList,IDD_LAYER_LIST_DIALOG);
Layer[ActiveLayer]->GUIInit(this);
// Layer[ActiveLayer]->GUIUpdate(this);
GUIUpdate();
}
@ -410,8 +419,11 @@ int ListSize=Layer.size();
}
/*****************************************************************************/
void CCore::SetLayer(int NewLayer)
void CCore::SetLayer(int NewLayer,bool Force)
{
int LayerCount=Layer.size()-1;
int LastLayer=ActiveLayer;
if (NewLayer<0) NewLayer=0;
// If toggling layer, dont change the layer
@ -426,12 +438,19 @@ void CCore::SetLayer(int NewLayer)
TileBank.SetCollision(IsCol);
ActiveLayer=NewLayer;
}
UpdateParamBar();
if (LastLayer!=ActiveLayer || Force)
{
if (TileViewFlag) TileViewFlag=false;
if (LastLayer<=LayerCount) Layer[LastLayer]->GUIKill(this);
Layer[ActiveLayer]->GUIInit(this);
GUIUpdate();
}
RedrawView();
}
/*****************************************************************************/
CLayer *CCore::AddLayer(CLayer *NewLayer)
int CCore::AddLayer(CLayer *NewLayer)
{
int ListSize=Layer.size();
int NewIdx=CLayer::GetLayerIdx(NewLayer->GetType(),NewLayer->GetSubType());
@ -447,29 +466,31 @@ int Idx=ListSize;
Layer.insert(Layer.begin() + Idx,NewLayer);
return(NewLayer);
if (NewLayer->GetType()==LAYER_TYPE_TILE && NewLayer->GetSubType()==LAYER_SUBTYPE_ACTION) ActionLayer=NewLayer;
return(Idx);
}
/*****************************************************************************/
void CCore::AddLayer(int Type, int SubType, int Width, int Height)
int CCore::AddLayer(int Type, int SubType, int Width, int Height)
{
CLayer *Layer;
int Idx;
switch (Type)
{
case LAYER_TYPE_TILE:
Layer=AddLayer(new CLayerTile(SubType, Width,Height));
Idx=AddLayer(new CLayerTile(SubType, Width,Height));
break;
case LAYER_TYPE_COLLISION:
Layer=AddLayer(new CLayerCollision(SubType, Width,Height));
Idx=AddLayer(new CLayerCollision(SubType, Width,Height));
break;
case LAYER_TYPE_SHADE:
Layer=AddLayer(new CLayerShade(SubType, Width,Height));
Idx=AddLayer(new CLayerShade(SubType, Width,Height));
break;
default:
ASSERT(!"AddLayer - Invalid Layer Type");
break;
}
return(Idx);
}
/*****************************************************************************/
@ -497,11 +518,13 @@ int Sel;
TRACE2("Add Layer %i %s\n",NewLayerId,CLayer::InfoTable[NewLayerId].Name);
int Width=Layer[FindActionLayer()]->GetWidth();
int Height=Layer[FindActionLayer()]->GetHeight();
int Width=ActionLayer->GetWidth();
int Height=ActionLayer->GetHeight();
AddLayer(CLayer::InfoTable[NewLayerId].Type,CLayer::InfoTable[NewLayerId].SubType,Width,Height);
UpdateAll();
int Idx=AddLayer(CLayer::InfoTable[NewLayerId].Type,CLayer::InfoTable[NewLayerId].SubType,Width,Height);
if (ActiveLayer>=Idx) ActiveLayer++;
SetLayer(Idx,true);
}
/*****************************************************************************/
@ -512,8 +535,7 @@ void CCore::DeleteLayer(int CurrentLayer)
Layer[CurrentLayer]->GUIKill(this);
delete Layer[CurrentLayer];
Layer.erase(Layer.begin() + CurrentLayer);
SetLayer(CurrentLayer-1);
UpdateAll();
SetLayer(CurrentLayer-1,true);
TRACE1("Deleted Layer %i\n",CurrentLayer);
}
else
@ -528,7 +550,7 @@ void CCore::DeleteLayer(int CurrentLayer)
void CCore::UpdateGrid(BOOL Toggle)
{
if (Toggle) GridFlag=!GridFlag;
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -536,10 +558,24 @@ void CCore::UpdateGrid(BOOL Toggle)
/*****************************************************************************/
void CCore::UpdateTileView(BOOL Toggle)
{
if (Toggle) TileViewFlag=!TileViewFlag;
GUIRemoveAll();
UpdateParamBar();
UpdateView();
if (!Layer[ActiveLayer]->HasTileView()) return;
if (Toggle)
{
TileViewFlag=!TileViewFlag;
}
if (TileViewFlag)
{
Layer[ActiveLayer]->GUIKill(this);
TileBank.GUIInit(this);
}
else
{
TileBank.GUIKill(this);
Layer[ActiveLayer]->GUIInit(this);
}
GUIUpdate();
RedrawView();
}
/*****************************************************************************/
@ -547,7 +583,7 @@ void CCore::TileBankLoad(char *Filename)
{
TileBank.AddTileSet(Filename);
TileBank.GUIUpdate(this);
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -573,7 +609,7 @@ void CCore::TileBankDelete()
Layer[i]->RemapSet(Set,Set-1);
}
}
UpdateView();
RedrawView();
}
}
@ -582,7 +618,7 @@ void CCore::TileBankReload()
{
TileBank.Reload();
TexCache.Purge();
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -596,7 +632,7 @@ void CCore::MirrorX()
{
if (TileViewFlag) return;
Layer[ActiveLayer]->MirrorX(this);
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -604,21 +640,21 @@ void CCore::MirrorY()
{
if (TileViewFlag) return;
Layer[ActiveLayer]->MirrorY(this);
UpdateView();
RedrawView();
}
/*****************************************************************************/
void CCore::ActiveBrushLeft()
{
GetTileBank().SetActiveBrushL();
UpdateView();
RedrawView();
}
/*****************************************************************************/
void CCore::ActiveBrushRight()
{
GetTileBank().SetActiveBrushR();
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -631,14 +667,14 @@ BOOL CCore::IsTileValid(int Set,int Tile)
void CCore::CopySelection()
{
Layer[ActiveLayer]->CopySelection(this);
UpdateView();
RedrawView();
}
/*****************************************************************************/
void CCore::PasteSelection()
{
Layer[ActiveLayer]->PasteSelection(this);
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -662,7 +698,7 @@ float ZS=XS/YS;
ScaleVector.x=1.0f/XS;
ScaleVector.y=1.0f/XS;
ScaleVector.z=1.0f/XS;//4.0f;
ScaleVector.z=1.0f/XS;
}
/*****************************************************************************/
@ -686,7 +722,7 @@ Vector3 &ThisCam=GetCam();
/*****************************************************************************/
void CCore::GUIAdd(CDialog &Dlg,int ID,bool Visible,bool Lock)
{
CMainFrame *Frm=(CMainFrame*)AfxGetApp()->GetMainWnd();
CMainFrame *Frm=(CMainFrame*)AfxGetMainWnd();
CMultiBar *ParamBar=Frm->GetParamBar();
ParamBar->Add(Dlg,ID,Visible,Lock);
@ -695,7 +731,7 @@ CMultiBar *ParamBar=Frm->GetParamBar();
/*****************************************************************************/
void CCore::GUIRemove(CDialog &Dlg,int ID,bool Force)
{
CMainFrame *Frm=(CMainFrame*)AfxGetApp()->GetMainWnd();
CMainFrame *Frm=(CMainFrame*)AfxGetMainWnd();
CMultiBar *ParamBar=Frm->GetParamBar();
ParamBar->Remove(Dlg,Force);
@ -704,7 +740,7 @@ CMultiBar *ParamBar=Frm->GetParamBar();
/*****************************************************************************/
void CCore::GUIRemoveAll(bool Force)
{
CMainFrame *Frm=(CMainFrame*)AfxGetApp()->GetMainWnd();
CMainFrame *Frm=(CMainFrame*)AfxGetMainWnd();
CMultiBar *ParamBar=Frm->GetParamBar();
ParamBar->RemoveAll(Force);
@ -713,7 +749,7 @@ CMultiBar *ParamBar=Frm->GetParamBar();
/*****************************************************************************/
void CCore::GUIUpdate()
{
CMainFrame *Frm=(CMainFrame*)AfxGetApp()->GetMainWnd();
CMainFrame *Frm=(CMainFrame*)AfxGetMainWnd();
CMultiBar *ParamBar=Frm->GetParamBar();
UpdateLayerGUI();
@ -725,7 +761,6 @@ CMultiBar *ParamBar=Frm->GetParamBar();
/*****************************************************************************/
void CCore::GUIChanged()
{
// UpdateLayerGUI();
Layer[ActiveLayer]->GUIChanged(this);
}
@ -733,17 +768,13 @@ void CCore::GUIChanged()
void CCore::UpdateAll()
{
UpdateParamBar();
GUIUpdate();
UpdateView();
RedrawView();
}
/*****************************************************************************/
void CCore::RedrawView()
{
if (theApp.GetCurrent())
{
theApp.GetCurrent()->UpdateAllViews(NULL);
}
if (CurrentView) CurrentView->Invalidate();
}
/*****************************************************************************/
@ -780,14 +811,14 @@ int ListSize=Layer.size();
Layer[i]->Resize(Width,Height);
}
UpdateView();
RedrawView();
}
/*****************************************************************************/
void CCore::Toggle2d3d()
{
Is3dFlag=!Is3dFlag;
UpdateView();
RedrawView();
}
/*****************************************************************************/
@ -804,14 +835,6 @@ int ListSize=Layer.size();
return(-1);
}
/*****************************************************************************/
int CCore::FindActionLayer()
{
int Idx=FindLayer(LAYER_TYPE_TILE,LAYER_SUBTYPE_ACTION);
return(Idx);
}
/*****************************************************************************/
Vector3 CCore::OffsetCam(Vector3 &Cam,float DivVal)
@ -848,12 +871,3 @@ CExport Exp(ExportName);
}
/*****************************************************************************/
GString CCore::GetCurrentPath()
{
GFName FullPath=theApp.GetCurrent()->GetPathName();
GString Path=FullPath.Dir();
return(Path);
}

View file

@ -34,9 +34,9 @@ public:
void Load(CFile *File);
void Save(CFile *File);
BOOL Question(char *Txt);
void Render(CMapEditView *View,BOOL ForceRender=FALSE);
void RenderLayers(CMapEditView *View);
void RenderTileView(CMapEditView *View);
void Render(BOOL ForceRender=FALSE);
void RenderLayers();
void RenderTileView();
void Export(char *Filename);
// View Stuff
@ -44,11 +44,11 @@ public:
CMapEditView *GetView() {return(CurrentView);}
// Control
void SetMode(int NewMode);
void LButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
void MButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
void RButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
void MouseWheel(CMapEditView *View,UINT nFlags, short zDelta, CPoint &pt);
void MouseMove(CMapEditView *View,UINT nFlags, CPoint &point);
void LButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag);
void MButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag);
void RButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag);
void MouseWheel(UINT nFlags, short zDelta, CPoint &pt);
void MouseMove(UINT nFlags, CPoint &point);
void Zoom(float Dst);
// TileBank
@ -67,6 +67,7 @@ public:
BOOL IsTileValid(int Set,int Tile);
BOOL IsTileView() {return(TileViewFlag);}
void TileBankGUIInit() {TileBank.GUIInit(this);}
void TileBankGUIKill() {TileBank.GUIKill(this);}
void TileBankGUIUpdate() {TileBank.GUIUpdate(this);}
// GUI
@ -78,9 +79,9 @@ public:
void GUIChanged();
// Layers
void AddLayer(int Type, int SubType, int Width, int Height);
CLayer *AddLayer(CLayer *Layer);
void SetLayer(int Layer);
int AddLayer(int Type, int SubType, int Width, int Height);
int AddLayer(CLayer *Layer);
void SetLayer(int Layer,bool Force=false);
void AddLayer(int Layer);
void DeleteLayer(int Layer);
void UpdateLayerGUI();
@ -103,12 +104,12 @@ public:
CPoint &GetCursorPos() {return(CursorPos);}
void SetMapSize(int Width,int Height);
int GetMapWidth() {return(Layer[FindActionLayer()]->GetWidth());}
int GetMapHeight() {return(Layer[FindActionLayer()]->GetHeight());}
int GetMapWidth() {return(ActionLayer->GetWidth());}
int GetMapHeight() {return(ActionLayer->GetHeight());}
void Toggle2d3d();
int FindLayer(int Type,int SubType=-1);
int FindActionLayer();
int SetActionLayer(CLayer *Lyr) {ActionLayer=Lyr;}
void SetScale();
Vector3 &GetScaleVector() {return(ScaleVector);}
@ -118,8 +119,6 @@ public:
void CopySelection();
void PasteSelection();
GString GetCurrentPath();
private:
CMapEditView *CurrentView;
CPoint CurrentMousePos,LastMousePos;
@ -129,6 +128,7 @@ private:
Vector3 ScaleVector;
std::vector<CLayer*> Layer;
CLayer *ActionLayer;
int ActiveLayer;
CTileBank TileBank;

View file

@ -16,13 +16,13 @@
/*****************************************************************************/
sLayerInfoTable CLayer::InfoTable[]=
{
//Type SubType Name delete? Scale 3d Resizable Export
{LAYER_TYPE_TILE, LAYER_SUBTYPE_SCRATCH, "WorkPad", false, 1.0f, true, false, false,},
{LAYER_TYPE_SHADE, LAYER_SUBTYPE_BACK, "Back Shade", true, 4.0f, false, true, true,},
{LAYER_TYPE_TILE, LAYER_SUBTYPE_BACK, "Back", true, 4.0f, false, false, true,},
{LAYER_TYPE_TILE, LAYER_SUBTYPE_MID, "Mid", true, 2.0f, false, true, true,},
{LAYER_TYPE_TILE, LAYER_SUBTYPE_ACTION, "Action", false, 1.0f, true, true, true,},
{LAYER_TYPE_COLLISION, LAYER_SUBTYPE_NONE, "Collision", true, 1.0f, false, true, true,},
//Type SubType Name delete? Scale 3d Resizable Export TileView?
{LAYER_TYPE_TILE, LAYER_SUBTYPE_SCRATCH, "WorkPad", true, 1.0f, true, false, false, true,},
{LAYER_TYPE_SHADE, LAYER_SUBTYPE_BACK, "Back Shade", true, 4.0f, false, true, true, false,},
{LAYER_TYPE_TILE, LAYER_SUBTYPE_BACK, "Back", true, 4.0f, false, false, true, true,},
{LAYER_TYPE_TILE, LAYER_SUBTYPE_MID, "Mid", true, 2.0f, false, true, true, true,},
{LAYER_TYPE_TILE, LAYER_SUBTYPE_ACTION, "Action", false, 1.0f, true, true, true, true,},
{LAYER_TYPE_COLLISION, LAYER_SUBTYPE_NONE, "Collision", true, 1.0f, false, true, true, true,},
};
int CLayer::InfoTableSize=sizeof(InfoTable)/sizeof(sLayerInfoTable);

View file

@ -23,6 +23,7 @@ struct sLayerInfoTable
bool Render3dFlag;
bool ResizeFlag;
bool ExportFlag;
bool HasTileView;
};
@ -36,7 +37,6 @@ TileLayerMinHeight=22,
/*****************************************************************************/
class CCore;
class CMapEditView;
class CExport;
class CLayer
{
@ -55,6 +55,7 @@ static int GetLayerIdx(int Type,int SubType);
bool CanDelete() {return(InfoTable[GetLayerIdx(GetType(),GetSubType())].DeleteFlag);}
bool CanExport() {return(InfoTable[GetLayerIdx(GetType(),GetSubType())].ExportFlag);}
bool IsUnique() {return(!(InfoTable[GetLayerIdx(GetType(),GetSubType())].ExportFlag));}
bool HasTileView() {return((InfoTable[GetLayerIdx(GetType(),GetSubType())].HasTileView));}
virtual void SetVisible(BOOL f) {VisibleFlag=f;}
virtual BOOL IsVisible() {return(VisibleFlag);}
@ -68,7 +69,7 @@ virtual void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active)=0;
virtual void RenderSelection(CCore *Core,Vector3 &ThisCam)=0;
virtual void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)=0;
virtual void FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos)=0;
virtual void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d)=0;
virtual void GUIInit(CCore *Core)=0;
@ -91,9 +92,9 @@ virtual void Export(CCore *Core,CExport &Exp)=0;
virtual BOOL SetMode(int NewMode)=0;
virtual BOOL InitMode()=0;
virtual BOOL ExitMode()=0;
virtual BOOL LButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)=0;
virtual BOOL RButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)=0;
virtual BOOL MouseMove(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos)=0;
virtual BOOL LButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)=0;
virtual BOOL RButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)=0;
virtual BOOL MouseMove(CCore *Core,UINT nFlags, CPoint &CursorPos)=0;
virtual BOOL MirrorX(CCore *Core){return(false);};
virtual BOOL MirrorY(CCore *Core){return(false);};

View file

@ -28,11 +28,8 @@
CLayerCollision::CLayerCollision(int _SubType,int Width,int Height)
{
SubType=LAYER_SUBTYPE_NONE;
SetDefaultParams();
Mode=MouseModePaint;
Map.SetSize(Width,Height,TRUE);
}
@ -84,12 +81,14 @@ void CLayerCollision::Save(CFile *File)
/*****************************************************************************/
void CLayerCollision::GUIInit(CCore *Core)
{
Core->GUIAdd(ToolBarGUI,IDD_LAYERTILE_TOOLBAR);
// Core->TileBankGUIInit();
Core->GUIAdd(ToolBarGUI,IDD_LAYERTILE_TOOLBAR);
}
/*****************************************************************************/
void CLayerCollision::GUIKill(CCore *Core)
{
// Core->TileBankGUIKill();
Core->GUIRemove(ToolBarGUI,IDD_LAYERTILE_TOOLBAR);
}

View file

@ -9,7 +9,6 @@
/*****************************************************************************/
class CCore;
//class CMapEditView;
class CLayerCollision : public CLayerTile
{

View file

@ -128,10 +128,10 @@ float y1=y0-Height;
/*****************************************************************************/
BOOL CLayerShade::Resize(int Width,int Height)
BOOL CLayerShade::Resize(int _Width,int _Height)
{
Width=TileLayerMinWidth+(Width-TileLayerMinWidth)/ScaleFactor;
Height=TileLayerMinHeight+(Height-TileLayerMinHeight)/ScaleFactor;
Width=TileLayerMinWidth+(_Width-TileLayerMinWidth)/ScaleFactor;
Height=TileLayerMinHeight+(_Height-TileLayerMinHeight)/ScaleFactor;
return(true);
}
@ -149,9 +149,7 @@ void CLayerShade::GUIInit(CCore *Core)
/*****************************************************************************/
void CLayerShade::GUIKill(CCore *Core)
{
ShadeDlg.GetRGB0(RGB[0]);
ShadeDlg.GetRGB1(RGB[1]);
Core->GUIRemove(ShadeDlg,IDD_LAYERSHADE_GUI);
Core->GUIRemove(ShadeDlg,IDD_LAYERSHADE_GUI);
}
/*****************************************************************************/
@ -164,9 +162,6 @@ void CLayerShade::GUIChanged(CCore *Core)
{
ShadeDlg.GetRGB0(RGB[0]);
ShadeDlg.GetRGB1(RGB[1]);
TRACE3("RGB0 is %i,%i,%i\n",RGB[0].rgbRed,RGB[0].rgbGreen,RGB[0].rgbBlue);
TRACE3("RGB1 is %i,%i,%i\n",RGB[1].rgbRed,RGB[1].rgbGreen,RGB[1].rgbBlue);
}
/*****************************************************************************/

View file

@ -11,7 +11,6 @@
/*****************************************************************************/
class CCore;
class CMapEditView;
class CLayerShade : public CLayer
{
@ -28,7 +27,7 @@ public:
void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active){};
void RenderSelection(CCore *Core,Vector3 &ThisCam){};
void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos){};
void FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos){};
void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d){};
void GUIInit(CCore *Core);
@ -49,9 +48,9 @@ public:
BOOL SetMode(int NewMode) {return(false);}
BOOL InitMode() {return(false);}
BOOL ExitMode() {return(false);}
BOOL LButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos,BOOL DownFlag) {return(false);}
BOOL RButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos,BOOL DownFlag) {return(false);}
BOOL MouseMove(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos) {return(false);}
BOOL LButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,BOOL DownFlag) {return(false);}
BOOL RButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,BOOL DownFlag) {return(false);}
BOOL MouseMove(CCore *Core,UINT nFlags, CPoint &CursorPos) {return(false);}
protected:
void Render(CCore *Core,Vector3 &CamPos,CMap &ThisMap,BOOL Render3d,float Alpha=1.0f,Vector3 *Ofs=0);

View file

@ -306,7 +306,7 @@ const float OverVal=0.1f;
}
/*****************************************************************************/
void CLayerTile::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)
void CLayerTile::FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos)
{
Vector3 ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
int MapWidth=Map.GetWidth();
@ -347,7 +347,7 @@ int DrawH=ZoomH+8;
glPushMatrix();
glLoadIdentity();
gluPickMatrix( MousePos.x ,(Viewport[3]-MousePos.y),5.0,5.0,Viewport);
View->SetupPersMatrix();
Core->GetView()->SetupPersMatrix();
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
@ -393,13 +393,14 @@ GLuint *HitPtr=SelectBuffer;
/*****************************************************************************/
void CLayerTile::GUIInit(CCore *Core)
{
Core->GUIAdd(ToolBarGUI,IDD_LAYERTILE_TOOLBAR);
Core->TileBankGUIInit();
Core->TileBankGUIInit();
Core->GUIAdd(ToolBarGUI,IDD_LAYERTILE_TOOLBAR);
}
/*****************************************************************************/
void CLayerTile::GUIKill(CCore *Core)
{
Core->TileBankGUIKill();
Core->GUIRemove(ToolBarGUI,IDD_LAYERTILE_TOOLBAR);
}
@ -472,7 +473,7 @@ BOOL CLayerTile::ExitMode()
}
/*****************************************************************************/
BOOL CLayerTile::LButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)
BOOL CLayerTile::LButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)
{
BOOL Ret=FALSE;
CTileBank &TileBank=Core->GetTileBank();
@ -497,7 +498,7 @@ CTileBank &TileBank=Core->GetTileBank();
}
/*****************************************************************************/
BOOL CLayerTile::RButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)
BOOL CLayerTile::RButtonControl(CCore *Core,UINT nFlags, CPoint &CursorPos,BOOL DownFlag)
{
BOOL Ret=FALSE;
CTileBank &TileBank=Core->GetTileBank();
@ -522,7 +523,7 @@ CTileBank &TileBank=Core->GetTileBank();
}
/*****************************************************************************/
BOOL CLayerTile::MouseMove(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &CursorPos)
BOOL CLayerTile::MouseMove(CCore *Core,UINT nFlags, CPoint &CursorPos)
{
BOOL Ret=FALSE;
CTileBank &TileBank=Core->GetTileBank();

View file

@ -11,7 +11,6 @@
/*****************************************************************************/
class CCore;
class CMapEditView;
class CLayerTile : public CLayer
{
@ -34,13 +33,13 @@ public:
void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active);
void RenderSelection(CCore *Core,Vector3 &ThisCam);
void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos);
void FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void GUIInit(CCore *Core);
void GUIKill(CCore *Core);
void GUIUpdate(CCore *Core);
void GUIChanged(CCore *Core);
virtual void GUIInit(CCore *Core);
virtual void GUIKill(CCore *Core);
virtual void GUIUpdate(CCore *Core);
virtual void GUIChanged(CCore *Core);
int GetWidth() {return(Map.GetWidth());}
int GetHeight() {return(Map.GetHeight());}
@ -57,9 +56,9 @@ public:
BOOL InitMode();
BOOL ExitMode();
BOOL LButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
BOOL RButtonControl(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
BOOL MouseMove(CCore *Core,CMapEditView *View,UINT nFlags, CPoint &point);
BOOL LButtonControl(CCore *Core,UINT nFlags, CPoint &point,BOOL DownFlag);
BOOL RButtonControl(CCore *Core,UINT nFlags, CPoint &point,BOOL DownFlag);
BOOL MouseMove(CCore *Core,UINT nFlags, CPoint &point);
BOOL MirrorX(CCore *Core);
BOOL MirrorY(CCore *Core);

View file

@ -110,5 +110,3 @@ void CMainFrame::Dump(CDumpContext& dc) const
/////////////////////////////////////////////////////////////////////////////

View file

@ -8,47 +8,48 @@ NewFileInclude1=#include "stdafx.h"
NewFileInclude2=#include "mapedit.h"
LastPage=0
ClassCount=17
Class1=CChildFrame
Class2=CGLEnabledView
Class3=CMainFrame
Class4=CMapEditApp
Class5=CAboutDlg
Class6=CMapEditDoc
Class7=CMapEditView
ClassCount=15
Class1=CAddLayerDlg
Class2=CChildFrame
Class3=CGLEnabledView
Class4=CLayerList
Class5=CLayerShadeGUI
Class6=CLayerTileGUI
Class7=CLayerTileToolbar
Class8=CMainFrame
Class9=CMapEditApp
Class10=CAboutDlg
Class11=CMapEditDoc
Class12=CMapEditView
Class13=CMapSizeDlg
Class14=CMultiBar
Class15=CNewMapGUI
ResourceCount=14
Resource1=IDD_NEW_LAYER
Resource2=IDR_MAPEDITYPE (English (U.S.))
Resource3=IDD_MAPSIZE
Resource4=IDD_DIALOGBAR (English (U.S.))
Resource5=IDD_LAYERTILE_TOOLBAR
Class8=CMultiBar
Resource6=IDD_ABOUTBOX (English (U.S.))
Resource7=IDR_MAINFRAME (English (U.S.))
Class9=CLayerList
Class10=CMapSizeDlg
Resource8=IDD_LAYER_LIST_DIALOG
Class11=CGfxToolBar
Class12=CLayerTileGUI
Resource9=IDD_ADDLAYER
Resource10=IDD_LAYERTILE_GUI
Class13=CNewMapGUI
Class14=CProgressDlg
Resource11=IDD_NEWMAP
Class15=CAddLayerDlg
Resource12=IDD_MULTIBAR (English (U.S.))
Class16=CLayerTileToolbar
Resource13=IDR_TOOLBAR (English (U.S.))
Class17=CLayerShadeGUI
Resource14=IDD_LAYERSHADE_GUI
ResourceCount=12
Resource1=IDD_ABOUTBOX (English (U.S.))
Resource2=IDD_MULTIBAR (English (U.S.))
Resource3=IDR_MAPEDITYPE (English (U.S.))
Resource4=IDD_LAYER_LIST_DIALOG
Resource5=IDD_MAPSIZE
Resource6=IDD_NEWMAP
Resource7=IDD_ADDLAYER
Resource8=IDD_LAYERTILE_GUI
Resource9=IDD_LAYERTILE_TOOLBAR
Resource10=IDR_TOOLBAR (English (U.S.))
Resource11=IDR_MAINFRAME (English (U.S.))
Resource12=IDD_LAYERSHADE_GUI
[CLS:CAddLayerDlg]
Type=0
BaseClass=CDialog
HeaderFile=AddLayerDlg.h
ImplementationFile=AddLayerDlg.cpp
[CLS:CChildFrame]
Type=0
BaseClass=CMDIChildWnd
HeaderFile=ChildFrm.h
ImplementationFile=ChildFrm.cpp
LastObject=CChildFrame
[CLS:CGLEnabledView]
Type=0
@ -56,12 +57,37 @@ BaseClass=CView
HeaderFile=GLEnabledView.h
ImplementationFile=GLEnabledView.cpp
[CLS:CLayerList]
Type=0
HeaderFile=LayerList.h
ImplementationFile=LayerList.cpp
[CLS:CLayerShadeGUI]
Type=0
BaseClass=CDialog
HeaderFile=LayerShadeGUI.h
ImplementationFile=LayerShadeGUI.cpp
[CLS:CLayerTileGUI]
Type=0
BaseClass=CDialog
HeaderFile=LayerTileGUI.h
ImplementationFile=LayerTileGUI.cpp
[CLS:CLayerTileToolbar]
Type=0
BaseClass=CDialog
HeaderFile=LayerTileToolbar.h
ImplementationFile=LayerTileToolbar.cpp
[CLS:CMainFrame]
Type=0
BaseClass=CMDIFrameWnd
HeaderFile=MainFrm.h
ImplementationFile=MainFrm.cpp
LastObject=CMainFrame
Filter=T
VirtualFilter=fWC
[CLS:CMapEditApp]
Type=0
@ -69,15 +95,15 @@ BaseClass=CWinApp
HeaderFile=MapEdit.h
ImplementationFile=MapEdit.cpp
LastObject=CMapEditApp
Filter=N
VirtualFilter=AC
[CLS:CAboutDlg]
Type=0
BaseClass=CDialog
HeaderFile=MapEdit.cpp
ImplementationFile=MapEdit.cpp
LastObject=ID_ZOOM_IN
Filter=D
VirtualFilter=dWC
LastObject=CAboutDlg
[CLS:CMapEditDoc]
Type=0
@ -97,10 +123,100 @@ LastObject=CMapEditView
Filter=C
VirtualFilter=VWC
[CLS:CMapSizeDlg]
Type=0
BaseClass=CDialog
HeaderFile=MapSizeDlg.h
ImplementationFile=MapSizeDlg.cpp
[CLS:CMultiBar]
Type=0
BaseClass=CDialogBar
HeaderFile=MultiBar.h
ImplementationFile=MultiBar.cpp
[CLS:CNewMapGUI]
Type=0
BaseClass=CDialog
HeaderFile=NewMapGUI.h
ImplementationFile=NewMapGUI.cpp
[DLG:IDD_ADDLAYER]
Type=1
Class=CAddLayerDlg
ControlCount=3
Control1=IDOK,button,1342242817
Control2=IDCANCEL,button,1342242816
Control3=IDC_ADDLAYER_LIST,listbox,1352728833
[DLG:IDD_LAYER_LIST_DIALOG]
Type=1
Class=CLayerList
ControlCount=3
Control1=IDC_LAYER_LIST,listbox,1352728913
Control2=IDC_LAYERLIST_ADD,button,1342242816
Control3=IDC_LAYERLIST_DELETE,button,1342242816
[DLG:IDD_LAYERSHADE_GUI]
Type=1
Class=CLayerShadeGUI
ControlCount=8
Control1=IDC_LAYERSHADE_TEXT0,static,1342308352
Control2=IDC_LAYERSHADE_EDITR0,edit,1350770688
Control3=IDC_LAYERSHADE_EDITG0,edit,1350770816
Control4=IDC_LAYERSHADE_EDITB0,edit,1350770816
Control5=IDC_LAYERSHADE_TEXT1,static,1342308352
Control6=IDC_LAYERSHADE_EDITR1,edit,1350639744
Control7=IDC_LAYERSHADE_EDITG1,edit,1350639744
Control8=IDC_LAYERSHADE_EDITB1,edit,1350639744
[DLG:IDD_LAYERTILE_GUI]
Type=1
Class=CLayerTileGUI
ControlCount=4
Control1=IDD_LAYERTILE_LIST,combobox,1342242819
Control2=IDD_LAYERTILE_BTN_UPDATE,button,1342242816
Control3=IDD_LAYERTILE_BTN_LOAD,button,1342242816
Control4=IDD_LAYERTILE_BTN_DELETE,button,1342242816
[DLG:IDD_LAYERTILE_TOOLBAR]
Type=1
Class=CLayerTileToolbar
ControlCount=2
Control1=IDD_LAYERTILE_BTN_PAINT,button,1342177344
Control2=IDD_LAYERTILE_BTN_SELECT,button,1342177344
[DLG:IDD_ABOUTBOX]
Type=1
Class=CAboutDlg
[DLG:IDD_MAPSIZE]
Type=1
Class=CMapSizeDlg
ControlCount=7
Control1=IDOK,button,1342177281
Control2=IDCANCEL,button,1342177280
Control3=IDC_MAPSIZE_WIDTH_TEXT,static,1342308866
Control4=IDC_MAPSIZE_WIDTH,edit,1350639744
Control5=IDC_MAPSIZE_HEIGHT_TEXT,static,1342308866
Control6=IDC_MAPSIZE_HEIGHT,edit,1350639744
Control7=IDC_MAPSIZE_WARNING,static,1342308352
[DLG:IDD_MULTIBAR]
Type=1
Class=CMultiBar
[DLG:IDD_NEWMAP]
Type=1
Class=CNewMapGUI
ControlCount=6
Control1=IDOK,button,1342177281
Control2=IDCANCEL,button,1342177280
Control3=IDC_MAPSIZE_WIDTH_TEXT,static,1342308866
Control4=IDC_MAPSIZE_WIDTH,edit,1350639744
Control5=IDC_MAPSIZE_HEIGHT_TEXT,static,1342308866
Control6=IDC_MAPSIZE_HEIGHT,edit,1350639744
[TB:IDR_TOOLBAR (English (U.S.))]
Type=1
Class=?
@ -195,191 +311,8 @@ Control1=IDC_STATIC,static,1342177283
Control2=IDC_STATIC,static,1342308480
Control3=IDOK,button,1342373889
[DLG:IDD_DIALOGBAR (English (U.S.))]
Type=1
Class=?
ControlCount=3
Control1=IDC_STATIC,static,1342308352
Control2=IDC_CHECK1,button,1342242819
Control3=IDC_RADIO1,button,1342177289
[CLS:CMultiBar]
Type=0
HeaderFile=multibar.h
ImplementationFile=multibar.cpp
BaseClass=CDialogBar
LastObject=CMultiBar
Filter=D
VirtualFilter=dWC
[DLG:IDD_MULTIBAR (English (U.S.))]
Type=1
Class=CMultiBar
Class=?
ControlCount=0
[DLG:IDD_LAYER_LIST_DIALOG]
Type=1
Class=CLayerList
ControlCount=3
Control1=IDC_LAYER_LIST,listbox,1352728913
Control2=IDC_LAYERLIST_ADD,button,1342242816
Control3=IDC_LAYERLIST_DELETE,button,1342242816
[CLS:CLayerList]
Type=0
HeaderFile=LayerList.h
ImplementationFile=LayerList.cpp
BaseClass=CDialog
Filter=D
VirtualFilter=dWC
LastObject=IDC_LAYER_LIST
[CLS:CGfxToolBar]
Type=0
HeaderFile=GfxToolBar.h
ImplementationFile=GfxToolBar.cpp
BaseClass=CDialog
Filter=D
LastObject=CGfxToolBar
VirtualFilter=dWC
[DLG:IDD_MAPSIZE]
Type=1
Class=CMapSizeDlg
ControlCount=7
Control1=IDOK,button,1342177281
Control2=IDCANCEL,button,1342177280
Control3=IDC_MAPSIZE_WIDTH_TEXT,static,1342308866
Control4=IDC_MAPSIZE_WIDTH,edit,1350639744
Control5=IDC_MAPSIZE_HEIGHT_TEXT,static,1342308866
Control6=IDC_MAPSIZE_HEIGHT,edit,1350639744
Control7=IDC_MAPSIZE_WARNING,static,1342308352
[CLS:CMapSizeDlg]
Type=0
HeaderFile=MapSizeDlg.h
ImplementationFile=MapSizeDlg.cpp
BaseClass=CDialog
Filter=D
VirtualFilter=dWC
LastObject=CMapSizeDlg
[DLG:IDD_LAYERTILE_GUI]
Type=1
Class=CLayerTileGUI
ControlCount=4
Control1=IDD_LAYERTILE_LIST,combobox,1342242819
Control2=IDD_LAYERTILE_BTN_UPDATE,button,1342242816
Control3=IDD_LAYERTILE_BTN_LOAD,button,1342242816
Control4=IDD_LAYERTILE_BTN_DELETE,button,1342242816
[CLS:CLayerTileGUI]
Type=0
HeaderFile=LayerTileGUI.h
ImplementationFile=LayerTileGUI.cpp
BaseClass=CDialog
Filter=D
VirtualFilter=dWC
LastObject=CLayerTileGUI
[DLG:IDD_NEW_LAYER]
Type=1
Class=?
ControlCount=12
Control1=IDOK,button,1342242817
Control2=IDCANCEL,button,1342242816
Control3=IDC_NEW_LAYER_TYPE_LIST,combobox,1344340226
Control4=IDC_NEW_LAYER_TYPE_NAME,static,1342308352
Control5=IDC_NEW_LAYER_WIDTH_NAME,static,1342308352
Control6=IDC_NEW_LAYER_HEIGHT_NAME,static,1342308352
Control7=IDC_NEW_LAYER_WIDTH_EDIT,edit,1350631552
Control8=IDC_NEW_LAYER_HEIGHT_EDIT,edit,1350631552
Control9=IDC_NEW_LAYER_NAME_NAME,static,1342308352
Control10=IDC_NEW_LAYER_NAME_EDIT,edit,1350631552
Control11=IDC_NEW_LAYER_WIDTH_NAME2,static,1342308352
Control12=IDC_NEW_LAYER_WIDTH_EDIT2,edit,1350631552
[DLG:IDD_NEWMAP]
Type=1
Class=CNewMapGUI
ControlCount=6
Control1=IDOK,button,1342177281
Control2=IDCANCEL,button,1342177280
Control3=IDC_MAPSIZE_WIDTH_TEXT,static,1342308866
Control4=IDC_MAPSIZE_WIDTH,edit,1350639744
Control5=IDC_MAPSIZE_HEIGHT_TEXT,static,1342308866
Control6=IDC_MAPSIZE_HEIGHT,edit,1350639744
[CLS:CNewMapGUI]
Type=0
HeaderFile=NewMapGUI.h
ImplementationFile=NewMapGUI.cpp
BaseClass=CDialog
Filter=D
LastObject=CNewMapGUI
VirtualFilter=dWC
[CLS:CProgressDlg]
Type=0
HeaderFile=ProgressDlg.h
ImplementationFile=ProgressDlg.cpp
BaseClass=CDialog
Filter=D
LastObject=IDC_EDIT1
VirtualFilter=dWC
[CLS:CAddLayerDlg]
Type=0
HeaderFile=AddLayerDlg.h
ImplementationFile=AddLayerDlg.cpp
BaseClass=CDialog
Filter=D
LastObject=CAddLayerDlg
VirtualFilter=dWC
[DLG:IDD_ADDLAYER]
Type=1
Class=CAddLayerDlg
ControlCount=3
Control1=IDOK,button,1342242817
Control2=IDCANCEL,button,1342242816
Control3=IDC_ADDLAYER_LIST,listbox,1352728833
[DLG:IDD_LAYERTILE_TOOLBAR]
Type=1
Class=CLayerTileToolbar
ControlCount=2
Control1=IDD_LAYERTILE_BTN_PAINT,button,1342177344
Control2=IDD_LAYERTILE_BTN_SELECT,button,1342177344
[CLS:CLayerTileToolbar]
Type=0
HeaderFile=LayerTileToolbar.h
ImplementationFile=LayerTileToolbar.cpp
BaseClass=CDialog
Filter=D
LastObject=CLayerTileToolbar
VirtualFilter=dWC
[DLG:IDD_LAYERSHADE_GUI]
Type=1
Class=CLayerShadeGUI
ControlCount=8
Control1=IDC_LAYERSHADE_TEXT0,static,1342308352
Control2=IDC_LAYERSHADE_EDITR0,edit,1350770688
Control3=IDC_LAYERSHADE_EDITG0,edit,1350770816
Control4=IDC_LAYERSHADE_EDITB0,edit,1350770816
Control5=IDC_LAYERSHADE_TEXT1,static,1342308352
Control6=IDC_LAYERSHADE_EDITR1,edit,1350639744
Control7=IDC_LAYERSHADE_EDITG1,edit,1350639744
Control8=IDC_LAYERSHADE_EDITB1,edit,1350639744
[CLS:CLayerShadeGUI]
Type=0
HeaderFile=LayerShadeGUI.h
ImplementationFile=LayerShadeGUI.cpp
BaseClass=CDialog
Filter=D
VirtualFilter=dWC
LastObject=CLayerShadeGUI

View file

@ -42,12 +42,13 @@ CMapEditApp::CMapEditApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
CurrentDoc=0;
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CMapEditApp object
CMapEditApp theApp;
CMapEditApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CMapEditApp initialization
@ -105,10 +106,20 @@ BOOL CMapEditApp::InitInstance()
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
void CMapEditApp::SetCurrent(CMapEditDoc *Cur)
{
// prevent over initialisation
ASSERT(Cur);
if (CurrentDoc!=Cur)
{
CurrentDoc=Cur;
CurrentDoc->UpdateAll();
}
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
@ -164,5 +175,4 @@ void CMapEditApp::OnAppAbout()
}
/////////////////////////////////////////////////////////////////////////////
// CMapEditApp message handlers

View file

@ -19,16 +19,13 @@
// See MapEdit.cpp for the implementation of this class
//
class CMapEditDoc;
class CMapEditView;
class CMapEditApp : public CWinApp
{
public:
CMapEditApp();
void SetCurrent(CMapEditDoc *Cur)
{
CurrentDoc=Cur;
}
void SetCurrent(CMapEditDoc *Cur);
CMapEditDoc *GetCurrent()
{
return(CurrentDoc);
@ -50,8 +47,7 @@ public:
DECLARE_MESSAGE_MAP()
private:
CMapEditDoc *CurrentDoc;
CMapEditDoc *CurrentDoc;
};

View file

@ -24,6 +24,18 @@ BEGIN_MESSAGE_MAP(CMapEditDoc, CDocument)
ON_COMMAND(ID_EXPORT, OnExport)
ON_COMMAND(ID_ZOOM_IN, OnZoomIn)
ON_COMMAND(ID_ZOOM_OUT, OnZoomOut)
ON_COMMAND(ID_TOGGLE_TILEVIEW, OnToggleTileview)
ON_COMMAND(ID_TOOLBAR_GRID, OnToggleGrid)
ON_COMMAND(ID_MIRRORX, OnMirrorx)
ON_COMMAND(ID_MIRRORY, OnMirrory)
ON_COMMAND(ID_ACTIVEBRUSH_LEFT, OnActivebrushLeft)
ON_COMMAND(ID_ACTIVEBRUSH_RIGHT, OnActivebrushRight)
ON_COMMAND(ID_MAP_SETSIZE, OnMapSetSize)
ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
ON_COMMAND(ID_TOOLBAR_TILEPALETTE, OnToggleTileview)
ON_COMMAND(ID_TOGGLE_GRID, OnToggleGrid)
ON_COMMAND(ID_2D_3D_TOGGLE, On2d3dToggle)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
@ -55,6 +67,12 @@ BOOL CMapEditDoc::OnOpenDocument(LPCTSTR lpszPathName)
return TRUE;
}
void CMapEditDoc::OnCloseDocument()
{
Core.GUIRemoveAll();
CDocument::OnCloseDocument();
}
/////////////////////////////////////////////////////////////////////////////
// CMapEditDoc serialization
@ -91,7 +109,10 @@ void CMapEditDoc::Dump(CDumpContext& dc) const
/*********************************************************************************/
void CMapEditDoc::SetView(CMapEditView *View)
{
//CMapEditView *LastView=Core.GetView();
Core.SetView(View);
// if (LastView!=View)
UpdateView();
}
/*********************************************************************************/
@ -101,23 +122,20 @@ CMapEditView *CMapEditDoc::GetView()
}
/*********************************************************************************/
void CMapEditDoc::UpdateView(CMapEditView *View)
void CMapEditDoc::UpdateView()
{
CView *V=(CView*)View;
V->Invalidate();
Core.UpdateView();
}
/*********************************************************************************/
void CMapEditDoc::Render(CMapEditView *View)
void CMapEditDoc::Render()
{
// if (View)
Core.Render(View);
Core.Render();
}
/*********************************************************************************/
void CMapEditDoc::UpdateAll(CMapEditView *View)
void CMapEditDoc::UpdateAll()
{
// if (View)
Core.UpdateAll();
}
@ -132,18 +150,6 @@ CString XYStr;
pCmdUI->SetText(XYStr);
}
/*********************************************************************************/
bool CMapEditDoc::Question(char *Txt)
{
CString Str;
Str.Format(Txt);
int Ret=AfxMessageBox(Str,MB_YESNO , MB_ICONQUESTION);
if (Ret==IDYES) return(true);
return(false);
}
/*********************************************************************************/
void CMapEditDoc::GUIUpdate()
{
@ -155,7 +161,7 @@ void CMapEditDoc::GUIUpdate()
void CMapEditDoc::GUIChanged()
{
Core.GUIChanged();
UpdateAllViews(NULL);
UpdateView();
}
/*********************************************************************************/
@ -163,82 +169,32 @@ void CMapEditDoc::GUIChanged()
/*** Windows Message Handlers ****************************************************/
/*********************************************************************************/
/*********************************************************************************/
void CMapEditDoc::LButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag)
{
Core.LButtonControl(View,nFlags,point,DownFlag);
}
void CMapEditDoc::LButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag) {Core.LButtonControl(nFlags,point,DownFlag);}
void CMapEditDoc::MButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag) {Core.MButtonControl(nFlags,point,DownFlag);}
void CMapEditDoc::RButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag) {Core.RButtonControl(nFlags,point,DownFlag);}
void CMapEditDoc::MouseWheel(UINT nFlags, short zDelta, CPoint &point) {Core.MouseWheel(nFlags,zDelta,point);}
void CMapEditDoc::MouseMove(UINT nFlags, CPoint &point) {Core.MouseMove(nFlags,point);}
void CMapEditDoc::OnToggleTileview() {Core.UpdateTileView(true); FocusView();}
void CMapEditDoc::OnToggleGrid() {Core.UpdateGrid(TRUE); FocusView();}
void CMapEditDoc::OnMirrorx() {Core.MirrorX(); FocusView();}
void CMapEditDoc::OnMirrory() {Core.MirrorY();FocusView();}
void CMapEditDoc::OnEditCopy() {Core.CopySelection(); FocusView();}
void CMapEditDoc::OnEditPaste() {Core.PasteSelection(); FocusView(); }
void CMapEditDoc::OnActivebrushLeft() {Core.ActiveBrushLeft();}
void CMapEditDoc::OnActivebrushRight() {Core.ActiveBrushRight();}
void CMapEditDoc::On2d3dToggle() {Core.Toggle2d3d();}
void CMapEditDoc::OnZoomIn() {Core.Zoom(-0.1f); UpdateView();}
void CMapEditDoc::OnZoomOut() {Core.Zoom(+0.1f); UpdateView();}
/*********************************************************************************/
void CMapEditDoc::MButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag)
{
Core.MButtonControl(View,nFlags,point,DownFlag);
}
/*********************************************************************************/
void CMapEditDoc::RButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag)
{
Core.RButtonControl(View,nFlags,point,DownFlag);
}
/*********************************************************************************/
void CMapEditDoc::MouseWheel(CMapEditView *View,UINT nFlags, short zDelta, CPoint &point)
{
Core.MouseWheel(View,nFlags,zDelta,point);
}
/*********************************************************************************/
void CMapEditDoc::MouseMove(CMapEditView *View,UINT nFlags, CPoint &point)
{
Core.MouseMove(View,nFlags,point);
}
/*********************************************************************************/
void CMapEditDoc::ToggleTileView(CMapEditView *View)
{
Core.UpdateTileView(true);
Core.UpdateAll();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::ToggleGrid(CMapEditView *View)
{
Core.UpdateGrid(TRUE);
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::MirrorX(CMapEditView *View)
{
Core.MirrorX();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::MirrorY(CMapEditView *View)
{
Core.MirrorY();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::CopySelection(CMapEditView *View)
{
Core.CopySelection();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::PasteSelection(CMapEditView *View)
{
Core.PasteSelection();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::SetMode(int NewMode)
{
Core.SetMode(NewMode);
Core.GUIUpdate();
FocusView();
}
@ -292,7 +248,7 @@ CFileDialog Dlg(TRUE,"Gin",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,GinFilter
char Filename[256];
sprintf(Filename,"%s",Dlg.GetPathName());
Core.TileBankLoad(Filename);
UpdateAllViews(NULL);
UpdateView();
FocusView();
}
@ -300,7 +256,7 @@ char Filename[256];
void CMapEditDoc::TileBankDelete()
{
Core.TileBankDelete();
UpdateAllViews(NULL);
UpdateView();
FocusView();
}
@ -308,31 +264,19 @@ void CMapEditDoc::TileBankDelete()
void CMapEditDoc::TileBankReload()
{
Core.TileBankReload();
UpdateAllViews(NULL);
UpdateView();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::TileBankSet()
{
Core.TileBankSet();
UpdateAllViews(NULL);
UpdateView();
FocusView();
}
/*********************************************************************************/
void CMapEditDoc::ActiveBrushLeft(CMapEditView *View)
{
Core.ActiveBrushLeft();
}
/*********************************************************************************/
void CMapEditDoc::ActiveBrushRight(CMapEditView *View)
{
Core.ActiveBrushRight();
}
/*********************************************************************************/
void CMapEditDoc::MapSetSize(CMapEditView *View)
void CMapEditDoc::OnMapSetSize()
{
CMapSizeDlg Dlg;
@ -344,25 +288,6 @@ CMapSizeDlg Dlg;
Core.SetMapSize(Dlg.m_Width,Dlg.m_Height);
}
/*********************************************************************************/
void CMapEditDoc::OnZoomIn()
{
Core.Zoom(-0.1f);
UpdateAllViews(NULL);
}
/*********************************************************************************/
void CMapEditDoc::OnZoomOut()
{
Core.Zoom(+0.1f);
UpdateAllViews(NULL);
}
/*********************************************************************************/
void CMapEditDoc::Toggle2d3d(CMapEditView *View)
{
Core.Toggle2d3d();
}
/*********************************************************************************/
void CMapEditDoc::FocusView()
@ -370,4 +295,3 @@ void CMapEditDoc::FocusView()
theApp.GetMainWnd()->SetFocus(); // Put control back to Window :o)
}

View file

@ -21,20 +21,21 @@ protected: // create from serialization only
public:
void SetView(CMapEditView *View);
CMapEditView *GetView();
void UpdateView(CMapEditView *View);
void Render(CMapEditView *View);
void UpdateAll(CMapEditView *View);
void UpdateView();
void Render();
void UpdateAll();
void FocusView();
bool Question(char *Txt);
void GUIUpdate();
void GUIChanged();
// Windows Messages Thru Point
void LButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
void MButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
void RButtonControl(CMapEditView *View,UINT nFlags, CPoint &point,BOOL DownFlag);
void MouseWheel(CMapEditView *View,UINT nFlags, short zDelta, CPoint &pt);
void MouseMove(CMapEditView *View,UINT nFlags, CPoint &point);
void LButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag);
void MButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag);
void RButtonControl(UINT nFlags, CPoint &point,BOOL DownFlag);
void MouseWheel(UINT nFlags, short zDelta, CPoint &pt);
void MouseMove(UINT nFlags, CPoint &point);
/*
void ToggleTileView(CMapEditView *View);
void ToggleGrid(CMapEditView *View);
void MirrorX(CMapEditView *View);
@ -45,7 +46,7 @@ public:
void ActiveBrushRight(CMapEditView *View);
void MapSetSize(CMapEditView *View);
void Toggle2d3d(CMapEditView *View);
*/
void TileBankLoad();
void TileBankDelete();
void TileBankReload();
@ -66,6 +67,7 @@ public:
virtual BOOL OnNewDocument();
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
virtual void Serialize(CArchive& ar);
virtual void OnCloseDocument();
//}}AFX_VIRTUAL
// Implementation
@ -86,6 +88,16 @@ protected:
afx_msg void OnExport();
afx_msg void OnZoomIn();
afx_msg void OnZoomOut();
afx_msg void OnToggleTileview();
afx_msg void OnToggleGrid();
afx_msg void OnMirrorx();
afx_msg void OnMirrory();
afx_msg void OnActivebrushLeft();
afx_msg void OnActivebrushRight();
afx_msg void OnMapSetSize();
afx_msg void OnEditCopy();
afx_msg void OnEditPaste();
afx_msg void On2d3dToggle();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

View file

@ -33,18 +33,7 @@ BEGIN_MESSAGE_MAP(CMapEditView, CGLEnabledView)
ON_WM_RBUTTONDOWN()
ON_WM_RBUTTONUP()
ON_WM_MOUSEMOVE()
ON_COMMAND(ID_TOGGLE_TILEVIEW, OnToggleTileview)
ON_COMMAND(ID_TOOLBAR_GRID, OnToggleGrid)
ON_COMMAND(ID_MIRRORX, OnMirrorx)
ON_COMMAND(ID_MIRRORY, OnMirrory)
ON_COMMAND(ID_ACTIVEBRUSH_LEFT, OnActivebrushLeft)
ON_COMMAND(ID_ACTIVEBRUSH_RIGHT, OnActivebrushRight)
ON_COMMAND(ID_MAP_SETSIZE, OnMapSetSize)
ON_COMMAND(ID_2D_3D_TOGGLE, On2d3dToggle)
ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
ON_COMMAND(ID_TOOLBAR_TILEPALETTE, OnToggleTileview)
ON_COMMAND(ID_TOGGLE_GRID, OnToggleGrid)
ON_WM_SETFOCUS()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
@ -85,7 +74,7 @@ void CMapEditView::OnCreateGL()
void CMapEditView::OnDrawGL()
{
GetDocument()->Render(this);
GetDocument()->Render();
}
/////////////////////////////////////////////////////////////////////////////
@ -101,7 +90,7 @@ void CMapEditView::OnSizeGL(int cx, int cy)
SetupPersMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
GetDocument()->UpdateView(this);
GetDocument()->UpdateView();
}
/////////////////////////////////////////////////////////////////////////////
@ -136,39 +125,26 @@ CMapEditDoc* CMapEditView::GetDocument() // non-debug version is inline
/////////////////////////////////////////////////////////////////////////////
// CMapEditView message handlers
/*********************************************************************************/
/*********************************************************************************/
/*********************************************************************************/
void CMapEditView::OnLButtonDown(UINT nFlags, CPoint point) {GetDocument()->LButtonControl(this,nFlags,point,TRUE);}
void CMapEditView::OnLButtonUp(UINT nFlags, CPoint point) {GetDocument()->LButtonControl(this,nFlags,point,FALSE);}
void CMapEditView::OnMButtonDown(UINT nFlags, CPoint point) {GetDocument()->MButtonControl(this,nFlags,point,TRUE);}
void CMapEditView::OnMButtonUp(UINT nFlags, CPoint point) {GetDocument()->MButtonControl(this,nFlags,point,FALSE);}
BOOL CMapEditView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) {GetDocument()->MouseWheel(this,nFlags,zDelta,pt) ;return(0);}
void CMapEditView::OnRButtonDown(UINT nFlags, CPoint point) {GetDocument()->RButtonControl(this,nFlags,point,TRUE);}
void CMapEditView::OnRButtonUp(UINT nFlags, CPoint point) {GetDocument()->RButtonControl(this,nFlags,point,FALSE);}
void CMapEditView::OnMouseMove(UINT nFlags, CPoint point) {GetDocument()->MouseMove(this,nFlags, point);}
void CMapEditView::OnToggleTileview() {GetDocument()->ToggleTileView(this);}
void CMapEditView::OnToggleGrid() {GetDocument()->ToggleGrid(this);}
void CMapEditView::OnMirrorx() {GetDocument()->MirrorX(this);}
void CMapEditView::OnMirrory() {GetDocument()->MirrorY(this);}
void CMapEditView::OnEditCopy() {GetDocument()->CopySelection(this);}
void CMapEditView::OnEditPaste() {GetDocument()->PasteSelection(this);}
void CMapEditView::OnLButtonDown(UINT nFlags, CPoint point) {GetDocument()->LButtonControl(nFlags,point,TRUE);}
void CMapEditView::OnLButtonUp(UINT nFlags, CPoint point) {GetDocument()->LButtonControl(nFlags,point,FALSE);}
void CMapEditView::OnMButtonDown(UINT nFlags, CPoint point) {GetDocument()->MButtonControl(nFlags,point,TRUE);}
void CMapEditView::OnMButtonUp(UINT nFlags, CPoint point) {GetDocument()->MButtonControl(nFlags,point,FALSE);}
BOOL CMapEditView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) {GetDocument()->MouseWheel(nFlags,zDelta,pt) ;return(0);}
void CMapEditView::OnRButtonDown(UINT nFlags, CPoint point) {GetDocument()->RButtonControl(nFlags,point,TRUE);}
void CMapEditView::OnRButtonUp(UINT nFlags, CPoint point) {GetDocument()->RButtonControl(nFlags,point,FALSE);}
void CMapEditView::OnMouseMove(UINT nFlags, CPoint point) {GetDocument()->MouseMove(nFlags, point);}
void CMapEditView::OnActivebrushLeft() {GetDocument()->ActiveBrushLeft(this);}
void CMapEditView::OnActivebrushRight() {GetDocument()->ActiveBrushRight(this);}
void CMapEditView::OnMapSetSize() {GetDocument()->MapSetSize(this);}
void CMapEditView::On2d3dToggle() {GetDocument()->Toggle2d3d(this);}
void CMapEditView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
void CMapEditView::OnSetFocus(CWnd* pOldWnd)
{
CGLEnabledView::OnActivateView(bActivate, pActivateView, pDeactiveView);
if (bActivate)
{
CMapEditDoc *CurDoc=GetDocument();
theApp.SetCurrent(CurDoc);
CurDoc->SetView(this);
CurDoc->UpdateAll(this);
}
CGLEnabledView::OnSetFocus(pOldWnd);
theApp.SetCurrent(GetDocument());
}
void CMapEditView::OnInitialUpdate()
{
CGLEnabledView::OnInitialUpdate();
GetDocument()->SetView(this);
}

View file

@ -30,8 +30,8 @@ public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMapEditView)
protected:
virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
public:
virtual void OnInitialUpdate();
//}}AFX_VIRTUAL
// Implementation
@ -56,16 +56,7 @@ protected:
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnToggleTileview();
afx_msg void OnToggleGrid();
afx_msg void OnMirrorx();
afx_msg void OnMirrory();
afx_msg void OnActivebrushLeft();
afx_msg void OnActivebrushRight();
afx_msg void OnMapSetSize();
afx_msg void On2d3dToggle();
afx_msg void OnEditCopy();
afx_msg void OnEditPaste();
afx_msg void OnSetFocus(CWnd* pOldWnd);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

View file

@ -95,6 +95,7 @@ char FixPath[1024];
FilePath=RootPath.Drive();
FilePath+=RootPath.Dir();
FilePath.Append('\\');
FilePath.Upper();
File->Read(&ListSize,sizeof(int));
File->Read(&CurrentSet,sizeof(int));
@ -110,7 +111,7 @@ char FixPath[1024];
for (int i=0;i<ListSize;i++)
{
char c=1;
GString FullName=FilePath;
GString FullName;//=FilePath;
while (c)
{
@ -118,10 +119,17 @@ char FixPath[1024];
FullName.Append(c);
}
FullName.Upper();
GFName::makeabsolute(FilePath,FullName,FixPath);
FullName=FixPath;
_fullpath( FixPath, FullName, 1024);
for (int z=0; z<strlen(FixPath); z++)
{// Invalidate any long name short cackness
if (FixPath[z]=='~') FixPath[z]='_';
}
FullName=FixPath;
CheckFilename(FullName);
FullName.Upper();
AddTileSet(FullName);
}
}
@ -243,11 +251,11 @@ void CTileBank::RenderSet(CCore *Core,Vector3 &CamPos,BOOL Is3d)
}
/*****************************************************************************/
void CTileBank::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)
void CTileBank::FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos)
{
if (!TileSet.size()) return; // No tiles, return
CursorPos=TileSet[CurrentSet].FindCursorPos(Core,View,CamPos,MousePos);
CursorPos=TileSet[CurrentSet].FindCursorPos(Core,CamPos,MousePos);
SelEnd=CursorPos;
}
@ -256,7 +264,13 @@ void CTileBank::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPo
/*****************************************************************************/
void CTileBank::GUIInit(CCore *Core)
{
Core->GUIAdd(TileBankGUI,IDD_LAYERTILE_GUI);
Core->GUIAdd(TileBankGUI,IDD_LAYERTILE_GUI);
}
/*****************************************************************************/
void CTileBank::GUIKill(CCore *Core)
{
Core->GUIRemove(TileBankGUI,IDD_LAYERTILE_GUI);
}
/*****************************************************************************/
@ -695,7 +709,7 @@ float Scale=CamPos.z/(float)TileBrowserWidth/2.0;
}
/*****************************************************************************/
int CTileSet::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)
int CTileSet::FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos)
{
int ListSize=Tile.size();
GLint Viewport[4];
@ -716,7 +730,7 @@ float Scale=CamPos.z/(float)TileBrowserWidth/2.0;
glPushMatrix();
glLoadIdentity();
gluPickMatrix( MousePos.x ,(Viewport[3]-MousePos.y),5.0,5.0,Viewport);
View->SetupPersMatrix();
Core->GetView()->SetupPersMatrix();
glMatrixMode(GL_MODELVIEW);
glPushMatrix();

View file

@ -60,10 +60,11 @@ public:
CMap &GetActiveBrush() {return(GetBrush(ActiveBrush));}
void RenderSet(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos);
void FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void GUIInit(CCore *Core);
void GUIKill(CCore *Core);
void GUIUpdate(CCore *Core);
BOOL IsTileValid(int Set,int Tile);
@ -120,7 +121,7 @@ const char *GetName() {return(Name);}
CTile &GetTile(int No) {return(Tile[No]);}
void Purge();
int FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos);
int FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos);
void Render(CCore *Core,Vector3 &CamPos,CMap &LBrush,CMap &RBrush,BOOL Render3d);
void RenderCursor(Vector3 &CamPos,int Pos,int Width, int Height);
void RenderBrush(Vector3 &CamPos,CMap &LBrush,CMap &RBrush);

View file

@ -255,6 +255,7 @@ char Name[_MAX_FNAME];
}
/**************************************************************************************/
/***
void MakeFullFilename(const char* In,GString &Out)
{
GFName FName=theApp.GetCurrent()->GetPathName();
@ -267,15 +268,16 @@ GString Path;
Out=Path;
Out+=In;
}
*/
/**************************************************************************************/
/*!!!
void MakePathRel2App(const char* In,char *Out)
{
GString RootPath=theApp.GetCurrent()->GetPathName();
GFName::makerelative(RootPath,In,Out);
}
*/
/**************************************************************************************/
GString GetWorkingPath()
{
@ -320,3 +322,5 @@ CFileDialog Dlg(true,NULL,Name,OFN_HIDEREADONLY | OFN_PATHMUSTEXIST,Filter);
Filename=Dlg.GetPathName();
}
/*****************************************************************************/

View file

@ -32,6 +32,7 @@ typedef u32 U32;
/**************************************************************************************/
class GString;
class CMapEditDoc;
void DbgMsg(const char * pszFmt,...);
void BuildGLBox(float XMin,float XMax,float YMin,float YMax,float ZMin,float ZMax);
@ -53,4 +54,5 @@ void MakePathRel2App(const char* In,char *Out);
GString GetWorkingPath();
void CheckFilename(GString &Filename);
#endif