SBSPSS/Utils/MapEdit/ExportHdr.h

235 lines
4.5 KiB
C
Raw Normal View History

2001-02-01 15:46:51 +01:00
/**********************/
/*** Export Structs ***/
/**********************/
#ifndef __EXPORT_STRUCTS_HEADER__
#define __EXPORT_STRUCTS_HEADER__
#include <Vector>
#include <List.h>
2001-04-30 23:49:54 +02:00
/*****************************************************************************/
struct sRGBCol
{
u8 R,G,B,P;
};
struct sXY
{
int x,y;
};
2001-02-01 15:46:51 +01:00
/*****************************************************************************/
2001-04-09 16:04:42 +02:00
#define EXPORT_LAYER_COUNT 16
2001-02-01 15:46:51 +01:00
struct sExpFileHdr
{
int TileCount;
int TileOfs;
2001-02-06 23:25:39 +01:00
int TileW,TileH;
2001-02-01 15:46:51 +01:00
int TriCount;
int TriOfs;
2001-02-06 23:25:39 +01:00
int SetNameCount;
int SetNameOfs;
int TexNameCount;
int TexNameOfs;
2001-02-01 15:46:51 +01:00
int LayerCount;
2001-02-07 22:31:31 +01:00
int LayerOfs[EXPORT_LAYER_COUNT];
2001-02-01 15:46:51 +01:00
};
/*****************************************************************************/
2001-02-06 23:25:39 +01:00
struct sExpTile
2001-02-01 15:46:51 +01:00
{
2001-02-06 23:25:39 +01:00
int Set;
int Tile;
int TriStart;
int TriCount;
u16 XOfs,YOfs;
u8 *RGB;
// int TexId; // n -1
// int Flags; // Flip Flags
bool operator==(sExpTile const &v1)
{
return(Set==v1.Set && Tile==v1.Tile);
}
};
2001-02-20 16:57:03 +01:00
/*****************************************************************************/
struct sExpColTile
{
u8 Tile;
u8 Flags;
bool operator==(sExpColTile const &v1)
{
return(Tile==v1.Tile && Flags==v1.Flags);
}
};
2001-02-06 23:25:39 +01:00
/*****************************************************************************/
struct sExpTri
{
int TexID;
Vector3 vtx[3];
float uv[3][2];
2001-05-02 20:40:41 +02:00
int Flags;
2001-02-01 15:46:51 +01:00
};
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
struct sExpLayerHdr
{
int Type;
int SubType;
int Width;
int Height;
};
/*****************************************************************************/
struct sExpLayerTile
{
2001-02-06 23:25:39 +01:00
u16 Tile;
u16 Flags;
// bool operator==(sExpLayerTile const &v1) {return (Tile==v1.Tile);}
2001-04-19 17:36:49 +02:00
//bool operator==(sExpLayerTile const &v1) {return (Tile==v1.Tile);}
bool operator ==(sExpLayerTile const &v1) {return(Tile==v1.Tile && Flags==v1.Flags);}
2001-02-01 15:46:51 +01:00
};
2001-04-30 23:49:54 +02:00
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
struct sLayerShadeGfx
{
sRGBCol RGB[4];
int Gfx;
sXY Pos;
sXY Ofs[4];
int TransMode;
};
2001-02-01 15:46:51 +01:00
/*****************************************************************************/
2001-04-30 23:49:54 +02:00
/*** Things ******************************************************************/
/*****************************************************************************/
struct sLayerThingDef
2001-02-01 15:46:51 +01:00
{
2001-04-30 23:49:54 +02:00
int Store[32];
};
2001-02-01 15:46:51 +01:00
2001-04-30 23:49:54 +02:00
struct sLayerThingActor
{
int ActorSpeed;
int ActorTurnRate;
int ActorHealth;
int ActorAttackStrength;
bool ActorCollisionFlag;
2001-02-01 15:46:51 +01:00
};
2001-04-30 23:49:54 +02:00
struct sLayerThingItem
2001-02-01 15:46:51 +01:00
{
2001-04-30 23:49:54 +02:00
};
2001-02-01 15:46:51 +01:00
2001-04-30 23:49:54 +02:00
struct sLayerThingPlatform
{
int PlatformSpeed;
int PlatformTurnRate;
int PlatformCollisionFlag;
int PlatformType;
int PlatformMoveType;
int PlatformTriStart;
int PlatformTriCount;
2001-05-05 23:18:12 +02:00
int PlatformParam0;
2001-02-01 15:46:51 +01:00
};
2001-04-30 23:49:54 +02:00
struct sLayerThingTrigger
{
int TriggerWidth;
int TriggerHeight;
int TriggerTargetX;
int TriggerTargetY;
2001-05-05 23:18:12 +02:00
int TriggerTargetW;
int TriggerTargetH;
2001-04-30 23:49:54 +02:00
};
struct sLayerThingFX
{
int FXSpeed;
int FXWidth;
int FXHeight;
};
struct sLayerThingHazard
{
int HazardSpeed;
int HazardTurnRate;
int HazardHealth;
int HazardAttackStrength;
int HazardRespawn;
bool HazardCollisionFlag;
int HazardTriStart;
int HazardTriCount;
};
2001-04-07 23:05:33 +02:00
struct sLayerThingData
2001-05-09 23:56:48 +02:00
{
int WaypointCount;
int Angle;
int Flip;
union
{
sLayerThingDef RESERVE;
sLayerThingActor Actor;
sLayerThingItem Item;
sLayerThingPlatform Platform;
sLayerThingTrigger Trigger;
sLayerThingFX FX;
sLayerThingHazard Hazard;
};
};
struct sLayerThingDataV9
2001-03-29 19:59:01 +02:00
{
2001-04-07 23:05:33 +02:00
int WaypointCount;
2001-04-30 23:49:54 +02:00
union
{
sLayerThingDef RESERVE;
sLayerThingActor Actor;
sLayerThingItem Item;
sLayerThingPlatform Platform;
sLayerThingTrigger Trigger;
sLayerThingFX FX;
sLayerThingHazard Hazard;
};
};
struct sLayerThingDataOLD
{
int WaypointCount;
2001-04-01 22:22:49 +02:00
int Speed;
int TurnRate;
2001-04-07 23:05:33 +02:00
int Health;
int AttackStrength;
2001-03-29 19:59:01 +02:00
bool CollisionFlag;
bool PlayerFlag;
2001-04-07 23:05:33 +02:00
// Platform
int MoveType;
int PlatformType;
// Boxes
int Width,Height;
2001-04-23 16:51:44 +02:00
int TriStart,TriCount;
2001-04-30 23:49:54 +02:00
int TargetX,TargetY;
// NO SPARE!!
2001-03-29 19:59:01 +02:00
};
2001-04-07 23:05:33 +02:00
2001-04-30 23:49:54 +02:00
2001-02-01 15:46:51 +01:00
#endif