First commit to prepare menu support for touch-based Android input:
Preparation to convert start menus from mouse move input (which does not work at all with touch screen devices) to touch input: New function select_menuitem_by_touch(), to be used in the next commits: - modified: project/jni/application/opentyrian/src/menus.cpp - modified: project/jni/application/opentyrian/src/menus.h Inside #ifdef ANDROID: Disable mouse move input handling in JE_textMenuWait() - modified: project/jni/application/opentyrian/src/setup.cpp
This commit is contained in:
@@ -31,6 +31,26 @@
|
|||||||
|
|
||||||
char episode_name[6][31], difficulty_name[7][21], gameplay_name[5][26];
|
char episode_name[6][31], difficulty_name[7][21], gameplay_name[5][26];
|
||||||
|
|
||||||
|
bool
|
||||||
|
select_menuitem_by_touch(JE_byte menu_top, JE_byte menu_spacing, JE_shortint menu_item_count, JE_shortint *current_item)
|
||||||
|
{
|
||||||
|
if (!mousedown)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
char new_item = (mouse_y - menu_top) / menu_spacing;
|
||||||
|
|
||||||
|
if (mouse_y >= menu_top && mouse_y < menu_top + (menu_item_count+1) * menu_spacing)
|
||||||
|
{
|
||||||
|
if (new_item == *current_item)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
JE_playSampleNum(S_CURSOR);
|
||||||
|
|
||||||
|
*current_item = new_item;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool select_gameplay( void )
|
bool select_gameplay( void )
|
||||||
{
|
{
|
||||||
JE_loadPic(VGAScreen, 2, false);
|
JE_loadPic(VGAScreen, 2, false);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ extern char episode_name[6][31], difficulty_name[7][21], gameplay_name[5][26];
|
|||||||
bool select_gameplay( void );
|
bool select_gameplay( void );
|
||||||
bool select_episode( void );
|
bool select_episode( void );
|
||||||
bool select_difficulty( void );
|
bool select_difficulty( void );
|
||||||
|
bool select_menuitem_by_touch(JE_byte menu_top, JE_byte menu_spacing, JE_shortint menu_item_count, JE_shortint *current_item);
|
||||||
|
|
||||||
#endif /* MENUS_H */
|
#endif /* MENUS_H */
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,9 @@
|
|||||||
|
|
||||||
void JE_textMenuWait( JE_word *waitTime, JE_boolean doGamma )
|
void JE_textMenuWait( JE_word *waitTime, JE_boolean doGamma )
|
||||||
{
|
{
|
||||||
|
#ifdef MENU_SELECT_BY_MOUSE_MOVE
|
||||||
set_mouse_position(160, 100);
|
set_mouse_position(160, 100);
|
||||||
|
#endif
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@@ -58,6 +60,11 @@ void JE_textMenuWait( JE_word *waitTime, JE_boolean doGamma )
|
|||||||
|
|
||||||
if (has_mouse && input_grabbed)
|
if (has_mouse && input_grabbed)
|
||||||
{
|
{
|
||||||
|
#ifdef MENU_SELECT_BY_MOUSE_MOVE
|
||||||
|
/* Whacky hack which changes menu selecton based on
|
||||||
|
* relative mouse movement does not work with touch
|
||||||
|
* when a touch tiggers a mousedown which gets mapped
|
||||||
|
* to SDLK_RETURN above */
|
||||||
if (abs(mouse_y - 100) > 10)
|
if (abs(mouse_y - 100) > 10)
|
||||||
{
|
{
|
||||||
inputDetected = true;
|
inputDetected = true;
|
||||||
@@ -80,6 +87,7 @@ void JE_textMenuWait( JE_word *waitTime, JE_boolean doGamma )
|
|||||||
}
|
}
|
||||||
newkey = true;
|
newkey = true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
NETWORK_KEEP_ALIVE();
|
NETWORK_KEEP_ALIVE();
|
||||||
|
|||||||
Reference in New Issue
Block a user