mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 04:42:32 +00:00
give nq debugging abilities and minimize the differences between nq and qw
This commit is contained in:
parent
ff61dbb329
commit
916aa6fe8b
3 changed files with 51 additions and 32 deletions
|
@ -910,8 +910,6 @@ Host_Init (void)
|
|||
|
||||
CL_Init_Memory ();
|
||||
|
||||
pr_gametype = "netquake";
|
||||
|
||||
mp = Game_Init ();
|
||||
QFS_Init (mp);
|
||||
PI_Init ();
|
||||
|
|
|
@ -32,10 +32,10 @@ static __attribute__ ((used)) const char rcsid[] =
|
|||
"$Id$";
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
# include "string.h"
|
||||
# include <string.h>
|
||||
#endif
|
||||
#ifdef HAVE_STRINGS_H
|
||||
# include "strings.h"
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
#include "QF/cmd.h"
|
||||
|
@ -121,7 +121,7 @@ ED_PrintEdicts_f (void)
|
|||
/*
|
||||
ED_PrintEdict_f
|
||||
|
||||
For debugging, prints a single edicy
|
||||
For debugging, prints a single edict
|
||||
*/
|
||||
static void
|
||||
ED_PrintEdict_f (void)
|
||||
|
@ -149,6 +149,18 @@ PR_Profile_f (void)
|
|||
PR_Profile (&sv_pr_state);
|
||||
}
|
||||
|
||||
static void
|
||||
watch_f (void)
|
||||
{
|
||||
PR_Debug_Watch (&sv_pr_state, Cmd_Argc () < 2 ? 0 : Cmd_Args (1));
|
||||
}
|
||||
|
||||
static void
|
||||
print_f (void)
|
||||
{
|
||||
PR_Debug_Print (&sv_pr_state, Cmd_Argc () < 2 ? 0 : Cmd_Args (1));
|
||||
}
|
||||
|
||||
static int
|
||||
parse_field (progs_t *pr, const char *key, const char *value)
|
||||
{
|
||||
|
@ -309,6 +321,8 @@ static sv_def_t nq_opt_funcs[] = {
|
|||
};
|
||||
|
||||
static sv_def_t nq_opt_fields[] = {
|
||||
{ev_integer, 0, "rotated_bbox", &sv_fields.rotated_bbox},
|
||||
{ev_float, 0, "gravity", &sv_fields.gravity},
|
||||
// Quake 2 fields?
|
||||
{ev_float, 0, "dmg", &sv_fields.dmg},
|
||||
{ev_float, 0, "dmgtime", &sv_fields.dmgtime},
|
||||
|
@ -323,9 +337,6 @@ static sv_def_t nq_opt_fields[] = {
|
|||
{ev_float, 0, "items2", &sv_fields.items2},
|
||||
{ev_float, 0, "pitch_speed", &sv_fields.pitch_speed},
|
||||
{ev_float, 0, "lastruntime", &sv_fields.lastruntime},
|
||||
|
||||
{ev_integer, 0, "rotated_bbox", &sv_fields.rotated_bbox},
|
||||
{ev_float, 0, "gravity", &sv_fields.gravity},
|
||||
{ev_void, 0, 0},
|
||||
};
|
||||
|
||||
|
@ -465,11 +476,6 @@ SV_LoadProgs (void)
|
|||
const char *progs_name = "progs.dat";
|
||||
const char *range;
|
||||
|
||||
if (qfs_gamedir->gamecode && *qfs_gamedir->gamecode)
|
||||
progs_name = qfs_gamedir->gamecode;
|
||||
if (*sv_progs->string)
|
||||
progs_name = sv_progs->string;
|
||||
|
||||
if (strequal (sv_progs_ext->string, "qf")) {
|
||||
sv_range = PR_RANGE_QF;
|
||||
range = "QF";
|
||||
|
@ -482,6 +488,14 @@ SV_LoadProgs (void)
|
|||
}
|
||||
Sys_DPrintf ("Using %s builtin extention mapping\n", range);
|
||||
|
||||
memset (&sv_globals, 0, sizeof (sv_funcs));
|
||||
memset (&sv_funcs, 0, sizeof (sv_funcs));
|
||||
|
||||
if (qfs_gamedir->gamecode && *qfs_gamedir->gamecode)
|
||||
progs_name = qfs_gamedir->gamecode;
|
||||
if (*sv_progs->string)
|
||||
progs_name = sv_progs->string;
|
||||
|
||||
PR_LoadProgs (&sv_pr_state, progs_name, sv.max_edicts,
|
||||
sv_progs_zone->int_val * 1024);
|
||||
if (!sv_pr_state.progs)
|
||||
|
@ -491,6 +505,7 @@ SV_LoadProgs (void)
|
|||
void
|
||||
SV_Progs_Init (void)
|
||||
{
|
||||
pr_gametype = "netquake";
|
||||
sv_pr_state.edicts = &sv.edicts;
|
||||
sv_pr_state.num_edicts = &sv.num_edicts;
|
||||
sv_pr_state.reserved_edicts = &svs.maxclients;
|
||||
|
@ -508,8 +523,10 @@ SV_Progs_Init (void)
|
|||
"Display information on all edicts in the game.");
|
||||
Cmd_AddCommand ("edictcount", ED_Count_f,
|
||||
"Display summary information on the edicts in the game.");
|
||||
Cmd_AddCommand ("profile", PR_Profile_f, "FIXME: Report information "
|
||||
"about QuakeC Stuff (\?\?\?) No Description");
|
||||
Cmd_AddCommand ("profile", PR_Profile_f, "FIXME: Report information about "
|
||||
"QuakeC Stuff (\?\?\?) No Description");
|
||||
Cmd_AddCommand ("watch", watch_f, "set watchpoint");
|
||||
Cmd_AddCommand ("print", print_f, "print value at location");
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
*/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
# include "config.h"
|
||||
#endif
|
||||
#ifdef HAVE_STRING_H
|
||||
# include <string.h>
|
||||
|
@ -47,11 +47,11 @@
|
|||
#include "sv_pr_qwe.h"
|
||||
#include "world.h"
|
||||
|
||||
progs_t sv_pr_state;
|
||||
sv_globals_t sv_globals;
|
||||
sv_funcs_t sv_funcs;
|
||||
sv_fields_t sv_fields;
|
||||
|
||||
progs_t sv_pr_state;
|
||||
cvar_t *r_skyname;
|
||||
cvar_t *sv_progs;
|
||||
cvar_t *sv_progs_zone;
|
||||
|
@ -154,6 +154,10 @@ ED_Count_f (void)
|
|||
static void
|
||||
PR_Profile_f (void)
|
||||
{
|
||||
if (!sv_pr_state.progs) {
|
||||
Sys_Printf ("no progs loaded\n");
|
||||
return;
|
||||
}
|
||||
PR_Profile (&sv_pr_state);
|
||||
}
|
||||
|
||||
|
@ -477,12 +481,6 @@ SV_LoadProgs (void)
|
|||
const char *progs_name = "qwprogs.dat";
|
||||
const char *range;
|
||||
|
||||
memset (&sv_globals, 0, sizeof (sv_funcs));
|
||||
memset (&sv_funcs, 0, sizeof (sv_funcs));
|
||||
|
||||
sv_cbuf->unknown_command = 0;
|
||||
ucmd_unknown = 0;
|
||||
|
||||
if (strequal (sv_progs_ext->string, "qf")) {
|
||||
sv_range = PR_RANGE_QF;
|
||||
range = "QF";
|
||||
|
@ -502,6 +500,12 @@ SV_LoadProgs (void)
|
|||
}
|
||||
Sys_DPrintf ("Using %s builtin extention mapping\n", range);
|
||||
|
||||
memset (&sv_globals, 0, sizeof (sv_funcs));
|
||||
memset (&sv_funcs, 0, sizeof (sv_funcs));
|
||||
|
||||
sv_cbuf->unknown_command = 0;
|
||||
ucmd_unknown = 0;
|
||||
|
||||
if (qfs_gamedir->gamecode && *qfs_gamedir->gamecode)
|
||||
progs_name = qfs_gamedir->gamecode;
|
||||
if (*sv_progs->string)
|
||||
|
|
Loading…
Reference in a new issue