--- deliantra/Deliantra-Client/bin/cfplus 2006/10/01 14:48:51 1.120 +++ deliantra/Deliantra-Client/bin/cfplus 2006/10/08 21:22:30 1.122 @@ -1,5 +1,26 @@ #!/opt/bin/perl +my $startup_done = sub { }; + +# do splash-screen thingy on win32 +BEGIN { + if ($^O eq "MSWin32") { + while (my ($filename, $zip) = each %PAR::LibCache) { + $zip->extractMember ("SPLASH.bmp", "$ENV{PAR_TEMP}/SPLASH.bmp"); + } + + require Win32::GUI::SplashScreen; + + Win32::GUI::SplashScreen::Show ( + -file => "$ENV{PAR_TEMP}/SPLASH.bmp", + ); + + $startup_done = sub { + Win32::GUI::SplashScreen::Done (1); + }; + } +} + use strict; use utf8; @@ -10,7 +31,7 @@ while (my ($filename, $zip) = each %PAR::LibCache) { for ($zip->memberNames) { - next unless /^\/root\/(.*)/; + next unless /^root\/(.*)/; $zip->extractMember ($_, "$ENV{PAR_TEMP}/$1") unless -e "$ENV{PAR_TEMP}/$1"; } @@ -53,8 +74,6 @@ CFPlus::fatal ($_[1]); }; -our $VERSION = '0.9'; - my $MAX_FPS = 60; my $MIN_FPS = 5; # unused as of yet @@ -141,6 +160,17 @@ $DEBUG_STATUS->set_text ($_[0]); } +sub message { + my ($para) = @_; + + my $time = sprintf "%02d:%02d:%02d", (localtime time)[2,1,0]; + + $para->{markup} = "$time $para->{markup}"; + + $LOGVIEW->add_paragraph ($para); + $LOGVIEW->scroll_to_bottom; +} + sub destroy_query_dialog { (delete $_[0]{query_dialog})->destroy if $_[0]{query_dialog}; @@ -364,7 +394,7 @@ mapw => $mapsize, maph => $mapsize, - client => "cfplus $VERSION $] $^O", + client => "cfplus $CFPlus::VERSION $] $^O", map_widget => $MAPWIDGET, logview => $LOGVIEW, @@ -412,7 +442,6 @@ $CONN = 0; # false, does not autovivify undef $MAP; - undef $PROFILE; } sub graphics_setup { @@ -1060,7 +1089,7 @@ tooltip => "Show the Tip of the day window at startup?", on_changed => sub { my ($self, $value) = @_; - $CFG->{shop_tips} = $value; + $CFG->{show_tips} = $value; 0 } ); @@ -2092,14 +2121,14 @@ # warn $t2-$t1; # } + $startup_done->(); + video_init; audio_init; } show_tip_of_the_day if $CFG->{show_tips}; -use Data::Dumper; warn Dumper [CFPlus::win32_proxy_info()];#d# - Event::loop; #CFPlus::SDL_Quit; #CFPlus::_exit 0;