Patch adding Wii support by tueidj, part 5: game-side input device changes

- the crosshair is displayed at the position read from the absolute pointing
  device
- in the menus, use the hat input (that was mapped to mouse buttons in part 4)
  for navigation

git-svn-id: https://svn.eduke32.com/eduke32@2625 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2012-05-01 12:39:02 +00:00
parent a1d3c2dcea
commit f775faf435
2 changed files with 35 additions and 17 deletions

View file

@ -2921,10 +2921,28 @@ void G_DisplayRest(int32_t smoothratio)
aGameVars[g_iReturnVarID].val.lValue = 0; aGameVars[g_iReturnVarID].val.lValue = 0;
if (apScriptGameEvent[EVENT_DISPLAYCROSSHAIR]) if (apScriptGameEvent[EVENT_DISPLAYCROSSHAIR])
VM_OnEvent(EVENT_DISPLAYCROSSHAIR, g_player[screenpeek].ps->i, screenpeek, -1); VM_OnEvent(EVENT_DISPLAYCROSSHAIR, g_player[screenpeek].ps->i, screenpeek, -1);
if (aGameVars[g_iReturnVarID].val.lValue == 0) if (aGameVars[g_iReturnVarID].val.lValue == 0)
rotatesprite_win((160L-(g_player[myconnectindex].ps->look_ang>>1))<<16,100L<<16,scale(65536,ud.crosshairscale,100), {
int32_t x, y;
#ifdef GEKKO
readmouseabsxy(&x, &y);
if (x || y)
{
x >>= 1;
y = (y*5)/12;
}
else
#endif
{
x = 160;
y = 100;
}
rotatesprite_win((x-(g_player[myconnectindex].ps->look_ang>>1))<<16,y<<16,scale(65536,ud.crosshairscale,100),
0,CROSSHAIR,0,CROSSHAIR_PAL,2+1); 0,CROSSHAIR,0,CROSSHAIR_PAL,2+1);
} }
}
#if 0 #if 0
if (GametypeFlags[ud.coop] & GAMETYPE_TDM) if (GametypeFlags[ud.coop] & GAMETYPE_TDM)
{ {

View file

@ -114,10 +114,10 @@ void savetemp(char *fn,int32_t daptr,int32_t dasiz)
} }
#endif #endif
#define LMB (buttonstat&1) #define LMB (buttonstat&(1|256))
#define RMB (buttonstat&2) #define RMB (buttonstat&(2|512))
#define WHEELUP (buttonstat&16) #define WHEELUP (buttonstat&(16|4096))
#define WHEELDOWN (buttonstat&32) #define WHEELDOWN (buttonstat&(32|8192))
static ControlInfo minfo; static ControlInfo minfo;
@ -135,7 +135,7 @@ static int32_t probe_(int32_t type,int32_t x,int32_t y,int32_t i,int32_t n)
centre = 320>>2; centre = 320>>2;
else centre = 0; else centre = 0;
if (!buttonstat || buttonstat == 16 || buttonstat == 32) if (!buttonstat || buttonstat == 16 || buttonstat == 32 || buttonstat == 4096 || buttonstat == 8192)
{ {
if (KB_KeyPressed(sc_UpArrow) || KB_KeyPressed(sc_kpad_8) || mi < -8192 || WHEELUP) if (KB_KeyPressed(sc_UpArrow) || KB_KeyPressed(sc_kpad_8) || mi < -8192 || WHEELUP)
{ {
@ -248,9 +248,9 @@ static int32_t probe_(int32_t type,int32_t x,int32_t y,int32_t i,int32_t n)
else else
{ {
if (onbar == 0) return(-probey-2); if (onbar == 0) return(-probey-2);
if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && (WHEELUP || mii < -256))) if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || (LMB && (WHEELUP || mii < -256)))
return(probey); return(probey);
else if (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && (WHEELDOWN || mii > 256))) else if (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || (LMB && (WHEELDOWN || mii > 256)))
return(probey); return(probey);
return(-probey-2); return(-probey-2);
} }
@ -406,7 +406,7 @@ static void sliderbar(int32_t type, int32_t x,int32_t y,int32_t *p,int32_t dainc
if (damodify) if (damodify)
{ {
if (*p >= min && *p <= max && (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && (WHEELUP || mii < -256)))) // && onbar) ) if (*p >= min && *p <= max && (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || (LMB && (WHEELUP || mii < -256)))) // && onbar) )
{ {
KB_ClearKeyDown(sc_LeftArrow); KB_ClearKeyDown(sc_LeftArrow);
KB_ClearKeyDown(sc_kpad_4); KB_ClearKeyDown(sc_kpad_4);
@ -421,7 +421,7 @@ static void sliderbar(int32_t type, int32_t x,int32_t y,int32_t *p,int32_t dainc
*p = max; *p = max;
S_PlaySound(KICK_HIT); S_PlaySound(KICK_HIT);
} }
if (*p <= max && *p >= min && (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && (WHEELDOWN || mii > 256)))) //&& onbar) ) if (*p <= max && *p >= min && (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || (LMB && (WHEELDOWN || mii > 256)))) //&& onbar) )
{ {
KB_ClearKeyDown(sc_RightArrow); KB_ClearKeyDown(sc_RightArrow);
KB_ClearKeyDown(sc_kpad_6); KB_ClearKeyDown(sc_kpad_6);
@ -464,7 +464,7 @@ static void modval(int32_t min, int32_t max,int32_t *p,int32_t dainc,int32_t dam
{ {
if (rev == 0) if (rev == 0)
{ {
if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && minfo.dyaw < -256)) // && onbar) ) if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || (LMB && minfo.dyaw < -256)) // && onbar) )
{ {
KB_ClearKeyDown(sc_LeftArrow); KB_ClearKeyDown(sc_LeftArrow);
KB_ClearKeyDown(sc_kpad_4); KB_ClearKeyDown(sc_kpad_4);
@ -478,7 +478,7 @@ static void modval(int32_t min, int32_t max,int32_t *p,int32_t dainc,int32_t dam
} }
S_PlaySound(PISTOL_BODYHIT); S_PlaySound(PISTOL_BODYHIT);
} }
if (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && minfo.dyaw > 256)) //&& onbar) ) if (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || (LMB && minfo.dyaw > 256)) //&& onbar) )
{ {
KB_ClearKeyDown(sc_RightArrow); KB_ClearKeyDown(sc_RightArrow);
KB_ClearKeyDown(sc_kpad_6); KB_ClearKeyDown(sc_kpad_6);
@ -495,7 +495,7 @@ static void modval(int32_t min, int32_t max,int32_t *p,int32_t dainc,int32_t dam
} }
else else
{ {
if (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && minfo.dyaw > 256)) //&& onbar )) if (KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || (LMB && minfo.dyaw > 256)) //&& onbar ))
{ {
KB_ClearKeyDown(sc_RightArrow); KB_ClearKeyDown(sc_RightArrow);
KB_ClearKeyDown(sc_kpad_6); KB_ClearKeyDown(sc_kpad_6);
@ -509,7 +509,7 @@ static void modval(int32_t min, int32_t max,int32_t *p,int32_t dainc,int32_t dam
} }
S_PlaySound(PISTOL_BODYHIT); S_PlaySound(PISTOL_BODYHIT);
} }
if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && minfo.dyaw < -256)) // && onbar) ) if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || (LMB && minfo.dyaw < -256)) // && onbar) )
{ {
KB_ClearKeyDown(sc_LeftArrow); KB_ClearKeyDown(sc_LeftArrow);
KB_ClearKeyDown(sc_kpad_4); KB_ClearKeyDown(sc_kpad_4);
@ -2302,8 +2302,8 @@ cheat_for_port_credits:
} }
} }
if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || ((buttonstat&1) && minfo.dyaw < -256) || if (KB_KeyPressed(sc_LeftArrow) || KB_KeyPressed(sc_kpad_4) || (LMB && minfo.dyaw < -256) ||
KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((buttonstat&1) && minfo.dyaw > 256) || KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || (LMB && minfo.dyaw > 256) ||
KB_KeyPressed(sc_Tab)) KB_KeyPressed(sc_Tab))
{ {
KB_ClearKeyDown(sc_LeftArrow); KB_ClearKeyDown(sc_LeftArrow);