diff --git a/physfs.c b/physfs.c index 7980861..45ad099 100644 --- a/physfs.c +++ b/physfs.c @@ -110,7 +110,8 @@ static ErrMsg *findErrorForCurrentThread(void) __PHYSFS_platformGrabMutex(errorLock); if (errorMessages != NULL) { - tid = __PHYSFS_platformGetThreadID(); + /*!!! I think tid needs to be a 64-bit value??? */ + tid = (int)__PHYSFS_platformGetThreadID(); for (i = errorMessages; i != NULL; i = i->next) { @@ -143,7 +144,8 @@ void __PHYSFS_setError(const char *str) return; /* uhh...? */ memset((void *) err, '\0', sizeof (ErrMsg)); - err->tid = __PHYSFS_platformGetThreadID(); + /*!!! I think tid needs to be a 64-bit value??? */ + err->tid = (int)__PHYSFS_platformGetThreadID(); __PHYSFS_platformGrabMutex(errorLock); err->next = errorMessages; diff --git a/physfs.h b/physfs.h index bb936de..8bbf714 100644 --- a/physfs.h +++ b/physfs.h @@ -129,6 +129,10 @@ #ifndef _INCLUDE_PHYSFS_H_ #define _INCLUDE_PHYSFS_H_ +#ifdef _WIN32 +#include +#endif + #ifdef __cplusplus extern "C" { #endif @@ -151,6 +155,10 @@ typedef signed int PHYSFS_sint32; #ifdef PHYSFS_NO_64BIT_SUPPORT /* oh well. */ typedef PHYSFS_uint32 PHYSFS_uint64; typedef PHYSFS_sint32 PHYSFS_sint64; +#elif _WIN32 +/*!!! No 64-bit unsigned in Win32???? */ +typedef LONGLONG PHYSFS_sint64; +typedef LONGLONG PHYSFS_uint64; #else typedef unsigned long long PHYSFS_uint64; typedef signed long long PHYSFS_sint64;