diff --git a/Utils/MapEdit/Core.cpp b/Utils/MapEdit/Core.cpp index f2c71874a..0851c1f63 100644 --- a/Utils/MapEdit/Core.cpp +++ b/Utils/MapEdit/Core.cpp @@ -15,6 +15,8 @@ #include "MapEditView.h" #include "MainFrm.h" +#include "NewMapGUI.h" + #include "Core.h" #include "Layer.h" #include "LayerTile.h" @@ -28,23 +30,14 @@ /*****************************************************************************/ CCore::CCore() { - TileViewFlag=FALSE; - GridFlag=TRUE; - CurrentMousePos=CPoint(0,0); - ActiveLayer=0; - MapCam=Vec(0,0,0); - MapCamOfs=Vec(-15,10,0); - TileCam=Vec(0,0,0); - TileCamOfs=Vec(-15,10,0); - - Is3dFlag=TRUE; + CurrentMousePos=CPoint(0,0); } /*****************************************************************************/ CCore::~CCore() { int ListSize=Layer.size(); - for (int i=0; iGetMainWnd(); CMultiBar *ParamBar=Frm->GetParamBar(); ParamBar->RemoveAll(); -// Add default parram bar items +// Add default param bar items ParamBar->Add(Frm->GetLayerList(),IDD_LAYER_LIST_DIALOG,TRUE,TRUE); UpdateParamBar(); UpdateAll(NULL); } /*****************************************************************************/ -void CCore::New() +BOOL CCore::New() { -// Create Gfx Layers -// Name Width Height SizeDiv ViewDiv 3d? Resizable? - Layer.push_back(new CLayerTile( "Back", 32, 32, 4.0f, 4.0f, FALSE, FALSE)); - Layer.push_back(new CLayerTile( "Mid", TileLayerDefaultWidth, TileLayerDefaultHeight, 2.0f, 2.0f, FALSE, TRUE)); - Layer.push_back(new CLayerTile( "Action", TileLayerDefaultWidth, TileLayerDefaultHeight, 1.0f, 1.0f, TRUE, TRUE)); -// Layer.push_back(new CLayerTile( "Fore", TileLayerDefaultWidth, TileLayerDefaultHeight, 0.5f, 0.5f, FALSE, TRUE)); +CNewMapGUI Dlg; +int Width,Height; + Dlg.m_Width=TileLayerDefaultWidth; + Dlg.m_Height=TileLayerDefaultHeight; - ActiveLayer=LAYER_ACTION; - MapCam=Vec(0,0,0); - TileCam=Vec(0,0,0); - Init(); + Dlg.m_Back=TRUE; + Dlg.m_Mid=TRUE; + Dlg.m_Fore=FALSE; + + if (Dlg.DoModal()!=IDOK) return FALSE; + Width=Dlg.m_Width; + Height=Dlg.m_Height; + +// Create Tile Layers +// Type Width Height Scale 3d? Resizable? + if (Dlg.m_Back) Layer.push_back(new CLayerTile( CLayerTile::Back, 32, 32, 4.0f, FALSE, FALSE)); + if (Dlg.m_Mid) Layer.push_back(new CLayerTile( CLayerTile::Mid, Width, Height, 2.0f, FALSE, TRUE)); + Layer.push_back(new CLayerTile( CLayerTile::Action, Width, Height, 1.0f, TRUE, TRUE)); + if (Dlg.m_Fore) Layer.push_back(new CLayerTile( CLayerTile::Fore, Width, Height, 0.5f, FALSE, TRUE)); + + ActiveLayer=FindActionLayer(); + MapCam=Vec(0,0,0); + MapCamOfs=Vec(-15,10,0); + TileCam=Vec(0,0,0); + TileCamOfs=Vec(-15,10,0); + TileViewFlag=FALSE; + GridFlag=TRUE; + Is3dFlag=TRUE; + Init(); + return(TRUE); } /*****************************************************************************/ + void CCore::Load(CFile *File) { float Version; File->Read(&Version,sizeof(float)); + TRACE1("Load Version %g\n",Version); - File->Read(&MapCam,sizeof(Vec)); - File->Read(&TileCam,sizeof(Vec)); + if (Version>=1.0) + { + File->Read(&MapCam,sizeof(Vec)); + File->Read(&MapCamOfs,sizeof(Vec)); + File->Read(&TileCam,sizeof(Vec)); + File->Read(&TileCamOfs,sizeof(Vec)); + + File->Read(&TileViewFlag,sizeof(BOOL)); + File->Read(&GridFlag,sizeof(BOOL)); + File->Read(&Is3dFlag,sizeof(BOOL)); + } + if (Version>=1.1) + { - File->Read(&TileCam,sizeof(Vec)); - - File->Read(&TileViewFlag,sizeof(BOOL)); - File->Read(&GridFlag,sizeof(BOOL)); - File->Read(&Is3dFlag,sizeof(BOOL)); + } // Layers @@ -111,22 +132,20 @@ int LayerCount; } } - TileBank.Load(File,Version); - Init(); - MapCam=Vec(0,0,0); - + TileBank.Load(File,Version); + Init(); } /*****************************************************************************/ void CCore::Save(CFile *File) { - +// Version 1 File->Write(&FileVersion,sizeof(float)); File->Write(&MapCam,sizeof(Vec)); + File->Write(&MapCamOfs,sizeof(Vec)); File->Write(&TileCam,sizeof(Vec)); - - File->Write(&TileCam,sizeof(Vec)); + File->Write(&TileCamOfs,sizeof(Vec)); File->Write(&TileViewFlag,sizeof(BOOL)); File->Write(&GridFlag,sizeof(BOOL)); @@ -542,6 +561,28 @@ void CCore::Toggle2d3d(CMapEditView *View) UpdateView(View); } +/*****************************************************************************/ +int CCore::FindLayer(int Type,int SubType) +{ +int ListSize=Layer.size(); + + for (int i=0; iGetType()==Type) + if (SubType==-1 || Layer[i]->GetSubType()==SubType) + return(i); + } + return(-1); +} + +/*****************************************************************************/ +int CCore::FindActionLayer() +{ +int Idx=FindLayer(LAYER_TYPE_TILE,CLayerTile::Action); + + return(Idx); +} + /*****************************************************************************/ Vec CCore::OffsetCam(Vec &Cam,float DivVal) diff --git a/Utils/MapEdit/Core.h b/Utils/MapEdit/Core.h index b36844de4..c6449face 100644 --- a/Utils/MapEdit/Core.h +++ b/Utils/MapEdit/Core.h @@ -22,18 +22,11 @@ class CMapEditView; class CCore { public: - enum - { - LAYER_BACK=0, - LAYER_MID, - LAYER_ACTION, - LAYER_FORE, - }; CCore(); ~CCore(); void Init(); - void New(); + BOOL New(); void Load(CFile *File); void Save(CFile *File); void Render(CMapEditView *View,BOOL ForceRender=FALSE); @@ -71,9 +64,6 @@ public: // Layers void SetLayer(int Layer); void UpdateLayerGUI(CMapEditView *View); -// void SetActiveLayer(int Layer); -// int GetActiveLayer() {return(ActiveLayer);} -// CLayer *GetLayer(int i) {return(Layer[i]);} // Grid void UpdateGrid(CMapEditView *View,BOOL Toggle=FALSE); @@ -94,11 +84,12 @@ public: CPoint &GetCursorPos() {return(CursorPos);} void SetMapSize(CMapEditView *View,int Width,int Height); - int GetMapWidth() {return(Layer[LAYER_ACTION]->GetWidth());} - int GetMapHeight() {return(Layer[LAYER_ACTION]->GetHeight());} + int GetMapWidth() {return(Layer[FindActionLayer()]->GetWidth());} + int GetMapHeight() {return(Layer[FindActionLayer()]->GetHeight());} void Toggle2d3d(CMapEditView *View); - + int FindLayer(int Type,int SubType=-1); + int FindActionLayer(); private: CPoint CurrentMousePos,LastMousePos; @@ -118,7 +109,6 @@ private: BOOL GridFlag; BOOL Is3dFlag; - }; /*****************************************************************************/ diff --git a/Utils/MapEdit/Layer.cpp b/Utils/MapEdit/Layer.cpp index 2398c9e4a..cdad879c2 100644 --- a/Utils/MapEdit/Layer.cpp +++ b/Utils/MapEdit/Layer.cpp @@ -20,15 +20,3 @@ /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -char *CLayer::GetName() -{ - return(Name); -} - -/*****************************************************************************/ -void CLayer::SetName(char *_Name) -{ - sprintf(Name,"%s",_Name); -} - -/*****************************************************************************/ diff --git a/Utils/MapEdit/Layer.h b/Utils/MapEdit/Layer.h index 169d32d8b..9a9075703 100644 --- a/Utils/MapEdit/Layer.h +++ b/Utils/MapEdit/Layer.h @@ -33,14 +33,13 @@ public: CLayer(){}; virtual ~CLayer(){}; -virtual char *GetName(); -virtual void SetName(char *_Name); - +virtual char *GetName()=0; virtual void SetVisible(BOOL f) {VisibleFlag=f;} virtual BOOL IsVisible() {return(VisibleFlag);} virtual int GetType()=0; +virtual int GetSubType() {return(-1);} -virtual float GetLayerZPosDiv() {return(ZPosDiv);} +virtual float GetScaleFactor() {return(ScaleFactor);} virtual void Render(CCore *Core,Vec &CamPos,BOOL Is3d)=0; virtual void RenderGrid(CCore *Core,Vec &CamPos,BOOL Active)=0; @@ -72,10 +71,8 @@ virtual BOOL MirrorX(CCore *Core){return(FALSE);}; virtual BOOL MirrorY(CCore *Core){return(FALSE);}; protected: - - char Name[256]; BOOL Render3dFlag; - float ZPosDiv,MapSizeDiv; + float ScaleFactor; BOOL ResizeFlag; BOOL VisibleFlag; diff --git a/Utils/MapEdit/LayerTile.cpp b/Utils/MapEdit/LayerTile.cpp index 361b4f116..b7f4b8882 100644 --- a/Utils/MapEdit/LayerTile.cpp +++ b/Utils/MapEdit/LayerTile.cpp @@ -21,16 +21,24 @@ #include "Utils.h" #include "Export.h" +/*****************************************************************************/ +char *CLayerTile::LayerName[]= +{ + "Back", + "Mid", + "Action", + "Fore", +}; /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ // New Layer -CLayerTile::CLayerTile(char *_Name,int Width,int Height,float MapDiv,float ZDiv,BOOL Is3d,BOOL Resizable) +CLayerTile::CLayerTile(int _SubType,int Width,int Height,float Scale,BOOL Is3d,BOOL Resizable) { - SetName(_Name); - ZPosDiv=ZDiv; - MapSizeDiv=MapDiv; +// SetName(_Name); + SubType=_SubType; + ScaleFactor=Scale; ResizeFlag=Resizable; Render3dFlag=Is3d; VisibleFlag=TRUE; @@ -38,7 +46,7 @@ CLayerTile::CLayerTile(char *_Name,int Width,int Height,float MapDiv,float ZDiv, if (ResizeFlag) { - Map.SetSize(Width/MapDiv,Height/MapDiv,TRUE); + Map.SetSize(Width/ScaleFactor,Height/ScaleFactor,TRUE); } else { @@ -62,18 +70,19 @@ CLayerTile::~CLayerTile() void CLayerTile::Load(CFile *File,float Version) { // Version 1 - File->Read(Name,256); - File->Read(&Render3dFlag,sizeof(BOOL)); - File->Read(&ZPosDiv,sizeof(float)); - File->Read(&MapSizeDiv,sizeof(float)); - File->Read(&ResizeFlag,sizeof(BOOL)); - File->Read(&VisibleFlag,sizeof(BOOL)); - File->Read(&Mode,sizeof(MouseMode)); - Map.Load(File,Version); + if (Version>=1.0) + { + File->Read(&Render3dFlag,sizeof(BOOL)); + File->Read(&ScaleFactor,sizeof(float)); + File->Read(&ResizeFlag,sizeof(BOOL)); + File->Read(&VisibleFlag,sizeof(BOOL)); + File->Read(&Mode,sizeof(MouseMode)); + File->Read(&SubType,sizeof(int)); + Map.Load(File,Version); + } - TRACE1("%s ",Name); - TRACE1("Div:%g ",ZPosDiv); - TRACE1("Size:%g ",MapSizeDiv); + TRACE1("%s\t",GetName()); + TRACE1("Scl:%g\t",ScaleFactor); TRACE1("%i\n",VisibleFlag); @@ -84,13 +93,12 @@ void CLayerTile::Save(CFile *File) { // Always Save current version - File->Write(Name,256); File->Write(&Render3dFlag,sizeof(BOOL)); - File->Write(&ZPosDiv,sizeof(float)); - File->Write(&MapSizeDiv,sizeof(float)); + File->Write(&ScaleFactor,sizeof(float)); File->Write(&ResizeFlag,sizeof(BOOL)); File->Write(&VisibleFlag,sizeof(BOOL)); File->Write(&Mode,sizeof(MouseMode)); + File->Write(&SubType,sizeof(SubType)); Map.Save(File); } @@ -99,7 +107,7 @@ void CLayerTile::Resize(int Width,int Height) { if (!ResizeFlag) return; // Its a fixed size, so DONT DO IT! - Map.Resize(Width/MapSizeDiv,Height/MapSizeDiv); + Map.Resize(Width/ScaleFactor,Height/ScaleFactor); } /*****************************************************************************/ @@ -107,7 +115,7 @@ void CLayerTile::Resize(int Width,int Height) /*****************************************************************************/ void CLayerTile::Render(CCore *Core,Vec &CamPos,BOOL Is3d) { -Vec ThisCam=Core->OffsetCam(CamPos,GetLayerZPosDiv()); +Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor()); if (Is3d && Render3dFlag) { @@ -126,7 +134,7 @@ void CLayerTile::RenderCursorPaint(CCore *Core,Vec &CamPos,BOOL Is3d) { CTileBank &TileBank=Core->GetTileBank(); //Vec ThisCam=CamPos; -Vec ThisCam=Core->OffsetCam(CamPos,GetLayerZPosDiv()); +Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor()); CPoint &CursPos=Core->GetCursorPos(); CMap &Brush=TileBank.GetActiveBrush(); @@ -188,7 +196,7 @@ void CLayerTile::RenderGrid(CCore *Core,Vec &CamPos,BOOL Active) { int Width=Map.GetWidth(); int Height=Map.GetHeight(); -Vec ThisCam=Core->OffsetCam(CamPos,GetLayerZPosDiv()); +Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor()); float OverVal=0.5; glMatrixMode(GL_MODELVIEW); @@ -232,8 +240,7 @@ CPoint &CursorPos=Core->GetCursorPos(); int Width=Map.GetWidth(); int Height=Map.GetHeight(); -Vec ThisCam=Core->OffsetCam(CamPos,GetLayerZPosDiv()); - +Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor()); glGetIntegerv(GL_VIEWPORT, Viewport); glSelectBuffer (SELECT_BUFFER_SIZE, SelectBuffer ); @@ -483,5 +490,5 @@ BOOL CLayerTile::Paint(CMap &Blk,CPoint &CursorPos) /*****************************************************************************/ void CLayerTile::Export(CExport &Exp) { - Exp.ExportLayerTile(Name,Map); + Exp.ExportLayerTile(GetName(),Map); } diff --git a/Utils/MapEdit/LayerTile.h b/Utils/MapEdit/LayerTile.h index 5a3d8a824..2b2125677 100644 --- a/Utils/MapEdit/LayerTile.h +++ b/Utils/MapEdit/LayerTile.h @@ -7,8 +7,6 @@ #include "Layer.h" -/*****************************************************************************/ - /*****************************************************************************/ enum TileLayerEnum { @@ -27,7 +25,6 @@ public: { MouseModePaint=0, MouseModeSelect, - MouseModePicker, }; enum MouseFlag { @@ -35,12 +32,21 @@ public: MouseFlagMirrorY=1<<1, MouseFlagMirrorXY=MouseFlagMirrorX|MouseFlagMirrorY, }; + enum SubType + { + Back=0, + Mid, + Action, + Fore, + }; - CLayerTile(char *_Name,int Width,int Height,float MapDiv,float ZDiv,BOOL Is3d,BOOL Resizable); // New Layer + CLayerTile(int SubType,int Width,int Height,float Scale,BOOL Is3d,BOOL Resizable); // New Layer CLayerTile(CFile *File,int Version); // Load Layer ~CLayerTile(); int GetType() {return(LAYER_TYPE_TILE);} + int GetSubType() {return(SubType);} + char *GetName() {return(LayerName[SubType]);} void Render(CCore *Core,Vec &CamPos,BOOL Is3d); void RenderGrid(CCore *Core,Vec &CamPos,BOOL Active); @@ -79,8 +85,11 @@ protected: BOOL Paint(CMap &Blk,CPoint &CursorPos); CMap Map; - + int SubType; MouseMode Mode; + +static char *LayerName[]; + }; /*****************************************************************************/ diff --git a/Utils/MapEdit/MapEdit.clw b/Utils/MapEdit/MapEdit.clw index 522d09d03..0aac27ad8 100644 --- a/Utils/MapEdit/MapEdit.clw +++ b/Utils/MapEdit/MapEdit.clw @@ -2,13 +2,13 @@ [General Info] Version=1 -LastClass=CLayerTileGUI +LastClass=CNewMapGUI LastTemplate=CDialog NewFileInclude1=#include "stdafx.h" NewFileInclude2=#include "mapedit.h" LastPage=0 -ClassCount=12 +ClassCount=13 Class1=CChildFrame Class2=CGLEnabledView Class3=CMainFrame @@ -17,21 +17,24 @@ Class5=CAboutDlg Class6=CMapEditDoc Class7=CMapEditView -ResourceCount=9 -Resource1=IDR_MAINFRAME (English (U.S.)) -Resource2=IDD_ABOUTBOX (English (U.S.)) -Resource3=IDD_MULTIBAR (English (U.S.)) +ResourceCount=11 +Resource1=IDD_MULTIBAR (English (U.S.)) +Resource2=IDD_LAYERTILE_GUI +Resource3=IDR_TOOLBAR (English (U.S.)) Resource4=IDD_DIALOGBAR (English (U.S.)) -Resource5=IDR_TOOLBAR (English (U.S.)) +Resource5=IDD_LAYER_LIST_DIALOG Class8=CMultiBar -Resource6=IDD_LAYER_LIST_DIALOG +Resource6=IDR_MAINFRAME (English (U.S.)) Resource7=IDR_MAPEDITYPE (English (U.S.)) Class9=CLayerList Class10=CMapSizeDlg -Resource8=IDD_LAYERTILE_GUI +Resource8=IDD_MAPSIZE Class11=CGfxToolBar Class12=CLayerTileGUI -Resource9=IDD_MAPSIZE +Resource9=IDD_NEW_LAYER +Resource10=IDD_ABOUTBOX (English (U.S.)) +Class13=CNewMapGUI +Resource11=IDD_NEWMAP [CLS:CChildFrame] Type=0 @@ -264,3 +267,43 @@ Filter=D VirtualFilter=dWC LastObject=IDD_LAYERTILE_LIST +[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=9 +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_NEWMAP_BACK_CHECK,button,1476460547 +Control8=IDC_NEWMAP_MID_CHECK,button,1476460547 +Control9=IDC_NEWMAP_FORE_CHECK,button,1342242819 + +[CLS:CNewMapGUI] +Type=0 +HeaderFile=NewMapGUI.h +ImplementationFile=NewMapGUI.cpp +BaseClass=CDialog +Filter=D +LastObject=CNewMapGUI +VirtualFilter=dWC + diff --git a/Utils/MapEdit/MapEdit.cpp b/Utils/MapEdit/MapEdit.cpp index 52f455301..4a0124eb2 100644 --- a/Utils/MapEdit/MapEdit.cpp +++ b/Utils/MapEdit/MapEdit.cpp @@ -96,9 +96,8 @@ BOOL CMapEditApp::InitInstance() CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // Prevent creating new doc on startup (should still open cmd line file tho) -#ifndef _DEBUG -// if (cmdInfo.m_nShellCommand==CCommandLineInfo::FileNew) cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing; -#endif + if (cmdInfo.m_nShellCommand==CCommandLineInfo::FileNew) cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing; + // Dispatch commands specified on the command line if (!ProcessShellCommand(cmdInfo)) return FALSE; diff --git a/Utils/MapEdit/MapEdit.dsp b/Utils/MapEdit/MapEdit.dsp index e8fe63575..4c4f34b54 100644 --- a/Utils/MapEdit/MapEdit.dsp +++ b/Utils/MapEdit/MapEdit.dsp @@ -328,14 +328,6 @@ SOURCE=.\res\Toolbar.bmp # PROP Default_Filter "" # Begin Source File -SOURCE=.\GfxToolBar.cpp -# End Source File -# Begin Source File - -SOURCE=.\GfxToolBar.h -# End Source File -# Begin Source File - SOURCE=.\LayerList.cpp # End Source File # Begin Source File @@ -344,6 +336,14 @@ SOURCE=.\LayerList.h # End Source File # Begin Source File +SOURCE=.\LayerTileGUI.cpp +# End Source File +# Begin Source File + +SOURCE=.\LayerTileGUI.h +# End Source File +# Begin Source File + SOURCE=.\MapSizeDlg.cpp # End Source File # Begin Source File @@ -360,11 +360,11 @@ SOURCE=.\MultiBar.h # End Source File # Begin Source File -SOURCE=.\TileSetDlg.cpp +SOURCE=.\NewMapGUI.cpp # End Source File # Begin Source File -SOURCE=.\TileSetDlg.h +SOURCE=.\NewMapGUI.h # End Source File # End Group # End Group diff --git a/Utils/MapEdit/MapEdit.rc b/Utils/MapEdit/MapEdit.rc index c42c08fa9..a2218ce8b 100644 --- a/Utils/MapEdit/MapEdit.rc +++ b/Utils/MapEdit/MapEdit.rc @@ -197,7 +197,7 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP END -IDD_MULTIBAR DIALOGEX 0, 0, 251, 174 +IDD_MULTIBAR DIALOGEX 0, 0, 156, 71 STYLE WS_CHILD EXSTYLE WS_EX_TOOLWINDOW FONT 8, "MS Sans Serif" @@ -270,9 +270,9 @@ BEGIN IDD_MULTIBAR, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 244 + RIGHTMARGIN, 149 TOPMARGIN, 7 - BOTTOMMARGIN, 167 + BOTTOMMARGIN, 64 END END #endif // APSTUDIO_INVOKED @@ -490,6 +490,47 @@ BEGIN IDC_MAPSIZE_WARNING,5,40,110,20 END +IDD_NEW_LAYER DIALOG DISCARDABLE 0, 0, 302, 236 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,245,215,50,14 + PUSHBUTTON "Cancel",IDCANCEL,190,215,50,14 + COMBOBOX IDC_NEW_LAYER_TYPE_LIST,45,20,105,110,CBS_DROPDOWN | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + LTEXT "Layer Type",IDC_NEW_LAYER_TYPE_NAME,5,20,36,10 + LTEXT "Width",IDC_NEW_LAYER_WIDTH_NAME,5,36,36,10 + LTEXT "Height",IDC_NEW_LAYER_HEIGHT_NAME,5,50,36,10 + EDITTEXT IDC_NEW_LAYER_WIDTH_EDIT,45,36,30,15,ES_AUTOHSCROLL + EDITTEXT IDC_NEW_LAYER_HEIGHT_EDIT,45,50,30,15,ES_AUTOHSCROLL + LTEXT "Name",IDC_NEW_LAYER_NAME_NAME,5,5,36,10 + EDITTEXT IDC_NEW_LAYER_NAME_EDIT,45,5,105,15,ES_AUTOHSCROLL + LTEXT "Width",IDC_NEW_LAYER_WIDTH_NAME2,80,35,36,10 + EDITTEXT IDC_NEW_LAYER_WIDTH_EDIT2,120,35,30,15,ES_AUTOHSCROLL +END + +IDD_NEWMAP DIALOG DISCARDABLE 0, 0, 145, 66 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "Enter New Size" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,90,45,50,14,NOT WS_TABSTOP + PUSHBUTTON "Cancel",IDCANCEL,35,45,50,14,NOT WS_TABSTOP + RTEXT "Width",IDC_MAPSIZE_WIDTH_TEXT,5,5,20,10,SS_CENTERIMAGE + EDITTEXT IDC_MAPSIZE_WIDTH,30,5,35,12,ES_AUTOHSCROLL | ES_NUMBER + RTEXT "Height",IDC_MAPSIZE_HEIGHT_TEXT,5,20,20,10, + SS_CENTERIMAGE + EDITTEXT IDC_MAPSIZE_HEIGHT,30,20,35,12,ES_AUTOHSCROLL | + ES_NUMBER + CONTROL "Create Back Layer",IDC_NEWMAP_BACK_CHECK,"Button", + BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,70,5,75,10 + CONTROL "Create Mid Layer",IDC_NEWMAP_MID_CHECK,"Button", + BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,70,15,69,10 + CONTROL "Create Fore Layer",IDC_NEWMAP_FORE_CHECK,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,70,25,72,10 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -522,6 +563,22 @@ BEGIN TOPMARGIN, 7 BOTTOMMARGIN, 54 END + + IDD_NEW_LAYER, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 295 + TOPMARGIN, 7 + BOTTOMMARGIN, 229 + END + + IDD_NEWMAP, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 138 + TOPMARGIN, 7 + BOTTOMMARGIN, 59 + END END #endif // APSTUDIO_INVOKED diff --git a/Utils/MapEdit/MapEditDoc.cpp b/Utils/MapEdit/MapEditDoc.cpp index aab89ca50..5bf92cec6 100644 --- a/Utils/MapEdit/MapEditDoc.cpp +++ b/Utils/MapEdit/MapEditDoc.cpp @@ -41,9 +41,10 @@ BOOL CMapEditDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; TRACE0("New Doc\n"); - Core.New(); - return TRUE; + return(Core.New()); + +// return TRUE; } BOOL CMapEditDoc::OnOpenDocument(LPCTSTR lpszPathName) diff --git a/Utils/MapEdit/TileSet.cpp b/Utils/MapEdit/TileSet.cpp index e63ea32f2..dc28a494f 100644 --- a/Utils/MapEdit/TileSet.cpp +++ b/Utils/MapEdit/TileSet.cpp @@ -42,30 +42,8 @@ CTileBank::CTileBank() LastCursorPos=CursorPos=-1; ActiveBrush=0; SelStart=-1; - SelEnd=1; + SelEnd=-1; -#ifdef _DEBUGx - AddTileSet("c:/temp/rockp/rockp.gin"); -// AddTileSet("c:/temp/3/test.gin"); - -int W=3; -int H=3; -CMap &Brush=GetLBrush(); - - Brush.SetSize(W,H); -sMapElem Blk; - Blk.Set=0; - Blk.Tile=1; - Blk.Flags=0; - for (int Y=0; Y=MaxTile) SelectCancel(); // Invalid selection +// if (PointToID(End,BW)>=MaxTile) SelectCancel(); // Invalid selection ThisElem.Set=CurrentSet; ThisElem.Flags=0; @@ -268,7 +257,8 @@ int MaxTile=TileSet[CurrentSet].GetTileCount(); { for (int X=0; XListSize) return; + + if (CursorPos<-1 || CursorPos>ListSize) return; if (SelStart==-1) { - Start=IDToPoint(CursorPos,TileBrowserWidth); + if (CursorPos==0) + { + Start=CPoint(-1,-1); + } + else + { + Start=IDToPoint(CursorPos-1,TileBrowserWidth); + } End=Start; } else { - CPoint S=IDToPoint(SelStart,TileBrowserWidth); - CPoint E=IDToPoint(SelEnd,TileBrowserWidth); + CPoint S=IDToPoint(SelStart-1,TileBrowserWidth); + CPoint E=IDToPoint(SelEnd-1,TileBrowserWidth); + Start=CPoint( min(S.x,E.x), min(S.y,E.y)); End=CPoint( max(S.x,E.x), max(S.y,E.y)); if (PointToID(End,TileBrowserWidth)>=MaxTile) return; // Invalid selection @@ -538,7 +550,12 @@ int TileID=0; while(TileID!=ListSize) { - CPoint Pos=IDToPoint(TileID,TileBrowserWidth); + CPoint Pos;//=IDToPoint(TileID,TileBrowserWidth); + + if (TileID==0) + Pos=CPoint(-1,-1); + else + Pos=IDToPoint(TileID-1,TileBrowserWidth); glLoadIdentity(); glTranslatef(CamPos.x+Pos.x*(1+TileBrowserGap),CamPos.y-Pos.y*(1+TileBrowserGap),CamPos.z); @@ -594,7 +611,12 @@ int TileID=0; while(TileID!=ListSize) { - CPoint Pos=IDToPoint(TileID,TileBrowserWidth); + CPoint Pos;//=IDToPoint(TileID,TileBrowserWidth); + + if (TileID==0) + Pos=CPoint(-1,-1); + else + Pos=IDToPoint(TileID-1,TileBrowserWidth); glLoadIdentity(); glTranslatef(CamPos.x+Pos.x*(1+TileBrowserGap),CamPos.y-Pos.y*(1+TileBrowserGap),CamPos.z); @@ -614,7 +636,7 @@ int TileID=0; GLuint *HitPtr=SelectBuffer; - TileID=-1; + TileID=-2; if (HitCount) // Just take 1st { TileID=HitPtr[3]; diff --git a/Utils/MapEdit/TileSet.h b/Utils/MapEdit/TileSet.h index 4c0dde65c..142336983 100644 --- a/Utils/MapEdit/TileSet.h +++ b/Utils/MapEdit/TileSet.h @@ -18,7 +18,7 @@ /*****************************************************************************/ enum TileSetEnum { -TileBrowserWidth=8, +DefTileBrowserWidth=8, }; /*****************************************************************************/ @@ -109,7 +109,7 @@ public: void RenderCursor(Vec &CamPos,int Pos,int Width, int Height); void RenderBrush(Vec &CamPos,CMap &LBrush,CMap &RBrush); void RenderGrid(Vec &CamPos); - + int GetTileBrowserWidth() {return(TileBrowserWidth);} private: BOOL Create16x16Tile(sRGBData &Src,u8 *Dst,int XOfs,int YOfs); @@ -117,6 +117,7 @@ private: int SetNumber; std::vector Tile; BOOL Loaded; + int TileBrowserWidth; }; /*****************************************************************************/ diff --git a/Utils/MapEdit/resource.h b/Utils/MapEdit/resource.h index 1904ceb9d..91bf79fca 100644 --- a/Utils/MapEdit/resource.h +++ b/Utils/MapEdit/resource.h @@ -13,6 +13,8 @@ #define IDI_PAINT 152 #define IDI_SELECT 153 #define IDD_MAPSIZE 167 +#define IDD_NEW_LAYER 168 +#define IDD_NEWMAP 169 #define IDC_TOOLBAR_COMBO 1018 #define IDC_LAYER_LIST 1019 #define IDD_LAYERTILE_BTN_UPDATE 1029 @@ -25,6 +27,19 @@ #define IDC_MAPSIZE_HEIGHT_TEXT 1039 #define IDC_MAPSIZE_HEIGHT 1040 #define IDC_MAPSIZE_WARNING 1041 +#define IDC_NEW_LAYER_TYPE_LIST 1042 +#define IDC_NEW_LAYER_TYPE_NAME 1043 +#define IDC_NEW_LAYER_WIDTH_NAME 1044 +#define IDC_NEW_LAYER_HEIGHT_NAME 1045 +#define IDC_NEW_LAYER_WIDTH_EDIT 1046 +#define IDC_NEW_LAYER_HEIGHT_EDIT 1047 +#define IDC_NEWMAP_BACK_CHECK 1047 +#define IDC_NEW_LAYER_NAME_NAME 1048 +#define IDC_NEW_LAYER_NAME_EDIT 1049 +#define IDC_NEWMAP_MID_CHECK 1050 +#define IDC_NEWMAP_FORE_CHECK 1051 +#define IDC_NEW_LAYER_WIDTH_NAME2 1052 +#define IDC_NEW_LAYER_WIDTH_EDIT2 1053 #define ID_TOOLBAR_LAYERBAR 32773 #define ID_TOOLBAR_TILEPALETTE 32774 #define ID_TOOLBAR_COMBO 32777 @@ -48,9 +63,9 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 168 +#define _APS_NEXT_RESOURCE_VALUE 169 #define _APS_NEXT_COMMAND_VALUE 32797 -#define _APS_NEXT_CONTROL_VALUE 1042 +#define _APS_NEXT_CONTROL_VALUE 1048 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/Utils/MapEdit/utils.cpp b/Utils/MapEdit/utils.cpp index 7138b651d..346002eda 100644 --- a/Utils/MapEdit/utils.cpp +++ b/Utils/MapEdit/utils.cpp @@ -121,9 +121,9 @@ void BuildGLBoxNoNormals(float XMin,float XMax,float YMin,float YMax,float ZMin, void BuildGLQuad(float XMin,float XMax,float YMin,float YMax,float Z) { // Front Face -#ifdef UseLighting +//#ifdef UseLighting glNormal3f( 0.0f, 0.0f, 1.0f); -#endif +//#endif glVertex3f( XMin, YMin, Z); glVertex3f( XMax, YMin, Z); glVertex3f( XMax, YMax, Z); @@ -313,3 +313,4 @@ char Name[_MAX_FNAME]; _splitpath(InName,Drive,Path,Name,0); sprintf(OutName,"%s%s%s.%s",Drive,Path,Name,Ext); } + diff --git a/Utils/MapEdit/utils.h b/Utils/MapEdit/utils.h index 604b78789..d836f96ab 100644 --- a/Utils/MapEdit/utils.h +++ b/Utils/MapEdit/utils.h @@ -58,8 +58,4 @@ void BGR2RGB(int W,int H,u8 *Data); void SetFileExt(char *InName,char *OutName,char *Ext); - - -/**************************************************************************************/ - #endif \ No newline at end of file