… | |
… | |
19 | use CFClient::UI; |
19 | use CFClient::UI; |
20 | |
20 | |
21 | our $VERSION = '0.1'; |
21 | our $VERSION = '0.1'; |
22 | |
22 | |
23 | my $MAX_FPS = 60; |
23 | my $MAX_FPS = 60; |
24 | my $MIN_FPS = 5; # unused |
24 | my $MIN_FPS = 5; # unused as of yet |
25 | |
25 | |
26 | our $FACECACHE; |
26 | our $FACECACHE; |
27 | |
27 | |
28 | our $LAST_REFRESH; |
28 | our $LAST_REFRESH; |
29 | our $NOW; |
29 | our $NOW; |
… | |
… | |
113 | $table->add (1, 2, new CFClient::UI::CheckBox state => $CFG->{fast}, connect_changed => sub { |
113 | $table->add (1, 2, new CFClient::UI::CheckBox state => $CFG->{fast}, connect_changed => sub { |
114 | my ($self, $value) = @_; |
114 | my ($self, $value) = @_; |
115 | $CFG->{fast} = $value; |
115 | $CFG->{fast} = $value; |
116 | }); |
116 | }); |
117 | |
117 | |
|
|
118 | $table->add (0, 2, new CFClient::UI::Label align => 1, text => "Fog of War"); |
|
|
119 | $table->add (1, 2, new CFClient::UI::Slider range => [$CFG->{fow_intensity}, 0, 1 + 0.001, 0.001], connect_changed => sub { |
|
|
120 | my ($self, $value) = @_; |
|
|
121 | $CFG->{fow_intensity} = $value; |
|
|
122 | }); |
|
|
123 | |
118 | $table->add (1, 3, new CFClient::UI::Button expand => 1, align => 0, text => "Apply", connect_activate => sub { |
124 | $table->add (1, 4, new CFClient::UI::Button expand => 1, align => 0, text => "Apply", connect_activate => sub { |
119 | destroy_screen (); |
125 | destroy_screen (); |
120 | init_screen (); |
126 | init_screen (); |
121 | }); |
127 | }); |
122 | |
128 | |
123 | $vbox->add (new CFClient::UI::Label align => 0, text => "Server Setup"); |
129 | $vbox->add (new CFClient::UI::Label align => 0, text => "Server Setup"); |
… | |
… | |
254 | glLoadIdentity; |
260 | glLoadIdentity; |
255 | glOrtho 0, $WIDTH, $HEIGHT, 0, -10000 , 10000; |
261 | glOrtho 0, $WIDTH, $HEIGHT, 0, -10000 , 10000; |
256 | glMatrixMode GL_MODELVIEW; |
262 | glMatrixMode GL_MODELVIEW; |
257 | glLoadIdentity; |
263 | glLoadIdentity; |
258 | |
264 | |
|
|
265 | glClearColor +($CFG->{fow_intensity}) x 3, 1; |
259 | glClear GL_COLOR_BUFFER_BIT; |
266 | glClear GL_COLOR_BUFFER_BIT; |
260 | |
267 | |
261 | $CFClient::UI::TOPLEVEL->draw; |
268 | $CFClient::UI::TOPLEVEL->draw; |
262 | |
269 | |
263 | SDL::GLSwapBuffers; |
270 | SDL::GLSwapBuffers; |
… | |
… | |
382 | |
389 | |
383 | ############################################################################# |
390 | ############################################################################# |
384 | |
391 | |
385 | CFClient::read_cfg "$Crossfire::VARDIR/pclientrc"; |
392 | CFClient::read_cfg "$Crossfire::VARDIR/pclientrc"; |
386 | |
393 | |
387 | $CFG ||= { |
394 | my %DEF_CFG = ( |
388 | width => 640, |
395 | width => 640, |
389 | height => 480, |
396 | height => 480, |
390 | fast => 0, |
397 | fast => 0, |
|
|
398 | fow_intensity => 0.45, |
391 | fullscreen => 0, |
399 | fullscreen => 0, |
392 | sdl_mode => 0, |
400 | sdl_mode => 0, |
393 | mapsize => 100, |
401 | mapsize => 100, |
394 | host => "crossfire.schmorp.de", |
402 | host => "crossfire.schmorp.de", |
395 | port => 13327, |
403 | port => 13327, |
396 | }; |
404 | ); |
|
|
405 | |
|
|
406 | while (my ($k, $v) = each %DEF_CFG) { |
|
|
407 | $CFG->{$k} = $v unless exists $CFG->{$k}; |
|
|
408 | } |
397 | |
409 | |
398 | sdl_init; |
410 | sdl_init; |
399 | |
411 | |
400 | @SDL_MODES = reverse map [SDL::RectW ($_), SDL::RectH ($_)], |
412 | @SDL_MODES = reverse map [SDL::RectW ($_), SDL::RectH ($_)], |
401 | @{ SDL::ListModes 0, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_OPENGL }; |
413 | @{ SDL::ListModes 0, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_OPENGL }; |