… | |
… | |
1457 | |
1457 | |
1458 | ############################################################################# |
1458 | ############################################################################# |
1459 | |
1459 | |
1460 | $SIG{INT} = $SIG{TERM} = sub { exit }; |
1460 | $SIG{INT} = $SIG{TERM} = sub { exit }; |
1461 | |
1461 | |
1462 | CFClient::read_cfg "$Crossfire::VARDIR/pclientrc"; |
|
|
1463 | |
|
|
1464 | $TILECACHE = CFClient::db_table "tilecache"; |
|
|
1465 | $FACEMAP = CFClient::db_table "facemap"; |
|
|
1466 | |
|
|
1467 | my %DEF_CFG = ( |
|
|
1468 | sdl_mode => 0, |
|
|
1469 | width => 640, |
|
|
1470 | height => 480, |
|
|
1471 | fullscreen => 0, |
|
|
1472 | fast => 0, |
|
|
1473 | map_scale => 0.5, |
|
|
1474 | fow_enable => 1, |
|
|
1475 | fow_intensity => 0.45, |
|
|
1476 | fow_smooth => 0, |
|
|
1477 | gui_fontsize => 1, |
|
|
1478 | log_fontsize => 1, |
|
|
1479 | gauge_fontsize => 1, |
|
|
1480 | gauge_size => 0.35, |
|
|
1481 | stat_fontsize => 1, |
|
|
1482 | mapsize => 100, |
|
|
1483 | host => "crossfire.schmorp.de", |
|
|
1484 | say_command => 'say', |
|
|
1485 | audio_enable => 1, |
|
|
1486 | bgm_enable => 1, |
|
|
1487 | bgm_volume => 0.25, |
|
|
1488 | ); |
|
|
1489 | |
|
|
1490 | while (my ($k, $v) = each %DEF_CFG) { |
|
|
1491 | $CFG->{$k} = $v unless exists $CFG->{$k}; |
|
|
1492 | } |
|
|
1493 | |
|
|
1494 | sdl_init; |
|
|
1495 | |
|
|
1496 | @SDL_MODES = reverse |
|
|
1497 | grep $_->[0] >= 640 && $_->[1] >= 480, |
|
|
1498 | CFClient::SDL_ListModes; |
|
|
1499 | |
|
|
1500 | @SDL_MODES or CFClient::fatal "Unable to find a usable video mode\n(hardware accelerated opengl fullscreen)"; |
|
|
1501 | |
|
|
1502 | $CFG->{sdl_mode} = 0 if $CFG->{sdl_mode} > @SDL_MODES; |
|
|
1503 | |
|
|
1504 | { |
1462 | { |
|
|
1463 | local $SIG{__DIE__} = sub { CFClient::fatal $_[0] }; |
|
|
1464 | |
|
|
1465 | CFClient::read_cfg "$Crossfire::VARDIR/pclientrc"; |
|
|
1466 | |
|
|
1467 | $TILECACHE = CFClient::db_table "tilecache"; |
|
|
1468 | $FACEMAP = CFClient::db_table "facemap"; |
|
|
1469 | |
|
|
1470 | my %DEF_CFG = ( |
|
|
1471 | sdl_mode => 0, |
|
|
1472 | width => 640, |
|
|
1473 | height => 480, |
|
|
1474 | fullscreen => 0, |
|
|
1475 | fast => 0, |
|
|
1476 | map_scale => 0.5, |
|
|
1477 | fow_enable => 1, |
|
|
1478 | fow_intensity => 0.45, |
|
|
1479 | fow_smooth => 0, |
|
|
1480 | gui_fontsize => 1, |
|
|
1481 | log_fontsize => 1, |
|
|
1482 | gauge_fontsize => 1, |
|
|
1483 | gauge_size => 0.35, |
|
|
1484 | stat_fontsize => 1, |
|
|
1485 | mapsize => 100, |
|
|
1486 | host => "crossfire.schmorp.de", |
|
|
1487 | say_command => 'say', |
|
|
1488 | audio_enable => 1, |
|
|
1489 | bgm_enable => 1, |
|
|
1490 | bgm_volume => 0.25, |
|
|
1491 | ); |
|
|
1492 | |
|
|
1493 | while (my ($k, $v) = each %DEF_CFG) { |
|
|
1494 | $CFG->{$k} = $v unless exists $CFG->{$k}; |
|
|
1495 | } |
|
|
1496 | |
|
|
1497 | sdl_init; |
|
|
1498 | |
|
|
1499 | @SDL_MODES = reverse |
|
|
1500 | grep $_->[0] >= 640 && $_->[1] >= 480, |
|
|
1501 | CFClient::SDL_ListModes; |
|
|
1502 | |
|
|
1503 | @SDL_MODES or CFClient::fatal "Unable to find a usable video mode\n(hardware accelerated opengl fullscreen)"; |
|
|
1504 | |
|
|
1505 | $CFG->{sdl_mode} = 0 if $CFG->{sdl_mode} > @SDL_MODES; |
|
|
1506 | |
|
|
1507 | { |
1505 | my @fonts = map CFClient::find_rcfile "fonts/$_", qw( |
1508 | my @fonts = map CFClient::find_rcfile "fonts/$_", qw( |
1506 | DejaVuSans.ttf |
1509 | DejaVuSans.ttf |
1507 | DejaVuSansMono.ttf |
1510 | DejaVuSansMono.ttf |
1508 | DejaVuSans-Bold.ttf |
1511 | DejaVuSans-Bold.ttf |
1509 | DejaVuSansMono-Bold.ttf |
1512 | DejaVuSansMono-Bold.ttf |
1510 | DejaVuSans-Oblique.ttf |
1513 | DejaVuSans-Oblique.ttf |
1511 | DejaVuSansMono-Oblique.ttf |
1514 | DejaVuSansMono-Oblique.ttf |
1512 | DejaVuSans-BoldOblique.ttf |
1515 | DejaVuSans-BoldOblique.ttf |
1513 | DejaVuSansMono-BoldOblique.ttf |
1516 | DejaVuSansMono-BoldOblique.ttf |
1514 | ); |
1517 | ); |
1515 | |
1518 | |
1516 | CFClient::add_font $_ for @fonts; |
1519 | CFClient::add_font $_ for @fonts; |
1517 | |
1520 | |
1518 | $FONT_PROP = new_from_file CFClient::Font $fonts[0]; |
1521 | $FONT_PROP = new_from_file CFClient::Font $fonts[0]; |
1519 | $FONT_FIXED = new_from_file CFClient::Font $fonts[1]; |
1522 | $FONT_FIXED = new_from_file CFClient::Font $fonts[1]; |
1520 | |
1523 | |
1521 | $FONT_PROP->make_default; |
1524 | $FONT_PROP->make_default; |
1522 | } |
1525 | } |
1523 | |
1526 | |
1524 | video_init; |
1527 | video_init; |
1525 | audio_init; |
1528 | audio_init; |
|
|
1529 | } |
1526 | |
1530 | |
1527 | Event::loop; |
1531 | Event::loop; |
1528 | |
1532 | |
1529 | END { CFClient::SDL_Quit } |
1533 | END { CFClient::SDL_Quit } |
1530 | |
1534 | |