mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-10 22:51:57 +00:00
ability to close specific plugins
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@785 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
999e637bc1
commit
61a0b39953
1 changed files with 36 additions and 2 deletions
|
@ -664,7 +664,6 @@ void Plug_Command_f(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
currentplug = oldplug;
|
currentplug = oldplug;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int Plug_Cmd_AddCommand(void *offset, unsigned int mask, const long *arg)
|
int Plug_Cmd_AddCommand(void *offset, unsigned int mask, const long *arg)
|
||||||
|
@ -759,6 +758,7 @@ int Plug_Con_RenameSub(void *offset, unsigned int mask, const long *arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plug_CloseAll_f(void);
|
void Plug_CloseAll_f(void);
|
||||||
|
void Plug_Close_f(void);
|
||||||
void Plug_Load_f(void)
|
void Plug_Load_f(void)
|
||||||
{
|
{
|
||||||
Plug_Load(Cmd_Argv(1));
|
Plug_Load(Cmd_Argv(1));
|
||||||
|
@ -769,6 +769,7 @@ void Plug_Init(void)
|
||||||
Cvar_Register(&plug_sbar, "plugins");
|
Cvar_Register(&plug_sbar, "plugins");
|
||||||
Cvar_Register(&plug_loaddefault, "plugins");
|
Cvar_Register(&plug_loaddefault, "plugins");
|
||||||
Cmd_AddCommand("plug_closeall", Plug_CloseAll_f);
|
Cmd_AddCommand("plug_closeall", Plug_CloseAll_f);
|
||||||
|
Cmd_AddCommand("plug_close", Plug_Close_f);
|
||||||
Cmd_AddCommand("plug_load", Plug_Load_f);
|
Cmd_AddCommand("plug_load", Plug_Load_f);
|
||||||
|
|
||||||
Plug_RegisterBuiltin("Plug_GetEngineFunction", Plug_FindBuiltin, 0);//plugin wishes to find a builtin number.
|
Plug_RegisterBuiltin("Plug_GetEngineFunction", Plug_FindBuiltin, 0);//plugin wishes to find a builtin number.
|
||||||
|
@ -847,7 +848,10 @@ qboolean Plugin_ExecuteString(void)
|
||||||
if (currentplug->executestring)
|
if (currentplug->executestring)
|
||||||
{
|
{
|
||||||
if (VM_Call(currentplug->vm, currentplug->executestring, 0))
|
if (VM_Call(currentplug->vm, currentplug->executestring, 0))
|
||||||
|
{
|
||||||
|
currentplug = oldplug;
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -857,12 +861,17 @@ qboolean Plugin_ExecuteString(void)
|
||||||
|
|
||||||
qboolean Plug_Menu_Event(int eventtype, int param) //eventtype = draw/keydown/keyup, param = time/key
|
qboolean Plug_Menu_Event(int eventtype, int param) //eventtype = draw/keydown/keyup, param = time/key
|
||||||
{
|
{
|
||||||
|
plugin_t *oc=currentplug;
|
||||||
|
qboolean ret;
|
||||||
extern int mousecursor_x, mousecursor_y;
|
extern int mousecursor_x, mousecursor_y;
|
||||||
|
|
||||||
if (!menuplug)
|
if (!menuplug)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return VM_Call(menuplug->vm, menuplug->menufunction, eventtype, param, mousecursor_x, mousecursor_y);
|
currentplug = menuplug;
|
||||||
|
ret = VM_Call(menuplug->vm, menuplug->menufunction, eventtype, param, mousecursor_x, mousecursor_y);
|
||||||
|
currentplug=oc;
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plug_SBar(void)
|
void Plug_SBar(void)
|
||||||
|
@ -941,6 +950,7 @@ void Plug_Close(plugin_t *plug)
|
||||||
prev->next = plug->next;
|
prev->next = plug->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Con_Printf("Closing plugin %s\n", plug->name);
|
||||||
VM_Destroy(plug->vm);
|
VM_Destroy(plug->vm);
|
||||||
|
|
||||||
Plug_FreePlugImages(plug);
|
Plug_FreePlugImages(plug);
|
||||||
|
@ -948,6 +958,30 @@ void Plug_Close(plugin_t *plug)
|
||||||
|
|
||||||
if (currentplug == plug)
|
if (currentplug == plug)
|
||||||
currentplug = NULL;
|
currentplug = NULL;
|
||||||
|
if (menuplug == plug)
|
||||||
|
{
|
||||||
|
menuplug = NULL;
|
||||||
|
key_dest = key_game;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Plug_Close_f(void)
|
||||||
|
{
|
||||||
|
plugin_t *plug;
|
||||||
|
char *name = Cmd_Argv(1);
|
||||||
|
if (Cmd_Argc()<2)
|
||||||
|
{
|
||||||
|
Con_Printf("Close which plugin?\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (plug = plugs; plug; plug = plug->next)
|
||||||
|
{
|
||||||
|
if (!strcmp(plug->name, Cmd_Argv(1)))
|
||||||
|
{
|
||||||
|
Plug_Close(plug);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plug_CloseAll_f(void)
|
void Plug_CloseAll_f(void)
|
||||||
|
|
Loading…
Reference in a new issue