{
if (dx && choice == 1)
x = (dx < 0 ? 10 : 14);
+ else if (dx > 0)
+ {
+ if (choice == 4 || choice == 6)
+ button = MB_MENU_CHOICE;
+ }
else if (dy)
y = choice + dy;
}
action = helpanim_info[j].action;
direction = helpanim_info[j].direction;
+ if (element < 0)
+ element = EL_UNKNOWN;
+
if (action != -1 && direction != -1)
graphic = el_act_dir2img(element, action, direction);
else if (action != -1)
graphic = el_act2img(element, action);
else if (direction != -1)
- graphic = el_act2img(element, direction);
+ graphic = el_dir2img(element, direction);
else
graphic = el2img(element);
strcat(token, element_action_info[action].suffix);
if (direction != -1)
- strcat(token, element_direction_info[MV_DIR_BIT(direction)].suffix);
+ strcat(token, element_direction_info[MV_DIR_TO_BIT(direction)].suffix);
return getHashEntry(helptext_info, token);
}
}
else
{
- if (DelayReached(&info_delay, GAME_FRAME_DELAY))
+ if (DelayReached(&info_delay, GameFrameDelay))
if (page < num_pages)
DrawInfoScreen_HelpAnim(page * anims_per_page, num_anims, FALSE);
"Joystick4"
};
+ InitJoysticks();
+
custom_key = setup.input[player_nr].key;
DrawText(mSX + 11 * 32, mSY + 2 * 32, int2str(player_nr + 1, 1),
if (setup.input[player_nr].use_joystick)
{
char *device_name = setup.input[player_nr].joy.device_name;
+ char *text = joystick_name[getJoystickNrFromDeviceName(device_name)];
+ int font_nr = (joystick.fd[player_nr] < 0 ? FONT_VALUE_OLD : FONT_VALUE_1);
- DrawText(mSX + 8 * 32, mSY + 3 * 32,
- joystick_name[getJoystickNrFromDeviceName(device_name)],
- FONT_VALUE_1);
+ DrawText(mSX + 8 * 32, mSY + 3 * 32, text, font_nr);
DrawText(mSX + 32, mSY + 4 * 32, "Calibrate", FONT_MENU_1);
}
else
StopAnimation();
+#if 0
DrawSetupScreen_Input();
+#endif
/* wait until the last pressed button was released */
while (Joystick(player_nr) & JOY_BUTTON)
{
if (!CalibrateJoystickMain(player_nr))
{
+ char *device_name = setup.input[player_nr].joy.device_name;
+ int nr = getJoystickNrFromDeviceName(device_name) + 1;
+ int xpos = mSX - SX;
+ int ypos = mSY - SY;
+
ClearWindow();
- DrawText(mSX + 16, mSY + 6 * 32, " JOYSTICK NOT ", FONT_TITLE_1);
- DrawText(mSX, mSY + 7 * 32, " AVAILABLE ", FONT_TITLE_1);
+ DrawTextF(xpos + 16, ypos + 6 * 32, FONT_TITLE_1, " JOYSTICK %d ", nr);
+ DrawTextF(xpos + 16, ypos + 7 * 32, FONT_TITLE_1, " NOT AVAILABLE! ");
BackToFront();
- Delay(2000); /* show error message for two seconds */
+
+ Delay(2000); /* show error message for a short time */
+
+ ClearEventQueue();
}
+
+#if 1
+ DrawSetupScreen_Input();
+#endif
}
void DrawSetupScreen()
byte tape_action[MAX_PLAYERS];
int i;
+#if 1
if (level.native_em_level->lev->home == 0) /* all players at home */
{
+ local_player->LevelSolved = TRUE;
+ AllPlayersGone = TRUE;
+
+ level.native_em_level->lev->home = -1;
+ }
+
+ if (local_player->LevelSolved)
GameWon();
- if (!TAPE_IS_STOPPED(tape))
+ if (AllPlayersGone && !TAPE_IS_STOPPED(tape))
+ TapeStop();
+
+ if (game_status != GAME_MODE_PLAYING)
+ return;
+#else
+ if (level.native_em_level->lev->home == 0) /* all players at home */
+ {
+ if (local_player->LevelSolved)
+ GameWon();
+
+ if (AllPlayersGone && !TAPE_IS_STOPPED(tape))
TapeStop();
if (game_status != GAME_MODE_PLAYING)
return;
}
+#endif
- if (level.native_em_level->ply1->alive == 0 &&
- level.native_em_level->ply2->alive == 0) /* all dead */
+ if (level.native_em_level->ply[0]->alive == 0 &&
+ level.native_em_level->ply[1]->alive == 0 &&
+ level.native_em_level->ply[2]->alive == 0 &&
+ level.native_em_level->ply[3]->alive == 0) /* all dead */
AllPlayersGone = TRUE;
if (AllPlayersGone && !TAPE_IS_STOPPED(tape))
if (tape.recording)
TapeRecordAction(tape_action);
+#if 1
+ {
+ byte effective_action[MAX_PLAYERS];
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ effective_action[i] = stored_player[i].effective_action;
+
+ GameActions_EM(effective_action);
+ }
+#else
GameActions_EM(local_player->effective_action);
+#endif
if (TimeFrames >= FRAMES_PER_SECOND)
{