This commit is contained in:
Daveo 2000-12-04 16:47:34 +00:00
parent 4813d8262e
commit 2a24119501
20 changed files with 273 additions and 179 deletions

View File

@ -64,7 +64,7 @@ LIB32=link.exe -lib
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\GinLib" /I "..\glib\include" /I "..\glib\include\pc" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\GinLib" /I "..\glib\include" /I "..\glib\include\pc" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe

View File

@ -4,7 +4,8 @@
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
@ -77,11 +78,15 @@ int Width,Height;
Layer.push_back(new CLayerTile( CLayerTile::Action, Width, Height, 1.0f, TRUE, TRUE));
if (Dlg.m_Fore) Layer.push_back(new CLayerTile( CLayerTile::Fore, Width, Height, 0.5f, FALSE, TRUE));
Vector3 CamOfs;
CamOfs.Zero();
CamOfs.x=-15;
ActiveLayer=FindActionLayer();
MapCam=Vec(0,0,0);
MapCamOfs=Vec(-15,10,0);
TileCam=Vec(0,0,0);
TileCamOfs=Vec(-15,10,0);
MapCam.Zero();
MapCamOfs=CamOfs;
TileCam.Zero();
TileCamOfs=CamOfs;
TileViewFlag=FALSE;
GridFlag=TRUE;
Is3dFlag=TRUE;
@ -100,10 +105,10 @@ float Version;
if (Version>=1.0)
{
File->Read(&MapCam,sizeof(Vec));
File->Read(&MapCamOfs,sizeof(Vec));
File->Read(&TileCam,sizeof(Vec));
File->Read(&TileCamOfs,sizeof(Vec));
File->Read(&MapCam,sizeof(Vector3));
File->Read(&MapCamOfs,sizeof(Vector3));
File->Read(&TileCam,sizeof(Vector3));
File->Read(&TileCamOfs,sizeof(Vector3));
File->Read(&TileViewFlag,sizeof(BOOL));
File->Read(&GridFlag,sizeof(BOOL));
@ -153,10 +158,10 @@ void CCore::Save(CFile *File)
// Version 1
File->Write(&FileVersion,sizeof(float));
File->Write(&MapCam,sizeof(Vec));
File->Write(&MapCamOfs,sizeof(Vec));
File->Write(&TileCam,sizeof(Vec));
File->Write(&TileCamOfs,sizeof(Vec));
File->Write(&MapCam,sizeof(Vector3));
File->Write(&MapCamOfs,sizeof(Vector3));
File->Write(&TileCam,sizeof(Vector3));
File->Write(&TileCamOfs,sizeof(Vector3));
File->Write(&TileViewFlag,sizeof(BOOL));
File->Write(&GridFlag,sizeof(BOOL));
@ -200,7 +205,7 @@ void CCore::Render(CMapEditView *View,BOOL ForceRender)
/*****************************************************************************/
void CCore::RenderLayers(CMapEditView *View)
{
Vec &ThisCam=GetCam();
Vector3 &ThisCam=GetCam();
int ListSize=Layer.size();
for (int i=0;i<ListSize;i++)
@ -222,7 +227,7 @@ int ListSize=Layer.size();
/////////////////////////////////////////////////////////////////////////////
void CCore::RenderTileView(CMapEditView *View)
{
Vec &ThisCam=GetCam();
Vector3 &ThisCam=GetCam();
TileBank.RenderSet(this,ThisCam,Is3dFlag);
@ -299,19 +304,23 @@ BOOL RedrawFlag=FALSE;
/*****************************************************************************/
void CCore::MouseWheel(CMapEditView *View,UINT nFlags, short zDelta, CPoint &pt)
{
Vector3 Ofs;
Ofs.Zero();
if (zDelta>0)
UpdateView(View,Vec(0,0,1.0f));
Ofs.z=+1.0f;
else
UpdateView(View,Vec(0,0,-1.0f));
Ofs.z=-1.0f;
UpdateView(View,Ofs);
}
/*****************************************************************************/
void CCore::MouseMove(CMapEditView *View,UINT nFlags, CPoint &point)
{
Vec Ofs(0,0,0);
Vec &ThisCam=GetCam();
Vector3 Ofs;
Vector3 &ThisCam=GetCam();
// check if active doc
Ofs.Zero();
if (theApp.GetCurrent()!=View->GetDocument()) return;
CurrentMousePos=point;
@ -336,7 +345,7 @@ Vec &ThisCam=GetCam();
Ofs.y*=YS;
/* if (nFlags & MK_CONTROL)
{ // Move Ofs
Vec &CamOfs=GetCamOfs();
Vector3 &CamOfs=GetCamOfs();
Ofs.y=-Ofs.y;
CamOfs+=Ofs;
UpdateView(View);
@ -528,7 +537,7 @@ BOOL CCore::IsTileValid(int Set,int Tile)
/*****************************************************************************/
/*** Misc ********************************************************************/
/*****************************************************************************/
Vec &CCore::GetCam()
Vector3 &CCore::GetCam()
{
if (TileViewFlag)
return(TileCam);
@ -538,7 +547,7 @@ Vec &CCore::GetCam()
}
/*****************************************************************************/
Vec &CCore::GetCamOfs()
Vector3 &CCore::GetCamOfs()
{
if (TileViewFlag)
return(TileCamOfs);
@ -565,16 +574,22 @@ void CCore::UpdateAll(CMapEditView *View)
}
/*****************************************************************************/
void CCore::UpdateView(CMapEditView *View,Vec Ofs)
void CCore::UpdateView(CMapEditView *View)
{
Vec &ThisCam=GetCam();
Ofs.y=-Ofs.y;
ThisCam+=Ofs;
if (ThisCam.z>-1) ThisCam.z=-1;
if (View) View->Invalidate();
}
/*****************************************************************************/
void CCore::UpdateView(CMapEditView *View,Vector3 &Ofs)
{
Vector3 &ThisCam=GetCam();
ThisCam.x+=Ofs.x;
ThisCam.y-=Ofs.y;
ThisCam.z+=Ofs.z;
if (ThisCam.z>-1) ThisCam.z=-1;
UpdateView(View);
}
/*****************************************************************************/
void CCore::SetMapSize(CMapEditView *View,int Width,int Height)
@ -623,9 +638,9 @@ int Idx=FindLayer(LAYER_TYPE_TILE,CLayerTile::Action);
/*****************************************************************************/
Vec CCore::OffsetCam(Vec &Cam,float DivVal)
Vector3 CCore::OffsetCam(Vector3 &Cam,float DivVal)
{
Vec ThisCam;
Vector3 ThisCam;
ThisCam=Cam/DivVal;
ThisCam.z=Cam.z;
@ -673,4 +688,14 @@ CExportPSX Exp(ExportName);
Exp.ExportTiles(this);
Exp.ExportTexList(this);
}
}
/*****************************************************************************/
GString CCore::GetCurrentPath()
{
GFName FullPath=theApp.GetCurrent()->GetPathName();
GString Path=FullPath.Dir();
return(Path);
}

View File

@ -6,14 +6,15 @@
#define __CORE_HEADER__
#include <Vector>
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include "Layer.h"
//#include "LayerTile.h"
#include "TexCache.h"
#include "TileSet.h"
const float FileVersion=1.0f;
const float FileVersion=1.01f;
/*****************************************************************************/
@ -78,11 +79,12 @@ public:
// Misc
void UpdateGUI(CMapEditView *View);
void UpdateAll(CMapEditView *View);
void UpdateView(CMapEditView *View,Vec Ofs=Vec(0,0,0));
void UpdateView(CMapEditView *View);
void UpdateView(CMapEditView *View,Vector3 &Ofs);
Vec &GetCam();
Vec &GetCamOfs();
Vec OffsetCam(Vec &Cam,float DivVal);
Vector3 &GetCam();
Vector3 &GetCamOfs();
Vector3 OffsetCam(Vector3 &Cam,float DivVal);
void SetCursorPos(CPoint &Pos) {CursorPos=Pos;}
CPoint &GetCursorPos() {return(CursorPos);}
@ -93,12 +95,13 @@ public:
void Toggle2d3d(CMapEditView *View);
int FindLayer(int Type,int SubType=-1);
int FindActionLayer();
GString GetCurrentPath();
private:
CPoint CurrentMousePos,LastMousePos;
CPoint CursorPos,LastCursorPos;
Vec MapCam,TileCam;
Vec MapCamOfs,TileCamOfs;
Vector3 MapCam,TileCam;
Vector3 MapCamOfs,TileCamOfs;
std::vector<CLayer*> Layer;
int ActiveLayer;

View File

@ -10,7 +10,7 @@
#include "mapedit.h"
#include "Quantize.h"
#include "list.h"
#include <list.h>
/*****************************************************************************/

View File

@ -4,7 +4,8 @@
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>

View File

@ -6,7 +6,8 @@
#define __LAYER_HEADER__
#include <Vector>
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include "Map.h"
/*****************************************************************************/
@ -46,11 +47,11 @@ virtual int GetSubType() {return(-1);}
virtual float GetScaleFactor() {return(ScaleFactor);}
virtual void Render(CCore *Core,Vec &CamPos,BOOL Is3d)=0;
virtual void RenderGrid(CCore *Core,Vec &CamPos,BOOL Active)=0;
virtual void Render(CCore *Core,Vector3 &CamPos,BOOL Is3d)=0;
virtual void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active)=0;
virtual void FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos)=0;
virtual void RenderCursor(CCore *Core,Vec &CamPos,BOOL Is3d)=0;
virtual void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)=0;
virtual void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d)=0;
virtual void InitGUI(CCore *Core)=0;
virtual void UpdateGUI(CCore *Core)=0;

View File

@ -4,7 +4,8 @@
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
@ -137,9 +138,9 @@ int ThisHeight=Map.GetHeight();
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
void CLayerTile::Render(CCore *Core,Vec &CamPos,BOOL Is3d)
void CLayerTile::Render(CCore *Core,Vector3 &CamPos,BOOL Is3d)
{
Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
Vector3 ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
if (Is3d && Render3dFlag)
{
@ -154,11 +155,10 @@ Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
}
/*****************************************************************************/
void CLayerTile::RenderCursorPaint(CCore *Core,Vec &CamPos,BOOL Is3d)
void CLayerTile::RenderCursorPaint(CCore *Core,Vector3 &CamPos,BOOL Is3d)
{
CTileBank &TileBank=Core->GetTileBank();
//Vec ThisCam=CamPos;
Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
Vector3 ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
CPoint &CursPos=Core->GetCursorPos();
CMap &Brush=TileBank.GetActiveBrush();
@ -181,7 +181,7 @@ CMap &Brush=TileBank.GetActiveBrush();
}
/*****************************************************************************/
void CLayerTile::Render(CCore *Core,Vec &CamPos,CMap &ThisMap,BOOL Render3d,float Alpha)
void CLayerTile::Render(CCore *Core,Vector3 &CamPos,CMap &ThisMap,BOOL Render3d,float Alpha)
{
int Width=ThisMap.GetWidth();
int Height=ThisMap.GetHeight();
@ -216,11 +216,11 @@ int Height=ThisMap.GetHeight();
}
/*****************************************************************************/
void CLayerTile::RenderGrid(CCore *Core,Vec &CamPos,BOOL Active)
void CLayerTile::RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active)
{
int Width=Map.GetWidth();
int Height=Map.GetHeight();
Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
Vector3 ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
float OverVal=0.5;
glMatrixMode(GL_MODELVIEW);
@ -249,7 +249,7 @@ float OverVal=0.5;
}
/*****************************************************************************/
void CLayerTile::FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos)
void CLayerTile::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)
{
GLint Viewport[4];
GLuint SelectBuffer[SELECT_BUFFER_SIZE];
@ -259,7 +259,7 @@ CPoint &CursorPos=Core->GetCursorPos();
int Width=Map.GetWidth();
int Height=Map.GetHeight();
Vec ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
Vector3 ThisCam=Core->OffsetCam(CamPos,GetScaleFactor());
glGetIntegerv(GL_VIEWPORT, Viewport);
glSelectBuffer (SELECT_BUFFER_SIZE, SelectBuffer );
@ -452,7 +452,7 @@ CTileBank &TileBank=Core->GetTileBank();
}
/*****************************************************************************/
void CLayerTile::RenderCursor(CCore *Core,Vec &CamPos,BOOL Is3d)
void CLayerTile::RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d)
{
switch(Mode)
{

View File

@ -48,11 +48,11 @@ public:
int GetSubType() {return(SubType);}
char *GetName() {return(LayerName[SubType]);}
void Render(CCore *Core,Vec &CamPos,BOOL Is3d);
void RenderGrid(CCore *Core,Vec &CamPos,BOOL Active);
void Render(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void RenderGrid(CCore *Core,Vector3 &CamPos,BOOL Active);
void FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vec &CamPos,BOOL Is3d);
void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void InitGUI(CCore *Core);
void UpdateGUI(CCore *Core);
@ -80,8 +80,8 @@ public:
BOOL MirrorY(CCore *Core);
protected:
void Render(CCore *Core,Vec &CamPos,CMap &ThisMap,BOOL Render3d,float Alpha=1.0f);
void RenderCursorPaint(CCore *Core,Vec &CamPos,BOOL Is3d);
void Render(CCore *Core,Vector3 &CamPos,CMap &ThisMap,BOOL Render3d,float Alpha=1.0f);
void RenderCursorPaint(CCore *Core,Vector3 &CamPos,BOOL Is3d);
BOOL Paint(CMap &Blk,CPoint &CursorPos);

View File

@ -4,7 +4,8 @@
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>

View File

@ -18,24 +18,24 @@ Class6=CMapEditDoc
Class7=CMapEditView
ResourceCount=11
Resource1=IDD_MAPSIZE
Resource2=IDD_LAYERTILE_GUI
Resource3=IDR_TOOLBAR (English (U.S.))
Resource1=IDD_MULTIBAR (English (U.S.))
Resource2=IDD_NEWMAP
Resource3=IDD_LAYERTILE_GUI
Resource4=IDD_DIALOGBAR (English (U.S.))
Resource5=IDD_ABOUTBOX (English (U.S.))
Resource5=IDD_NEW_LAYER
Class8=CMultiBar
Resource6=IDD_LAYER_LIST_DIALOG
Resource6=IDR_MAINFRAME (English (U.S.))
Resource7=IDR_MAPEDITYPE (English (U.S.))
Class9=CLayerList
Class10=CMapSizeDlg
Resource8=IDR_MAINFRAME (English (U.S.))
Resource8=IDD_MAPSIZE
Class11=CGfxToolBar
Class12=CLayerTileGUI
Resource9=IDD_NEW_LAYER
Resource10=IDD_MULTIBAR (English (U.S.))
Resource9=IDD_LAYER_LIST_DIALOG
Resource10=IDR_TOOLBAR (English (U.S.))
Class13=CNewMapGUI
Class14=CProgressDlg
Resource11=IDD_NEWMAP
Resource11=IDD_ABOUTBOX (English (U.S.))
[CLS:CChildFrame]
Type=0

View File

@ -69,7 +69,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\GinLib" /I "..\glibdev\glib\include" /I "..\glibdev\glib\include\pc" /I "..\ginlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "..\libs\glib" /I "..\libs\maths" /I "..\libs\davelib" /I "..\libs\ginlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG" /d "_AFXDLL"
@ -79,7 +79,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 opengl32.lib glu32.lib win32lib.lib ginlib.lib glaux.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\ginlib\debug\\" /libpath:"..\GlibDev\glib\LIB\win32lib\debug\\"
# ADD LINK32 opengl32.lib glu32.lib glib.lib ginlib.lib glaux.lib maths.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\libs\ginlib\debug\\" /libpath:"..\libs\glib\debug\\" /libpath:"..\libs\maths\debug\\"
!ENDIF

View File

@ -3,14 +3,22 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
###############################################################################
Project: "GinLib"=..\GinLib\ginlib.dsp - Package Owner=<4>
Project: "GLib"=..\Libs\GLib\Glib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "GinLib"=..\Libs\GinLib\ginlib.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Utils/GinLib", RICAAAAA
..\ginlib
end source code control
}}}
Package=<4>
@ -30,11 +38,77 @@ Package=<4>
Begin Project Dependency
Project_Dep_Name GinLib
End Project Dependency
Begin Project Dependency
Project_Dep_Name GLib
End Project Dependency
Begin Project Dependency
Project_Dep_Name maths
End Project Dependency
}}}
###############################################################################
Project: "TexGrab"=..\TexGrab\texgrab.dsp - Package Owner=<4>
Project: "MkLevel"=..\MkLevel\MkLevel.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name GinLib
End Project Dependency
Begin Project Dependency
Project_Dep_Name GLib
End Project Dependency
Begin Project Dependency
Project_Dep_Name PsxLib
End Project Dependency
Begin Project Dependency
Project_Dep_Name TexGrab
End Project Dependency
}}}
###############################################################################
Project: "PsxLib"=..\LIBS\PsxLib\PsxLib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "TexGrab"=..\Libs\TexGrab\TexGrab.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "maths"=..\Libs\Maths\maths.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "mem"=..\Libs\mem\mem.dsp - Package Owner=<4>
Package=<5>
{{{

View File

@ -186,15 +186,15 @@ END
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 145, 46
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About MapEdit"
FONT 8, "MS Sans Serif"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,5,5,21,20
LTEXT "MapEdit\n\nBy Dave 2000",IDC_STATIC,40,10,119,40,
ICON IDR_MAINFRAME,IDC_STATIC,5,5,20,20
LTEXT "MapEdit\nBy Dave 2000",IDC_STATIC,40,10,50,20,
SS_NOPREFIX
DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
DEFPUSHBUTTON "OK",IDOK,95,5,50,14,WS_GROUP
END
IDD_MULTIBAR DIALOGEX 0, 0, 156, 71
@ -262,9 +262,9 @@ BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
RIGHTMARGIN, 138
TOPMARGIN, 7
BOTTOMMARGIN, 48
BOTTOMMARGIN, 39
END
IDD_MULTIBAR, DIALOG

View File

@ -3,7 +3,7 @@
/*********************/
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>

View File

@ -6,7 +6,8 @@
#define __TEXCACHE_HEADER__
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
//#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>

View File

@ -3,12 +3,14 @@
/*********************/
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
#include "GLEnabledView.h"
#include <Vector>
#include <GFName.hpp>
#include "Core.h"
#include "TileSet.h"
@ -55,6 +57,9 @@ CTileBank::~CTileBank()
void CTileBank::Load(CFile *File,float Version)
{
int ListSize;
GFName RootPath=File->GetFilePath();
GString FilePath=RootPath.Dir();
FilePath.Append('\\');
File->Read(&ListSize,sizeof(int));
File->Read(&CurrentSet,sizeof(int));
@ -62,21 +67,40 @@ int ListSize;
Brush[0].Load(File,Version);
Brush[1].Load(File,Version);
for (int i=0;i<ListSize;i++)
if (Version<=1.00)
{
char Filename[256+64];
for (int i=0;i<ListSize;i++)
{
char Filename[256+64];
File->Read(Filename,256+64);
AddTileSet(Filename);
File->Read(Filename,256+64);
AddTileSet(Filename);
}
}
else
{ // New Style rel storage
for (int i=0;i<ListSize;i++)
{
char c=1,RelName[256+64],FullName[256+64];
int Len=0;
while (c)
{
File->Read(&c,1);
RelName[Len++]=c;
}
RootPath.makeabsolute(FilePath,RelName,FullName);
AddTileSet(FullName);
}
}
}
/*****************************************************************************/
void CTileBank::Save(CFile *File)
{
int ListSize=TileSet.size();
GFName RootPath=File->GetFilePath();
GString FilePath=RootPath.Dir();
FilePath.Append('\\');
File->Write(&ListSize,sizeof(int));
File->Write(&CurrentSet,sizeof(int));
@ -89,8 +113,11 @@ int ListSize=TileSet.size();
CTileSet &ThisSet=TileSet[i];
char Filename[256+64];
sprintf(Filename,"%s%s%s",ThisSet.GetPath(),ThisSet.GetName(),ThisSet.GetExt());
File->Write(Filename,256+64);
RootPath.makerelative(FilePath,ThisSet.GetFilename(),Filename);
// sprintf(Filename,"%s",ThisSet.GetFilename());
// File->Write(Filename,256+64);
File->Write(Filename,strlen(Filename)+1);
}
}
@ -117,7 +144,7 @@ CTileSet FindSet(Filename,ListSize);
{
CTileSet &ThisSet=TileSet[i];
if (IsStrSame(FindSet.GetName(),ThisSet.GetName(),-1)) return(i);
if (IsStrSame((char*)FindSet.GetName(),(char*)ThisSet.GetName(),-1)) return(i);
}
return(-1);
}
@ -164,7 +191,7 @@ CTile &CTileBank::GetTile(int Bank,int Tile)
}
/*****************************************************************************/
void CTileBank::RenderSet(CCore *Core,Vec &CamPos,BOOL Is3d)
void CTileBank::RenderSet(CCore *Core,Vector3 &CamPos,BOOL Is3d)
{
if (!TileSet.size()) return; // No tiles, return
@ -184,7 +211,7 @@ void CTileBank::RenderSet(CCore *Core,Vec &CamPos,BOOL Is3d)
}
/*****************************************************************************/
void CTileBank::FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos)
void CTileBank::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)
{
if (!TileSet.size()) return; // No tiles, return
@ -318,7 +345,7 @@ BOOL CTileBank::IsTileValidGB(int Set,int Tile)
/*****************************************************************************/
CTileSet::CTileSet(char *_Filename,int Idx)
{
_splitpath(_Filename,Drive,Path,Name,Ext);
Filename=_Filename;
Loaded=FALSE;
SetNumber=Idx;
@ -336,8 +363,10 @@ CTileSet::~CTileSet()
/*****************************************************************************/
void CTileSet::Load(CCore *Core)
{
GString Ext=Filename.Ext();
Ext.Upper();
if (IsStrSame(Ext,".Gin"))
if (Ext=="GIN")
{
Load3d(Core);
}
@ -353,18 +382,15 @@ void CTileSet::Load(CCore *Core)
void CTileSet::Load2d(CCore *Core)
{
char Filename[_MAX_PATH];
CTexCache &TexCache=Core->GetTexCache();
_makepath( Filename, Drive, Path, Name, Ext);
int TexID=TexCache.ProcessTexture(Filename,0);
int TexID=TexCache.ProcessTexture((char*)Filename.FullName(),0);
sTex &ThisTex=TexCache.GetTex(TexID);
int Width=ThisTex.TexWidth/16;
int Height=ThisTex.TexHeight/16;
TRACE3("Load 2d TileBank %s (%i,%i)\n",Filename,Width,Height);
TRACE3("Load 2d TileBank %s (%i,%i)\n",Filename.FullName(),Width,Height);
Tile.push_back(CTile(0)); // Insert Blank
@ -405,11 +431,9 @@ BOOL Data=FALSE;
/*****************************************************************************/
void CTileSet::Load3d(CCore *Core)
{
char Filename[_MAX_PATH];
CScene Scene;
_makepath( Filename, Drive, Path, Name, Ext);
Scene.Load(Filename);
Scene.Load(Filename.FullName());
CNode &ThisNode=Scene.GetSceneNode(0);
int ChildCount=ThisNode.GetPruneChildCount();
@ -462,7 +486,7 @@ BOOL CTileSet::IsTileValidGB(int No)
}
/*****************************************************************************/
void CTileSet::Render(Vec &CamPos,CMap &LBrush,CMap &RBrush,BOOL Render3d)
void CTileSet::Render(Vector3 &CamPos,CMap &LBrush,CMap &RBrush,BOOL Render3d)
{
int ListSize=Tile.size();
int TileID=0;
@ -563,7 +587,7 @@ BOOL ValidTile=TRUE;
}
/*****************************************************************************/
void CTileSet::RenderCursor(Vec &CamPos,int CursorPos,int SelStart,int SelEnd)
void CTileSet::RenderCursor(Vector3 &CamPos,int CursorPos,int SelStart,int SelEnd)
{
int ListSize=Tile.size();
CPoint Start,End;
@ -606,7 +630,7 @@ int MaxTile=Tile.size();
}
/*****************************************************************************/
void CTileSet::RenderGrid(Vec &CamPos)
void CTileSet::RenderGrid(Vector3 &CamPos)
{
int ListSize=Tile.size();
int TileID=1; // Dont bother with blank, its sorted
@ -642,7 +666,7 @@ int TileID=1; // Dont bother with blank, its sorted
}
/*****************************************************************************/
int CTileSet::FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos)
int CTileSet::FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos)
{
int ListSize=Tile.size();
GLint Viewport[4];

View File

@ -6,11 +6,13 @@
#define __TILESET_HEADER__
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
#include <Vector>
#include <gfname.hpp>
#include "TexCache.h"
#include "Tile.h"
@ -55,9 +57,9 @@ public:
CMap &GetBrush(int i) {return(Brush[i]);}
CMap &GetActiveBrush() {return(GetBrush(ActiveBrush));}
void RenderSet(CCore *Core,Vec &CamPos,BOOL Is3d);
void FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vec &CamPos,BOOL Is3d);
void RenderSet(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos);
void RenderCursor(CCore *Core,Vector3 &CamPos,BOOL Is3d);
void UpdateGUI(CCore *Core,BOOL IsTileView);
@ -104,17 +106,18 @@ public:
void Load2d(CCore *Core);
void Load3d(CCore *Core);
char *GetPath() {return(Path);}
char *GetName() {return(Name);}
char *GetExt() {return(Ext);}
const char *GetPath() {return(Filename.Dir());}
const char *GetName() {return(Filename.File());}
const char *GetExt() {return(Filename.Ext());}
const char *GetFilename() {return(Filename.FullName());}
CTile &GetTile(int No) {return(Tile[No]);}
void Purge();
int FindCursorPos(CCore *Core,CMapEditView *View,Vec &CamPos,CPoint &MousePos);
void Render(Vec &CamPos,CMap &LBrush,CMap &RBrush,BOOL Render3d);
void RenderCursor(Vec &CamPos,int Pos,int Width, int Height);
void RenderBrush(Vec &CamPos,CMap &LBrush,CMap &RBrush);
void RenderGrid(Vec &CamPos);
int FindCursorPos(CCore *Core,CMapEditView *View,Vector3 &CamPos,CPoint &MousePos);
void Render(Vector3 &CamPos,CMap &LBrush,CMap &RBrush,BOOL Render3d);
void RenderCursor(Vector3 &CamPos,int Pos,int Width, int Height);
void RenderBrush(Vector3 &CamPos,CMap &LBrush,CMap &RBrush);
void RenderGrid(Vector3 &CamPos);
int GetTileBrowserWidth() {return(TileBrowserWidth);}
BOOL IsTileValid(int No);
BOOL IsTileValidGB(int No);
@ -124,9 +127,8 @@ private:
BOOL Create16x16Tile(sRGBData &Src,u8 *Dst,int XOfs,int YOfs);
CPoint GetTilePos(int ID);
char Drive[_MAX_DRIVE],Path[_MAX_DIR],Name[_MAX_FNAME],Ext[_MAX_EXT];
GFName Filename;
int SetNumber;
// std::vector<CTile> Tile;
CList<CTile> Tile;
BOOL Loaded;
int TileBrowserWidth;

View File

@ -41,6 +41,7 @@
#define IDC_NEWMAP_FORE_CHECK 1051
#define IDC_NEW_LAYER_WIDTH_NAME2 1052
#define IDC_NEW_LAYER_WIDTH_EDIT2 1053
#define IDC_RICHEDIT1 1054
#define ID_TOOLBAR_LAYERBAR 32773
#define ID_TOOLBAR_TILEPALETTE 32774
#define ID_TOOLBAR_COMBO 32777
@ -66,7 +67,7 @@
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 172
#define _APS_NEXT_COMMAND_VALUE 32797
#define _APS_NEXT_CONTROL_VALUE 1053
#define _APS_NEXT_CONTROL_VALUE 1055
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@ -4,13 +4,13 @@
#include "stdafx.h"
#include "gl3d.h"
//#include "gl3d.h"
#include <Vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
#include <gl\glaux.h> // Header File For The Glaux Library
#include "GLEnabledView.h"
#include "maths.h"
#include "Utils.H"
@ -110,42 +110,6 @@ void BuildGLQuad(float XMin,float XMax,float YMin,float YMax,float Z)
/**************************************************************************************/
/**************************************************************************************/
/**************************************************************************************/
void TNormalise(TVECTOR &V)
{
float SqMag = V.length2();// v.x * v.x + v.y * v.y + v.z * v.z;
if (SqMag> 0.001f)
{
float Mag = (float)sqrt( SqMag);
V/=Mag;
}
}
/**************************************************************************************/
TVECTOR TCrossProduct(TVECTOR const &V0,TVECTOR const &V1,const TVECTOR &V2 )
{
TVECTOR DV1, DV2;
TVECTOR Out;
DV1.X() = V1.X() - V0.X();
DV1.Y() = V1.Y() - V0.Y();
DV1.Z() = V1.Z() - V0.Z();
DV2.X() = V2.X() - V0.X();
DV2.Y() = V2.Y() - V0.Y();
DV2.Z() = V2.Z() - V0.Z();
Out.SetX( (DV1.Z() * DV2.Y()) - (DV1.Y() * DV2.Z()) );
Out.SetY( (DV1.X() * DV2.Z()) - (DV1.Z() * DV2.X()) );
Out.SetZ( (DV1.Y() * DV2.X()) - (DV1.X() * DV2.Y()) );
TNormalise(Out);
return Out;
}
/**************************************************************************************/
CPoint IDToPoint(int ID,int Width)
{

View File

@ -5,7 +5,7 @@
#ifndef __UTILS_HEADER__
#define __UTILS_HEADER__
#include "maths.h"
#include <vector3.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
@ -40,16 +40,13 @@ void BuildGLBoxNoNormals(float XMin,float XMax,float YMin,float YMax,float ZMin,
void BuildGLQuad(float XMin,float XMax,float YMin,float YMax,float Z);
int LoadGLTexture(char *FileName, GLuint &Text,int &Width,int &Height);
void TNormalise(TVECTOR &V);
TVECTOR TCrossProduct(TVECTOR const &V0,TVECTOR const &V1,const TVECTOR &V2 );
CPoint IDToPoint(int ID,int Width);
int PointToID(CPoint &Pnt,int Width);
void SaveTGA(char *Filename,int W,int H,u8 *Data);
void SaveBmp(char *Filename,int Width,int Height,RGBQUAD *Pal,u8 *Image);
void SaveTGA(char *Filename,int W,int H,u8 *Data);
void SaveBmp(char *Filename,int Width,int Height,RGBQUAD *Pal,u8 *Image);
void BGR2RGB(int W,int H,u8 *Data);
void BGR2RGB(int W,int H,u8 *Data);
void SetFileExt(char *InName,char *OutName,char *Ext);