ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/bin/cfplus
(Generate patch)

Comparing deliantra/Deliantra-Client/bin/cfplus (file contents):
Revision 1.85 by elmex, Sun Jul 2 19:32:56 2006 UTC vs.
Revision 1.93 by root, Sat Jul 15 01:19:55 2006 UTC

40use CFClient::UI; 40use CFClient::UI;
41use CFClient::BindingEditor; 41use CFClient::BindingEditor;
42use CFClient::MapWidget; 42use CFClient::MapWidget;
43 43
44$SIG{QUIT} = sub { Carp::cluck "QUIT" }; 44$SIG{QUIT} = sub { Carp::cluck "QUIT" };
45$SIG{PIPE} = 'IGNORE';
45 46
46$Event::DIED = sub { 47$Event::DIED = sub {
47 # TODO: display dialog box or so 48 # TODO: display dialog box or so
48 Carp::confess $_[1];#d#TODO: remove when stable 49 Carp::confess $_[1];#d#TODO: remove when stable
49 CFClient::error $_[1]; 50 CFClient::error $_[1];
85our $CONSOLE; 86our $CONSOLE;
86our $METASERVER; 87our $METASERVER;
87our $LOGIN_BUTTON; 88our $LOGIN_BUTTON;
88our $QUIT_DIALOG; 89our $QUIT_DIALOG;
89our $HOST_ENTRY; 90our $HOST_ENTRY;
91our $PICKUP_ENABLE;
90our $SERVER_INFO; 92our $SERVER_INFO;
91 93
92our $SETUP_DIALOG; 94our $SETUP_DIALOG;
93our $SETUP_NOTEBOOK; 95our $SETUP_NOTEBOOK;
94our $SETUP_SERVER; 96our $SETUP_SERVER;
95our $SETUP_KEYBOARD; 97our $SETUP_KEYBOARD;
96our $SETUP_SPELLS;
97 98
99our $PL_NOTEBOOK;
98our $STATS_WINDOW; 100our $PL_WINDOW;
101
102our $INVENTORY_PAGE;
103our $STATS_PAGE;
104our $SPELL_PAGE;
105
106our $HELP_WINDOW;
99our $MESSAGE_WINDOW; 107our $MESSAGE_WINDOW;
100our $FLOORBOX; 108our $FLOORBOX;
101our $GAUGES; 109our $GAUGES;
102our $STATWIDS; 110our $STATWIDS;
103 111
113our $DEBUG_STATUS; 121our $DEBUG_STATUS;
114 122
115our $INV; 123our $INV;
116our $INVR; 124our $INVR;
117our $INV_RIGHT_HB; 125our $INV_RIGHT_HB;
118
119our $PL_NOTEBOOK;
120our $PL_WINDOW;
121 126
122our $BIND_EDITOR; 127our $BIND_EDITOR;
123our $BIND_UPD_CB; 128our $BIND_UPD_CB;
124 129
125our $PICKUP_CFG; 130our $PICKUP_CFG;
223 $conn->send ("reply $stat"); 228 $conn->send ("reply $stat");
224 destroy_query_dialog $conn; 229 destroy_query_dialog $conn;
225 return; 230 return;
226 } 231 }
227 232
228 $STATS_WINDOW->show; 233 $STATS_PAGE->show;
229 $MESSAGE_WINDOW->hide; 234 $MESSAGE_WINDOW->hide;
230 235
231 unshift @dialog, new CFClient::UI::Label 236 unshift @dialog, new CFClient::UI::Label
232 max_w => $::WIDTH * 0.4, 237 max_w => $::WIDTH * 0.4,
233 ellipsise => 0, 238 ellipsise => 0,
273 # right: accept 278 # right: accept
274 $table->add (4, 0, new CFClient::UI::Button 279 $table->add (4, 0, new CFClient::UI::Button
275 text => "Accept", 280 text => "Accept",
276 on_activate => sub { 281 on_activate => sub {
277 $conn->send ("reply n"); 282 $conn->send ("reply n");
278 $STATS_WINDOW->hide; 283 $STATS_PAGE->hide;
279 destroy_query_dialog $conn; 284 destroy_query_dialog $conn;
280 0 285 0
281 }, 286 },
282 ); 287 );
283 288
376sub stop_game { 381sub stop_game {
377 $LOGIN_BUTTON->set_text ("Login"); 382 $LOGIN_BUTTON->set_text ("Login");
378 $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER); 383 $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER);
379 $SETUP_DIALOG->show; 384 $SETUP_DIALOG->show;
380 $PL_WINDOW->hide; 385 $PL_WINDOW->hide;
381 $SETUP_SPELLS->clear_spells; 386 $SPELL_PAGE->clear_spells;
382 387
383 return unless $CONN; 388 return unless $CONN;
384 389
385 status "connection closed"; 390 status "connection closed";
386 391
471 range => [$CFG->{log_fontsize}, 0.5, 2, 0, 0.1], 476 range => [$CFG->{log_fontsize}, 0.5, 2, 0, 0.1],
472 tooltip => "The font size used by the <b>message/server log</b> window only. Changes are instant.", 477 tooltip => "The font size used by the <b>message/server log</b> window only. Changes are instant.",
473 on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]); 0 }, 478 on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]); 0 },
474 ); 479 );
475 480
476 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Stats Fontsize");
477
478 $table->add (1, $row++, new CFClient::UI::Slider
479 range => [$CFG->{stat_fontsize}, 0.5, 2, 0, 0.1],
480 tooltip => "The font size used by the <b>statistics window</b> only. Changes are instant.",
481 on_changed => sub {
482 $CFG->{stat_fontsize} = $_[1];
483 &set_stats_window_fontsize;
484 0
485 }
486 );
487
488 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Gauge fontsize"); 481 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Gauge fontsize");
489 $table->add (1, $row++, new CFClient::UI::Slider 482 $table->add (1, $row++, new CFClient::UI::Slider
490 range => [$CFG->{gauge_fontsize}, 0.5, 2, 0, 0.1], 483 range => [$CFG->{gauge_fontsize}, 0.5, 2, 0, 0.1],
491 tooltip => "Adjusts the fontsize of the gauges at the bottom right. Changes are instant.", 484 tooltip => "Adjusts the fontsize of the gauges at the bottom right. Changes are instant.",
492 on_changed => sub { 485 on_changed => sub {
561 ); 554 );
562 555
563 $vbox 556 $vbox
564} 557}
565 558
566sub set_stats_window_fontsize {
567 for (values %{$STATWIDS}) {
568 $_->set_fontsize ($::CFG->{stat_fontsize});
569 }
570}
571
572sub set_gauge_window_fontsize { 559sub set_gauge_window_fontsize {
573 for (map { $GAUGES->{$_} } grep { $_ ne 'win' } keys %{$GAUGES}) { 560 for (map { $GAUGES->{$_} } grep { $_ ne 'win' } keys %{$GAUGES}) {
574 $_->set_fontsize ($::CFG->{gauge_fontsize}); 561 $_->set_fontsize ($::CFG->{gauge_fontsize});
575 } 562 }
576} 563}
655 642
656 $table 643 $table
657} 644}
658 645
659sub stats_window { 646sub stats_window {
660 my $tgw =
661 new CFClient::UI::Window
662 child => my $vb = new CFClient::UI::VBox; 647 my $vb = new CFClient::UI::VBox;
663 648
664 $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1, 649 $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1,
665 can_hover => 1, can_events => 1, 650 can_hover => 1, can_events => 1,
666 tooltip => "Your name and title. You can change your title by using the <b>title</b> command, if supported by the server."); 651 tooltip => "Your name and title. You can change your title by using the <b>title</b> command, if supported by the server.");
667 $vb->add ($STATWIDS->{map} = new CFClient::UI::Label valign => 0, align => -1, text => "Map:", expand => 1, 652 $vb->add ($STATWIDS->{map} = new CFClient::UI::Label valign => 0, align => -1, text => "Map:", expand => 1,
704 font => $FONT_FIXED, can_hover => 1, can_events => 1, valign => 0, align => +1, template => $template, tooltip => $tooltip); 689 font => $FONT_FIXED, can_hover => 1, can_events => 1, valign => 0, align => +1, template => $template, tooltip => $tooltip);
705 $tbl->add ($col + 1, $row, $STATWIDS->{"$id\_lbl"} = new CFClient::UI::Label 690 $tbl->add ($col + 1, $row, $STATWIDS->{"$id\_lbl"} = new CFClient::UI::Label
706 font => $FONT_FIXED, can_hover => 1, can_events => 1, fg => $color2, valign => 0, align => -1, text => $label, tooltip => $tooltip); 691 font => $FONT_FIXED, can_hover => 1, can_events => 1, fg => $color2, valign => 0, align => -1, text => $label, tooltip => $tooltip);
707 } 692 }
708 693
709 $hb->add (my $tbl2 = new CFClient::UI::Table expand => 1); 694 $vb->add (my $tbl2 = new CFClient::UI::Table expand => 1);
710 695
711 my $row = 0; 696 my $row = 0;
712 my $col = 0; 697 my $col = 0;
713 698
714 my %resist_names = ( 699 my %resist_names = (
700 slow => ["Slow",
715 slow => "<b>Slow</b> (slows you down when you are hit by the spell. Monsters will have an opportunity to come near you faster and hit you more often.)", 701 "<b>Slow</b> (slows you down when you are hit by the spell. Monsters will have an opportunity to come near you faster and hit you more often.)"],
702 holyw => ["Holy Word",
716 holyw => "<b>Holy Word</b> (resistance you against getting the fear when someone whose god doesn't like you spells the holy word on you.)", 703 "<b>Holy Word</b> (resistance you against getting the fear when someone whose god doesn't like you spells the holy word on you.)"],
704 conf => ["Confusion",
717 conf => "<b>Confusion</b> (If you are hit by confusion you will move into random directions, and likely into monsters.)", 705 "<b>Confusion</b> (If you are hit by confusion you will move into random directions, and likely into monsters.)"],
706 fire => ["Fire",
718 fire => "<b>Fire</b> (just your resistance to fire spells like burning hands, dragonbreath, meteor swarm fire, ...)", 707 "<b>Fire</b> (just your resistance to fire spells like burning hands, dragonbreath, meteor swarm fire, ...)"],
708 depl => ["Depletion",
719 depl => "<b>Depletion</b> (some monsters and other effects can cause stats depletion)", 709 "<b>Depletion</b> (some monsters and other effects can cause stats depletion)"],
710 magic => ["Magic",
720 magic => "<b>Magic</b> (resistance to magic spells like magic missile or similar)", 711 "<b>Magic</b> (resistance to magic spells like magic missile or similar)"],
712 drain => ["Draining",
721 drain => "<b>Draining</b> (some monsters (e.g. vampires) and other effects can steal experience)", 713 "<b>Draining</b> (some monsters (e.g. vampires) and other effects can steal experience)"],
714 acid => ["Acid",
722 acid => "<b>Acid</b> (resistance to acid, acid hurts pretty much and also corrodes your weapons)", 715 "<b>Acid</b> (resistance to acid, acid hurts pretty much and also corrodes your weapons)"],
716 pois => ["Poison",
723 pois => "<b>Poison</b> (resistance to getting poisoned)", 717 "<b>Poison</b> (resistance to getting poisoned)"],
718 para => ["Paralysation",
724 para => "<b>Paralysation</b> (this resistance affects the chance you get paralysed)", 719 "<b>Paralysation</b> (this resistance affects the chance you get paralysed)"],
720 deat => ["Death",
725 deat => "<b>Death</b> (resistance against death spells)", 721 "<b>Death</b> (resistance against death spells)"],
722 phys => ["Physical",
726 phys => "<b>Physical</b> (this is the resistance against physical attacks, like when a monster hit you in melee combat. The value displayed here is also displayed in the 'Arm' field on the left.)", 723 "<b>Physical</b> (this is the resistance against physical attacks, like when a monster hit you in melee combat. The value displayed here is also displayed in the 'Arm' field on the left.)"],
724 blind => ["Blind",
727 blind => "<b>Blind</b> (blind resistance affects the chance of a successful blinding attack)", 725 "<b>Blind</b> (blind resistance affects the chance of a successful blinding attack)"],
726 fear => ["Fear",
728 fear => "<b>Fear</b> (this attack will drive you away from monsters who cast this and hit you successfully, being resistant to this helps a lot when fighting those monsters)", 727 "<b>Fear</b> (this attack will drive you away from monsters who cast this and hit you successfully, being resistant to this helps a lot when fighting those monsters)"],
728 tund => ["Turn undead",
729 tund => "<b>Turn undead</b> (affects your resistancy to various forms of 'turn undead' spells. Only relevant when you are, in fact, undead...", 729 "<b>Turn undead</b> (affects your resistancy to various forms of 'turn undead' spells. Only relevant when you are, in fact, undead..."],
730 elec => ["Electricity",
730 elec => "<b>Electricity</b> (resistance against electricity, spells like large lightning, small lightning, ...)", 731 "<b>Electricity</b> (resistance against electricity, spells like large lightning, small lightning, ...)"],
732 cold => ["Cold",
731 cold => "<b>Cold</b> (this is your resistance against cold spells like icestorm, snowstorm, ...)", 733 "<b>Cold</b> (this is your resistance against cold spells like icestorm, snowstorm, ...)"],
734 ghit => ["Ghost hit",
732 ghit => "<b>Ghost hit</b> (special attack used by ghosts and ghost-like beings)", 735 "<b>Ghost hit</b> (special attack used by ghosts and ghost-like beings)"],
733 ); 736 );
734 for (qw/slow holyw conf fire depl magic 737 for (qw/slow holyw conf fire depl magic
735 drain acid pois para deat phys 738 drain acid pois para deat phys
736 blind fear tund elec cold ghit/) 739 blind fear tund elec cold ghit/)
737 { 740 {
742 template => "-100%", 745 template => "-100%",
743 align => +1, 746 align => +1,
744 valign => 0, 747 valign => 0,
745 can_events => 1, 748 can_events => 1,
746 can_hover => 1, 749 can_hover => 1,
747 tooltip => $resist_names{$_}, 750 tooltip => $resist_names{$_}->[1],
748 ); 751 );
749 $tbl2->add ($col + 1, $row, new CFClient::UI::Image 752 $tbl2->add ($col + 1, $row, new CFClient::UI::Image
750 font => $FONT_FIXED, 753 font => $FONT_FIXED,
751 can_hover => 1, 754 can_hover => 1,
752 can_events => 1, 755 can_events => 1,
753 path => "ui/resist/resist_$_.png", 756 path => "ui/resist/resist_$_.png",
754 tooltip => $resist_names{$_}, 757 tooltip => $resist_names{$_}->[1],
758 );
759 $tbl2->add ($col + 2, $row, new CFClient::UI::Label
760 text => $resist_names{$_}->[0],
761 font => $FONT_FIXED,
762 can_hover => 1,
763 can_events => 1,
764 tooltip => $resist_names{$_}->[1],
755 ); 765 );
756 766
757 $row++; 767 $row++;
758 if ($row % 6 == 0) { 768 if ($row % 6 == 0) {
759 $col += 2; 769 $col += 3;
760 $row = 0; 770 $row = 0;
761 } 771 }
762 } 772 }
763 773
764 &set_stats_window_fontsize;
765 update_stats_window ({}); 774 update_stats_window ({});
766 775
767 $tgw 776 $vb
777}
778
779sub skill_window {
780 my ($self) = @_;
781 $STATWIDS->{"_skill_tbl"} = new CFClient::UI::Table expand => 1;
768} 782}
769 783
770sub formsep($) { 784sub formsep($) {
771 scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1 785 scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1
772} 786}
832 depl => CS_STAT_RES_DEPLETE, 846 depl => CS_STAT_RES_DEPLETE,
833 deat => CS_STAT_RES_DEATH, 847 deat => CS_STAT_RES_DEATH,
834 holyw => CS_STAT_RES_HOLYWORD, 848 holyw => CS_STAT_RES_HOLYWORD,
835 blind => CS_STAT_RES_BLIND, 849 blind => CS_STAT_RES_BLIND,
836 ); 850 );
851
852 if ($::CONN && !$STATWIDS->{_skill_tbl_init}) {
853 my $sktbl = $STATWIDS->{_skill_tbl};
854 $sktbl->clear;
855
856 $sktbl->add (0, 0, new CFClient::UI::Label text => "Exp.", align => 1);
857 $sktbl->add (1, 0, new CFClient::UI::Label text => "Level", align => 1);
858 $sktbl->add (2, 0, new CFClient::UI::Label text => "Skillname");
859
860 my @skills;
861
862 for (my $i = CS_STAT_SKILLINFO; $i < CS_STAT_SKILLINFO+CS_NUM_SKILLS; $i++) {
863 push @skills, [$i, $::CONN->{skill_info}{$i}];
864 }
865
866 my $y = 1;
867 for (sort { $a->[1] cmp $b->[1] } @skills) {
868 my ($idx, $name) = @$_;
869
870 unless (defined $STATWIDS->{"sk_xp_$idx"} || !$::CONN->{skill_info}{$idx}) {
871 $sktbl->add (0, $y, $STATWIDS->{"sk_xp_$idx"} = new CFClient::UI::Label text => "0", align => 1);
872 $sktbl->add (1, $y, $STATWIDS->{"sk_lvl_$idx"} = new CFClient::UI::Label text => "0", align => 1);
873 $sktbl->add (2, $y++, new CFClient::UI::Label text => $name);
874 }
875 }
876
877 $STATWIDS->{_skill_tbl_init} = 1;
878 }
879
880 for (my $i = CS_STAT_SKILLINFO; $i < CS_STAT_SKILLINFO+CS_NUM_SKILLS; $i++) {
881 if (exists $stats->{$i}) {
882 $STATWIDS->{"sk_xp_$i"}->set_text (formsep $stats->{$i}->[1])
883 if $STATWIDS->{"sk_xp_$i"};
884 $STATWIDS->{"sk_lvl_$i"}->set_text (sprintf "%d", $stats->{$i}->[0])
885 if $STATWIDS->{"sk_lvl_$i"};
886 }
887 }
837 888
838 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}}) 889 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}})
839 for keys %tbl; 890 for keys %tbl;
840} 891}
841 892
1090sub message_window { 1141sub message_window {
1091 my $window = new CFClient::UI::FancyFrame 1142 my $window = new CFClient::UI::FancyFrame
1092 name => "message_window", 1143 name => "message_window",
1093 title => "Messages", 1144 title => "Messages",
1094 border_bg => [1, 1, 1, 1], 1145 border_bg => [1, 1, 1, 1],
1095 bg => [0, 0, 0, 0.75],
1096 x => "max", 1146 x => "max",
1097 y => 0, 1147 y => 0,
1098 force_w => $::WIDTH * 0.4, 1148 force_w => $::WIDTH * 0.4,
1099 force_h => $::HEIGHT * 0.5, 1149 force_h => $::HEIGHT * 0.5,
1100 child => (my $vbox = new CFClient::UI::VBox), 1150 child => (my $vbox = new CFClient::UI::VBox),
1186sub autopickup_setup { 1236sub autopickup_setup {
1187 my $table = new CFClient::UI::Table; 1237 my $table = new CFClient::UI::Table;
1188 1238
1189 for ( 1239 for (
1190 ["General", 0, 0, 1240 ["General", 0, 0,
1191 ["Enable autopickup" => PICKUP_NEWMODE], 1241 ["Enable autopickup" => PICKUP_NEWMODE, \$PICKUP_ENABLE],
1192 ["Inhibit autopickup" => PICKUP_INHIBIT], 1242 ["Inhibit autopickup" => PICKUP_INHIBIT],
1193 ["Stop before pickup" => PICKUP_STOP], 1243 ["Stop before pickup" => PICKUP_STOP],
1194 ["Debug autopickup" => PICKUP_DEBUG], 1244 ["Debug autopickup" => PICKUP_DEBUG],
1195 ], 1245 ],
1196 ["Weapons", 0, 6, 1246 ["Weapons", 0, 6,
1233 for (@bits) { 1283 for (@bits) {
1234 ++$y; 1284 ++$y;
1235 1285
1236 my $mask = $_->[1]; 1286 my $mask = $_->[1];
1237 $table->add ($x , $y, new CFClient::UI::Label text => $_->[0], align => 1, expand => 1); 1287 $table->add ($x , $y, new CFClient::UI::Label text => $_->[0], align => 1, expand => 1);
1238 $table->add ($x+1, $y, new CFClient::UI::CheckBox 1288 $table->add ($x+1, $y, my $checkbox = new CFClient::UI::CheckBox
1239 state => $::CFG->{pickup} & $mask, 1289 state => $::CFG->{pickup} & $mask,
1240 on_changed => sub { 1290 on_changed => sub {
1241 my ($box, $value) = @_; 1291 my ($box, $value) = @_;
1242 1292
1243 if ($value) { 1293 if ($value) {
1249 $::CONN->send_command ("pickup $::CFG->{pickup}") 1299 $::CONN->send_command ("pickup $::CFG->{pickup}")
1250 if defined $::CONN; 1300 if defined $::CONN;
1251 1301
1252 0 1302 0
1253 }); 1303 });
1304
1305 ${$_->[2]} = $checkbox if $_->[2];
1254 } 1306 }
1255 } 1307 }
1256 1308
1257 $table->add (2, 18, new CFClient::UI::ValSlider 1309 $table->add (2, 18, new CFClient::UI::ValSlider
1258 range => [$::CFG->{pickup} & 0xF, 0, 16, 1, 1], 1310 range => [$::CFG->{pickup} & 0xF, 0, 16, 1, 1],
1295 CFClient::Protocol::set_opencont ($::CONN, 0, "Floor"); 1347 CFClient::Protocol::set_opencont ($::CONN, 0, "Floor");
1296 1348
1297 $hb 1349 $hb
1298} 1350}
1299 1351
1352sub toggle_player_page {
1353 my ($widget) = @_;
1354
1355 if ($PL_WINDOW->{visible} && $PL_NOTEBOOK->get_current_page == $widget) {
1356 $PL_WINDOW->hide;
1357 } else {
1358 $PL_NOTEBOOK->set_current_page ($widget);
1359 $PL_WINDOW->show;
1360 }
1361}
1362
1300sub player_window { 1363sub player_window {
1301 my $plwin = $PL_WINDOW = new CFClient::UI::FancyFrame 1364 my $plwin = $PL_WINDOW = new CFClient::UI::FancyFrame
1302 x => "center", 1365 x => "center",
1303 y => "center", 1366 y => "center",
1304 force_w => $WIDTH * 9/10, 1367 force_w => $WIDTH * 9/10,
1305 force_h => $HEIGHT * 9/10, 1368 force_h => $HEIGHT * 9/10,
1306 title => "Player", 1369 title => "Player",
1370 name => "playerbook",
1307 has_close_button => 1 1371 has_close_button => 1
1308 ; 1372 ;
1309 1373
1310 my $ntb = 1374 my $ntb =
1311 $PL_NOTEBOOK = 1375 $PL_NOTEBOOK =
1312 new CFClient::UI::Notebook 1376 new CFClient::UI::Notebook
1313 expand => 1, 1377 expand => 1,
1314 debug => 1, 1378 debug => 1,
1315 filter => (new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1), 1379 filter => (new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1),
1316 ; 1380 ;
1381
1317 $ntb->add ( 1382 $ntb->add (
1383 "Stats" => $STATS_PAGE = stats_window,
1384 "Shows statistics, where all your Stats and Resistances are shown."
1385 );
1386 $ntb->add (
1387 "Skills" => $STATS_PAGE = skill_window,
1388 "Shows all your Skills."
1389 );
1390 $ntb->add (
1391 Spellbook => $SPELL_PAGE = new CFClient::UI::SpellList,
1392 "Displays all spells you have and lets you edit keyboard shortcuts for them."
1393 );
1394 $ntb->add (
1318 Inventory => inventory_widget, 1395 Inventory => $INVENTORY_PAGE = inventory_widget,
1319 "Toggles the inventory window, where you can manage your loot (or treasures :). " 1396 "Toggles the inventory window, where you can manage your loot (or treasures :). "
1320 . "You can also hit the <b>Tab</b>-key to show/hide the Inventory." 1397 . "You can also hit the <b>Tab</b>-key to show/hide the Inventory."
1321 ); 1398 );
1322 1399
1323 $ntb->add ( 1400 $ntb->set_current_page ($INVENTORY_PAGE);
1324 Stats => $STATS_WINDOW = stats_window,
1325 "Toggles the statistics window, where all your Stats and Resistances are being displayed at all times."
1326 );
1327 $ntb->add (
1328 Spells => $SETUP_SPELLS = new CFClient::UI::SpellList,
1329 "Displays all spells you have and lets you edit keyboard shortcuts for them."
1330 );
1331 1401
1332 $plwin->add ($ntb); 1402 $plwin->add ($ntb);
1333 $plwin 1403 $plwin
1334} 1404}
1335 1405
1451 y => 'center', 1521 y => 'center',
1452 z => 2, 1522 z => 2,
1453 name => 'doc_browser', 1523 name => 'doc_browser',
1454 force_w => int $WIDTH * 7/8, 1524 force_w => int $WIDTH * 7/8,
1455 force_h => int $HEIGHT * 7/8, 1525 force_h => int $HEIGHT * 7/8,
1456 title => "Documentation"; 1526 title => "Help Browser",
1527 has_close_button => 1;
1457 1528
1458 $win->add (my $vbox = new CFClient::UI::VBox); 1529 $win->add (my $vbox = new CFClient::UI::VBox);
1459 1530
1460 $vbox->add (my $buttons = new CFClient::UI::HBox); 1531 $vbox->add (my $buttons = new CFClient::UI::HBox);
1461 $vbox->add (my $viewer = new CFClient::UI::TextScroller 1532 $vbox->add (my $viewer = new CFClient::UI::TextScroller
1638 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Message Window", other => $MESSAGE_WINDOW = message_window, 1709 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Message Window", other => $MESSAGE_WINDOW = message_window,
1639 tooltip => "Toggles the server message log, where the client collects <i>all</i> messages from the server."); 1710 tooltip => "Toggles the server message log, where the client collects <i>all</i> messages from the server.");
1640 1711
1641 make_gauge_window->show; # XXX: this has to be set before make_stats_window as make_stats_window calls update_stats_window which updated the gauges also X-D 1712 make_gauge_window->show; # XXX: this has to be set before make_stats_window as make_stats_window calls update_stats_window which updated the gauges also X-D
1642 1713
1643 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Player", other => player_window, 1714 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Playerbook", other => player_window,
1644 tooltip => "Toggles the player view, where you can manage Inventory, Spells, Skills and see your Stats."); 1715 tooltip => "Toggles the player view, where you can manage Inventory, Spells, Skills and see your Stats.");
1645 1716
1646 $BUTTONBAR->add (new CFClient::UI::Button 1717 $BUTTONBAR->add (new CFClient::UI::Button
1647 text => "Save Config", 1718 text => "Save Config",
1648 tooltip => "Saves the options chosen in the client setting, server settings and the window layout to be restored on later runs.", 1719 tooltip => "Saves the options chosen in the client setting, server settings and the window layout to be restored on later runs.",
1652 status "Configuration Saved"; 1723 status "Configuration Saved";
1653 0 1724 0
1654 }, 1725 },
1655 ); 1726 );
1656 1727
1657 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => help_window, 1728 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => $HELP_WINDOW = help_window,
1658 tooltip => "View Documentation"); 1729 tooltip => "View Documentation");
1659 1730
1660 $BUTTONBAR->add (new CFClient::UI::Button 1731 $BUTTONBAR->add (new CFClient::UI::Button
1661 text => "Quit", 1732 text => "Quit",
1662 tooltip => "Terminates the program", 1733 tooltip => "Terminates the program",

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines