int i;
char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:");
+ /* needed if last screen was the playing screen, invoked from level editor */
+ if (level_editor_test_game)
+ {
+ game_status = LEVELED;
+ DrawLevelEd();
+ return;
+ }
+
+ /* needed if last screen was the level editor */
+ UnmapLevelEditorGadgets();
+
FadeSounds();
GetPlayerConfig();
LoadLevel(level_nr);
DrawMicroLevel(MICROLEV_XPOS,MICROLEV_YPOS);
+ DrawTextF(7*32 + 6, 3*32 + 9, FC_RED, "%d-%d",
+ leveldir[leveldir_nr].first_level,
+ leveldir[leveldir_nr].last_level);
+
+ if (leveldir[leveldir_nr].readonly)
+ {
+ DrawTextF(15*32 + 6, 3*32 + 9 - 7, FC_RED, "READ");
+ DrawTextF(15*32 + 6, 3*32 + 9 + 7, FC_RED, "ONLY");
+ }
+
for(i=2; i<10; i++)
DrawGraphic(0, i, GFX_KUGEL_BLAU);
DrawGraphic(10, 3, GFX_PFEIL_L);
DrawGraphic(14, 3, GFX_PFEIL_R);
- DrawTextF(15*32 + 6, 3*32 + 9, FC_RED, "%d", leveldir[leveldir_nr].levels);
-
DrawText(SX + 56, SY + 326, "A Game by Artsoft Entertainment",
FS_SMALL, FC_RED);
y = choice;
}
- if (y == 4 && ((x == 11 && level_nr > 0) ||
- (x == 15 && level_nr < leveldir[leveldir_nr].levels - 1)) &&
+ if (y == 4 && ((x == 11 && level_nr > leveldir[leveldir_nr].first_level) ||
+ (x == 15 && level_nr < leveldir[leveldir_nr].last_level)) &&
button)
{
- static long level_delay = 0;
+ static unsigned long level_delay = 0;
int step = (button == 1 ? 1 : button == 2 ? 5 : 10);
int new_level_nr, old_level_nr = level_nr;
int font_color = (leveldir[leveldir_nr].readonly ? FC_RED : FC_YELLOW);
new_level_nr = level_nr + (x == 11 ? -step : +step);
- if (new_level_nr < 0)
- new_level_nr = 0;
- if (new_level_nr > leveldir[leveldir_nr].levels - 1)
- new_level_nr = leveldir[leveldir_nr].levels - 1;
+ if (new_level_nr < leveldir[leveldir_nr].first_level)
+ new_level_nr = leveldir[leveldir_nr].first_level;
+ if (new_level_nr > leveldir[leveldir_nr].last_level)
+ new_level_nr = leveldir[leveldir_nr].last_level;
- if (old_level_nr == new_level_nr || !DelayReached(&level_delay, 150))
+ if (old_level_nr == new_level_nr ||
+ !DelayReached(&level_delay, GADGET_FRAME_DELAY))
goto out;
level_nr = new_level_nr;
GFX_DIAMANT,1,10, HA_NEXT,
GFX_LIFE,1,100, HA_NEXT,
GFX_LIFE_ASYNC,1,100, HA_NEXT,
- GFX_SIEB_LEER,4,2, HA_NEXT,
- GFX_SIEB2_LEER,4,2, HA_NEXT,
+ GFX_SIEB_INAKTIV,4,2, HA_NEXT,
+ GFX_SIEB2_INAKTIV,4,2, HA_NEXT,
GFX_AUSGANG_ZU,1,100, GFX_AUSGANG_ACT,4,2,
GFX_AUSGANG_AUF+0,4,2, GFX_AUSGANG_AUF+3,1,2,
GFX_AUSGANG_AUF+2,1,2, GFX_AUSGANG_AUF+1,1,2, HA_NEXT,
void HandleHelpScreen(int button)
{
- static long hs_delay = 0;
+ static unsigned long hs_delay = 0;
int num_helpscreen_els_pages =
(num_helpscreen_els + MAX_HELPSCREEN_ELS-1) / MAX_HELPSCREEN_ELS;
int button_released = !button;
void HandleTypeName(int newxpos, KeySym key)
{
static int xpos = 0, ypos = 2;
- unsigned char ascii;
if (newxpos)
{
if (((key >= XK_A && key <= XK_Z) || (key >= XK_a && key <= XK_z)) &&
xpos < MAX_NAMELEN - 1)
{
+ char ascii;
+
if (key >= XK_A && key <= XK_Z)
ascii = 'A' + (char)(key - XK_A);
- if (key >= XK_a && key <= XK_z)
+ else
ascii = 'a' + (char)(key - XK_a);
setup.player_name[xpos] = ascii;
{
static int choice = 3;
static int first_entry = 0;
- static long choose_delay = 0;
+ static unsigned long choose_delay = 0;
static int redraw = TRUE;
int x = (mx + 32 - SX) / 32, y = (my + 32 - SY) / 32;
+ int step = (button == 1 ? 1 : button == 2 ? 5 : 10);
int num_page_entries;
if (num_leveldirs <= MAX_LEVEL_SERIES_ON_SCREEN)
if (x == 1 && y == 2)
{
if (first_entry > 0 &&
- (dy || DelayReached(&choose_delay, 150)))
+ (dy || DelayReached(&choose_delay, GADGET_FRAME_DELAY)))
{
+#if 0
first_entry--;
+#else
+ first_entry -= step;
+ if (first_entry < 0)
+ first_entry = 0;
+#endif
drawChooseLevelList(first_entry, num_page_entries);
drawChooseLevelInfo(first_entry);
DrawGraphic(0, choice - 1, GFX_KUGEL_ROT);
else if (x == 1 && y > num_page_entries + 2)
{
if (first_entry + num_page_entries < num_leveldirs &&
- (dy || DelayReached(&choose_delay, 150)))
+ (dy || DelayReached(&choose_delay, GADGET_FRAME_DELAY)))
{
+#if 0
first_entry++;
+#else
+ first_entry += step;
+ if (first_entry + num_page_entries > num_leveldirs)
+ first_entry = num_leveldirs - num_page_entries;
+#endif
drawChooseLevelList(first_entry, num_page_entries);
drawChooseLevelInfo(first_entry + num_page_entries - 1);
DrawGraphic(0, choice - 1, GFX_KUGEL_ROT);
}
else if (y==7)
{
+#if 0
if (setup.double_buffering)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
else
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.double_buffering = !setup.double_buffering;
setup.direct_draw = !setup.double_buffering;
+#else
+ DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
+ setup.double_buffering = TRUE;
+ setup.direct_draw = !setup.double_buffering;
+#endif
}
else if (y==8)
{
if (y == 3 && ((x == 1 && !button) || ((x == 11 || x == 13) && button)))
{
- static long delay = 0;
+ static unsigned long delay = 0;
- if (!DelayReached(&delay, 150))
+ if (!DelayReached(&delay, GADGET_FRAME_DELAY))
goto out;
player_nr = (player_nr + (x == 11 ? -1 : +1) + MAX_PLAYERS) % MAX_PLAYERS;