SaveLevelSetup_LastSeries();
SaveLevelSetup_SeriesInfo();
+#if defined(PLATFORM_EMSCRIPTEN)
+ Request("Close the browser window to quit!", REQ_CONFIRM);
+#else
if (!setup.ask_on_quit_program ||
Request("Do you really want to quit?", REQ_ASK | REQ_STAY_CLOSED))
SetGameStatus(GAME_MODE_QUIT);
+#endif
}
}
}
checked_free(data);
}
-static void ApiRenamePlayer_HttpRequest(struct HttpRequest *request,
- struct HttpResponse *response,
- void *data_raw)
+static boolean SetRequest_ApiRenamePlayer(struct HttpRequest *request,
+ void *data_raw)
{
struct ApiRenamePlayerThreadData *data = data_raw;
char *player_name_raw = data->player_name;
ConvertHttpRequestBodyToServerEncoding(request);
+ return TRUE;
+}
+
+static void HandleResponse_ApiRenamePlayer(struct HttpResponse *response,
+ void *data_raw)
+{
+ // nothing to do here
+}
+
+#if defined(PLATFORM_EMSCRIPTEN)
+static void Emscripten_ApiRenamePlayer_Loaded(unsigned handle, void *data_raw,
+ void *buffer, unsigned int size)
+{
+ struct HttpResponse *response = GetHttpResponseFromBuffer(buffer, size);
+
+ if (response != NULL)
+ {
+ HandleResponse_ApiRenamePlayer(response, data_raw);
+
+ checked_free(response);
+ }
+ else
+ {
+ Error("server response too large to handle (%d bytes)", size);
+ }
+
+ FreeThreadData_ApiRenamePlayer(data_raw);
+}
+
+static void Emscripten_ApiRenamePlayer_Failed(unsigned handle, void *data_raw,
+ int code, const char *status)
+{
+ Error("server failed to handle request: %d %s", code, status);
+
+ FreeThreadData_ApiRenamePlayer(data_raw);
+}
+
+static void Emscripten_ApiRenamePlayer_Progress(unsigned handle, void *data_raw,
+ int bytes, int size)
+{
+ // nothing to do here
+}
+
+static void Emscripten_ApiRenamePlayer_HttpRequest(struct HttpRequest *request,
+ void *data_raw)
+{
+ if (!SetRequest_ApiRenamePlayer(request, data_raw))
+ {
+ FreeThreadData_ApiRenamePlayer(data_raw);
+
+ return;
+ }
+
+ emscripten_async_wget2_data(request->uri,
+ request->method,
+ request->body,
+ data_raw,
+ TRUE,
+ Emscripten_ApiRenamePlayer_Loaded,
+ Emscripten_ApiRenamePlayer_Failed,
+ Emscripten_ApiRenamePlayer_Progress);
+}
+
+#else
+
+static void ApiRenamePlayer_HttpRequestExt(struct HttpRequest *request,
+ struct HttpResponse *response,
+ void *data_raw)
+{
+ if (!SetRequest_ApiRenamePlayer(request, data_raw))
+ return;
+
if (!DoHttpRequest(request, response))
{
Error("HTTP request failed: %s", GetHttpError());
return;
}
+
+ HandleResponse_ApiRenamePlayer(response, data_raw);
}
+static void ApiRenamePlayer_HttpRequest(struct HttpRequest *request,
+ struct HttpResponse *response,
+ void *data_raw)
+{
+ ApiRenamePlayer_HttpRequestExt(request, response, data_raw);
+
+ FreeThreadData_ApiRenamePlayer(data_raw);
+}
+#endif
+
static int ApiRenamePlayerThread(void *data_raw)
{
struct HttpRequest *request = checked_calloc(sizeof(struct HttpRequest));
struct HttpResponse *response = checked_calloc(sizeof(struct HttpResponse));
+#if defined(PLATFORM_EMSCRIPTEN)
+ Emscripten_ApiRenamePlayer_HttpRequest(request, data_raw);
+#else
ApiRenamePlayer_HttpRequest(request, response, data_raw);
-
- FreeThreadData_ApiRenamePlayer(data_raw);
+#endif
checked_free(request);
checked_free(response);
static void ApiRenamePlayerAsThread(void)
{
- struct ApiRenamePlayerThreadData *data =
- CreateThreadData_ApiRenamePlayer();
+ struct ApiRenamePlayerThreadData *data = CreateThreadData_ApiRenamePlayer();
ExecuteAsThread(ApiRenamePlayerThread,
"ApiRenamePlayer", data,
if (!create_user ||
!Request("Use current setup values for the new player?", REQ_ASK))
LoadSetup();
+ else
+ setup.player_uuid = getStringCopy(getUUID());
}
char *setup_filename = getSetupFilename();