summaryrefslogtreecommitdiff
path: root/source/cl_draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/cl_draw.c')
-rw-r--r--source/cl_draw.c35
1 files changed, 32 insertions, 3 deletions
diff --git a/source/cl_draw.c b/source/cl_draw.c
index 1085d8d..de79f04 100644
--- a/source/cl_draw.c
+++ b/source/cl_draw.c
@@ -485,12 +485,27 @@ static void SCR_Draw_c( genctx_t *ctx, int argnum ) {
// draw cl_fps -1 80
static void SCR_Draw_f( void ) {
int x, y;
- char *s;
+ const char *s;
drawobj_t *obj;
cmd_macro_t *macro;
// int stat;
+ int argc = Cmd_Argc();
+
+ if( argc == 1 ) {
+ if( LIST_EMPTY( &scr_objects ) ) {
+ Com_Printf( "No draw strings registered.\n" );
+ return;
+ }
+ Com_Printf( "Name X Y\n"
+ "--------------- ---- ----\n" );
+ LIST_FOR_EACH( drawobj_t, obj, &scr_objects, entry ) {
+ s = obj->macro ? obj->macro->name : obj->cvar->name;
+ Com_Printf( "%-15s %4d %4d\n", s, obj->x, obj->y );
+ }
+ return;
+ }
- if( Cmd_Argc() != 4 ) {
+ if( argc < 4 ) {
Com_Printf( "Usage: %s <name> <x> <y>\n", Cmd_Argv( 0 ) );
return;
}
@@ -531,6 +546,8 @@ static void SCR_Draw_f( void ) {
static void SCR_Draw_g( genctx_t *ctx ) {
drawobj_t *obj;
const char *s;
+
+ Prompt_AddMatch( ctx, "all" );
LIST_FOR_EACH( drawobj_t, obj, &scr_objects, entry ) {
s = obj->macro ? obj->macro->name : obj->cvar->name;
@@ -551,19 +568,25 @@ static void SCR_UnDraw_f( void ) {
drawobj_t *obj, *next;
cmd_macro_t *macro;
cvar_t *cvar;
+ qboolean deleted;
if( Cmd_Argc() != 2 ) {
Com_Printf( "Usage: %s <name>\n", Cmd_Argv( 0 ) );
return;
}
+ if( LIST_EMPTY( &scr_objects ) ) {
+ Com_Printf( "No draw strings registered.\n" );
+ return;
+ }
+
s = Cmd_Argv( 1 );
if( !strcmp( s, "all" ) ) {
LIST_FOR_EACH_SAFE( drawobj_t, obj, next, &scr_objects, entry ) {
Z_Free( obj );
}
List_Init( &scr_objects );
- Com_Printf( "Deleted all drawstrings.\n" );
+ Com_Printf( "Deleted all draw strings.\n" );
return;
}
@@ -573,12 +596,18 @@ static void SCR_UnDraw_f( void ) {
cvar = Cvar_Get( s, "", CVAR_USER_CREATED );
}
+ deleted = qfalse;
LIST_FOR_EACH_SAFE( drawobj_t, obj, next, &scr_objects, entry ) {
if( obj->macro == macro && obj->cvar == cvar ) {
List_Remove( &obj->entry );
Z_Free( obj );
+ deleted = qtrue;
}
}
+
+ if( !deleted ) {
+ Com_Printf( "Draw string '%s' not found.\n", s );
+ }
}
static void draw_objects( void ) {