You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(25) |
Jul
(288) |
Aug
(119) |
Sep
(31) |
Oct
(59) |
Nov
(458) |
Dec
(359) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(268) |
Feb
(26) |
Mar
(36) |
Apr
(48) |
May
(119) |
Jun
(37) |
Jul
(173) |
Aug
(429) |
Sep
(137) |
Oct
(156) |
Nov
(59) |
Dec
(45) |
| 2011 |
Jan
(398) |
Feb
(257) |
Mar
(49) |
Apr
(5) |
May
(34) |
Jun
(11) |
Jul
(38) |
Aug
(12) |
Sep
(1) |
Oct
(49) |
Nov
(5) |
Dec
(10) |
| 2012 |
Jan
(21) |
Feb
(32) |
Mar
(20) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(173) |
Aug
|
Sep
(25) |
Oct
(6) |
Nov
(44) |
Dec
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:33
|
Module: performous Branch: opengl2 Commit: 2ade7efa316da6ff7dca5c7fa94a8406ebdb9596 Author: Johnny Oskarsson <js...@us...> Date: Thu Oct 28 22:43:30 2010 +0200 Forgot to add the modified files. Hopyfully somewhat more merged with master now. --- game/3dobject.cc | 108 +++++++++++++++++++++++++++++++++++--------------- game/3dobject.hh | 28 +++++++------ game/glutil.hh | 37 +++++++++++++++++ game/guitargraph.cc | 12 +++-- game/notegraph.cc | 60 +++++++++++++-------------- game/surface.hh | 40 ++++++++++++++++--- game/video_driver.cc | 5 ++- 7 files changed, 203 insertions(+), 87 deletions(-) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:30
|
Module: performous Branch: opengl2 Commit: 2cb68f00a914a180b6d1c2cce4e36cc4f6f27325 Author: Johnny Oskarsson <js...@us...> Date: Thu Oct 28 22:30:38 2010 +0200 Merge branch 'master' into opengl2 --- |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:28
|
Module: performous Branch: opengl2 Commit: 34be52043e50ef8696e417373843095550f6beb1 Author: Tapio Vierros <tap...@gm...> Date: Tue Oct 26 20:03:10 2010 +0300 Delete win32/setup.nsi It is very out-dated, hard to maintain, hacky and tied to certain environment. Use cross-from-debian/makepackage.py for a handy/robust generator. (Though it might need tiny adjustments for use on Windows.) --- win32/setup.nsi | 488 ------------------------------------------------------- 1 files changed, 0 insertions(+), 488 deletions(-) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:23
|
Module: performous
Branch: opengl2
Commit: f4c523796ae391e8078e8e8e145d20c62c3ae318
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 26 20:01:14 2010 +0300
Windows installer improvements/changes.
* Create APPDATA/songs
* Install link to it
* Install link to ConfigureSongDirectory.bat
* Don't append -win32 to installer name.
---
win32/cross-from-debian/makepackage.py | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/win32/cross-from-debian/makepackage.py b/win32/cross-from-debian/makepackage.py
index 4ff134a..ead4213 100755
--- a/win32/cross-from-debian/makepackage.py
+++ b/win32/cross-from-debian/makepackage.py
@@ -51,7 +51,7 @@ makensis.stdin.write(r'''!include "MUI2.nsh"
!define VERSION "%s"
Name "Performous ${VERSION}"
-OutFile "dist\Performous-${VERSION}-win32.exe"
+OutFile "dist\Performous-${VERSION}.exe"
SetCompressor /SOLID lzma
@@ -85,9 +85,12 @@ for root, dirs, files in os.walk('.'):
makensis.stdin.write(r''' WriteRegStr HKLM "Software\Performous" "" "$INSTDIR"
WriteUninstaller "$INSTDIR\uninst.exe"
+ CreateDirectory "$APPDATA\performous\songs"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Performous"
CreateShortcut "$SMPROGRAMS\Performous\Performous.lnk" "$INSTDIR\bin\performous.exe"
+ CreateShortCut "$SMPROGRAMS\Performous\ConfigureSongDirectory.lnk" "$INSTDIR\bin\ConfigureSongDirectory.bat"
+ CreateShortCut "$SMPROGRAMS\Performous\Songs.lnk" "$APPDATA\performous\songs"
CreateShortcut "$SMPROGRAMS\Performous\Uninstall.lnk" "$INSTDIR\uninst.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous" "DisplayName" "Performous"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous" "UninstallString" "$\"$INSTDIR\uninst.exe$\""
@@ -109,6 +112,8 @@ makensis.stdin.write(r''' Delete "$INSTDIR\uninst.exe"
RmDir "$INSTDIR"
SetShellVarContext all
Delete "$SMPROGRAMS\Performous\Performous.lnk"
+ Delete "$SMPROGRAMS\Performous\ConfigureSongDirectory.lnk"
+ Delete "$SMPROGRAMS\Performous\Songs.lnk"
Delete "$SMPROGRAMS\Performous\Uninstall.lnk"
RmDir "$SMPROGRAMS\Performous"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Performous"
@@ -121,4 +126,4 @@ if makensis.wait() != 0:
print >>sys.stderr, 'Installer compilation failed.'
sys.exit(1)
else:
- print '\ndist/Performous-%s-win32.exe is ready.' % version
+ print '\ndist/Performous-%s.exe is ready.' % version
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:21
|
Module: performous
Branch: opengl2
Commit: de62cca5f9d2553904d0df164990bdf47fe77e8a
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 26 19:20:40 2010 +0300
Use AudioDevices struct in Audio::Impl rather than direct PA calls.
---
game/audio.cc | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/game/audio.cc b/game/audio.cc
index 0ef09f6..3484c8c 100644
--- a/game/audio.cc
+++ b/game/audio.cc
@@ -442,7 +442,7 @@ struct Audio::Impl {
else throw std::runtime_error("Unknown device parameter " + key);
if (!iss.eof()) throw std::runtime_error("Syntax error parsing device parameter " + key);
}
- int count = Pa_GetDeviceCount();
+ int count = portaudio::AudioDevices::count();
int dev = -1;
// Handle empty device
if (params.dev.empty()) dev = (params.out == 0 ? Pa_GetDefaultInputDevice() : Pa_GetDefaultOutputDevice());
@@ -456,19 +456,20 @@ struct Audio::Impl {
<< ", in: " << params.mics.size() << ", out: " << params.out << std::endl;
bool skip_partial = false;
bool found = false;
+ portaudio::AudioDevices ad;
// Try exact match first, then partial
for (int match_partial = 0; match_partial < 2 && !skip_partial; ++match_partial) {
// Loop through the devices and try everything that matches the name
for (int i = -1; i < count && (dev < 0 || i == -1); ++i) {
if (dev >= 0 && i == -1) i = dev;
else if (i == -1) continue;
- PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
- if (!info) continue;
- if (info->maxInputChannels < int(params.mics.size())) continue;
- if (info->maxOutputChannels < params.out) continue;
+ portaudio::DeviceInfo& info = ad.devices[i];
+ if (info.name.empty()) continue;
+ if (info.in < int(params.mics.size())) continue;
+ if (info.out < params.out) continue;
if (dev < 0) { // Try matching by name
- if (!match_partial && info->name != params.dev) continue;
- if (match_partial && std::string(info->name).find(params.dev) == std::string::npos) continue;
+ if (!match_partial && info.name != params.dev) continue;
+ if (match_partial && info.name.find(params.dev) == std::string::npos) continue;
}
// Match found if we got here
int assigned_mics = 0;
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:19
|
Module: performous
Branch: opengl2
Commit: 1251ab7ba963692a859e6529005aa37fbdb01489
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 26 19:20:15 2010 +0300
Convert PortAudio device name to UTF-8.
---
game/libda/portaudio.hpp | 9 ++++++---
game/unicode.cc | 8 +++++++-
game/unicode.hh | 3 ++-
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/game/libda/portaudio.hpp b/game/libda/portaudio.hpp
index 6172e69..99d54b3 100644
--- a/game/libda/portaudio.hpp
+++ b/game/libda/portaudio.hpp
@@ -10,6 +10,8 @@
#include <stdexcept>
#include <stdint.h>
+#include "../unicode.hh"
+
#define PORTAUDIO_CHECKED(func, args) portaudio::internal::check(func args, #func)
namespace portaudio {
@@ -32,7 +34,7 @@ namespace portaudio {
}
struct DeviceInfo {
- DeviceInfo(std::string n = "", unsigned i = 0, unsigned o = 0): name(n), in(i), out(o) {}
+ DeviceInfo(std::string n = "", int i = 0, int o = 0): name(n), in(i), out(o) {}
std::string desc() {
std::ostringstream oss;
oss << name << " (";
@@ -42,18 +44,19 @@ namespace portaudio {
return oss.str() + ")";
}
std::string name;
- unsigned int in, out;
+ int in, out;
};
typedef std::vector<DeviceInfo> DeviceInfos;
struct AudioDevices {
+ static int count() { return Pa_GetDeviceCount(); }
/// Constructor gets the PA devices into a vector
AudioDevices() {
for (unsigned i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
if (!info) devices.push_back(DeviceInfo());
- else devices.push_back(DeviceInfo(info->name, info->maxInputChannels, info->maxOutputChannels));
+ else devices.push_back(DeviceInfo(convertToUTF8(info->name), info->maxInputChannels, info->maxOutputChannels));
}
}
/// Get a printable dump of the devices
diff --git a/game/unicode.cc b/game/unicode.cc
index c2129a5..31d2cf2 100644
--- a/game/unicode.cc
+++ b/game/unicode.cc
@@ -23,7 +23,7 @@ namespace {
}
}
-void convertToUTF8( std::stringstream &_stream, std::string _filename ) {
+void convertToUTF8(std::stringstream &_stream, std::string _filename) {
try {
convert(_stream.str(), "UTF-8", "UTF-8"); // Test if input is UTF-8
} catch(...) {
@@ -38,6 +38,12 @@ void convertToUTF8( std::stringstream &_stream, std::string _filename ) {
}
}
+std::string convertToUTF8(std::string const& str) {
+ std::stringstream ss(str);
+ convertToUTF8(ss, "");
+ return ss.str();
+}
+
std::string unicodeCollate(std::string const& str) {
Glib::ustring ustr = str, ustr2;
if (ustr.substr(0, 4) == "The ") ustr = ustr.substr(4) + "the";
diff --git a/game/unicode.hh b/game/unicode.hh
index a0945ac..95f3784 100644
--- a/game/unicode.hh
+++ b/game/unicode.hh
@@ -3,5 +3,6 @@
#include <iostream>
#include <string>
-void convertToUTF8( std::stringstream &_stream, std::string _filename = std::string() );
+void convertToUTF8(std::stringstream &_stream, std::string _filename = std::string());
+std::string convertToUTF8(std::string const& str);
std::string unicodeCollate(std::string const& str);
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:16
|
Module: performous
Branch: opengl2
Commit: fe36c33058dc282c04cd67ee2b0ae767bbb68669
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 26 18:58:46 2010 +0300
Implement convertToUTF8 with glib instead of glibmm.
---
game/unicode.cc | 31 ++++++++++++++++++++++---------
1 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/game/unicode.cc b/game/unicode.cc
index b2a8852..c2129a5 100644
--- a/game/unicode.cc
+++ b/game/unicode.cc
@@ -1,28 +1,41 @@
#include "unicode.hh"
+#include <boost/scoped_ptr.hpp>
#include <glibmm/ustring.h>
-#include <glibmm/convert.h>
+#include <glib/gconvert.h>
#include <sstream>
+#include <stdexcept>
+
+namespace {
+ // Convert a string using Glib, throw exception on error.
+ // This is in fact (slightly modified) Glib::convert from glibmm.
+ std::string convert(const std::string& str, const std::string& to_codeset, const std::string& from_codeset) {
+ gsize bytes_written = 0;
+ GError* gerror = 0;
+
+ char *const buf = g_convert(
+ str.data(), str.size(), to_codeset.c_str(), from_codeset.c_str(),
+ 0, &bytes_written, &gerror);
+
+ if (gerror) throw std::runtime_error("Conversion error"); // Throw on error
+
+ return std::string(boost::scoped_ptr<char>(buf).get(), bytes_written);
+ }
+}
-// FIXME: Glib::convert may throw a Glib::ConvertError that doesn't
-// get caught in Windows builds with dynamic glibmm.
-#ifdef _WIN32
-void convertToUTF8( std::stringstream &, std::string ) {
-#else
void convertToUTF8( std::stringstream &_stream, std::string _filename ) {
try {
- Glib::convert(_stream.str(), "UTF-8", "UTF-8"); // Test if input is UTF-8
+ convert(_stream.str(), "UTF-8", "UTF-8"); // Test if input is UTF-8
} catch(...) {
if (!_filename.empty()) std::clog << "unicode/warning: " << _filename << " is not UTF-8.\n Assuming CP1252 for now. Use recode CP1252..UTF-8 */*.txt to convert your files." << std::endl;
try {
- _stream.str(Glib::convert(_stream.str(), "UTF-8", "CP1252")); // Convert from Microsoft CP1252
+ _stream.str(convert(_stream.str(), "UTF-8", "CP1252")); // Convert from Microsoft CP1252
} catch (...) {
// Filter out anything but ASCII
std::string tmp;
for (char ch; _stream.get(ch);) tmp += (ch >= 0x20 && ch < 0x7F) ? ch : '?';
}
}
-#endif
}
std::string unicodeCollate(std::string const& str) {
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:14
|
Module: performous
Branch: opengl2
Commit: 94a4a40ff684814c875ef7cc1ee0b6937e48903e
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 26 18:07:58 2010 +0300
Use Cachemap for screen_intro menu option text objects.
---
game/cachemap.hh | 4 ++++
game/screen_intro.cc | 13 ++++++++++---
game/screen_intro.hh | 2 ++
game/theme.cc | 2 +-
game/theme.hh | 7 ++++---
5 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/game/cachemap.hh b/game/cachemap.hh
index 7a59dc0..6e42b3a 100644
--- a/game/cachemap.hh
+++ b/game/cachemap.hh
@@ -28,6 +28,10 @@ template <typename Key, typename Value> class Cachemap {
if (it == m_map.end()) it = insert(key, new Value(key)); else access(key);
return *it->second;
}
+ /// does it have a certain key
+ bool contains(Key const& key) const {
+ return m_map.find(key) != m_map.end();
+ }
/// clears history and cachemap
void clear() {
m_history.clear();
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index 84e9a7a..3d624a9 100644
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -97,9 +97,11 @@ void ScreenIntro::draw_menu_options() {
// Regular option (not selected)
} else {
- theme->option.dimensions.left(x).center(start_y + ii*0.08);
- theme->option.draw(opt.getName(), submenuanim * (opt.isActive() ? 1.0f : 0.5f));
- wcounter = std::max(wcounter, theme->option.w() + 2 * sel_margin); // Calculate the widest entry
+ std::string title = opt.getName();
+ SvgTxtTheme& txt = getTextObject(title);
+ txt.dimensions.left(x).center(start_y + ii*0.08);
+ txt.draw(title, submenuanim * (opt.isActive() ? 1.0f : 0.5f));
+ wcounter = std::max(wcounter, txt.w() + 2 * sel_margin); // Calculate the widest entry
}
}
m_menu.dimensions.stretch(wcounter, 1);
@@ -125,6 +127,11 @@ void ScreenIntro::draw() {
draw_menu_options();
}
+SvgTxtTheme& ScreenIntro::getTextObject(std::string const& txt) {
+ if (theme->options.contains(txt)) return theme->options[txt];
+ return *theme->options.insert(txt, new SvgTxtTheme(getThemePath("mainmenu_option.svg"), config["graphic/text_lod"].f()))->second;
+}
+
void ScreenIntro::populateMenu() {
m_menu.clear();
boost::shared_ptr<Surface> config_bg(new Surface(getThemePath("intro_configure.svg")));
diff --git a/game/screen_intro.hh b/game/screen_intro.hh
index 917e602..2f1e572 100644
--- a/game/screen_intro.hh
+++ b/game/screen_intro.hh
@@ -7,6 +7,7 @@
class Audio;
class ThemeIntro;
+class SvgTxtTheme;
class MenuOption;
/// intro screen
@@ -24,6 +25,7 @@ class ScreenIntro : public Screen {
private:
void populateMenu();
+ SvgTxtTheme& getTextObject(std::string const& txt);
Audio& m_audio;
boost::scoped_ptr<ThemeIntro> theme;
diff --git a/game/theme.cc b/game/theme.cc
index b549d0d..ef02ae1 100644
--- a/game/theme.cc
+++ b/game/theme.cc
@@ -47,7 +47,7 @@ ThemeAudioDevices::ThemeAudioDevices():
ThemeIntro::ThemeIntro():
Theme(getThemePath("intro_bg.svg")),
back_h(getThemePath("mainmenu_back_highlight.svg")),
- option(getThemePath("mainmenu_option.svg"), config["graphic/text_lod"].f()),
+ options(30),
option_selected(getThemePath("mainmenu_option_selected.svg"), config["graphic/text_lod"].f()),
comment(getThemePath("mainmenu_comment.svg"), config["graphic/text_lod"].f()),
short_comment(getThemePath("mainmenu_short_comment.svg"), config["graphic/text_lod"].f()),
diff --git a/game/theme.hh b/game/theme.hh
index 35607f2..285b023 100644
--- a/game/theme.hh
+++ b/game/theme.hh
@@ -2,6 +2,7 @@
#include "opengl_text.hh"
#include "surface.hh"
+#include "cachemap.hh"
#include <boost/noncopyable.hpp>
#include <string>
@@ -77,9 +78,9 @@ public:
ThemeIntro();
/// back highlight for selected option
Surface back_h;
- /// menu option text
- SvgTxtTheme option;
- /// menu selected option text
+ /// menu option texts
+ Cachemap<std::string, SvgTxtTheme> options;
+ /// selected menu option text
SvgTxtTheme option_selected;
/// menu comment text
SvgTxtTheme comment;
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:11
|
Module: performous Branch: opengl2 Commit: 733404d37bcb21d4c0a8f5a7a472798c1f49f0cd Author: Miguel Sánchez de León Peque <msd...@gm...> Date: Mon Oct 25 14:24:50 2010 +0200 Spanish translation updated (100% for 0.6.0) --- lang/TRANSLATORS | 3 + lang/es.po | 239 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 126 insertions(+), 116 deletions(-) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:07
|
Module: performous Branch: opengl2 Commit: 4193c5a53392d5d6b11ad98a063c6956ca9ecbe7 Author: Lasse Karkkainen <tro...@tr...> Date: Sun Oct 24 23:03:11 2010 +0200 Post-release version bump --- CMakeLists.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ebb4cbe..dc1921d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ project(Performous CXX C) cmake_minimum_required(VERSION 2.6) cmake_policy(VERSION 2.6) -set(PROJECT_VERSION "0.6.0") +set(PROJECT_VERSION "0.6.0+") # Avoid source tree pollution if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:47:00
|
Module: performous Branch: opengl2 Commit: 75295d6bfb88173b633a9991480ac5e0f037300a Author: Lasse Karkkainen <tro...@tr...> Date: Sun Oct 24 21:33:30 2010 +0200 Bumping version to 0.6.0. --- CMakeLists.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 921d7d8..ebb4cbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ project(Performous CXX C) cmake_minimum_required(VERSION 2.6) cmake_policy(VERSION 2.6) -set(PROJECT_VERSION "0.5.1+") +set(PROJECT_VERSION "0.6.0") # Avoid source tree pollution if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:57
|
Module: performous Branch: opengl2 Commit: 50646b66f65efb68dceb649c28126fa7fc8571de Author: Lasse Karkkainen <tro...@tr...> Date: Sun Oct 24 21:29:16 2010 +0200 Merge branch 'master' of ssh://git.performous.org/gitroot/performous/performous Removing screenshot spammer. Conflicts: game/main.cc --- |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:55
|
Module: performous
Branch: opengl2
Commit: e2e810e51177d4600b00e5ca6eb08d794c06ac5e
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 21:34:45 2010 +0300
Screenshot spammer utility.
---
game/main.cc | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/game/main.cc b/game/main.cc
index 1ce92ff..d2f68f2 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -159,12 +159,24 @@ void mainLoop(std::string const& songlist) {
// Main loop
boost::xtime time = now();
unsigned frames = 0;
+ #if 0
+ // Screenshot spammer utility
+ boost::xtime shottimer = now();
while (!sm.isFinished()) {
+ const std::string shotmsg = "";
+ if (now() - shottimer > 2.0) {
+ g_take_screenshot = true;
+ shottimer = now();
+ }
+ #else
+ while (!sm.isFinished()) {
+ const std::string shotmsg = _("Screenshot taken!");
+ #endif
if( g_take_screenshot ) {
fs::path filename;
try {
window.screenshot();
- sm.flashMessage(_("Screenshot taken!"));
+ sm.flashMessage(shotmsg);
} catch (std::exception& e) {
std::cerr << "ERROR: " << e.what() << std::endl;
sm.flashMessage(_("Screenshot failed!"));
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:52
|
Module: performous
Branch: opengl2
Commit: 8af8a27f6ae958232cb2f81ae4a07d7b5a99ddb5
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 20:48:52 2010 +0300
Work-around for Windows glibmm problems.
---
game/unicode.cc | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/game/unicode.cc b/game/unicode.cc
index 7d404e8..b2a8852 100644
--- a/game/unicode.cc
+++ b/game/unicode.cc
@@ -4,6 +4,11 @@
#include <glibmm/convert.h>
#include <sstream>
+// FIXME: Glib::convert may throw a Glib::ConvertError that doesn't
+// get caught in Windows builds with dynamic glibmm.
+#ifdef _WIN32
+void convertToUTF8( std::stringstream &, std::string ) {
+#else
void convertToUTF8( std::stringstream &_stream, std::string _filename ) {
try {
Glib::convert(_stream.str(), "UTF-8", "UTF-8"); // Test if input is UTF-8
@@ -17,6 +22,7 @@ void convertToUTF8( std::stringstream &_stream, std::string _filename ) {
for (char ch; _stream.get(ch);) tmp += (ch >= 0x20 && ch < 0x7F) ? ch : '?';
}
}
+#endif
}
std::string unicodeCollate(std::string const& str) {
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:50
|
Module: performous
Branch: opengl2
Commit: cfef2bba36d8eb4626cc5adb3e185d26ecfc0d9f
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Oct 24 18:54:32 2010 +0200
Fixed score coloring
---
game/screen_sing.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index a50d0e8..6b8c35c 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -654,7 +654,7 @@ void ScoreWindow::draw() {
for (Database::cur_scores_t::const_iterator p = m_database.scores.begin(); p != m_database.scores.end(); ++p, ++i) {
int score = p->score;
- glutil::Color(p->color);
+ glutil::Color c(p->color);
double x = -0.12 + spacing * (0.5 + i - 0.5 * m_database.scores.size());
m_scoreBar.dimensions.middle(x).bottom(0.20);
m_scoreBar.draw(score / 10000.0);
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:47
|
Module: performous
Branch: opengl2
Commit: 9714183627f0a4adb4b12342cec769b8bd27bbf7
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Oct 24 18:46:04 2010 +0200
Profiler for main loop
---
game/main.cc | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/game/main.cc b/game/main.cc
index 1ce92ff..f8de5de 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -2,6 +2,7 @@
#include "fs.hh"
#include "screen.hh"
#include "joystick.hh"
+#include "profiler.hh"
#include "songs.hh"
#include "backgrounds.hh"
#include "database.hh"
@@ -160,6 +161,7 @@ void mainLoop(std::string const& songlist) {
boost::xtime time = now();
unsigned frames = 0;
while (!sm.isFinished()) {
+ Profiler prof("mainloop");
if( g_take_screenshot ) {
fs::path filename;
try {
@@ -172,13 +174,16 @@ void mainLoop(std::string const& songlist) {
g_take_screenshot = false;
}
sm.updateScreen(); // exit/enter, any exception is fatal error
+ prof("misc");
try {
// Draw
window.blank();
sm.getCurrentScreen()->draw();
sm.drawNotifications();
+ prof("draw");
// Display (and wait until next frame)
window.swap();
+ prof("swap");
if (config["graphic/fps"].b()) {
++frames;
if (now() - time > 1.0) {
@@ -191,9 +196,11 @@ void mainLoop(std::string const& songlist) {
time = now();
frames = 0;
}
+ prof("fpsctrl");
// Process events for the next frame
if (midiDrums) midiDrums->process();
checkEvents_SDL(sm);
+ prof("events");
} catch (std::runtime_error& e) {
std::cerr << "ERROR: " << e.what() << std::endl;
sm.flashMessage(std::string("ERROR: ") + e.what());
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:44
|
Module: performous
Branch: opengl2
Commit: 8ef8c73afe9de6d6b7aeb69bf566140f88d52e8f
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 19:16:09 2010 +0300
Tweak joinmenu delays.
---
game/guitargraph.cc | 2 +-
game/screen_sing.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index e45da6b..5ec2f93 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -326,7 +326,7 @@ void GuitarGraph::engine() {
break;
// If the songs hasn't yet started, we want key presses to bring join menu back (not pause menu)
- } else if (time < 0 && ev.type == input::Event::PRESS) {
+ } else if (time < -2 && ev.type == input::Event::PRESS) {
setupJoinMenu();
m_menu.open();
break;
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index c9a214b..a50d0e8 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -137,7 +137,7 @@ void ScreenSing::enter() {
m_menu.add(MenuOption(_("Quit"), _("Exit to song browser"), "Songs"));
m_menu.close();
// Startup delay for instruments is longer than for singing only
- double setup_delay = (m_instruments.empty() && m_dancers.empty() ? -1.0 : -3.0);
+ double setup_delay = (m_instruments.empty() && m_dancers.empty() ? -1.0 : -5.0);
sm->loading(_("Finalizing..."), 0.95);
m_audio.playMusic(m_song->music, false, 0.0, setup_delay);
m_engine.reset(new Engine(m_audio, m_song->getVocalTrack(m_selectedTrack), analyzers.begin(), analyzers.end(), m_database));
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:42
|
Module: performous
Branch: opengl2
Commit: c9b99dd56478ba79b3b26416aa67125ef52702bb
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Oct 24 17:19:52 2010 +0200
Proper handling of tracks with missing/broken music files.
---
game/audio.cc | 6 +++++-
game/ffmpeg.hh | 1 +
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/game/audio.cc b/game/audio.cc
index 111c6f7..0ef09f6 100644
--- a/game/audio.cc
+++ b/game/audio.cc
@@ -214,7 +214,11 @@ public:
bool prepare() {
bool ready = true;
for (Tracks::iterator it = tracks.begin(), itend = tracks.end(); it != itend; ++it) {
- if (!it->second->mpeg.audioQueue.prepare(m_pos)) ready = false;
+ FFmpeg& mpeg = it->second->mpeg;
+ if (mpeg.terminating()) continue; // Song loading failed or other error, won't ever get ready
+ if (mpeg.audioQueue.prepare(m_pos)) continue; // Buffering done
+ ready = false; // Need to wait for buffering
+ break;
}
return ready;
}
diff --git a/game/ffmpeg.hh b/game/ffmpeg.hh
index 0f0d7c8..a3b4388 100644
--- a/game/ffmpeg.hh
+++ b/game/ffmpeg.hh
@@ -211,6 +211,7 @@ class FFmpeg {
double duration() const;
/// return current position
double position() { return videoQueue.position(); /* FIXME: remove */ }
+ bool terminating() const { return m_quit; }
private:
class eof_error: public std::exception {};
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:39
|
Module: performous Branch: opengl2 Commit: eea7dc9da70636b17d9a2498dd75480cf9cb0f76 Author: Tapio Vierros <tap...@gm...> Date: Sun Oct 24 16:39:22 2010 +0300 Bump cross-compilation dependency library versions. --- win32/cross-from-debian/makedeps.sh | 64 ++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 24 deletions(-) diff --git a/win32/cross-from-debian/makedeps.sh b/win32/cross-from-debian/makedeps.sh index 253614f..b229876 100755 --- a/win32/cross-from-debian/makedeps.sh +++ b/win32/cross-from-debian/makedeps.sh @@ -151,7 +151,7 @@ if test ! -f "$PREFIX"/build-stamps/zlib; then fi # libpng -LIBPNG="libpng-1.4.2" +LIBPNG="libpng-1.4.4" if test ! -f "$PREFIX"/build-stamps/libpng; then download http://download.sourceforge.net/libpng/$LIBPNG.tar.gz tar zxvf $LIBPNG.tar.gz @@ -179,7 +179,7 @@ if test ! -f "$PREFIX"/build-stamps/libjpeg; then fi # Runtime (libintl) of GNU Gettext -GETTEXT="gettext-0.18" +GETTEXT="gettext-0.18.1.1" if test ! -f "$PREFIX"/build-stamps/gettext-runtime; then download http://ftp.gnu.org/gnu/gettext/$GETTEXT.tar.gz tar zxvf $GETTEXT.tar.gz @@ -301,7 +301,7 @@ if test ! -f "$PREFIX"/build-stamps/sdl; then fi # Freetype -FREETYPE="freetype-2.3.12" +FREETYPE="freetype-2.4.3" if test ! -f "$PREFIX"/build-stamps/freetype; then download http://download.sourceforge.net/freetype/$FREETYPE.tar.bz2 tar jxvf $FREETYPE.tar.bz2 @@ -315,9 +315,9 @@ if test ! -f "$PREFIX"/build-stamps/freetype; then fi # GLib -GLIB="glib-2.24.1" +GLIB="glib-2.26.0" if test ! -f "$PREFIX"/build-stamps/glib; then - download http://ftp.gnome.org/pub/GNOME/sources/glib/2.24/$GLIB.tar.bz2 + download http://ftp.gnome.org/pub/GNOME/sources/glib/2.26/$GLIB.tar.bz2 tar jxvf $GLIB.tar.bz2 cd $GLIB ./configure $COMMON_AUTOCONF_FLAGS @@ -350,7 +350,7 @@ if test ! -f "$PREFIX"/build-stamps/fontconfig; then fi # Pixman -PIXMAN="pixman-0.18.2" +PIXMAN="pixman-0.19.6" if test ! -f "$PREFIX"/build-stamps/pixman; then download http://cairographics.org/releases/$PIXMAN.tar.gz tar zxvf $PIXMAN.tar.gz @@ -380,7 +380,7 @@ fi # Pango # For some reason, the libraries are installed in an extremely uncharacteristic # layout for libtool. Luckily, we have all that we need to make it sane again. -PANGO="pango-1.28.1" +PANGO="pango-1.28.3" if test ! -f "$PREFIX"/build-stamps/pango; then download http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/$PANGO.tar.bz2 tar jxvf $PANGO.tar.bz2 @@ -402,9 +402,9 @@ fi # ATK # We don't really need to build the parts of GTK that use ATK, but GTK's # configure script won't be happy otherwise. -ATK="atk-1.30.0" +ATK="atk-1.32.0" if test ! -f "$PREFIX"/build-stamps/atk; then - download http://ftp.gnome.org/pub/GNOME/sources/atk/1.30/$ATK.tar.bz2 + download http://ftp.gnome.org/pub/GNOME/sources/atk/1.32/$ATK.tar.bz2 tar jxvf $ATK.tar.bz2 cd $ATK ./configure $COMMON_AUTOCONF_FLAGS --disable-glibtest @@ -415,21 +415,35 @@ if test ! -f "$PREFIX"/build-stamps/atk; then $RM_RF $ATK fi +# Gdk-pixbuf +# New versions of GTK require this separately +GDKPIXBUF="gdk-pixbuf-2.22.0" +if test ! -f "$PREFIX"/build-stamps/gdkpixbuf; then + download http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.22/$GDKPIXBUF.tar.bz2 + tar jxvf $GDKPIXBUF.tar.bz2 + cd $GDKPIXBUF + ./configure $COMMON_AUTOCONF_FLAGS --without-libtiff + make + wine-shwrap gdk-pixbuf/gdk-pixbuf-csource + wine-shwrap gdk-pixbuf/gdk-pixbuf-query-loaders + make install + cd .. + touch "$PREFIX"/build-stamps/gdkpixbuf + $RM_RF $ATK +fi + # GTK # Even though Performous only needs libgdk_pixbuf (and then only because # that's how librsvg likes to play ball), having the rest of GTK around # lets other packages build some handy test programs that can be run # under Wine to sanity-check the dependency build. The choice of included # pixbuf loaders is tailored to satisfy said programs. -GTK="gtk+-2.20.1" +GTK="gtk+-2.22.0" if test ! -f "$PREFIX"/build-stamps/gtk; then - download http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.20/$GTK.tar.bz2 + download http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.22/$GTK.tar.bz2 tar jxvf $GTK.tar.bz2 cd $GTK ./configure $COMMON_AUTOCONF_FLAGS --disable-glibtest --disable-modules --without-libtiff --with-included-loaders=png,jpeg,gif,xpm,xbm - make -C gdk-pixbuf - wine-shwrap gdk-pixbuf/gdk-pixbuf-csource - wine-shwrap gdk-pixbuf/gdk-pixbuf-query-loaders make -C gdk make -C gtk gtk-update-icon-cache.exe wine-shwrap gtk/gtk-update-icon-cache @@ -465,7 +479,7 @@ fi # It will try to install a gconf schema on the host unless we tell it not to, # despite the fact that it doesn't have the GNOME libraries it would need to # make any use of it... -LIBGSF="libgsf-1.14.18" +LIBGSF="libgsf-1.14.19" if test ! -f "$PREFIX"/build-stamps/libgsf; then download http://ftp.gnome.org/pub/GNOME/sources/libgsf/1.14/$LIBGSF.tar.bz2 tar jxvf $LIBGSF.tar.bz2 @@ -479,9 +493,9 @@ if test ! -f "$PREFIX"/build-stamps/libgsf; then fi # librsvg -LIBRSVG="librsvg-2.26.3" +LIBRSVG="librsvg-2.32.0" if test ! -f "$PREFIX"/build-stamps/librsvg; then - download http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.26/$LIBRSVG.tar.bz2 + download http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.32/$LIBRSVG.tar.bz2 tar jxvf $LIBRSVG.tar.bz2 cd $LIBRSVG ./configure $COMMON_AUTOCONF_FLAGS --disable-pixbuf-loader --disable-gtk-theme @@ -507,9 +521,9 @@ if test ! -f "$PREFIX"/build-stamps/libsigc++; then fi # libglibmm -GLIBMM="glibmm-2.24.2" +GLIBMM="glibmm-2.25.2" if test ! -f "$PREFIX"/build-stamps/libglibmm; then - download http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.24/$GLIBMM.tar.bz2 + download http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.25/$GLIBMM.tar.bz2 tar jxvf $GLIBMM.tar.bz2 cd $GLIBMM ./configure $COMMON_AUTOCONF_FLAGS @@ -521,9 +535,9 @@ if test ! -f "$PREFIX"/build-stamps/libglibmm; then fi # libxml++ -LIBXMLPP="libxml++-2.30.1" +LIBXMLPP="libxml++-2.32.0" if test ! -f "$PREFIX"/build-stamps/libxml++; then - download http://ftp.gnome.org/pub/GNOME/sources/libxml++/2.30/$LIBXMLPP.tar.bz2 + download http://ftp.gnome.org/pub/GNOME/sources/libxml++/2.32/$LIBXMLPP.tar.bz2 tar jxvf $LIBXMLPP.tar.bz2 cd $LIBXMLPP ./configure $COMMON_AUTOCONF_FLAGS @@ -537,7 +551,7 @@ fi # GLEW, which lacks a build system amenable to cross-compilation. # glewinfo and visualinfo are handy if you ever need something # similar to glxinfo under Windows. -GLEW="glew-1.5.4" +GLEW="glew-1.5.6" if test ! -f "$PREFIX"/build-stamps/glew; then download http://download.sourceforge.net/glew/$GLEW.tgz tar zxvf $GLEW.tgz @@ -560,7 +574,7 @@ if test ! -f "$PREFIX"/build-stamps/glew; then fi # liborc -LIBORC="orc-0.4.5" +LIBORC="orc-0.4.10" if test ! -f "$PREFIX"/build-stamps/liborc; then download http://code.entropywave.com/download/orc/$LIBORC.tar.gz tar zxvf $LIBORC.tar.gz @@ -574,12 +588,14 @@ if test ! -f "$PREFIX"/build-stamps/liborc; then fi # libschroedinger -LIBSCHROE="schroedinger-1.0.9" +LIBSCHROE="schroedinger-1.0.10" if test ! -f "$PREFIX"/build-stamps/libschroedinger; then download http://diracvideo.org/download/schroedinger/$LIBSCHROE.tar.gz tar zxvf $LIBSCHROE.tar.gz cd $LIBSCHROE ./configure $COMMON_AUTOCONF_FLAGS + # We don't want testsuite, so create a dummy Makefile + echo "all:\n\ninstall:" > testsuite/Makefile make make install cd .. |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:36
|
Module: performous
Branch: opengl2
Commit: 9f0802dc0fd60fdff884fd139ac50c8f06846d6c
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 16:30:36 2010 +0300
Quick hack to fix per-track volume control.
---
game/screen_sing.cc | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index a0c634a..c9a214b 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -189,18 +189,19 @@ bool ScreenSing::instrumentLayout(double time) {
m_help->draw();
}
// Set volume levels (averages of all instruments playing that track)
+ // FIXME: There should NOT be gettext calls here!
for( std::map<std::string,std::string>::iterator it = m_song->music.begin() ; it != m_song->music.end() ; ++it ) {
double level = 1.0;
- if (volume.find(it->first) == volume.end()) {
+ if (volume.find(_(it->first.c_str())) == volume.end()) {
m_audio.streamFade(it->first, level);
} else {
- CountSum cs = volume[it->first];
+ CountSum cs = volume[_(it->first.c_str())];
if (cs.first > 0) level = cs.second / cs.first;
if (m_song->music.size() <= 1) level = std::max(0.333, level);
m_audio.streamFade(it->first, level);
}
- if (pitchbend.find(it->first) != pitchbend.end()) {
- CountSum cs = pitchbend[it->first];
+ if (pitchbend.find(_(it->first.c_str())) != pitchbend.end()) {
+ CountSum cs = pitchbend[_(it->first.c_str())];
level = cs.second;
m_audio.streamBend(it->first, level);
}
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:34
|
Module: performous Branch: opengl2 Commit: a5f446f934b077cd108fbfc5f20dd4b0e307cee9 Author: Fredrik Klasson <sci...@gm...> Date: Sun Oct 24 13:16:20 2010 +0200 [ ] Word de-dup. Not bothering to update wiki for this... --- lang/TRANSLATORS | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/lang/TRANSLATORS b/lang/TRANSLATORS index fb52372..78bf75b 100644 --- a/lang/TRANSLATORS +++ b/lang/TRANSLATORS @@ -22,7 +22,7 @@ fr:STATUS active fr:CONTACT [[User:Yoda|yoda]] (French native speaker) -ja:COMMENT Translations translations not ready for release. +ja:COMMENT Translations not ready for release. ja:STATUS not yet ready #ja:TRANSLATOR [[User:Scientica|scientica]] (not native speaker) ja:CONTACT [[User:Scientica|scientica]] (not native speaker) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:31
|
Module: performous Branch: opengl2 Commit: 6b8ce73a41c079f1c3ff84bbc4ce9fec4940425e Author: Fredrik Klasson <sci...@gm...> Date: Sun Oct 24 13:08:58 2010 +0200 [ ] Updating all .po files from sources (soon updating the overview on the wiki) --- lang/da.po | 564 +++++++++++++++++++++++++----------------------- lang/de.po | 558 +++++++++++++++++++++++++---------------------- lang/es.po | 544 ++++++++++++++++++++++++---------------------- lang/fi.po | 707 ++++++++++++++++++++++++++++++------------------------------ lang/fr.po | 649 +++++++++++++++++++++++++++---------------------------- lang/hu.po | 539 ++++++++++++++++++++++++---------------------- lang/it.po | 543 ++++++++++++++++++++++++---------------------- lang/ja.po | 311 ++++++++++++++++----------- lang/nl.po | 537 ++++++++++++++++++++++++---------------------- lang/sv.po | 159 +++++++------- 10 files changed, 2663 insertions(+), 2448 deletions(-) |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:29
|
Module: performous
Branch: opengl2
Commit: 7d197dec9de7b77a8bbb72b3df9186e433816efd
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 13:07:51 2010 +0300
Handle Windows drive names in backgrounds' cache path construction.
---
game/cache.cc | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/game/cache.cc b/game/cache.cc
index e549763..69974e2 100644
--- a/game/cache.cc
+++ b/game/cache.cc
@@ -1,8 +1,9 @@
#include "cache.hh"
-
#include "fs.hh"
#include <boost/format.hpp>
+#include <algorithm>
+#include <boost/algorithm/string/classification.hpp>
namespace cache {
fs::path constructSVGCacheFileName(fs::path const& svgfilename, double factor){
@@ -16,7 +17,10 @@ namespace cache {
} else {
// We use the full path under cache to avoid name collisions
// with images other than theme files (mostly backgrounds).
- cache_filename = getCacheDir() / "misc" / svgfilename.parent_path() / cache_basename;
+ std::string fullpath = svgfilename.parent_path().string();
+ // Windows drive name handling
+ std::replace_if(fullpath.begin(), fullpath.end(), boost::is_any_of(":"), '_');
+ cache_filename = getCacheDir() / "misc" / fullpath / cache_basename;
}
return cache_filename;
|
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:26
|
Module: performous Branch: opengl2 Commit: 1872e11e05973a097eeafa27a3418bd4a62a6572 Author: Tapio Vierros <tap...@gm...> Date: Sun Oct 24 12:55:34 2010 +0300 Increase suggested latency for Windows compatibility. --- data/schema.xml | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/data/schema.xml b/data/schema.xml index b5e330a..b84572e 100644 --- a/data/schema.xml +++ b/data/schema.xml @@ -168,7 +168,7 @@ to save the current settings to XML. </entry> <!-- Audio preferences --> - <entry name="audio/latency" type="float" value="0.05"> + <entry name="audio/latency" type="float" value="0.075"> <ui unit=" ms" multiplier="1000" /> <limits min="0.0" max="0.25" step="0.005" /> <locale name="C"> |
|
From: Johnny O. <js...@us...> - 2010-10-28 20:46:23
|
Module: performous
Branch: opengl2
Commit: 43abd6dfe20a8d9d45c09b4fe64ab335cd49729a
Author: Tapio Vierros <tap...@gm...>
Date: Sun Oct 24 12:50:45 2010 +0300
Fix a float error.
---
game/screenmanager.cc | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/game/screenmanager.cc b/game/screenmanager.cc
index ccdf6d2..640a678 100644
--- a/game/screenmanager.cc
+++ b/game/screenmanager.cc
@@ -2,6 +2,7 @@
#include "fs.hh"
#include "configuration.hh"
#include "glutil.hh"
+#include "util.hh"
#include <boost/thread.hpp>
#include <boost/lexical_cast.hpp>
@@ -42,7 +43,7 @@ Screen* ScreenManager::getScreen(std::string const& name) {
void ScreenManager::loading(std::string const& message, float progress) {
// TODO: Create a better one, this is quite ugly
- flashMessage(message + " " + boost::lexical_cast<std::string>(progress*100) + "%", 0.0f, 1.0f, 1.0f);
+ flashMessage(message + " " + boost::lexical_cast<std::string>(int(round(progress*100))) + "%", 0.0f, 1.0f, 1.0f);
m_window.blank();
drawNotifications();
const int maxi = 20;
|