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.84 by root, Sun Jul 2 18:52:05 2006 UTC vs.
Revision 1.88 by root, Mon Jul 3 22:04:25 2006 UTC

85our $CONSOLE; 85our $CONSOLE;
86our $METASERVER; 86our $METASERVER;
87our $LOGIN_BUTTON; 87our $LOGIN_BUTTON;
88our $QUIT_DIALOG; 88our $QUIT_DIALOG;
89our $HOST_ENTRY; 89our $HOST_ENTRY;
90our $PICKUP_ENABLE;
90our $SERVER_INFO; 91our $SERVER_INFO;
91 92
92our $SETUP_DIALOG; 93our $SETUP_DIALOG;
93our $SETUP_NOTEBOOK; 94our $SETUP_NOTEBOOK;
94our $SETUP_SERVER; 95our $SETUP_SERVER;
95our $SETUP_KEYBOARD; 96our $SETUP_KEYBOARD;
96our $SETUP_SPELLS;
97 97
98our $PL_NOTEBOOK;
98our $STATS_WINDOW; 99our $PL_WINDOW;
100
101our $INVENTORY_PAGE;
102our $STATS_PAGE;
103our $SPELL_PAGE;
104
105our $HELP_WINDOW;
99our $MESSAGE_WINDOW; 106our $MESSAGE_WINDOW;
100our $FLOORBOX; 107our $FLOORBOX;
101our $GAUGES; 108our $GAUGES;
102our $STATWIDS; 109our $STATWIDS;
103 110
110 117
111our $ALT_ENTER_MESSAGE; 118our $ALT_ENTER_MESSAGE;
112our $STATUSBOX; 119our $STATUSBOX;
113our $DEBUG_STATUS; 120our $DEBUG_STATUS;
114 121
115our $INV_WINDOW;
116our $INV; 122our $INV;
117our $INVR; 123our $INVR;
118our $INV_RIGHT_HB; 124our $INV_RIGHT_HB;
119 125
120our $BIND_EDITOR; 126our $BIND_EDITOR;
221 $conn->send ("reply $stat"); 227 $conn->send ("reply $stat");
222 destroy_query_dialog $conn; 228 destroy_query_dialog $conn;
223 return; 229 return;
224 } 230 }
225 231
226 $STATS_WINDOW->show; 232 $STATS_PAGE->show;
227 $MESSAGE_WINDOW->hide; 233 $MESSAGE_WINDOW->hide;
228 234
229 unshift @dialog, new CFClient::UI::Label 235 unshift @dialog, new CFClient::UI::Label
230 max_w => $::WIDTH * 0.4, 236 max_w => $::WIDTH * 0.4,
231 ellipsise => 0, 237 ellipsise => 0,
271 # right: accept 277 # right: accept
272 $table->add (4, 0, new CFClient::UI::Button 278 $table->add (4, 0, new CFClient::UI::Button
273 text => "Accept", 279 text => "Accept",
274 on_activate => sub { 280 on_activate => sub {
275 $conn->send ("reply n"); 281 $conn->send ("reply n");
276 $STATS_WINDOW->hide; 282 $STATS_PAGE->hide;
277 destroy_query_dialog $conn; 283 destroy_query_dialog $conn;
278 0 284 0
279 }, 285 },
280 ); 286 );
281 287
373 379
374sub stop_game { 380sub stop_game {
375 $LOGIN_BUTTON->set_text ("Login"); 381 $LOGIN_BUTTON->set_text ("Login");
376 $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER); 382 $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER);
377 $SETUP_DIALOG->show; 383 $SETUP_DIALOG->show;
378 $INV_WINDOW->hide; 384 $PL_WINDOW->hide;
379 $SETUP_SPELLS->clear_spells; 385 $SPELL_PAGE->clear_spells;
380 386
381 return unless $CONN; 387 return unless $CONN;
382 388
383 status "connection closed"; 389 status "connection closed";
384 390
653 659
654 $table 660 $table
655} 661}
656 662
657sub stats_window { 663sub stats_window {
658 my $tgw = new CFClient::UI::FancyFrame 664 my $tgw =
659 y => $HEIGHT * (2/8), 665 new CFClient::UI::Window
660 x => "max", 666 child => my $vb = new CFClient::UI::VBox;
661 title => "Stats",
662 name => "stats_window",
663 has_close_button => 1;
664 667
665 $tgw->add (new CFClient::UI::Window child => my $vb = new CFClient::UI::VBox);
666 $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1, 668 $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1,
667 can_hover => 1, can_events => 1, 669 can_hover => 1, can_events => 1,
668 tooltip => "Your name and title. You can change your title by using the <b>title</b> command, if supported by the server."); 670 tooltip => "Your name and title. You can change your title by using the <b>title</b> command, if supported by the server.");
669 $vb->add ($STATWIDS->{map} = new CFClient::UI::Label valign => 0, align => -1, text => "Map:", expand => 1, 671 $vb->add ($STATWIDS->{map} = new CFClient::UI::Label valign => 0, align => -1, text => "Map:", expand => 1,
670 can_hover => 1, can_events => 1, 672 can_hover => 1, can_events => 1,
1188sub autopickup_setup { 1190sub autopickup_setup {
1189 my $table = new CFClient::UI::Table; 1191 my $table = new CFClient::UI::Table;
1190 1192
1191 for ( 1193 for (
1192 ["General", 0, 0, 1194 ["General", 0, 0,
1193 ["Enable autopickup" => PICKUP_NEWMODE], 1195 ["Enable autopickup" => PICKUP_NEWMODE, \$PICKUP_ENABLE],
1194 ["Inhibit autopickup" => PICKUP_INHIBIT], 1196 ["Inhibit autopickup" => PICKUP_INHIBIT],
1195 ["Stop before pickup" => PICKUP_STOP], 1197 ["Stop before pickup" => PICKUP_STOP],
1196 ["Debug autopickup" => PICKUP_DEBUG], 1198 ["Debug autopickup" => PICKUP_DEBUG],
1197 ], 1199 ],
1198 ["Weapons", 0, 6, 1200 ["Weapons", 0, 6,
1235 for (@bits) { 1237 for (@bits) {
1236 ++$y; 1238 ++$y;
1237 1239
1238 my $mask = $_->[1]; 1240 my $mask = $_->[1];
1239 $table->add ($x , $y, new CFClient::UI::Label text => $_->[0], align => 1, expand => 1); 1241 $table->add ($x , $y, new CFClient::UI::Label text => $_->[0], align => 1, expand => 1);
1240 $table->add ($x+1, $y, new CFClient::UI::CheckBox 1242 $table->add ($x+1, $y, my $checkbox = new CFClient::UI::CheckBox
1241 state => $::CFG->{pickup} & $mask, 1243 state => $::CFG->{pickup} & $mask,
1242 on_changed => sub { 1244 on_changed => sub {
1243 my ($box, $value) = @_; 1245 my ($box, $value) = @_;
1244 1246
1245 if ($value) { 1247 if ($value) {
1251 $::CONN->send_command ("pickup $::CFG->{pickup}") 1253 $::CONN->send_command ("pickup $::CFG->{pickup}")
1252 if defined $::CONN; 1254 if defined $::CONN;
1253 1255
1254 0 1256 0
1255 }); 1257 });
1258
1259 ${$_->[2]} = $checkbox if $_->[2];
1256 } 1260 }
1257 } 1261 }
1258 1262
1259 $table->add (2, 18, new CFClient::UI::ValSlider 1263 $table->add (2, 18, new CFClient::UI::ValSlider
1260 range => [$::CFG->{pickup} & 0xF, 0, 16, 1, 1], 1264 range => [$::CFG->{pickup} & 0xF, 0, 16, 1, 1],
1278 }); 1282 });
1279 1283
1280 $table 1284 $table
1281} 1285}
1282 1286
1283sub inventory_window { 1287sub inventory_widget {
1288 my $hb = new CFClient::UI::HBox homogeneous => 1;
1289
1290 $hb->add (my $vb1 = new CFClient::UI::VBox);
1291 $vb1->add (new CFClient::UI::Label align => 0, text => "Player");
1292 $vb1->add ($INV = new CFClient::UI::Inventory);
1293
1294 $hb->add (my $vb2 = new CFClient::UI::VBox);
1295
1296 $vb2->add ($INV_RIGHT_HB = new CFClient::UI::HBox);
1297
1298 $vb2->add ($INVR = new CFClient::UI::Inventory);
1299
1300 # XXX: Call after $INVR = ... because set_opencont sets the items
1301 CFClient::Protocol::set_opencont ($::CONN, 0, "Floor");
1302
1303 $hb
1304}
1305
1306sub toggle_player_page {
1307 my ($widget) = @_;
1308
1309 if ($PL_WINDOW->{visible} && $PL_NOTEBOOK->get_current_page == $widget) {
1310 $PL_WINDOW->hide;
1311 } else {
1312 $PL_NOTEBOOK->set_current_page ($widget);
1313 $PL_WINDOW->show;
1314 }
1315}
1316
1317sub player_window {
1284 my $invwin = $INV_WINDOW = new CFClient::UI::FancyFrame 1318 my $plwin = $PL_WINDOW = new CFClient::UI::FancyFrame
1285 x => "center", 1319 x => "center",
1286 y => "center", 1320 y => "center",
1287 force_w => $WIDTH * 9/10, 1321 force_w => $WIDTH * 9/10,
1288 force_h => $HEIGHT * 9/10, 1322 force_h => $HEIGHT * 9/10,
1289 title => "Inventory", 1323 title => "Player",
1290 name => "inventory_window",
1291 has_close_button => 1, 1324 has_close_button => 1
1292 ; 1325 ;
1293 1326
1294 $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1); 1327 my $ntb =
1328 $PL_NOTEBOOK =
1329 new CFClient::UI::Notebook
1330 expand => 1,
1331 debug => 1,
1332 filter => (new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1),
1333 ;
1295 1334
1296 $hb->add (my $vb1 = new CFClient::UI::VBox); 1335 $ntb->add (
1297 $vb1->add (new CFClient::UI::Label align => 0, text => "Player"); 1336 "Stats &amp; Skills" => $STATS_PAGE = stats_window,
1298 $vb1->add ($INV = new CFClient::UI::Inventory expand => 1); 1337 "Shows statistics and skill window, where all your Stats, Resistances and Skills are shown."
1338 );
1339 $ntb->add (
1340 Spellbook => $SPELL_PAGE = new CFClient::UI::SpellList,
1341 "Displays all spells you have and lets you edit keyboard shortcuts for them."
1342 );
1343 $ntb->add (
1344 Inventory => $INVENTORY_PAGE = inventory_widget,
1345 "Toggles the inventory window, where you can manage your loot (or treasures :). "
1346 . "You can also hit the <b>Tab</b>-key to show/hide the Inventory."
1347 );
1299 1348
1300 $hb->add (my $vb2 = new CFClient::UI::VBox); 1349 $ntb->set_current_page ($INVENTORY_PAGE);
1301 1350
1302 $vb2->add ($INV_RIGHT_HB = new CFClient::UI::HBox); 1351 $plwin->add ($ntb);
1303 1352 $plwin
1304 $vb2->add ($INVR = new CFClient::UI::Inventory expand => 1);
1305
1306 # XXX: Call after $INVR = ... because set_opencont sets the items
1307 CFClient::Protocol::set_opencont ($::CONN, 0, "Floor");
1308
1309 $invwin
1310}
1311
1312sub spell_setup {
1313 new CFClient::UI::SpellList
1314} 1353}
1315 1354
1316sub update_bindings { 1355sub update_bindings {
1317 $BIND_UPD_CB->() if $BIND_UPD_CB; 1356 $BIND_UPD_CB->() if $BIND_UPD_CB;
1318} 1357}
1431 y => 'center', 1470 y => 'center',
1432 z => 2, 1471 z => 2,
1433 name => 'doc_browser', 1472 name => 'doc_browser',
1434 force_w => int $WIDTH * 7/8, 1473 force_w => int $WIDTH * 7/8,
1435 force_h => int $HEIGHT * 7/8, 1474 force_h => int $HEIGHT * 7/8,
1436 title => "Documentation"; 1475 title => "Help Browser",
1476 has_close_button => 1;
1437 1477
1438 $win->add (my $vbox = new CFClient::UI::VBox); 1478 $win->add (my $vbox = new CFClient::UI::VBox);
1439 1479
1440 $vbox->add (my $buttons = new CFClient::UI::HBox); 1480 $vbox->add (my $buttons = new CFClient::UI::HBox);
1441 $vbox->add (my $viewer = new CFClient::UI::TextScroller 1481 $vbox->add (my $viewer = new CFClient::UI::TextScroller
1605 . "There is a shortcut for making bindings: <b>Control-Insert</b> opens the binding editor " 1645 . "There is a shortcut for making bindings: <b>Control-Insert</b> opens the binding editor "
1606 . "with nothing set and the recording started. After doing the actions you " 1646 . "with nothing set and the recording started. After doing the actions you "
1607 . "want to record press <b>Insert</b> and you will be asked to press a key-combo. " 1647 . "want to record press <b>Insert</b> and you will be asked to press a key-combo. "
1608 . "After pressing the combo the binding will be saved automatically and the " 1648 . "After pressing the combo the binding will be saved automatically and the "
1609 . "binding editor closes"); 1649 . "binding editor closes");
1610 $SETUP_NOTEBOOK->add (Spells => $SETUP_SPELLS = spell_setup,
1611 "Displays all spells you have and lets you edit keyboard shortcuts for them.");
1612 $SETUP_NOTEBOOK->add (Debug => debug_setup, 1650 $SETUP_NOTEBOOK->add (Debug => debug_setup,
1613 "Some debuggin' options. Do not ask."); 1651 "Some debuggin' options. Do not ask.");
1614 1652
1615 $BUTTONBAR = new CFClient::UI::Buttonbar x => 0, y => 0, z => 200; # put on top 1653 $BUTTONBAR = new CFClient::UI::Buttonbar x => 0, y => 0, z => 200; # put on top
1616 1654
1620 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Message Window", other => $MESSAGE_WINDOW = message_window, 1658 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Message Window", other => $MESSAGE_WINDOW = message_window,
1621 tooltip => "Toggles the server message log, where the client collects <i>all</i> messages from the server."); 1659 tooltip => "Toggles the server message log, where the client collects <i>all</i> messages from the server.");
1622 1660
1623 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 1661 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
1624 1662
1625 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Stats Window", other => $STATS_WINDOW = stats_window,
1626 tooltip => "Toggles the statistics window, where all your Stats and Resistances are being displayed at all times.");
1627 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Inventory", other => inventory_window, 1663 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Playerbook", other => player_window,
1628 tooltip => "Toggles the inventory window, where you can manage your loot (or treasures :). " 1664 tooltip => "Toggles the player view, where you can manage Inventory, Spells, Skills and see your Stats.");
1629 . "You can also hit the <b>Tab</b>-key to show/hide the Inventory.");
1630 1665
1631 $BUTTONBAR->add (new CFClient::UI::Button 1666 $BUTTONBAR->add (new CFClient::UI::Button
1632 text => "Save Config", 1667 text => "Save Config",
1633 tooltip => "Saves the options chosen in the client setting, server settings and the window layout to be restored on later runs.", 1668 tooltip => "Saves the options chosen in the client setting, server settings and the window layout to be restored on later runs.",
1634 on_activate => sub { 1669 on_activate => sub {
1637 status "Configuration Saved"; 1672 status "Configuration Saved";
1638 0 1673 0
1639 }, 1674 },
1640 ); 1675 );
1641 1676
1642 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => help_window, 1677 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => $HELP_WINDOW = help_window,
1643 tooltip => "View Documentation"); 1678 tooltip => "View Documentation");
1644 1679
1645 $BUTTONBAR->add (new CFClient::UI::Button 1680 $BUTTONBAR->add (new CFClient::UI::Button
1646 text => "Quit", 1681 text => "Quit",
1647 tooltip => "Terminates the program", 1682 tooltip => "Terminates the program",

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines