Raised the runaway loop limit. perhaps a little too high now, but nexuiz's menus require it. Improved debugging and stuff, so you can assign functions to variables in the debugger.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2393 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
35a62a4ffc
commit
31215e5b06
1 changed files with 29 additions and 15 deletions
|
@ -487,26 +487,39 @@ char *EvaluateDebugString(progfuncs_t *progfuncs, char *key)
|
||||||
}
|
}
|
||||||
*(int *)val = G_INT(fdef->ofs);
|
*(int *)val = G_INT(fdef->ofs);
|
||||||
break;
|
break;
|
||||||
/*
|
|
||||||
case ev_function:
|
case ev_function:
|
||||||
if (s[1]==':'&&s[2]=='\0')
|
|
||||||
{
|
{
|
||||||
*(func_t *)val = 0;
|
dfunction_t *func;
|
||||||
return true;
|
int i;
|
||||||
|
int progsnum = -1;
|
||||||
|
char *s = assignment;
|
||||||
|
if (s[0] && s[1] == ':')
|
||||||
|
{
|
||||||
|
progsnum = atoi(s);
|
||||||
|
s+=2;
|
||||||
|
}
|
||||||
|
else if (s[0] && s[1] && s[2] == ':')
|
||||||
|
{
|
||||||
|
progsnum = atoi(s);
|
||||||
|
s+=3;
|
||||||
|
}
|
||||||
|
|
||||||
|
func = ED_FindFunction (progfuncs, s, &i, progsnum);
|
||||||
|
if (!func)
|
||||||
|
{
|
||||||
|
assignment[-1] = '=';
|
||||||
|
return va("Can't find function %s\n", s);
|
||||||
|
}
|
||||||
|
*(func_t *)val = (func - pr_progstate[i].functions) | (i<<24);
|
||||||
}
|
}
|
||||||
func = ED_FindFunction (assignment, &i, -1);
|
|
||||||
if (!func)
|
|
||||||
{
|
|
||||||
printf ("Can't find function %s\n", assignment);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
*(func_t *)val = (func - pr_progstate[i].functions) | (i<<24);
|
|
||||||
break;
|
break;
|
||||||
*/
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
assignment[-1] = '=';
|
||||||
}
|
}
|
||||||
strcpy(buf, PR_ValueString(progfuncs, def->type, val));
|
strcpy(buf, PR_ValueString(progfuncs, def->type, val));
|
||||||
|
|
||||||
|
@ -749,8 +762,9 @@ static char *lastfile = 0;
|
||||||
}
|
}
|
||||||
else if (f) //annoying.
|
else if (f) //annoying.
|
||||||
{
|
{
|
||||||
if (externs->useeditor)
|
if (*(f->s_file+progfuncs->stringtable)) //if we can't get the filename, then it was stripped, and debugging it like this is useless
|
||||||
externs->useeditor(progfuncs, f->s_file+progfuncs->stringtable, -1, 0, NULL);
|
if (externs->useeditor)
|
||||||
|
externs->useeditor(progfuncs, f->s_file+progfuncs->stringtable, -1, 0, NULL);
|
||||||
return statement;
|
return statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -782,7 +796,7 @@ void PR_ExecuteCode (progfuncs_t *progfuncs, int s)
|
||||||
|
|
||||||
int fnum = pr_xfunction - pr_functions;
|
int fnum = pr_xfunction - pr_functions;
|
||||||
|
|
||||||
runaway = 1000000;
|
runaway = 100000000;
|
||||||
|
|
||||||
prinst->continuestatement = -1;
|
prinst->continuestatement = -1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue