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.75 by root, Tue Apr 11 21:24:10 2006 UTC vs.
Revision 1.78 by root, Wed Apr 12 00:26:50 2006 UTC

70 -resizeable => 0; 70 -resizeable => 0;
71 71
72 $SDL_EV = new SDL::Event; 72 $SDL_EV = new SDL::Event;
73 $SDL_EV->set_unicode (1); 73 $SDL_EV->set_unicode (1);
74 74
75 $SDL_TIMER = add Glib::Timeout 1000/50, sub { 75 $SDL_TIMER = add Glib::Timeout 1000 / $MAX_FPS, sub {
76 ($SDL_CB{$SDL_EV->type} || sub { warn "unhandled event ", $SDL_EV->type })->() 76 ($SDL_CB{$SDL_EV->type} || sub { warn "unhandled event ", $SDL_EV->type })->()
77 while $SDL_EV->poll; 77 while $SDL_EV->poll;
78 78
79 1 79 1
80 }; 80 };
81 81
82 $last_refresh = SDL::GetTicks; 82 $last_refresh = SDL::GetTicks;
83 83
84 CFClient::gl_init; 84 CFClient::gl_init;
85 85
86 $FONTSIZE = int $HEIGHT / 50; 86 $FONTSIZE = int $HEIGHT / 40;
87 87
88 ############################################################################# 88 #############################################################################
89 89
90 glClearColor 0.45, 0.45, 0.45, 1; 90 glClearColor 0.45, 0.45, 0.45, 1;
91 91
95 glDisable GL_DEPTH_TEST; 95 glDisable GL_DEPTH_TEST;
96 glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; 96 glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA;
97 97
98 ############################################################################# 98 #############################################################################
99 99
100 $DEBUG_STATUS = new CFClient::UI::Label; 100 $DEBUG_STATUS = new CFClient::UI::Label padding => 0;
101 $CFClient::UI::TOPLEVEL->add ($DEBUG_STATUS); 101 $CFClient::UI::TOPLEVEL->add ($DEBUG_STATUS);
102 102
103 $STATUS_LINE = new CFClient::UI::Label 103 $STATUS_LINE = new CFClient::UI::Label
104 padding => 0,
104 y => $HEIGHT * 59 / 60 - $FONTSIZE; 105 y => $HEIGHT * 49 / 50 - $FONTSIZE;
105 $CFClient::UI::TOPLEVEL->add ($STATUS_LINE); 106 $CFClient::UI::TOPLEVEL->add ($STATUS_LINE);
106 107
107 $ALT_ENTER_MESSAGE = new CFClient::UI::Label 108 $ALT_ENTER_MESSAGE = new CFClient::UI::Label
109 padding => 0,
108 y => $HEIGHT * 59 / 60, 110 y => $HEIGHT * 49 / 50,
109 height => $HEIGHT / 60, 111 height => $HEIGHT / 50,
110 text => "Use <b>Alt-Enter</b> to toggle fullscreen mode"; 112 text => "Use <b>Alt-Enter</b> to toggle fullscreen mode";
111 $CFClient::UI::TOPLEVEL->add ($ALT_ENTER_MESSAGE); 113 $CFClient::UI::TOPLEVEL->add ($ALT_ENTER_MESSAGE);
112 114
113 $MAPWIDGET = new CFClient::UI::MapWidget; 115 $MAPWIDGET = new CFClient::UI::MapWidget;
114 $CFClient::UI::TOPLEVEL->add ($MAPWIDGET); 116 $CFClient::UI::TOPLEVEL->add ($MAPWIDGET);
124 126
125sub config_dialog { 127sub config_dialog {
126 my $dialog = new CFClient::UI::FancyFrame x => 300, y => 100, 128 my $dialog = new CFClient::UI::FancyFrame x => 300, y => 100,
127 child => (my $vbox = new CFClient::UI::VBox); 129 child => (my $vbox = new CFClient::UI::VBox);
128 $vbox->add (new CFClient::UI::Label align => 0, text => "Setup"); 130 $vbox->add (new CFClient::UI::Label align => 0, text => "Setup");
129 $vbox->add (my $table = new CFClient::UI::Table); 131 $vbox->add (my $table = new CFClient::UI::Table expand => 1, col_expand => [0, 1]);
130 132
131 $table->add (0, 0, new CFClient::UI::Label align => 1, text => "Video Mode"); 133 $table->add (0, 0, new CFClient::UI::Label align => 1, text => "Video Mode");
132 $table->add (1, 0, my $hbox = new CFClient::UI::HBox); 134 $table->add (1, 0, my $hbox = new CFClient::UI::HBox);
133 135
134 $hbox->add (my $mode_slider = new CFClient::UI::Slider req_w => 100, range => [$CFG->{sdl_mode}, 0, scalar @SDL_MODES, 1]); 136 $hbox->add (my $mode_slider = new CFClient::UI::Slider req_w => 100, range => [$CFG->{sdl_mode}, 0, scalar @SDL_MODES, 1]);
135 $hbox->add (my $mode_label = new CFClient::UI::Label); 137 $hbox->add (my $mode_label = new CFClient::UI::Label height => $FONTSIZE * 0.8);
136 138
137 $mode_slider->connect (changed => sub { 139 $mode_slider->connect (changed => sub {
138 my (undef, $value) = @_; 140 my (undef, $value) = @_;
139 141
140 $CFG->{sdl_mode} = $value = int $value + 0.5; 142 $CFG->{sdl_mode} = $value = int $value + 0.5;
155 $table->add (1, 4, my $pass = new CFClient::UI::Entry text => $CFG->{password}, hidden => 1); 157 $table->add (1, 4, my $pass = new CFClient::UI::Entry text => $CFG->{password}, hidden => 1);
156 158
157 $table->add (0, 5, new CFClient::UI::Label align => 1, text => "Map Size"); 159 $table->add (0, 5, new CFClient::UI::Label align => 1, text => "Map Size");
158 $table->add (1, 5, my $mapsize_slider = new CFClient::UI::Slider req_w => 100, range => [$CFG->{mapsize}, 10, 100 + 1, 1]); 160 $table->add (1, 5, my $mapsize_slider = new CFClient::UI::Slider req_w => 100, range => [$CFG->{mapsize}, 10, 100 + 1, 1]);
159 161
162 $vbox->add (my $hbox = new CFClient::UI::HBox);
163 $hbox->add (new CFClient::UI::Button expand => 1, align => 0, text => "Save", connect_activate => sub {
164 warn "save\n";
165 });
166 $hbox->add (new CFClient::UI::Button expand => 1, align => 0, text => "Login", connect_activate => sub {
167 warn "login\n";
168 });
169 $hbox->add (new CFClient::UI::Button expand => 1, align => 0, text => "Apply", connect_activate => sub {
170 warn "apply\n";
171 });
172
160 $CFClient::UI::TOPLEVEL->add ($dialog); 173 $CFClient::UI::TOPLEVEL->add ($dialog);
161} 174}
162 175
163sub start_game { 176sub start_game {
164 $WIDTH = $CFG->{width}; 177 $WIDTH = $CFG->{width};
228 my $interval = ($NOW - $last_refresh) * 0.001; 241 my $interval = ($NOW - $last_refresh) * 0.001;
229 $last_refresh = $NOW; 242 $last_refresh = $NOW;
230 243
231 if ($interval) { 244 if ($interval) {
232 $FPS ||= 1 / $interval; 245 $FPS ||= 1 / $interval;
233 $FPS = $FPS * 0.96 + (1 / $interval) * 0.04; 246 $FPS = $FPS * 0.9 + (1 / $interval) * 0.1;
234 debug sprintf "%5.02f", $FPS; 247 debug sprintf "%5.02f", $FPS;
235 } 248 }
236 249
237 force_refresh; 250 force_refresh;
238 $_->animate ($interval) for grep $_, values %ANIMATE; 251 $_->animate ($interval) for grep $_, values %ANIMATE;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines