Some small launcher stuff, such as support for mod commandline paramters
This commit is contained in:
parent
025da296fe
commit
bfeaf5944b
1 changed files with 55 additions and 30 deletions
|
@ -8,8 +8,9 @@
|
|||
|
||||
typedef unsigned char byte;
|
||||
|
||||
static char cmd_args[32];
|
||||
static char cmd_args[128];
|
||||
|
||||
static char engine_game[16];
|
||||
static int engine_memory;
|
||||
static int engine_vid_width;
|
||||
static int engine_vid_height;
|
||||
|
@ -80,6 +81,9 @@ void launcher_init_list(GtkWidget *list)
|
|||
column2 = gtk_tree_view_column_new_with_attributes("Directory", renderer1, "text", LIST_DIR, NULL);
|
||||
gtk_tree_view_column_set_sort_column_id (column2, LIST_DIR);
|
||||
|
||||
//gtk_tree_sortable_set_sort_column_id (column1, LIST_ITEM, GTK_SORT_ASCENDING);
|
||||
gtk_tree_view_column_set_expand(column1, TRUE);
|
||||
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(list), column1);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(list), column2);
|
||||
store = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
|
||||
|
@ -109,7 +113,7 @@ void launcher_list_changed(GtkWidget *widget, gpointer label)
|
|||
if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(widget), &model, &iter))
|
||||
{
|
||||
gtk_tree_model_get(model, &iter, LIST_DIR, &value, -1);
|
||||
sprintf(cmd_args, "%s", value);
|
||||
sprintf(engine_game, "%s", value);
|
||||
g_free(value);
|
||||
}
|
||||
}
|
||||
|
@ -119,7 +123,7 @@ void launcher_cachefolders(GtkWidget *list)
|
|||
DIR *d;
|
||||
FILE *f;
|
||||
struct dirent *dir;
|
||||
char cFile[80];
|
||||
char cFile[32];
|
||||
|
||||
d = opendir(".");
|
||||
|
||||
|
@ -152,23 +156,28 @@ void launcher_cachefolders(GtkWidget *list)
|
|||
void launcher_start()
|
||||
{
|
||||
char cmd[128];
|
||||
char cbase[64];
|
||||
char cFile[32];
|
||||
char cArgs[64];
|
||||
|
||||
if(strlen(cmd_args) > 0)
|
||||
{
|
||||
if(engine_vid_border == 1)
|
||||
sprintf(cmd, "./ngunix.x11 -game %s -winsize %d %d -mem %d\n", cmd_args, engine_vid_width, engine_vid_height, engine_memory);
|
||||
else
|
||||
sprintf(cmd, "./ngunix.x11 -game %s -winsize %d %d -mem %d -noborder\n", cmd_args, engine_vid_width, engine_vid_height, engine_memory);
|
||||
sprintf(cFile, "./%s/cmdline", engine_game);
|
||||
if(access(cFile, R_OK) != -1 )
|
||||
{
|
||||
FILE *f;
|
||||
f = fopen(cFile, "r");
|
||||
fscanf(f, "%63[^\n]", cArgs);
|
||||
fclose(f);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(engine_vid_border)
|
||||
sprintf(cmd, "./ngunix.x11 -winsize %d %d -mem %d\n", engine_vid_width, engine_vid_height, engine_memory);
|
||||
else
|
||||
sprintf(cmd, "./ngunix.x11 -winsize %d %d -mem %d -noborder\n", engine_vid_width, engine_vid_height, engine_memory);
|
||||
}
|
||||
sprintf(cArgs, "");
|
||||
|
||||
sprintf(cbase, "./ngunix.x11 -data id1 -winsize %d %d -mem %d", engine_vid_width, engine_vid_height, engine_memory);
|
||||
|
||||
if(engine_vid_border == 1)
|
||||
sprintf(cmd, "%s -game %s %s\n", cbase, engine_game, cArgs);
|
||||
else
|
||||
sprintf(cmd, "%s -noborder -game %s %s\n", cbase, engine_game, cArgs);
|
||||
|
||||
printf(cmd);
|
||||
system(cmd);
|
||||
}
|
||||
|
||||
|
@ -182,19 +191,22 @@ gboolean resize_list(GtkWidget *window, GdkEvent *event, GtkWidget *widget)
|
|||
|
||||
void launcher_settings_window()
|
||||
{
|
||||
GtkWidget *prefwindow;
|
||||
/* GtkWidget *prefwindow;
|
||||
GtkWidget *hbox1, *hbox2;
|
||||
GtkWidget *vbox1, *vbox2;
|
||||
|
||||
//GtkWidget *frame;
|
||||
GtkWidget *ltable1;
|
||||
ltable1 = gtk_fixed_new();
|
||||
vbox1 = gtk_vbox_new(TRUE, 1);
|
||||
vbox2 = gtk_vbox_new(TRUE, 1);
|
||||
hbox1 = gtk_hbox_new(TRUE, 1);
|
||||
hbox2 = gtk_hbox_new(TRUE, 1);
|
||||
|
||||
prefwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
prefwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (prefwindow, "NGUNIX - Engine Settings");
|
||||
gtk_container_set_border_width(GTK_CONTAINER(prefwindow), 10);
|
||||
|
||||
//frame = gtk_frame_new("Video Options");
|
||||
//gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
|
||||
gtk_container_add(GTK_CONTAINER(prefwindow), ltable1);
|
||||
gtk_container_add(GTK_CONTAINER(prefwindow), vbox1);
|
||||
gtk_container_add(GTK_CONTAINER(vbox1), hbox1);
|
||||
gtk_container_add(GTK_CONTAINER(vbox1), hbox2);
|
||||
|
||||
GtkLabel *label1 = gtk_label_new("Video Width");
|
||||
GtkLabel *label2 = gtk_label_new("Video Height");
|
||||
|
@ -206,19 +218,30 @@ void launcher_settings_window()
|
|||
GtkWidget *entry1 = gtk_entry_new();
|
||||
GtkWidget *entry2 = gtk_entry_new();
|
||||
GtkWidget *entry3 = gtk_entry_new();
|
||||
|
||||
char vid_width[4], vid_height[4], vid_mem[3];
|
||||
sprintf(vid_width, "%d", engine_vid_width);
|
||||
sprintf(vid_height, "%d", engine_vid_height);
|
||||
sprintf(vid_mem, "%d", engine_memory);
|
||||
GtkEntryBuffer *buf1 = gtk_entry_buffer_new(vid_width, 4);
|
||||
GtkEntryBuffer *buf2 = gtk_entry_buffer_new(vid_height, 4);
|
||||
GtkEntryBuffer *buf3 = gtk_entry_buffer_new(vid_mem, 3);
|
||||
gtk_fixed_put(GTK_FIXED(ltable1), entry1, 90, 0);
|
||||
gtk_fixed_put(GTK_FIXED(ltable1), entry2, 90, 20);
|
||||
gtk_fixed_put(GTK_FIXED(ltable1), entry3, 90, 40);
|
||||
|
||||
gtk_entry_set_buffer(entry1, buf1);
|
||||
gtk_entry_set_buffer(entry2, buf2);
|
||||
gtk_entry_set_buffer(entry3, buf3);
|
||||
|
||||
GtkWidget *check1 = gtk_check_button_new_with_label("Window Borders");
|
||||
GtkWidget *check2 = gtk_check_button_new_with_label("Hide Unknown Mods");
|
||||
gtk_fixed_put(GTK_FIXED(ltable1), check1, 0, 60);
|
||||
gtk_fixed_put(GTK_FIXED(ltable1), check2, 0, 80);
|
||||
|
||||
|
||||
gtk_widget_show_all(prefwindow);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check1), engine_vid_border ? TRUE : FALSE);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check2), engine_hidden ? TRUE : FALSE);
|
||||
gtk_widget_show_all(prefwindow);
|
||||
|
||||
g_signal_connect(prefwindow, "destroy", G_CALLBACK(gtk_widget_hide), NULL);
|
||||
g_signal_connect(prefwindow, "destroy", G_CALLBACK(gtk_widget_hide), NULL);*/
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
@ -245,6 +268,8 @@ int main(int argc, char *argv[])
|
|||
printf("[LAUNCHER] Using Directory %s\n", argv[1]);
|
||||
}
|
||||
|
||||
sprintf(engine_game, "data");
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
launcher_settings_load();
|
||||
|
||||
|
@ -293,7 +318,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
listgames = gtk_tree_view_new();
|
||||
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW (listwindow), listgames);
|
||||
gtk_scrolled_window_set_policy(listwindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(listwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
gtk_widget_set_size_request(listwindow, 440, 300);
|
||||
|
||||
launcher_init_list(listgames);
|
||||
|
|
Loading…
Reference in a new issue