Hello all,
I'm having a bit of a problem making qvm's. After reading through this I changed my bats to read:
(This is the game.bat)
mkdir vm
cd vm
set cc=c:\quake3\bin_nt\lcc -DQ3_VM -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\ui %1
%cc% ../g_main.c
@if errorlevel 1 goto quit
%cc% ../g_syscalls.c
@if errorlevel 1 goto quit
%cc% ../bg_misc.c
@if errorlevel 1 goto quit
%cc% ../bg_lib.c
@if errorlevel 1 goto quit
%cc% ../bg_pmove.c
@if errorlevel 1 goto quit
%cc% ../bg_slidemove.c
@if errorlevel 1 goto quit
%cc% ../q_math.c
@if errorlevel 1 goto quit
%cc% ../q_shared.c
@if errorlevel 1 goto quit
%cc% ../ai_dmnet.c
@if errorlevel 1 goto quit
%cc% ../ai_dmq3.c
@if errorlevel 1 goto quit
%cc% ../ai_main.c
@if errorlevel 1 goto quit
%cc% ../ai_chat.c
@if errorlevel 1 goto quit
%cc% ../ai_cmd.c
@if errorlevel 1 goto quit
%cc% ../ai_team.c
@if errorlevel 1 goto quit
%cc% ../g_active.c
@if errorlevel 1 goto quit
%cc% ../g_arenas.c
@if errorlevel 1 goto quit
%cc% ../g_bot.c
@if errorlevel 1 goto quit
%cc% ../g_client.c
@if errorlevel 1 goto quit
%cc% ../g_cmds.c
@if errorlevel 1 goto quit
%cc% ../g_combat.c
@if errorlevel 1 goto quit
%cc% ../g_items.c
@if errorlevel 1 goto quit
%cc% ../g_mem.c
@if errorlevel 1 goto quit
%cc% ../g_misc.c
@if errorlevel 1 goto quit
%cc% ../g_missile.c
@if errorlevel 1 goto quit
%cc% ../g_mover.c
@if errorlevel 1 goto quit
%cc% ../g_session.c
@if errorlevel 1 goto quit
%cc% ../g_spawn.c
@if errorlevel 1 goto quit
%cc% ../g_svcmds.c
@if errorlevel 1 goto quit
%cc% ../g_target.c
@if errorlevel 1 goto quit
%cc% ../g_team.c
@if errorlevel 1 goto quit
%cc% ../g_trigger.c
@if errorlevel 1 goto quit
%cc% ../g_utils.c
@if errorlevel 1 goto quit
%cc% ../g_weapon.c
@if errorlevel 1 goto quit
%cc% ../ai_vcmd.c
@if errorlevel 1 goto quit
"C:\quake3\bin_nt\q3asm" -f "C:/quake3/dts/code/game/game.q3asm"
:quit
cd ..
I did this for all the bats and I am able to compile cgame and q3_ui qvm's but game and ui qvm's do not compile.
Just in case you need to know my set up:
Windows XP Professional SP3
1GHZ pc with 512mb ram.
Quake 3 is updated to 1.32 and source code is version 1.29h.
I'm only looking to make a mod. I'm not wanting to make a total conversion or anything that ambitious.
If you need more information let me know and I can get it posted. Thank you.
QVM
Re: QVM
Just a quick update:
I ran game.bat all by itself to see if there were any errors and this is what it says at the very end:
C:\quake3\dts\code\game\vm>c:\quake3\bin_nt\lcc -DQ3_VM -S -Wf-target=bytecode -
Wf-g -I..\..\cgame -I..\..\game -I..\..\ui ../g_active.c
../g_active.c:321: operands of = have illegal types `pointer to void function(po
inter to trace_t,pointer to const float,pointer to float,pointer to float,pointe
r to const float,int,int)' and `pointer to void function(pointer to trace_t,poin
ter to const float,pointer to const float,pointer to const float,pointer to cons
t float,int,int)'
../g_active.c:896: operands of = have illegal types `pointer to void function(po
inter to trace_t,pointer to const float,pointer to float,pointer to float,pointe
r to const float,int,int)' and `pointer to void function(pointer to trace_t,poin
ter to const float,pointer to const float,pointer to const float,pointer to cons
t float,int,int)'
C:\quake3\dts\code\game\vm>cd ..
And then it stops. Hope that helps.
I just realized I don't need ui.qvm just q3_ui.qvm, right?
I ran game.bat all by itself to see if there were any errors and this is what it says at the very end:
C:\quake3\dts\code\game\vm>c:\quake3\bin_nt\lcc -DQ3_VM -S -Wf-target=bytecode -
Wf-g -I..\..\cgame -I..\..\game -I..\..\ui ../g_active.c
../g_active.c:321: operands of = have illegal types `pointer to void function(po
inter to trace_t,pointer to const float,pointer to float,pointer to float,pointe
r to const float,int,int)' and `pointer to void function(pointer to trace_t,poin
ter to const float,pointer to const float,pointer to const float,pointer to cons
t float,int,int)'
../g_active.c:896: operands of = have illegal types `pointer to void function(po
inter to trace_t,pointer to const float,pointer to float,pointer to float,pointe
r to const float,int,int)' and `pointer to void function(pointer to trace_t,poin
ter to const float,pointer to const float,pointer to const float,pointer to cons
t float,int,int)'
C:\quake3\dts\code\game\vm>cd ..
And then it stops. Hope that helps.
I just realized I don't need ui.qvm just q3_ui.qvm, right?
-
- Posts: 4022
- Joined: Sat Mar 12, 2005 6:24 pm
Re: QVM
What kind of errors do you get? And is there a reason to not use the 1.32 or ioquake3 source code?game and ui qvm's do not compile
Re: QVM
That is the errors I get on game.bat. I'm just wanting to use the older code because I at least know what to do. I can compile the .dll files and run them in Q3 but I'm not sure about using the full blown source code or ioquake3. Unless there are very specific tutorials on getting those setup on a windows platform then I'll have to pass. I'm very new to programming in Q3.Just a quick update:
I ran game.bat all by itself to see if there were any errors and this is what it says at the very end:
C:\quake3\dts\code\game\vm>c:\quake3\bin_nt\lcc -DQ3_VM -S -Wf-target=bytecode -
Wf-g -I..\..\cgame -I..\..\game -I..\..\ui ../g_active.c
../g_active.c:321: operands of = have illegal types `pointer to void function(po
inter to trace_t,pointer to const float,pointer to float,pointer to float,pointe
r to const float,int,int)' and `pointer to void function(pointer to trace_t,poin
ter to const float,pointer to const float,pointer to const float,pointer to cons
t float,int,int)'
../g_active.c:896: operands of = have illegal types `pointer to void function(po
inter to trace_t,pointer to const float,pointer to float,pointer to float,pointe
r to const float,int,int)' and `pointer to void function(pointer to trace_t,poin
ter to const float,pointer to const float,pointer to const float,pointer to cons
t float,int,int)'
C:\quake3\dts\code\game\vm>cd ..
And then it stops. Hope that helps.
^misantropia^
I've seen in some posts that you state that you are using linux. I'm curious to know which version of linux and what IDE are you using to program Q3 in (if are your programming inQ3)?

-
- Posts: 4022
- Joined: Sat Mar 12, 2005 6:24 pm
Re: QVM
What do those lines in g_active.c look like? ioquake3 is easier to compile (with mingw) than the stock source code, by the way. It's gotten a little more polish that iD's code dump.
Re linux: nowadays Ubuntu 10.04 (Lucid Lynx), Debian testing before that. I mostly use Eclipse with the CDT plugin. You probably need a beefier machine to run it comfortably, though.
Re linux: nowadays Ubuntu 10.04 (Lucid Lynx), Debian testing before that. I mostly use Eclipse with the CDT plugin. You probably need a beefier machine to run it comfortably, though.
Re: QVM
Here is the information:
Further down:
Any thoughts on how I should or could fix these?
As for linux, I would need a better system to run Ubuntu but maybe it could handle Debian or some other distro that was resource light.
Code: Select all
// set up for pmove
memset (&pm, 0, sizeof(pm));
pm.ps = &client->ps;
pm.cmd = *ucmd;
pm.tracemask = MASK_PLAYERSOLID & ~CONTENTS_BODY; // spectators can fly through bodies
pm.trace = trap_Trace; //This is line 321 that is giving the error when compiling.
pm.pointcontents = trap_PointContents;
Further down:
Code: Select all
pm.ps = &client->ps;
pm.cmd = *ucmd;
if ( pm.ps->pm_type == PM_DEAD ) {
pm.tracemask = MASK_PLAYERSOLID & ~CONTENTS_BODY;
}
else if ( ent->r.svFlags & SVF_BOT ) {
pm.tracemask = MASK_PLAYERSOLID | CONTENTS_BOTCLIP;
}
else {
pm.tracemask = MASK_PLAYERSOLID;
}
pm.trace = trap_Trace; //This is line 896 that is giving the error when compiling.
pm.pointcontents = trap_PointContents;
pm.debugLevel = g_debugMove.integer;
pm.noFootsteps = ( g_dmflags.integer & DF_NO_FOOTSTEPS ) > 0;
pm.pmove_fixed = pmove_fixed.integer | client->pers.pmoveFixed;
pm.pmove_msec = pmove_msec.integer;
VectorCopy( client->ps.origin, client->oldOrigin );
Any thoughts on how I should or could fix these?
As for linux, I would need a better system to run Ubuntu but maybe it could handle Debian or some other distro that was resource light.

-
- Posts: 4022
- Joined: Sat Mar 12, 2005 6:24 pm
Re: QVM
I think that you'll find that pm.trace is defined like so (pmove_t in bg_public.h):
While it should be this:
Give Xubuntu a spin. It's Ubuntu with the light-weight XFCE desktop system. XFCE was what I used to run on Debian.
EDIT: By the way, the above is why you really should be using ioquake3, it's full of fixes for stuff like this.
Code: Select all
void (*trace)( trace_t *results, const vec3_t start, vec3_t mins, vec3_t maxs, const vec3_t end, int passEntityNum, int contentMask );
Code: Select all
void (*trace)( trace_t *results, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int passEntityNum, int contentMask );
EDIT: By the way, the above is why you really should be using ioquake3, it's full of fixes for stuff like this.