]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - svvm_cmds.c
prvm: Deduplicate console command handler
[xonotic/darkplaces.git] / svvm_cmds.c
index bece8d54fe82d5e841fc551e556e0cf51bfca211..8de1d444699c454e342d251f2af945325262699f 100644 (file)
@@ -2853,26 +2853,7 @@ static void VM_SV_pointparticles(prvm_prog_t *prog)
 qbool SV_VM_ConsoleCommand (const char *text)
 {
        prvm_prog_t *prog = SVVM_prog;
-       int restorevm_tempstringsbuf_cursize;
-       int save_self;
-       qbool r = false;
-
-       if(!sv.active || !prog || !prog->loaded)
-               return false;
-
-       if (PRVM_serverfunction(ConsoleCmd))
-       {
-               save_self = PRVM_serverglobaledict(self);
-               PRVM_serverglobalfloat(time) = sv.time;
-               restorevm_tempstringsbuf_cursize = prog->tempstringsbuf.cursize;
-               PRVM_serverglobaledict(self) = PRVM_EDICT_TO_PROG(sv.world.prog->edicts);
-               PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(prog, text);
-               prog->ExecuteProgram(prog, PRVM_serverfunction(ConsoleCmd), "QC function ConsoleCmd is missing");
-               prog->tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
-               PRVM_serverglobaledict(self) = save_self;
-               r = (int) PRVM_G_FLOAT(OFS_RETURN) != 0;
-       }
-       return r;
+       return PRVM_ConsoleCommand(prog, text, &prog->funcoffsets.ConsoleCmd, true, PRVM_EDICT_TO_PROG(sv.world.prog->edicts), sv.time,  !(!sv.active || !prog || !prog->loaded), "QC function ConsoleCmd is missing"); 
 }
 
 // #352 void(string cmdname) registercommand (EXT_CSQC)