This commit is contained in:
Daveo 2001-07-05 21:17:31 +00:00
parent 6e945b8ca6
commit 50d0c8ef48
14 changed files with 66 additions and 43 deletions

View file

@ -369,8 +369,8 @@ void CFaceStore::ParseVtx4BBox(sVtx &ThisVtx)
{ {
if (BBox.XMin>+ThisVtx.vx) BBox.XMin=+ThisVtx.vx; if (BBox.XMin>+ThisVtx.vx) BBox.XMin=+ThisVtx.vx;
if (BBox.XMax<+ThisVtx.vx) BBox.XMax=+ThisVtx.vx; if (BBox.XMax<+ThisVtx.vx) BBox.XMax=+ThisVtx.vx;
if (BBox.YMin>-ThisVtx.vy) BBox.YMin=-ThisVtx.vy; if (BBox.YMin>+ThisVtx.vy) BBox.YMin=+ThisVtx.vy;
if (BBox.YMax<-ThisVtx.vy) BBox.YMax=-ThisVtx.vy; if (BBox.YMax<+ThisVtx.vy) BBox.YMax=+ThisVtx.vy;
} }
//*************************************************************************** //***************************************************************************
void CFaceStore::BuildOutTriList(vector<sTri> &OutTriList,vector<sVtx> &OutVtxList) void CFaceStore::BuildOutTriList(vector<sTri> &OutTriList,vector<sVtx> &OutVtxList)

View file

@ -437,6 +437,8 @@ sColTab ColTable[]=
{ 0,127,127}, // PC_TILE_COLLISION_MOVE_RIGHT: { 0,127,127}, // PC_TILE_COLLISION_MOVE_RIGHT:
{ 0, 0,255}, // PC_TILE_COLLISION_DEATH_LIQUID: { 0, 0,255}, // PC_TILE_COLLISION_DEATH_LIQUID:
{255,127,0}, // PC_TILE_COLLISION_SB_NOMOVE
}; };
void CElem::Render(int Flags,bool Render3d) void CElem::Render(int Flags,bool Render3d)

View file

@ -51,6 +51,7 @@ BEGIN_MESSAGE_MAP(GUILayerCollision, CDialog)
ON_BN_CLICKED(IDC_LAYERCOLLISION_SLIPPERY, OnLayercollisionSlippery) ON_BN_CLICKED(IDC_LAYERCOLLISION_SLIPPERY, OnLayercollisionSlippery)
ON_BN_CLICKED(IDC_LAYERCOLLISION_SOLID, OnLayercollisionSolid) ON_BN_CLICKED(IDC_LAYERCOLLISION_SOLID, OnLayercollisionSolid)
ON_BN_CLICKED(IDC_LAYERCOLLISION_SOAK_UP, OnLayercollisionSoakUp) ON_BN_CLICKED(IDC_LAYERCOLLISION_SOAK_UP, OnLayercollisionSoakUp)
ON_BN_CLICKED(IDC_LAYERCOLLISION_SB_NOMOVE, OnLayercollisionSbNomove)
//}}AFX_MSG_MAP //}}AFX_MSG_MAP
END_MESSAGE_MAP() END_MESSAGE_MAP()
@ -72,3 +73,6 @@ void GUILayerCollision::OnLayercollisionDeathInstant() {theApp.GetCurrent()->Com
void GUILayerCollision::OnLayercollisionDestructWall() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DESTRUCTABLE_WALL);} 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);} void GUILayerCollision::OnLayercollisionDestructFloor() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_DESTRUCTABLE_FLOOR);}
void GUILayerCollision::OnLayercollisionSoakUp() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_SOAKUP);} void GUILayerCollision::OnLayercollisionSoakUp() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_SOAKUP);}
void GUILayerCollision::OnLayercollisionSbNomove() {theApp.GetCurrent()->Command(CmdMsg_SetColFlag,PC_TILE_COLLISION_SB_NOMOVE);}

View file

@ -48,6 +48,7 @@ protected:
afx_msg void OnLayercollisionSlippery(); afx_msg void OnLayercollisionSlippery();
afx_msg void OnLayercollisionSolid(); afx_msg void OnLayercollisionSolid();
afx_msg void OnLayercollisionSoakUp(); afx_msg void OnLayercollisionSoakUp();
afx_msg void OnLayercollisionSbNomove();
//}}AFX_MSG //}}AFX_MSG
DECLARE_MESSAGE_MAP() DECLARE_MESSAGE_MAP()
}; };

View file

@ -59,6 +59,7 @@ enum TILE_FLAG
PC_TILE_COLLISION_MOVE_LEFT =10, PC_TILE_COLLISION_MOVE_LEFT =10,
PC_TILE_COLLISION_MOVE_RIGHT =11, PC_TILE_COLLISION_MOVE_RIGHT =11,
PC_TILE_COLLISION_DEATH_LIQUID =12, PC_TILE_COLLISION_DEATH_LIQUID =12,
PC_TILE_COLLISION_SB_NOMOVE =13,
PC_TILE_FLAG_COLLISION_SHIFT =2, PC_TILE_FLAG_COLLISION_SHIFT =2,
PC_TILE_FLAG_COLLISION_NORMAL =PC_TILE_COLLISION_NORMAL<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_NORMAL =PC_TILE_COLLISION_NORMAL<<PC_TILE_FLAG_COLLISION_SHIFT,
@ -67,7 +68,7 @@ enum TILE_FLAG
PC_TILE_FLAG_COLLISION_MOVE_LEFT =PC_TILE_COLLISION_MOVE_LEFT<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_MOVE_LEFT =PC_TILE_COLLISION_MOVE_LEFT<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_MOVE_RIGHT =PC_TILE_COLLISION_MOVE_RIGHT<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_MOVE_RIGHT =PC_TILE_COLLISION_MOVE_RIGHT<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_SOAKUP =PC_TILE_COLLISION_SOAKUP<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_SOAKUP =PC_TILE_COLLISION_SOAKUP<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_SB_NOMOVE =PC_TILE_COLLISION_SB_NOMOVE<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_DAMAGE =PC_TILE_COLLISION_DAMAGE<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_DAMAGE =PC_TILE_COLLISION_DAMAGE<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_ELECTRIC =PC_TILE_COLLISION_ELECTRIC<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_ELECTRIC =PC_TILE_COLLISION_ELECTRIC<<PC_TILE_FLAG_COLLISION_SHIFT,
PC_TILE_FLAG_COLLISION_DEATH_LIQUID =PC_TILE_COLLISION_DEATH_LIQUID<<PC_TILE_FLAG_COLLISION_SHIFT, PC_TILE_FLAG_COLLISION_DEATH_LIQUID =PC_TILE_COLLISION_DEATH_LIQUID<<PC_TILE_FLAG_COLLISION_SHIFT,

View file

@ -37,26 +37,26 @@ Class25=CMapEditDoc
Class26=CMapEditView Class26=CMapEditView
ResourceCount=21 ResourceCount=21
Resource1=IDD_LAYER_THING Resource1=IDD_ELEMLIST
Resource2=IDD_LAYER_FX Resource2=IDD_LAYER_PLATFORM
Resource3=IDD_NEWMAP Resource3=IDD_LAYER_LIST
Resource4=IDD_LAYER_TRIGGER Resource4=IDD_LAYER_THING_POS
Resource5=IDD_TILEBANK Resource5=IDD_NEWMAP
Resource6=IDD_LAYER_SHADE Resource6=IDD_TILEBANK
Resource7=IDD_LAYER_ACTOR Resource7=IDD_LAYER_COLLISION
Resource8=IDD_LAYER_COLLISION Resource8=IDD_TOOLBAR
Resource9=IDD_TOOLBAR Resource9=IDD_ADDLAYER
Resource10=IDR_TOOLBAR (English (U.S.)) Resource10=IDD_LAYER_TRIGGER
Resource11=IDR_MAPEDITYPE (English (U.S.)) Resource11=IDR_MAPEDITYPE (English (U.S.))
Resource12=IDD_ELEMLIST Resource12=IDD_LAYER_SHADE
Resource13=IDD_ADDLAYER Resource13=IDD_RESIZE
Resource14=IDD_LAYER_PLATFORM Resource14=IDD_LAYER_THING
Resource15=IDD_RESIZE Resource15=IDD_MULTIBAR (English (U.S.))
Resource16=IDR_MAINFRAME (English (U.S.)) Resource16=IDD_LAYER_FX
Resource17=IDD_ABOUTBOX (English (U.S.)) Resource17=IDR_TOOLBAR (English (U.S.))
Resource18=IDD_LAYER_THING_POS Resource18=IDD_LAYER_ACTOR
Resource19=IDD_MULTIBAR (English (U.S.)) Resource19=IDR_MAINFRAME (English (U.S.))
Resource20=IDD_LAYER_LIST Resource20=IDD_ABOUTBOX (English (U.S.))
Resource21=IDD_LAYER_HAZARD Resource21=IDD_LAYER_HAZARD
[CLS:CChildFrame] [CLS:CChildFrame]
@ -94,7 +94,7 @@ Type=0
BaseClass=CDialog BaseClass=CDialog
HeaderFile=GUILayerCollision.h HeaderFile=GUILayerCollision.h
ImplementationFile=GUILayerCollision.cpp ImplementationFile=GUILayerCollision.cpp
LastObject=IDC_LAYERCOLLISION_SOAK_UP LastObject=IDC_LAYERCOLLISION_SB_NOMOVE
Filter=D Filter=D
VirtualFilter=dWC VirtualFilter=dWC
@ -270,7 +270,7 @@ Control14=IDC_ACTOR_COLLISION,button,1342243363
[DLG:IDD_LAYER_COLLISION] [DLG:IDD_LAYER_COLLISION]
Type=1 Type=1
Class=GUILayerCollision Class=GUILayerCollision
ControlCount=13 ControlCount=14
Control1=IDC_LAYERCOLLISION_NORMAL,button,1342242816 Control1=IDC_LAYERCOLLISION_NORMAL,button,1342242816
Control2=IDC_LAYERCOLLISION_DAMAGE,button,1342242816 Control2=IDC_LAYERCOLLISION_DAMAGE,button,1342242816
Control3=IDC_LAYERCOLLISION_SLIPPERY,button,1342242816 Control3=IDC_LAYERCOLLISION_SLIPPERY,button,1342242816
@ -284,6 +284,7 @@ Control10=IDC_LAYERCOLLISION_MOVE_LEFT,button,1342242816
Control11=IDC_LAYERCOLLISION_MOVE_RIGHT,button,1342242816 Control11=IDC_LAYERCOLLISION_MOVE_RIGHT,button,1342242816
Control12=IDC_LAYERCOLLISION_DEATH_INSTANT,button,1342242816 Control12=IDC_LAYERCOLLISION_DEATH_INSTANT,button,1342242816
Control13=IDC_LAYERCOLLISION_SOAK_UP,button,1342242816 Control13=IDC_LAYERCOLLISION_SOAK_UP,button,1342242816
Control14=IDC_LAYERCOLLISION_SB_NOMOVE,button,1342242816
[DLG:IDD_LAYER_FX] [DLG:IDD_LAYER_FX]
Type=1 Type=1

View file

@ -660,27 +660,28 @@ BEGIN
COMBOBOX IDC_LAYERSHADE_DEF_LIST,5,85,145,100,CBS_DROPDOWNLIST COMBOBOX IDC_LAYERSHADE_DEF_LIST,5,85,145,100,CBS_DROPDOWNLIST
END END
IDD_LAYER_COLLISION DIALOG DISCARDABLE 0, 0, 156, 71 IDD_LAYER_COLLISION DIALOG DISCARDABLE 0, 0, 156, 106
STYLE WS_CHILD STYLE WS_CHILD
FONT 8, "MS Sans Serif" FONT 8, "MS Sans Serif"
BEGIN BEGIN
PUSHBUTTON "Normal",IDC_LAYERCOLLISION_NORMAL,0,5,50,10 PUSHBUTTON "Normal",IDC_LAYERCOLLISION_NORMAL,0,5,50,10
PUSHBUTTON "Damage",IDC_LAYERCOLLISION_DAMAGE,0,30,50,10 PUSHBUTTON "Damage",IDC_LAYERCOLLISION_DAMAGE,0,50,50,10
PUSHBUTTON "Slippery",IDC_LAYERCOLLISION_SLIPPERY,100,5,50,10 PUSHBUTTON "Slippery",IDC_LAYERCOLLISION_SLIPPERY,100,5,50,10
PUSHBUTTON "Electric",IDC_LAYERCOLLISION_ELECTRIC,50,30,50,10 PUSHBUTTON "Electric",IDC_LAYERCOLLISION_ELECTRIC,50,50,50,10
PUSHBUTTON "Destructable",IDC_LAYERCOLLISION_DESTRUCT_WALL,0,55,75, PUSHBUTTON "Destructable",IDC_LAYERCOLLISION_DESTRUCT_WALL,0,74,75,
10 10
PUSHBUTTON "Death Liquid",IDC_LAYERCOLLISION_DEATH_LIQUID,0,40,50, PUSHBUTTON "Death Liquid",IDC_LAYERCOLLISION_DEATH_LIQUID,0,60,50,
10 10
PUSHBUTTON "Solid",IDC_LAYERCOLLISION_SOLID,50,5,50,10 PUSHBUTTON "Solid",IDC_LAYERCOLLISION_SOLID,50,5,50,10
PUSHBUTTON "Death Fall",IDC_LAYERCOLLISION_DEATH_FALL,50,40,50,10 PUSHBUTTON "Death Fall",IDC_LAYERCOLLISION_DEATH_FALL,50,60,50,10
PUSHBUTTON "Falling Floor",IDC_LAYERCOLLISION_DESTRUCT_FLOOR,75,55, PUSHBUTTON "Falling Floor",IDC_LAYERCOLLISION_DESTRUCT_FLOOR,75,74,
75,10 75,10
PUSHBUTTON "Move Left",IDC_LAYERCOLLISION_MOVE_LEFT,0,15,50,10 PUSHBUTTON "Move Left",IDC_LAYERCOLLISION_MOVE_LEFT,0,15,50,10
PUSHBUTTON "Move Right",IDC_LAYERCOLLISION_MOVE_RIGHT,50,15,50,10 PUSHBUTTON "Move Right",IDC_LAYERCOLLISION_MOVE_RIGHT,50,15,50,10
PUSHBUTTON "Death Instant",IDC_LAYERCOLLISION_DEATH_INSTANT,100,40, PUSHBUTTON "Death Instant",IDC_LAYERCOLLISION_DEATH_INSTANT,100,60,
50,10 50,10
PUSHBUTTON "Soak Up",IDC_LAYERCOLLISION_SOAK_UP,100,15,50,10 PUSHBUTTON "Soak Up",IDC_LAYERCOLLISION_SOAK_UP,100,15,50,10
PUSHBUTTON "SB No Move",IDC_LAYERCOLLISION_SB_NOMOVE,0,25,50,10
END END
IDD_ELEMLIST DIALOG DISCARDABLE 0, 0, 156, 26 IDD_ELEMLIST DIALOG DISCARDABLE 0, 0, 156, 26
@ -946,7 +947,7 @@ BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
RIGHTMARGIN, 149 RIGHTMARGIN, 149
TOPMARGIN, 7 TOPMARGIN, 7
BOTTOMMARGIN, 64 BOTTOMMARGIN, 99
END END
IDD_ELEMLIST, DIALOG IDD_ELEMLIST, DIALOG

View file

@ -103,6 +103,7 @@
#define IDC_LAYERCOLLISION_SOAK_UP 1093 #define IDC_LAYERCOLLISION_SOAK_UP 1093
#define IDC_ACTOR_PLAYER 1094 #define IDC_ACTOR_PLAYER 1094
#define IDC_LAYERSHADE_GFXR1 1094 #define IDC_LAYERSHADE_GFXR1 1094
#define IDC_LAYERCOLLISION_SB_NOMOVE 1094
#define IDC_LAYERSHADE_GFXG1 1095 #define IDC_LAYERSHADE_GFXG1 1095
#define IDC_LAYERSHADE_GFXB1 1096 #define IDC_LAYERSHADE_GFXB1 1096
#define IDC_ACTOR_TURNRATE_TEXT 1097 #define IDC_ACTOR_TURNRATE_TEXT 1097

View file

@ -200,7 +200,7 @@ int i,ListSize=ModelList.size();
for (i=0; i<ListSize; i++) for (i=0; i<ListSize; i++)
{ {
sMkLevelModel &ThisModel=ModelList[i]; sMkLevelModel &ThisModel=ModelList[i];
ThisModel.ElemID=Create3dElem(ThisModel.TriCount,ThisModel.TriStart,false); // always all models as global for the moment ThisModel.ElemID=Create3dElem(ThisModel.TriCount,ThisModel.TriStart,false,false); // always all models as global for the moment
} }
} }
@ -586,7 +586,7 @@ sExpTile &SrcTile=InTileList[Tile];
int ElemID; int ElemID;
if (SrcTile.TriCount) if (SrcTile.TriCount)
{ {
ElemID=Create3dElem(SrcTile.TriCount,SrcTile.TriStart,LocalGeom); ElemID=Create3dElem(SrcTile.TriCount,SrcTile.TriStart,LocalGeom,true);
} }
else else
{ {
@ -597,7 +597,7 @@ int ElemID;
} }
//*************************************************************************** //***************************************************************************
int CMkLevel::Create3dElem(int TriCount,int TriStart,bool Local) int CMkLevel::Create3dElem(int TriCount,int TriStart,bool Local,bool IsTile)
{ {
CFace F; CFace F;
int i,ListSize; int i,ListSize;
@ -642,7 +642,14 @@ CFaceStore &FaceList=ThisElem.FaceStore;
for (int p=0; p<3; p++) for (int p=0; p<3; p++)
{ {
F.vtx[p]=ThisTri.vtx[p]; // F.vtx[p]=ThisTri.vtx[p];
F.vtx[p].x=+ThisTri.vtx[p].x;
F.vtx[p].y=-ThisTri.vtx[p].y;
F.vtx[p].z=+ThisTri.vtx[p].z;
if (IsTile)
{
F.vtx[p].y+=0.5f;
}
F.uvs[p].u=ThisTri.uv[p][0]; F.uvs[p].u=ThisTri.uv[p][0];
F.uvs[p].v=ThisTri.uv[p][1]; F.uvs[p].v=ThisTri.uv[p][1];
} }
@ -675,7 +682,11 @@ CFaceStore &FaceList=ThisElem.FaceStore;
for (int p=0; p<3; p++) for (int p=0; p<3; p++)
{ {
F.vtx[p]=ThisTri.vtx[p]; // F.vtx[p]=ThisTri.vtx[p];
F.vtx[p].x=+ThisTri.vtx[p].x;
F.vtx[p].y=-ThisTri.vtx[p].y;
F.vtx[p].z=+ThisTri.vtx[p].z;
F.vtx[p].y+=0.5f; // Adjust for tile offset (2dElems Always Tile)
F.uvs[p].u=ThisTri.uv[p][0]; F.uvs[p].u=ThisTri.uv[p][0];
F.uvs[p].v=ThisTri.uv[p][1]; F.uvs[p].v=ThisTri.uv[p][1];
} }
@ -1053,7 +1064,8 @@ int Pos=ftell(File);
sVtx Out; sVtx Out;
Out.vx=+In.vx; Out.vx=+In.vx;
Out.vy=-In.vy+(Scale/2); // Offset it so the origin is centre centre // Out.vy=-In.vy;//+(Scale/2); // Offset it so the origin is centre centre
Out.vy=+In.vy;//+(Scale/2); // Offset it so the origin is centre centre
Out.vz=+In.vz; Out.vz=+In.vz;
Min.vx=__min(Min.vx,Out.vx); Min.vx=__min(Min.vx,Out.vx);
Min.vy=__min(Min.vy,Out.vy); Min.vy=__min(Min.vy,Out.vy);

View file

@ -114,7 +114,7 @@ public:
protected: protected:
void BuildModel(CScene &ThisScene,GString &RootPath,int Node); void BuildModel(CScene &ThisScene,GString &RootPath,int Node);
int Create3dElem(int TriCount,int TriStart,bool Local); int Create3dElem(int TriCount,int TriStart,bool Local,bool IsTile);
int Create2dElem(int Tile,bool Local); int Create2dElem(int Tile,bool Local);
CMkLevelLayer *FindLayer(int Type,int SubType); CMkLevelLayer *FindLayer(int Type,int SubType);

View file

@ -37,7 +37,7 @@ void CFXBubble::think(int _frames)
{ {
if (renderFrame!=FRM__BUBBLEPOP) if (renderFrame!=FRM__BUBBLEPOP)
{ {
CSoundMediator::playSfx(CSoundMediator::SFX_BALLOON_POP,false); // CSoundMediator::playSfx(CSoundMediator::SFX_BALLOON_POP,false);
renderFrame=FRM__BUBBLEPOP; renderFrame=FRM__BUBBLEPOP;
} }
else else

View file

@ -25,7 +25,7 @@ void CFXThwack::init(DVECTOR const &_Pos)
Angle=getRnd()&4095; Angle=getRnd()&4095;
Scale=2048+1024+(getRnd()&2047); Scale=2048+1024+(getRnd()&2047);
Flags |=FX_FLAG_HAS_LIFE; Flags |=FX_FLAG_HAS_LIFE;
CSoundMediator::playSfx(CSoundMediator::SFX_KAPOW_V1,false); // CSoundMediator::playSfx(CSoundMediator::SFX_KAPOW_V1,false);
} }
/*****************************************************************************/ /*****************************************************************************/

View file

@ -796,7 +796,7 @@ void CModelGfx::SetModel(int Type)
/*****************************************************************************/ /*****************************************************************************/
static const int MXO=0; static const int MXO=0;
static const int MYO=-8; static const int MYO=-8*0;
void CModelGfx::Render(DVECTOR &Pos,SVECTOR *Angle,VECTOR *Scale) void CModelGfx::Render(DVECTOR &Pos,SVECTOR *Angle,VECTOR *Scale)
{ {
#define BLOCK_MULT 16 #define BLOCK_MULT 16

Binary file not shown.