This commit is contained in:
parent
6be41872bf
commit
5b944146d8
24 changed files with 1107 additions and 219 deletions
|
@ -33,8 +33,6 @@
|
|||
|
||||
#include <IniClass.h>
|
||||
|
||||
//GString IconzFileName="Iconz.bmp";
|
||||
|
||||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -82,8 +80,10 @@ int Width,Height;
|
|||
|
||||
// Create Tile Layers
|
||||
AddLayer(LAYER_TYPE_TILE,LAYER_SUBTYPE_ACTION, Width, Height);
|
||||
#ifdef _DEBUG
|
||||
AddLayer(LAYER_TYPE_ACTOR,LAYER_SUBTYPE_NONE, Width, Height);
|
||||
|
||||
AddLayer(LAYER_TYPE_ITEM,LAYER_SUBTYPE_NONE, Width, Height);
|
||||
#endif
|
||||
for (int i=0; i<Layer.size(); i++)
|
||||
{
|
||||
Layer[i]->InitSubView(this);
|
||||
|
@ -91,6 +91,9 @@ int Width,Height;
|
|||
|
||||
|
||||
ActiveLayer=FindLayer(LAYER_TYPE_TILE,LAYER_SUBTYPE_ACTION);
|
||||
#ifdef _DEBUG
|
||||
ActiveLayer=FindLayer(LAYER_TYPE_ACTOR,LAYER_SUBTYPE_NONE);
|
||||
#endif
|
||||
CurrentLayer=Layer[ActiveLayer];
|
||||
return(TRUE);
|
||||
}
|
||||
|
@ -252,7 +255,7 @@ CLayer *ThisLayer;
|
|||
ThisLayer->Render(this,ThisCam,Is3dFlag);
|
||||
if (GridFlag) ThisLayer->RenderGrid(this,ThisCam,i==ActiveLayer);
|
||||
}
|
||||
if (i!=EndLayer) ThisLayer=Layer[i+1];
|
||||
if (i<EndLayer-1) ThisLayer=Layer[i+1];
|
||||
|
||||
}
|
||||
CurrentLayer->RenderCursor(this,ThisCam,Is3dFlag);
|
||||
|
@ -678,21 +681,6 @@ Vector3 &ThisCam=GetCam();
|
|||
ThisCam=DefaultCamPos;
|
||||
UpdateView();
|
||||
}
|
||||
/*****************************************************************************/
|
||||
void CCore::GetExecPath(GString &Path)
|
||||
{
|
||||
#ifndef _DEBUG
|
||||
// Get application path
|
||||
char ExeFilename[2048];
|
||||
GFName Exe;
|
||||
GetModuleFileName(GetModuleHandle(NULL),ExeFilename,2048);
|
||||
Exe=ExeFilename;
|
||||
Exe.File(0);
|
||||
Exe.Ext(0);
|
||||
Path=Exe.FullName();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/*** GUI *********************************************************************/
|
||||
|
|
|
@ -116,7 +116,6 @@ public:
|
|||
|
||||
void ResetView();
|
||||
CElemBank *GetIconBank() {return(IconBank);}
|
||||
void GetExecPath(GString &Path);
|
||||
|
||||
private:
|
||||
CMapEditView *CurrentView;
|
||||
|
|
|
@ -64,9 +64,10 @@ CElem::CElem(int Width,int Height)
|
|||
UnitWidth=ElemWidth/UnitSize;
|
||||
UnitHeight=ElemHeight/UnitSize;
|
||||
ElemID=-1;
|
||||
ElemRGB=(u8*)malloc(ElemWidth*ElemHeight*3);
|
||||
memset(ElemRGB,0,ElemWidth*ElemHeight*3);
|
||||
|
||||
int AW=AlignSize(ElemWidth);
|
||||
int AH=AlignSize(ElemHeight);
|
||||
ElemRGB=(u8*)MemAlloc(AW*AH*3);
|
||||
memset(ElemRGB,0,AW*AH*3);
|
||||
Type=ElemType2d;
|
||||
TexXOfs=0;
|
||||
TexYOfs=0;
|
||||
|
@ -138,7 +139,7 @@ GFName Path=Filename;
|
|||
/*****************************************************************************/
|
||||
void CElem::CleanUp()
|
||||
{
|
||||
free(ElemRGB);
|
||||
MemFree(ElemRGB);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -162,8 +163,16 @@ sTriFace &Tri1=TriList[ListSize+1];
|
|||
CTexCache &TexCache=Core->GetTexCache();
|
||||
sTex &ThisTex=TexCache.GetTex(TexID);
|
||||
|
||||
float dU=1.0/((float)ThisTex.TexWidth/(float)ElemWidth);
|
||||
float dV=1.0/((float)ThisTex.TexHeight/(float)ElemHeight);
|
||||
int CountW=ThisTex.OldW/ElemWidth;
|
||||
int CountH=ThisTex.OldH/ElemHeight;
|
||||
float dU=ThisTex.ScaleU/(float)CountW;
|
||||
float dV=ThisTex.ScaleV/(float)CountH;
|
||||
|
||||
dU=(1.0f/CountW);
|
||||
dV=(1.0f/CountH);
|
||||
|
||||
// dU=ThisTex.ScaleU;
|
||||
// dV=ThisTex.ScaleV;
|
||||
|
||||
float u0=(TexXOfs*dU);
|
||||
float u1=u0+dU;
|
||||
|
@ -222,7 +231,7 @@ int ListSize=TriList.size();
|
|||
if (TexID<0 || TexID>=TexCount)
|
||||
{
|
||||
CString mexstr;
|
||||
mexstr.Format("Invalid TexId\n Wanted %i/%i for %s\nThis is gonna hurt!",TexID,TexCount-1,ThisNode.Name);
|
||||
mexstr.Format("Invalid TexId\n Wanted %i only have %i Id's for %s\nThis is gonna hurt!\n Dont ask me about this error, ask Kev.\n This MUST be fixed.",TexID,TexCount-1,ThisNode.Name);
|
||||
AfxMessageBox(mexstr,MB_OK | MB_ICONEXCLAMATION);
|
||||
TexID=0;
|
||||
}
|
||||
|
@ -298,22 +307,27 @@ float X1=Ofs.x+UnitWidth;
|
|||
float Y0=Ofs.y;
|
||||
float Y1=Ofs.y+UnitHeight;
|
||||
float Z=Ofs.z;
|
||||
sTex &Tex=TexCache.GetTex(ElemID);
|
||||
float u0=0;
|
||||
float u1=1.0f;//Tex.ScaleU;
|
||||
float v0=0;
|
||||
float v1=1.0f;//Tex.ScaleU;
|
||||
|
||||
List=glGenLists(1);
|
||||
glNewList(List,GL_COMPILE);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, TexCache.GetTexGLId(ElemID));
|
||||
glBindTexture(GL_TEXTURE_2D, Tex.TexID);
|
||||
glBegin (GL_QUADS);
|
||||
glTexCoord2f(0.0f,0.0f);
|
||||
glTexCoord2f(u0,v0);
|
||||
glVertex3f(X0,Y0,Z);
|
||||
|
||||
glTexCoord2f(1.0f,0.0f);
|
||||
glTexCoord2f(u1,v0);
|
||||
glVertex3f(X1,Y0,Z);
|
||||
|
||||
glTexCoord2f(1.0f,1.0f);
|
||||
glTexCoord2f(u1,v1);
|
||||
glVertex3f(X1,Y1,Z);
|
||||
|
||||
glTexCoord2f(0.0f,1.0f);
|
||||
glTexCoord2f(u0,v1);
|
||||
glVertex3f(X0,Y1,Z);
|
||||
glEnd();
|
||||
glEndList();
|
||||
|
@ -343,17 +357,8 @@ float ScaleU,ScaleV;
|
|||
glBegin (GL_TRIANGLES);
|
||||
LastMat=ThisMat;
|
||||
sTex &Tex=TexCache.GetTex(ThisMat);
|
||||
int AW=TexCache.AlignSize(Tex.TexWidth);
|
||||
int AH=TexCache.AlignSize(Tex.TexHeight);
|
||||
if (AW!=Tex.TexWidth || AH!=Tex.TexHeight)
|
||||
{
|
||||
ScaleU=(float)Tex.TexWidth/(float)AW;
|
||||
ScaleV=(float)Tex.TexHeight/(float)AH;
|
||||
}
|
||||
else
|
||||
{
|
||||
ScaleU=ScaleV=1;
|
||||
}
|
||||
ScaleU=Tex.ScaleU;
|
||||
ScaleV=Tex.ScaleV;
|
||||
}
|
||||
|
||||
for (int p=0; p<3; p++)
|
||||
|
@ -488,7 +493,7 @@ float H=UnitHeight;
|
|||
glClearColor(1,0,1,1 );
|
||||
// glClearColor(1,1,1,1 );
|
||||
glPushAttrib(GL_VIEWPORT_BIT);
|
||||
glViewport(0,0,RGBData.Width,RGBData.Height);
|
||||
glViewport(0,0,RGBData.TexW,RGBData.TexH);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
|
@ -515,7 +520,7 @@ float H=UnitHeight;
|
|||
glPopMatrix();
|
||||
glPopAttrib();
|
||||
|
||||
glReadPixels(0,0,RGBData.Width,RGBData.Height,GL_RGB, GL_UNSIGNED_BYTE,RGBData.RGB);
|
||||
glReadPixels(0,0,RGBData.TexW,RGBData.TexH,GL_RGB, GL_UNSIGNED_BYTE,RGBData.RGB);
|
||||
glClearColor(0,0,0,1 );
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen
|
||||
}
|
||||
|
@ -528,10 +533,14 @@ sRGBData RGBData;
|
|||
char TexName[256];
|
||||
|
||||
sprintf(TexName,"_2dPc_%s_%03d",Filename,ID);
|
||||
ElemRGB=(u8*)malloc(ElemWidth*ElemHeight*3);
|
||||
int AW=AlignSize(ElemWidth);
|
||||
int AH=AlignSize(ElemHeight);
|
||||
ElemRGB=(u8*)MemAlloc(AW*AH*3);
|
||||
|
||||
RGBData.Width=ElemWidth;
|
||||
RGBData.Height=ElemHeight;
|
||||
RGBData.TexW=AlignSize(ElemWidth);
|
||||
RGBData.TexH=AlignSize(ElemHeight);
|
||||
RGBData.ScaleU=1.0f;
|
||||
RGBData.ScaleV=1.0f;
|
||||
RGBData.RGB=ElemRGB;
|
||||
RenderElem4Texture(RGBData);
|
||||
ElemID=TexCache.ProcessTexture(TexName,&RGBData);
|
||||
|
@ -553,16 +562,16 @@ char Filename[256];
|
|||
bool CElem::CheckHasData(sRGBData &RGBData)
|
||||
{
|
||||
u8 *Src=RGBData.RGB;
|
||||
int Size=RGBData.Width*RGBData.Height;
|
||||
int Size=RGBData.TexW*RGBData.TexH;
|
||||
|
||||
for (int i=0; i<Size; i++)
|
||||
while (Size--)
|
||||
{
|
||||
u8 R=*Src++;
|
||||
u8 G=*Src++;
|
||||
u8 B=*Src++;
|
||||
if (R!=255 || G!=0 || B!=255) return(TRUE);
|
||||
|
||||
if (R!=255 || G!=0 || B!=255) return(true);
|
||||
}
|
||||
|
||||
return(false);
|
||||
}
|
||||
|
||||
|
@ -629,12 +638,11 @@ int TexID=TexCache.ProcessTexture(Filename);
|
|||
sTex &ThisTex=TexCache.GetTex(TexID);
|
||||
int Width,Height;
|
||||
|
||||
if (MaxWidth==-1) MaxWidth=ThisTex.TexWidth;
|
||||
if (MaxHeight==-1) MaxHeight=ThisTex.TexHeight;
|
||||
|
||||
Width=ThisTex.TexWidth/MaxWidth;
|
||||
Height=ThisTex.TexHeight/MaxHeight;
|
||||
if (MaxWidth==-1) MaxWidth=ThisTex.OldW;
|
||||
if (MaxHeight==-1) MaxHeight=ThisTex.OldH;
|
||||
|
||||
Width=ThisTex.OldW/MaxWidth;
|
||||
Height=ThisTex.OldH/MaxHeight;
|
||||
|
||||
for (int Y=0; Y<Height; Y++)
|
||||
{
|
||||
|
@ -799,13 +807,14 @@ GString SavePath;
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CElemBank::AddSet(const char *Filename)
|
||||
int CElemBank::AddSet(const char *Filename)
|
||||
{
|
||||
int ListSize=SetList.size();
|
||||
CElemSet NewSet(Filename,ListSize,MaxWidth,MaxHeight,BlankFlag,CentreFlag);
|
||||
|
||||
SetList.Add(NewSet);
|
||||
int Idx=SetList.Add(NewSet);
|
||||
if (SetList.size()!=ListSize) LoadFlag=TRUE;
|
||||
return(Idx);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -135,6 +135,7 @@ private:
|
|||
|
||||
int SetNumber;
|
||||
int MaxWidth,MaxHeight;
|
||||
int BmpW,BmpH;
|
||||
bool CentreFlag;
|
||||
CList<CElem> ElemList;
|
||||
bool Loaded;
|
||||
|
@ -153,7 +154,7 @@ virtual ~CElemBank();
|
|||
virtual void Load(CFile *File,int Version);
|
||||
virtual void Save(CFile *File);
|
||||
|
||||
void AddSet(const char *Filename);
|
||||
int AddSet(const char *Filename);
|
||||
void LoadAllSets(CCore *Core);
|
||||
void LoadNewSet(CCore *Core);
|
||||
void ReloadAllSets();
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
#include "mapedit.h"
|
||||
#include "GUILayerItem.h"
|
||||
|
||||
#include "MapEditDoc.h"
|
||||
#include "MainFrm.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
|
@ -28,16 +31,25 @@ void CGUILayerItem::DoDataExchange(CDataExchange* pDX)
|
|||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CGUILayerItem)
|
||||
// NOTE: the ClassWizard will add DDX and DDV calls here
|
||||
DDX_Control(pDX, IDC_LEVEL_ITEM_LIST, m_LevelList);
|
||||
DDX_Control(pDX, IDC_ITEM_LIST, m_List);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CGUILayerItem, CDialog)
|
||||
//{{AFX_MSG_MAP(CGUILayerItem)
|
||||
// NOTE: the ClassWizard will add message map macros here
|
||||
ON_BN_CLICKED(IDC_ITEM_DELETE, OnItemDelete)
|
||||
ON_CBN_SELCHANGE(IDC_LEVEL_ITEM_LIST, OnSelchangeLevelItemList)
|
||||
ON_CBN_SELCHANGE(IDC_ITEM_LIST, OnSelchangeItemList)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CGUILayerItem message handlers
|
||||
|
||||
|
||||
void CGUILayerItem::OnSelchangeItemList() {theApp.GetCurrent()->Command(CmdMsg_ThingListSelect,m_List.GetCurSel());}
|
||||
void CGUILayerItem::OnSelchangeLevelItemList() {theApp.GetCurrent()->Command(CmdMsg_ThingLevelSelect,m_LevelList.GetCurSel());}
|
||||
void CGUILayerItem::OnItemDelete() {theApp.GetCurrent()->Command(CmdMsg_ThingListDelete,m_List.GetCurSel());}
|
||||
|
||||
|
|
|
@ -19,7 +19,8 @@ public:
|
|||
// Dialog Data
|
||||
//{{AFX_DATA(CGUILayerItem)
|
||||
enum { IDD = IDD_LAYER_ITEM };
|
||||
// NOTE: the ClassWizard will add data members here
|
||||
CComboBox m_LevelList;
|
||||
CComboBox m_List;
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
|
@ -35,7 +36,9 @@ protected:
|
|||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CGUILayerItem)
|
||||
// NOTE: the ClassWizard will add member functions here
|
||||
afx_msg void OnItemDelete();
|
||||
afx_msg void OnSelchangeLevelItemList();
|
||||
afx_msg void OnSelchangeItemList();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
|
|
@ -45,7 +45,7 @@ GString Filename;
|
|||
TileBank=new CTileBank;
|
||||
SubView=TileBank;
|
||||
|
||||
Core->GetExecPath(Filename);
|
||||
GetExecPath(Filename);
|
||||
Filename+=theApp.GetConfigStr("FileLocation","Collision");
|
||||
TileBank->AddSet(Filename);
|
||||
}
|
||||
|
|
|
@ -45,20 +45,19 @@ void CLayerItem::InitSubView(CCore *Core)
|
|||
void CLayerItem::GUIInit(CCore *Core)
|
||||
{
|
||||
// GUI.DisableCallback(true);
|
||||
// Core->GUIAdd(GUI,IDD_LAYER_Item);
|
||||
Core->GUIAdd(GUI,IDD_LAYER_ITEM);
|
||||
// GUI.DisableCallback(false);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerItem::GUIKill(CCore *Core)
|
||||
{
|
||||
// Core->GUIRemove(GUI,IDD_LAYER_Item);
|
||||
Core->GUIRemove(GUI,IDD_LAYER_ITEM);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerItem::GUIUpdate(CCore *Core)
|
||||
{
|
||||
/*
|
||||
int i,ListSize;
|
||||
CComboBox &List=GUI.m_List;
|
||||
|
||||
|
@ -71,24 +70,20 @@ CComboBox &List=GUI.m_List;
|
|||
}
|
||||
List.SetCurSel(CurrentDefThing);
|
||||
|
||||
GUIThingUpdate();
|
||||
*/
|
||||
// GUIThingUpdate();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerItem::GUIThingDefClear()
|
||||
{
|
||||
/*
|
||||
CComboBox &List=GUI.m_List;
|
||||
CurrentDefThing=-1;
|
||||
List.SetCurSel(CurrentDefThing);
|
||||
*/
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerItem::GUIThingUpdate()
|
||||
{
|
||||
/*
|
||||
int i,ListSize;
|
||||
CComboBox &List=GUI.m_LevelList;
|
||||
// Setup ThingList
|
||||
|
@ -102,73 +97,11 @@ CComboBox &List=GUI.m_LevelList;
|
|||
}
|
||||
List.SetCurSel(CurrentThing);
|
||||
GUIThingPointUpdate();
|
||||
// Params
|
||||
GUI.DisableCallback(true);
|
||||
if (CurrentThing!=-1)
|
||||
{
|
||||
sLayerThing &ThisThing=ThingList[CurrentThing];
|
||||
GUI.SetVal(GUI.m_Speed,ThisThing.Data.Speed);
|
||||
GUI.SetVal(GUI.m_TurnRate,ThisThing.Data.TurnRate);
|
||||
GUI.SetVal(GUI.m_Health,ThisThing.Data.Health);
|
||||
GUI.SetVal(GUI.m_Attack,ThisThing.Data.AttackStrength);
|
||||
GUI.m_Collision.SetCheck(ThisThing.Data.CollisionFlag);
|
||||
GUI.m_Player.SetCheck(ThisThing.Data.PlayerFlag);
|
||||
}
|
||||
else
|
||||
{
|
||||
GUI.m_Speed.SetWindowText("");
|
||||
GUI.m_TurnRate.SetWindowText("");
|
||||
GUI.m_Health.SetWindowText("");
|
||||
GUI.m_Attack.SetWindowText("");
|
||||
GUI.m_Collision.SetCheck(false);
|
||||
GUI.m_Player.SetCheck(false);
|
||||
}
|
||||
GUI.DisableCallback(false);
|
||||
*/
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerItem::GUIThingPointUpdate()
|
||||
{
|
||||
/*
|
||||
int i,ListSize;
|
||||
sLayerThing &ThisThing=ThingList[CurrentThing];
|
||||
CListBox &List=GUI.m_PosList;
|
||||
|
||||
List.ResetContent();
|
||||
if (CurrentThing==-1)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
// Setup ThingPointList
|
||||
ListSize=ThisThing.XY.size();
|
||||
for (i=0; i<ListSize; i++)
|
||||
{
|
||||
CString Str;
|
||||
Str.Format("%i: %i, %i",i,ThisThing.XY[i].x,ThisThing.XY[i].y);
|
||||
List.AddString(Str);
|
||||
}
|
||||
List.SetCurSel(CurrentThingPoint);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerItem::GUIChanged(CCore *Core)
|
||||
{
|
||||
/*
|
||||
if (CurrentThing!=-1)
|
||||
{
|
||||
sLayerThing &ThisThing=ThingList[CurrentThing];
|
||||
ThisThing.Data.Speed=GUI.GetVal(GUI.m_Speed);
|
||||
ThisThing.Data.TurnRate=GUI.GetVal(GUI.m_TurnRate);
|
||||
ThisThing.Data.Health=GUI.GetVal(GUI.m_Health);
|
||||
ThisThing.Data.AttackStrength=GUI.GetVal(GUI.m_Attack);
|
||||
ThisThing.Data.CollisionFlag=GUI.m_Collision.GetCheck()!=0;
|
||||
ThisThing.Data.PlayerFlag=GUI.m_Player.GetCheck()!=0;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "LayerThing.h"
|
||||
#include "Layer.h"
|
||||
#include "MapEdit.h"
|
||||
//#include "GUILayerItem.h"
|
||||
#include "GUILayerItem.h"
|
||||
#include "Elem.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -29,13 +29,12 @@ public:
|
|||
|
||||
void GUIThingDefClear();
|
||||
void GUIThingUpdate();
|
||||
void GUIThingPointUpdate();
|
||||
|
||||
void ExportThing(CExport &Exp,sLayerThing &ThisThing);
|
||||
|
||||
|
||||
protected:
|
||||
// CGUILayerItem GUI;
|
||||
CGUILayerItem GUI;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -158,7 +158,11 @@ void CLayerThing::InitSubView(CCore *Core)
|
|||
/*****************************************************************************/
|
||||
void CLayerThing::LoadThingScript(const char *Filename)
|
||||
{
|
||||
ThingScript.LoadAndImport(Filename);
|
||||
GString ExecPath;
|
||||
GString ScriptName;
|
||||
GetExecPath(ExecPath);
|
||||
ScriptName=ExecPath+Filename;
|
||||
ThingScript.LoadAndImport(ScriptName);
|
||||
|
||||
int i,ListSize=ThingScript.GetGroupCount();
|
||||
DefList.resize(ListSize);
|
||||
|
@ -181,10 +185,11 @@ int i,ListSize=ThingScript.GetGroupCount();
|
|||
|
||||
ThisDef.XY.resize(1);
|
||||
TRACE2("%s\t\t%s\n",Name,Gfx);
|
||||
ThisDef.ElemID=ThingBank->GetSetCount();
|
||||
if (Gfx)
|
||||
{
|
||||
ThingBank->AddSet(Gfx);
|
||||
char Filename[512];
|
||||
GFName::makeabsolute(ExecPath,Gfx,Filename);
|
||||
ThisDef.ElemID=ThingBank->AddSet(Filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -214,9 +219,13 @@ void CLayerThing::RenderThing(CCore *Core,Vector3 &ThisCam,sLayerThing &ThisThin
|
|||
{
|
||||
float ZoomW=Core->GetZoomW();
|
||||
float ZoomH=Core->GetZoomH();
|
||||
float ScrOfsX=(ZoomW/2);
|
||||
float ScrOfsY=(ZoomH/2);
|
||||
Vector3 &Scale=Core->GetScaleVector();
|
||||
Vector3 ScrOfs(ZoomW/2,ZoomH/2,0);
|
||||
|
||||
if (Render3d)
|
||||
{
|
||||
ScrOfs.z=-4.0f;
|
||||
}
|
||||
|
||||
if (ThingBank->NeedLoad()) ThingBank->LoadAllSets(Core);
|
||||
|
||||
|
@ -227,7 +236,7 @@ Vector3 &Scale=Core->GetScaleVector();
|
|||
|
||||
glScalef(Scale.x,Scale.y,Scale.z);
|
||||
glTranslatef(-ThisCam.x,ThisCam.y,0); // Set scroll offset
|
||||
glTranslatef(-ScrOfsX,ScrOfsY,0); // Bring to top left corner
|
||||
glTranslatef(-ScrOfs.x,ScrOfs.y,0); // Bring to top left corner
|
||||
|
||||
int ListSize=ThisThing.XY.size();
|
||||
for (int i=0;i<ListSize; i++)
|
||||
|
@ -244,7 +253,11 @@ int ListSize=ThisThing.XY.size();
|
|||
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);
|
||||
}
|
||||
glPopMatrix();
|
||||
}
|
||||
|
@ -257,14 +270,11 @@ int ListSize=ThisThing.XY.size();
|
|||
/*****************************************************************************/
|
||||
void CLayerThing::GUIInit(CCore *Core)
|
||||
{
|
||||
// Core->GUIAdd(GUIToolBar,IDD_TOOLBAR);
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CLayerThing::GUIKill(CCore *Core)
|
||||
{
|
||||
// Core->GUIRemove(GUIToolBar,IDD_TOOLBAR);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[General Info]
|
||||
Version=1
|
||||
LastClass=CGUINewMap
|
||||
LastClass=CGUILayerItem
|
||||
LastTemplate=CDialog
|
||||
NewFileInclude1=#include "stdafx.h"
|
||||
NewFileInclude2=#include "mapedit.h"
|
||||
LastPage=0
|
||||
|
||||
ClassCount=19
|
||||
ClassCount=20
|
||||
Class1=CChildFrame
|
||||
Class2=CGLEnabledView
|
||||
Class3=CGUIAddLayer
|
||||
|
@ -28,25 +28,27 @@ Class16=CAboutDlg
|
|||
Class17=CMapEditDoc
|
||||
Class18=CMapEditView
|
||||
|
||||
ResourceCount=17
|
||||
Resource1=IDR_TOOLBAR (English (U.S.))
|
||||
ResourceCount=18
|
||||
Resource1=IDD_ABOUTBOX (English (U.S.))
|
||||
Resource2=IDR_MAPEDITYPE (English (U.S.))
|
||||
Resource3=IDD_NEWMAP
|
||||
Resource4=IDD_TOOLBAR
|
||||
Resource5=IDD_LAYER_COLLISION
|
||||
Resource6=IDD_RESIZE
|
||||
Resource7=IDD_ABOUTBOX (English (U.S.))
|
||||
Resource3=IDD_LAYER_COLLISION
|
||||
Resource4=IDD_MULTIBAR (English (U.S.))
|
||||
Resource5=IDD_LAYER_LIST
|
||||
Resource6=IDD_ADDLAYER
|
||||
Resource7=IDR_TOOLBAR (English (U.S.))
|
||||
Resource8=xxxx
|
||||
Resource9=IDD_TILEBANK
|
||||
Resource10=IDD_LAYER_SHADE
|
||||
Resource11=IDD_ADDLAYER
|
||||
Resource12=IDD_MULTIBAR (English (U.S.))
|
||||
Resource13=IDD_ELEMLIST
|
||||
Resource14=IDD_LAYER_LIST
|
||||
Resource9=IDD_LAYER_SHADE
|
||||
Resource10=IDD_LAYER_ACTOR
|
||||
Resource11=IDD_TOOLBAR
|
||||
Resource12=IDD_RESIZE
|
||||
Resource13=IDR_MAINFRAME (English (U.S.))
|
||||
Resource14=IDD_NEWMAP
|
||||
Resource15=IDD_LAYER_ACTOR2
|
||||
Resource16=IDR_MAINFRAME (English (U.S.))
|
||||
Class19=CGUILayerActor
|
||||
Resource17=IDD_LAYER_ACTOR
|
||||
Resource16=IDD_TILEBANK
|
||||
Resource17=IDD_ELEMLIST
|
||||
Class20=CGUILayerItem
|
||||
Resource18=IDD_LAYER_ITEM
|
||||
|
||||
[CLS:CChildFrame]
|
||||
Type=0
|
||||
|
@ -98,7 +100,7 @@ HeaderFile=GUINewMap.h
|
|||
ImplementationFile=GUINewMap.cpp
|
||||
Filter=D
|
||||
VirtualFilter=dWC
|
||||
LastObject=IDC_MAPSIZE_HEIGHT
|
||||
LastObject=CGUINewMap
|
||||
|
||||
[CLS:CGUIResize]
|
||||
Type=0
|
||||
|
@ -213,7 +215,7 @@ Control7=IDC_MAPSIZE_WARNING,static,1342308352
|
|||
Type=1
|
||||
Class=CGUITileBank
|
||||
ControlCount=3
|
||||
Control1=IDD_TILEBANK_UPDATE,button,1342242816
|
||||
Control1=IDD_TILEBANK_UPDATE,button,1476460544
|
||||
Control2=IDD_TILEBANK_LOAD,button,1342242816
|
||||
Control3=IDD_TILEBANK_DELETE,button,1342242816
|
||||
|
||||
|
@ -390,9 +392,18 @@ Control6=IDC_LAYERCOLLISION_WATER,button,1342242816
|
|||
Control7=IDC_LAYERCOLLISION_SOLID,button,1342242816
|
||||
Control8=IDC_LAYERCOLLISION_DEATH,button,1342242816
|
||||
|
||||
[CLS:CGUILayerActor]
|
||||
Type=0
|
||||
HeaderFile=GUILayerActor.h
|
||||
ImplementationFile=GUILayerActor.cpp
|
||||
BaseClass=CDialog
|
||||
Filter=D
|
||||
VirtualFilter=dWC
|
||||
LastObject=IDC_ACTOR_POS_LIST
|
||||
|
||||
[DLG:IDD_LAYER_ACTOR]
|
||||
Type=1
|
||||
Class=CGUILayerActor
|
||||
Class=?
|
||||
ControlCount=22
|
||||
Control1=IDC_LEVEL_ACTOR_LIST,combobox,1344339971
|
||||
Control2=IDC_ACTOR_POS_LIST,listbox,1352728833
|
||||
|
@ -417,12 +428,21 @@ Control20=IDC_LAYER_ACTOR_GROUP,button,1342177287
|
|||
Control21=IDC_ACTOR_LIST,combobox,1344339971
|
||||
Control22=IDC_ACTOR_DELETE,button,1342242816
|
||||
|
||||
[CLS:CGUILayerActor]
|
||||
[DLG:IDD_LAYER_ITEM]
|
||||
Type=1
|
||||
Class=CGUILayerItem
|
||||
ControlCount=4
|
||||
Control1=IDC_LEVEL_ITEM_LIST,combobox,1344339971
|
||||
Control2=IDC_LAYER_ACTOR_GROUP,button,1342177287
|
||||
Control3=IDC_ITEM_LIST,combobox,1344339971
|
||||
Control4=IDC_ITEM_DELETE,button,1342242816
|
||||
|
||||
[CLS:CGUILayerItem]
|
||||
Type=0
|
||||
HeaderFile=GUILayerActor.h
|
||||
ImplementationFile=GUILayerActor.cpp
|
||||
HeaderFile=GUILayerItem.h
|
||||
ImplementationFile=GUILayerItem.cpp
|
||||
BaseClass=CDialog
|
||||
Filter=D
|
||||
VirtualFilter=dWC
|
||||
LastObject=CGUILayerActor
|
||||
LastObject=IDC_ITEM_LIST
|
||||
|
||||
|
|
|
@ -80,12 +80,6 @@ BSC32=bscmake.exe
|
|||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 opengl32.lib glu32.lib glib.lib ginlib.lib maths.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"..\libs\ginlib\debug\\" /libpath:"..\libs\glib\debug\\" /libpath:"..\libs\maths\debug\\"
|
||||
# Begin Special Build Tool
|
||||
ProjDir=.
|
||||
TargetDir=.\Debug
|
||||
SOURCE="$(InputPath)"
|
||||
PostBuild_Cmds=if not exist $(TargetDir)\collision.bmp copy $(ProjDir)\res\collision.bmp $(TargetDir)\collision.bmp if not exist $(TargetDir)\iconz.bmp copy $(ProjDir)\res\iconz.bmp $(TargetDir)\iconz.bmp copy $(ProjDir)\res\iconz.bmp $(TargetDir)\iconz.bmp
|
||||
# End Special Build Tool
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
@ -407,6 +401,14 @@ SOURCE=.\GUILayerCollision.h
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GUILayerItem.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GUILayerItem.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GUILayerList.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -515,7 +515,7 @@ IDD_TILEBANK DIALOG DISCARDABLE 0, 0, 156, 26
|
|||
STYLE WS_CHILD
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
PUSHBUTTON "Update",IDD_TILEBANK_UPDATE,95,5,50,15
|
||||
PUSHBUTTON "Update",IDD_TILEBANK_UPDATE,95,5,50,15,WS_DISABLED
|
||||
PUSHBUTTON "Load",IDD_TILEBANK_LOAD,5,5,45,15
|
||||
PUSHBUTTON "Delete",IDD_TILEBANK_DELETE,50,5,45,15
|
||||
END
|
||||
|
@ -630,6 +630,18 @@ BEGIN
|
|||
PUSHBUTTON "Delete Actor",IDC_ACTOR_DELETE,5,40,75,15
|
||||
END
|
||||
|
||||
IDD_LAYER_ITEM DIALOG DISCARDABLE 0, 0, 156, 66
|
||||
STYLE WS_CHILD
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
COMBOBOX IDC_LEVEL_ITEM_LIST,5,25,145,185,CBS_DROPDOWNLIST |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
GROUPBOX "",IDC_LAYER_ACTOR_GROUP,0,20,155,40
|
||||
COMBOBOX IDC_ITEM_LIST,5,5,145,185,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
PUSHBUTTON "Delete Item",IDC_ITEM_DELETE,5,40,75,15
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -718,6 +730,14 @@ BEGIN
|
|||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 249
|
||||
END
|
||||
|
||||
IDD_LAYER_ITEM, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 149
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 59
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ GFName FName=Filename;
|
|||
RGBData=&ThisRGB;
|
||||
LoadTex(NewTex,RGBData);
|
||||
FreeBMP(ThisRGB);
|
||||
NewTex.Loaded=TRUE;
|
||||
NewTex.Loaded=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -57,19 +57,66 @@ GFName FName=Filename;
|
|||
/**************************************************************************************/
|
||||
/**************************************************************************************/
|
||||
/**************************************************************************************/
|
||||
const int TexAlignTable[]={1,2,4,8,16,32,64,128,256};
|
||||
const int TexAlignTableSize=sizeof(TexAlignTable)/sizeof(int);
|
||||
int CTexCache::AlignSize(int Size)
|
||||
void CTexCache::CreateAlignTex(Frame &ThisFrame,sRGBData &RGBData)
|
||||
{
|
||||
for (int i=0;i<TexAlignTableSize-1; i++)
|
||||
int FrameW=ThisFrame.GetWidth();
|
||||
int FrameH=ThisFrame.GetHeight();
|
||||
int AlignW=AlignSize(FrameW);
|
||||
int AlignH=AlignSize(FrameH);
|
||||
|
||||
RGBData.RGB=(u8*)MemAlloc(AlignW*AlignH*3);
|
||||
ThisFrame.FlipY();
|
||||
RGBData.OldW=FrameW;
|
||||
RGBData.OldH=FrameH;
|
||||
RGBData.TexW=AlignW;
|
||||
RGBData.TexH=AlignH;
|
||||
RGBData.ScaleU=(float)FrameW/(float)AlignW;
|
||||
RGBData.ScaleV=(float)FrameH/(float)AlignH;
|
||||
|
||||
if (FrameW==AlignW && FrameH==AlignH)
|
||||
{
|
||||
if (Size>TexAlignTable[i] && Size<TexAlignTable[i+1]) return(TexAlignTable[i+1]);
|
||||
ThisFrame.MakeRGB(RGBData.RGB);
|
||||
return;
|
||||
}
|
||||
// Tex is mis aligned, so align and fill borders with pure pink
|
||||
|
||||
u8 *Buffer=(u8*)MemAlloc(FrameW*FrameH*3);
|
||||
u8 *Src,*Dst;
|
||||
int X,Y;
|
||||
ThisFrame.MakeRGB(Buffer);
|
||||
|
||||
Dst=RGBData.RGB;
|
||||
|
||||
Src=Buffer;
|
||||
Dst=RGBData.RGB;
|
||||
for (Y=0; Y<FrameH; Y++)
|
||||
{
|
||||
for (X=0; X<FrameW; X++)
|
||||
{
|
||||
*Dst++=*Src++;
|
||||
*Dst++=*Src++;
|
||||
*Dst++=*Src++;
|
||||
}
|
||||
for (X; X<AlignW; X++)
|
||||
{
|
||||
*Dst++=BlankRGB.rgbRed;
|
||||
*Dst++=BlankRGB.rgbGreen;
|
||||
*Dst++=BlankRGB.rgbBlue;
|
||||
}
|
||||
}
|
||||
for (Y; Y<AlignH; Y++)
|
||||
{
|
||||
for (X=0; X<AlignW; X++)
|
||||
{
|
||||
*Dst++=BlankRGB.rgbRed;
|
||||
*Dst++=BlankRGB.rgbGreen;
|
||||
*Dst++=BlankRGB.rgbBlue;
|
||||
}
|
||||
}
|
||||
|
||||
return(Size);
|
||||
MemFree(Buffer);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************************/
|
||||
bool CTexCache::LoadBMP(const char *Filename,sRGBData &RGBData)
|
||||
{
|
||||
|
@ -90,11 +137,7 @@ FILE *File;
|
|||
fclose(File);
|
||||
ThisFrame.LoadBMP(Filename);
|
||||
|
||||
RGBData.Width=ThisFrame.GetWidth();
|
||||
RGBData.Height=ThisFrame.GetHeight();
|
||||
RGBData.RGB=(u8*)malloc(RGBData.Width*RGBData.Height*3);
|
||||
ThisFrame.FlipY();
|
||||
ThisFrame.MakeRGB(RGBData.RGB);
|
||||
CreateAlignTex(ThisFrame,RGBData);
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@ -103,29 +146,27 @@ void CTexCache::FreeBMP(sRGBData &RGBData)
|
|||
{
|
||||
if (RGBData.RGB)
|
||||
{
|
||||
free(RGBData.RGB);
|
||||
MemFree(RGBData.RGB);
|
||||
RGBData.RGB=0;
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************************/
|
||||
void CTexCache::LoadTex(sTex &ThisTex,sRGBData *TexData)
|
||||
void CTexCache::LoadTex(sTex &ThisTex,sRGBData *RGBData)
|
||||
{
|
||||
u8 *Buffer;
|
||||
int TexWidth=TexData->Width;
|
||||
int TexHeight=TexData->Height;
|
||||
int AlignWidth=AlignSize(TexWidth);
|
||||
int AlignHeight=AlignSize(TexHeight);
|
||||
u8 *Src,*Dst;
|
||||
|
||||
// create RGB & alpha texture & ensuse texture is correct size for GL
|
||||
Buffer=(u8*)MemAlloc(RGBData->TexW*RGBData->TexH*4);
|
||||
ASSERT(Buffer);
|
||||
|
||||
Buffer=(u8*)malloc(AlignWidth*AlignHeight*4);
|
||||
Src=TexData->RGB;
|
||||
Dst=&Buffer[0];
|
||||
Src=RGBData->RGB;
|
||||
Dst=Buffer;
|
||||
|
||||
for (int Y=0; Y<TexHeight; Y++)
|
||||
for (int Y=0; Y<RGBData->TexH; Y++)
|
||||
{
|
||||
for (int X=0; X<TexWidth; X++)
|
||||
for (int X=0; X<RGBData->TexW; X++)
|
||||
{
|
||||
u8 R,G,B,A;
|
||||
|
||||
|
@ -142,24 +183,32 @@ u8 *Src,*Dst;
|
|||
*Dst++=B;
|
||||
*Dst++=A;
|
||||
}
|
||||
Dst+=(AlignWidth-TexWidth)*4;
|
||||
}
|
||||
|
||||
ThisTex.TexWidth=TexWidth;
|
||||
ThisTex.TexHeight=TexHeight;
|
||||
|
||||
ThisTex.ScaleU=(float)TexWidth/(float)AlignWidth;
|
||||
ThisTex.ScaleV=(float)TexHeight/(float)AlignHeight;
|
||||
|
||||
ThisTex.OldW=RGBData->OldW;
|
||||
ThisTex.OldH=RGBData->OldH;
|
||||
ThisTex.TexW=RGBData->TexW;
|
||||
ThisTex.TexH=RGBData->TexH;
|
||||
ThisTex.ScaleU=RGBData->ScaleU;
|
||||
ThisTex.ScaleV=RGBData->ScaleV;
|
||||
int Err;
|
||||
glGenTextures(1, &ThisTex.TexID);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glBindTexture(GL_TEXTURE_2D, ThisTex.TexID);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, 4, AlignWidth, AlignHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, &Buffer[0]);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, 4, RGBData->TexW, RGBData->TexH, 0, GL_RGBA, GL_UNSIGNED_BYTE, Buffer);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
free(Buffer);
|
||||
Err=glGetError();ASSERT(Err==0);
|
||||
MemFree(Buffer);
|
||||
}
|
||||
|
||||
/**************************************************************************************/
|
||||
|
|
|
@ -15,8 +15,9 @@
|
|||
|
||||
struct sRGBData
|
||||
{
|
||||
int Width;
|
||||
int Height;
|
||||
int OldW,OldH;
|
||||
int TexW,TexH;
|
||||
float ScaleU,ScaleV;
|
||||
u8 *RGB;
|
||||
};
|
||||
|
||||
|
@ -25,7 +26,8 @@ struct sTex
|
|||
GString Filename;
|
||||
GString Name;
|
||||
GLuint TexID;
|
||||
int TexWidth,TexHeight;
|
||||
int OldW,OldH;
|
||||
int TexW,TexH;
|
||||
float ScaleU,ScaleV; // For wrong size textures
|
||||
bool Loaded;
|
||||
|
||||
|
@ -37,6 +39,7 @@ const RGBQUAD BlankRGB={255,0,255};
|
|||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
class Frame;
|
||||
class CTexCache
|
||||
{
|
||||
public:
|
||||
|
@ -47,10 +50,10 @@ public:
|
|||
void Purge();
|
||||
|
||||
bool LoadBMP(const char *Filename,sRGBData &RGBData);
|
||||
void CreateAlignTex(Frame &ThisFrame,sRGBData &RGBData);
|
||||
void FreeBMP(sRGBData &RGBData);
|
||||
void FixBMP(sRGBData &RGBData);
|
||||
bool IsSizeOk(int Size);
|
||||
int AlignSize(int Size);
|
||||
|
||||
void LoadTex(sTex &ThisTex,sRGBData *TexData);
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#define IDD_LAYER_COLLISION 177
|
||||
#define IDD_ELEMLIST 178
|
||||
#define IDD_LAYER_ACTOR 179
|
||||
#define IDD_LAYER_ITEM 180
|
||||
#define IDC_TOOLBAR_COMBO 1018
|
||||
#define IDC_LAYERLIST_LIST 1019
|
||||
#define IDD_TILEBANK_UPDATE 1029
|
||||
|
@ -67,7 +68,6 @@
|
|||
#define IDC_LAYERCOLLISION_DEATH 1088
|
||||
#define IDC_LAYERSHADE_EDITB3 1089
|
||||
#define IDC_ACTOR_LIST 1089
|
||||
#define IDC_ACTOR_NEW 1090
|
||||
#define IDC_ACTOR_DELETE 1091
|
||||
#define IDC_ACTOR_SPEED_SPIN 1092
|
||||
#define IDC_ACTOR_PLAYER 1094
|
||||
|
@ -75,6 +75,9 @@
|
|||
#define IDC_ACTOR_TURNRATE_TEXT 1097
|
||||
#define IDC_ACTOR_TURNRATE 1098
|
||||
#define IDC_ACTOR_TURNRATE_SPIN 1099
|
||||
#define IDC_ITEM_DELETE 1100
|
||||
#define IDC_ITEM_LIST 1101
|
||||
#define IDC_LEVEL_ITEM_LIST 1102
|
||||
#define IDC_ACTOR_HEALTH_TEXT 1112
|
||||
#define IDC_ACTOR_HEALTH 1113
|
||||
#define IDC_ACTOR_HEALTH_SPIN 1114
|
||||
|
@ -106,7 +109,7 @@
|
|||
#define _APS_3D_CONTROLS 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 180
|
||||
#define _APS_NEXT_COMMAND_VALUE 32800
|
||||
#define _APS_NEXT_CONTROL_VALUE 1097
|
||||
#define _APS_NEXT_CONTROL_VALUE 1103
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include <Misc.hpp>
|
||||
#include <GFName.hpp>
|
||||
#include <malloc.h>
|
||||
|
||||
#include "Utils.H"
|
||||
|
||||
|
@ -30,6 +31,18 @@ char szBuf[256];
|
|||
}
|
||||
}
|
||||
|
||||
/**************************************************************************************/
|
||||
const int TexAlignTable[]={1,2,4,8,16,32,64,128,256};
|
||||
const int TexAlignTableSize=sizeof(TexAlignTable)/sizeof(int);
|
||||
int AlignSize(int Size)
|
||||
{
|
||||
for (int i=0;i<TexAlignTableSize-1; i++)
|
||||
{
|
||||
if (Size>TexAlignTable[i] && Size<TexAlignTable[i+1]) return(TexAlignTable[i+1]);
|
||||
}
|
||||
|
||||
return(Size);
|
||||
}
|
||||
/**************************************************************************************/
|
||||
/**************************************************************************************/
|
||||
void BuildGLBox(float XMin,float XMax,float YMin,float YMax,float ZMin,float ZMax)
|
||||
|
@ -336,3 +349,56 @@ int round(float f)
|
|||
}
|
||||
}
|
||||
/*****************************************************************************/
|
||||
void *_MemAlloc(size_t Size)
|
||||
{
|
||||
CheckMem();
|
||||
void *Ptr=malloc(Size);
|
||||
CheckMem();
|
||||
return(Ptr);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void _MemFree(void *Ptr)
|
||||
{
|
||||
CheckMem();
|
||||
free(Ptr);
|
||||
CheckMem();
|
||||
|
||||
}
|
||||
/*****************************************************************************/
|
||||
void CheckMem()
|
||||
{
|
||||
int Status = _heapchk();
|
||||
|
||||
switch( Status)
|
||||
{
|
||||
case _HEAPOK:
|
||||
// TRACE0(" OK - heap is fine\n" );
|
||||
break;
|
||||
case _HEAPEMPTY:
|
||||
// TRACE0(" OK - heap is empty\n" );
|
||||
break;
|
||||
case _HEAPBADBEGIN:
|
||||
TRACE0( "ERROR - bad start of heap\n" );
|
||||
break;
|
||||
case _HEAPBADNODE:
|
||||
TRACE0( "ERROR - bad node in heap\n" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*****************************************************************************/
|
||||
void GetExecPath(GString &Path)
|
||||
{
|
||||
#ifndef _DEBUG
|
||||
// Get application path
|
||||
char ExeFilename[2048];
|
||||
GFName Exe;
|
||||
GetModuleFileName(GetModuleHandle(NULL),ExeFilename,2048);
|
||||
Exe=ExeFilename;
|
||||
Exe.File(0);
|
||||
Exe.Ext(0);
|
||||
Path=Exe.FullName();
|
||||
#else
|
||||
Path="\\SpongeBob\\tools\\MapEdit\\";
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -35,6 +35,8 @@ class GString;
|
|||
class CMapEditDoc;
|
||||
void DbgMsg(const char * pszFmt,...);
|
||||
|
||||
int AlignSize(int Size);
|
||||
|
||||
void BuildGLBox(float XMin,float XMax,float YMin,float YMax,float ZMin,float ZMax);
|
||||
void BuildGLBoxNoNormals(float XMin,float XMax,float YMin,float YMax,float ZMin,float ZMax);
|
||||
void BuildGLQuad(float XMin,float XMax,float YMin,float YMax,float Z);
|
||||
|
@ -55,5 +57,19 @@ GString GetWorkingPath();
|
|||
void CheckFilename(GString &Filename);
|
||||
int round(float f) ;
|
||||
|
||||
void *_MemAlloc(size_t Size);
|
||||
void _MemFree(void *Ptr);
|
||||
void CheckMem();
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define MemAlloc(v) _MemAlloc(v)
|
||||
#define MemFree(v) _MemFree(v)
|
||||
#else
|
||||
#define MemAlloc(v) malloc(v)
|
||||
#define MemFree(v) free(v)
|
||||
#endif
|
||||
|
||||
void GetExecPath(GString &Path);
|
||||
|
||||
|
||||
#endif
|
43
tools/MapEdit/Item.ini
Normal file
43
tools/MapEdit/Item.ini
Normal file
|
@ -0,0 +1,43 @@
|
|||
# Item Script
|
||||
#
|
||||
################################################
|
||||
# [Name]
|
||||
# Gfx=Sprite filename
|
||||
################################################
|
||||
|
||||
################################################
|
||||
[Balloon]
|
||||
Gfx=..\..\graphics\pickups\+balloon.bmp
|
||||
|
||||
[BubbleMixture]
|
||||
Gfx=..\..\graphics\pickups\+bubblemixture.bmp
|
||||
|
||||
[Glasses]
|
||||
Gfx=..\..\graphics\pickups\+glasses.bmp
|
||||
|
||||
[Health25]
|
||||
Gfx=..\..\graphics\pickups\+health25.bmp
|
||||
|
||||
[Health50]
|
||||
Gfx=..\..\graphics\pickups\+health50.bmp
|
||||
|
||||
[Health100]
|
||||
Gfx=..\..\graphics\pickups\+health100.bmp
|
||||
|
||||
[Helmet]
|
||||
Gfx=..\..\graphics\pickups\+helmet.bmp
|
||||
|
||||
[JellyAmmo]
|
||||
Gfx=..\..\graphics\pickups\+jellyammo.bmp
|
||||
|
||||
[Pants]
|
||||
Gfx=..\..\graphics\pickups\+pants.bmp
|
||||
|
||||
[Shoe]
|
||||
Gfx=..\..\graphics\pickups\+shoe.bmp
|
||||
|
||||
[Spatula]
|
||||
Gfx=..\..\graphics\pickups\+spatula.bmp
|
||||
|
||||
[Teeth]
|
||||
Gfx=..\..\graphics\pickups\+teeth.bmp
|
Binary file not shown.
12
tools/MapEdit/MapEdit.ini
Normal file
12
tools/MapEdit/MapEdit.ini
Normal file
|
@ -0,0 +1,12 @@
|
|||
##########################
|
||||
# Map Editor Config File #
|
||||
##########################
|
||||
|
||||
[FileLocation]
|
||||
Collision=collision.bmp
|
||||
Iconz=Iconz.bmp
|
||||
|
||||
[LayerScript]
|
||||
ActorScript=Actor.ini
|
||||
ItemScript=Item.ini
|
||||
PlatformScript=Platform.ini
|
354
tools/MapEdit/actor.ini
Normal file
354
tools/MapEdit/actor.ini
Normal file
|
@ -0,0 +1,354 @@
|
|||
# Character Script
|
||||
#
|
||||
################################################
|
||||
# [Name]
|
||||
# Gfx=Sprite filename
|
||||
# WayPoints=0/1
|
||||
# Speed=0-10
|
||||
# TurnRate=0-4095
|
||||
# Collision=0/1
|
||||
# Health=0-255
|
||||
# Player=0/1 # Player Flag
|
||||
################################################
|
||||
|
||||
################################################
|
||||
# Player
|
||||
################################################
|
||||
[SpongeBob]
|
||||
Gfx=..\..\graphics\characters\spongebob\render\psx\SpongeBob_IdleBreath0001.bmp
|
||||
Player=1
|
||||
|
||||
################################################
|
||||
# Friends
|
||||
################################################
|
||||
#[BarnacleBoy]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[Gary]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=3
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[Krusty]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[MermaidMan]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[Patrick]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[Sandy]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[Squidward]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
#[Plankton]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=0
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=0
|
||||
#Health=0
|
||||
#AttackStrength=0
|
||||
|
||||
################################################
|
||||
# Enemies
|
||||
################################################
|
||||
|
||||
[SmallJellyfish-Level1]
|
||||
Gfx=..\..\graphics\characters\Jellyfish1\render\psx\JellyFish1_Idle0.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=128
|
||||
Collision=1
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
#[SmallJellyfish-Level2]
|
||||
#Gfx=..\..\graphics\characters\Jellyfish2\render\psx\Jellyfish2.bmp
|
||||
#WayPoints=1
|
||||
#Speed=3
|
||||
#TurnRate=128
|
||||
#Collision=1
|
||||
#Health=16
|
||||
#AttackStrength=40
|
||||
|
||||
# [Largejellyfish] - This is a platform
|
||||
|
||||
#[Motherjellyfish]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=3
|
||||
#TurnRate=256
|
||||
#Collision=0
|
||||
#Health=256
|
||||
#AttackStrength=1234
|
||||
|
||||
[Anenome-Level1]
|
||||
Gfx=..\..\graphics\characters\AnenomeLvl1\render\psx\AnenomeLvl1_Fire0001.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
#[Anenome-Level2]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=0
|
||||
#TurnRate=128
|
||||
#Collision=0
|
||||
#Health=32
|
||||
#AttackStrength=20
|
||||
|
||||
[Anenome-Level3]
|
||||
Gfx=..\..\graphics\characters\AnenomeLvl3\Render\PSX\AnemneLvl3_Fire_0001.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=48
|
||||
AttackStrength=20
|
||||
|
||||
[BabyOctopus]
|
||||
Gfx=..\..\graphics\characters\babyoctopus\render\psx\Babyoctopus_Idle0001.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=512
|
||||
Collision=0
|
||||
Health=1
|
||||
AttackStrength=20
|
||||
|
||||
[Ballblob]
|
||||
Gfx=..\..\graphics\characters\ballblob\render\psx\BallBlob_Bounce0001.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=1
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
#[Boogermonster]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=0
|
||||
#TurnRate=128
|
||||
#Collision=1
|
||||
#Health=0
|
||||
#AttackStrength=20
|
||||
|
||||
[Caterpillar]
|
||||
Gfx=..\..\graphics\characters\caterpillar\render\psx\caterpillar_crawl0000.bmp
|
||||
WayPoints=1
|
||||
Speed=1
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=48
|
||||
AttackStrength=20
|
||||
|
||||
#[Clam-Level1]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=1
|
||||
#Health=0
|
||||
#AttackStrength=20
|
||||
|
||||
#[Clam-Level2]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=0
|
||||
#TurnRate=0
|
||||
#Collision=1
|
||||
#Health=0
|
||||
#AttackStrength=20
|
||||
|
||||
[Eyeball]
|
||||
Gfx=..\..\graphics\characters\eyeball\render\psx\EyeBall_0000.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=32
|
||||
AttackStrength=20
|
||||
|
||||
[Flamingskull]
|
||||
Gfx=..\..\graphics\characters\flamingskull\render\psx\FlamingSkull_0001.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[FlyingDutchman]
|
||||
Gfx=..\..\graphics\characters\flyingdutchman\render\psx\flyingdutchman_idlebreathe0000.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=0
|
||||
|
||||
[Ghost]
|
||||
Gfx=..\..\graphics\characters\ghost\render\psx\Ghost_Idle0001.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
#[GiantWorm]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=3
|
||||
#TurnRate=128
|
||||
#Collision=0
|
||||
#Health=256
|
||||
#AttackStrength=0
|
||||
|
||||
[HermitCrab]
|
||||
Gfx=..\..\graphics\characters\hermitcrab\render\psx\hermitcrab_idle0001.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
# 20 for snap, 40 for roll...ARGH
|
||||
|
||||
[IronDogFish]
|
||||
Gfx=..\..\graphics\characters\irondogfish\render\psx\irondogfish_idle0000.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=0
|
||||
|
||||
[PuffaFish]
|
||||
Gfx=..\..\graphics\characters\puffafish\render\psx\PuffaFish_PuffUpIdle0001.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=64
|
||||
AttackStrength=20
|
||||
|
||||
#[SeaSnake]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=3
|
||||
#TurnRate=256
|
||||
#Collision=0
|
||||
#Health=56
|
||||
#AttackStrength=20
|
||||
|
||||
[Sharkman]
|
||||
Gfx=..\..\graphics\characters\sharkman\render\psx\SharkMan_Idle1_0001.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
#[SharkSub]
|
||||
#Gfx=..\..\graphics\characters\
|
||||
#WayPoints=1
|
||||
#Speed=3
|
||||
#TurnRate=2048
|
||||
#Collision=0
|
||||
#Health=256
|
||||
#AttackStrength=0
|
||||
|
||||
[Skeletalfish]
|
||||
Gfx=..\..\graphics\characters\Skeletalfish\render\psx\skeletalfish_idle0000.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[SpiderCrab]
|
||||
Gfx=..\..\graphics\characters\spidercrab\render\psx\SpiderCrab_Idle0001.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=1
|
||||
Health=2
|
||||
# 1st shot stuns, if shot again is killed
|
||||
AttackStrength=20
|
||||
|
||||
[Squiddart]
|
||||
Gfx=..\..\graphics\characters\squiddart\render\psx\SquidDart_Swim0001.bmp
|
||||
WayPoints=1
|
||||
Speed=5
|
||||
TurnRate=256
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[Stomper]
|
||||
Gfx=..\..\graphics\characters\stomper\render\psx\Stomper_Crush0001.bmp
|
||||
WayPoints=1
|
||||
Speed=5
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[DustDevil]
|
||||
Gfx=..\..\graphics\characters\DustDevil\render\psx\dustdevil_twist0001.bmp
|
||||
WayPoints=1
|
||||
Speed=5
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
346
tools/MapEdit/platform.ini
Normal file
346
tools/MapEdit/platform.ini
Normal file
|
@ -0,0 +1,346 @@
|
|||
# Character Script
|
||||
#
|
||||
################################################
|
||||
# [Name]
|
||||
# Gfx=Sprite filename
|
||||
# WayPoints=0/1
|
||||
# Speed=0-10
|
||||
# TurnRate=0-4095
|
||||
# Collision=0/1
|
||||
# Health=0-255
|
||||
# Player=0/1 # Player Flag
|
||||
################################################
|
||||
|
||||
################################################
|
||||
# Player
|
||||
################################################
|
||||
[SpongeBob]
|
||||
Gfx=..\..\graphics\spongebob.bmp
|
||||
Player=1
|
||||
|
||||
################################################
|
||||
# Friends
|
||||
################################################
|
||||
[BarnacleBoy]
|
||||
Gfx=..\..\graphics\barnicleboy.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[Gary]
|
||||
Gfx=..\..\graphics\gary.bmp
|
||||
WayPoints=0
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[Krusty]
|
||||
Gfx=..\..\graphics\Krusty.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[MermaidMan]
|
||||
Gfx=..\..\graphics\MermaidMan.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[Patrick]
|
||||
Gfx=..\..\graphics\Patrick.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[Sandy]
|
||||
Gfx=..\..\graphics\Sandy.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[Squidward]
|
||||
Gfx=..\..\graphics\Squidward.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
[Plankton]
|
||||
Gfx=..\..\graphics\plankton.bmp
|
||||
WayPoints=0
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=0
|
||||
|
||||
################################################
|
||||
# Enemies
|
||||
################################################
|
||||
|
||||
[SmallJellyfish-Level1]
|
||||
Gfx=..\..\graphics\JellyFish1.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=128
|
||||
Collision=1
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[SmallJellyfish-Level2]
|
||||
Gfx=..\..\graphics\JellyFish2.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=128
|
||||
Collision=1
|
||||
Health=16
|
||||
AttackStrength=40
|
||||
|
||||
# [Largejellyfish] - This is a platform
|
||||
|
||||
[Motherjellyfish]
|
||||
Gfx=..\..\graphics\MotherJellyFish.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=256
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=1234
|
||||
|
||||
[Anenome-Level1]
|
||||
Gfx=..\..\graphics\Anenome1.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[Anenome-Level2]
|
||||
Gfx=..\..\graphics\Anenome2.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=32
|
||||
AttackStrength=20
|
||||
|
||||
[Anenome-Level3]
|
||||
Gfx=..\..\graphics\Anenome3.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=48
|
||||
AttackStrength=20
|
||||
|
||||
[BabyOctopus]
|
||||
Gfx=..\..\graphics\Babyoctopus.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=512
|
||||
Collision=0
|
||||
Health=1
|
||||
AttackStrength=20
|
||||
|
||||
[Ballblob]
|
||||
Gfx=..\..\graphics\BallBlob.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=1
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[Boogermonster]
|
||||
Gfx=..\..\graphics\Boogermonster.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=1
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[Caterpillar]
|
||||
Gfx=..\..\graphics\Caterpillar.bmp
|
||||
WayPoints=1
|
||||
Speed=1
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=48
|
||||
AttackStrength=20
|
||||
|
||||
[Clam-Level1]
|
||||
Gfx=..\..\graphics\clam1.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=1
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[Clam-Level2]
|
||||
Gfx=..\..\graphics\clam2.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=0
|
||||
Collision=1
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[Eyeball]
|
||||
Gfx=..\..\graphics\Eyeball.bmp
|
||||
WayPoints=1
|
||||
Speed=0
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=32
|
||||
AttackStrength=20
|
||||
|
||||
[Flamingskull]
|
||||
Gfx=..\..\graphics\Flamingskull.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[FlyingDutchman]
|
||||
Gfx=..\..\graphics\FlyingDutchman.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=0
|
||||
|
||||
[Ghost]
|
||||
Gfx=..\..\graphics\Ghost.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[GiantWorm]
|
||||
Gfx=..\..\graphics\GiantWorm.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=0
|
||||
|
||||
[HermitCrab]
|
||||
Gfx=..\..\graphics\HermitCrab.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
# 20 for snap, 40 for roll...ARGH
|
||||
|
||||
[IronDogFish]
|
||||
Gfx=..\..\graphics\IronDogFish.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=0
|
||||
|
||||
[PuffaFish]
|
||||
Gfx=..\..\graphics\PuffaFish.bmp
|
||||
WayPoints=1
|
||||
Speed=2
|
||||
TurnRate=128
|
||||
Collision=0
|
||||
Health=64
|
||||
AttackStrength=20
|
||||
|
||||
[SeaSnake]
|
||||
Gfx=..\..\graphics\SeaSnake.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=256
|
||||
Collision=0
|
||||
Health=56
|
||||
AttackStrength=20
|
||||
|
||||
[Sharkman]
|
||||
Gfx=..\..\graphics\Sharkman.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[SharkSub]
|
||||
Gfx=..\..\graphics\SharkSub.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=256
|
||||
AttackStrength=0
|
||||
|
||||
[Skeletalfish]
|
||||
Gfx=..\..\graphics\Skeletalfish.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=2048
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
||||
[SpiderCrab]
|
||||
Gfx=..\..\graphics\SpiderCrab.bmp
|
||||
WayPoints=1
|
||||
Speed=3
|
||||
TurnRate=0
|
||||
Collision=1
|
||||
Health=2
|
||||
# 1st shot stuns, if shot again is killed
|
||||
AttackStrength=20
|
||||
|
||||
[Squiddart]
|
||||
Gfx=..\..\graphics\Squiddart.bmp
|
||||
WayPoints=1
|
||||
Speed=5
|
||||
TurnRate=256
|
||||
Collision=0
|
||||
Health=16
|
||||
AttackStrength=20
|
||||
|
||||
[Stomper]
|
||||
Gfx=..\..\graphics\Stomper.bmp
|
||||
WayPoints=1
|
||||
Speed=5
|
||||
TurnRate=0
|
||||
Collision=0
|
||||
Health=0
|
||||
AttackStrength=20
|
||||
|
Loading…
Add table
Reference in a new issue