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.137 by root, Sat Dec 9 02:21:25 2006 UTC vs.
Revision 1.142 by root, Mon Mar 12 22:23:09 2007 UTC

68use CFPlus::Macro; 68use CFPlus::Macro;
69 69
70$SIG{QUIT} = sub { Carp::cluck "QUIT" }; 70$SIG{QUIT} = sub { Carp::cluck "QUIT" };
71$SIG{PIPE} = 'IGNORE'; 71$SIG{PIPE} = 'IGNORE';
72 72
73$Event::Eval = 0; 73$Event::Eval = 1;
74$Event::DIED = sub { 74$Event::DIED = sub {
75 CFPlus::fatal Carp::longmess $_[1] 75 CFPlus::fatal Carp::longmess $_[1]
76}; 76};
77 77
78my $MAX_FPS = 60; 78my $MAX_FPS = 60;
176sub destroy_query_dialog { 176sub destroy_query_dialog {
177 (delete $_[0]{query_dialog})->destroy 177 (delete $_[0]{query_dialog})->destroy
178 if $_[0]{query_dialog}; 178 if $_[0]{query_dialog};
179} 179}
180 180
181# FIXME: a very ugly hack to wait for stat update look below! #d#
182our $QUERY_TIMER; #d#
183
181# server query dialog 184# server query dialog
182sub server_query { 185sub server_query {
183 my ($conn, $flags, $prompt) = @_; 186 my ($conn, $flags, $prompt) = @_;
187
188 # FIXME: a very ugly hack to wait for stat update #d#
189 if ($prompt =~ /roll new stats/ and not $conn->{stat_change_with}) {
190 unless ($QUERY_TIMER) {
191 $QUERY_TIMER =
192 Event->timer (
193 after => 1,
194 cb => sub {
195 server_query ($conn, $flags, $prompt, 1);
196 $QUERY_TIMER = undef
197 }
198 );
199 return;
200 }
201 }
184 202
185 $conn->{query_dialog} = my $dialog = new CFPlus::UI::Toplevel 203 $conn->{query_dialog} = my $dialog = new CFPlus::UI::Toplevel
186 x => "center", 204 x => "center",
187 y => "center", 205 y => "center",
188 title => "Server Query", 206 title => "Server Query",
887 for 0 .. $#col; 905 for 0 .. $#col;
888 906
889 my @align = qw(1 0 1 1 -1); 907 my @align = qw(1 0 1 1 -1);
890 908
891 my $y = 0; 909 my $y = 0;
892 for my $m (
893 sort {
894 $b->{version} <=> $a->{version}
895 or $b->{users} <=> $a->{users}
896 }
897 @{ $msg->{servers} } 910 for my $m (@{ $msg->{servers} }) {
898 ) {
899 my ($ip, $last, $host, $users, $version, $desc, $ibytes, $obytes, $uptime) = 911 my ($ip, $last, $host, $users, $version, $desc, $ibytes, $obytes, $uptime, $highlight) =
900 @$m{qw(ip age hostname users version description ibytes obytes uptime)}; 912 @$m{qw(ip age hostname users version description ibytes obytes uptime highlight)};
901 913
902 for ($desc) { 914 for ($desc) {
903 s/<br>/\n/gi; 915 s/<br>/\n/gi;
904 s/<li>/\n· /gi; 916 s/<li>/\n· /gi;
905 s/<.*?>//sgi; 917 s/<.*?>//sgi;
935 max_w => $::WIDTH * 0.4, 947 max_w => $::WIDTH * 0.4,
936 ellipsise => 0, 948 ellipsise => 0,
937 align => $align[$_], 949 align => $align[$_],
938 text => $m->[$_], 950 text => $m->[$_],
939 tooltip => $tip[$_], 951 tooltip => $tip[$_],
940 fg => ($m->[3] =~ /\+$/ ? [1, 1, 1] : [.7, .7, .7]), 952 fg => ($highlight ? [1, 1, 1] : [.7, .7, .7]),
941 can_hover => 1, 953 can_hover => 1,
942 can_events => 1, 954 can_events => 1,
943 fontsize => 0.8) 955 fontsize => 0.8)
944 for 0 .. $#$m; 956 for 0 .. $#$m;
945 } 957 }
1770} 1782}
1771 1783
1772sub setup_build_button { 1784sub setup_build_button {
1773 my ($enabled) = @_; 1785 my ($enabled) = @_;
1774 if ($enabled) { 1786 if ($enabled) {
1787 $BUILD_BUTTON->hide if $BUILD_BUTTON;
1775 $BUILD_BUTTON ||= new CFPlus::UI::Button 1788 $BUILD_BUTTON ||= new CFPlus::UI::Button
1776 text => "Build", 1789 text => "Build",
1777 tooltip => "Opens the ingame builder", 1790 tooltip => "Opens the ingame builder",
1778 on_activate => sub { 1791 on_activate => sub {
1779 if ($CONN) { 1792 if ($CONN) {
2158 audio_init; 2171 audio_init;
2159} 2172}
2160 2173
2161show_tip_of_the_day if $CFG->{show_tips}; 2174show_tip_of_the_day if $CFG->{show_tips};
2162 2175
2163#CFPlus::Macro::quick_macro ["test"];#d#
2164Event::loop; 2176Event::loop;
2165#CFPlus::SDL_Quit; 2177#CFPlus::SDL_Quit;
2166#CFPlus::_exit 0; 2178#CFPlus::_exit 0;
2167 2179
2168END { CFPlus::SDL_Quit } 2180END { CFPlus::SDL_Quit }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines