From cd1c32cfd1ff4a2bbe9e28336b6bc076f5c68baa Mon Sep 17 00:00:00 2001 From: Daveo Date: Wed, 14 Feb 2001 22:35:47 +0000 Subject: [PATCH] --- Utils/Libs/DaveLib/List.h | 2 + Utils/Libs/GLib/Frame.hpp | 1 + Utils/MapEdit/Core.cpp | 200 +++++++++-------- Utils/MapEdit/Core.h | 32 +-- Utils/MapEdit/Layer.cpp | 14 +- Utils/MapEdit/Layer.h | 11 +- Utils/MapEdit/LayerCollision.cpp | 7 +- Utils/MapEdit/LayerCollision.h | 1 - Utils/MapEdit/LayerShade.cpp | 13 +- Utils/MapEdit/LayerShade.h | 9 +- Utils/MapEdit/LayerTile.cpp | 15 +- Utils/MapEdit/LayerTile.h | 17 +- Utils/MapEdit/MainFrm.cpp | 2 - Utils/MapEdit/MapEdit.clw | 375 +++++++++++++------------------ Utils/MapEdit/MapEdit.cpp | 16 +- Utils/MapEdit/MapEdit.h | 10 +- Utils/MapEdit/MapEditDoc.cpp | 178 +++++---------- Utils/MapEdit/MapEditDoc.h | 32 ++- Utils/MapEdit/MapEditView.cpp | 68 ++---- Utils/MapEdit/MapEditView.h | 15 +- Utils/MapEdit/TileSet.cpp | 26 ++- Utils/MapEdit/TileSet.h | 5 +- Utils/MapEdit/utils.cpp | 8 +- Utils/MapEdit/utils.h | 4 +- 24 files changed, 466 insertions(+), 595 deletions(-) diff --git a/Utils/Libs/DaveLib/List.h b/Utils/Libs/DaveLib/List.h index 2653bc5bc..1880e913e 100644 --- a/Utils/Libs/DaveLib/List.h +++ b/Utils/Libs/DaveLib/List.h @@ -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());} diff --git a/Utils/Libs/GLib/Frame.hpp b/Utils/Libs/GLib/Frame.hpp index 2b3e41cc9..d61123ef3 100644 --- a/Utils/Libs/GLib/Frame.hpp +++ b/Utils/Libs/GLib/Frame.hpp @@ -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 &); diff --git a/Utils/MapEdit/Core.cpp b/Utils/MapEdit/Core.cpp index 5777bd3a8..b64df8b9b 100644 --- a/Utils/MapEdit/Core.cpp +++ b/Utils/MapEdit/Core.cpp @@ -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; iGetWidth(); -int MapHeight=Layer[FindActionLayer()]->GetHeight(); +int MapWidth=ActionLayer->GetWidth(); +int MapHeight=ActionLayer->GetHeight(); for (i=0;iCheckLayerSize(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()); @@ -446,30 +465,32 @@ 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); - -} diff --git a/Utils/MapEdit/Core.h b/Utils/MapEdit/Core.h index e0492abdc..a2ccd3f88 100644 --- a/Utils/MapEdit/Core.h +++ b/Utils/MapEdit/Core.h @@ -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 Layer; + CLayer *ActionLayer; int ActiveLayer; CTileBank TileBank; diff --git a/Utils/MapEdit/Layer.cpp b/Utils/MapEdit/Layer.cpp index fdb495a0b..cc1486087 100644 --- a/Utils/MapEdit/Layer.cpp +++ b/Utils/MapEdit/Layer.cpp @@ -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); diff --git a/Utils/MapEdit/Layer.h b/Utils/MapEdit/Layer.h index a4d78b1e6..d22a8c7fc 100644 --- a/Utils/MapEdit/Layer.h +++ b/Utils/MapEdit/Layer.h @@ -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);}; diff --git a/Utils/MapEdit/LayerCollision.cpp b/Utils/MapEdit/LayerCollision.cpp index f05b30914..072627f38 100644 --- a/Utils/MapEdit/LayerCollision.cpp +++ b/Utils/MapEdit/LayerCollision.cpp @@ -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); } diff --git a/Utils/MapEdit/LayerCollision.h b/Utils/MapEdit/LayerCollision.h index b92231572..904f09465 100644 --- a/Utils/MapEdit/LayerCollision.h +++ b/Utils/MapEdit/LayerCollision.h @@ -9,7 +9,6 @@ /*****************************************************************************/ class CCore; -//class CMapEditView; class CLayerCollision : public CLayerTile { diff --git a/Utils/MapEdit/LayerShade.cpp b/Utils/MapEdit/LayerShade.cpp index 76d1d180b..79f6fc64c 100644 --- a/Utils/MapEdit/LayerShade.cpp +++ b/Utils/MapEdit/LayerShade.cpp @@ -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); } /*****************************************************************************/ diff --git a/Utils/MapEdit/LayerShade.h b/Utils/MapEdit/LayerShade.h index 0c99016c0..e6cd11f49 100644 --- a/Utils/MapEdit/LayerShade.h +++ b/Utils/MapEdit/LayerShade.h @@ -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); diff --git a/Utils/MapEdit/LayerTile.cpp b/Utils/MapEdit/LayerTile.cpp index 63a62fe90..da33d29e4 100644 --- a/Utils/MapEdit/LayerTile.cpp +++ b/Utils/MapEdit/LayerTile.cpp @@ -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(); diff --git a/Utils/MapEdit/LayerTile.h b/Utils/MapEdit/LayerTile.h index 8692bede8..5886d5d32 100644 --- a/Utils/MapEdit/LayerTile.h +++ b/Utils/MapEdit/LayerTile.h @@ -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); diff --git a/Utils/MapEdit/MainFrm.cpp b/Utils/MapEdit/MainFrm.cpp index 6bffb9731..cb358e2e6 100644 --- a/Utils/MapEdit/MainFrm.cpp +++ b/Utils/MapEdit/MainFrm.cpp @@ -110,5 +110,3 @@ void CMainFrame::Dump(CDumpContext& dc) const ///////////////////////////////////////////////////////////////////////////// - - diff --git a/Utils/MapEdit/MapEdit.clw b/Utils/MapEdit/MapEdit.clw index 005e92bd7..4d4228743 100644 --- a/Utils/MapEdit/MapEdit.clw +++ b/Utils/MapEdit/MapEdit.clw @@ -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 - diff --git a/Utils/MapEdit/MapEdit.cpp b/Utils/MapEdit/MapEdit.cpp index 33aa6eaa0..52ad1e59a 100644 --- a/Utils/MapEdit/MapEdit.cpp +++ b/Utils/MapEdit/MapEdit.cpp @@ -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 @@ -104,11 +105,21 @@ BOOL CMapEditApp::InitInstance() // The main window has been initialized, so show and update it. 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 diff --git a/Utils/MapEdit/MapEdit.h b/Utils/MapEdit/MapEdit.h index c2c09987c..fffb9a099 100644 --- a/Utils/MapEdit/MapEdit.h +++ b/Utils/MapEdit/MapEdit.h @@ -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; }; diff --git a/Utils/MapEdit/MapEditDoc.cpp b/Utils/MapEdit/MapEditDoc.cpp index 1f2395e96..dad6eee7a 100644 --- a/Utils/MapEdit/MapEditDoc.cpp +++ b/Utils/MapEdit/MapEditDoc.cpp @@ -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) } - diff --git a/Utils/MapEdit/MapEditDoc.h b/Utils/MapEdit/MapEditDoc.h index d9caa23aa..d7cb87a74 100644 --- a/Utils/MapEdit/MapEditDoc.h +++ b/Utils/MapEdit/MapEditDoc.h @@ -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() diff --git a/Utils/MapEdit/MapEditView.cpp b/Utils/MapEdit/MapEditView.cpp index 1d5e4cf68..5c9c0cf7a 100644 --- a/Utils/MapEdit/MapEditView.cpp +++ b/Utils/MapEdit/MapEditView.cpp @@ -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); + +} + diff --git a/Utils/MapEdit/MapEditView.h b/Utils/MapEdit/MapEditView.h index 7ae6e763e..cc25e3844 100644 --- a/Utils/MapEdit/MapEditView.h +++ b/Utils/MapEdit/MapEditView.h @@ -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() }; diff --git a/Utils/MapEdit/TileSet.cpp b/Utils/MapEdit/TileSet.cpp index 6b7afbcdf..d399f6c18 100644 --- a/Utils/MapEdit/TileSet.cpp +++ b/Utils/MapEdit/TileSet.cpp @@ -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;iGUIAdd(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(); diff --git a/Utils/MapEdit/TileSet.h b/Utils/MapEdit/TileSet.h index 8e10b2cbf..13220efd5 100644 --- a/Utils/MapEdit/TileSet.h +++ b/Utils/MapEdit/TileSet.h @@ -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); diff --git a/Utils/MapEdit/utils.cpp b/Utils/MapEdit/utils.cpp index 636a47716..c20856cbd 100644 --- a/Utils/MapEdit/utils.cpp +++ b/Utils/MapEdit/utils.cpp @@ -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(); } + +/*****************************************************************************/ diff --git a/Utils/MapEdit/utils.h b/Utils/MapEdit/utils.h index 10ed97e5e..3ea97e135 100644 --- a/Utils/MapEdit/utils.h +++ b/Utils/MapEdit/utils.h @@ -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); @@ -52,5 +53,6 @@ void MakeFullFilename(const char *RelName,GString &Out); void MakePathRel2App(const char* In,char *Out); GString GetWorkingPath(); void CheckFilename(GString &Filename); - + + #endif \ No newline at end of file