projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor whitespace change
[rocksndiamonds.git]
/
src
/
screens.c
diff --git
a/src/screens.c
b/src/screens.c
index e2308b4d4e455a345f36f9442b7f92f88cb1bf8d..53ac39a7e8911e8d3af97091f7819af2073ff1b4 100644
(file)
--- a/
src/screens.c
+++ b/
src/screens.c
@@
-4339,6
+4339,14
@@
static int getAlignYOffsetFromTreeInfo(TreeInfo *ti)
return align_yoffset;
}
return align_yoffset;
}
+static void StartPlayingFromHallOfFame(void)
+{
+ level_nr = scores.next_level_nr;
+ LoadLevel(level_nr);
+
+ StartGameActions(network.enabled, setup.autorecord, level.random_seed);
+}
+
static void DrawChooseTree(TreeInfo **ti_ptr)
{
int fade_mask = REDRAW_FIELD;
static void DrawChooseTree(TreeInfo **ti_ptr)
{
int fade_mask = REDRAW_FIELD;
@@
-4806,10
+4814,10
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
}
#endif
}
#endif
- // any mouse click or
direction input stops playing the next level
- if ((mx || my || dx || dy) && scores.continue_
playing
)
+ // any mouse click or
cursor key stops leaving scores by "Return" key
+ if ((mx || my || dx || dy) && scores.continue_
on_return
)
{
{
- scores.continue_
playing
= FALSE;
+ scores.continue_
on_return
= FALSE;
level_nr = scores.last_level_nr;
LoadLevel(level_nr);
}
level_nr = scores.last_level_nr;
LoadLevel(level_nr);
}
@@
-4893,6
+4901,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);
@@
-4906,6
+4915,7
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
PlaySound(SND_MENU_ITEM_SELECTING);
*ti_ptr = ti->node_parent;
PlaySound(SND_MENU_ITEM_SELECTING);
*ti_ptr = ti->node_parent;
+
DrawChooseTree(ti_ptr);
return;
DrawChooseTree(ti_ptr);
return;
@@
-4984,6
+4994,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);
}
@@
-5002,6
+5013,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)
@@
-5092,16
+5104,13
@@
static void HandleChooseTree(int mx, int my, int dx, int dy, int button,
}
else if (game_status == GAME_MODE_SCORES)
{
}
else if (game_status == GAME_MODE_SCORES)
{
- if (setup.auto_play_next_level && setup.increment_levels &&
- scores.last_level_nr < leveldir_current->last_level &&
- scores.continue_playing &&
- !network_playing)
+ if (scores.continue_playing && scores.continue_on_return)
{
{
- Start
GameActions(network.enabled, setup.autorecord,
- level.random_seed);
+ Start
PlayingFromHallOfFame();
+
return;
}
return;
}
- else if (!scores.continue_
playing
)
+ else if (!scores.continue_
on_return
)
{
SetGameStatus(GAME_MODE_SCOREINFO);
{
SetGameStatus(GAME_MODE_SCOREINFO);
@@
-5304,6
+5313,7
@@
static void DrawHallOfFame_setScoreEntries(void)
void DrawHallOfFame(int nr)
{
scores.last_level_nr = nr;
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();