@ -8,24 +8,29 @@ cvar_t sys_throttle = { "sys_throttle", "0.02", CVAR_ARCHIVE };
typedef struct unity_syscalls_s
typedef struct unity_syscalls_s
{
{
void * target ;
void ( * SysPrint ) ( void * target , const char * msg ) ;
void ( * SysError ) ( void * target , const char * msg ) ;
void ( * SysQuit ) ( void * target ) ;
double ( * SysDoubleTime ) ( void * target ) ;
int ( * SysFileOpenRead ) ( void * target , const char * path , int * hndl ) ;
int ( * SysFileOpenWrite ) ( void * target , const char * path ) ;
void ( * SysFileClose ) ( void * target , int handle ) ;
void ( * SysFileSeek ) ( void * target , int handle , int position ) ;
int ( * SysFileRead ) ( void * target , int handle , void * dest , int count ) ;
int ( * SysFileWrite ) ( void * target , int handle , const void * data , int count ) ;
int ( * SysFileTime ) ( void * target , const char * path ) ;
qboolean ( * SysMkDir ) ( void * target , const char * path ) ;
void ( * SysPrint ) ( void * context , const char * msg ) ;
void ( * SysError ) ( void * context , const char * msg ) ;
void ( * SysQuit ) ( void * context ) ;
double ( * SysDoubleTime ) ( void * context ) ;
int ( * SysFileOpenRead ) ( void * context , const char * path , int * hndl ) ;
int ( * SysFileOpenWrite ) ( void * context , const char * path ) ;
void ( * SysFileClose ) ( void * context , int handle ) ;
void ( * SysFileSeek ) ( void * context , int handle , int position ) ;
int ( * SysFileRead ) ( void * context , int handle , void * dest , int count ) ;
int ( * SysFileWrite ) ( void * context , int handle , const void * data , int count ) ;
int ( * SysFileTime ) ( void * context , const char * path ) ;
qboolean ( * SysMkDir ) ( void * context , const char * path ) ;
} unity_syscalls_t ;
} unity_syscalls_t ;
const unity_syscalls_t * unity_syscalls ;
static void * unity_context ;
static const unity_syscalls_t * unity_syscalls ;
UNIQUAKE_API void UniQuake_SetSysCallbacks ( void * context , const unity_syscalls_t * callbacks )
{
unity_context = context ;
unity_syscalls = callbacks ;
}
void Sys_Error ( const char * error , . . . )
void Sys_Error ( const char * error , . . . )
{
{
@ -36,7 +41,7 @@ void Sys_Error(const char *error, ...)
q_vsnprintf ( text , sizeof ( text ) , error , argptr ) ;
q_vsnprintf ( text , sizeof ( text ) , error , argptr ) ;
va_end ( argptr ) ;
va_end ( argptr ) ;
unity_syscalls - > SysError ( unity_syscalls - > targ et , text ) ;
unity_syscalls - > SysError ( unity_cont ex t , text ) ;
}
}
void Sys_Printf ( const char * fmt , . . . )
void Sys_Printf ( const char * fmt , . . . )
@ -48,57 +53,57 @@ void Sys_Printf(const char *fmt, ...)
q_vsnprintf ( text , sizeof ( text ) , fmt , argptr ) ;
q_vsnprintf ( text , sizeof ( text ) , fmt , argptr ) ;
va_end ( argptr ) ;
va_end ( argptr ) ;
unity_syscalls - > SysPrint ( unity_syscalls - > targ et , text ) ;
unity_syscalls - > SysPrint ( unity_cont ex t , text ) ;
}
}
void Sys_Quit ( void )
void Sys_Quit ( void )
{
{
unity_syscalls - > SysQuit ( unity_syscalls - > targ et ) ;
unity_syscalls - > SysQuit ( unity_cont ex t ) ;
}
}
double Sys_DoubleTime ( void )
double Sys_DoubleTime ( void )
{
{
return unity_syscalls - > SysDoubleTime ( unity_syscalls - > targ et ) ;
return unity_syscalls - > SysDoubleTime ( unity_cont ex t ) ;
}
}
int Sys_FileOpenRead ( const char * path , int * hndl )
int Sys_FileOpenRead ( const char * path , int * hndl )
{
{
return unity_syscalls - > SysFileOpenRead ( unity_syscalls - > targ et , path , hndl ) ;
return unity_syscalls - > SysFileOpenRead ( unity_cont ex t , path , hndl ) ;
}
}
int Sys_FileOpenWrite ( const char * path )
int Sys_FileOpenWrite ( const char * path )
{
{
return unity_syscalls - > SysFileOpenWrite ( unity_syscalls - > targ et , path ) ;
return unity_syscalls - > SysFileOpenWrite ( unity_cont ex t , path ) ;
}
}
void Sys_FileClose ( int handle )
void Sys_FileClose ( int handle )
{
{
unity_syscalls - > SysFileClose ( unity_syscalls - > targ et , handle ) ;
unity_syscalls - > SysFileClose ( unity_cont ex t , handle ) ;
}
}
void Sys_FileSeek ( int handle , int position )
void Sys_FileSeek ( int handle , int position )
{
{
unity_syscalls - > SysFileSeek ( unity_syscalls - > targ et , handle , position ) ;
unity_syscalls - > SysFileSeek ( unity_cont ex t , handle , position ) ;
}
}
int Sys_FileRead ( int handle , void * dest , int count )
int Sys_FileRead ( int handle , void * dest , int count )
{
{
return unity_syscalls - > SysFileRead ( unity_syscalls - > targ et , handle , dest , count ) ;
return unity_syscalls - > SysFileRead ( unity_cont ex t , handle , dest , count ) ;
}
}
int Sys_FileWrite ( int handle , const void * data , int count )
int Sys_FileWrite ( int handle , const void * data , int count )
{
{
return unity_syscalls - > SysFileWrite ( unity_syscalls - > targ et , handle , data , count ) ;
return unity_syscalls - > SysFileWrite ( unity_cont ex t , handle , data , count ) ;
}
}
int Sys_FileTime ( const char * path )
int Sys_FileTime ( const char * path )
{
{
return unity_syscalls - > SysFileTime ( unity_syscalls - > targ et , path ) ;
return unity_syscalls - > SysFileTime ( unity_cont ex t , path ) ;
}
}
void Sys_mkdir ( const char * path )
void Sys_mkdir ( const char * path )
{
{
if ( ! unity_syscalls - > SysMkDir ( unity_syscalls - > targ et , path ) )
if ( ! unity_syscalls - > SysMkDir ( unity_cont ex t , path ) )
Sys_Error ( " Unable to create directory %s " , path ) ;
Sys_Error ( " Unable to create directory %s " , path ) ;
}
}