163
163
/* If bots are allowed, default to bot players, otherwise open */
164
164
maxbots = ggzcore_gametype_get_max_bots(gt);
166
seatstring = "seat%d_bot";
168
seatstring = "seat%d_open";
166
if (maxbots < maxplayers) {
167
tmp = ggz_lookup_widget(launch_dialog, "seat1_bot");
168
gtk_widget_set_sensitive(GTK_WIDGET(tmp), FALSE);
170
171
for (x = 2; x <= maxplayers; x++) {
172
sprintf(text, seatstring, x);
173
tmp = lookup_widget(launch_dialog, text);
174
if (maxbots >= x - 1) {
175
snprintf(text, sizeof(text), "seat%d_bot", x);
177
snprintf(text, sizeof(text), "seat%d_bot", x);
178
tmp = ggz_lookup_widget(launch_dialog, text);
179
gtk_widget_set_sensitive(GTK_WIDGET(tmp), FALSE);
181
snprintf(text, sizeof(text), "seat%d_open", x);
183
tmp = ggz_lookup_widget(launch_dialog, text);
174
184
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tmp), TRUE);
192
202
sensitize others */
193
203
for (i = 1; i <= seats; i++) {
195
sprintf(text, "seat%d_box", i);
205
snprintf(text, sizeof(text), "seat%d_box", i);
196
206
tmp = g_object_get_data(G_OBJECT(launch_dialog), text);
197
207
gtk_widget_set_sensitive(tmp, TRUE);
199
209
for (i = (seats + 1); i <= max; i++) {
201
sprintf(text, "seat%d_box", i);
211
snprintf(text, sizeof(text), "seat%d_box", i);
202
212
tmp = g_object_get_data(G_OBJECT(launch_dialog), text);
203
213
gtk_widget_set_sensitive(tmp, FALSE);
235
245
if (!launch_dialog)
236
246
ggz_error_msg("Trying to launch table when "
237
247
"there is no launch dialog.");
238
tmp = lookup_widget(launch_dialog, "seats_combo");
248
tmp = ggz_lookup_widget(launch_dialog, "seats_combo");
239
249
seats = atoi(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmp)->entry)));
241
251
/* Create a table for sending to the server */
242
252
table = ggzcore_table_new();
243
253
room = ggzcore_server_get_cur_room(server);
244
254
gt = ggzcore_room_get_gametype(room);
245
tmp = lookup_widget(launch_dialog, "desc_entry");
255
tmp = ggz_lookup_widget(launch_dialog, "desc_entry");
246
256
ggzcore_table_init(table, gt, gtk_entry_get_text(GTK_ENTRY(tmp)),
249
259
for (x = 0; x < seats; x++) {
250
260
/* Check to see if the seat is a bot. */
252
sprintf(text, "seat%d_bot", x + 1);
253
tmp = lookup_widget(launch_dialog, text);
262
snprintf(text, sizeof(text), "seat%d_bot", x + 1);
263
tmp = ggz_lookup_widget(launch_dialog, text);
254
264
if (GTK_TOGGLE_BUTTON(tmp)->active)
255
265
if (ggzcore_table_set_seat(table, x,
256
266
GGZ_SEAT_BOT, NULL) < 0)
259
269
/* Check to see if the seat is reserved. */
260
sprintf(text, "seat%d_resv", x + 1);
261
tmp = lookup_widget(launch_dialog, text);
270
snprintf(text, sizeof(text), "seat%d_resv", x + 1);
271
tmp = ggz_lookup_widget(launch_dialog, text);
262
272
if (GTK_TOGGLE_BUTTON(tmp)->active) {
263
273
const gchar *name;
264
sprintf(text, "seat%d_name", x + 1);
265
tmp = lookup_widget(launch_dialog, text);
274
snprintf(text, sizeof(text), "seat%d_name", x + 1);
275
tmp = ggz_lookup_widget(launch_dialog, text);
266
276
name = gtk_entry_get_text(GTK_ENTRY(tmp));
268
278
if (ggzcore_table_set_seat(table, x,
295
305
gint x, seats, bots;
297
307
/* Grab the number of seats */
298
tmp = lookup_widget(launch_dialog, "seats_combo");
308
tmp = ggz_lookup_widget(launch_dialog, "seats_combo");
299
309
seats = atoi(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmp)->entry)));
301
311
/* Let's go bot counting.... */
303
313
for (x = 0; x < seats; x++) {
305
sprintf(text, "seat%d_bot", x + 1);
306
tmp = lookup_widget(launch_dialog, text);
315
snprintf(text, sizeof(text), "seat%d_bot", x + 1);
316
tmp = ggz_lookup_widget(launch_dialog, text);
307
317
if (GTK_TOGGLE_BUTTON(tmp)->active)
345
355
/* Show seat's hbox */
346
sprintf(text, "seat%d_box", seat);
356
snprintf(text, sizeof(text), "seat%d_box", seat);
347
357
tmp = g_object_get_data(G_OBJECT(launch_dialog), text);
349
359
gtk_widget_show(GTK_WIDGET(tmp));
406
416
dlg_launch = gtk_dialog_new();
407
417
gtk_window_set_transient_for(GTK_WINDOW(dlg_launch),
408
GTK_WINDOW(win_main));
418
GTK_WINDOW(main_window));
409
419
g_object_set_data(G_OBJECT(dlg_launch), "dlg_launch", dlg_launch);
410
420
gtk_window_set_title(GTK_WINDOW(dlg_launch), _("Seat Assignments"));
411
421
gtk_window_set_resizable(GTK_WINDOW(dlg_launch), TRUE);
566
576
seats[i].box = gtk_hbox_new(FALSE, 0);
567
577
gtk_widget_ref(seats[i].box);
568
sprintf(text, "seat%d_box", i + 1);
578
snprintf(text, sizeof(text), "seat%d_box", i + 1);
569
579
g_object_set_data_full(G_OBJECT(dlg_launch), text,
571
581
(GtkDestroyNotify) gtk_widget_unref);
573
583
gtk_box_pack_start(GTK_BOX(seat_box), seats[i].box, FALSE,
576
sprintf(text, _("Seat %d:"), i + 1);
586
snprintf(text, sizeof(text), _("Seat %d:"), i + 1);
577
587
seats[i].label = gtk_label_new(text);
578
588
gtk_widget_ref(seats[i].label);
579
sprintf(text, "seat%d_lable", i + 1);
589
snprintf(text, sizeof(text), "seat%d_lable", i + 1);
580
590
g_object_set_data_full(G_OBJECT(dlg_launch), text,
582
592
(GtkDestroyNotify) gtk_widget_unref);
590
600
gtk_radio_button_get_group(GTK_RADIO_BUTTON
592
602
gtk_widget_ref(seats[i].bot);
593
sprintf(text, "seat%d_bot", i + 1);
603
snprintf(text, sizeof(text), "seat%d_bot", i + 1);
594
604
g_object_set_data_full(G_OBJECT(dlg_launch), text,
596
606
(GtkDestroyNotify) gtk_widget_unref);
605
615
gtk_radio_button_get_group(GTK_RADIO_BUTTON
606
616
(seats[i].open));
607
617
gtk_widget_ref(seats[i].open);
608
sprintf(text, "seat%d_open", i + 1);
618
snprintf(text, sizeof(text), "seat%d_open", i + 1);
609
619
g_object_set_data_full(G_OBJECT(dlg_launch), text,
611
621
(GtkDestroyNotify) gtk_widget_unref);
620
630
gtk_radio_button_get_group(GTK_RADIO_BUTTON
621
631
(seats[i].resv));
622
632
gtk_widget_ref(seats[i].resv);
623
sprintf(text, "seat%d_resv", i + 1);
633
snprintf(text, sizeof(text), "seat%d_resv", i + 1);
624
634
g_object_set_data_full(G_OBJECT(dlg_launch), text,
626
636
(GtkDestroyNotify) gtk_widget_unref);
634
644
gtk_entry_set_max_length(GTK_ENTRY(seats[i].name),
635
645
MAX_RESERVED_NAME_LEN);
636
646
gtk_widget_ref(seats[i].name);
637
sprintf(text, "seat%d_name", i + 1);
647
snprintf(text, sizeof(text), "seat%d_name", i + 1);
638
648
g_object_set_data_full(G_OBJECT(dlg_launch), text,
640
650
(GtkDestroyNotify) gtk_widget_unref);