X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=596f996ab70e174e27f4c08c93d5753c67289f1a;hb=c5321d9d36d0a74062651d0352fbbaccbe125eca;hp=ad9f4f9938979329d0f55bb548e406215ea7028f;hpb=42e820b32f8ff2a7f9fc6daa4e5a831e95c63ad8;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index ad9f4f99..596f996a 100644 --- a/src/main.c +++ b/src/main.c @@ -34,6 +34,11 @@ int game_status = -1; boolean level_editor_test_game = FALSE; boolean network_playing = FALSE; +#if defined(TARGET_SDL) +boolean network_server = FALSE; +SDL_Thread *server_thread; +#endif + int key_joystick_mapping = 0; boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; @@ -55,11 +60,13 @@ unsigned long Changed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; unsigned long ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short CheckCollision[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaCnt[MAX_NUM_AMOEBA]; short AmoebaCnt2[MAX_NUM_AMOEBA]; -short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short ExplodeDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int RunnerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int PlayerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -89,7 +96,7 @@ int ZX, ZY; int ExitX, ExitY; int AllPlayersGone; -int TimeFrames, TimePlayed, TimeLeft; +int TimeFrames, TimePlayed, TimeLeft, TapeTime; boolean network_player_action_received = FALSE; @@ -115,7 +122,10 @@ SetupFileHash *helptext_info = NULL; /* element definitions */ /* ------------------------------------------------------------------------- */ -struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = +struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1]; + +/* this contains predefined structure elements to initialize "element_info" */ +struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { /* keyword to start parser: "ELEMENT_INFO_START" <-- do not change! */ @@ -436,9 +446,9 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "invisible steel wall" }, { - "maze_runner", - "maze_runner", - "maze runner" + "sokoban_field_player", + "sokoban", + "sokoban field with player" }, { "dynabomb_increase_number", @@ -657,7 +667,7 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = { "black_orb", "black_orb", - "bomb" + "black orb bomb" }, { "amoeba_to_diamond", @@ -3394,6 +3404,61 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "group", "group element 32" }, + { + "unknown", + "unknown", + "unknown element" + }, + { + "trigger_element", + "trigger", + "element triggering change" + }, + { + "trigger_player", + "trigger", + "player triggering change" + }, + { + "sp_gravity_on_port_right", + "sp_port", + "gravity on port (leading right)" + }, + { + "sp_gravity_on_port_down", + "sp_port", + "gravity on port (leading down)" + }, + { + "sp_gravity_on_port_left", + "sp_port", + "gravity on port (leading left)" + }, + { + "sp_gravity_on_port_up", + "sp_port", + "gravity on port (leading up)" + }, + { + "sp_gravity_off_port_right", + "sp_port", + "gravity off port (leading right)" + }, + { + "sp_gravity_off_port_down", + "sp_port", + "gravity off port (leading down)" + }, + { + "sp_gravity_off_port_left", + "sp_port", + "gravity off port (leading left)" + }, + { + "sp_gravity_off_port_up", + "sp_port", + "gravity off port (leading up)" + }, /* ----------------------------------------------------------------------- */ /* "real" (and therefore drawable) runtime elements */ @@ -3684,6 +3749,26 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-", "-" }, + { + "player_is_exploding_1", + "-", + "-" + }, + { + "player_is_exploding_2", + "-", + "-" + }, + { + "player_is_exploding_3", + "-", + "-" + }, + { + "player_is_exploding_4", + "-", + "-" + }, { "quicksand.filling", "quicksand", @@ -3830,8 +3915,23 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-" }, { - "dummy", - "dummy", + "internal_clipboard_custom", + "internal", + "empty custom element" + }, + { + "internal_clipboard_change", + "internal", + "empty change page" + }, + { + "internal_clipboard_group", + "internal", + "empty group element" + }, + { + "internal_dummy", + "internal", "-" }, @@ -4054,7 +4154,7 @@ static void print_usage() " --serveronly only start network server\n" " -v, --verbose verbose mode\n" " --debug display debugging information\n" - " -e, --execute COMMAND execute batch COMMAND:\n" + " -e, --execute COMMAND execute batch COMMAND\n" "\n" "Valid commands for '--execute' option:\n" " \"print graphicsinfo.conf\" print default graphics config\n" @@ -4065,7 +4165,8 @@ static void print_usage() " \"print helptext.conf\" print default helptext config\n" " \"dump level FILE\" dump level data from FILE\n" " \"dump tape FILE\" dump tape data from FILE\n" - " \"autoplay LEVELDIR\" play level tapes for LEVELDIR\n" + " \"autoplay LEVELDIR [NR]\" play level tapes for LEVELDIR\n" + " \"convert LEVELDIR [NR]\" convert levels in LEVELDIR\n" "\n", program.command_basename); }