From f775faf4351fc8860476ac1509206219f2fa32f2 Mon Sep 17 00:00:00 2001 From: helixhorned Date: Tue, 1 May 2012 12:39:02 +0000 Subject: [PATCH] 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 --- polymer/eduke32/source/game.c | 22 ++++++++++++++++++++-- polymer/eduke32/source/menus.c | 30 +++++++++++++++--------------- 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 2cfb522fe..505e66f51 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -2921,9 +2921,27 @@ void G_DisplayRest(int32_t smoothratio) aGameVars[g_iReturnVarID].val.lValue = 0; if (apScriptGameEvent[EVENT_DISPLAYCROSSHAIR]) VM_OnEvent(EVENT_DISPLAYCROSSHAIR, g_player[screenpeek].ps->i, screenpeek, -1); + 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), - 0,CROSSHAIR,0, CROSSHAIR_PAL,2+1); + { + 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); + } } #if 0 if (GametypeFlags[ud.coop] & GAMETYPE_TDM) diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index 2478b26ec..bd772ebe4 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -114,10 +114,10 @@ void savetemp(char *fn,int32_t daptr,int32_t dasiz) } #endif -#define LMB (buttonstat&1) -#define RMB (buttonstat&2) -#define WHEELUP (buttonstat&16) -#define WHEELDOWN (buttonstat&32) +#define LMB (buttonstat&(1|256)) +#define RMB (buttonstat&(2|512)) +#define WHEELUP (buttonstat&(16|4096)) +#define WHEELDOWN (buttonstat&(32|8192)) 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; 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) { @@ -248,9 +248,9 @@ static int32_t probe_(int32_t type,int32_t x,int32_t y,int32_t i,int32_t n) else { 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); - 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-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 (*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_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; 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_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 (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_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); } - 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_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 { - 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_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); } - 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_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) || - KB_KeyPressed(sc_RightArrow) || KB_KeyPressed(sc_kpad_6) || ((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) || (LMB && minfo.dyaw > 256) || KB_KeyPressed(sc_Tab)) { KB_ClearKeyDown(sc_LeftArrow);