mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-22 03:51:32 +00:00
The text editor was kinda annoying in trying to show qc variables when editing configs etc.
This commit is contained in:
parent
f4602d3ec7
commit
0484a48fad
1 changed files with 63 additions and 11 deletions
|
@ -287,7 +287,7 @@ static void Con_Editor_Save(console_t *con)
|
||||||
char *bend = COM_DeFunString(cl, el, buffer, sizeof(buffer)-2, true, !!(con->parseflags & PFS_FORCEUTF8));
|
char *bend = COM_DeFunString(cl, el, buffer, sizeof(buffer)-2, true, !!(con->parseflags & PFS_FORCEUTF8));
|
||||||
if (editaddcr.ival
|
if (editaddcr.ival
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|| !*editaddcr.string
|
|| !*editaddcr.string //windows editors have a history of bugging out so make sure we default to whatever b0rkedness they mandate.
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
*bend++ = '\r';
|
*bend++ = '\r';
|
||||||
|
@ -301,6 +301,11 @@ static void Con_Editor_Save(console_t *con)
|
||||||
|
|
||||||
if (!Q_strncasecmp(con->name, "scripts/", 8))
|
if (!Q_strncasecmp(con->name, "scripts/", 8))
|
||||||
Shader_NeedReload(true);
|
Shader_NeedReload(true);
|
||||||
|
else if (!Q_strncasecmp(con->name, "particles/", 10))
|
||||||
|
{
|
||||||
|
extern cvar_t r_particledesc;
|
||||||
|
Cvar_ForceCallback(&r_particledesc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qboolean Con_Editor_MouseOver(struct console_s *con, char **out_tiptext, shader_t **out_shader)
|
qboolean Con_Editor_MouseOver(struct console_s *con, char **out_tiptext, shader_t **out_shader)
|
||||||
|
@ -309,24 +314,71 @@ qboolean Con_Editor_MouseOver(struct console_s *con, char **out_tiptext, shader_
|
||||||
|
|
||||||
if (mouseover)
|
if (mouseover)
|
||||||
{
|
{
|
||||||
if (editprogfuncs && editprogfuncs->EvaluateDebugString)
|
const char *ext = COM_GetFileExtension(con->name, NULL);
|
||||||
*out_tiptext = editprogfuncs->EvaluateDebugString(editprogfuncs, mouseover);
|
if (!Q_strcasecmp(ext, ".cfg"))
|
||||||
else
|
|
||||||
{
|
{
|
||||||
|
*out_tiptext = NULL;
|
||||||
|
//look for a command...
|
||||||
|
if (*out_tiptext == NULL && Cmd_Exists(mouseover))
|
||||||
|
{
|
||||||
|
const char *desc = Cmd_Describe(mouseover);
|
||||||
|
*out_tiptext = va("%s\n\n%s", mouseover, desc?desc:"<NO DESCRIPTION>");
|
||||||
|
}
|
||||||
|
if (!*out_tiptext) //check if we can get the body of an alias...
|
||||||
|
{
|
||||||
|
const char *desc = Cmd_AliasExist(mouseover, RESTRICT_LOCAL);
|
||||||
|
if (desc)
|
||||||
|
*out_tiptext = va("alias \"%s\"\n\n%s", mouseover, *desc?desc:"<NO TEXT>");
|
||||||
|
}
|
||||||
|
if (!*out_tiptext) //now look to see if its a cvar...
|
||||||
|
{
|
||||||
|
cvar_t *cv = Cvar_FindVar(mouseover);
|
||||||
|
if (cv)
|
||||||
|
{
|
||||||
|
const char *cmd = "";
|
||||||
|
char fl[4];
|
||||||
|
int i = 0;
|
||||||
|
if ((cv->flags & CVAR_USERINFO) || (cv->flags & CVAR_SERVERINFO))
|
||||||
|
{
|
||||||
|
cmd = "setfl ";
|
||||||
|
fl[i++] = ' ';
|
||||||
|
if (cv->flags & CVAR_SERVERINFO)
|
||||||
|
fl[i++] = 's';
|
||||||
|
if (cv->flags & CVAR_USERINFO)
|
||||||
|
fl[i++] = 'u';
|
||||||
|
if (cv->flags & CVAR_ARCHIVE)
|
||||||
|
fl[i++] = 'a';
|
||||||
|
}
|
||||||
|
else if (cv->flags & CVAR_ARCHIVE)
|
||||||
|
cmd = "seta ";
|
||||||
|
else// if (cv->flags & CVAR_POINTER)
|
||||||
|
cmd = "set ";
|
||||||
|
fl[i] = 0;
|
||||||
|
*out_tiptext = va("%s%s \"%s\"%s\nDefault: \"%s\"\n\n%s", cmd, cv->name, fl, cv->string, cv->defaultstr, cv->description?cv->description:"<NO DESCRIPTION>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!Q_strcasecmp(ext, ".qc") || !Q_strcasecmp(ext, ".hc")/*hexenc...*/ || !Q_strcasecmp(ext, ".src") || !Q_strcasecmp(ext, ".c")/*weird people. you know who you are...*/)
|
||||||
|
{ //qc files
|
||||||
|
if (editprogfuncs && editprogfuncs->EvaluateDebugString)
|
||||||
|
*out_tiptext = editprogfuncs->EvaluateDebugString(editprogfuncs, mouseover);
|
||||||
|
else
|
||||||
|
{
|
||||||
#ifndef SERVERONLY
|
#ifndef SERVERONLY
|
||||||
#ifdef CSQC_DAT
|
#ifdef CSQC_DAT
|
||||||
if (csqc_world.progs && csqc_world.progs->EvaluateDebugString && !*out_tiptext)
|
if (csqc_world.progs && csqc_world.progs->EvaluateDebugString && !*out_tiptext)
|
||||||
*out_tiptext = csqc_world.progs->EvaluateDebugString(csqc_world.progs, mouseover);
|
*out_tiptext = csqc_world.progs->EvaluateDebugString(csqc_world.progs, mouseover);
|
||||||
#endif
|
#endif
|
||||||
#ifdef MENU_DAT
|
#ifdef MENU_DAT
|
||||||
if (menu_world.progs && menu_world.progs->EvaluateDebugString && !*out_tiptext)
|
if (menu_world.progs && menu_world.progs->EvaluateDebugString && !*out_tiptext)
|
||||||
*out_tiptext = menu_world.progs->EvaluateDebugString(menu_world.progs, mouseover);
|
*out_tiptext = menu_world.progs->EvaluateDebugString(menu_world.progs, mouseover);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef CLIENTONLY
|
#ifndef CLIENTONLY
|
||||||
if (sv.world.progs && sv.world.progs->EvaluateDebugString && !*out_tiptext)
|
if (sv.world.progs && sv.world.progs->EvaluateDebugString && !*out_tiptext)
|
||||||
*out_tiptext = sv.world.progs->EvaluateDebugString(sv.world.progs, mouseover);
|
*out_tiptext = sv.world.progs->EvaluateDebugString(sv.world.progs, mouseover);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Z_Free(mouseover);
|
Z_Free(mouseover);
|
||||||
}
|
}
|
||||||
|
@ -1047,7 +1099,7 @@ void Con_TextEditor_f(void)
|
||||||
char *fname = Cmd_Argv(1);
|
char *fname = Cmd_Argv(1);
|
||||||
char *line = strrchr(fname, ':');
|
char *line = strrchr(fname, ':');
|
||||||
char *lineend = NULL;
|
char *lineend = NULL;
|
||||||
if (line && strtol(line+1, &lineend, 0) && !lineend)
|
if (line && strtol(line+1, &lineend, 0) && !*lineend)
|
||||||
*line++ = 0;
|
*line++ = 0;
|
||||||
if (!*fname)
|
if (!*fname)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue