mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-22 20:11:44 +00:00
add joystick csqc event stuff.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4700 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
ceb32ec494
commit
51baf65e9b
7 changed files with 26 additions and 2 deletions
|
@ -1210,6 +1210,7 @@ qboolean CSQC_ConsoleCommand(char *cmd);
|
|||
qboolean CSQC_KeyPress(int key, int unicode, qboolean down, int devid);
|
||||
qboolean CSQC_MouseMove(float xdelta, float ydelta, int devid);
|
||||
qboolean CSQC_MousePosition(float xabs, float yabs, int devid);
|
||||
qboolean CSQC_JoystickAxis(int axis, float value, int devid);
|
||||
qboolean CSQC_Accelerometer(float x, float y, float z);
|
||||
int CSQC_StartSound(int entnum, int channel, char *soundname, vec3_t pos, float vol, float attenuation, float pitchmod);
|
||||
void CSQC_ParseEntities(void);
|
||||
|
|
|
@ -205,7 +205,10 @@ void IN_Commands(void)
|
|||
Key_Event(ev->devid, ev->keyboard.scancode, ev->keyboard.unicode, ev->type == IEV_KEYDOWN);
|
||||
break;
|
||||
case IEV_JOYAXIS:
|
||||
joy[ev->devid].axis[ev->joy.axis] = ev->joy.value;
|
||||
if (CSQC_JoystickAxis(ev->joy.axis, ev->joy.value, ev->devid))
|
||||
joy[ev->devid].axis[ev->joy.axis] = 0;
|
||||
else
|
||||
joy[ev->devid].axis[ev->joy.axis] = ev->joy.value;
|
||||
break;
|
||||
case IEV_MOUSEDELTA:
|
||||
if (ev->devid < MAXPOINTERS)
|
||||
|
|
|
@ -1869,6 +1869,9 @@ void INS_JoyMove (float *movements, int pnum)
|
|||
// convert range from -32768..32767 to -1..1
|
||||
fAxisValue /= 32768.0;
|
||||
|
||||
if (CSQC_JoystickAxis(i, fAxisValue, 0))
|
||||
continue;
|
||||
|
||||
switch (dwAxisMap[i])
|
||||
{
|
||||
case AxisForward:
|
||||
|
|
|
@ -5996,6 +5996,21 @@ qboolean CSQC_MouseMove(float xdelta, float ydelta, int devid)
|
|||
return G_FLOAT(OFS_RETURN);
|
||||
}
|
||||
|
||||
qboolean CSQC_JoystickAxis(int axis, float value, int devid)
|
||||
{
|
||||
void *pr_globals;
|
||||
if (!csqcprogs || !csqcg.input_event)
|
||||
return false;
|
||||
pr_globals = PR_globals(csqcprogs, PR_CURRENT);
|
||||
|
||||
G_FLOAT(OFS_PARM0) = CSIE_JOYAXIS;
|
||||
G_FLOAT(OFS_PARM1) = axis;
|
||||
G_FLOAT(OFS_PARM2) = value;
|
||||
G_FLOAT(OFS_PARM3) = devid;
|
||||
PR_ExecuteProgram (csqcprogs, csqcg.input_event);
|
||||
return G_FLOAT(OFS_RETURN);
|
||||
}
|
||||
|
||||
qboolean CSQC_Accelerometer(float x, float y, float z)
|
||||
{
|
||||
void *pr_globals;
|
||||
|
|
|
@ -159,7 +159,7 @@ JNIEXPORT void JNICALL Java_com_fteqw_FTEDroidEngine_newglcontext(JNIEnv *env, j
|
|||
if (sys_running)
|
||||
sys_running = 2;
|
||||
|
||||
//fixme: wipe image handles
|
||||
//fixme: wipe image handles, and vbos
|
||||
}
|
||||
|
||||
//called when the user tries to use us to open one of our file types
|
||||
|
|
|
@ -632,6 +632,7 @@ enum csqc_input_event
|
|||
CSIE_MOUSEABS = 3, /*x, y, devid */
|
||||
CSIE_ACCELEROMETER = 4, /*x, y, z*/
|
||||
CSIE_FOCUS = 5, /*mouse, key, devid. if has, the game window has focus. (true/false/-1)*/
|
||||
CSIE_JOYAXIS = 6, /*axis, value, devid*/
|
||||
};
|
||||
|
||||
enum terrainedit_e
|
||||
|
|
|
@ -10612,6 +10612,7 @@ void PR_DumpPlatform_f(void)
|
|||
{"IE_MOUSEABS", "const float", CS, "Specifies that a mouse cursor or touch event was moved to a specific location relative to the virtual screen space. Second argument is the new X position, third argument is the new Y position. Fourth argument is which mouse or touch event triggered the event.", CSIE_MOUSEABS},
|
||||
{"IE_ACCELEROMETER", "const float", CS, NULL, CSIE_ACCELEROMETER},
|
||||
{"IE_FOCUS", "const float", CS, "Specifies that input focus was given. parama says mouse focus, paramb says keyboard focus. If either are -1, then it is unchanged.", CSIE_FOCUS},
|
||||
{"IE_JOYAXIS", "const float", CS, "Specifies that what value a joystick/controller axis currently specifies. x=axis, y=value. Will be called multiple times, once for each axis of each active controller.", CSIE_JOYAXIS},
|
||||
|
||||
{"CLIENTTYPE_DISCONNECTED","const float", QW|NQ, "Return value from clienttype() builtin. This entity is a player slot that is currently empty.", CLIENTTYPE_DISCONNECTED},
|
||||
{"CLIENTTYPE_REAL", "const float", QW|NQ, "This is a real player, and not a bot.", CLIENTTYPE_REAL},
|
||||
|
|
Loading…
Reference in a new issue