projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed another problem with leaving scores screen on Android platform
[rocksndiamonds.git]
/
src
/
screens.c
diff --git
a/src/screens.c
b/src/screens.c
index 2b575392c2ef6d921c50f91393047e282bd63a6d..ee5035ce0320569f35a9fb27e510a0123da9636d 100644
(file)
--- a/
src/screens.c
+++ b/
src/screens.c
@@
-4353,6
+4353,9
@@
static void DrawChooseTree(TreeInfo **ti_ptr)
boolean restart_music = (game_status != game_status_last_screen &&
game_status_last_screen != GAME_MODE_SCOREINFO);
boolean restart_music = (game_status != game_status_last_screen &&
game_status_last_screen != GAME_MODE_SCOREINFO);
+ scores.continue_on_return = (game_status == GAME_MODE_SCORES &&
+ game_status_last_screen == GAME_MODE_PLAYING);
+
if (CheckFadeAll())
fade_mask = REDRAW_ALL;
if (CheckFadeAll())
fade_mask = REDRAW_ALL;
@@
-4362,7
+4365,11
@@
static void DrawChooseTree(TreeInfo **ti_ptr)
{
execSetupArtwork();
}
{
execSetupArtwork();
}
- else // GAME_MODE_LEVELS
+ else if (game_status == GAME_MODE_SCORES && scores.continue_playing)
+ {
+ StartPlayingFromHallOfFame();
+ }
+ else
{
SetGameStatus(GAME_MODE_MAIN);
{
SetGameStatus(GAME_MODE_MAIN);
@@
-4806,11
+4813,11
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
}
#if defined(PLATFORM_ANDROID)
}
#if defined(PLATFORM_ANDROID)
- //
touching the screen anywhere continues playing the next level
- if ((mx || my) && scores.continue_
playing
)
+ //
directly continue when touching the screen after playing
+ if ((mx || my) && scores.continue_
on_return
)
{
{
+ // ignore touch events until released
mx = my = 0;
mx = my = 0;
- button = MB_MENU_CHOICE;
}
#endif
}
#endif
@@
-4901,15
+4908,17
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
node_cursor->cl_first = ti->cl_first;
node_cursor->cl_cursor = ti->cl_cursor;
node_cursor->cl_first = ti->cl_first;
node_cursor->cl_cursor = ti->cl_cursor;
+
*ti_ptr = node_cursor->node_group;
DrawChooseTree(ti_ptr);
return;
}
}
*ti_ptr = node_cursor->node_group;
DrawChooseTree(ti_ptr);
return;
}
}
- else if (
dx == -1
&& ti->node_parent)
+ else if (
(dx == -1 || button == MB_MENU_CONTINUE)
&& ti->node_parent)
{
{
- FadeSetLeaveMenu();
+ if (game_status != GAME_MODE_SCORES)
+ FadeSetLeaveMenu();
PlaySound(SND_MENU_ITEM_SELECTING);
PlaySound(SND_MENU_ITEM_SELECTING);
@@
-4992,6
+5001,7
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
node_cursor->cl_first = ti->cl_first;
node_cursor->cl_cursor = ti->cl_cursor;
node_cursor->cl_first = ti->cl_first;
node_cursor->cl_cursor = ti->cl_cursor;
+
*ti_ptr = node_cursor->node_group;
DrawChooseTree(ti_ptr);
}
*ti_ptr = node_cursor->node_group;
DrawChooseTree(ti_ptr);
}
@@
-5010,6
+5020,7
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
node_cursor->cl_first = ti->cl_first;
node_cursor->cl_cursor = ti->cl_cursor;
node_cursor->cl_first = ti->cl_first;
node_cursor->cl_cursor = ti->cl_cursor;
+
*ti_ptr = node_cursor;
if (ti->type == TREE_TYPE_LEVEL_DIR)
*ti_ptr = node_cursor;
if (ti->type == TREE_TYPE_LEVEL_DIR)
@@
-5303,13
+5314,15
@@
static void DrawHallOfFame_setScoreEntries(void)
if (score_entry_current == NULL)
score_entry_current = getFirstValidTreeInfoEntry(score_entries);
if (score_entry_current == NULL)
score_entry_current = getFirstValidTreeInfoEntry(score_entries);
+ if (score_entries != NULL && scores.continue_playing)
+ setString(&score_entries->node_group->name, BACKLINK_TEXT_NEXT);
+
// ("score_entries" and "score_entry_current" may be NULL here)
}
void DrawHallOfFame(int nr)
{
scores.last_level_nr = nr;
// ("score_entries" and "score_entry_current" may be NULL here)
}
void DrawHallOfFame(int nr)
{
scores.last_level_nr = nr;
- scores.continue_on_return = (game_status_last_screen == GAME_MODE_PLAYING);
// (this is needed when called from GameEnd() after winning a game)
KeyboardAutoRepeatOn();
// (this is needed when called from GameEnd() after winning a game)
KeyboardAutoRepeatOn();