[iortcw] 212/497: SP: Fix building / loading QVMs (Still not fully working)
Simon McVittie
smcv at debian.org
Fri Sep 8 10:36:53 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to annotated tag 1.42d
in repository iortcw.
commit e1dd82b2335d9cdd663b224b2a0b38acfd8bf97e
Author: M4N4T4RMS at gmail.com <M4N4T4RMS at gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date: Thu Sep 11 23:21:17 2014 +0000
SP: Fix building / loading QVMs (Still not fully working)
---
SP/code/game/g_func_decs.h | 4 ++++
SP/code/game/g_funcs.h | 4 ++++
SP/code/game/g_syscalls.c | 9 ++++++---
SP/code/qcommon/files.c | 4 ++--
SP/code/qcommon/vm.c | 2 +-
SP/code/server/sv_client.c | 4 ++--
6 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/SP/code/game/g_func_decs.h b/SP/code/game/g_func_decs.h
index d2c0ba7..0c0047d 100644
--- a/SP/code/game/g_func_decs.h
+++ b/SP/code/game/g_func_decs.h
@@ -104,7 +104,9 @@ extern void AxisToAngles ( vec3_t axis [ 3 ] , vec3_t angles ) ;
extern float vectoyaw ( const vec3_t vec ) ;
extern void ProjectPointOntoVector ( vec3_t point , vec3_t vStart , vec3_t vEnd , vec3_t vProj ) ;
extern void GetPerpendicularViewVector ( const vec3_t point , const vec3_t p1 , const vec3_t p2 , vec3_t up ) ;
+#ifndef Q3_VM
extern float Q_acos ( float c ) ;
+#endif
extern int Q_isnan ( float x ) ;
extern void PerpendicularVector ( vec3_t dst , const vec3_t src ) ;
extern void AngleVectors ( const vec3_t angles , vec3_t forward , vec3_t right , vec3_t up ) ;
@@ -552,8 +554,10 @@ extern int trap_Milliseconds ( void ) ;
extern void trap_Endgame ( void ) ;
extern void trap_Error ( const char * text ) ;
extern void trap_Print ( const char * text ) ;
+#ifndef Q3_VM
extern int PASSFLOAT ( float x ) ;
extern Q_EXPORT void dllEntry ( intptr_t ( QDECL * syscallptr ) ( intptr_t arg , ... ) ) ;
+#endif
extern qboolean ConsoleCommand ( void ) ;
extern void Svcmd_ForceTeam_f ( void ) ;
extern gclient_t * ClientForString ( const char * s ) ;
diff --git a/SP/code/game/g_funcs.h b/SP/code/game/g_funcs.h
index b950186..46ac94a 100644
--- a/SP/code/game/g_funcs.h
+++ b/SP/code/game/g_funcs.h
@@ -104,7 +104,9 @@ If you have questions concerning this license or the applicable additional terms
{"vectoyaw", (byte *)vectoyaw},
{"ProjectPointOntoVector", (byte *)ProjectPointOntoVector},
{"GetPerpendicularViewVector", (byte *)GetPerpendicularViewVector},
+#ifndef Q3_VM
{"Q_acos", (byte *)Q_acos},
+#endif
{"Q_isnan", (byte *)Q_isnan},
{"PerpendicularVector", (byte *)PerpendicularVector},
{"AngleVectors", (byte *)AngleVectors},
@@ -552,8 +554,10 @@ If you have questions concerning this license or the applicable additional terms
{"trap_Endgame", (byte *)trap_Endgame},
{"trap_Error", (byte *)trap_Error},
{"trap_Print", (byte *)trap_Print},
+#ifndef Q3_VM
{"PASSFLOAT", (byte *)PASSFLOAT},
{"dllEntry", (byte *)dllEntry},
+#endif
{"ConsoleCommand", (byte *)ConsoleCommand},
{"Svcmd_ForceTeam_f", (byte *)Svcmd_ForceTeam_f},
{"ClientForString", (byte *)ClientForString},
diff --git a/SP/code/game/g_syscalls.c b/SP/code/game/g_syscalls.c
index 3738610..e61ec8f 100644
--- a/SP/code/game/g_syscalls.c
+++ b/SP/code/game/g_syscalls.c
@@ -32,6 +32,9 @@ If you have questions concerning this license or the applicable additional terms
// this file is only included when building a dll
// g_syscalls.asm is included instead when building a qvm
+#ifdef Q3_VM
+#error "Do not use in VM build"
+#endif
static intptr_t (QDECL *syscall)( intptr_t arg, ... ) = (intptr_t (QDECL *)( intptr_t, ...))-1;
@@ -517,9 +520,9 @@ float trap_Characteristic_Float( int character, int index ) {
}
float trap_Characteristic_BFloat( int character, int index, float min, float max ) {
- int temp;
- temp = syscall( BOTLIB_AI_CHARACTERISTIC_BFLOAT, character, index, PASSFLOAT( min ), PASSFLOAT( max ) );
- return ( *(float*)&temp );
+ floatint_t fi;
+ fi.i = syscall( BOTLIB_AI_CHARACTERISTIC_BFLOAT, character, index, PASSFLOAT( min ), PASSFLOAT( max ) );
+ return fi.f;
}
int trap_Characteristic_Integer( int character, int index ) {
diff --git a/SP/code/qcommon/files.c b/SP/code/qcommon/files.c
index 4910e5d..7af950a 100644
--- a/SP/code/qcommon/files.c
+++ b/SP/code/qcommon/files.c
@@ -1427,10 +1427,10 @@ long FS_FOpenFileReadDir(const char *filename, searchpath_t *search, fileHandle_
if(strstr(filename, Sys_GetDLLName( "ui" )))
pak->referenced |= FS_UI_REF;
- if(strstr(filename, "cgame.mp.qvm"))
+ if(strstr(filename, "cgame.sp.qvm"))
pak->referenced |= FS_CGAME_REF;
- if(strstr(filename, "ui.mp.qvm"))
+ if(strstr(filename, "ui.sp.qvm"))
pak->referenced |= FS_UI_REF;
if(uniqueFILE)
diff --git a/SP/code/qcommon/vm.c b/SP/code/qcommon/vm.c
index e57a180..a72ed47 100644
--- a/SP/code/qcommon/vm.c
+++ b/SP/code/qcommon/vm.c
@@ -378,7 +378,7 @@ vmHeader_t *VM_LoadQVM( vm_t *vm, qboolean alloc, qboolean unpure)
} header;
// load the image
- Com_sprintf( filename, sizeof(filename), "vm/%s.qvm", vm->name );
+ Com_sprintf( filename, sizeof(filename), "vm/%s.sp.qvm", vm->name );
Com_Printf( "Loading vm file %s...\n", filename );
FS_ReadFileDir(filename, vm->searchPath, unpure, &header.v);
diff --git a/SP/code/server/sv_client.c b/SP/code/server/sv_client.c
index cd049c8..b1ab870 100644
--- a/SP/code/server/sv_client.c
+++ b/SP/code/server/sv_client.c
@@ -1226,9 +1226,9 @@ static void SV_VerifyPaks_f( client_t *cl ) {
nChkSum1 = nChkSum2 = 0;
// we run the game, so determine which cgame and ui the client "should" be running
- bGood = ( FS_FileIsInPAK( "vm/cgame.qvm", &nChkSum1 ) == 1 );
+ bGood = ( FS_FileIsInPAK( "vm/cgame.sp.qvm", &nChkSum1 ) == 1 );
if ( bGood ) {
- bGood = ( FS_FileIsInPAK( "vm/ui.qvm", &nChkSum2 ) == 1 );
+ bGood = ( FS_FileIsInPAK( "vm/ui.sp.qvm", &nChkSum2 ) == 1 );
}
nClientPaks = Cmd_Argc();
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git
More information about the Pkg-games-commits
mailing list