Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-08-03 17:58:10 +0000
committerStijn Buys <ingar@osirion.org>2008-08-03 17:58:10 +0000
commite685db34cb94e4bef564da4afdaa7a18b1819c09 (patch)
treea75184c1bae3ac5386ac5dafd36fc21211d88d6b /src/client/view.cc
parent217b4453fd284a29c422ebd1cef30a9c2c3de639 (diff)
documentation, extra sound warnings, network bytes/sec
Diffstat (limited to 'src/client/view.cc')
-rw-r--r--src/client/view.cc47
1 files changed, 32 insertions, 15 deletions
diff --git a/src/client/view.cc b/src/client/view.cc
index f72a149..391da35 100644
--- a/src/client/view.cc
+++ b/src/client/view.cc
@@ -38,10 +38,15 @@ core::Cvar *ui_pointerhovercolor =0;
namespace view
{
-const size_t fps_counter_size = 25; // fps is the average of 20 frames
+const size_t fps_counter_size = 32; // fps is the average of 32 frames
float fps_counter_time[fps_counter_size];
size_t fps_counter_index = 0;
+const size_t net_counter_size = 128;
+float net_counter_time[net_counter_size];
+size_t net_counter_traffic[net_counter_size];
+size_t net_counter_index;
+
void init()
{
draw_stats = core::Cvar::get("draw_stats", "0", core::Cvar::Archive);
@@ -63,6 +68,9 @@ void init()
for (size_t i =0; i < fps_counter_size; i++)
fps_counter_time[i] = 0.0f;
+
+ for (size_t i = 0; i < net_counter_size; i++)
+ net_counter_traffic[i] = 0;
}
void shutdown()
@@ -99,18 +107,12 @@ void draw_status()
std::stringstream status;
- int minutes = (int) floorf(core::application()->time() / 60.0f);
- int seconds = (int) floorf(core::application()->time() - (float) minutes* 60.0f);
-
- status << "^Ntime ^B" << std::setfill(' ') << std::setw(3) << minutes << ":" << std::setfill('0') << std::setw(2) << seconds;
- Text::draw(video::width-Text::fontwidth()*11-4, 4, status);
-
if (core::game()) {
int minutes = (int) floorf(core::game()->clientframetime() / 60.0f);
int seconds = (int) floorf( core::game()->clientframetime() - (float) minutes* 60.0f);
- status << "^Ngame ^B" << std::setfill(' ') << std::setw(3) << minutes << ":" << std::setfill('0') << std::setw(2) << seconds;
- Text::draw(video::width-Text::fontwidth()*11-4, Text::fontheight()+ 4, status);
+ status << "^Ntime ^B" << std::setfill(' ') << std::setw(3) << minutes << ":" << std::setfill('0') << std::setw(2) << seconds;
+ Text::draw(video::width-Text::fontwidth()*12-4, Text::fontheight()+ 4, status);
}
// print stats if desired
@@ -129,15 +131,30 @@ void draw_status()
}
std::stringstream stats;
- stats << "^Nfps ^B" << std::setw(6) << fps << "\n";
+ stats << "^Nfps ^B" << std::setw(6) << fps << "\n";
+
if (core::application()->connected()) {
- stats << "^Ntris ^B" << std::setw(5) << render::Stats::tris << "\n";
- stats << "^Nquads ^B" << std::setw(5) << render::Stats::quads << "\n";
+ stats << "^Ntris ^B" << std::setw(5) << render::Stats::tris << "\n";
+ stats << "^Nquads ^B" << std::setw(5) << render::Stats::quads << "\n";
+
+ if (core::Stats::network_bytes_sent + core::Stats::network_bytes_received) {
+ net_counter_traffic[net_counter_index] = core::Stats::network_bytes_sent + core::Stats::network_bytes_received;
+ net_counter_time[net_counter_index] = core::application()->time();
+ size_t index_max = net_counter_index;
+
+ net_counter_index = (net_counter_index + 1) % net_counter_size;
+ size_t index_min = net_counter_index;
+
+ float d = net_counter_time[index_max] - net_counter_time[index_min];
+ if (d > 0) {
+ float traffic = net_counter_traffic[index_max] - net_counter_traffic[index_min];
+
+ stats << "^Nnet ^B" << std::setw(6) << roundf( (float) traffic / d ) << "\n";
+ }
+ }
}
- stats << "^Ntx ^B"<< std::setw(5) << (core::Stats::network_bytes_sent >> 10) << "\n";
- stats << "^Nrx ^B"<< std::setw(5) << (core::Stats::network_bytes_received >> 10) << "\n";
- Text::draw(video::width-Text::fontwidth()*11-4, 4 + Text::fontheight()*2, stats);
+ Text::draw(video::width-Text::fontwidth()*12-4, 4 + Text::fontheight()*2, stats);
}
// draw a basic HUD