mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-24 10:40:46 +00:00
mouse binds
git-svn-id: https://svn.eduke32.com/eduke32@826 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
71292bb5f1
commit
95eed1cd2b
6 changed files with 79 additions and 12 deletions
|
@ -854,6 +854,10 @@ void CONFIG_WriteBinds(void) // save binds and aliases to disk
|
||||||
if (boundkeys[i].key && *boundkeys[i].name)
|
if (boundkeys[i].key && *boundkeys[i].name)
|
||||||
fprintf(fp,"bind %s%s \"%s\"\n",boundkeys[i].key,boundkeys[i].repeat?"":" norepeat",boundkeys[i].name);
|
fprintf(fp,"bind %s%s \"%s\"\n",boundkeys[i].key,boundkeys[i].repeat?"":" norepeat",boundkeys[i].name);
|
||||||
|
|
||||||
|
for (i=0;i<MAXMOUSEBUTTONS;i++)
|
||||||
|
if (mousebind[i].key && *mousebind[i].name)
|
||||||
|
fprintf(fp,"bind %s%s \"%s\"\n",mousebind[i].key,mousebind[i].repeat?"":" norepeat",mousebind[i].name);
|
||||||
|
|
||||||
for (symb=symbols; symb!=NULL; symb=symb->next)
|
for (symb=symbols; symb!=NULL; symb=symb->next)
|
||||||
if (symb->func == (void *)OSD_ALIAS)
|
if (symb->func == (void *)OSD_ALIAS)
|
||||||
fprintf(fp,"alias %s \"%s\"\n", symb->name, symb->help);
|
fprintf(fp,"alias %s \"%s\"\n", symb->name, symb->help);
|
||||||
|
|
|
@ -1024,6 +1024,7 @@ typedef struct {
|
||||||
} keydef;
|
} keydef;
|
||||||
|
|
||||||
extern keydef keynames[];
|
extern keydef keynames[];
|
||||||
|
extern char *mousenames[];
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -258,6 +258,8 @@ keydef keynames[]=
|
||||||
{0,0}
|
{0,0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char *mousenames[] = { "mouse1", "mouse2", "mouse3", "mouse4", "mouse5", "mouse6" };
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
T_EOF = -2,
|
T_EOF = -2,
|
||||||
|
|
|
@ -57,6 +57,7 @@ static int32 CONTROL_DoubleClickSpeed;
|
||||||
|
|
||||||
int extinput[CONTROL_NUM_FLAGS];
|
int extinput[CONTROL_NUM_FLAGS];
|
||||||
keybind boundkeys[MAXBOUNDKEYS];
|
keybind boundkeys[MAXBOUNDKEYS];
|
||||||
|
keybind mousebind[MAXMOUSEBUTTONS];
|
||||||
|
|
||||||
void CONTROL_GetMouseDelta(void)
|
void CONTROL_GetMouseDelta(void)
|
||||||
{
|
{
|
||||||
|
@ -732,13 +733,25 @@ void CONTROL_ButtonFunctionState(int32 *p1)
|
||||||
|
|
||||||
for (i=0; i<CONTROL_NumMouseButtons; i++)
|
for (i=0; i<CONTROL_NumMouseButtons; i++)
|
||||||
{
|
{
|
||||||
j = CONTROL_MouseButtonMapping[i].doubleclicked;
|
if (mousebind[i].name[0] && CONTROL_MouseButtonState[i])
|
||||||
if (j != KEYUNDEFINED)
|
{
|
||||||
p1[j] |= CONTROL_MouseButtonClickedState[i];
|
if (mousebind[i].repeat || (mousebind[i].laststate == 0))
|
||||||
|
OSD_Dispatch(mousebind[i].name);
|
||||||
|
// if (!boundkeys[i].repeat)
|
||||||
|
// KB_ClearKeyDown(i);
|
||||||
|
}
|
||||||
|
mousebind[i].laststate = CONTROL_MouseButtonState[i];
|
||||||
|
|
||||||
j = CONTROL_MouseButtonMapping[i].singleclicked;
|
if (!mousebind[i].name[0])
|
||||||
if (j != KEYUNDEFINED)
|
{
|
||||||
p1[j] |= CONTROL_MouseButtonState[i];
|
j = CONTROL_MouseButtonMapping[i].doubleclicked;
|
||||||
|
if (j != KEYUNDEFINED)
|
||||||
|
p1[j] |= CONTROL_MouseButtonClickedState[i];
|
||||||
|
|
||||||
|
j = CONTROL_MouseButtonMapping[i].singleclicked;
|
||||||
|
if (j != KEYUNDEFINED)
|
||||||
|
p1[j] |= CONTROL_MouseButtonState[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=0; i<CONTROL_NumJoyButtons; i++)
|
for (i=0; i<CONTROL_NumJoyButtons; i++)
|
||||||
|
|
|
@ -223,6 +223,7 @@ typedef struct binding {
|
||||||
} keybind;
|
} keybind;
|
||||||
|
|
||||||
extern keybind boundkeys[MAXBOUNDKEYS];
|
extern keybind boundkeys[MAXBOUNDKEYS];
|
||||||
|
extern keybind mousebind[6]; // FIXME
|
||||||
|
|
||||||
void CONTROL_ProcessBinds(void);
|
void CONTROL_ProcessBinds(void);
|
||||||
|
|
||||||
|
|
|
@ -932,21 +932,53 @@ static int osdcmd_bind(const osdfuncparm_t *parm)
|
||||||
if (parm->numparms==1&&!Bstrcasecmp(parm->parms[0],"showkeys"))
|
if (parm->numparms==1&&!Bstrcasecmp(parm->parms[0],"showkeys"))
|
||||||
{
|
{
|
||||||
for (i=0;keynames[i].name;i++)OSD_Printf("%s\n",keynames[i].name);
|
for (i=0;keynames[i].name;i++)OSD_Printf("%s\n",keynames[i].name);
|
||||||
|
for (i=0;i<MAXMOUSEBUTTONS;i++)OSD_Printf("%s\n",mousenames[i]);
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parm->numparms==0)
|
if (parm->numparms==0)
|
||||||
{
|
{
|
||||||
OSD_Printf("Keybindings:\n");
|
OSD_Printf("Keybindings:\n");
|
||||||
for (i=0;i<MAXBOUNDKEYS;i++)if (*boundkeys[i].name)
|
for (i=0;i<MAXBOUNDKEYS;i++)
|
||||||
|
if (*boundkeys[i].name)
|
||||||
OSD_Printf("%-11s = %s\n",boundkeys[i].key,boundkeys[i].name);
|
OSD_Printf("%-11s = %s\n",boundkeys[i].key,boundkeys[i].name);
|
||||||
|
for (i=0;i<MAXMOUSEBUTTONS;i++)
|
||||||
|
if (*mousebind[i].name)
|
||||||
|
OSD_Printf("%-11s = %s\n",mousebind[i].key,mousebind[i].name);
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=0;keynames[i].name;i++)
|
for (i=0;keynames[i].name;i++)
|
||||||
if (!Bstrcasecmp(parm->parms[0],keynames[i].name))
|
if (!Bstrcasecmp(parm->parms[0],keynames[i].name))
|
||||||
break;
|
break;
|
||||||
if (!keynames[i].name) return OSDCMD_SHOWHELP;
|
|
||||||
|
if (!keynames[i].name)
|
||||||
|
{
|
||||||
|
for (i=0;i<MAXMOUSEBUTTONS;i++)
|
||||||
|
if (!Bstrcasecmp(parm->parms[0],mousenames[i]))
|
||||||
|
break;
|
||||||
|
if (i >= MAXMOUSEBUTTONS)
|
||||||
|
return OSDCMD_SHOWHELP;
|
||||||
|
|
||||||
|
if (parm->numparms < 2)
|
||||||
|
{
|
||||||
|
OSD_Printf("%-11s = %s\n",mousenames[i], mousebind[i].name);
|
||||||
|
return OSDCMD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
j = 1;
|
||||||
|
if (parm->numparms >= 2 && !Bstrcasecmp(parm->parms[j],"norepeat"))
|
||||||
|
{
|
||||||
|
mousebind[i].repeat = 0;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
else mousebind[i].repeat = 1;
|
||||||
|
Bstrncpy(mousebind[i].name,parm->parms[j], MAXBINDSTRINGLENGTH-1);
|
||||||
|
mousebind[i].key=mousenames[i];
|
||||||
|
if (!osdexecscript)
|
||||||
|
OSD_Printf("%s\n",parm->raw);
|
||||||
|
return OSDCMD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if (parm->numparms < 2)
|
if (parm->numparms < 2)
|
||||||
{
|
{
|
||||||
|
@ -974,8 +1006,12 @@ static int osdcmd_unbindall(const osdfuncparm_t *parm)
|
||||||
|
|
||||||
UNREFERENCED_PARAMETER(parm);
|
UNREFERENCED_PARAMETER(parm);
|
||||||
|
|
||||||
for (i=0;i<MAXBOUNDKEYS;i++)if (*boundkeys[i].name)
|
for (i=0;i<MAXBOUNDKEYS;i++)
|
||||||
boundkeys[i].name[0] = 0;
|
if (*boundkeys[i].name)
|
||||||
|
boundkeys[i].name[0] = 0;
|
||||||
|
for (i=0;i<MAXMOUSEBUTTONS;i++)
|
||||||
|
if (*mousebind[i].name)
|
||||||
|
mousebind[i].name[0] = 0;
|
||||||
OSD_Printf("unbound all keys\n");
|
OSD_Printf("unbound all keys\n");
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
|
@ -988,8 +1024,18 @@ static int osdcmd_unbind(const osdfuncparm_t *parm)
|
||||||
for (i=0;keynames[i].name;i++)
|
for (i=0;keynames[i].name;i++)
|
||||||
if (!Bstrcasecmp(parm->parms[0],keynames[i].name))
|
if (!Bstrcasecmp(parm->parms[0],keynames[i].name))
|
||||||
break;
|
break;
|
||||||
if (!keynames[i].name) return OSDCMD_SHOWHELP;
|
if (!keynames[i].name)
|
||||||
|
{
|
||||||
|
for (i=0;i<MAXMOUSEBUTTONS;i++)
|
||||||
|
if (!Bstrcasecmp(parm->parms[0],mousenames[i]))
|
||||||
|
break;
|
||||||
|
if (i >= MAXMOUSEBUTTONS)
|
||||||
|
return OSDCMD_SHOWHELP;
|
||||||
|
mousebind[i].repeat = 0;
|
||||||
|
mousebind[i].name[0] = 0;
|
||||||
|
OSD_Printf("unbound %s\n",mousebind[i].name);
|
||||||
|
return OSDCMD_OK;
|
||||||
|
}
|
||||||
boundkeys[keynames[i].id].repeat = 0;
|
boundkeys[keynames[i].id].repeat = 0;
|
||||||
boundkeys[keynames[i].id].name[0] = 0;
|
boundkeys[keynames[i].id].name[0] = 0;
|
||||||
OSD_Printf("unbound key %s\n",keynames[i].name);
|
OSD_Printf("unbound key %s\n",keynames[i].name);
|
||||||
|
|
Loading…
Reference in a new issue