quakeforge/libs/gib/gib.c
Bill Currie 49a85718f8 total nukage of Con_*Printf calls from libs (except for video). Sys_*Printf
(Sys_DPrintf is new) is now used exclusively for all lib printing. Con_Init
sets the sys printf recirection to Con_Print (which has been revamped
appropriatly) and the server sets it to SV_Print (which was SV_Printf and
the new SV_Printf calls /it/). This should fix the rcon print redirection
issues.
2001-09-21 04:22:46 +00:00

97 lines
2.1 KiB
C

/*
gib.c
#DESCRIPTION#
Copyright (C) 2000 #AUTHOR#
Author: #AUTHOR#
Date: #DATE#
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
$Id$
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "QF/cmd.h"
#include "QF/gib.h"
#include "QF/sys.h"
#include "QF/vfs.h"
#include "compat.h"
#include "gib_instructions.h"
#include "gib_interpret.h"
#include "gib_modules.h"
#include "gib_parse.h"
void
GIB_Init (void)
{
Cmd_AddCommand ("gibload", GIB_Load_f, "No Description");
Cmd_AddCommand ("gibstats", GIB_Stats_f, "No Description");
Cmd_AddCommand ("gib", GIB_Gib_f, "No Description");
GIB_Init_Instructions ();
}
void
GIB_Gib_f (void)
{
int i, ret;
gib_module_t *mod;
gib_sub_t *sub;
if (!(mod = GIB_Get_ModSub_Mod (Cmd_Argv (1)))) {
Sys_Printf ("Module not found!\n");
return;
}
if (!(sub = GIB_Get_ModSub_Sub (Cmd_Argv (1))))
Sys_Printf ("Subroutine not found!\n");
else {
gib_subargc = Cmd_Argc () - 1;
gib_subargv[0] = sub->name;
for (i = 1; i <= gib_subargc; i++)
gib_subargv[i] = Cmd_Argv (i + 1);
ret = GIB_Run_Sub (mod, sub);
if (ret != 0)
Sys_Printf ("Error in execution of %s!\nError code: %i\n",
Cmd_Argv (1), ret);
}
}
void
GIB_Load_f (void)
{
char filename[256];
VFile *f;
snprintf (filename, sizeof (filename), "%s/%s.gib", com_gamedir,
Cmd_Argv (1));
f = Qopen (filename, "r");
if (f) {
GIB_Module_Load (Cmd_Argv (1), f);
Qclose (f);
} else
Sys_Printf ("gibload: File not found.\n");
}