mirror of
https://github.com/kevinbentley/Descent3.git
synced 2025-01-22 19:55:23 +00:00
133 lines
2.3 KiB
C++
133 lines
2.3 KiB
C++
|
#include <stdarg.h>
|
||
|
#include <math.h>
|
||
|
#include <ctype.h>
|
||
|
#include "debug.h"
|
||
|
#include "mem.h"
|
||
|
#include "ddio.h"
|
||
|
|
||
|
//void atexit(void *proc)
|
||
|
//{
|
||
|
// mprintf((2, "atexit\n"));
|
||
|
//}
|
||
|
|
||
|
int stricmp(const char *s1, const char *s2)
|
||
|
{
|
||
|
char c1, c2;
|
||
|
while (1)
|
||
|
{
|
||
|
c1 = tolower(*s1++);
|
||
|
c2 = tolower(*s2++);
|
||
|
if (c1 < c2) return -1;
|
||
|
if (c1 > c2) return 1;
|
||
|
if (c1 == 0) return 0;
|
||
|
}
|
||
|
}
|
||
|
int strnicmp(const char *s1, const char *s2, int n)
|
||
|
{
|
||
|
int i;
|
||
|
char c1, c2;
|
||
|
for (i=0; i<n; i++)
|
||
|
{
|
||
|
c1 = tolower(*s1++);
|
||
|
c2 = tolower(*s2++);
|
||
|
if (c1 < c2) return -1;
|
||
|
if (c1 > c2) return 1;
|
||
|
if (!c1) return 0;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
void Sleep(int millis)
|
||
|
{
|
||
|
longlong start = timer_GetMSTime();
|
||
|
while(timer_GetMSTime() - start < millis)
|
||
|
;
|
||
|
}
|
||
|
#define USE_MALLOC
|
||
|
|
||
|
void HeapFree(HANDLE heap, int dummy, void *mptr)
|
||
|
{
|
||
|
if(mptr)
|
||
|
#ifdef USE_MALLOC
|
||
|
free(mptr);
|
||
|
#else
|
||
|
DisposePtr((char *)mptr);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
void *HeapAlloc(HANDLE heap, int dummy, int size)
|
||
|
{
|
||
|
if(size<=0)
|
||
|
return NULL;
|
||
|
#ifdef USE_MALLOC
|
||
|
return malloc(size);
|
||
|
#else
|
||
|
return NewPtr(size);
|
||
|
#endif
|
||
|
}
|
||
|
void *HeapReAlloc(HANDLE heap, int dummy, void * oldblock, int size)
|
||
|
{
|
||
|
if(size<=0)
|
||
|
return NULL;
|
||
|
#ifdef USE_MALLOC
|
||
|
return (realloc(oldblock,size));
|
||
|
#else
|
||
|
SetPtrSize((char*)oldblock, size);
|
||
|
return (oldblock);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
void GlobalFree(void *mptr)
|
||
|
{
|
||
|
if(mptr)
|
||
|
mem_free(mptr);
|
||
|
}
|
||
|
void *GlobalAlloc(int flags,int size)
|
||
|
{
|
||
|
if(size<=0)
|
||
|
return NULL;
|
||
|
return mem_malloc(size);
|
||
|
}
|
||
|
|
||
|
void *GlobalLock(HGLOBAL hMem)
|
||
|
{
|
||
|
return hMem;
|
||
|
}
|
||
|
char *strupr(char *string)
|
||
|
{
|
||
|
while(string && *string)
|
||
|
{
|
||
|
*string = toupper(*string);
|
||
|
string++;
|
||
|
}
|
||
|
return string;
|
||
|
}
|
||
|
char *itoa(int value,char *string,int radix)
|
||
|
{
|
||
|
if(radix==10)
|
||
|
{
|
||
|
sprintf(string,"%d",value);
|
||
|
}else if(radix==16)
|
||
|
{
|
||
|
sprintf(string,"%x",value);
|
||
|
}else
|
||
|
{
|
||
|
DebugStr("\p!!!!!!!!!!!!!!!WARNING CALLING itoa WITHOUT 10 or 16 RADIX!!!!!!!!!!!!!!!!!!!!!!");
|
||
|
sprintf(string,"%d",value);
|
||
|
}
|
||
|
return string;
|
||
|
}
|
||
|
|
||
|
void Debug_ConsoleRedirectMessages(int virtual_window, int physical_window) {}
|
||
|
|
||
|
int debug_level = 2;
|
||
|
void Debug_ConsolePrintf(int n,char *format,...)
|
||
|
{
|
||
|
if(n >= debug_level) {
|
||
|
va_list args;
|
||
|
va_start(args, format );
|
||
|
vprintf(format,args);
|
||
|
va_end(args);
|
||
|
}
|
||
|
return;
|
||
|
}
|