--- deliantra/Deliantra-Client/DC/Protocol.pm 2007/08/21 02:39:17 1.157 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2007/08/21 11:23:04 1.158 @@ -479,9 +479,7 @@ if (grep +(exists $stats->{$_}) != (exists $prev->{$_}), @skills) { $sktbl->clear; - my @add; - - push @add, + my $sw = $self->{skillwid}{""} ||= [ 0, 0, (new CFPlus::UI::Label text => "Experience", align => 1), 1, 0, (new CFPlus::UI::Label text => "Lvl.", align => 1), 2, 0, (new CFPlus::UI::Label text => "Progress", align => 0), @@ -490,7 +488,9 @@ 5, 0, (new CFPlus::UI::Label text => "Lvl.", align => 1), 6, 0, (new CFPlus::UI::Label text => "Progress", align => 0), 7, 0, (new CFPlus::UI::Label text => "Skill", expand => 1), - ; + ]; + + my @add = @$sw; my $TOOLTIP_ALL = "\n\nLeft click - ready skill\nMiddle click - use spell\nRight click - further options"; @@ -528,14 +528,28 @@ 1 }; + my $sw = $self->{skillwid}{$idx} ||= [ + # exp + (new CFPlus::UI::Label + align => 1, font => $::FONT_FIXED, fg => [1, 1, 0], on_button_down => $spell_cb, @TOOLTIP_EXP), + + # level + (new CFPlus::UI::Label + text => "0", align => 1, font => $::FONT_FIXED, fg => [0, 1, 0], padding_x => 4, on_button_down => $spell_cb, @TOOLTIP_LVL), + + # progress + (new CFPlus::UI::ExperienceProgress), + + # label + (new CFPlus::UI::Label text => $name, on_button_down => $spell_cb, + can_events => 1, can_hover => 1, tooltip => (CFPlus::Pod::section_label skill_description => $name) . $TOOLTIP_ALL), + ]; + push @add, - $x * 4 + 0, $y, ($self->{stat_widget_exp}{$idx} ||= new CFPlus::UI::Label - align => 1, font => $::FONT_FIXED, fg => [1, 1, 0], on_button_down => $spell_cb, @TOOLTIP_EXP), - $x * 4 + 1, $y, ($self->{stat_widget_lvl}{$idx} ||= new CFPlus::UI::Label - text => "0", align => 1, font => $::FONT_FIXED, fg => [0, 1, 0], padding_x => 4, on_button_down => $spell_cb, @TOOLTIP_LVL), - $x * 4 + 2, $y, ($self->{stat_widget_prg}{$idx} ||= new CFPlus::UI::ExperienceProgress), - $x * 4 + 3, $y, ($self->{stat_widget_lbl}{$idx} ||= new CFPlus::UI::Label text => $name, on_button_down => $spell_cb, - can_events => 1, can_hover => 1, tooltip => (CFPlus::Pod::section_label skill_description => $name) . $TOOLTIP_ALL), + $x * 4 + 0, $y, $sw->[0], + $x * 4 + 1, $y, $sw->[1], + $x * 4 + 2, $y, $sw->[2], + $x * 4 + 3, $y, $sw->[3], ; $x++ and ($x, $y) = (0, $y + 1); @@ -545,9 +559,10 @@ } for (grep exists $stats->{$_}, @skills) { - $self->{stat_widget_exp}{$_}->set_text (::formsep ($stats->{$_}[1])); - $self->{stat_widget_lvl}{$_}->set_text ($stats->{$_}[0] * 1); - $self->{stat_widget_prg}{$_}->set_value (@{$stats->{$_}}); + my $sw = $self->{skillwid}{$_}; + $sw->[0]->set_text (::formsep ($stats->{$_}[1])); + $sw->[1]->set_text ($stats->{$_}[0] * 1); + $sw->[2]->set_value (@{$stats->{$_}}); } }