added support for cursor keys and joystick to network player request dialog
[rocksndiamonds.git] / src / init.c
index 3e0f01dbaba6950025412f58e1539ed5320fb4c2..88ffc38bfca24941a3a051b2381723b2567f1078 100644 (file)
@@ -1289,6 +1289,8 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   g->post_delay_random = 0;
   g->init_event = ANIM_EVENT_DEFAULT;
   g->anim_event = ANIM_EVENT_DEFAULT;
+  g->init_event_action = -1;
+  g->anim_event_action = -1;
   g->draw_masked = FALSE;
   g->draw_order = 0;
   g->fade_mode = FADE_MODE_DEFAULT;
@@ -1511,6 +1513,10 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
     g->init_event = parameter[GFX_ARG_INIT_EVENT];
   if (parameter[GFX_ARG_ANIM_EVENT] != ARG_UNDEFINED_VALUE)
     g->anim_event = parameter[GFX_ARG_ANIM_EVENT];
+  if (parameter[GFX_ARG_INIT_EVENT_ACTION] != ARG_UNDEFINED_VALUE)
+    g->init_event_action = parameter[GFX_ARG_INIT_EVENT_ACTION];
+  if (parameter[GFX_ARG_ANIM_EVENT_ACTION] != ARG_UNDEFINED_VALUE)
+    g->anim_event_action = parameter[GFX_ARG_ANIM_EVENT_ACTION];
 
   /* used for toon animations and global animations */
   g->step_offset  = parameter[GFX_ARG_STEP_OFFSET];
@@ -5237,6 +5243,17 @@ static void InitMixer()
   StartMixer();
 }
 
+static void InitVideoOverlay()
+{
+  // if virtual buttons are not loaded from setup file, repeat initializing
+  // virtual buttons grid with default values now that video is initialized
+  if (!setup.touch.grid_initialized)
+    InitSetup();
+
+  InitTileCursorInfo();
+  InitOverlayInfo();
+}
+
 void InitGfxBuffers()
 {
   static int win_xsize_last = -1;
@@ -5590,24 +5607,19 @@ static void InitArtworkDone()
 
 void InitNetworkServer()
 {
-#if defined(NETWORK_AVALIABLE)
-  int nr_wanted;
-#endif
+  if (setup.network_mode)
+    options.network = TRUE;
 
   if (!options.network)
     return;
 
 #if defined(NETWORK_AVALIABLE)
-  nr_wanted = Request("Choose player", REQ_PLAYER | REQ_STAY_CLOSED);
-
   if (!ConnectToServer(options.server_host, options.server_port))
     Error(ERR_EXIT, "cannot connect to network game server");
 
   SendToServer_PlayerName(setup.player_name);
   SendToServer_ProtocolVersion();
-
-  if (nr_wanted)
-    SendToServer_NrWanted(nr_wanted);
+  SendToServer_NrWanted(setup.network_player_nr + 1);
 #endif
 }
 
@@ -6013,9 +6025,7 @@ void OpenAll()
   InitVideoDefaults();
   InitVideoDisplay();
   InitVideoBuffer(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH, setup.fullscreen);
-
-  InitTileCursorInfo();
-  InitOverlayInfo();
+  InitVideoOverlay();
 
   print_timestamp_time("[init video stuff]");