aboutsummaryrefslogtreecommitdiffstats
path: root/src/cmd-version.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd-version.c')
-rw-r--r--src/cmd-version.c89
1 files changed, 14 insertions, 75 deletions
diff --git a/src/cmd-version.c b/src/cmd-version.c
index 4ee4309..adb501f 100644
--- a/src/cmd-version.c
+++ b/src/cmd-version.c
@@ -5,6 +5,9 @@
#include "l2su.h"
#include "macros.h"
#include "args.h"
+#include "assets.h"
+#include "launch.h"
+#include "instance.h"
#include <jansson.h>
#include <stdio.h>
@@ -36,97 +39,33 @@ unsigned cmd_version_list_local(struct l2_context_node *ctx, char **args)
return CMD_RESULT_SUCCESS;
}
-bool feat_match_cb(const char *name, json_t *js) {
+bool feat_match_cb(const char *name, json_t *js, void *unused) {
L2_UNUSED(name);
L2_UNUSED(js);
+ L2_UNUSED(unused);
return false;
}
-int l2_assets__load_index(json_t *version, json_t **asset_index);
-int l2_assets__download_assets(json_t *asset_index, char **path);
-
+void l2_launch__test(struct l2_launch *launch);
unsigned cmd_version_install(struct l2_context_node *ctx, char **args)
{
unsigned res = l2_version_load_remote();
- char *jarpath = NULL;
-
- if (res != VERSION_SUCCESS) {
- CMD_FATAL("failed to load versions: %s", l2_version_strerror(res));
- }
-
- json_t *js;
- res = l2_version_load_local(*args, &js);
if (res != VERSION_SUCCESS) {
- CMD_FATAL("failed to load 1.8.9: %s", l2_version_strerror(res));
- }
-
- CMD_INFO0("Retrieving library list...");
- struct l2_version_library *libs = NULL;
- if ((res = l2_version_collect_libraries(js, &libs, &feat_match_cb)) != VERSION_SUCCESS) {
- CMD_FATAL("Failed to collect library list: %s", l2_version_strerror(res));
- }
-
- CMD_INFO0("Downloading libraries...");
- if ((res = l2_version_download_libraries(libs)) != VERSION_SUCCESS) {
- CMD_FATAL("Failed to download libraries: %s", l2_version_strerror(res));
- }
-
- CMD_INFO0("Downloading client jar...");
- if ((res = l2_version_download_jar(js, "client", &jarpath)) != VERSION_SUCCESS) {
- CMD_FATAL("Failed to download client jar: %s", l2_version_strerror(res));
- }
-
- CMD_INFO0("Downloading asset index...");
- json_t *assets = NULL;
- if (l2_assets__load_index(js, &assets) < 0) {
- CMD_FATAL0("Failed to load asset index.");
- }
-
- CMD_INFO0("Downloading assets...");
- char *assetsbase = NULL;
- if (l2_assets__download_assets(assets, &assetsbase) < 0) {
- CMD_FATAL0("Failed to download assets.");
- }
-
- char *nativesdir = NULL;
- CMD_INFO0("Extracting natives...");
- if ((res = l2_version_extract_natives(libs, &nativesdir)) != VERSION_SUCCESS) {
- CMD_FATAL("Failed to extract natives: %s", l2_version_strerror(res));
+ CMD_FATAL("Failed to load versions: %s", l2_version_strerror(res));
}
- char **game_args;
- size_t ngame_args;
- l2_subst_t *st;
- l2_subst_init(&st);
- l2_subst_add(st, "version_name", "1.8.9");
- if (l2_args_get_game_args(js, st, &feat_match_cb, &game_args, &ngame_args) < 0) {
- CMD_FATAL0("Failed to find game arguments");
- }
- for (size_t n = 0; n < ngame_args; ++n) {
- CMD_DEBUG("arg: %s", game_args[n]);
- free(game_args[n]);
+ if ((res = l2_instance_load_all()) != INSTANCE_SUCCESS) {
+ CMD_FATAL("Failed to load instances: %s", l2_instance_errormsg[res]);
}
- free(game_args);
- if (l2_args_get_jvm_args(js, st, &feat_match_cb, &game_args, &ngame_args) < 0) {
- CMD_FATAL0("Failed to find JVM arguments");
- }
- for (size_t n = 0; n < ngame_args; ++n) {
- CMD_DEBUG("jvm arg: %s", game_args[n]);
- free(game_args[n]);
+ struct l2_launch launch = { 0 };
+ if (l2_launch_init(&launch, *args, l2_state.instance_head) < 0) {
+ CMD_FATAL0("Failed to launch the game");
}
- free(game_args);
-
- l2_subst_free(st);
-
- CMD_INFO("Assets base: %s", assetsbase);
- free(assetsbase);
- json_decref(assets);
+ l2_launch__test(&launch);
- l2_version_free_libraries(libs);
- free(jarpath);
- json_decref(js);
+ l2_launch_free_contents(&launch);
return CMD_RESULT_SUCCESS;
}