This commit is contained in:
Daveo 2001-02-20 15:57:03 +00:00
parent 9af1eb0ad5
commit 0a22ec4675
20 changed files with 348 additions and 122 deletions

View File

@ -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()
{

View File

@ -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);

View File

@ -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
{

View File

@ -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);}

View File

@ -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<Width; X++)
{
sMapElem &MapElem=Map.Get(X,Y);
u8 OutElem=0;
sExpColTile OutElem;
if (MapElem.Tile)
{
OutElem=((MapElem.Tile-1)*4)+1;
OutElem+=MapElem.Flags & TILE_FLAG_MIRROR_XY;
OutElem.Tile=((MapElem.Tile-1)*4)+1;
OutElem.Tile+=MapElem.Flags & PC_TILE_FLAG_MIRROR_XY;
OutElem.Flags=MapElem.Flags>>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));
}
}

View File

@ -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;
};

View File

@ -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<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_DAMAGE =PC_TILE_COLLISION_DAMAGE<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_SLIPPERY =PC_TILE_COLLISION_SLIPPERY<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_ELECTRIC =PC_TILE_COLLISION_ELECTRIC<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_STICKY =PC_TILE_COLLISION_STICKY<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_WATER =PC_TILE_COLLISION_WATER<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_MASK = ~PC_TILE_FLAG_MIRROR_XY,
};
enum
{
LAYER_SHADE_MAX=4,
};

View File

@ -36,8 +36,11 @@ CLayerShade::CLayerShade(int _SubType,int _Width,int _Height)
Width=TileLayerMinWidth+(_Width-TileLayerMinWidth)/ScaleFactor;
Height=TileLayerMinHeight+(_Height-TileLayerMinHeight)/ScaleFactor;
RGB[0].rgbRed=255; RGB[0].rgbGreen=255; RGB[0].rgbBlue=255;
RGB[1].rgbRed=255; RGB[1].rgbGreen=0; RGB[1].rgbBlue=0;
RGB[0].rgbRed=255; RGB[0].rgbGreen=255; RGB[0].rgbBlue=255;
RGB[1].rgbRed=255; RGB[1].rgbGreen=0; RGB[1].rgbBlue=0;
RGB[2].rgbRed=0; RGB[2].rgbGreen=255; RGB[2].rgbBlue=0;
RGB[3].rgbRed=0; RGB[3].rgbGreen=0; RGB[3].rgbBlue=255;
Count=2;
}
@ -64,8 +67,20 @@ void CLayerShade::Load(CFile *File,int Version)
File->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; i<LAYER_SHADE_RGB_MAX; i++)
{
File->Read(&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; i<LAYER_SHADE_RGB_MAX; i++)
{
File->Write(&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; i<ThisCount; i++)
{
glColor3ub(RGB[i+0].rgbRed,RGB[i+0].rgbGreen,RGB[i+0].rgbBlue);
glVertex3f( X0,Y,0.0f);
glVertex3f( X1,Y,0.0f);
Y-=YInc;
glColor3ub(RGB[i+1].rgbRed,RGB[i+1].rgbGreen,RGB[i+1].rgbBlue);
glVertex3f( X1,Y,0.0f);
glVertex3f( X0,Y,0.0f);
}
glEnd();
glPopMatrix();
}
@ -142,8 +165,11 @@ BOOL CLayerShade::Resize(int _Width,int _Height)
void CLayerShade::GUIInit(CCore *Core)
{
Core->GUIAdd(ShadeDlg,IDD_LAYERSHADE_GUI);
ShadeDlg.SetRGB0(RGB[0]);
ShadeDlg.SetRGB1(RGB[1]);
for (int i=0; i<LAYER_SHADE_MAX; i++)
{
ShadeDlg.SetRGB(RGB[i],i);
}
ShadeDlg.SetCount(Count);
}
/*****************************************************************************/
@ -155,13 +181,17 @@ void CLayerShade::GUIKill(CCore *Core)
/*****************************************************************************/
void CLayerShade::GUIUpdate(CCore *Core)
{
ShadeDlg.CheckData();
}
/*****************************************************************************/
void CLayerShade::GUIChanged(CCore *Core)
{
ShadeDlg.GetRGB0(RGB[0]);
ShadeDlg.GetRGB1(RGB[1]);
for (int i=0; i<LAYER_SHADE_MAX; i++)
{
ShadeDlg.GetRGB(RGB[i],i);
}
ShadeDlg.GetCount(Count);
}
/*****************************************************************************/
@ -170,8 +200,10 @@ void CLayerShade::GUIChanged(CCore *Core)
void CLayerShade::Export(CCore *Core,CExport &Exp)
{
Exp.ExportLayerHeader(LAYER_TYPE_SHADE,SubType,Width,Height);
Exp.Write(&Count,sizeof(int));
for (int i=0; i<LAYER_SHADE_RGB_MAX; i++)
{
Exp.Write(&Pos[i],sizeof(int));
Exp.Write(&RGB[i],sizeof(RGBQUAD));
}
}

View File

@ -64,6 +64,8 @@ protected:
CLayerShadeGUI ShadeDlg;
int Count;
int Pos[LAYER_SHADE_RGB_MAX];
RGBQUAD RGB[LAYER_SHADE_RGB_MAX];
};

View File

@ -209,7 +209,6 @@ int DrawH=ZoomH+8;
glTranslatef(-Ofs->x,Ofs->y,0); // Set scroll offset
}
glColor4f(1,1,1,Alpha);
for (int YLoop=0; YLoop<DrawH; YLoop++)
{
for (int XLoop=0; XLoop<DrawW; XLoop++)
@ -219,6 +218,7 @@ int DrawH=ZoomH+8;
{ // Render Non Zero Tiles
CTile &ThisTile=Core->GetTile(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<<PC_TILE_FLAG_COLLISION_SHIFT,PC_TILE_FLAG_MIRROR_XY);
TileBank.GetRBrush().SetFlags(Flags<<PC_TILE_FLAG_COLLISION_SHIFT,PC_TILE_FLAG_MIRROR_XY);
}
break;
case MouseModeSelect:
{
if (!Selection.IsValid()) return(false); // No Selection
CRect R=Selection.GetRect();
Map.SetFlags(Flags<<PC_TILE_FLAG_COLLISION_SHIFT,PC_TILE_FLAG_MIRROR_XY,&R);
}
break;
default:
break;
}
return(TRUE);
}
/*****************************************************************************/
BOOL CLayerTile::CopySelection(CCore *Core)
{

View File

@ -29,9 +29,9 @@ public:
int GetType() {return(LAYER_TYPE_TILE);}
int GetSubType() {return(SubType);}
void Render(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active);
void RenderSelection(CCore *Core,Vector3 &ThisCam);
virtual void Render(CCore *Core,Vector3 &CamPos,BOOL Is3d);
virtual void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active);
virtual void RenderSelection(CCore *Core,Vector3 &ThisCam);
void FindCursorPos(CCore *Core,Vector3 &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d);
@ -62,6 +62,7 @@ virtual void GUIChanged(CCore *Core);
BOOL MirrorX(CCore *Core);
BOOL MirrorY(CCore *Core);
BOOL SetColFlags(CCore *Core,int Flags);
BOOL CopySelection(CCore *Core);
BOOL PasteSelection(CCore *Core);

View File

@ -230,6 +230,26 @@ int Ofs=(R->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; Y<R->bottom; Y++)
{
for (int X=R->left; X<R->right; X++)
{
sMapElem &ThisElem=Get(X,Y);
ThisElem.Flags&=Mask;
ThisElem.Flags|=Flags;
}
}
}
/*****************************************************************************/
void CMap::Paste(CMap &Src,CRect *R)
{

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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();
}

View File

@ -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:

View File

@ -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

View File

@ -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<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
{
TileLayers[i]=0;