X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fnetwork.c;h=fcd757d48831d34efe78778fce6e476522c8b9f2;hp=e21de8c5859c47b1f5e1dcae2cda6678f8704715;hb=33a2bc2439d6770b47e395d84ca67eeef18d02d4;hpb=41165ff0a84cf7c0391f6b56520a1f7f97ccf496 diff --git a/src/network.c b/src/network.c index e21de8c5..fcd757d4 100644 --- a/src/network.c +++ b/src/network.c @@ -52,24 +52,45 @@ static boolean stop_network_game = FALSE; static void DrawNetworkTextExt(char *message, int font_nr, boolean initialize) { static int xpos = 0, ypos = 0; + static int max_line_width = 0; int font_width = getFontWidth(font_nr); int font_height = getFontHeight(font_nr); + int ypos_1 = 120; + int ypos_2 = 150; if (initialize) { - xpos = (WIN_XSIZE - getTextWidth(message, font_nr)) / 2; - ypos = 120; + if (game_status == GAME_MODE_LOADING) + { + max_line_width = WIN_XSIZE; + + xpos = (max_line_width - getTextWidth(message, font_nr)) / 2; + ypos = ypos_1; + + DrawText(xpos, ypos, message, font_nr); - DrawText(xpos, ypos, message, font_nr); + xpos = 0; + ypos = ypos_2; + } + else + { + max_line_width = SXSIZE; - xpos = 0; - ypos = 150; + DrawTextSCentered(ypos_1, font_nr, message); + + /* calculate offset to x position caused by rounding */ + int max_chars_per_line = max_line_width / font_width; + int xoffset = (max_line_width - max_chars_per_line * font_width) / 2; + + xpos = SX + xoffset; + ypos = SY + ypos_2; + } Error(ERR_DEBUG, "========== %s ==========", message); } else { - int max_chars_per_line = WIN_XSIZE / font_width; + int max_chars_per_line = max_line_width / font_width; int max_lines_per_text = 10; int num_lines_spacing = (font_nr == FC_YELLOW ? 1 : 3); int num_lines_printed = DrawTextBuffer(xpos, ypos, message, font_nr, @@ -219,7 +240,7 @@ boolean ConnectToServer(char *hostname, int port) DrawNetworkText("Looking for local network server ..."); - if (SDLNet_CheckSockets(udp_socket_set, 1000) == 1) + if (SDLNet_CheckSockets(udp_socket_set, 500) == 1) { int num_packets = SDLNet_UDP_Recv(udp, &packet); @@ -297,10 +318,8 @@ boolean ConnectToServer(char *hostname, int port) StartNetworkServer(port); /* wait for server to start up and try connecting several times */ - for (i = 0; i < 6; i++) + for (i = 0; i < 30; i++) { - Delay(500); /* wait 500 ms == 0.5 seconds */ - if ((sfd = SDLNet_TCP_Open(&ip))) /* connected */ { DrawNetworkText_Success("Successfully connected!"); @@ -308,6 +327,8 @@ boolean ConnectToServer(char *hostname, int port) SDLNet_TCP_AddSocket(rfds, sfd); return TRUE; } + + Delay(100); } DrawNetworkText_Failed("Failed to connect to network server!");