forked from a1batross/Paranoia2_original
master #1
|
@ -16,7 +16,7 @@ GNU General Public License for more details.
|
|||
#ifndef BSP31MIGRATE_H
|
||||
#define BSP31MIGRATE_H
|
||||
|
||||
#include <windows.h>
|
||||
#include "port.h"
|
||||
#include "cmdlib.h"
|
||||
#include "mathlib.h"
|
||||
#include "stringlib.h"
|
||||
|
@ -26,7 +26,6 @@ GNU General Public License for more details.
|
|||
#include "wadfile.h"
|
||||
#include "bspfile31.h"
|
||||
#include <fcntl.h>
|
||||
#include <io.h>
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
|
|
@ -1185,7 +1185,10 @@ int BspConvert( int argc, char **argv )
|
|||
|
||||
|
||||
if( !COM_GetParmExt( "-file", source, sizeof( source )))
|
||||
{
|
||||
printf("%s\n", source);
|
||||
|
||||
Q_strncpy( source, "*.bsp", sizeof( source ));
|
||||
}
|
||||
|
||||
search_t *search = COM_Search( source, true );
|
||||
|
||||
|
@ -1206,7 +1209,6 @@ int BspConvert( int argc, char **argv )
|
|||
Mem_Check();
|
||||
|
||||
Msg( "press any key to exit\n" );
|
||||
system( "pause>nul" );
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
a1batross
commented
Use waf. Use waf.
nillerusr
commented
why use waf for utilities? why use waf for utilities?
a1batross
commented
Because we decided to not use everything else than waf as it increases efforts on maintaining. Well, mdldec in engine repo uses Makefile. Probably for utilities it can be fine but it also have copypasted code, like checking if we are compiling for Windows, the same compiler rules and so on. Because we decided to not use everything else than waf as it increases efforts on maintaining.
Well, mdldec in engine repo uses Makefile. Probably for utilities it can be fine but it also have copypasted code, like checking if we are compiling for Windows, the same compiler rules and so on.
|
||||
gcc -I ../common/ -I../../common/ -I../../public bsp31migrate.cpp bspfile.cpp ../common/stringlib.cpp ../common/conprint.cpp ../common/cmdlib.cpp ../common/filesystem.cpp ../common/zone.cpp ../common/scriplib.cpp ../common/wadfile.cpp ../common/mathlib.cpp -ggdb -lm -o bsp31migrate
|
|
@ -34,12 +34,15 @@ typedef unsigned long ulong;
|
|||
|
||||
typedef unsigned char uint8;
|
||||
typedef signed char int8;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
typedef __int16 int16;
|
||||
typedef unsigned __int16 uint16;
|
||||
typedef __int32 int32;
|
||||
typedef unsigned __int32 uint32;
|
||||
typedef __int64 int64;
|
||||
typedef unsigned __int64 uint64;
|
||||
#endif
|
||||
|
||||
#undef true
|
||||
#undef false
|
||||
|
|
|
@ -76,7 +76,7 @@ BRUSH MODELS
|
|||
.bsp contain level static geometry with including PVS and lightning info
|
||||
==============================================================================
|
||||
*/
|
||||
#include "..\..\common\bspfile.h"
|
||||
#include "../../common/bspfile.h"
|
||||
|
||||
// header
|
||||
#define Q1BSP_VERSION 29 // quake1 regular version (beta is 28)
|
||||
|
|
|
@ -21,13 +21,19 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
*/
|
||||
|
||||
// cmdlib.c
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <direct.h>
|
||||
#include <io.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <io.h>
|
||||
#include "stringlib.h"
|
||||
#include "cmdlib.h"
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static char **com_argv;
|
||||
static int com_argc = 0;
|
||||
|
@ -118,7 +124,7 @@ void COM_FatalError( const char *error, ... )
|
|||
va_list argptr;
|
||||
|
||||
va_start( argptr, error );
|
||||
_vsnprintf( message, sizeof( message ), error, argptr );
|
||||
snprintf( message, sizeof( message ), error, argptr );
|
||||
va_end( argptr );
|
||||
|
||||
Msg( "^1Fatal Error:^7 %s", message );
|
||||
|
@ -138,7 +144,7 @@ void COM_Assert( const char *error, ... )
|
|||
va_list argptr;
|
||||
|
||||
va_start( argptr, error );
|
||||
_vsnprintf( message, sizeof( message ), error, argptr );
|
||||
snprintf( message, sizeof( message ), error, argptr );
|
||||
va_end( argptr );
|
||||
|
||||
Msg( "^1assert failed at:^7 %s", message );
|
||||
|
@ -147,7 +153,7 @@ void COM_Assert( const char *error, ... )
|
|||
|
||||
void Q_getwd( char *out, size_t size )
|
||||
{
|
||||
_getcwd( out, size );
|
||||
getcwd( out, size );
|
||||
Q_strncat( out, "\\", size );
|
||||
}
|
||||
|
||||
|
@ -209,19 +215,40 @@ I_FloatTime
|
|||
g-cont. the prefix 'I' was come from Doom code heh
|
||||
================
|
||||
*/
|
||||
double I_FloatTime( void )
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <winbase.h>
|
||||
|
||||
double GAME_EXPORT I_FloatTime( void )
|
||||
{
|
||||
static LARGE_INTEGER g_Frequency;
|
||||
static LARGE_INTEGER g_PerformanceFrequency;
|
||||
static LARGE_INTEGER g_ClockStart;
|
||||
LARGE_INTEGER CurrentTime;
|
||||
|
||||
if( !g_Frequency.QuadPart )
|
||||
if( !g_PerformanceFrequency.QuadPart )
|
||||
{
|
||||
QueryPerformanceFrequency( &g_Frequency );
|
||||
QueryPerformanceFrequency( &g_PerformanceFrequency );
|
||||
QueryPerformanceCounter( &g_ClockStart );
|
||||
}
|
||||
|
||||
QueryPerformanceCounter( &CurrentTime );
|
||||
|
||||
return (double)( CurrentTime.QuadPart - g_ClockStart.QuadPart ) / (double)( g_Frequency.QuadPart );
|
||||
return (double)( CurrentTime.QuadPart - g_ClockStart.QuadPart ) / (double)( g_PerformanceFrequency.QuadPart );
|
||||
}
|
||||
#elif _LINUX
|
||||
double GAME_EXPORT I_FloatTime( void )
|
||||
{
|
||||
static longtime_t g_PerformanceFrequency;
|
||||
static longtime_t g_ClockStart;
|
||||
longtime_t CurrentTime;
|
||||
struct timespec ts;
|
||||
|
||||
if( !g_PerformanceFrequency )
|
||||
{
|
||||
struct timespec res;
|
||||
if( !clock_getres(CLOCK_MONOTONIC, &res) )
|
||||
g_PerformanceFrequency = 1000000000LL/res.tv_nsec;
|
||||
}
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
return (double) ts.tv_sec + (double) ts.tv_nsec/1000000000.0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -18,8 +18,10 @@ GNU General Public License for more details.
|
|||
#ifndef CMDLIB_H
|
||||
#define CMDLIB_H
|
||||
|
||||
#include "port.h"
|
||||
#include <basetypes.h>
|
||||
#include "conprint.h"
|
||||
#include "mathlib.h"
|
||||
|
||||
// bit routines
|
||||
#define BIT( n ) (1<<( n ))
|
||||
|
|
|
@ -14,15 +14,18 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <basetypes.h>
|
||||
#include "stringlib.h"
|
||||
#include "conprint.h"
|
||||
#include "stdarg.h"
|
||||
|
||||
#define IsColorString( p ) ( p && *( p ) == '^' && *(( p ) + 1) && *(( p ) + 1) >= '0' && *(( p ) + 1 ) <= '9' )
|
||||
#define ColorIndex( c ) ((( c ) - '0' ) & 7 )
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
|
||||
static unsigned short g_color_table[8] =
|
||||
{
|
||||
FOREGROUND_INTENSITY, // black
|
||||
|
@ -34,6 +37,7 @@ FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY, // cyan
|
|||
FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_INTENSITY, // magenta
|
||||
FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE, // default color (white)
|
||||
};
|
||||
#endif
|
||||
|
||||
static int devloper_level = DEFAULT_DEVELOPER;
|
||||
static bool ignore_log = false;
|
||||
|
@ -101,6 +105,7 @@ print into win32 console
|
|||
*/
|
||||
void Sys_Print( const char *pMsg )
|
||||
{
|
||||
#ifdef _WIN32
|
||||
char tmpBuf[8192];
|
||||
HANDLE hOut = GetStdHandle( STD_OUTPUT_HANDLE );
|
||||
unsigned long cbWritten;
|
||||
|
@ -146,6 +151,9 @@ void Sys_Print( const char *pMsg )
|
|||
Sys_PrintLog( tmpBuf );
|
||||
pTemp = tmpBuf;
|
||||
}
|
||||
#else
|
||||
printf("%s", pMsg);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -203,6 +211,7 @@ void MsgDev( int level, const char *pMsg, ... )
|
|||
|
||||
void MsgAnim( int level, const char *pMsg, ... )
|
||||
{
|
||||
#ifdef _WIN32
|
||||
va_list argptr;
|
||||
char text[1024];
|
||||
char empty[1024];
|
||||
|
@ -228,4 +237,5 @@ void MsgAnim( int level, const char *pMsg, ... )
|
|||
Sleep( 150 );
|
||||
}
|
||||
Msg( "^7\n" );
|
||||
#endif
|
||||
}
|
|
@ -13,11 +13,19 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <direct.h>
|
||||
#include <io.h>
|
||||
#else
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <io.h>
|
||||
#include "conprint.h"
|
||||
#include "cmdlib.h"
|
||||
#include "stringlib.h"
|
||||
|
@ -147,16 +155,21 @@ void stringlistsort( stringlist_t *list )
|
|||
}
|
||||
}
|
||||
|
||||
void listdirectory( stringlist_t *list, const char *path, bool tolower )
|
||||
void listdirectory( stringlist_s *list, const char *path, bool lowercase )
|
||||
{
|
||||
int i;
|
||||
signed char *c;
|
||||
#ifdef _WIN32
|
||||
char pattern[4096];
|
||||
struct _finddata_t n_file;
|
||||
long hFile;
|
||||
char *c;
|
||||
int i;
|
||||
int hFile;
|
||||
#else
|
||||
DIR *dir;
|
||||
struct dirent *entry;
|
||||
#endif
|
||||
|
||||
Q_strncpy( pattern, path, sizeof( pattern ));
|
||||
Q_strncat( pattern, "*", sizeof( pattern ));
|
||||
#ifdef _WIN32
|
||||
Q_snprintf( pattern, sizeof( pattern ), "%s*", path );
|
||||
|
||||
// ask for the directory listing handle
|
||||
hFile = _findfirst( pattern, &n_file );
|
||||
|
@ -164,22 +177,33 @@ void listdirectory( stringlist_t *list, const char *path, bool tolower )
|
|||
|
||||
// start a new chain with the the first name
|
||||
stringlistappend( list, n_file.name );
|
||||
|
||||
// iterate through the directory
|
||||
while( _findnext( hFile, &n_file ) == 0 )
|
||||
stringlistappend( list, n_file.name );
|
||||
_findclose( hFile );
|
||||
#else
|
||||
if( !( dir = opendir( path ) ) )
|
||||
return;
|
||||
|
||||
if( !tolower ) return;
|
||||
// iterate through the directory
|
||||
while( ( entry = readdir( dir ) ))
|
||||
stringlistappend( list, entry->d_name );
|
||||
closedir( dir );
|
||||
#endif
|
||||
|
||||
// convert names to lowercase because windows doesn't care, but pattern matching code often does
|
||||
if( lowercase )
|
||||
{
|
||||
for( i = 0; i < list->numstrings; i++ )
|
||||
{
|
||||
for( c = list->strings[i]; *c; c++ )
|
||||
*c = Q_tolower( *c );
|
||||
for( c = (signed char *)list->strings[i]; *c; c++ )
|
||||
{
|
||||
if( *c >= 'A' && *c <= 'Z' )
|
||||
*c += 'a' - 'A';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
=============================================================================
|
||||
|
||||
|
@ -212,20 +236,21 @@ search_t *COM_Search( const char *pattern, int caseinsensitive, wfile_t *source_
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if( !GetCurrentDirectory( sizeof( root ), root ))
|
||||
if( !getcwd(root, sizeof( root ) ) )
|
||||
nillerusr marked this conversation as resolved
a1batross
commented
You already have Q_getwd. Why not to use it? You already have Q_getwd. Why not to use it?
nillerusr
commented
There is no Q_getcwd There is no Q_getcwd
|
||||
{
|
||||
MsgDev( D_ERROR, "couldn't determine current directory\n" );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Q_strncat( root, "\\", sizeof( root ));
|
||||
Q_strncat( root, "/", sizeof( root ));
|
||||
stringlistinit( &resultlist );
|
||||
stringlistinit( &dirlist );
|
||||
|
||||
slash = Q_strrchr( pattern, '/' );
|
||||
backslash = Q_strrchr( pattern, '\\' );
|
||||
colon = Q_strrchr( pattern, ':' );
|
||||
separator = max( slash, backslash );
|
||||
separator = max( separator, colon );
|
||||
separator = Q_max( slash, backslash );
|
||||
separator = Q_max( separator, colon );
|
||||
basepathlength = separator ? (separator + 1 - pattern) : 0;
|
||||
basepath = (char *)Mem_Alloc( basepathlength + 1 );
|
||||
if( basepathlength ) memcpy( basepath, pattern, basepathlength );
|
||||
|
@ -357,7 +382,11 @@ void COM_CreatePath( char *path )
|
|||
// create the directory
|
||||
save = *ofs;
|
||||
*ofs = 0;
|
||||
_mkdir( path );
|
||||
#ifdef _WIN32
|
||||
mkdir( path );
|
||||
#else
|
||||
mkdir( path, 0777);
|
||||
#endif
|
||||
*ofs = save;
|
||||
}
|
||||
}
|
||||
|
@ -555,9 +584,28 @@ COM_FolderExists
|
|||
*/
|
||||
bool COM_FolderExists( const char *path )
|
||||
{
|
||||
#if XASH_WIN32
|
||||
DWORD dwFlags = GetFileAttributes( path );
|
||||
|
||||
return ( dwFlags != -1 ) && FBitSet( dwFlags, FILE_ATTRIBUTE_DIRECTORY );
|
||||
return ( dwFlags != -1 ) && ( dwFlags & FILE_ATTRIBUTE_DIRECTORY );
|
||||
#else
|
||||
DIR *dir = opendir( path );
|
||||
|
||||
if( dir )
|
||||
{
|
||||
closedir( dir );
|
||||
return true;
|
||||
}
|
||||
else if( (errno == ENOENT) || (errno == ENOTDIR) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
MsgDev( D_ERROR, "FS_SysFolderExists: problem while opening dir: %s\n", strerror( errno ) );
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -78,7 +78,7 @@ typedef struct vfile_s
|
|||
|
||||
extern const wadtype_t wad_hints[];
|
||||
|
||||
search_t *COM_Search( const char *pattern, int caseinsensitive, wfile_t *source_wad = NULL );
|
||||
search_t *COM_Search( const char *pattern, int caseinsensitive, wfile_s *source_wad = NULL );
|
||||
search_t *FS_Search( const char *pattern, int caseinsensitive, int gamedironly );
|
||||
byte *COM_LoadFile( const char *filepath, size_t *filesize, bool safe = true );
|
||||
bool COM_SaveFile( const char *filepath, void *buffer, size_t filesize, bool safe = true );
|
||||
|
|
|
@ -193,6 +193,7 @@ SinCos
|
|||
*/
|
||||
void SinCos( float radians, float *sine, float *cosine )
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
a1batross
commented
_MSC_VER and x86. _MSC_VER and x86.
|
||||
_asm
|
||||
{
|
||||
fld dword ptr [radians]
|
||||
|
@ -204,6 +205,10 @@ void SinCos( float radians, float *sine, float *cosine )
|
|||
fstp dword ptr [edx]
|
||||
fstp dword ptr [eax]
|
||||
}
|
||||
#else
|
||||
*sine = sin(radians);
|
||||
*cosine = cos(radians);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -405,7 +410,8 @@ fast box on planeside test
|
|||
*/
|
||||
int SignbitsForPlane( const vec3_t normal )
|
||||
{
|
||||
for( int bits = 0, i = 0; i < 3; i++ )
|
||||
int bits, i;
|
||||
for( bits = 0, i = 0; i < 3; i++ )
|
||||
if( normal[i] < 0.0f )
|
||||
bits |= 1<<i;
|
||||
return bits;
|
||||
|
|
|
@ -28,7 +28,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
#include "stringlib.h"
|
||||
#include "filesystem.h"
|
||||
#include <stdarg.h>
|
||||
#include <windows.h>
|
||||
|
||||
/*
|
||||
=============================================================================
|
||||
|
|
|
@ -3,11 +3,12 @@
|
|||
// stringlib.cpp - safety string routines
|
||||
//=======================================================================
|
||||
|
||||
#include <windows.h>
|
||||
#include "port.h"
|
||||
#include <ctype.h>
|
||||
#include "stringlib.h"
|
||||
#include <direct.h>
|
||||
#include "cmdlib.h"
|
||||
#include "mathlib.h"
|
||||
#include "stdarg.h"
|
||||
|
||||
void Q_strnupr( const char *in, char *out, size_t size_out )
|
||||
{
|
||||
|
@ -287,17 +288,21 @@ int Q_vsnprintf( char *buffer, size_t buffersize, const char *format, va_list ar
|
|||
{
|
||||
size_t result;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
__try
|
||||
#endif
|
||||
{
|
||||
result = _vsnprintf( buffer, buffersize, format, args );
|
||||
result = vsnprintf( buffer, buffersize, format, args );
|
||||
}
|
||||
|
||||
// to prevent crash while output
|
||||
#ifdef _MSC_VER
|
||||
__except( EXCEPTION_EXECUTE_HANDLER )
|
||||
{
|
||||
Q_strncpy( buffer, "^1sprintf throw exception^7\n", buffersize );
|
||||
result = buffersize;
|
||||
}
|
||||
#endif
|
||||
|
||||
if( result < 0 || result >= buffersize )
|
||||
{
|
||||
|
|
|
@ -14,11 +14,8 @@ GNU General Public License for more details.
|
|||
*/
|
||||
|
||||
#include "conprint.h"
|
||||
#include <windows.h>
|
||||
#include <direct.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <io.h>
|
||||
#include "cmdlib.h"
|
||||
#include "stringlib.h"
|
||||
#include "filesystem.h"
|
||||
|
|
|
@ -13,7 +13,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
//#include <windows.h>
|
||||
#include "cmdlib.h"
|
||||
#include "threads.h"
|
||||
#include "stringlib.h"
|
||||
|
@ -62,7 +62,7 @@ static void *attempt_calloc( size_t size )
|
|||
if(( base = (void *)calloc( size, 1 )) != NULL )
|
||||
return base;
|
||||
// try for half a second or so
|
||||
Sleep( 100 );
|
||||
usleep( 100000 );
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Please remove unnecessary logging.