#!/opt/bin/perl our @STARTUP_DONE; # do splash-screen thingy on win32 BEGIN { if (%PAR::LibCache && $^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", ); push @STARTUP_DONE, sub { Win32::GUI::SplashScreen::Done (1); }; } } # TODO: find most recent .par use common::sense; use Carp 'verbose'; # do things only needed for single-binary version (par) BEGIN { if (%PAR::LibCache) { @INC = grep ref, @INC; # weed out all paths except PAR's loader refs my $root = $ENV{PAR_TEMP}; while (my ($filename, $zip) = each %PAR::LibCache) { for ($zip->memberNames) { next unless /^root\/(.*)/; $zip->extractMember ($_, "$root/$1") unless -e "$root/$1"; } } if ($^O eq "MSWin32") { # pango is relocatable on win32 } else { # OS X $ENV{PANGO_RC_FILE} = "$root/pango.rc"; $ENV{DYLD_LIBRARY_PATH} = $root; chdir $root; # for pango modules, maybe other things } unshift @INC, $root; } } # prepend private library directory and prepare env BEGIN { for (grep !ref, @INC) { my $path = "$_/Deliantra/Client/private"; if (-d $path) { unshift @INC, $path; last; } } } use DC::Main (); # need to do it again because that pile of garbage called PAR nukes it before main unshift @INC, $ENV{PAR_TEMP} if %PAR::LibCache; DC::Main::run; =head1 NAME deliantra - A Deliantra MORPG game client =head1 SYNOPSIS deliantra [--profile name] [host [user [password]]] deliantra --help =head1 USAGE The deliantra client utilises OpenGL for all UI elements and the game. It is supposed to be used in fullscreen mode and interactively. =head1 DEBUGGING DELIANTRA_DEBUG - environment variable 1 draw borders around widgets 2 add low-level widget info to tooltips 4 show fps 8 suppress tooltips 16 show bandwidth downstream =head1 AUTHOR Marc Lehmann , Robin Redeker