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.11 by root, Fri May 26 18:56:14 2006 UTC vs.
Revision 1.14 by elmex, Sat May 27 08:45:24 2006 UTC

29use Time::HiRes 'time'; 29use Time::HiRes 'time';
30use Pod::POM; 30use Pod::POM;
31use Event; 31use Event;
32 32
33use Crossfire; 33use Crossfire;
34use Crossfire::Protocol::Base; 34use Crossfire::Protocol::Constants;
35 35
36use Compress::LZF; 36use Compress::LZF;
37 37
38use CFClient; 38use CFClient;
39use CFClient::OpenGL (); 39use CFClient::OpenGL ();
97 97
98our $ALT_ENTER_MESSAGE; 98our $ALT_ENTER_MESSAGE;
99our $STATUSBOX; 99our $STATUSBOX;
100our $DEBUG_STATUS; 100our $DEBUG_STATUS;
101 101
102our $INVWIN;
103our $INV; 102our $INV;
104our $INVR; 103our $INVR;
105our $INVR_LBL; 104our $INVR_LBL;
106 105
107sub status { 106sub status {
548} 547}
549 548
550sub update_stats_window { 549sub update_stats_window {
551 my ($stats) = @_; 550 my ($stats) = @_;
552 551
553 # i love text protocols!!! 552 # I love text protocols...
554 my $hp = $stats->{Crossfire::Protocol::Base::CS_STAT_HP} * 1; 553
554 my $hp = $stats->{+CS_STAT_HP} * 1;
555 my $hp_m = $stats->{Crossfire::Protocol::Base::CS_STAT_MAXHP} * 1; 555 my $hp_m = $stats->{+CS_STAT_MAXHP} * 1;
556 my $sp = $stats->{Crossfire::Protocol::Base::CS_STAT_SP} * 1; 556 my $sp = $stats->{+CS_STAT_SP} * 1;
557 my $sp_m = $stats->{Crossfire::Protocol::Base::CS_STAT_MAXSP} * 1; 557 my $sp_m = $stats->{+CS_STAT_MAXSP} * 1;
558 my $fo = $stats->{Crossfire::Protocol::Base::CS_STAT_FOOD} * 1; 558 my $fo = $stats->{+CS_STAT_FOOD} * 1;
559 my $fo_m = 999; 559 my $fo_m = 999;
560 my $gr = $stats->{Crossfire::Protocol::Base::CS_STAT_GRACE} * 1; 560 my $gr = $stats->{+CS_STAT_GRACE} * 1;
561 my $gr_m = $stats->{Crossfire::Protocol::Base::CS_STAT_MAXGRACE} * 1; 561 my $gr_m = $stats->{+CS_STAT_MAXGRACE} * 1;
562 562
563 $GAUGES->{hp} ->set_value ($hp, $hp_m); 563 $GAUGES->{hp} ->set_value ($hp, $hp_m);
564 $GAUGES->{mana} ->set_value ($sp, $sp_m); 564 $GAUGES->{mana} ->set_value ($sp, $sp_m);
565 $GAUGES->{food} ->set_value ($fo, $fo_m); 565 $GAUGES->{food} ->set_value ($fo, $fo_m);
566 $GAUGES->{grace} ->set_value ($gr, $gr_m); 566 $GAUGES->{grace} ->set_value ($gr, $gr_m);
567 $GAUGES->{exp} ->set_text ("Exp: " . (formsep $stats->{Crossfire::Protocol::Base::CS_STAT_EXP64}) 567 $GAUGES->{exp} ->set_text ("Exp: " . (formsep $stats->{+CS_STAT_EXP64})
568 . " (lvl " . ($stats->{Crossfire::Protocol::Base::CS_STAT_LEVEL} * 1) . ")"); 568 . " (lvl " . ($stats->{+CS_STAT_LEVEL} * 1) . ")");
569 my $rng = $stats->{Crossfire::Protocol::Base::CS_STAT_RANGE}; 569 my $rng = $stats->{+CS_STAT_RANGE};
570 $rng =~ s/^Range: //; # thank you so much dear server 570 $rng =~ s/^Range: //; # thank you so much dear server
571 $GAUGES->{range} ->set_text ("Rng: " . $rng); 571 $GAUGES->{range} ->set_text ("Rng: " . $rng);
572 my $title = $stats->{Crossfire::Protocol::Base::CS_STAT_TITLE}; 572 my $title = $stats->{+CS_STAT_TITLE};
573 $title =~ s/^Player: //; 573 $title =~ s/^Player: //;
574 $STATWIDS->{title} ->set_text ("Title: " . $title); 574 $STATWIDS->{title} ->set_text ("Title: " . $title);
575 575
576 $STATWIDS->{st_str} ->set_text (sprintf "%d", $stats->{5}); 576 $STATWIDS->{st_str} ->set_text (sprintf "%d" , $stats->{+CS_STAT_STR});
577 $STATWIDS->{st_dex} ->set_text (sprintf "%d", $stats->{8}); 577 $STATWIDS->{st_dex} ->set_text (sprintf "%d" , $stats->{+CS_STAT_DEX});
578 $STATWIDS->{st_con} ->set_text (sprintf "%d", $stats->{9}); 578 $STATWIDS->{st_con} ->set_text (sprintf "%d" , $stats->{+CS_STAT_CON});
579 $STATWIDS->{st_int} ->set_text (sprintf "%d", $stats->{6}); 579 $STATWIDS->{st_int} ->set_text (sprintf "%d" , $stats->{+CS_STAT_INT});
580 $STATWIDS->{st_wis} ->set_text (sprintf "%d", $stats->{7}); 580 $STATWIDS->{st_wis} ->set_text (sprintf "%d" , $stats->{+CS_STAT_WIS});
581 $STATWIDS->{st_pow} ->set_text (sprintf "%d", $stats->{22}); 581 $STATWIDS->{st_pow} ->set_text (sprintf "%d" , $stats->{+CS_STAT_POW});
582 $STATWIDS->{st_cha} ->set_text (sprintf "%d", $stats->{10}); 582 $STATWIDS->{st_cha} ->set_text (sprintf "%d" , $stats->{+CS_STAT_CHA});
583 $STATWIDS->{st_wc} ->set_text (sprintf "%d", $stats->{13}); 583 $STATWIDS->{st_wc} ->set_text (sprintf "%d" , $stats->{+CS_STAT_WC});
584 $STATWIDS->{st_ac} ->set_text (sprintf "%d", $stats->{14}); 584 $STATWIDS->{st_ac} ->set_text (sprintf "%d" , $stats->{+CS_STAT_AC});
585 $STATWIDS->{st_dam} ->set_text (sprintf "%d", $stats->{15}); 585 $STATWIDS->{st_dam} ->set_text (sprintf "%d" , $stats->{+CS_STAT_DAM});
586 $STATWIDS->{st_arm} ->set_text (sprintf "%d", $stats->{16}); 586 $STATWIDS->{st_arm} ->set_text (sprintf "%d" , $stats->{+CS_STAT_ARMOUR});
587 $STATWIDS->{st_spd} ->set_text (sprintf "%.1f", $stats->{Crossfire::Protocol::Base::CS_STAT_SPEED}); 587 $STATWIDS->{st_spd} ->set_text (sprintf "%.1f", $stats->{+CS_STAT_SPEED});
588 $STATWIDS->{st_wspd}->set_text (sprintf "%.1f", $stats->{Crossfire::Protocol::Base::CS_STAT_WEAP_SP}); 588 $STATWIDS->{st_wspd}->set_text (sprintf "%.1f", $stats->{+CS_STAT_WEAP_SP});
589 589
590 $STATWIDS->{m_weight}->set_text (sprintf "Max weight: %.1fkg", $stats->{Crossfire::Protocol::Base::CS_STAT_WEIGHT_LIM} / 1000); 590 $STATWIDS->{m_weight}->set_text (sprintf "Max weight: %.1fkg", $stats->{+CS_STAT_WEIGHT_LIM} / 1000);
591 591
592 # TODO: replace by CS_STAT_RES_xxx constants
592 my %tbl = ( 593 my %tbl = (
593 phys => 100, 594 phys => 100,
594 magic => 101, 595 magic => 101,
595 fire => 102, 596 fire => 102,
596 elec => 103, 597 elec => 103,
605 tund => 112, 606 tund => 112,
606 fear => 113, 607 fear => 113,
607 depl => 113, 608 depl => 113,
608 deat => 115, 609 deat => 115,
609 holyw => 116, 610 holyw => 116,
610 blind => 117 611 blind => 117,
611 ); 612 );
612 613
613 for (keys %tbl) {
614 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}}); 614 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}})
615 } 615 for keys %tbl;
616
617} 616}
618 617
619sub metaserver_dialog { 618sub metaserver_dialog {
620 my $dialog = new CFClient::UI::FancyFrame 619 my $dialog = new CFClient::UI::FancyFrame
621 title => "Server List", 620 title => "Server List",
905 user_w => $WIDTH * (7/8), user_h => $HEIGHT * (7/8), title => "Inventory"; 904 user_w => $WIDTH * (7/8), user_h => $HEIGHT * (7/8), title => "Inventory";
906 905
907 $invwin->add (my $hb = new CFClient::UI::HBox expand => 1); 906 $invwin->add (my $hb = new CFClient::UI::HBox expand => 1);
908 907
909 $hb->add (my $vb1 = new CFClient::UI::VBox expand => 1); 908 $hb->add (my $vb1 = new CFClient::UI::VBox expand => 1);
910 $vb1->add (my $lbl = new CFClient::UI::Label xalign => 0.5); 909 $vb1->add (my $lbl = new CFClient::UI::Label align => 0);
911 $lbl->set_text ("Player"); 910 $lbl->set_text ("Player");
912 $vb1->add ($INV = new CFClient::UI::Inventory expand => 1); 911 $vb1->add ($INV = new CFClient::UI::Inventory expand => 1);
913 912
914 $hb->add (my $vb2 = new CFClient::UI::VBox expand => 1); 913 $hb->add (my $vb2 = new CFClient::UI::VBox expand => 1);
914 $vb2->add (my $hb2 = new CFClient::UI::HBox);
915 $hb2->add (new CFClient::UI::Button
916 text => "Close",
917 tooltip => "Close the currently open container (if one is open)",
918 connect_activate => sub {
919 $CONN->send ("apply $CONN->{open_container}")
920 if $CONN->{open_container} != 0;
921 },
922 );
915 $vb2->add ($INVR_LBL = new CFClient::UI::Label xalign => 0.5); 923 $hb2->add ($INVR_LBL = new CFClient::UI::Label align => 0);
924
916 $INVR_LBL->set_text ("Floor"); 925 $INVR_LBL->set_text ("Floor");
917 $vb2->add ($INVR = new CFClient::UI::Inventory expand => 1); 926 $vb2->add ($INVR = new CFClient::UI::Inventory expand => 1);
918 927
919 $invwin 928 $invwin
920} 929}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines