--- deliantra/Deliantra-Client/bin/cfplus 2006/11/18 22:36:00 1.127 +++ deliantra/Deliantra-Client/bin/cfplus 2006/12/03 01:03:49 1.133 @@ -24,6 +24,8 @@ use strict; use utf8; +use Carp 'verbose'; + # do things only needed for single-binary version (par) BEGIN { if (%PAR::LibCache) { @@ -68,10 +70,7 @@ $Event::Eval = 0; $Event::DIED = sub { - # TODO: display dialog box or so - Carp::cluck $_[1];#d#TODO: remove when stable - return;#d# - CFPlus::fatal ($_[1]); + CFPlus::fatal Carp::longmess $_[1] }; my $MAX_FPS = 60; @@ -125,6 +124,7 @@ our $STATS_PAGE; our $SKILL_PAGE; our $SPELL_PAGE; +our $SPELL_LIST; our $HELP_WINDOW; our $MESSAGE_WINDOW; @@ -431,7 +431,7 @@ $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER); $SETUP_DIALOG->show; $PL_WINDOW->hide; - $SPELL_PAGE->clear_spells; + $SPELL_LIST->clear_spells; return unless $CONN; @@ -668,6 +668,7 @@ $table->add (1, 2, new CFPlus::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 4; 0 }); $table->add (0, 3, new CFPlus::UI::Label text => "Suppress Tooltips"); $table->add (1, 3, new CFPlus::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 8; 0 }); + $table->add (0, 4, new CFPlus::UI::Button text => "die on click(tm)", on_activate => sub { die "violator" } ); my @default_smooth = (0.05, 0.13, 0.05, 0.13, 0.30, 0.13, 0.05, 0.13, 0.05); @@ -1191,12 +1192,12 @@ ["Cloaks" => PICKUP_CLOAK], ], - ["Readables", 2, 2, + ["Readables", 2, 0, ["Spellbooks" => PICKUP_SPELLBOOK], ["Skillscrolls" => PICKUP_SKILLSCROLL], ["Normal Books/Scrolls" => PICKUP_READABLES], ], - ["Misc", 2, 7, + ["Misc", 2, 5, ["Food" => PICKUP_FOOD], ["Drinks" => PICKUP_DRINK], ["Valuables (Money, Gems)" => PICKUP_VALUABLES], @@ -1206,6 +1207,7 @@ ["Magic Devices" => PICKUP_MAGIC_DEVICE], ["Ignore cursed" => PICKUP_NOT_CURSED], ["Jewelery" => PICKUP_JEWELS], + ["Flesh" => PICKUP_FLESH], ], ["Weight/Value ratio", 2, 17] ) @@ -1265,11 +1267,17 @@ my %SORT_ORDER = ( type => undef, - mtime => sub { sort { - ($a->{flags} & F_LOCKED) <=> ($b->{flags} & F_LOCKED) - or $b->{mtime} <=> $a->{mtime} - or $a->{type} <=> $b->{type} - } @_ }, + mtime => sub { + my $NOW = time; + sort { + my $atime = $a->{mtime} - $NOW; $atime = $atime < 5 * 60 ? int $atime / 60 : 6; + my $btime = $b->{mtime} - $NOW; $btime = $btime < 5 * 60 ? int $btime / 60 : 6; + + ($a->{flags} & F_LOCKED) <=> ($b->{flags} & F_LOCKED) + or $btime <=> $atime + or $a->{type} <=> $b->{type} + } @_ + }, weight => sub { sort { $a->{weight} * ($a->{nrof} || 1) <=> $b->{weight} * ($b->{nrof} || 1) or $a->{type} <=> $b->{type} @@ -1354,8 +1362,8 @@ "Shows all your Skills." ); - my $spellsw = new CFPlus::UI::ScrolledWindow (expand => 1, scroll_y => 1); - $spellsw->add ($SPELL_PAGE = new CFPlus::UI::SpellList); + my $spellsw = $SPELL_PAGE = new CFPlus::UI::ScrolledWindow (expand => 1, scroll_y => 1); + $spellsw->add ($SPELL_LIST = new CFPlus::UI::SpellList); $ntb->add ( "Spellbook (F4)" => $spellsw, "Displays all spells you have and lets you edit keyboard shortcuts for them." @@ -1916,6 +1924,7 @@ audio_music_finished; + local $_; while (<$fh>) { next if /^\s*#/; next if /^\s*$/;