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.94 by root, Sun Jul 16 20:04:08 2006 UTC vs.
Revision 1.95 by root, Sun Jul 16 23:30:08 2006 UTC

100our $PL_NOTEBOOK; 100our $PL_NOTEBOOK;
101our $PL_WINDOW; 101our $PL_WINDOW;
102 102
103our $INVENTORY_PAGE; 103our $INVENTORY_PAGE;
104our $STATS_PAGE; 104our $STATS_PAGE;
105our $SKILL_PAGE;
105our $SPELL_PAGE; 106our $SPELL_PAGE;
106 107
107our $HELP_WINDOW; 108our $HELP_WINDOW;
108our $MESSAGE_WINDOW; 109our $MESSAGE_WINDOW;
109our $FLOORBOX; 110our $FLOORBOX;
770 $col += 3; 771 $col += 3;
771 $row = 0; 772 $row = 0;
772 } 773 }
773 } 774 }
774 775
775 update_stats_window ({}); 776 #update_stats_window ({});
776 777
777 $vb 778 $vb
778} 779}
779 780
780sub skill_window { 781sub skill_window {
781 my ($self) = @_;
782 $STATWIDS->{"_skill_tbl"} = new CFClient::UI::Table expand => 1; 782 $STATWIDS->{skill_tbl} = new CFClient::UI::Table expand => 1, col_expand => [0, 0, 1, 0, 0, 1]
783} 783}
784 784
785sub formsep($) { 785sub formsep($) {
786 scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1 786 scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1
787}
788
789sub update_stats_window {
790 my ($stats) = @_;
791
792 # I love text protocols...
793
794 my $hp = $stats->{+CS_STAT_HP} * 1;
795 my $hp_m = $stats->{+CS_STAT_MAXHP} * 1;
796 my $sp = $stats->{+CS_STAT_SP} * 1;
797 my $sp_m = $stats->{+CS_STAT_MAXSP} * 1;
798 my $fo = $stats->{+CS_STAT_FOOD} * 1;
799 my $fo_m = 999;
800 my $gr = $stats->{+CS_STAT_GRACE} * 1;
801 my $gr_m = $stats->{+CS_STAT_MAXGRACE} * 1;
802
803 $GAUGES->{hp} ->set_value ($hp, $hp_m);
804 $GAUGES->{mana} ->set_value ($sp, $sp_m);
805 $GAUGES->{food} ->set_value ($fo, $fo_m);
806 $GAUGES->{grace} ->set_value ($gr, $gr_m);
807 $GAUGES->{exp} ->set_text ("Exp: " . (formsep $stats->{+CS_STAT_EXP64})
808 . " (lvl " . ($stats->{+CS_STAT_LEVEL} * 1) . ")");
809 my $rng = $stats->{+CS_STAT_RANGE};
810 $rng =~ s/^Range: //; # thank you so much dear server
811 $GAUGES->{range} ->set_text ("Rng: " . $rng);
812 my $title = $stats->{+CS_STAT_TITLE};
813 $title =~ s/^Player: //;
814 $STATWIDS->{title} ->set_text ("Title: " . $title);
815
816 $STATWIDS->{st_str} ->set_text (sprintf "%d" , $stats->{+CS_STAT_STR});
817 $STATWIDS->{st_dex} ->set_text (sprintf "%d" , $stats->{+CS_STAT_DEX});
818 $STATWIDS->{st_con} ->set_text (sprintf "%d" , $stats->{+CS_STAT_CON});
819 $STATWIDS->{st_int} ->set_text (sprintf "%d" , $stats->{+CS_STAT_INT});
820 $STATWIDS->{st_wis} ->set_text (sprintf "%d" , $stats->{+CS_STAT_WIS});
821 $STATWIDS->{st_pow} ->set_text (sprintf "%d" , $stats->{+CS_STAT_POW});
822 $STATWIDS->{st_cha} ->set_text (sprintf "%d" , $stats->{+CS_STAT_CHA});
823 $STATWIDS->{st_wc} ->set_text (sprintf "%d" , $stats->{+CS_STAT_WC});
824 $STATWIDS->{st_ac} ->set_text (sprintf "%d" , $stats->{+CS_STAT_AC});
825 $STATWIDS->{st_dam} ->set_text (sprintf "%d" , $stats->{+CS_STAT_DAM});
826 $STATWIDS->{st_arm} ->set_text (sprintf "%d" , $stats->{+CS_STAT_RES_PHYS});
827 $STATWIDS->{st_spd} ->set_text (sprintf "%.1f", $stats->{+CS_STAT_SPEED});
828 $STATWIDS->{st_wspd}->set_text (sprintf "%.1f", $stats->{+CS_STAT_WEAP_SP});
829
830 $STATWIDS->{m_weight}->set_text (sprintf "Max weight: %.1fkg", $stats->{+CS_STAT_WEIGHT_LIM} / 1000);
831
832 my %tbl = (
833 phys => CS_STAT_RES_PHYS,
834 magic => CS_STAT_RES_MAG,
835 fire => CS_STAT_RES_FIRE,
836 elec => CS_STAT_RES_ELEC,
837 cold => CS_STAT_RES_COLD,
838 conf => CS_STAT_RES_CONF,
839 acid => CS_STAT_RES_ACID,
840 drain => CS_STAT_RES_DRAIN,
841 ghit => CS_STAT_RES_GHOSTHIT,
842 pois => CS_STAT_RES_POISON,
843 slow => CS_STAT_RES_SLOW,
844 para => CS_STAT_RES_PARA,
845 tund => CS_STAT_TURN_UNDEAD,
846 fear => CS_STAT_RES_FEAR,
847 depl => CS_STAT_RES_DEPLETE,
848 deat => CS_STAT_RES_DEATH,
849 holyw => CS_STAT_RES_HOLYWORD,
850 blind => CS_STAT_RES_BLIND,
851 );
852
853 if ($::CONN && !$STATWIDS->{_skill_tbl_init}) {
854 my $sktbl = $STATWIDS->{_skill_tbl};
855 $sktbl->clear;
856
857 $sktbl->add (0, 0, new CFClient::UI::Label text => "Exp.", align => 1);
858 $sktbl->add (1, 0, new CFClient::UI::Label text => "Level", align => 1);
859 $sktbl->add (2, 0, new CFClient::UI::Label text => "Skillname");
860
861 my @skills;
862
863 for (my $i = CS_STAT_SKILLINFO; $i < CS_STAT_SKILLINFO+CS_NUM_SKILLS; $i++) {
864 push @skills, [$i, $::CONN->{skill_info}{$i}];
865 }
866
867 my $y = 1;
868 for (sort { $a->[1] cmp $b->[1] } @skills) {
869 my ($idx, $name) = @$_;
870
871 unless (defined $STATWIDS->{"sk_xp_$idx"} || !$::CONN->{skill_info}{$idx}) {
872 $sktbl->add (0, $y, $STATWIDS->{"sk_xp_$idx"} = new CFClient::UI::Label text => "0", align => 1);
873 $sktbl->add (1, $y, $STATWIDS->{"sk_lvl_$idx"} = new CFClient::UI::Label text => "0", align => 1);
874 $sktbl->add (2, $y++, new CFClient::UI::Label text => $name);
875 }
876 }
877
878 $STATWIDS->{_skill_tbl_init} = 1;
879 }
880
881 for (my $i = CS_STAT_SKILLINFO; $i < CS_STAT_SKILLINFO+CS_NUM_SKILLS; $i++) {
882 if (exists $stats->{$i}) {
883 $STATWIDS->{"sk_xp_$i"}->set_text (formsep $stats->{$i}->[1])
884 if $STATWIDS->{"sk_xp_$i"};
885 $STATWIDS->{"sk_lvl_$i"}->set_text (sprintf "%d", $stats->{$i}->[0])
886 if $STATWIDS->{"sk_lvl_$i"};
887 }
888 }
889
890 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}})
891 for keys %tbl;
892} 787}
893 788
894my $METASERVER_ATIME; 789my $METASERVER_ATIME;
895 790
896sub update_metaserver { 791sub update_metaserver {
1379 debug => 1, 1274 debug => 1,
1380 filter => (new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1), 1275 filter => (new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1),
1381 ; 1276 ;
1382 1277
1383 $ntb->add ( 1278 $ntb->add (
1384 "Stats" => $STATS_PAGE = stats_window, 1279 "Statistics (F2)" => $STATS_PAGE = stats_window,
1385 "Shows statistics, where all your Stats and Resistances are shown." 1280 "Shows statistics, where all your Stats and Resistances are shown."
1386 ); 1281 );
1387 $ntb->add ( 1282 $ntb->add (
1388 "Skills" => $STATS_PAGE = skill_window, 1283 "Skills (F3)" => $SKILL_PAGE = skill_window,
1389 "Shows all your Skills." 1284 "Shows all your Skills."
1390 ); 1285 );
1391 $ntb->add ( 1286 $ntb->add (
1392 Spellbook => $SPELL_PAGE = new CFClient::UI::SpellList, 1287 "Spellbook (F4)" => $SPELL_PAGE = new CFClient::UI::SpellList,
1393 "Displays all spells you have and lets you edit keyboard shortcuts for them." 1288 "Displays all spells you have and lets you edit keyboard shortcuts for them."
1394 ); 1289 );
1395 $ntb->add ( 1290 $ntb->add (
1396 Inventory => $INVENTORY_PAGE = inventory_widget, 1291 "Inventory (F5)" => $INVENTORY_PAGE = inventory_widget,
1397 "Toggles the inventory window, where you can manage your loot (or treasures :). " 1292 "Toggles the inventory window, where you can manage your loot (or treasures :). "
1398 . "You can also hit the <b>Tab</b>-key to show/hide the Inventory." 1293 . "You can also hit the <b>Tab</b>-key to show/hide the Inventory."
1399 ); 1294 );
1400 1295
1401 $ntb->set_current_page ($INVENTORY_PAGE); 1296 $ntb->set_current_page ($INVENTORY_PAGE);
1967$SIG{INT} = $SIG{TERM} = sub { exit }; 1862$SIG{INT} = $SIG{TERM} = sub { exit };
1968 1863
1969{ 1864{
1970 local $SIG{__DIE__} = sub { 1865 local $SIG{__DIE__} = sub {
1971 return unless defined $^S && !$^S; 1866 return unless defined $^S && !$^S;
1972 Carp::confess $_[1];#d#TODO: remove when stable 1867 Carp::confess $_[0];#d#TODO: remove when stable
1973 CFClient::fatal $_[0]; 1868 CFClient::fatal $_[0];
1974 }; 1869 };
1975 1870
1976 CFClient::read_cfg "$Crossfire::VARDIR/cfplusrc"; 1871 CFClient::read_cfg "$Crossfire::VARDIR/cfplusrc";
1977 CFClient::UI::set_layout ($::CFG->{layout}); 1872 CFClient::UI::set_layout ($::CFG->{layout});

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines