diff options
Diffstat (limited to 'source/cl_draw.c')
-rw-r--r-- | source/cl_draw.c | 35 |
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 ) { |