Skip to content

Commit

Permalink
Generate debug HUD text with ostringstream instead of snprintf.
Browse files Browse the repository at this point in the history
This should fix #730.
  • Loading branch information
kahrl committed May 31, 2013
1 parent 6b2c46c commit 7721948
Showing 1 changed file with 24 additions and 26 deletions.
50 changes: 24 additions & 26 deletions src/game.cpp
Expand Up @@ -66,6 +66,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "sound_openal.h"
#endif
#include "event_manager.h"
#include <iomanip>
#include <list>
#include "util/directiontables.h"

Expand Down Expand Up @@ -2961,21 +2962,20 @@ void the_game(
static float endscenetime_avg = 0;
endscenetime_avg = endscenetime_avg * 0.95 + (float)endscenetime*0.05;*/

char temptext[300];
snprintf(temptext, 300, "%s ("
"R: range_all=%i"
")"
" drawtime=%.0f, dtime_jitter = % .1f %%"
", v_range = %.1f, RTT = %.3f",
program_name_and_version,
draw_control.range_all,
drawtime_avg,
dtime_jitter1_max_fraction * 100.0,
draw_control.wanted_range,
client.getRTT()
);

guitext->setText(narrow_to_wide(temptext).c_str());
std::ostringstream os(std::ios_base::binary);
os<<std::fixed
<<program_name_and_version
<<" (R: range_all="<<draw_control.range_all<<")"
<<std::setprecision(0)
<<" drawtime = "<<drawtime_avg
<<std::setprecision(1)
<<", dtime_jitter = "
<<(dtime_jitter1_max_fraction * 100.0)<<" %"
<<std::setprecision(1)
<<", v_range = "<<draw_control.wanted_range
<<std::setprecision(3)
<<", RTT = "<<client.getRTT();
guitext->setText(narrow_to_wide(os.str()).c_str());
guitext->setVisible(true);
}
else if(show_hud || show_chat)
Expand All @@ -2990,17 +2990,15 @@ void the_game(

if(show_debug)
{
char temptext[300];
snprintf(temptext, 300,
"(% .1f, % .1f, % .1f)"
" (yaw = %.1f) (seed = %llu)",
player_position.X/BS,
player_position.Y/BS,
player_position.Z/BS,
wrapDegrees_0_360(camera_yaw),
(unsigned long long)client.getMapSeed());

guitext2->setText(narrow_to_wide(temptext).c_str());
std::ostringstream os(std::ios_base::binary);
os<<std::setprecision(1)<<std::fixed
<<"(" <<(player_position.X/BS)
<<", "<<(player_position.Y/BS)
<<", "<<(player_position.Z/BS)
<<") (yaw="<<(wrapDegrees_0_360(camera_yaw))
<<") (seed = "<<((unsigned long long)client.getMapSeed())
<<")";
guitext2->setText(narrow_to_wide(os.str()).c_str());
guitext2->setVisible(true);
}
else
Expand Down

0 comments on commit 7721948

Please sign in to comment.