From a19fb1096a955f6e90cc48dc2e48c495b0c43e47 Mon Sep 17 00:00:00 2001 From: Daveo Date: Wed, 30 May 2001 17:02:54 +0000 Subject: [PATCH] --- Utils/MapEdit/Elem.cpp | 50 +++++++++++++--- Utils/MapEdit/GUILayerCollision.cpp | 45 ++++++++++----- Utils/MapEdit/GUILayerCollision.h | 15 +++-- Utils/MapEdit/LayerDef.h | 54 ++++++++++-------- Utils/MapEdit/MapEdit.clw | 57 ++++++++++--------- Utils/MapEdit/MapEdit.rc | 26 +++++---- Utils/MapEdit/resource.h | 7 +++ .../MkLevel/Layers/MkLevelLayerCollision.cpp | 23 +++++++- Utils/MkLevel/Layers/MkLevelLayerThing.cpp | 5 +- Utils/MkLevel/MkLevel.cpp | 4 +- makefile.gaz | 1 + 11 files changed, 195 insertions(+), 92 deletions(-) diff --git a/Utils/MapEdit/Elem.cpp b/Utils/MapEdit/Elem.cpp index 48ecedcb6..26e1a9446 100644 --- a/Utils/MapEdit/Elem.cpp +++ b/Utils/MapEdit/Elem.cpp @@ -416,6 +416,29 @@ float ScaleU,ScaleV; } /*****************************************************************************/ +struct sColTab +{ + u8 R,G,B; +}; +sColTab ColTable[]= +{ +{255,255,255}, // PC_TILE_COLLISION_NORMAL: +{255, 0, 0}, // PC_TILE_COLLISION_DAMAGE: +{ 0,255, 0}, // PC_TILE_COLLISION_SLIPPERY: +{255, 0,255}, // PC_TILE_COLLISION_ELECTRIC: +{200,127,180}, // PC_TILE_COLLISION_DESTRUCTABLE_WALL: +{ 0, 0,255}, // PC_TILE_COLLISION_DEATH_LIQUID: +{ 0,255,255}, // PC_TILE_COLLISION_SOLID: +{200, 0, 0}, // PC_TILE_COLLISION_DEATH_FALL: +{127,200,180}, // PC_TILE_COLLISION_DESTRUCTABLE_FLOOR: +{255,127,127}, // PC_TILE_COLLISION_DEATH_INSTANT: + +{ 0,127, 0}, // PC_TILE_COLLISION_MOVE_LEFT: +{ 0,127,127}, // PC_TILE_COLLISION_MOVE_RIGHT: + + +}; + void CElem::Render(int Flags,bool Render3d) { if (BlankFlag) @@ -440,18 +463,27 @@ int ColFlags=Flags >> PC_TILE_FLAG_COLLISION_SHIFT; if (ColFlags) { +/* switch (ColFlags) { - case PC_TILE_COLLISION_NORMAL: glColor4f(1.0f,1.0f,1.0f,0.5); break; - case PC_TILE_COLLISION_DAMAGE: glColor4f(1.0f,0.0f,0.0f,0.5); break; - case PC_TILE_COLLISION_SLIPPERY: glColor4f(0.0f,1.0f,0.0f,0.5); break; - case PC_TILE_COLLISION_ELECTRIC: glColor4f(1.0f,0.0f,1.0f,0.5); break; - case PC_TILE_COLLISION_STICKY: glColor4f(1.0f,1.0f,0.0f,0.5); break; - case PC_TILE_COLLISION_WATER: glColor4f(0.0f,0.0f,1.0f,0.5); break; - case PC_TILE_COLLISION_SOLID: glColor4f(0.0f,1.0f,1.0f,0.5); break; - case PC_TILE_COLLISION_DEATH: glColor4f(0.0f,0.5f,0.5f,0.5); break; - case PC_TILE_COLLISION_DESTRUCTABLE:glColor4f(0.5f,0.7f,0.6f,0.5); break; + case PC_TILE_COLLISION_NORMAL: glColor4f(1.0f,1.0f,1.0f,0.5); break; + case PC_TILE_COLLISION_SOLID: glColor4f(0.0f,1.0f,1.0f,0.5); break; + case PC_TILE_COLLISION_SLIPPERY: glColor4f(0.0f,1.0f,0.0f,0.5); break; + case PC_TILE_COLLISION_MOVE_LEFT: glColor4f(0.5f,1.0f,0.0f,0.5); break; + case PC_TILE_COLLISION_MOVE_RIGHT: glColor4f(0.0f,1.0f,0.5f,0.5); break; + + case PC_TILE_COLLISION_DAMAGE: glColor4f(1.0f,0.0f,0.0f,0.5); break; + case PC_TILE_COLLISION_ELECTRIC: glColor4f(1.0f,0.0f,1.0f,0.5); break; + case PC_TILE_COLLISION_DEATH_LIQUID: glColor4f(0.0f,0.0f,1.0f,0.5); break; + case PC_TILE_COLLISION_DEATH_FALL: glColor4f(0.0f,0.5f,0.5f,0.5); break; + case PC_TILE_COLLISION_DEATH_INSTANT: glColor4f(0.1f,0.5f,0.5f,0.5); break; + + case PC_TILE_COLLISION_DESTRUCTABLE_WALL: glColor4f(0.7f,0.5f,0.6f,0.5); break; + case PC_TILE_COLLISION_DESTRUCTABLE_FLOOR: glColor4f(0.5f,0.7f,0.6f,0.5); break; } +*/ + sColTab &ThisCol=ColTable[ColFlags]; + glColor4ub(ThisCol.R,ThisCol.G,ThisCol.B,127); } glEnable(GL_TEXTURE_2D); if (Render3d) diff --git a/Utils/MapEdit/GUILayerCollision.cpp b/Utils/MapEdit/GUILayerCollision.cpp index 185c04624..3b5266aaf 100644 --- a/Utils/MapEdit/GUILayerCollision.cpp +++ b/Utils/MapEdit/GUILayerCollision.cpp @@ -38,15 +38,18 @@ void GUILayerCollision::DoDataExchange(CDataExchange* pDX) BEGIN_MESSAGE_MAP(GUILayerCollision, CDialog) //{{AFX_MSG_MAP(GUILayerCollision) - ON_BN_CLICKED(IDC_LAYERCOLLISION_NORMAL, OnLayercollisionNormal) ON_BN_CLICKED(IDC_LAYERCOLLISION_DAMAGE, OnLayercollisionDamage) - ON_BN_CLICKED(IDC_LAYERCOLLISION_SLIPPERY, OnLayercollisionSlippery) + ON_BN_CLICKED(IDC_LAYERCOLLISION_DEATH_FALL, OnLayercollisionDeathFall) + ON_BN_CLICKED(IDC_LAYERCOLLISION_DEATH_INSTANT, OnLayercollisionDeathInstant) + ON_BN_CLICKED(IDC_LAYERCOLLISION_DEATH_LIQUID, OnLayercollisionDeathLiquid) + ON_BN_CLICKED(IDC_LAYERCOLLISION_DESTRUCT_FLOOR, OnLayercollisionDestructFloor) + ON_BN_CLICKED(IDC_LAYERCOLLISION_DESTRUCT_WALL, OnLayercollisionDestructWall) ON_BN_CLICKED(IDC_LAYERCOLLISION_ELECTRIC, OnLayercollisionElectric) - ON_BN_CLICKED(IDC_LAYERCOLLISION_STICKY, OnLayercollisionSticky) - ON_BN_CLICKED(IDC_LAYERCOLLISION_WATER, OnLayercollisionWater) + ON_BN_CLICKED(IDC_LAYERCOLLISION_MOVE_LEFT, OnLayercollisionMoveLeft) + ON_BN_CLICKED(IDC_LAYERCOLLISION_MOVE_RIGHT, OnLayercollisionMoveRight) + ON_BN_CLICKED(IDC_LAYERCOLLISION_NORMAL, OnLayercollisionNormal) + ON_BN_CLICKED(IDC_LAYERCOLLISION_SLIPPERY, OnLayercollisionSlippery) ON_BN_CLICKED(IDC_LAYERCOLLISION_SOLID, OnLayercollisionSolid) - ON_BN_CLICKED(IDC_LAYERCOLLISION_DEATH, OnLayercollisionDeath) - ON_BN_CLICKED(IDC_LAYERCOLLISION_DESTRUCTABLE, OnLayercollisionDestructable) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -54,12 +57,28 @@ END_MESSAGE_MAP() // GUILayerCollision message handlers void GUILayerCollision::OnLayercollisionNormal() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_NORMAL);} -void GUILayerCollision::OnLayercollisionDamage() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DAMAGE);} -void GUILayerCollision::OnLayercollisionSlippery() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_SLIPPERY);} -void GUILayerCollision::OnLayercollisionElectric() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_ELECTRIC);} -void GUILayerCollision::OnLayercollisionSticky() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_STICKY);} -void GUILayerCollision::OnLayercollisionWater() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_WATER);} void GUILayerCollision::OnLayercollisionSolid() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_SOLID);} -void GUILayerCollision::OnLayercollisionDeath() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DEATH);} -void GUILayerCollision::OnLayercollisionDestructable() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DESTRUCTABLE);} +void GUILayerCollision::OnLayercollisionSlippery() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_SLIPPERY);} +void GUILayerCollision::OnLayercollisionMoveLeft() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_MOVE_LEFT);} +void GUILayerCollision::OnLayercollisionMoveRight() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_MOVE_RIGHT);} +void GUILayerCollision::OnLayercollisionDamage() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DAMAGE);} +void GUILayerCollision::OnLayercollisionElectric() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_ELECTRIC);} +void GUILayerCollision::OnLayercollisionDeathLiquid() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DEATH_LIQUID);} +void GUILayerCollision::OnLayercollisionDeathFall() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DEATH_FALL);} +void GUILayerCollision::OnLayercollisionDeathInstant() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DEATH_INSTANT);} + +void GUILayerCollision::OnLayercollisionDestructWall() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DESTRUCTABLE_WALL);} +void GUILayerCollision::OnLayercollisionDestructFloor() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DESTRUCTABLE_FLOOR);} + + + + + + + + + + + + diff --git a/Utils/MapEdit/GUILayerCollision.h b/Utils/MapEdit/GUILayerCollision.h index 6c6459a88..78be8bbfb 100644 --- a/Utils/MapEdit/GUILayerCollision.h +++ b/Utils/MapEdit/GUILayerCollision.h @@ -35,15 +35,18 @@ protected: // Generated message map functions //{{AFX_MSG(GUILayerCollision) - afx_msg void OnLayercollisionNormal(); afx_msg void OnLayercollisionDamage(); - afx_msg void OnLayercollisionSlippery(); + afx_msg void OnLayercollisionDeathFall(); + afx_msg void OnLayercollisionDeathInstant(); + afx_msg void OnLayercollisionDeathLiquid(); + afx_msg void OnLayercollisionDestructFloor(); + afx_msg void OnLayercollisionDestructWall(); afx_msg void OnLayercollisionElectric(); - afx_msg void OnLayercollisionSticky(); - afx_msg void OnLayercollisionWater(); + afx_msg void OnLayercollisionMoveLeft(); + afx_msg void OnLayercollisionMoveRight(); + afx_msg void OnLayercollisionNormal(); + afx_msg void OnLayercollisionSlippery(); afx_msg void OnLayercollisionSolid(); - afx_msg void OnLayercollisionDeath(); - afx_msg void OnLayercollisionDestructable(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; diff --git a/Utils/MapEdit/LayerDef.h b/Utils/MapEdit/LayerDef.h index 3a33d4b27..03ab633a3 100644 --- a/Utils/MapEdit/LayerDef.h +++ b/Utils/MapEdit/LayerDef.h @@ -42,32 +42,40 @@ enum LAYER_SUBVIEW enum TILE_FLAG { - 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_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_DESTRUCTABLE_WALL =4, + PC_TILE_COLLISION_DEATH_LIQUID =5, + PC_TILE_COLLISION_SOLID =6, + PC_TILE_COLLISION_DEATH_FALL =7, + PC_TILE_COLLISION_DESTRUCTABLE_FLOOR =8, + PC_TILE_COLLISION_DEATH_INSTANT =9, + PC_TILE_COLLISION_MOVE_LEFT =10, + PC_TILE_COLLISION_MOVE_RIGHT =11, - 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_COLLISION_SOLID =6, - PC_TILE_COLLISION_DEATH =7, - PC_TILE_COLLISION_DESTRUCTABLE =8, + PC_TILE_FLAG_COLLISION_SHIFT =2, + PC_TILE_FLAG_COLLISION_NORMAL =PC_TILE_COLLISION_NORMAL< Counts; OutName+="_"; OutName+=Name; - Core->AddInfItem(OutName,Counts[i]); +// if (Counts[i]) + { + Core->AddInfItem(OutName,Counts[i]); + } } diff --git a/Utils/MkLevel/MkLevel.cpp b/Utils/MkLevel/MkLevel.cpp index 18326a288..256ca3c71 100644 --- a/Utils/MkLevel/MkLevel.cpp +++ b/Utils/MkLevel/MkLevel.cpp @@ -1148,8 +1148,8 @@ int Vtx[3]; void CMkLevel::AddInfItem(const char *Name,int Val) { sInfItem Item; - - Item.Name=Name; +GString ReplaceBadFileChars(GString s); // Dodgy extern from TexGrab Lib! + Item.Name=ReplaceBadFileChars(Name); Item.Name.Upper(); Item.Val=Val; diff --git a/makefile.gaz b/makefile.gaz index 00fe9f956..af990d45e 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -155,6 +155,7 @@ hazard_src := hazard \ fx_src := fx \ fxbaseanim \ fxbasetrail \ + fxjfish \ fxfallingtile \ fxsteam \ fxsplash \