[8272] Fixed typos in world 'height' by code. Author: Sorya

--HG--
branch : trunk
This commit is contained in:
megamage
2009-07-31 11:25:28 +08:00
parent 123ea8543a
commit ca271eb5dc
4 changed files with 48 additions and 35 deletions
+26 -21
View File
@@ -241,10 +241,11 @@ void ReadLiquidTypeTableDBC()
#define MAP_MAGIC 'SPAM' #define MAP_MAGIC 'SPAM'
#define MAP_VERSION_MAGIC '0.1w' #define MAP_VERSION_MAGIC '0.1w'
#define MAP_AREA_MAGIC 'AERA' #define MAP_AREA_MAGIC 'AERA'
#define MAP_HEIGTH_MAGIC 'TGHM' #define MAP_HEIGHT_MAGIC 'TGHM'
#define MAP_LIQUID_MAGIC 'QILM' #define MAP_LIQUID_MAGIC 'QILM'
struct map_fileheader{ struct map_fileheader
{
uint32 mapMagic; uint32 mapMagic;
uint32 versionMagic; uint32 versionMagic;
uint32 areaMapOffset; uint32 areaMapOffset;
@@ -256,17 +257,20 @@ struct map_fileheader{
}; };
#define MAP_AREA_NO_AREA 0x0001 #define MAP_AREA_NO_AREA 0x0001
struct map_areaHeader{
struct map_areaHeader
{
uint32 fourcc; uint32 fourcc;
uint16 flags; uint16 flags;
uint16 gridArea; uint16 gridArea;
}; };
#define MAP_HEIGHT_NO_HIGHT 0x0001 #define MAP_HEIGHT_NO_HEIGHT 0x0001
#define MAP_HEIGHT_AS_INT16 0x0002 #define MAP_HEIGHT_AS_INT16 0x0002
#define MAP_HEIGHT_AS_INT8 0x0004 #define MAP_HEIGHT_AS_INT8 0x0004
struct map_heightHeader{ struct map_heightHeader
{
uint32 fourcc; uint32 fourcc;
uint32 flags; uint32 flags;
float gridHeight; float gridHeight;
@@ -284,9 +288,10 @@ struct map_heightHeader{
#define MAP_LIQUID_NO_TYPE 0x0001 #define MAP_LIQUID_NO_TYPE 0x0001
#define MAP_LIQUID_NO_HIGHT 0x0002 #define MAP_LIQUID_NO_HEIGHT 0x0002
struct map_liquidHeader{ struct map_liquidHeader
{
uint32 fourcc; uint32 fourcc;
uint16 flags; uint16 flags;
uint16 liquidType; uint16 liquidType;
@@ -511,20 +516,20 @@ bool ConvertADT(char *filename, char *filename2, int cell_y, int cell_x)
map.heightMapSize = sizeof(map_heightHeader); map.heightMapSize = sizeof(map_heightHeader);
map_heightHeader heightHeader; map_heightHeader heightHeader;
heightHeader.fourcc = MAP_HEIGTH_MAGIC; heightHeader.fourcc = MAP_HEIGHT_MAGIC;
heightHeader.flags = 0; heightHeader.flags = 0;
heightHeader.gridHeight = minHeight; heightHeader.gridHeight = minHeight;
heightHeader.gridMaxHeight = maxHeight; heightHeader.gridMaxHeight = maxHeight;
if (maxHeight == minHeight) if (maxHeight == minHeight)
heightHeader.flags |=MAP_HEIGHT_NO_HIGHT; heightHeader.flags |= MAP_HEIGHT_NO_HEIGHT;
// Not need store if flat surface // Not need store if flat surface
if (CONF_allow_float_to_int && (maxHeight - minHeight) < CONF_flat_height_delta_limit) if (CONF_allow_float_to_int && (maxHeight - minHeight) < CONF_flat_height_delta_limit)
heightHeader.flags |=MAP_HEIGHT_NO_HIGHT; heightHeader.flags |= MAP_HEIGHT_NO_HEIGHT;
// Try store as packed in uint16 or uint8 values // Try store as packed in uint16 or uint8 values
if (!(heightHeader.flags&MAP_HEIGHT_NO_HIGHT)) if (!(heightHeader.flags & MAP_HEIGHT_NO_HEIGHT))
{ {
float step; float step;
// Try Store as uint values // Try Store as uint values
@@ -756,22 +761,22 @@ bool ConvertADT(char *filename, char *filename2, int cell_y, int cell_x)
liquidHeader.liquidLevel = minHeight; liquidHeader.liquidLevel = minHeight;
if (maxHeight == minHeight) if (maxHeight == minHeight)
liquidHeader.flags|=MAP_LIQUID_NO_HIGHT; liquidHeader.flags |= MAP_LIQUID_NO_HEIGHT;
// Not need store if flat surface // Not need store if flat surface
if (CONF_allow_float_to_int && (maxHeight - minHeight) < CONF_flat_liquid_delta_limit) if (CONF_allow_float_to_int && (maxHeight - minHeight) < CONF_flat_liquid_delta_limit)
liquidHeader.flags|=MAP_LIQUID_NO_HIGHT; liquidHeader.flags |= MAP_LIQUID_NO_HEIGHT;
if (!fullType) if (!fullType)
liquidHeader.flags|=MAP_LIQUID_NO_TYPE; liquidHeader.flags |= MAP_LIQUID_NO_TYPE;
if (liquidHeader.flags&MAP_LIQUID_NO_TYPE) if (liquidHeader.flags & MAP_LIQUID_NO_TYPE)
liquidHeader.liquidType = type; liquidHeader.liquidType = type;
else else
map.liquidMapSize+=sizeof(liquid_type); map.liquidMapSize+=sizeof(liquid_type);
if (!(liquidHeader.flags&MAP_LIQUID_NO_HIGHT)) if (!(liquidHeader.flags & MAP_LIQUID_NO_HEIGHT))
map.liquidMapSize+=sizeof(float)*liquidHeader.width*liquidHeader.height; map.liquidMapSize += sizeof(float)*liquidHeader.width*liquidHeader.height;
} }
// Ok all data prepared - store it // Ok all data prepared - store it
@@ -789,14 +794,14 @@ bool ConvertADT(char *filename, char *filename2, int cell_y, int cell_x)
// Store height data // Store height data
fwrite(&heightHeader, sizeof(heightHeader), 1, output); fwrite(&heightHeader, sizeof(heightHeader), 1, output);
if (!(heightHeader.flags&MAP_HEIGHT_NO_HIGHT)) if (!(heightHeader.flags & MAP_HEIGHT_NO_HEIGHT))
{ {
if (heightHeader.flags&MAP_HEIGHT_AS_INT16) if (heightHeader.flags & MAP_HEIGHT_AS_INT16)
{ {
fwrite(uint16_V9, sizeof(uint16_V9), 1, output); fwrite(uint16_V9, sizeof(uint16_V9), 1, output);
fwrite(uint16_V8, sizeof(uint16_V8), 1, output); fwrite(uint16_V8, sizeof(uint16_V8), 1, output);
} }
else if (heightHeader.flags&MAP_HEIGHT_AS_INT8) else if (heightHeader.flags & MAP_HEIGHT_AS_INT8)
{ {
fwrite(uint8_V9, sizeof(uint8_V9), 1, output); fwrite(uint8_V9, sizeof(uint8_V9), 1, output);
fwrite(uint8_V8, sizeof(uint8_V8), 1, output); fwrite(uint8_V8, sizeof(uint8_V8), 1, output);
@@ -814,7 +819,7 @@ bool ConvertADT(char *filename, char *filename2, int cell_y, int cell_x)
fwrite(&liquidHeader, sizeof(liquidHeader), 1, output); fwrite(&liquidHeader, sizeof(liquidHeader), 1, output);
if (!(liquidHeader.flags&MAP_LIQUID_NO_TYPE)) if (!(liquidHeader.flags&MAP_LIQUID_NO_TYPE))
fwrite(liquid_type, sizeof(liquid_type), 1, output); fwrite(liquid_type, sizeof(liquid_type), 1, output);
if (!(liquidHeader.flags&MAP_LIQUID_NO_HIGHT)) if (!(liquidHeader.flags&MAP_LIQUID_NO_HEIGHT))
{ {
for (int y=0; y<liquidHeader.height;y++) for (int y=0; y<liquidHeader.height;y++)
fwrite(&liquid_height[y+liquidHeader.offsetY][liquidHeader.offsetX], sizeof(float), liquidHeader.width, output); fwrite(&liquid_height[y+liquidHeader.offsetY][liquidHeader.offsetX], sizeof(float), liquidHeader.width, output);
+4 -4
View File
@@ -1329,11 +1329,11 @@ bool GridMap::loadHeihgtData(FILE *in, uint32 offset, uint32 size)
map_heightHeader header; map_heightHeader header;
fseek(in, offset, SEEK_SET); fseek(in, offset, SEEK_SET);
fread(&header, sizeof(header), 1, in); fread(&header, sizeof(header), 1, in);
if (header.fourcc != uint32(MAP_HEIGTH_MAGIC)) if (header.fourcc != uint32(MAP_HEIGHT_MAGIC))
return false; return false;
m_gridHeight = header.gridHeight; m_gridHeight = header.gridHeight;
if (!(header.flags & MAP_HEIGHT_NO_HIGHT)) if (!(header.flags & MAP_HEIGHT_NO_HEIGHT))
{ {
if ((header.flags & MAP_HEIGHT_AS_INT16)) if ((header.flags & MAP_HEIGHT_AS_INT16))
{ {
@@ -1382,12 +1382,12 @@ bool GridMap::loadLiquidData(FILE *in, uint32 offset, uint32 size)
m_liquid_height= header.height; m_liquid_height= header.height;
m_liquidLevel = header.liquidLevel; m_liquidLevel = header.liquidLevel;
if (!(header.flags&MAP_LIQUID_NO_TYPE)) if (!(header.flags & MAP_LIQUID_NO_TYPE))
{ {
m_liquid_type = new uint8 [16*16]; m_liquid_type = new uint8 [16*16];
fread(m_liquid_type, sizeof(uint8), 16*16, in); fread(m_liquid_type, sizeof(uint8), 16*16, in);
} }
if (!(header.flags&MAP_LIQUID_NO_HIGHT)) if (!(header.flags & MAP_LIQUID_NO_HEIGHT))
{ {
m_liquid_map = new float [m_liquid_width*m_liquid_height]; m_liquid_map = new float [m_liquid_width*m_liquid_height];
fread(m_liquid_map, sizeof(float), m_liquid_width*m_liquid_height, in); fread(m_liquid_map, sizeof(float), m_liquid_width*m_liquid_height, in);
+17 -9
View File
@@ -77,10 +77,11 @@ typedef MaNGOS::SingleThreaded<GridRWLock>::Lock NullGuard;
#define MAP_MAGIC 'SPAM' #define MAP_MAGIC 'SPAM'
#define MAP_VERSION_MAGIC '0.1w' #define MAP_VERSION_MAGIC '0.1w'
#define MAP_AREA_MAGIC 'AERA' #define MAP_AREA_MAGIC 'AERA'
#define MAP_HEIGTH_MAGIC 'TGHM' #define MAP_HEIGHT_MAGIC 'TGHM'
#define MAP_LIQUID_MAGIC 'QILM' #define MAP_LIQUID_MAGIC 'QILM'
struct map_fileheader{ struct map_fileheader
{
uint32 mapMagic; uint32 mapMagic;
uint32 versionMagic; uint32 versionMagic;
uint32 areaMapOffset; uint32 areaMapOffset;
@@ -92,17 +93,20 @@ struct map_fileheader{
}; };
#define MAP_AREA_NO_AREA 0x0001 #define MAP_AREA_NO_AREA 0x0001
struct map_areaHeader{
struct map_areaHeader
{
uint32 fourcc; uint32 fourcc;
uint16 flags; uint16 flags;
uint16 gridArea; uint16 gridArea;
}; };
#define MAP_HEIGHT_NO_HIGHT 0x0001 #define MAP_HEIGHT_NO_HEIGHT 0x0001
#define MAP_HEIGHT_AS_INT16 0x0002 #define MAP_HEIGHT_AS_INT16 0x0002
#define MAP_HEIGHT_AS_INT8 0x0004 #define MAP_HEIGHT_AS_INT8 0x0004
struct map_heightHeader{ struct map_heightHeader
{
uint32 fourcc; uint32 fourcc;
uint32 flags; uint32 flags;
float gridHeight; float gridHeight;
@@ -110,8 +114,10 @@ struct map_heightHeader{
}; };
#define MAP_LIQUID_NO_TYPE 0x0001 #define MAP_LIQUID_NO_TYPE 0x0001
#define MAP_LIQUID_NO_HIGHT 0x0002 #define MAP_LIQUID_NO_HEIGHT 0x0002
struct map_liquidHeader{
struct map_liquidHeader
{
uint32 fourcc; uint32 fourcc;
uint16 flags; uint16 flags;
uint16 liquidType; uint16 liquidType;
@@ -122,7 +128,8 @@ struct map_liquidHeader{
float liquidLevel; float liquidLevel;
}; };
enum ZLiquidStatus{ enum ZLiquidStatus
{
LIQUID_MAP_NO_WATER = 0x00000000, LIQUID_MAP_NO_WATER = 0x00000000,
LIQUID_MAP_ABOVE_WATER = 0x00000001, LIQUID_MAP_ABOVE_WATER = 0x00000001,
LIQUID_MAP_WATER_WALK = 0x00000002, LIQUID_MAP_WATER_WALK = 0x00000002,
@@ -141,7 +148,8 @@ enum ZLiquidStatus{
#define MAP_LIQUID_TYPE_DARK_WATER 0x10 #define MAP_LIQUID_TYPE_DARK_WATER 0x10
#define MAP_LIQUID_TYPE_WMO_WATER 0x20 #define MAP_LIQUID_TYPE_WMO_WATER 0x20
struct LiquidData{ struct LiquidData
{
uint32 type; uint32 type;
float level; float level;
float depth_level; float depth_level;
+1 -1
View File
@@ -446,7 +446,7 @@ namespace VMAP
//========================================================= //=========================================================
/** /**
get height or INVALID_HEIGHT if to hight was calculated get height or INVALID_HEIGHT if to height was calculated
*/ */
//int gGetHeightCounter = 0; //int gGetHeightCounter = 0;