From 0a22ec467597dfb8b369de901787a331d343dcfd Mon Sep 17 00:00:00 2001 From: Daveo Date: Tue, 20 Feb 2001 15:57:03 +0000 Subject: [PATCH] --- Utils/MapEdit/Core.cpp | 8 ++++ Utils/MapEdit/Core.h | 4 +- Utils/MapEdit/ExportHdr.h | 13 +++++ Utils/MapEdit/Layer.h | 1 + Utils/MapEdit/LayerCollision.cpp | 35 +++++++++++--- Utils/MapEdit/LayerCollision.h | 8 +++- Utils/MapEdit/LayerDef.h | 29 ++++++++++-- Utils/MapEdit/LayerShade.cpp | 76 +++++++++++++++++++++--------- Utils/MapEdit/LayerShade.h | 2 + Utils/MapEdit/LayerTile.cpp | 41 +++++++++++++--- Utils/MapEdit/LayerTile.h | 7 +-- Utils/MapEdit/Map.cpp | 20 ++++++++ Utils/MapEdit/Map.h | 7 +-- Utils/MapEdit/MapEdit.clw | 81 ++++++++++++++++++++++---------- Utils/MapEdit/MapEdit.dsp | 22 ++++----- Utils/MapEdit/MapEdit.rc | 67 +++++++++++++++++++------- Utils/MapEdit/MapEditDoc.cpp | 10 +++- Utils/MapEdit/MapEditDoc.h | 14 +----- Utils/MapEdit/resource.h | 21 ++++++++- source/level/level.cpp | 4 +- 20 files changed, 348 insertions(+), 122 deletions(-) diff --git a/Utils/MapEdit/Core.cpp b/Utils/MapEdit/Core.cpp index 14fb27e4f..bdb130e29 100644 --- a/Utils/MapEdit/Core.cpp +++ b/Utils/MapEdit/Core.cpp @@ -667,6 +667,14 @@ BOOL CCore::IsTileValid(int Set,int Tile) return(TileBank.IsTileValid(Set,Tile)); } +/*****************************************************************************/ +void CCore::SetColFlag(int Flag) +{ + if (TileViewFlag) return; + Layer[ActiveLayer]->SetColFlags(this,Flag); + RedrawView(); +} + /*****************************************************************************/ void CCore::CopySelection() { diff --git a/Utils/MapEdit/Core.h b/Utils/MapEdit/Core.h index e274b3a5b..4d37a39be 100644 --- a/Utils/MapEdit/Core.h +++ b/Utils/MapEdit/Core.h @@ -16,7 +16,7 @@ #include "LayerList.h" #include "LayerTileGUI.h" -const s32 FileVersion=2; +const s32 FileVersion=3; #define SCREEN_MAP_WIDTH 30 #define SCREEN_MAP_HEIGHT 20 @@ -70,6 +70,8 @@ public: void TileBankGUIKill() {TileBank.GUIKill(this);} void TileBankGUIUpdate() {TileBank.GUIUpdate(this);} + void SetColFlag(int Flag); + // GUI void UpdateParamBar(); void GUIAdd(CDialog &Dlg,int ID,bool Visible=true,bool Lock=false); diff --git a/Utils/MapEdit/ExportHdr.h b/Utils/MapEdit/ExportHdr.h index 35de3c604..8f7bd19eb 100644 --- a/Utils/MapEdit/ExportHdr.h +++ b/Utils/MapEdit/ExportHdr.h @@ -46,6 +46,19 @@ bool operator==(sExpTile const &v1) } }; +/*****************************************************************************/ +struct sExpColTile +{ + u8 Tile; + u8 Flags; + +bool operator==(sExpColTile const &v1) + { + return(Tile==v1.Tile && Flags==v1.Flags); + } + +}; + /*****************************************************************************/ struct sExpTri { diff --git a/Utils/MapEdit/Layer.h b/Utils/MapEdit/Layer.h index d22a8c7fc..e840f7421 100644 --- a/Utils/MapEdit/Layer.h +++ b/Utils/MapEdit/Layer.h @@ -98,6 +98,7 @@ virtual BOOL MouseMove(CCore *Core,UINT nFlags, CPoint &CursorPos)=0; virtual BOOL MirrorX(CCore *Core){return(false);}; virtual BOOL MirrorY(CCore *Core){return(false);}; +virtual BOOL SetColFlags(CCore *Core,int Flag){return(false);}; virtual BOOL CopySelection(CCore *Core) {return(false);} virtual BOOL PasteSelection(CCore *Core) {return(false);} diff --git a/Utils/MapEdit/LayerCollision.cpp b/Utils/MapEdit/LayerCollision.cpp index 589aa4c7e..2abe331ec 100644 --- a/Utils/MapEdit/LayerCollision.cpp +++ b/Utils/MapEdit/LayerCollision.cpp @@ -76,20 +76,34 @@ void CLayerCollision::Save(CFile *File) Map.Save(File); } +/*****************************************************************************/ +void CLayerCollision::Render(CCore *Core,Vector3 &CamPos,BOOL Is3d) +{ +Vector3 ThisCam=Core->OffsetCam(CamPos,GetScaleFactor()); + + CLayerTile::Render(Core,ThisCam,Map,FALSE,0.5f); +} +/*****************************************************************************/ +BOOL CLayerCollision::SetColFlag(CCore *Core,int Flag) +{ + TRACE1("HERE!!! %i",Flag); + return(TRUE); +} + /*****************************************************************************/ /*** Gui *********************************************************************/ /*****************************************************************************/ void CLayerCollision::GUIInit(CCore *Core) { -// Core->TileBankGUIInit(); Core->GUIAdd(ToolBarGUI,IDD_LAYERTILE_TOOLBAR); + Core->GUIAdd(CollisionGUI,IDD_LAYERCOLLISION_GUI); } /*****************************************************************************/ void CLayerCollision::GUIKill(CCore *Core) { -// Core->TileBankGUIKill(); Core->GUIRemove(ToolBarGUI,IDD_LAYERTILE_TOOLBAR); + Core->GUIRemove(CollisionGUI,IDD_LAYERCOLLISION_GUI); } /*****************************************************************************/ @@ -119,14 +133,21 @@ int Height=Map.GetHeight(); for (int X=0; X>PC_TILE_FLAG_COLLISION_SHIFT; } - //fwrite(&OutElem,sizeof(u8),1,File); - Exp.Write(&OutElem,sizeof(u8)); + else + { + OutElem.Tile=0; + OutElem.Flags=0; + } + + Exp.Write(&OutElem,sizeof(sExpColTile)); } } diff --git a/Utils/MapEdit/LayerCollision.h b/Utils/MapEdit/LayerCollision.h index 904f09465..9b3f66d6e 100644 --- a/Utils/MapEdit/LayerCollision.h +++ b/Utils/MapEdit/LayerCollision.h @@ -6,6 +6,8 @@ #define __LAYER_COLLISION_HEADER__ #include "Layer.h" +#include "MapEdit.h" +#include "LayerCollisionGUI.h" /*****************************************************************************/ class CCore; @@ -19,6 +21,9 @@ public: int GetType() {return(LAYER_TYPE_COLLISION);} + void Render(CCore *Core,Vector3 &CamPos,BOOL Is3d); + BOOL SetColFlag(CCore *Core,int Flag); + void GUIInit(CCore *Core); void GUIKill(CCore *Core); void GUIUpdate(CCore *Core); @@ -34,7 +39,8 @@ public: void RemapSet(int OrigSet,int NewSet); protected: -// CLayerTileToolbar ToolBarGUI; + + CLayerCollisionGUI CollisionGUI; }; diff --git a/Utils/MapEdit/LayerDef.h b/Utils/MapEdit/LayerDef.h index 33a5da0e1..38c0ec46d 100644 --- a/Utils/MapEdit/LayerDef.h +++ b/Utils/MapEdit/LayerDef.h @@ -1,3 +1,4 @@ +/******************/ /*** Layer Defs ***/ /******************/ @@ -29,9 +30,31 @@ enum LAYER_SUBTYPE enum TILE_FLAG { - TILE_FLAG_MIRROR_X=1<<0, - TILE_FLAG_MIRROR_Y=1<<1, - TILE_FLAG_MIRROR_XY=TILE_FLAG_MIRROR_X|TILE_FLAG_MIRROR_Y, + PC_TILE_FLAG_MIRROR_X =1<<0, + PC_TILE_FLAG_MIRROR_Y =1<<1, + PC_TILE_FLAG_MIRROR_XY =PC_TILE_FLAG_MIRROR_X | PC_TILE_FLAG_MIRROR_Y, + + PC_TILE_COLLISION_NORMAL =0, + PC_TILE_COLLISION_DAMAGE =1, + PC_TILE_COLLISION_SLIPPERY =2, + PC_TILE_COLLISION_ELECTRIC =3, + PC_TILE_COLLISION_STICKY =4, + PC_TILE_COLLISION_WATER =5, + + PC_TILE_FLAG_COLLISION_SHIFT =2, + PC_TILE_FLAG_COLLISION_NORMAL =PC_TILE_COLLISION_NORMAL<Read(&Width,sizeof(int)); File->Read(&Height,sizeof(int)); - File->Read(&RGB[0],sizeof(RGBQUAD)); - File->Read(&RGB[1],sizeof(RGBQUAD)); + if (Version==2) + { + File->Read(&RGB[0],sizeof(RGBQUAD)); + File->Read(&RGB[1],sizeof(RGBQUAD)); + } + else + { + File->Read(&Count,sizeof(int)); + for (int i=0; iRead(&Pos[i],sizeof(int)); + File->Read(&RGB[i],sizeof(RGBQUAD)); + } + } TRACE1("%s\t",GetName()); TRACE1("Scl:%g\t",ScaleFactor); @@ -85,8 +100,13 @@ void CLayerShade::Save(CFile *File) File->Write(&Width,sizeof(int)); File->Write(&Height,sizeof(int)); - File->Write(&RGB[0],sizeof(RGBQUAD)); - File->Write(&RGB[1],sizeof(RGBQUAD)); + File->Write(&Count,sizeof(int)); + for (int i=0; iWrite(&Pos[i],sizeof(int)); + File->Write(&RGB[i],sizeof(RGBQUAD)); + } + } /*****************************************************************************/ @@ -100,11 +120,12 @@ float ZoomH=Core->GetZoomH(); float ScrOfsX=(ZoomW/2); float ScrOfsY=(ZoomH/2); Vector3 &Scale=Core->GetScaleVector(); +int ThisCount=Count-1; +float X0=0; +float X1=Width; +float Y=(0+1); -float x0=0; -float x1=x0+Width; -float y0=(0+1); -float y1=y0-Height; +float YInc=(float)Height/(float)ThisCount; glMatrixMode(GL_MODELVIEW); glPushMatrix(); @@ -114,14 +135,16 @@ float y1=y0-Height; glTranslatef(-ScrOfsX,ScrOfsY,0); // Bring to top left corner glBegin (GL_QUADS); - glColor3ub(RGB[0].rgbRed,RGB[0].rgbGreen,RGB[0].rgbBlue); - glVertex3f( x0,y0,0.0f); - glVertex3f( x1,y0,0.0f); - - glColor3ub(RGB[1].rgbRed,RGB[1].rgbGreen,RGB[1].rgbBlue); - glVertex3f( x1,y1,0.0f); - glVertex3f( x0,y1,0.0f); - + for (int i=0; iGUIAdd(ShadeDlg,IDD_LAYERSHADE_GUI); - ShadeDlg.SetRGB0(RGB[0]); - ShadeDlg.SetRGB1(RGB[1]); + for (int i=0; ix,Ofs->y,0); // Set scroll offset } - glColor4f(1,1,1,Alpha); for (int YLoop=0; YLoopGetTile(ThisElem.Set,ThisElem.Tile); + glColor4f(1,1,1,Alpha); // Set default Color ThisTile.Render(ThisElem.Flags,Render3d); } glTranslatef(1.0f,0,0); // Next X @@ -571,15 +571,15 @@ BOOL CLayerTile::MirrorX(CCore *Core) { CTileBank &TileBank=Core->GetTileBank(); - TileBank.GetLBrush().MirrorX(TILE_FLAG_MIRROR_X); - TileBank.GetRBrush().MirrorX(TILE_FLAG_MIRROR_X); + TileBank.GetLBrush().MirrorX(PC_TILE_FLAG_MIRROR_X); + TileBank.GetRBrush().MirrorX(PC_TILE_FLAG_MIRROR_X); } break; case MouseModeSelect: { if (!Selection.IsValid()) return(false); // No Selection CRect R=Selection.GetRect(); - Map.MirrorX(TILE_FLAG_MIRROR_X,&R); + Map.MirrorX(PC_TILE_FLAG_MIRROR_X,&R); } break; default: @@ -598,15 +598,15 @@ BOOL CLayerTile::MirrorY(CCore *Core) { CTileBank &TileBank=Core->GetTileBank(); - TileBank.GetLBrush().MirrorY(TILE_FLAG_MIRROR_Y); - TileBank.GetRBrush().MirrorY(TILE_FLAG_MIRROR_Y); + TileBank.GetLBrush().MirrorY(PC_TILE_FLAG_MIRROR_Y); + TileBank.GetRBrush().MirrorY(PC_TILE_FLAG_MIRROR_Y); } break; case MouseModeSelect: { if (!Selection.IsValid()) return(false); // No Selection CRect R=Selection.GetRect(); - Map.MirrorY(TILE_FLAG_MIRROR_Y,&R); + Map.MirrorY(PC_TILE_FLAG_MIRROR_Y,&R); } break; default: @@ -617,6 +617,33 @@ BOOL CLayerTile::MirrorY(CCore *Core) return(TRUE); } +/*****************************************************************************/ +BOOL CLayerTile::SetColFlags(CCore *Core,int Flags) +{ + switch(Mode) + { + case MouseModePaint: + { + CTileBank &TileBank=Core->GetTileBank(); + + TileBank.GetLBrush().SetFlags(Flags<bottom+R->top)-1; } } +/*****************************************************************************/ +void CMap::SetFlags(int Flags,int Mask,CRect *R) +{ + if (!R) + { // No rect, use full + R=new CRect(0,0,GetWidth(),GetHeight()); + } + + for (int Y=R->top; Ybottom; Y++) + { + for (int X=R->left; Xright; X++) + { + sMapElem &ThisElem=Get(X,Y); + ThisElem.Flags&=Mask; + ThisElem.Flags|=Flags; + } + } + +} + /*****************************************************************************/ void CMap::Paste(CMap &Src,CRect *R) { diff --git a/Utils/MapEdit/Map.h b/Utils/MapEdit/Map.h index 88b7c1e19..e2b3af20a 100644 --- a/Utils/MapEdit/Map.h +++ b/Utils/MapEdit/Map.h @@ -19,12 +19,6 @@ BOOL operator==(sMapElem const &v1) // Doesnt Check flags } }; -enum -{ - MapElemFlagMirrorX= 1<<0, - MapElemFlagMirrorY= 1<<1, -}; - /*****************************************************************************/ class CFile; class CPoint; @@ -45,6 +39,7 @@ public: void Delete(); void MirrorX(int Flag,CRect *R=NULL); void MirrorY(int Flag,CRect *R=NULL); + void SetFlags(int Flags,int Mask,CRect *R=NULL); sMapElem &Get(int X,int Y); void Set(int X,int Y,sMapElem &Blk,BOOL Force=FALSE); diff --git a/Utils/MapEdit/MapEdit.clw b/Utils/MapEdit/MapEdit.clw index c8d1ff476..9c1bc692b 100644 --- a/Utils/MapEdit/MapEdit.clw +++ b/Utils/MapEdit/MapEdit.clw @@ -2,13 +2,13 @@ [General Info] Version=1 -LastClass=CMapEditDoc +LastClass=CLayerCollisionGUI LastTemplate=CDialog NewFileInclude1=#include "stdafx.h" NewFileInclude2=#include "mapedit.h" LastPage=0 -ClassCount=15 +ClassCount=16 Class1=CAddLayerDlg Class2=CChildFrame Class3=CGLEnabledView @@ -25,19 +25,21 @@ Class13=CMapSizeDlg Class14=CMultiBar Class15=CNewMapGUI -ResourceCount=12 -Resource1=IDD_MAPSIZE -Resource2=IDD_NEWMAP +ResourceCount=13 +Resource1=IDD_MULTIBAR (English (U.S.)) +Resource2=IDR_MAINFRAME (English (U.S.)) Resource3=IDR_MAPEDITYPE (English (U.S.)) -Resource4=IDD_ADDLAYER -Resource5=IDD_LAYERTILE_GUI -Resource6=IDD_LAYERTILE_TOOLBAR -Resource7=IDR_TOOLBAR (English (U.S.)) -Resource8=IDR_MAINFRAME (English (U.S.)) -Resource9=IDD_ABOUTBOX (English (U.S.)) -Resource10=IDD_MULTIBAR (English (U.S.)) -Resource11=IDD_LAYER_LIST_DIALOG -Resource12=IDD_LAYERSHADE_GUI +Resource4=IDD_ABOUTBOX (English (U.S.)) +Resource5=IDD_LAYER_LIST_DIALOG +Resource6=IDD_ADDLAYER +Resource7=IDD_NEWMAP +Resource8=IDD_LAYERTILE_GUI +Resource9=IDD_LAYERTILE_TOOLBAR +Resource10=IDD_LAYERSHADE_GUI +Resource11=IDR_TOOLBAR (English (U.S.)) +Resource12=IDD_MAPSIZE +Class16=CLayerCollisionGUI +Resource13=IDD_LAYERCOLLISION_GUI [CLS:CAddLayerDlg] Type=0 @@ -67,6 +69,9 @@ Type=0 BaseClass=CDialog HeaderFile=LayerShadeGUI.h ImplementationFile=LayerShadeGUI.cpp +LastObject=IDC_LAYERSHADE_COUNTTEXT +Filter=D +VirtualFilter=dWC [CLS:CLayerTileGUI] Type=0 @@ -110,7 +115,7 @@ Type=0 BaseClass=CDocument HeaderFile=MapEditDoc.h ImplementationFile=MapEditDoc.cpp -LastObject=ID_RESET_VIEW +LastObject=ID_MAP_SETSIZE Filter=N VirtualFilter=DC @@ -160,15 +165,23 @@ 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 +ControlCount=16 +Control1=IDC_LAYERSHADE_EDITR0,edit,1350770688 +Control2=IDC_LAYERSHADE_EDITG0,edit,1350770816 +Control3=IDC_LAYERSHADE_EDITB0,edit,1350770816 +Control4=IDC_LAYERSHADE_COUNTTEXT,static,1342312449 +Control5=IDC_LAYERSHADE_EDITR1,edit,1350770688 +Control6=IDC_LAYERSHADE_EDITG1,edit,1350770816 +Control7=IDC_LAYERSHADE_EDITB1,edit,1350770816 +Control8=IDC_LAYERSHADE_EDITR2,edit,1350770688 +Control9=IDC_LAYERSHADE_EDITG2,edit,1350770816 +Control10=IDC_LAYERSHADE_EDITB2,edit,1350770816 +Control11=IDC_LAYERSHADE_TEXT7,static,1342312449 +Control12=IDC_LAYERSHADE_EDITR3,edit,1350770688 +Control13=IDC_LAYERSHADE_EDITG3,edit,1350770816 +Control14=IDC_LAYERSHADE_EDITB3,edit,1350770816 +Control15=IDC_LAYERSHADE_COUNTEDIT,edit,1350576256 +Control16=IDC_SPIN2,msctls_updown32,1342177302 [DLG:IDD_LAYERTILE_GUI] Type=1 @@ -318,3 +331,23 @@ Type=1 Class=? ControlCount=0 +[DLG:IDD_LAYERCOLLISION_GUI] +Type=1 +Class=CLayerCollisionGUI +ControlCount=6 +Control1=IDC_LAYERCOLLISION_NORMAL,button,1342242816 +Control2=IDC_LAYERCOLLISION_DAMAGE,button,1342242816 +Control3=IDC_LAYERCOLLISION_SLIPPERY,button,1342242816 +Control4=IDC_LAYERCOLLISION_ELECTRIC,button,1342242816 +Control5=IDC_LAYERCOLLISION_STICKY,button,1342242816 +Control6=IDC_LAYERCOLLISION_WATER,button,1342242816 + +[CLS:CLayerCollisionGUI] +Type=0 +HeaderFile=layercollisiongui.h +ImplementationFile=layercollisiongui.cpp +BaseClass=CDialog +Filter=D +VirtualFilter=dWC +LastObject=IDC_LAYERCOLLISION_DAMAGE + diff --git a/Utils/MapEdit/MapEdit.dsp b/Utils/MapEdit/MapEdit.dsp index b3d8d7540..c0949c858 100644 --- a/Utils/MapEdit/MapEdit.dsp +++ b/Utils/MapEdit/MapEdit.dsp @@ -116,24 +116,10 @@ SOURCE=.\LayerDef.h # Begin Source File SOURCE=.\LayerShade.cpp - -!IF "$(CFG)" == "MapEdit - Win32 Release" - -!ELSEIF "$(CFG)" == "MapEdit - Win32 Debug" - -!ENDIF - # End Source File # Begin Source File SOURCE=.\LayerShade.h - -!IF "$(CFG)" == "MapEdit - Win32 Release" - -!ELSEIF "$(CFG)" == "MapEdit - Win32 Debug" - -!ENDIF - # End Source File # Begin Source File @@ -362,6 +348,14 @@ SOURCE=.\AddLayerDlg.h # End Source File # Begin Source File +SOURCE=.\LayerCollisionGUI.cpp +# End Source File +# Begin Source File + +SOURCE=.\LayerCollisionGUI.h +# End Source File +# Begin Source File + SOURCE=.\LayerList.cpp # End Source File # Begin Source File diff --git a/Utils/MapEdit/MapEdit.rc b/Utils/MapEdit/MapEdit.rc index 88821046c..bf6f8ce5f 100644 --- a/Utils/MapEdit/MapEdit.rc +++ b/Utils/MapEdit/MapEdit.rc @@ -511,7 +511,7 @@ BEGIN WS_VSCROLL | WS_TABSTOP,WS_EX_DLGMODALFRAME END -IDD_LAYERTILE_GUI DIALOG DISCARDABLE 0, 0, 151, 47 +IDD_LAYERTILE_GUI DIALOG DISCARDABLE 0, 0, 156, 47 STYLE WS_CHILD FONT 8, "MS Sans Serif" BEGIN @@ -522,7 +522,7 @@ BEGIN PUSHBUTTON "Delete",IDD_LAYERTILE_BTN_DELETE,50,25,45,15 END -IDD_LAYERTILE_TOOLBAR DIALOG DISCARDABLE 0, 0, 151, 16 +IDD_LAYERTILE_TOOLBAR DIALOG DISCARDABLE 0, 0, 156, 16 STYLE WS_CHILD FONT 8, "MS Sans Serif" BEGIN @@ -532,23 +532,48 @@ BEGIN WS_TABSTOP END -IDD_LAYERSHADE_GUI DIALOG DISCARDABLE 0, 0, 186, 36 +IDD_LAYERSHADE_GUI DIALOG DISCARDABLE 0, 0, 156, 76 STYLE WS_CHILD FONT 8, "MS Sans Serif" BEGIN - LTEXT "RGB0",IDC_LAYERSHADE_TEXT0,5,7,24,8 - EDITTEXT IDC_LAYERSHADE_EDITR0,5,15,20,12,ES_NUMBER | WS_GROUP - EDITTEXT IDC_LAYERSHADE_EDITG0,25,15,20,12,ES_AUTOHSCROLL | + EDITTEXT IDC_LAYERSHADE_EDITR0,45,15,20,12,ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITG0,65,15,20,12,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP - EDITTEXT IDC_LAYERSHADE_EDITB0,45,15,20,12,ES_AUTOHSCROLL | + EDITTEXT IDC_LAYERSHADE_EDITB0,85,15,20,12,ES_AUTOHSCROLL | ES_NUMBER | WS_GROUP - LTEXT "RGB1",IDC_LAYERSHADE_TEXT1,85,5,24,8 - EDITTEXT IDC_LAYERSHADE_EDITR1,85,15,20,12,ES_AUTOHSCROLL | - ES_NUMBER - EDITTEXT IDC_LAYERSHADE_EDITG1,105,15,20,12,ES_AUTOHSCROLL | - ES_NUMBER - EDITTEXT IDC_LAYERSHADE_EDITB1,125,15,20,12,ES_AUTOHSCROLL | - ES_NUMBER + CTEXT "Count",IDC_LAYERSHADE_COUNTTEXT,5,5,25,10,SS_SUNKEN + EDITTEXT IDC_LAYERSHADE_EDITR1,45,30,20,12,ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITG1,65,30,20,12,ES_AUTOHSCROLL | + ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITB1,85,30,20,12,ES_AUTOHSCROLL | + ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITR2,45,45,20,12,ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITG2,65,45,20,12,ES_AUTOHSCROLL | + ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITB2,85,45,20,12,ES_AUTOHSCROLL | + ES_NUMBER | WS_GROUP + CTEXT "RGB",IDC_LAYERSHADE_TEXT7,45,5,60,8,SS_SUNKEN + EDITTEXT IDC_LAYERSHADE_EDITR3,45,60,20,12,ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITG3,65,60,20,12,ES_AUTOHSCROLL | + ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_EDITB3,85,60,20,12,ES_AUTOHSCROLL | + ES_NUMBER | WS_GROUP + EDITTEXT IDC_LAYERSHADE_COUNTEDIT,5,15,25,12,ES_AUTOHSCROLL | + ES_READONLY | ES_NUMBER | NOT WS_TABSTOP + CONTROL "Spin2",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY,31,10,11,20 +END + +IDD_LAYERCOLLISION_GUI DIALOG DISCARDABLE 0, 0, 156, 36 +STYLE WS_CHILD +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "Normal",IDC_LAYERCOLLISION_NORMAL,0,5,50,10 + PUSHBUTTON "Damage",IDC_LAYERCOLLISION_DAMAGE,50,5,50,10 + PUSHBUTTON "Slippery",IDC_LAYERCOLLISION_SLIPPERY,100,5,50,10 + PUSHBUTTON "Electric",IDC_LAYERCOLLISION_ELECTRIC,0,15,50,10 + PUSHBUTTON "Sticky",IDC_LAYERCOLLISION_STICKY,50,15,50,10 + PUSHBUTTON "Water",IDC_LAYERCOLLISION_WATER,100,15,50,10 END @@ -595,7 +620,7 @@ BEGIN IDD_LAYERTILE_GUI, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 144 + RIGHTMARGIN, 149 TOPMARGIN, 7 BOTTOMMARGIN, 40 END @@ -603,7 +628,7 @@ BEGIN IDD_LAYERTILE_TOOLBAR, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 144 + RIGHTMARGIN, 149 TOPMARGIN, 4 BOTTOMMARGIN, 9 END @@ -611,7 +636,15 @@ BEGIN IDD_LAYERSHADE_GUI, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 179 + RIGHTMARGIN, 149 + TOPMARGIN, 7 + BOTTOMMARGIN, 69 + END + + IDD_LAYERCOLLISION_GUI, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 149 TOPMARGIN, 7 BOTTOMMARGIN, 29 END diff --git a/Utils/MapEdit/MapEditDoc.cpp b/Utils/MapEdit/MapEditDoc.cpp index 26587be8c..73dc4f7ae 100644 --- a/Utils/MapEdit/MapEditDoc.cpp +++ b/Utils/MapEdit/MapEditDoc.cpp @@ -34,9 +34,9 @@ BEGIN_MESSAGE_MAP(CMapEditDoc, CDocument) ON_COMMAND(ID_EDIT_COPY, OnEditCopy) ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) ON_COMMAND(ID_2D_3D_TOGGLE, On2d3dToggle) + ON_COMMAND(ID_RESET_VIEW, OnResetView) ON_COMMAND(ID_TOOLBAR_TILEPALETTE, OnToggleTileview) ON_COMMAND(ID_TOGGLE_GRID, OnToggleGrid) - ON_COMMAND(ID_RESET_VIEW, OnResetView) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -296,3 +296,11 @@ void CMapEditDoc::FocusView() { theApp.GetMainWnd()->SetFocus(); // Put control back to Window :o) } + +/*********************************************************************************/ +void CMapEditDoc::SetColFlag(int Flag) +{ + Core.SetColFlag(Flag); + FocusView(); +} + diff --git a/Utils/MapEdit/MapEditDoc.h b/Utils/MapEdit/MapEditDoc.h index 63c17a3c3..494e695b0 100644 --- a/Utils/MapEdit/MapEditDoc.h +++ b/Utils/MapEdit/MapEditDoc.h @@ -35,18 +35,7 @@ public: 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); - void MirrorY(CMapEditView *View); - void CopySelection(CMapEditView *View); - void PasteSelection(CMapEditView *View); - void ActiveBrushLeft(CMapEditView *View); - void ActiveBrushRight(CMapEditView *View); - void MapSetSize(CMapEditView *View); - void Toggle2d3d(CMapEditView *View); -*/ + void TileBankLoad(); void TileBankDelete(); void TileBankReload(); @@ -57,6 +46,7 @@ public: void AddLayer(int Layer); void DeleteLayer(int Layer); + void SetColFlag(int Flag); // Operations public: diff --git a/Utils/MapEdit/resource.h b/Utils/MapEdit/resource.h index f60822269..8c4d6a534 100644 --- a/Utils/MapEdit/resource.h +++ b/Utils/MapEdit/resource.h @@ -17,6 +17,7 @@ #define IDD_LAYERTILE_GUI 173 #define IDD_LAYERTILE_TOOLBAR 174 #define IDD_LAYERSHADE_GUI 175 +#define IDD_LAYERCOLLISION_GUI 177 #define IDC_TOOLBAR_COMBO 1018 #define IDC_LAYER_LIST 1019 #define IDD_LAYERTILE_BTN_UPDATE 1029 @@ -41,6 +42,22 @@ #define IDC_LAYERSHADE_EDITR1 1064 #define IDC_LAYERSHADE_EDITG1 1065 #define IDC_LAYERSHADE_EDITB1 1066 +#define IDC_LAYERSHADE_COUNTEDIT 1074 +#define IDC_LAYERSHADE_COUNTTEXT 1075 +#define IDC_SPIN2 1076 +#define IDC_LAYERCOLLISION_NORMAL 1078 +#define IDC_LAYERSHADE_EDITR2 1081 +#define IDC_LAYERSHADE_EDITG2 1082 +#define IDC_LAYERCOLLISION_DAMAGE 1082 +#define IDC_LAYERSHADE_EDITB2 1083 +#define IDC_LAYERCOLLISION_SLIPPERY 1083 +#define IDC_LAYERCOLLISION_ELECTRIC 1084 +#define IDC_LAYERCOLLISION_STICKY 1085 +#define IDC_LAYERSHADE_TEXT7 1086 +#define IDC_LAYERCOLLISION_WATER 1086 +#define IDC_LAYERSHADE_EDITR3 1087 +#define IDC_LAYERSHADE_EDITG3 1088 +#define IDC_LAYERSHADE_EDITB3 1089 #define ID_TOOLBAR_LAYERBAR 32773 #define ID_TOOLBAR_TILEPALETTE 32774 #define ID_TOOLBAR_COMBO 32777 @@ -66,9 +83,9 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 177 +#define _APS_NEXT_RESOURCE_VALUE 178 #define _APS_NEXT_COMMAND_VALUE 32800 -#define _APS_NEXT_CONTROL_VALUE 1070 +#define _APS_NEXT_CONTROL_VALUE 1080 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/source/level/level.cpp b/source/level/level.cpp index 4a7516218..ba9516704 100644 --- a/source/level/level.cpp +++ b/source/level/level.cpp @@ -72,11 +72,11 @@ sLvlTab LvlTable[]= }; extern int s_globalLevelSelectThing; -int Lvl=13; +//int Lvl=13; /*****************************************************************************/ void CLevel::init() { - s_globalLevelSelectThing=Lvl; +// s_globalLevelSelectThing=Lvl; for (int i=0; i