--- deliantra/Deliantra-Client/bin/cfplus 2006/06/07 05:54:09 1.63 +++ deliantra/Deliantra-Client/bin/cfplus 2006/06/18 17:13:12 1.74 @@ -86,6 +86,7 @@ our $LOGIN_BUTTON; our $QUIT_DIALOG; our $HOST_ENTRY; +our $SERVER_INFO; our $SETUP_DIALOG; our $SETUP_NOTEBOOK; @@ -156,6 +157,7 @@ on_activate => sub { $conn->send ("reply n"); $dialog->destroy; + 0 } ); $hbox->add (new CFClient::UI::Button @@ -163,10 +165,11 @@ on_activate => sub { $conn->send ("reply y"); destroy_query_dialog $conn; + 0 }, ); - $dialog->focus_in; + $dialog->grab_focus; } elsif ($flags & CS_QUERY_SINGLECHAR) { $dialog->{tooltip} = "Press a key (click on the entry to make sure it has keyboard focus)"; @@ -186,6 +189,7 @@ on_activate => sub { $conn->send ("reply n"); destroy_query_dialog $conn; + 0 }, ); $table->add (2, 0, new CFClient::UI::Button @@ -193,6 +197,7 @@ on_activate => sub { $conn->send ("reply d"); destroy_query_dialog $conn; + 0 }, ); @@ -232,6 +237,7 @@ on_activate => sub { $conn->send ("reply y"); destroy_query_dialog $conn; + 0 }, ); @@ -239,13 +245,13 @@ my ($sw1, $sw2) = map +(new CFClient::UI::Combobox value => $_, options => [ - [Str => 1, "Strength ($conn->{stat}{+CS_STAT_STR})"], - [Dex => 2, "Dexterity ($conn->{stat}{+CS_STAT_DEX})"], - [Con => 3, "Constitution ($conn->{stat}{+CS_STAT_CON})"], - [Int => 4, "Intelligence ($conn->{stat}{+CS_STAT_INT})"], - [Wis => 5, "Wisdom ($conn->{stat}{+CS_STAT_WIS})"], - [Pow => 6, "Power ($conn->{stat}{+CS_STAT_POW})"], - [Cha => 7, "Charisma ($conn->{stat}{+CS_STAT_CHA})"], + [1 => "Str", "Strength ($conn->{stat}{+CS_STAT_STR})"], + [2 => "Dex", "Dexterity ($conn->{stat}{+CS_STAT_DEX})"], + [3 => "Con", "Constitution ($conn->{stat}{+CS_STAT_CON})"], + [4 => "Int", "Intelligence ($conn->{stat}{+CS_STAT_INT})"], + [5 => "Wis", "Wisdom ($conn->{stat}{+CS_STAT_WIS})"], + [6 => "Pow", "Power ($conn->{stat}{+CS_STAT_POW})"], + [7 => "Cha", "Charisma ($conn->{stat}{+CS_STAT_CHA})"], ], ), 1 .. 2; @@ -255,6 +261,7 @@ $conn->{stat_change_with} = $sw2->{value}; $conn->send ("reply $sw1->{value}"); destroy_query_dialog $conn; + 0 }, ); $table->add (2, 1, new CFClient::UI::HBox children => [$sw1, $sw2]); @@ -266,6 +273,7 @@ $conn->send ("reply n"); $STATS_WINDOW->hide; destroy_query_dialog $conn; + 0 }, ); @@ -285,10 +293,11 @@ on_changed => sub { $conn->send ("reply $_[1]"); destroy_query_dialog $conn; + 0 }, ; - $entry->focus_in; + $entry->grab_focus; } else { $dialog->{tooltip} = "Enter the reply and press return (click on the entry to make sure it has keyboard focus)"; @@ -298,10 +307,11 @@ on_activate => sub { $conn->send ("reply $_[1]"); destroy_query_dialog $conn; + 0 }, ; - $entry->focus_in; + $entry->grab_focus; } $vbox->add (@dialog); @@ -364,6 +374,7 @@ $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER); $SETUP_DIALOG->show; $INV_WINDOW->hide; + $SETUP_SPELLS->clear_spells; return unless $CONN; @@ -399,50 +410,35 @@ $table->add (1, $row++, new CFClient::UI::CheckBox state => $CFG->{fullscreen}, tooltip => "Bring the client into fullscreen mode.", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{fullscreen} = $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{fullscreen} = $value; 0 } ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fast & Ugly"); $table->add (1, $row++, new CFClient::UI::CheckBox state => $CFG->{fast}, tooltip => "Lower the visual quality considerably to speed up rendering.", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{fast} = $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{fast} = $value; 0 } ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Map Scale"); $table->add (1, $row++, new CFClient::UI::Slider range => [(log $CFG->{map_scale}) / (log 2), -3, 1, 0, 1], tooltip => "Enlarge or shrink the displayed map. Changes are instant.", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{map_scale} = 2 ** $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{map_scale} = 2 ** $value; 0 } ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fog of War"); $table->add (1, $row++, new CFClient::UI::CheckBox state => $CFG->{fow_enable}, tooltip => "Fog-of-War marks areas that cannot be seen by the player. Changes are instant.", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{fow_enable} = $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{fow_enable} = $value; 0 } ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Intensity"); $table->add (1, $row++, new CFClient::UI::Slider range => [$CFG->{fow_intensity}, 0, 1, 0, 1 / 256], tooltip => "Fog of War Lightness. The higher the intensity, the lighter the Fog-of-War color. Changes are instant.", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{fow_intensity} = $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{fow_intensity} = $value; 0 } ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Smooth"); @@ -453,6 +449,7 @@ my ($self, $value) = @_; $CFG->{fow_smooth} = $value; status "Fog of War smoothing requires OpenGL 1.2 or higher" if $CFClient::OpenGL::GL_VERSION < 1.2; + 0 } ); @@ -460,14 +457,14 @@ $table->add (1, $row++, new CFClient::UI::Slider range => [$CFG->{gui_fontsize}, 0.5, 2, 0, 0.1], tooltip => "The base font size used by most GUI elements that do not have their own setting.", - on_changed => sub { $CFG->{gui_fontsize} = $_[1] }, + on_changed => sub { $CFG->{gui_fontsize} = $_[1]; 0 }, ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Message Fontsize"); $table->add (1, $row++, new CFClient::UI::Slider range => [$CFG->{log_fontsize}, 0.5, 2, 0, 0.1], tooltip => "The font size used by the message/server log window only. Changes are instant.", - on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]) }, + on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]); 0 }, ); $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Stats Fontsize"); @@ -478,6 +475,7 @@ on_changed => sub { $CFG->{stat_fontsize} = $_[1]; &set_stats_window_fontsize; + 0 } ); @@ -488,6 +486,7 @@ on_changed => sub { $CFG->{gauge_fontsize} = $_[1]; &set_gauge_window_fontsize; + 0 } ); @@ -498,6 +497,7 @@ on_changed => sub { $CFG->{gauge_size} = $_[1]; $GAUGES->{win}->set_size ($WIDTH, int $HEIGHT * $CFG->{gauge_size}); + 0 } ); @@ -507,6 +507,7 @@ on_activate => sub { video_shutdown (); video_init (); + 0 } ); @@ -524,9 +525,7 @@ $table->add (1, $row++, new CFClient::UI::CheckBox state => $CFG->{audio_enable}, tooltip => "Master Audio Enable. If enabled, sound effects and music will be played. If disabled, no audio will be used and the soundcard will not be opened.", - on_changed => sub { - $CFG->{audio_enable} = $_[1]; - } + on_changed => sub { $CFG->{audio_enable} = $_[1]; 0 } ); # $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Effects Volume"); # $table->add (1, 8, new CFClient::UI::Slider range => [$CFG->{effects_volume}, 0, 128, 1], on_changed => sub { @@ -537,17 +536,12 @@ $hbox->add (new CFClient::UI::CheckBox expand => 1, state => $CFG->{bgm_enable}, tooltip => "If enabled, playing of background music is enabled. If disabled, no background music will be played.", - on_changed => sub { - $CFG->{bgm_enable} = $_[1]; - } + on_changed => sub { $CFG->{bgm_enable} = $_[1]; 0 } ); $hbox->add (new CFClient::UI::Slider expand => 1, range => [$CFG->{bgm_volume}, 0, 1, 0, 1/128], tooltip => "The volume of the background music. Changes are instant.", - on_changed => sub { - $CFG->{bgm_volume} = $_[1]; - CFClient::MixMusic::volume $_[1] * 128; - } + on_changed => sub { $CFG->{bgm_volume} = $_[1]; CFClient::MixMusic::volume $_[1] * 128; 0 } ); $table->add (1, $row++, new CFClient::UI::Button @@ -556,6 +550,7 @@ on_activate => sub { audio_shutdown (); audio_init (); + 0 } ); @@ -627,13 +622,41 @@ $win } +sub debug_setup { + my $table = new CFClient::UI::Table; + + $table->add (0, 0, new CFClient::UI::Label text => "Widget Borders"); + $table->add (1, 0, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 1; 0 }); + $table->add (0, 1, new CFClient::UI::Label text => "Tooltip Widget Info"); + $table->add (1, 1, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 2; 0 }); + $table->add (0, 2, new CFClient::UI::Label text => "Show FPS"); + $table->add (1, 2, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 4; 0 }); + $table->add (0, 3, new CFClient::UI::Label text => "Suppress Tooltips"); + $table->add (1, 3, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 8; 0 }); + + my @default_smooth = (0.05, 0.13, 0.05, 0.13, 0.30, 0.13, 0.05, 0.13, 0.05); + + for my $x (0..2) { + for my $y (0 .. 2) { + $table->add ($x + 3, $y, + new CFClient::UI::Entry + text => $default_smooth[$x * 3 + $y], + on_changed => sub { $MAP->{smooth_matrix}[$x * 3 + $y] = $_[1] if $MAP; 0 }, + ); + } + } + + + $table +} sub stats_window { my $tgw = new CFClient::UI::FancyFrame y => $HEIGHT * (2/8), x => "max", title => "Stats", - name => "stats_window"; + name => "stats_window", + has_close_button => 1; $tgw->add (new CFClient::UI::Window child => my $vb = new CFClient::UI::VBox); $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1, @@ -789,26 +812,25 @@ $STATWIDS->{m_weight}->set_text (sprintf "Max weight: %.1fkg", $stats->{+CS_STAT_WEIGHT_LIM} / 1000); - # TODO: replace by CS_STAT_RES_xxx constants my %tbl = ( - phys => 100, - magic => 101, - fire => 102, - elec => 103, - cold => 104, - conf => 105, - acid => 106, - drain => 107, - ghit => 108, - pois => 109, - slow => 110, - para => 111, - tund => 112, - fear => 113, - depl => 113, - deat => 115, - holyw => 116, - blind => 117, + phys => CS_STAT_RES_PHYS, + magic => CS_STAT_RES_MAG, + fire => CS_STAT_RES_FIRE, + elec => CS_STAT_RES_ELEC, + cold => CS_STAT_RES_COLD, + conf => CS_STAT_RES_CONF, + acid => CS_STAT_RES_ACID, + drain => CS_STAT_RES_DRAIN, + ghit => CS_STAT_RES_GHOSTHIT, + pois => CS_STAT_RES_POISON, + slow => CS_STAT_RES_SLOW, + para => CS_STAT_RES_PARA, + tund => CS_STAT_TURN_UNDEAD, + fear => CS_STAT_RES_FEAR, + depl => CS_STAT_RES_DEPLETE, + deat => CS_STAT_RES_DEATH, + holyw => CS_STAT_RES_HOLYWORD, + blind => CS_STAT_RES_BLIND, ); $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}}) @@ -894,6 +916,7 @@ on_activate => sub { $HOST_ENTRY->set_text ($CFG->{host} = $host); $METASERVER->hide; + 0 }, ), (new CFClient::UI::Empty expand => 1), @@ -924,6 +947,7 @@ child => (my $vbox = new CFClient::UI::VBox), on_visibility_change => sub { update_metaserver if $_[1]; + 0 }, ; @@ -951,6 +975,7 @@ on_changed => sub { my ($self, $value) = @_; $CFG->{host} = $value; + 0 } ); @@ -961,8 +986,8 @@ text => "Server List", other => $METASERVER, tooltip => "Show a list of available crossfire servers", - on_activate => sub { $METASERVER->toggle_visibility }, - on_visibility_change => sub { $METASERVER->hide unless $_[1] }, + on_activate => sub { $METASERVER->toggle_visibility; 0 }, + on_visibility_change => sub { $METASERVER->hide unless $_[1]; 0 }, ); } @@ -970,10 +995,7 @@ $table->add (1, 4, new CFClient::UI::Entry text => $CFG->{user}, tooltip => "The name of your character on the server", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{user} = $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{user} = $value; 0 } ); $table->add (0, 5, new CFClient::UI::Label valign => 0, align => 1, text => "Password"); @@ -981,10 +1003,7 @@ text => $CFG->{password}, hidden => 1, tooltip => "The password for your character", - on_changed => sub { - my ($self, $value) = @_; - $CFG->{password} = $value; - } + on_changed => sub { my ($self, $value) = @_; $CFG->{password} = $value; 0 } ); $table->add (0, 7, new CFClient::UI::Label valign => 0, align => 1, text => "Map Size"); @@ -995,11 +1014,7 @@ . "If you set this to a high value you will be able to see further, " . "but you also increase bandwidth requirements and latency. " . "This option is only used once at log-in.", - on_changed => sub { - my ($self, $value) = @_; - - $CFG->{mapsize} = $self->{range}[0] = $value = int $value; - }, + on_changed => sub { my ($self, $value) = @_; $CFG->{mapsize} = $self->{range}[0] = $value = int $value; 0 }, ); $table->add (0, 8, new CFClient::UI::Label valign => 0, align => 1, text => "Face Prefetch"); @@ -1012,21 +1027,21 @@ . "It also uses up server bandwidth on every connect, " . "so only set it if you really need to prefetch images. " . "This option can be set and unset any time.", - on_changed => sub { $CFG->{face_prefetch} = $_[1] }, + on_changed => sub { $CFG->{face_prefetch} = $_[1]; 0 }, ); $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Count"); $table->add (1, 9, new CFClient::UI::Entry text => $CFG->{output_count}, tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.", - on_changed => sub { $CFG->{output_count} = $_[1] }, + on_changed => sub { $CFG->{output_count} = $_[1]; 0 }, ); $table->add (0, 10, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Sync"); $table->add (1, 10, new CFClient::UI::Entry text => $CFG->{output_sync}, tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.", - on_changed => sub { $CFG->{output_sync} = $_[1] }, + on_changed => sub { $CFG->{output_sync} = $_[1]; 0 }, ); $table->add (1, 11, $LOGIN_BUTTON = new CFClient::UI::Button @@ -1036,6 +1051,7 @@ on_activate => sub { $CONN ? stop_game : start_game; + 0 }, ); @@ -1048,9 +1064,19 @@ on_changed => sub { my ($self, $value) = @_; $CFG->{say_command} = $value; + 0 } ); + $vbox->add (new CFClient::UI::Label + text => "Server Info", + fontsize => 1.2, + padding_y => 8, + fg => [1, 1, 0, 1], + ); + + $vbox->add ($SERVER_INFO = new CFClient::UI::Label ellipsise => 0); + $vbox } @@ -1064,7 +1090,8 @@ y => 0, force_w => $::WIDTH * 0.4, force_h => $::HEIGHT * 0.5, - child => (my $vbox = new CFClient::UI::VBox); + child => (my $vbox = new CFClient::UI::VBox), + has_close_button => 1; $vbox->add ($LOGVIEW); @@ -1082,6 +1109,8 @@ $input->{refocus_map} = 1; } delete $input->{auto_activated}; + + 0 }, on_activate => sub { my ($input, $text) = @_; @@ -1097,9 +1126,13 @@ delete $input->{refocus_map}; $MAPWIDGET->focus_in } + + 0 }, on_escape => sub { - $MAPWIDGET->focus_in + $MAPWIDGET->grab_focus; + + 0 }, ); @@ -1131,7 +1164,7 @@ $hb->add (new CFClient::UI::Button text => "Ok", expand => 1, - on_activate => sub { $QUIT_DIALOG->hide }, + on_activate => sub { $QUIT_DIALOG->hide; 0 }, ); $hb->add (new CFClient::UI::Button text => "Quit anyway", @@ -1184,6 +1217,7 @@ ["Ignore cursed" => PICKUP_NOT_CURSED], ["Jewelery" => PICKUP_JEWELS], ], + ["Weight/Value ratio", 2, 17] ) { my ($title, $x, $y, @bits) = @$_; @@ -1207,10 +1241,31 @@ $::CONN->send_command ("pickup $::CFG->{pickup}") if defined $::CONN; + + 0 }); } } + $table->add (2, 18, new CFClient::UI::ValSlider + range => [0, 0, 16, 1, 1], + to_value => sub { ">= " . 5 * $_[0] }, + on_changed => sub { + my ($slider, $value) = @_; + + $::CFG->{pickup} &= ~0x7; + $::CFG->{pickup} |= int $value + if $value; + 1; + }); + $table->add (3, 18, new CFClient::UI::Button + text => "set", + on_activate => sub { + $::CONN->send_command ("pickup $::CFG->{pickup}") + if defined $::CONN; + 0 + }); + $table } @@ -1221,6 +1276,7 @@ force_w => $WIDTH * 9/10, force_h => $HEIGHT * 9/10, title => "Inventory", + has_close_button => 1, ; $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1); @@ -1266,6 +1322,7 @@ on_activate => sub { $binding_list->remove ($hb); delete $::CFG->{bindings}->{$mod}->{$sym}; + 0 }); $hb->add (new CFClient::UI::Button @@ -1288,6 +1345,7 @@ }); $::BIND_EDITOR->show; $SETUP_DIALOG->hide; + 0 }); $hb->add (new CFClient::UI::Label text => "(Key: $nam)"); @@ -1297,6 +1355,18 @@ }; my $vb = new CFClient::UI::VBox; + $vb->add (my $hb = new CFClient::UI::HBox); + $hb->add (new CFClient::UI::Label text => "only shift-up stops fire"); + $hb->add (new CFClient::UI::CheckBox + expand => 1, + state => $CFG->{shift_fire_stop}, + tooltip => "If this checkbox is enabled you will stop fire only if you stop pressing shift", + on_changed => sub { + my ($cbox, $value) = @_; + $CFG->{shift_fire_stop} = $value; + 0 + }); + $vb->add ($binding_list); $vb->add (my $hb = new CFClient::UI::HBox); @@ -1320,6 +1390,7 @@ ); $SETUP_DIALOG->hide; $::BIND_EDITOR->show; + 0 }, ); @@ -1329,6 +1400,7 @@ expand => 1, on_activate => sub { $SETUP_DIALOG->hide; + 0 } ); @@ -1337,7 +1409,7 @@ $vb } -sub make_help_window { +sub help_window { my $win = new CFClient::UI::FancyFrame x => 'center', y => 'center', @@ -1350,33 +1422,42 @@ $win->add (my $vbox = new CFClient::UI::VBox); $vbox->add (my $buttons = new CFClient::UI::HBox); - $vbox->add (my $viewer = new CFClient::UI::TextView expand => 1, fontsize => 0.8); + $vbox->add (my $viewer = new CFClient::UI::TextScroller + expand => 1, fontsize => 0.8, padding_x => 4); - for ( - [intro => "Introduction"], - [manual => "Manual"], - [command_help => "Commands"], - [skill_help => "Skills"], - ) { - my ($pod, $label) = @$_; - - $buttons->add (new CFClient::UI::Button - text => $label, - on_activate => sub { - my $pom = CFClient::load_pod CFClient::find_rcfile "pod/$pod.pod", - doc_viewer => 1, sub { CFClient::pod_to_pango_list $_[0] }; + $buttons->add (new CFClient::UI::Label text => "Choose a document to display: "); + $buttons->add (my $combo = new CFClient::UI::Combobox + value => undef, + options => [ + [intro => "Introduction"], + [manual => "Manual"], + [skill_help => "Skills"], + [command_help => "Commands"], + [dmcommand_help => "DM Commands"], + [COPYING => "License Terms"], + ], + on_changed => sub { + my ($self, $pod) = @_; - $viewer->clear; - - $viewer->add_paragraph ([1, 1, 1, 1], $_->[1], $_->[0]) - for @$pom; + my $pom = CFClient::load_pod CFClient::find_rcfile "pod/$pod.pod", + doc_viewer => 1, sub { CFClient::pod_to_pango_list $_[0] }; - $viewer->set_offset (0); - }, - ); - } + $viewer->clear; + + $viewer->add_paragraph ([1, 1, 1, 1], $_->[1], $_->[0]) + for @$pom; - $viewer->add_paragraph ([1, 1, 0, 1], "Use one of the buttons above to display a document."); + $viewer->set_offset (0); + 0 + }, + on_visibility_change => sub { + my ($self, $visible) = @_; + return unless $visible; + return if $self->{value}; + $self->set_value ("intro"); + 0 + }, + ); $win } @@ -1453,7 +1534,7 @@ if ($CONSOLE) { $CONSOLE->{input}->{auto_activated} = 1; - $CONSOLE->{input}->focus_in; + $CONSOLE->{input}->grab_focus; if ($preset && $CONSOLE->{input}->get_text eq '') { $CONSOLE->{input}->set_text ($preset); @@ -1461,9 +1542,9 @@ } }); $MAPWIDGET->show; - $MAPWIDGET->focus_in; + $MAPWIDGET->grab_focus; - $LOGVIEW = new CFClient::UI::TextView + $LOGVIEW = new CFClient::UI::TextScroller expand => 1, font => $FONT_FIXED, fontsize => $::CFG->{log_fontsize}, @@ -1481,6 +1562,7 @@ z => 2, force_w => $::WIDTH * 0.6, force_h => $::HEIGHT * 0.6, + has_close_button => 1, ; $SETUP_DIALOG->add ($SETUP_NOTEBOOK = new CFClient::UI::Notebook expand => 1, debug => 1, @@ -1503,6 +1585,8 @@ . "binding editor closes"); $SETUP_NOTEBOOK->add (Spells => $SETUP_SPELLS = spell_setup, "Displays all spells you have and lets you edit keyboard shortcuts for them."); + $SETUP_NOTEBOOK->add (Debug => debug_setup, + "Some debuggign options. Do not ask."); $BUTTONBAR = new CFClient::UI::Buttonbar x => 0, y => 0, z => 200; # put on top @@ -1527,10 +1611,11 @@ $::CFG->{layout} = CFClient::UI::get_layout; CFClient::write_cfg "$Crossfire::VARDIR/cfplusrc"; status "Configuration Saved"; + 0 }, ); - $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => make_help_window, + $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => help_window, tooltip => "View Documentation"); $BUTTONBAR->add (new CFClient::UI::Button @@ -1542,6 +1627,7 @@ } else { exit; } + 0 }, ); @@ -1553,6 +1639,8 @@ } sub video_shutdown { + CFClient::OpenGL::shutdown; + undef $SDL_ACTIVE; } @@ -1858,6 +1946,8 @@ } Event::loop; +#CFClient::SDL_Quit; +#CFClient::_exit 0; END { CFClient::SDL_Quit }