… | |
… | |
196 | AnyEvent::Util::fh_nonblocking $fh, 1; |
196 | AnyEvent::Util::fh_nonblocking $fh, 1; |
197 | |
197 | |
198 | $msg =~ s/\s+$//; |
198 | $msg =~ s/\s+$//; |
199 | |
199 | |
200 | # backtrace as second step, in case it crashes, too |
200 | # backtrace as second step, in case it crashes, too |
201 | crash Carp::longmess "$msg\nbacktrace, for client version $DC::VERSION, generated" |
201 | crash Carp::longmess "$msg\nbacktrace, for client version $DC::VERSION$Urlader::EXE_VER, generated" |
202 | if $backtrace; |
202 | if $backtrace; |
203 | }; |
203 | }; |
204 | |
204 | |
205 | sub clienterror($;$) { |
205 | sub clienterror($;$) { |
206 | my ($msg, $backtrace) = @_; |
206 | my ($msg, $backtrace) = @_; |
… | |
… | |
208 | warn $msg; |
208 | warn $msg; |
209 | |
209 | |
210 | return unless $CONN; |
210 | return unless $CONN; |
211 | |
211 | |
212 | $CONN->send_exti_msg (clientlog => $msg); |
212 | $CONN->send_exti_msg (clientlog => $msg); |
213 | $CONN->send_exti_msg (clientlog => Carp::longmess "$msg\nbacktrace, for client version $DC::VERSION, generated") if $backtrace; |
213 | $CONN->send_exti_msg (clientlog => Carp::longmess "$msg\nbacktrace, for client version $DC::VERSION$Urlader::EXE_VER, generated") if $backtrace; |
214 | } |
214 | } |
215 | |
215 | |
216 | ############################################################################# |
216 | ############################################################################# |
217 | |
217 | |
218 | sub status { |
218 | sub status { |
… | |
… | |
597 | my $fh = Coro::AIO::aio_open "$override.tmp", IO::AIO::O_RDONLY, 0; |
597 | my $fh = Coro::AIO::aio_open "$override.tmp", IO::AIO::O_RDONLY, 0; |
598 | |
598 | |
599 | if ($fh) { |
599 | if ($fh) { |
600 | $error ||= Coro::AIO::aio_stat "$override.tmp"; |
600 | $error ||= Coro::AIO::aio_stat "$override.tmp"; |
601 | $error ||= -s _ != $size; |
601 | $error ||= -s _ != $size; |
602 | $error ||= Coro::AIO::aio_readahead $fh, 0, $size; |
602 | Coro::AIO::aio_readahead $fh, 0, $size; |
603 | |
603 | |
604 | my $f_md5 = new Digest::MD5; |
604 | my $f_md5 = new Digest::MD5; |
|
|
605 | binmode $fh; # ugh :( |
605 | $f_md5->addfile ($fh); |
606 | $f_md5->addfile ($fh); |
606 | $f_md5 = $f_md5->hexdigest; |
607 | $f_md5 = $f_md5->hexdigest; |
607 | $error ||= $md5 ne $f_md5; |
608 | $error ||= $md5 ne $f_md5; |
608 | } |
609 | } |
609 | } |
610 | } |
… | |
… | |
964 | mapw => $mapw, |
965 | mapw => $mapw, |
965 | maph => $maph, |
966 | maph => $maph, |
966 | |
967 | |
967 | c_version => { |
968 | c_version => { |
968 | client => "deliantra", |
969 | client => "deliantra", |
969 | clientver => $DC::VERSION, |
970 | clientver => "$DC::VERSION$Urlader::EXE_VER", |
970 | gl_vendor => DC::OpenGL::gl_vendor, |
971 | gl_vendor => DC::OpenGL::gl_vendor, |
971 | gl_version => DC::OpenGL::gl_version, |
972 | gl_version => DC::OpenGL::gl_version, |
972 | }, |
973 | }, |
973 | |
974 | |
974 | map_widget => $MAPWIDGET, |
975 | map_widget => $MAPWIDGET, |
… | |
… | |
2697 | my ($old_w, $old_h) = ($WIDTH, $HEIGHT); |
2698 | my ($old_w, $old_h) = ($WIDTH, $HEIGHT); |
2698 | |
2699 | |
2699 | ($WIDTH, $HEIGHT, my ($rgb, $alpha)) = @{ $SDL_MODES[$CFG->{sdl_mode}] }; |
2700 | ($WIDTH, $HEIGHT, my ($rgb, $alpha)) = @{ $SDL_MODES[$CFG->{sdl_mode}] }; |
2700 | $FULLSCREEN = $CFG->{fullscreen}; |
2701 | $FULLSCREEN = $CFG->{fullscreen}; |
2701 | $FAST = $CFG->{fast}; |
2702 | $FAST = $CFG->{fast}; |
|
|
2703 | |
|
|
2704 | DC::SDL_WM_SetCaption "Deliantra MORPG Client $DC::VERSION$Urlader::EXE_VER", "Deliantra"; # must be after SDL_Init |
2702 | |
2705 | |
2703 | # due to mac os x braindamage, we simply retry with !fullscreen in case of an error |
2706 | # due to mac os x braindamage, we simply retry with !fullscreen in case of an error |
2704 | DC::SDL_SetVideoMode $WIDTH, $HEIGHT, $rgb, $alpha, $FULLSCREEN |
2707 | DC::SDL_SetVideoMode $WIDTH, $HEIGHT, $rgb, $alpha, $FULLSCREEN |
2705 | or DC::SDL_SetVideoMode $WIDTH, $HEIGHT, $rgb, $alpha, !$FULLSCREEN |
2708 | or DC::SDL_SetVideoMode $WIDTH, $HEIGHT, $rgb, $alpha, !$FULLSCREEN |
2706 | or die "SDL_SetVideoMode failed: " . (DC::SDL_GetError) . "\n"; |
2709 | or die "SDL_SetVideoMode failed: " . (DC::SDL_GetError) . "\n"; |