From 9f1e03e8fc07ebc663119ddd19a0fd96a01f838a Mon Sep 17 00:00:00 2001 From: Daveo Date: Sat, 31 Mar 2001 15:40:20 +0000 Subject: [PATCH] --- Utils/MapEdit/Elem.cpp | 43 +++++++++++---- Utils/MapEdit/Elem.h | 20 +++++-- Utils/MapEdit/LayerActor.cpp | 40 ++------------ Utils/MapEdit/LayerActor.h | 4 +- Utils/MapEdit/LayerItem.cpp | 12 ++++- Utils/MapEdit/LayerItem.h | 2 +- Utils/MapEdit/LayerPlatform.cpp | 43 ++------------- Utils/MapEdit/LayerPlatform.h | 4 +- Utils/MapEdit/LayerThing.cpp | 93 ++++++++++++++++++++++++++------- Utils/MapEdit/LayerThing.h | 7 ++- 10 files changed, 153 insertions(+), 115 deletions(-) diff --git a/Utils/MapEdit/Elem.cpp b/Utils/MapEdit/Elem.cpp index bdcb373bb..3b876695a 100644 --- a/Utils/MapEdit/Elem.cpp +++ b/Utils/MapEdit/Elem.cpp @@ -105,7 +105,8 @@ GFName Path=Filename; /*****************************************************************************/ // 2d Elem (From Bmp File) -CElem::CElem(CCore *Core,const char *Filename,int TexID,int XOfs,int YOfs,int Width,int Height,bool Centre) +// 0,0 1,0 1,1 0,1 +CElem::CElem(CCore *Core,const char *Filename,int TexID,int XOfs,int YOfs,int Width,int Height,int CentreMode) { CTexCache &TexCache=Core->GetTexCache(); GFName Path=Filename; @@ -119,10 +120,32 @@ GFName Path=Filename; TexXOfs=XOfs; TexYOfs=YOfs; Ofs.Zero(); - if (Centre) + + if (CentreMode & CentreModeL) { - Ofs.x=0.5-UnitWidth/2; - Ofs.y=-1.0f; + // Nothing to do, already there + } + if (CentreMode & CentreModeR) + { + Ofs.x-=UnitWidth; + } + + if (CentreMode & CentreModeT) + { + Ofs.y-=UnitHeight; + } + if (CentreMode & CentreModeB) + { + // Nothing to do, already there + } + + if (CentreMode & CentreModeLR) + { + Ofs.x-=(UnitWidth-1.0f)/2; + } + if (CentreMode & CentreModeTB) + { + Ofs.y-=(UnitHeight-1.0f)/2; } Build2dElem(Core,Path.File(),TexID); @@ -580,7 +603,7 @@ int Size=RGBData.TexW*RGBData.TexH; /*** Elem Set ****************************************************************/ /*****************************************************************************/ /*****************************************************************************/ -CElemSet::CElemSet(const char *_Filename,int Idx,int Width,int Height,bool CreateBlank,bool Centre) +CElemSet::CElemSet(const char *_Filename,int Idx,int Width,int Height,bool CreateBlank,int Centre) { GFName FName=_Filename; @@ -589,7 +612,7 @@ GFName FName=_Filename; MaxWidth=Width; MaxHeight=Height; - CentreFlag=Centre; + CentreMode=Centre; Loaded=FALSE; SetNumber=Idx; @@ -648,7 +671,7 @@ int Width,Height; { for (int X=0; X ElemList; bool Loaded; int ElemBrowserWidth; @@ -147,7 +156,7 @@ class CElemBank : public CLayer { public: // Local - CElemBank(int MaxWidth,int MaxHeight,bool Blank,bool Centre); + CElemBank(int MaxWidth,int MaxHeight,bool Blank,int Centre=0); virtual ~CElemBank(); void CleanUp(); @@ -200,7 +209,8 @@ protected: int CursorPos; int MaxWidth,MaxHeight; - bool BlankFlag,CentreFlag; + bool BlankFlag; + int CentreMode; CGUIElemList GUIElemList; diff --git a/Utils/MapEdit/LayerActor.cpp b/Utils/MapEdit/LayerActor.cpp index d86bd0213..d09578a7e 100644 --- a/Utils/MapEdit/LayerActor.cpp +++ b/Utils/MapEdit/LayerActor.cpp @@ -30,6 +30,7 @@ CLayerActor::CLayerActor(sLayerDef &Def) /*****************************************************************************/ void CLayerActor::InitLayer(sLayerDef &Def) { + ThingBank=new CElemBank(-1,-1,false,CElem::CentreModeLR | CElem::CentreModeB); CLayerThing::InitLayer(Def); LoadThingScript(theApp.GetConfigStr("LayerScript","ActorScript")); } @@ -82,21 +83,9 @@ CComboBox &List=GUI.m_List; } /*****************************************************************************/ -void CLayerActor::GUIThingUpdate() +void CLayerActor::GUIThingUpdate(bool OnlySel) { -int i,ListSize; -CComboBox &List=GUI.m_LevelList; -// Setup ThingList - ListSize=ThingList.size(); - TRACE1("%i\n",ListSize); - List.ResetContent(); - for (i=0; iRenderNumber(i); if (i==0) { glColor4f(1,1,1,1); // Set default Color glEnable(GL_DEPTH_TEST); glTranslatef(0,0,ScrOfs.z); ThingBank->RenderElem(ThisThing.ElemID,0,0,Render3d); - glTranslatef(0,0,-ScrOfs.z); glDisable(GL_DEPTH_TEST); + glTranslatef(0,0,-ScrOfs.z); + if (Selected) + glColor4f(1,1,0,0.8f); + else + glColor4f(1,1,0,0.5f); + if (DrawPoints) Core->RenderNumber(i); + + } + else + { + if (Selected) + glColor4f(1,1,1,1); // Set default Color + else + glColor4f(1,1,1,0.5); + if (DrawPoints) Core->RenderNumber(i); } glPopMatrix(); } @@ -287,6 +294,47 @@ void CLayerThing::GUIChanged(CCore *Core) { } +/*****************************************************************************/ +void CLayerThing::GUIThingUpdateList(CComboBox &List,bool OnlySel) +{ +int i,ListSize; + + if (!OnlySel) + { +// Setup ThingList + ListSize=ThingList.size(); + List.ResetContent(); + for (i=0; i