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

Comparing deliantra/Deliantra-Client/bin/deliantra (file contents):
Revision 1.95 by root, Sun Apr 26 19:10:57 2009 UTC vs.
Revision 1.101 by root, Thu Feb 4 20:01:09 2010 UTC

133 crash "CRASH/EV::DIED: $@" => 0; 133 crash "CRASH/EV::DIED: $@" => 0;
134 DC::fatal Carp::longmess $@; 134 DC::fatal Carp::longmess $@;
135}; 135};
136 136
137my $MAX_FPS = 60; 137my $MAX_FPS = 60;
138
139our $DEFAULT_SERVER = "gameserver.deliantra.net";
138 140
139our $META_SERVER = "http://metaserver.schmorp.de/current.json"; 141our $META_SERVER = "http://metaserver.schmorp.de/current.json";
140 142
141our $LAST_REFRESH; 143our $LAST_REFRESH;
142our $NOW; 144our $NOW;
539 sub audio_tab_update; 541 sub audio_tab_update;
540 audio_tab_update; 542 audio_tab_update;
541} 543}
542 544
543sub audio_shutdown { 545sub audio_shutdown {
546 if ($SDL_MIXER) {
547 DC::MixMusic::halt;
548 DC::Mix_AllocateChannels 0;
549 }
550
544 undef $MUSIC_PLAYER; 551 undef $MUSIC_PLAYER;
545 undef $MUSIC_PLAYING_META; 552 undef $MUSIC_PLAYING_META;
546 undef $MUSIC_PLAYING_DATA; 553 undef $MUSIC_PLAYING_DATA;
547 554
548 $MUSIC_WANT = []; 555 $MUSIC_WANT = [];
828 ; 835 ;
829} 836}
830 837
831sub start_game { 838sub start_game {
832 status "logging in..."; 839 status "logging in...";
840
841 my $server = $PROFILE->{host} || $DEFAULT_SERVER;
842 my ($host, $port) = AnyEvent::Socket::parse_hostport $server, "deliantra=13327"
843 or return status "$server: unable to parse server address, try an empty field.";
833 844
834 $LOGIN_BUTTON->set_text ("Logout"); 845 $LOGIN_BUTTON->set_text ("Logout");
835 $SETUP_DIALOG->hide; 846 $SETUP_DIALOG->hide;
836
837 my ($host, $port) = AnyEvent::Socket::parse_hostport $PROFILE->{host}, "deliantra=13327";
838 847
839 $MAP = new DC::Map; 848 $MAP = new DC::Map;
840 849
841 # hack to make SURE we find the IP address all right 850 # hack to make SURE we find the IP address all right
842 # can be removed once AnyEvent::DNS is proven stable. 851 # can be removed once AnyEvent::DNS is proven stable.
1025 . "If you have a very slow system, non-accelerated drivers or plain dislike smooth scrolling, " 1034 . "If you have a very slow system, non-accelerated drivers or plain dislike smooth scrolling, "
1026 . "then disable this option. Changes take effect immdiately.", 1035 . "then disable this option. Changes take effect immdiately.",
1027 on_changed => sub { my ($self, $value) = @_; $CFG->{smooth_movement} = $value; 0 } 1036 on_changed => sub { my ($self, $value) = @_; $CFG->{smooth_movement} = $value; 0 }
1028 ); 1037 );
1029 1038
1039 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "Smooth Transitions");
1040 $table->add_at (1, $row++, new DC::UI::CheckBox
1041 state => $CFG->{smooth_transitions},
1042 tooltip => "<b>Smooth Transitions</b> tries to blend the fog of war and lighting smoothly between updates. "
1043 . "If you have a very slow system, non-accelerated drivers or plain dislike smooth scrolling, "
1044 . "then disable this option. Requires Smooth Movement and OpenGL Multitexturing. Changes take effect immdiately.",
1045 on_changed => sub { my ($self, $value) = @_; $CFG->{smooth_transitions} = $value; 0 }
1046 );
1047
1048
1030 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "Map Scale"); 1049 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "Map Scale");
1031 $table->add_at (1, $row++, new DC::UI::Slider 1050 $table->add_at (1, $row++, new DC::UI::Slider
1032 range => [(log $CFG->{map_scale}) / (log 2), -3, 1, 0, 1], 1051 range => [(log $CFG->{map_scale}) / (log 2), -3, 1, 0, 1],
1033 tooltip => "Enlarge or shrink the displayed map. Changes are instant.", 1052 tooltip => "Enlarge or shrink the displayed map. Changes are instant.",
1034 on_changed => sub { my ($self, $value) = @_; $CFG->{map_scale} = 2 ** $value; 0 } 1053 on_changed => sub { my ($self, $value) = @_; $CFG->{map_scale} = 2 ** $value; 0 }
1046 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "Fog of War"); 1065 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "Fog of War");
1047 $table->add_at (1, $row++, new DC::UI::CheckBox 1066 $table->add_at (1, $row++, new DC::UI::CheckBox
1048 state => $CFG->{fow_enable}, 1067 state => $CFG->{fow_enable},
1049 tooltip => "<b>Fog-of-War</b> marks areas that cannot be seen by the player. Changes are instant.", 1068 tooltip => "<b>Fog-of-War</b> marks areas that cannot be seen by the player. Changes are instant.",
1050 on_changed => sub { my ($self, $value) = @_; $CFG->{fow_enable} = $value; 0 } 1069 on_changed => sub { my ($self, $value) = @_; $CFG->{fow_enable} = $value; 0 }
1070 );
1071
1072 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "FoW Pattern");
1073 $table->add_at (1, $row++, new DC::UI::ImageButton
1074 tex => $DC::MapWidget::TEX_HIDDEN[$CFG->{fow_texture}],
1075 bg => [0.3, 0.3, 0.2],
1076 force_w => 64,
1077 force_h => 64,
1078 tooltip => "<b>Fog of War Pattern.</b> The pattern that is overlaid over areas hidden from view. Click to cycle through various alternatives. Changes are instant.",
1079 on_activate => sub {
1080 my ($self) = @_;
1081 $CFG->{fow_texture} = ($CFG->{fow_texture} + 1) % @DC::MapWidget::TEX_HIDDEN;
1082 $self->set_texture ($DC::MapWidget::TEX_HIDDEN[$CFG->{fow_texture}]);
1083 $MAPWIDGET->update;
1084 }
1051 ); 1085 );
1052 1086
1053 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "FoW Intensity"); 1087 $table->add_at (0, $row, new DC::UI::Label align => 1, text => "FoW Intensity");
1054 $table->add_at (1, $row++, new DC::UI::Slider 1088 $table->add_at (1, $row++, new DC::UI::Slider
1055 range => [$CFG->{fow_intensity}, 0, 1, 0, 1 / 256], 1089 range => [$CFG->{fow_intensity}, 0, 1, 0, 1 / 256],
1107 1141
1108 my $text = !$freq 1142 my $text = !$freq
1109 ? "audio is off" 1143 ? "audio is off"
1110 : "audio is enabled\n" 1144 : "audio is enabled\n"
1111 . "frequency (Hz): $freq\n" 1145 . "frequency (Hz): $freq\n"
1112 . "channels: $chans"; 1146 . "channels: $chans\n"
1147 . "chunk decoders available: " . (join ", ", DC::MixChunk::decoders) . "\n"
1148 . "music decoders available: " . (join ", ", DC::MixMusic::decoders);
1113 1149
1114 $AUDIO_INFO->set_text ($text); 1150 $AUDIO_INFO->set_text ($text);
1115} 1151}
1116 1152
1117sub audio_setup { 1153sub audio_setup {
2563 2599
2564 $MODE_SLIDER->set_range ([$CFG->{sdl_mode}, 0, scalar @SDL_MODES, 1, 1]); 2600 $MODE_SLIDER->set_range ([$CFG->{sdl_mode}, 0, scalar @SDL_MODES, 1, 1]);
2565 $MODE_SLIDER->emit (changed => $CFG->{sdl_mode}); 2601 $MODE_SLIDER->emit (changed => $CFG->{sdl_mode});
2566 2602
2567 $CAVEAT_LABEL->set_text ("None :)"); 2603 $CAVEAT_LABEL->set_text ("None :)");
2604 $CAVEAT_LABEL->set_text ("Apple/NVIDIA Texture bug (slow)")
2605 if $DC::OpenGL::APPLE_NVIDIA_BUG;
2568 $CAVEAT_LABEL->set_text ("Software Rendering (very slow)") 2606 $CAVEAT_LABEL->set_text ("Software Rendering (very slow)")
2569 unless DC::SDL_GL_GetAttribute DC::SDL_GL_ACCELERATED_VISUAL; 2607 unless DC::SDL_GL_GetAttribute DC::SDL_GL_ACCELERATED_VISUAL;
2570 2608
2571 $STATUSBOX->add ("Set video mode $WIDTH×$HEIGHT", timeout => 10, fg => [1, 1, 1, 0.5]); 2609 $STATUSBOX->add ("Set video mode $WIDTH×$HEIGHT", timeout => 10, fg => [1, 1, 1, 0.5]);
2572} 2610}
2705 fullscreen => 1, 2743 fullscreen => 1,
2706 fast => 0, 2744 fast => 0,
2707 force_opengl11 => undef, 2745 force_opengl11 => undef,
2708 disable_alpha => 0, 2746 disable_alpha => 0,
2709 smooth_movement => 1, 2747 smooth_movement => 1,
2748 smooth_transitions => 1,
2710 texture_compression => 1, 2749 texture_compression => 1,
2711 map_scale => 1, 2750 map_scale => 1,
2712 fow_enable => 1, 2751 fow_enable => 1,
2713 fow_intensity => 0, 2752 fow_intensity => 0,
2753 fow_texture => 0,
2714 map_smoothing => 1, 2754 map_smoothing => 1,
2715 gui_fontsize => 1, 2755 gui_fontsize => 1,
2716 log_fontsize => 0.7, 2756 log_fontsize => 0.7,
2717 gauge_fontsize => 1, 2757 gauge_fontsize => 1,
2718 gauge_size => 0.35, 2758 gauge_size => 0.35,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines