- fix compilation error with non-MSVC toolchains

This commit is contained in:
alexey.lysiuk 2016-11-12 12:03:29 +02:00
parent 97dd5ed070
commit 554774506d
7 changed files with 53 additions and 26 deletions

View file

@ -55,13 +55,10 @@
*/ */
#include <windows.h>
#include <direct.h>
#include <io.h>
#include <stdio.h> #include <stdio.h>
#include "zlib/zlib.h" #include "zlib/zlib.h"
#include "wadext.h" #include "wadext.h"
#include "ResourceFile.h" #include "resourcefile.h"
#include "fileformat.h" #include "fileformat.h"
#include "tarray.h" #include "tarray.h"
@ -602,12 +599,12 @@ bool IsHack(const uint8_t *data, int length)
{ {
for (x = 0; x < x2; ++x) for (x = 0; x < x2; ++x)
{ {
const column_t *col = (column_t*)((BYTE*)realpatch + cofs[x]); const column_t *col = (column_t*)((uint8_t *)realpatch + cofs[x]);
if (col->topdelta != 0 || col->length != 0) if (col->topdelta != 0 || col->length != 0)
{ {
return false; // It's not bad! return false; // It's not bad!
} }
col = (column_t *)((BYTE *)col + 256 + 4); col = (column_t *)((uint8_t *)col + 256 + 4);
if (col->topdelta != 0xFF) if (col->topdelta != 0xFF)
{ {
return false; // More than one post in a column! return false; // More than one post in a column!
@ -635,7 +632,7 @@ bool PatchToPng(int options, const uint8_t *ldata, int length, const char *pngpa
uint8_t *image = new uint8_t[width * height * 4]; uint8_t *image = new uint8_t[width * height * 4];
memset(image, 0, width*height * 4); memset(image, 0, width*height * 4);
maxcol = (const column_t *)((const BYTE *)patch + length - 3); maxcol = (const column_t *)((const uint8_t *)patch + length - 3);
// detect broken patches // detect broken patches
if (IsHack(ldata, length)) if (IsHack(ldata, length))
@ -643,7 +640,7 @@ bool PatchToPng(int options, const uint8_t *ldata, int length, const char *pngpa
// Draw the image to the buffer // Draw the image to the buffer
for (x = 0; x < width; ++x) for (x = 0; x < width; ++x)
{ {
const BYTE *in = (const BYTE *)patch + patch->columnofs[x] + 3; const uint8_t *in = (const uint8_t *)patch + patch->columnofs[x] + 3;
for (int y = height; y > 0; --y) for (int y = height; y > 0; --y)
{ {
@ -662,7 +659,7 @@ bool PatchToPng(int options, const uint8_t *ldata, int length, const char *pngpa
// Draw the image to the buffer // Draw the image to the buffer
for (x = 0; x < width; ++x) for (x = 0; x < width; ++x)
{ {
const column_t *column = (const column_t *)((const BYTE *)patch + patch->columnofs[x]); const column_t *column = (const column_t *)((const uint8_t *)patch + patch->columnofs[x]);
int top = -1; int top = -1;
while (column < maxcol && column->topdelta != 0xFF) while (column < maxcol && column->topdelta != 0xFF)
@ -686,7 +683,7 @@ bool PatchToPng(int options, const uint8_t *ldata, int length, const char *pngpa
} }
if (len > 0) if (len > 0)
{ {
const BYTE *in = (const BYTE *)column + 3; const uint8_t *in = (const uint8_t *)column + 3;
for (int i = 0; i < len; ++i) for (int i = 0; i < len; ++i)
{ {
unsigned char *ddata = &image[(x + (top+i)*width) * 4]; unsigned char *ddata = &image[(x + (top+i)*width) * 4];
@ -697,7 +694,7 @@ bool PatchToPng(int options, const uint8_t *ldata, int length, const char *pngpa
} }
} }
} }
column = (const column_t *)((const BYTE *)column + column->length + 4); column = (const column_t *)((const uint8_t *)column + column->length + 4);
} }
} }
} }

View file

@ -20,10 +20,9 @@
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
// //
#include <windows.h>
#include <direct.h>
#include <io.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "wadext.h" #include "wadext.h"
#include "fileformat.h" #include "fileformat.h"

View file

@ -70,8 +70,8 @@ struct FileType
// posts are runs of non masked source pixels // posts are runs of non masked source pixels
struct column_t struct column_t
{ {
BYTE topdelta; // -1 is the last post in a column uint8_t topdelta; // -1 is the last post in a column
BYTE length; // length data bytes follows uint8_t length; // length data bytes follows
}; };
struct patch_t struct patch_t
@ -127,9 +127,9 @@ struct PCXHeader
}; };
#ifndef __BIG_ENDIAN__ #ifndef __BIG_ENDIAN__
#define MAKE_ID(a,b,c,d) ((DWORD)((a)|((b)<<8)|((c)<<16)|((d)<<24))) #define MAKE_ID(a,b,c,d) ((uint32_t)((a)|((b)<<8)|((c)<<16)|((d)<<24)))
#else #else
#define MAKE_ID(a,b,c,d) ((DWORD)((d)|((c)<<8)|((b)<<16)|((a)<<24))) #define MAKE_ID(a,b,c,d) ((uint32_t)((d)|((c)<<8)|((b)<<16)|((a)<<24)))
#endif #endif
#pragma pack() #pragma pack()

View file

@ -20,8 +20,6 @@
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
// //
#include <direct.h>
#include <io.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>

View file

@ -20,13 +20,17 @@
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
// //
#include <windows.h> #ifdef _MSC_VER
#include <direct.h> #include <direct.h>
#include <io.h> #else // !_MSC_VER
#include <unistd.h>
#include <sys/stat.h>
#endif // _MSC_VER
#include <string.h>
#include <stdio.h> #include <stdio.h>
#include <string> #include <string>
#include "wadext.h" #include "wadext.h"
#include "ResourceFile.h" #include "resourcefile.h"
#include "fileformat.h" #include "fileformat.h"
#pragma warning(disable:4996) #pragma warning(disable:4996)
@ -38,6 +42,34 @@ char maindir[128];
bool pstartfound=false; bool pstartfound=false;
WadItemList PNames(-1); WadItemList PNames(-1);
#ifndef _MSC_VER
static char* strlwr(char* str)
{
for (char* ch = str; '\0' != *ch; ++ch)
{
*ch = tolower(*ch);
}
return str;
}
static char* strupr(char* str)
{
for (char* ch = str; '\0' != *ch; ++ch)
{
*ch = tolower(*ch);
}
return str;
}
static int mkdir(const char *path)
{
return mkdir(path, 0755);
}
#endif // !_MSC_VER
char * getdir(const char * lump) char * getdir(const char * lump)
{ {
@ -133,7 +165,8 @@ void Extract(WadItemList *w,char * dir,const char * ext, int options, bool isfla
// Flats are easy to misidentify so if we are in the flat namespace and the size is exactly 4096 bytes, let it pass as flat // Flats are easy to misidentify so if we are in the flat namespace and the size is exactly 4096 bytes, let it pass as flat
if (isflat && (ft.type & FG_MASK) != FG_GFX && (ft.type == FT_DOOMSND || ft.type == FT_MP3 || w->Length() == 4096)) if (isflat && (ft.type & FG_MASK) != FG_GFX && (ft.type == FT_DOOMSND || ft.type == FT_MP3 || w->Length() == 4096))
{ {
ft = { FT_BINARY, ".LMP"}; ft.type = FT_BINARY;
ft.extension = ".LMP";
} }
if (dir != NULL) if (dir != NULL)

View file

@ -22,7 +22,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "ResourceFile.h" #include "resourcefile.h"
//========================================================================== //==========================================================================
// //

View file

@ -2,7 +2,7 @@
#pragma pack(1) #pragma pack(1)
#pragma warning(disable:4200) #pragma warning(disable:4200)
#include "ResourceFile.h" #include "resourcefile.h"
extern CWADFile *mainwad; extern CWADFile *mainwad;