ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/bin/pclient
(Generate patch)

Comparing deliantra/Deliantra-Client/bin/pclient (file contents):
Revision 1.92 by root, Wed Apr 12 23:32:27 2006 UTC vs.
Revision 1.96 by root, Thu Apr 13 23:11:11 2006 UTC

35our @SDL_MODES; 35our @SDL_MODES;
36our $WIDTH; 36our $WIDTH;
37our $HEIGHT; 37our $HEIGHT;
38our $FULLSCREEN; 38our $FULLSCREEN;
39 39
40our $MAP;
40our $MAPWIDGET; 41our $MAPWIDGET;
41our $FONTSIZE; 42our $FONTSIZE;
42 43
43our $SDL_ACTIVE; 44our $SDL_ACTIVE;
44our $SDL_EV; 45our $SDL_EV;
63sub start_game { 64sub start_game {
64 status "logging in..."; 65 status "logging in...";
65 66
66 my $mapsize = List::Util::min 64, List::Util::max 11, int $WIDTH * $CFG->{mapsize} * 0.01 / 32; 67 my $mapsize = List::Util::min 64, List::Util::max 11, int $WIDTH * $CFG->{mapsize} * 0.01 / 32;
67 68
69 $MAP = new CFClient::Map $mapsize, $mapsize;
70
68 $CONN = new conn 71 $CONN = new conn
69 host => $CFG->{host}, 72 host => $CFG->{host},
70 port => $CFG->{port}, 73 port => $CFG->{port},
71 user => $CFG->{user}, 74 user => $CFG->{user},
72 pass => $CFG->{password}, 75 pass => $CFG->{password},
169 }); 172 });
170 $CFClient::UI::TOPLEVEL->add ($dialog); 173 $CFClient::UI::TOPLEVEL->add ($dialog);
171} 174}
172 175
173sub sdl_init { 176sub sdl_init {
174 SDL::Init SDL_INIT_AUDIO | SDL_INIT_VIDEO 177 SDL::Init SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE
175 and die "SDL::Init failed!\n"; 178 and die "SDL::Init failed!\n";
176} 179}
177 180
178sub init_screen { 181sub init_screen {
179 sdl_init; 182 sdl_init;
317 320
318 $self->send ($command); 321 $self->send ($command);
319 status $command; 322 status $command;
320} 323}
321 324
322sub conn::map_update { 325sub conn::feed_map1a {
323 my ($self, $dirty) = @_; 326 my ($self, $data) = @_;
324 327
328# $self->Crossfire::Protocol::feed_map1a ($data);
329
330 $MAP->scroll (delete $self->{delayed_scroll_x}, delete $self->{delayed_scroll_y});
331 $MAP->map1a_update ($data);
325 $MAPWIDGET->update; 332 $MAPWIDGET->update;
326} 333}
327 334
328sub conn::map_scroll { 335#sub conn::map_update {
329 my ($self, $dx, $dy) = @_; 336# my ($self, $dirty) = @_;
330 337#
331# refresh; 338# $MAPWIDGET->update;
332} 339#}
333 340
334sub conn::map_clear { 341sub conn::map_clear {
335 my ($self) = @_; 342 my ($self) = @_;
336 343
344 $MAP->clear;
345
337# refresh; 346# refresh;
338} 347}
339 348
340sub conn::face_find { 349sub conn::face_find {
341 my ($self, $face) = @_; 350 my ($self, $face) = @_;
342 351
343 $FACECACHE->{"$face->{chksum},$face->{name}"} 352 $FACECACHE->{"$face->{chksum},$face->{name}"}
344} 353}
345 354
346sub conn::face_update { 355sub conn::face_update {
347 my ($self, $face) = @_; 356 my ($self, $facenum, $face) = @_;
348 357
349 $FACECACHE->{"$face->{chksum},$face->{name}"} = $face->{image}; 358 $FACECACHE->{"$face->{chksum},$face->{name}"} = $face->{image};
350 359
351 $face->{texture} = new_from_image CFClient::Texture delete $face->{image}; 360 my $tex = $face->{texture} = new_from_image CFClient::Texture delete $face->{image};
361
362 $MAP->set_texture ($facenum, @$tex{qw(name w h s t)});
363 $MAPWIDGET->update;
352} 364}
353 365
354sub conn::query { 366sub conn::query {
355 my ($self, $flags, $prompt) = @_; 367 my ($self, $flags, $prompt) = @_;
356 368
414 $CFG->{$k} = $v unless exists $CFG->{$k}; 426 $CFG->{$k} = $v unless exists $CFG->{$k};
415} 427}
416 428
417sdl_init; 429sdl_init;
418 430
419@SDL_MODES = reverse map [SDL::RectW ($_), SDL::RectH ($_)], 431@SDL_MODES = reverse
432 grep $_->[0] >= 640 && $_->[1] >= 480,
433 map [SDL::RectW ($_), SDL::RectH ($_)],
420 @{ SDL::ListModes 0, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_OPENGL }; 434 @{ SDL::ListModes 0, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_OPENGL };
421 435
422@SDL_MODES or CFClient::fatal "Unable to find a usable video mode\n(hardware accelerated opengl fullscreen)"; 436@SDL_MODES or CFClient::fatal "Unable to find a usable video mode\n(hardware accelerated opengl fullscreen)";
423 437
424$CFG->{sdl_mode} = 0 if $CFG->{sdl_mode} > @SDL_MODES; 438$CFG->{sdl_mode} = 0 if $CFG->{sdl_mode} > @SDL_MODES;
425 439

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines