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.92 by elmex, Fri Jul 14 17:35:35 2006 UTC vs.
Revision 1.95 by root, Sun Jul 16 23:30:08 2006 UTC

86our $CONSOLE; 86our $CONSOLE;
87our $METASERVER; 87our $METASERVER;
88our $LOGIN_BUTTON; 88our $LOGIN_BUTTON;
89our $QUIT_DIALOG; 89our $QUIT_DIALOG;
90our $HOST_ENTRY; 90our $HOST_ENTRY;
91our $FULLSCREEN_ENABLE;
91our $PICKUP_ENABLE; 92our $PICKUP_ENABLE;
92our $SERVER_INFO; 93our $SERVER_INFO;
93 94
94our $SETUP_DIALOG; 95our $SETUP_DIALOG;
95our $SETUP_NOTEBOOK; 96our $SETUP_NOTEBOOK;
99our $PL_NOTEBOOK; 100our $PL_NOTEBOOK;
100our $PL_WINDOW; 101our $PL_WINDOW;
101 102
102our $INVENTORY_PAGE; 103our $INVENTORY_PAGE;
103our $STATS_PAGE; 104our $STATS_PAGE;
105our $SKILL_PAGE;
104our $SPELL_PAGE; 106our $SPELL_PAGE;
105 107
106our $HELP_WINDOW; 108our $HELP_WINDOW;
107our $MESSAGE_WINDOW; 109our $MESSAGE_WINDOW;
108our $FLOORBOX; 110our $FLOORBOX;
416 $mode_slider->emit (changed => $mode_slider->{range}[0]); 418 $mode_slider->emit (changed => $mode_slider->{range}[0]);
417 419
418 my $row = 1; 420 my $row = 1;
419 421
420 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fullscreen"); 422 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fullscreen");
421 $table->add (1, $row++, new CFClient::UI::CheckBox 423 $table->add (1, $row++, $FULLSCREEN_ENABLE = new CFClient::UI::CheckBox
422 state => $CFG->{fullscreen}, 424 state => $CFG->{fullscreen},
423 tooltip => "Bring the client into fullscreen mode.", 425 tooltip => "Bring the client into fullscreen mode.",
424 on_changed => sub { my ($self, $value) = @_; $CFG->{fullscreen} = $value; 0 } 426 on_changed => sub { my ($self, $value) = @_; $CFG->{fullscreen} = $value; 0 }
425 ); 427 );
426 428
769 $col += 3; 771 $col += 3;
770 $row = 0; 772 $row = 0;
771 } 773 }
772 } 774 }
773 775
774 update_stats_window ({}); 776 #update_stats_window ({});
775 777
776 $vb 778 $vb
777} 779}
778 780
779sub skill_window { 781sub skill_window {
780 my ($self) = @_;
781 $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]
782} 783}
783 784
784sub formsep($) { 785sub formsep($) {
785 scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1 786 scalar reverse join ",", unpack "(A3)*", reverse $_[0] * 1
786}
787
788sub update_stats_window {
789 my ($stats) = @_;
790
791 # I love text protocols...
792
793 my $hp = $stats->{+CS_STAT_HP} * 1;
794 my $hp_m = $stats->{+CS_STAT_MAXHP} * 1;
795 my $sp = $stats->{+CS_STAT_SP} * 1;
796 my $sp_m = $stats->{+CS_STAT_MAXSP} * 1;
797 my $fo = $stats->{+CS_STAT_FOOD} * 1;
798 my $fo_m = 999;
799 my $gr = $stats->{+CS_STAT_GRACE} * 1;
800 my $gr_m = $stats->{+CS_STAT_MAXGRACE} * 1;
801
802 $GAUGES->{hp} ->set_value ($hp, $hp_m);
803 $GAUGES->{mana} ->set_value ($sp, $sp_m);
804 $GAUGES->{food} ->set_value ($fo, $fo_m);
805 $GAUGES->{grace} ->set_value ($gr, $gr_m);
806 $GAUGES->{exp} ->set_text ("Exp: " . (formsep $stats->{+CS_STAT_EXP64})
807 . " (lvl " . ($stats->{+CS_STAT_LEVEL} * 1) . ")");
808 my $rng = $stats->{+CS_STAT_RANGE};
809 $rng =~ s/^Range: //; # thank you so much dear server
810 $GAUGES->{range} ->set_text ("Rng: " . $rng);
811 my $title = $stats->{+CS_STAT_TITLE};
812 $title =~ s/^Player: //;
813 $STATWIDS->{title} ->set_text ("Title: " . $title);
814
815 $STATWIDS->{st_str} ->set_text (sprintf "%d" , $stats->{+CS_STAT_STR});
816 $STATWIDS->{st_dex} ->set_text (sprintf "%d" , $stats->{+CS_STAT_DEX});
817 $STATWIDS->{st_con} ->set_text (sprintf "%d" , $stats->{+CS_STAT_CON});
818 $STATWIDS->{st_int} ->set_text (sprintf "%d" , $stats->{+CS_STAT_INT});
819 $STATWIDS->{st_wis} ->set_text (sprintf "%d" , $stats->{+CS_STAT_WIS});
820 $STATWIDS->{st_pow} ->set_text (sprintf "%d" , $stats->{+CS_STAT_POW});
821 $STATWIDS->{st_cha} ->set_text (sprintf "%d" , $stats->{+CS_STAT_CHA});
822 $STATWIDS->{st_wc} ->set_text (sprintf "%d" , $stats->{+CS_STAT_WC});
823 $STATWIDS->{st_ac} ->set_text (sprintf "%d" , $stats->{+CS_STAT_AC});
824 $STATWIDS->{st_dam} ->set_text (sprintf "%d" , $stats->{+CS_STAT_DAM});
825 $STATWIDS->{st_arm} ->set_text (sprintf "%d" , $stats->{+CS_STAT_RES_PHYS});
826 $STATWIDS->{st_spd} ->set_text (sprintf "%.1f", $stats->{+CS_STAT_SPEED});
827 $STATWIDS->{st_wspd}->set_text (sprintf "%.1f", $stats->{+CS_STAT_WEAP_SP});
828
829 $STATWIDS->{m_weight}->set_text (sprintf "Max weight: %.1fkg", $stats->{+CS_STAT_WEIGHT_LIM} / 1000);
830
831 my %tbl = (
832 phys => CS_STAT_RES_PHYS,
833 magic => CS_STAT_RES_MAG,
834 fire => CS_STAT_RES_FIRE,
835 elec => CS_STAT_RES_ELEC,
836 cold => CS_STAT_RES_COLD,
837 conf => CS_STAT_RES_CONF,
838 acid => CS_STAT_RES_ACID,
839 drain => CS_STAT_RES_DRAIN,
840 ghit => CS_STAT_RES_GHOSTHIT,
841 pois => CS_STAT_RES_POISON,
842 slow => CS_STAT_RES_SLOW,
843 para => CS_STAT_RES_PARA,
844 tund => CS_STAT_TURN_UNDEAD,
845 fear => CS_STAT_RES_FEAR,
846 depl => CS_STAT_RES_DEPLETE,
847 deat => CS_STAT_RES_DEATH,
848 holyw => CS_STAT_RES_HOLYWORD,
849 blind => CS_STAT_RES_BLIND,
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 }
888
889 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}})
890 for keys %tbl;
891} 787}
892 788
893my $METASERVER_ATIME; 789my $METASERVER_ATIME;
894 790
895sub update_metaserver { 791sub update_metaserver {
1141sub message_window { 1037sub message_window {
1142 my $window = new CFClient::UI::FancyFrame 1038 my $window = new CFClient::UI::FancyFrame
1143 name => "message_window", 1039 name => "message_window",
1144 title => "Messages", 1040 title => "Messages",
1145 border_bg => [1, 1, 1, 1], 1041 border_bg => [1, 1, 1, 1],
1146 bg => [0, 0, 0, 0.75],
1147 x => "max", 1042 x => "max",
1148 y => 0, 1043 y => 0,
1149 force_w => $::WIDTH * 0.4, 1044 force_w => $::WIDTH * 0.4,
1150 force_h => $::HEIGHT * 0.5, 1045 force_h => $::HEIGHT * 0.5,
1151 child => (my $vbox = new CFClient::UI::VBox), 1046 child => (my $vbox = new CFClient::UI::VBox),
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);
1940# printf "active %x %x\n", $SDL_EV->active_gain, $SDL_EV->active_state;#d# 1835# printf "active %x %x\n", $SDL_EV->active_gain, $SDL_EV->active_state;#d#
1941 }, 1836 },
1942 CFClient::SDL_KEYDOWN => sub { 1837 CFClient::SDL_KEYDOWN => sub {
1943 if ($_[0]{mod} & CFClient::KMOD_ALT && $_[0]{sym} == 13) { 1838 if ($_[0]{mod} & CFClient::KMOD_ALT && $_[0]{sym} == 13) {
1944 # alt-enter 1839 # alt-enter
1840 $FULLSCREEN_ENABLE->toggle;
1945 video_shutdown; 1841 video_shutdown;
1946 $CFG->{fullscreen} = !$CFG->{fullscreen};
1947 video_init; 1842 video_init;
1948 } else { 1843 } else {
1949 CFClient::UI::feed_sdl_key_down_event ($_[0]); 1844 CFClient::UI::feed_sdl_key_down_event ($_[0]);
1950 } 1845 }
1951 }, 1846 },
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