EL_INVISIBLE_WALL_ACTIVE,
EL_SWITCHGATE_SWITCH_UP,
EL_SWITCHGATE_SWITCH_DOWN,
- EL_DC_SWITCHGATE_SWITCH_UP,
- EL_DC_SWITCHGATE_SWITCH_DOWN,
EL_TIMEGATE_SWITCH,
EL_TIMEGATE_SWITCH_ACTIVE,
- EL_DC_TIMEGATE_SWITCH,
- EL_DC_TIMEGATE_SWITCH_ACTIVE,
EL_EMC_WALL_1,
EL_EMC_WALL_2,
EL_EMC_WALL_3,
EL_SIGN_FRANKIE,
EL_STEEL_EXIT_CLOSED,
EL_STEEL_EXIT_OPEN,
+ EL_STEEL_EXIT_OPENING,
+ EL_STEEL_EXIT_CLOSING,
+ EL_EM_STEEL_EXIT_CLOSED,
+ EL_EM_STEEL_EXIT_OPEN,
+ EL_EM_STEEL_EXIT_OPENING,
+ EL_EM_STEEL_EXIT_CLOSING,
EL_DC_STEELWALL_1_LEFT,
EL_DC_STEELWALL_1_RIGHT,
EL_DC_STEELWALL_1_TOP,
EL_EM_GATE_2_GRAY_ACTIVE,
EL_EM_GATE_3_GRAY_ACTIVE,
EL_EM_GATE_4_GRAY_ACTIVE,
+ EL_EMC_GATE_5,
+ EL_EMC_GATE_6,
+ EL_EMC_GATE_7,
+ EL_EMC_GATE_8,
+ EL_EMC_GATE_5_GRAY,
+ EL_EMC_GATE_6_GRAY,
+ EL_EMC_GATE_7_GRAY,
+ EL_EMC_GATE_8_GRAY,
+ EL_EMC_GATE_5_GRAY_ACTIVE,
+ EL_EMC_GATE_6_GRAY_ACTIVE,
+ EL_EMC_GATE_7_GRAY_ACTIVE,
+ EL_EMC_GATE_8_GRAY_ACTIVE,
+ EL_DC_GATE_WHITE,
+ EL_DC_GATE_WHITE_GRAY,
+ EL_DC_GATE_WHITE_GRAY_ACTIVE,
+ EL_DC_GATE_FAKE_GRAY,
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_OPENING,
EL_SWITCHGATE_CLOSED,
EL_SWITCHGATE_CLOSING,
+ EL_DC_SWITCHGATE_SWITCH_UP,
+ EL_DC_SWITCHGATE_SWITCH_DOWN,
EL_TIMEGATE_OPEN,
EL_TIMEGATE_OPENING,
EL_TIMEGATE_CLOSED,
EL_TIMEGATE_CLOSING,
+ EL_DC_TIMEGATE_SWITCH,
+ EL_DC_TIMEGATE_SWITCH_ACTIVE,
EL_TUBE_ANY,
EL_TUBE_VERTICAL,
EL_TUBE_HORIZONTAL,
EL_TUBE_LEFT_DOWN,
EL_TUBE_RIGHT_UP,
EL_TUBE_RIGHT_DOWN,
+ EL_EXPANDABLE_STEELWALL_HORIZONTAL,
+ EL_EXPANDABLE_STEELWALL_VERTICAL,
+ EL_EXPANDABLE_STEELWALL_ANY,
-1
};
if (IS_HISTORIC_SOLID(i) || i == EL_EXPLOSION)
SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, TRUE);
else
- SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, (IS_CUSTOM_ELEMENT(i) &&
- IS_INDESTRUCTIBLE(i)));
+ SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, (IS_INDESTRUCTIBLE(i) &&
+ i != EL_ACID));
/* ---------- EXPLOSION_PROOF ------------------------------------------ */
if (i == EL_FLAMES)
{
Error(ERR_EXIT_HELP, "unrecognized command '%s'", command);
}
+
+ /* disable networking if any valid command was recognized */
+ options.network = setup.network_mode = FALSE;
}
static void InitSetup()
}
local_player->connected_locally = TRUE;
- local_player->connected_network = TRUE;
}
static void InitArtworkInfo()
if (leveldir_current == NULL)
leveldir_current = getFirstValidTreeInfoEntry(leveldir_first);
}
+
+ SetLevelSetInfo(leveldir_current->identifier, level_nr);
}
static void InitLevelArtworkInfo()
InitGlobalAnimations();
}
-void InitNetworkServer()
+void InitNetworkSettings()
{
-#if defined(NETWORK_AVALIABLE)
- int nr_wanted;
-#endif
-
- if (setup.network_mode)
- options.network = TRUE;
+ InitNetworkInfo(options.network || setup.network_mode,
+ FALSE,
+ options.serveronly,
+ options.server_host,
+ options.server_port);
+}
- if (!options.network)
+void InitNetworkServer()
+{
+ if (!network.enabled || network.connected)
return;
-#if defined(NETWORK_AVALIABLE)
- nr_wanted = Request("Choose player", REQ_PLAYER | REQ_STAY_CLOSED);
+ LimitScreenUpdates(FALSE);
- if (!ConnectToServer(options.server_host, options.server_port))
- Error(ERR_EXIT, "cannot connect to network game server");
+ if (!ConnectToServer(network.server_host, network.server_port))
+ {
+ network.enabled = FALSE;
- SendToServer_PlayerName(setup.player_name);
- SendToServer_ProtocolVersion();
+ setup.network_mode = FALSE;
+ }
+ else
+ {
+ SendToServer_ProtocolVersion();
+ SendToServer_PlayerName(setup.player_name);
+ SendToServer_NrWanted(setup.network_player_nr + 1);
- if (nr_wanted)
- SendToServer_NrWanted(nr_wanted);
-#endif
+ network.connected = TRUE;
+ }
+
+ /* short time to recognize result of network initialization */
+ Delay_WithScreenUpdates(1000);
}
static boolean CheckArtworkConfigForCustomElements(char *filename)
if (options.execute_command)
Execute_Command(options.execute_command);
- if (options.serveronly)
+ InitNetworkSettings();
+
+ if (network.serveronly)
{
#if defined(PLATFORM_UNIX)
- NetworkServer(options.server_port, options.serveronly);
+ NetworkServer(network.server_port, TRUE);
#else
Error(ERR_WARN, "networking only supported in Unix version");
#endif
return;
}
+ InitNetworkServer();
+
SetGameStatus(GAME_MODE_MAIN);
FadeSetEnterScreen();
DrawMainMenu();
- InitNetworkServer();
-
#if 0
Error(ERR_DEBUG, "::: SDL_GetBasePath() == '%s'",
SDL_GetBasePath());