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: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:28
|
Module: performous Branch: ssxml Commit: bf2ceb69ee98710a48962ad40cdc63ec968a2968 Author: Lasse Karkkainen <tro...@tr...> Date: Sun Sep 19 08:49:44 2010 +0300 Massive ss_extract cleanup. --- tools/ss_extract.cpp | 172 +++++++++++++++++-------------------------------- tools/ss_helpers.hh | 68 ++++++++++++++++---- 2 files changed, 115 insertions(+), 125 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:25
|
Module: performous
Branch: ssxml
Commit: 15bb93132a6a6ceae152fdb06e78edcda55b5ecc
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Sep 18 05:24:11 2010 +0300
Add a tool for extracting 'Disney Sing It' archive files
---
tools/CMakeLists.txt | 4 ++
tools/archive_extract.cpp | 123 +++++++++++++++++++++++++++++++++++++++++++++
tools/pak.cpp | 2 +-
3 files changed, 128 insertions(+), 1 deletions(-)
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index f59285d..1d2bbfd 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -54,6 +54,10 @@ if (Boost_FOUND)
target_link_libraries(ss_pak_extract ${Boost_LIBRARIES})
set(targets ${targets} ss_pak_extract)
+ add_executable(ss_archive_extract archive_extract.cpp)
+ target_link_libraries(ss_archive_extract ${Boost_LIBRARIES})
+ set(targets ${targets} ss_archive_extract)
+
if (Z_FOUND)
add_executable(itg_pck itg_pck.cc)
target_link_libraries(itg_pck ${Boost_LIBRARIES} ${Z_LIBRARIES})
diff --git a/tools/archive_extract.cpp b/tools/archive_extract.cpp
new file mode 100644
index 0000000..1d6e412
--- /dev/null
+++ b/tools/archive_extract.cpp
@@ -0,0 +1,123 @@
+// @file Tool for extracting 'Disney Sing It' archive/archive.log files
+
+#include <boost/filesystem.hpp>
+#include <algorithm>
+#include <cstring>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <map>
+#include <sstream>
+#include <stdexcept>
+
+namespace {
+ void usage(char const* progname) {
+ std::cerr << "Usage: " << progname << " archive --extract [files]" << std::endl;
+ std::cerr << " " << progname << " archive --dump file" << std::endl;
+ std::cerr << " " << progname << " archive --list" << std::endl;
+ }
+
+ struct File {
+ size_t offset;
+ size_t size;
+ };
+
+ typedef std::map<std::string, File> Files;
+
+ Files readFiles(std::string archive) {
+ Files files;
+ archive += ".log";
+ std::ifstream archlog(archive.c_str(), std::ios::binary);
+ File f = { 4, 0 };
+ for (std::string name; archlog >> name >> f.size; f.offset += f.size) files[name] = f;
+ if (!archlog.eof()) throw std::runtime_error("Error reading " + archive);
+ return files;
+ }
+
+ void extract(std::ifstream& arch, Files::const_iterator it, std::ostream& output) {
+ File const& f = it->second;
+ std::vector<char> buf(f.size);
+ arch.seekg(f.offset);
+ arch.read(&buf[0], buf.size());
+ output.write(&buf[0], buf.size());
+ }
+
+ struct Extract {
+ Extract(std::ifstream& arch, Files const& files): m_arch(arch), m_files(files) {}
+ /// Extract one file
+ void operator()(std::string const& filename) {
+ Files::const_iterator it = m_files.find(filename);
+ if (it == m_files.end()) throw std::runtime_error("File not found in archive");
+ operator()(it);
+ }
+ /// Extract all files
+ void operator()() {
+ for (Files::const_iterator it = m_files.begin(); it != m_files.end(); ++it) operator()(it);
+ }
+ /// Extract one file by iterator
+ void operator()(Files::const_iterator it) {
+ std::string filename = it->first;
+ // Remove path elements from m_path until it matches the filename's beginning
+ while (m_path != filename.substr(0, m_path.size())) {
+ std::string::size_type pos = m_path.rfind('/');
+ if (pos == std::string::npos) m_path.clear();
+ else m_path.erase(pos);
+ }
+ // Try to create new folders as required
+ for (std::string::size_type pos; (pos = filename.find('/', m_path.size() + 1)) != std::string::npos;) {
+ m_path = filename.substr(0, pos);
+ boost::filesystem::create_directory(m_path);
+ }
+ // Extract the file
+ std::ofstream f(filename.c_str(), std::ios::binary);
+ if (!f.is_open()) throw std::runtime_error("Unable to create file: " + filename);
+ std::cout << filename << std::flush;
+ extract(m_arch, it, f);
+ std::cout << std::endl;
+ }
+ private:
+ std::ifstream& m_arch;
+ Files const& m_files;
+ std::string m_path;
+ };
+
+ std::ostream& operator<<(std::ostream& os, Files const& files) {
+ std::stringstream ss;
+ ss << std::setbase(16) << std::setfill('0');
+ for (Files::const_iterator it = files.begin(); it != files.end(); ++it) {
+ File const& f = it->second;
+ ss << "0x" << std::setw(8) << f.offset << ' ';
+ ss << "0x" << std::setw(8) << f.size << ' ';
+ ss << it->first << std::endl;
+ }
+ return os << ss.rdbuf() << std::flush;
+ }
+}
+
+int main(int argc, char** argv) {
+ std::ios::sync_with_stdio(false);
+ if( argc < 3 ) { usage(argv[0]); return EXIT_FAILURE; }
+ try {
+ std::ifstream arch(argv[1], std::ios::binary);
+ if (!arch) throw std::runtime_error("Unable to open " + std::string(argv[1]));
+ Files const files = readFiles(argv[1]);
+ if (files.empty()) throw std::runtime_error("No files found in archive");
+ if (!strcmp(argv[2],"--list")) std::cout << files;
+ else if (!strcmp(argv[2],"--dump")) {
+ if (argc != 4) { usage(argv[0]); return EXIT_FAILURE; }
+ Files::const_iterator it = files.find(argv[3]);
+ if (it == files.end()) throw std::runtime_error("File not found in archive");
+ extract(arch, it, std::cout);
+ } else if (!strcmp(argv[2],"--extract")) {
+ Extract extractor(arch, files);
+ if (argc == 3) extractor();
+ else std::for_each(argv + 3, argv + argc, extractor);
+ } else { usage(argv[0]); return EXIT_FAILURE; }
+ } catch (std::exception& e) {
+ std::cerr << "Error: " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+}
+
diff --git a/tools/pak.cpp b/tools/pak.cpp
index eeb3b5d..6d1c79b 100644
--- a/tools/pak.cpp
+++ b/tools/pak.cpp
@@ -30,7 +30,7 @@ namespace {
Pak::Pak(std::string const& filename) {
std::ifstream f(filename.c_str(), std::ios::binary);
- if (!f.is_open()) throw std::runtime_error("Could not open PAK file");
+ if (!f.is_open()) throw std::runtime_error("Could not open PAK file " + filename);
f.exceptions(std::ios::failbit);
bool enable_crc;
{
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:23
|
Module: performous
Branch: ssxml
Commit: 3cc848ac8e570e82d1437ab2698c528a7169ec20
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Sep 18 05:23:28 2010 +0300
Add SingStar SuomiHitit name transformation
---
tools/ss_helpers.hh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh
index 278f33e..d521f1a 100644
--- a/tools/ss_helpers.hh
+++ b/tools/ss_helpers.hh
@@ -33,6 +33,7 @@ Glib::ustring prettyEdition(Glib::ustring str) {
if (str == "SingStar '80s") return "SingStar 80s";
if (str == "SingStar Schlager") return "SingStar Svenska Hits Schlager";
if (str == "SingStar Suomi Rock") return "SingStar SuomiRock";
+ if (str == "SS SuomiHitit") return "SingStar SuomiHitit";
return str;
}
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:20
|
Module: performous Branch: ssxml Commit: a6bf0d1c9622d072300b98dd851ba6f61d6c74e4 Author: Lasse Karkkainen <tro...@tr...> Date: Tue Aug 31 19:22:51 2010 +0300 Break parts of ss_extract.cc into separete headers + cleanup. --- tools/ss_binary.hh | 176 ++++++++++++++++++++++++ tools/ss_extract.cpp | 362 +++++++------------------------------------------- tools/ss_helpers.hh | 76 +++++++++++ 3 files changed, 300 insertions(+), 314 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:18
|
Module: performous Branch: ssxml Commit: 53bef298d8cd0d5ce8d9ed65c8ace35adcdb59c3 Author: Anders Jenbo <an...@je...> Date: Tue Sep 21 22:55:12 2010 +0200 Update translations to latest POT to help translators that dosn't set up xml paring or update (credits retained) --- lang/de.po | 579 ++++++++++++++++++++++++++++++++++------------------- lang/es.po | 570 +++++++++++++++++++++++++++++++++------------------- lang/fr.po | 653 +++++++++++++++++++++++++++++++----------------------------- lang/hu.po | 557 +++++++++++++++++++++++++++++++++------------------- lang/it.po | 568 +++++++++++++++++++++++++++++++++------------------- lang/nl.po | 557 +++++++++++++++++++++++++++++++++------------------- lang/sv.po | 476 +++++++++++++++++++++++--------------------- 7 files changed, 2399 insertions(+), 1561 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:16
|
Module: performous Branch: ssxml Commit: bb90e854f0bc85eda40913a8f0850c2f139a1594 Author: Anders Jenbo <an...@je...> Date: Tue Sep 21 22:43:34 2010 +0200 Merge branch 'master' of git.performous.org:/gitroot/performous/performous --- |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:13
|
Module: performous Branch: ssxml Commit: 26e788cceafa69510f0de6e148d0014edd0bae5c Author: Anders Jenbo <an...@je...> Date: Tue Sep 21 22:33:36 2010 +0200 Added initial Danish translation --- lang/da.po | 828 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 828 insertions(+), 0 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:11
|
Module: performous Branch: ssxml Commit: fc14d16207943535fbc118e900ed0cb1a16d0892 Author: Anders Jenbo <an...@je...> Date: Tue Sep 21 22:32:29 2010 +0200 make mktemp command compatible with older versions --- tools/scripts/xml_gettext.sh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/scripts/xml_gettext.sh b/tools/scripts/xml_gettext.sh index 012ac8a..dc8b678 100755 --- a/tools/scripts/xml_gettext.sh +++ b/tools/scripts/xml_gettext.sh @@ -98,7 +98,7 @@ shift shift # create the temporary file securely. -TEMP_SRC=$(mktemp --tmpdir xml2gettext.XXXXXXXXXX.c) +TEMP_SRC=$(mktemp --tmpdir xml2gettext.XXXXXXXXXX).c append_temp_src "/* This is a automatically generated temp file, it's safe to remove*/" # Start the dirty work @@ -113,4 +113,4 @@ RV=$? # clean up rm "$TEMP_SRC" -exit $RV \ No newline at end of file +exit $RV |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:08
|
Module: performous
Branch: ssxml
Commit: e451ba3c7d6a18114699c5c36486bbe14b9c6842
Author: Tapio Vierros <tap...@gm...>
Date: Tue Sep 21 23:20:34 2010 +0300
Pressing any key after 'ready' but before t=0 brings back instrument join menu.
This is to make it easy to recover from accidental 'readiness'.
---
game/guitargraph.cc | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index bb77221..cf88be0 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -323,11 +323,19 @@ void GuitarGraph::engine() {
// Sync menu items & captions
updateJoinMenu();
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) {
+ setupJoinMenu();
+ m_menu.open();
+ break;
+
} else if (!m_input.isKeyboard()) {
// Handle Start/Select keypresses
if (ev.nav == input::CANCEL) ev.button = input::GODMODE_BUTTON; // Select = GodMode
if (ev.nav == input::START) { m_menu.open(); continue; }
}
+
// Guitar specific actions
if (!m_drums) {
if ((ev.type == input::Event::PRESS || ev.type == input::Event::RELEASE) && ev.button == input::GODMODE_BUTTON) {
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:06
|
Module: performous
Branch: ssxml
Commit: 457e6e91c7a376caa72e0e744967968f89d53a9c
Author: Tapio Vierros <tap...@gm...>
Date: Tue Sep 21 23:07:44 2010 +0300
Short comment bg in config menu now has adaptive width (was wrong with i18n).
---
game/screen_intro.cc | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index d4f46ae..bbf919c 100644
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -59,6 +59,7 @@ void ScreenIntro::manageEvent(SDL_Event event) {
}
void ScreenIntro::draw_menu_options() {
+ // Variables used for positioning and other stuff
double wcounter = 0;
const size_t showopts = 4; // Show at most 4 options simultaneously
const float x = -0.35;
@@ -71,9 +72,13 @@ void ScreenIntro::draw_menu_options() {
int start_i = std::min((int)m_menu.curIndex() - 1, (int)opts.size() - (int)showopts
+ (m_menu.getSubmenuLevel() == 2 ? 1 : 0)); // Hack to counter side-effects from displaying the value inside the menu
if (start_i < 0 || opts.size() == showopts) start_i = 0;
+
+ // Loop the currently visible options
for (size_t i = start_i, ii = 0; ii < showopts && i < opts.size(); ++i, ++ii) {
MenuOption const& opt = opts[i];
- if (i == m_menu.curIndex()) { // Selection
+
+ // Selection
+ if (i == m_menu.curIndex()) {
// Animate selection higlight moving
double selanim = m_selAnim.get() - start_i;
if (selanim < 0) selanim = 0;
@@ -89,7 +94,9 @@ void ScreenIntro::draw_menu_options() {
theme->option_selected.dimensions.left(x + sel_margin).center(-0.1 + (selanim+1)*0.08);
theme->option_selected.draw("< " + opt.value->getValue() + " >", submenuanim);
}
- } else { // Regular option (not selected)
+
+ // 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
@@ -108,8 +115,8 @@ void ScreenIntro::draw() {
theme->comment.draw(m_menu.current().getComment());
// Key help for config
if (m_menu.getSubmenuLevel() > 0) {
- theme->short_comment_bg.dimensions.fixedHeight(0.025);
- theme->short_comment_bg.dimensions.right(-0.04).screenBottom(-0.054);
+ theme->short_comment_bg.dimensions.stretch(theme->short_comment.w() + 0.08, 0.025);
+ theme->short_comment_bg.dimensions.left(-0.54).screenBottom(-0.054);
theme->short_comment_bg.draw();
theme->short_comment.dimensions.left(-0.48).screenBottom(-0.067);
theme->short_comment.draw(_("Ctrl + S to save, Ctrl + R to reset defaults"));
@@ -128,7 +135,7 @@ void ScreenIntro::populateMenu() {
MenuOptions audiomenu;
MenuOptions gfxmenu;
MenuOptions gamemenu;
- MenuOptions pathsmenu; // Dummy
+ MenuOptions pathsmenu; // FIXME: Dummy (just to get a gray option to the menu)
// Populate the submenus
for (Config::iterator it = config.begin(); it != config.end(); ++it) {
// Skip items that are configured elsewhere
@@ -146,6 +153,7 @@ void ScreenIntro::populateMenu() {
configmain.push_back(MenuOption(_("Audio"), _("Configure general audio settings"), audiomenu, "intro_configure.svg"));
configmain.push_back(MenuOption(_("Graphics"), _("Configure rendering and video settings"), gfxmenu, "intro_configure.svg"));
configmain.push_back(MenuOption(_("Game"), _("Gameplay related options"), gamemenu, "intro_configure.svg"));
+ // FIXME: 'Paths' should open a screen
configmain.push_back(MenuOption(_("Paths"), _("Setup song and data paths"), pathsmenu, "intro_configure.svg"));
configmain.back().image.reset(new Surface(getThemePath("intro_quit.svg")));
// Add to root menu
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:04:01
|
Module: performous Branch: ssxml Commit: c51de888fbae6fba84d969a6237644b937ac476c Author: Vincent Le Ligeour <yo...@us...> Date: Tue Sep 21 00:41:56 2010 +0200 Started French translation update --- lang/fr.po | 709 +++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 418 insertions(+), 291 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:59
|
Module: performous Branch: ssxml Commit: 477a2663e090bd7b858013b4ccda5b31de6680e6 Author: Fredrik Klasson <sci...@gm...> Date: Mon Sep 20 22:35:52 2010 +0200 [ ] Basically finishing the swedish trans. 98% done (only 2 strings not translated) --- lang/sv.po | 199 ++++++++++++++++++++++++++++++++---------------------------- 1 files changed, 107 insertions(+), 92 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:56
|
Module: performous Branch: ssxml Commit: b9911fefd2d7c7e9be212ede37bf4d277326eb08 Author: Tapio Vierros <tap...@gm...> Date: Sun Sep 19 14:11:25 2010 +0300 Add a match string to XBox360 drumkit. --- data/controllers.xml | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/data/controllers.xml b/data/controllers.xml index e5e54d8..2ab5258 100644 --- a/data/controllers.xml +++ b/data/controllers.xml @@ -137,7 +137,7 @@ </controller> <controller type="drumkit" name="DRUMS_ROCKBAND_XBOX360"> <description>RockBand XBox drum kit</description> - <regexp match="Harmonix Drum [Kk]it for Xbox" /> + <regexp match="Harmonix Drum [Kk]it for Xbox|Harmonix Rock Band Drumkit" /> <mapping> <button id="0" value="green" /> <button id="1" value="red" /> |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:54
|
Module: performous Branch: ssxml Commit: 5f3be64b28a46640f17ef885eba9d1c18bea2a9e Author: Philipp Funk <phi...@wh...> Date: Sun Sep 19 12:42:39 2010 +0200 Updated German translation --- lang/de.po | 223 ++++++++++++++++++++++++++++++------------------------------ 1 files changed, 112 insertions(+), 111 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:51
|
Module: performous Branch: ssxml Commit: 5a59f2b26d5e01a240b03b96d2d9837e878456b4 Author: Fredrik Klasson <sci...@gm...> Date: Sat Sep 18 13:14:00 2010 +0200 [ ] Small updates to the swedish translations. --- lang/sv.po | 32 +++++++++++++++++++------------- 1 files changed, 19 insertions(+), 13 deletions(-) diff --git a/lang/sv.po b/lang/sv.po index 1b80e0e..3c4689f 100644 --- a/lang/sv.po +++ b/lang/sv.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-09-17 16:03+0100\n" -"PO-Revision-Date: 2010-09-17 16:58+0100\n" +"PO-Revision-Date: 2010-09-18 13:13+0100\n" "Last-Translator: Fredrik Klasson <sci...@gm...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -61,7 +61,7 @@ msgid "" "Please configure some before playing." msgstr "" "\n" -"Vänligen konfigurera något för spel." +"Var god och konfigurera något innan du spelar." # add "ESC returns" to it? #: ../game/screen_intro.cc:115 @@ -151,11 +151,11 @@ msgstr "Laddar tema..." #: ../game/screen_sing.cc:39 msgid "Loading song..." -msgstr "Laddar låt/sång..." +msgstr "Laddar låt..." #: ../game/screen_sing.cc:45 msgid "Song is broken!" -msgstr "Låten/Sången år trasig!" +msgstr "Låten år trasig!" #: ../game/screen_sing.cc:50 msgid "Loading background..." @@ -198,11 +198,14 @@ msgstr "Tillbaks till uppträdande" msgid "Restart" msgstr "Börja om" +# start <-> restart? #: ../game/screen_sing.cc:120 msgid "" "Start the song\n" "from the beginning" msgstr "" +"Börja låten\n" +"från början" # låt/sång #: ../game/screen_sing.cc:121 @@ -215,12 +218,13 @@ msgstr "Slutför..." #: ../game/screen_sing.cc:130 msgid "Song contains broken tracks!" -msgstr "Låten/Sången innehåller trasiga spår!" +msgstr "Låten innehåller trasiga spår!" -# ... +# skippa/hoppa över +# ... instrumentalt mellanspel ... #: ../game/screen_sing.cc:459 msgid " ENTER to skip instrumental break" -msgstr " tryck ENTER för att skippa/hoppa över instrumentaliskt mellanspel" +msgstr " tryck ENTER för att skippa instrumentalt mellanspel" # gradering eller betygsättning? #: ../game/screen_sing.cc:460 @@ -278,9 +282,10 @@ msgstr "Virtuos" msgid "Rocker" msgstr "Rockare" +# items -> players? #: ../game/database.cc:107 msgid "No Items up to now." -msgstr "" +msgstr "Inga spelare ännu." #: ../game/database.cc:108 msgid "Be the first to be listed here!" @@ -292,7 +297,7 @@ msgstr "slumpmässig ordning" #: ../game/songs.cc:200 msgid "sorted by song" -msgstr "sorterat efter låt/sång" +msgstr "sorterat efter låt" #: ../game/songs.cc:201 msgid "sorted by artist" @@ -460,20 +465,21 @@ msgstr "Sök text:" #: ../game/screen_songs.cc:196 msgid "No songs found!" -msgstr "Inga låtar/sånger funna" +msgstr "Inga låtar funna" # gratis eller fria? +# (tysk översättning ger freie) #: ../game/screen_songs.cc:197 msgid "" "Visit performous.org\n" "for free songs" msgstr "" "Besök performous,org\n" -"för gratis/fria låtar/sånger" +"för fria låtar" #: ../game/screen_songs.cc:199 msgid "no songs match search" -msgstr "inga låtar/sånger matchar sökningen" +msgstr "inga låtar matchar sökningen" # ... #: ../game/screen_songs.cc:207 @@ -655,7 +661,7 @@ msgstr "Webkamera bakgrund" #: /tmp/.private/frekla/xml2gettext.p052kkZhHw.c:35 msgid "Performous can try to use webcam as a background video. You can disable it if it annoys you." -msgstr "" +msgstr "Performous kan försöka använda web-kameran som bakgrundsvideo. Du kan stänga av detta om det stör dig." #: /tmp/.private/frekla/xml2gettext.p052kkZhHw.c:36 msgid "Webcam id" |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:49
|
Module: performous Branch: ssxml Commit: 89028ade1d573ed7cc1c26316cfa38bb237b0795 Author: Fredrik Klasson <sci...@gm...> Date: Fri Sep 17 16:58:39 2010 +0200 [ ] Updating swedish translations. --- lang/sv.po | 440 +++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 286 insertions(+), 154 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:46
|
Module: performous
Branch: ssxml
Commit: b2365e0ed66f1b38d7a924522f18b789f1e88fb7
Author: Tapio Vierros <tap...@gm...>
Date: Fri Sep 17 16:03:25 2010 +0300
Fix a bug preventing XB360 RB guitar tilt & whammy from working.
---
game/joystick.cc | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 494e700..d93df3e 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -736,9 +736,9 @@ bool input::SDL::pushEvent(SDL_Event _e) {
if(!devices.find(joy_id)->second.assigned()) return false;
if (_e.jaxis.axis == 5 || _e.jaxis.axis == 6 || _e.jaxis.axis == 1) {
event.type = input::Event::PICK;
- } else if (_e.jaxis.axis == 2 || (devices.find(joy_id)->second.name() == "GUITAR_ROCKBAND_XB360" && _e.jaxis.axis == 4)) {
+ } else if (_e.jaxis.axis == 2 || (devices.find(joy_id)->second.name() == "GUITAR_ROCKBAND_XBOX360" && _e.jaxis.axis == 4)) {
// nothing to do here
- } else if (devices.find(joy_id)->second.name() == "DRUMS_ROCKBAND_XB360" && _e.jaxis.axis == 3) { // <= WTF HERE !!!
+ } else if (devices.find(joy_id)->second.name() == "GUITAR_ROCKBAND_XBOX360" && _e.jaxis.axis == 3) { // <= WTF HERE !!!
// nothing to do here
} else {
return false;
@@ -747,7 +747,7 @@ bool input::SDL::pushEvent(SDL_Event _e) {
event.pressed[i] = devices.find(joy_id)->second.pressed(i);
}
// XBox RB guitar's Tilt sensor
- if (devices.find(joy_id)->second.name() == "DRUMS_ROCKBAND_XB360" && _e.jaxis.axis == 3) {
+ if (devices.find(joy_id)->second.name() == "GUITAR_ROCKBAND_XBOX360" && _e.jaxis.axis == 3) {
event.button = input::GODMODE_BUTTON;
if (_e.jaxis.value < -2) {
event.type = input::Event::PRESS;
@@ -758,7 +758,7 @@ bool input::SDL::pushEvent(SDL_Event _e) {
}
devices.find(joy_id)->second.addEvent(event);
break;
- } else if (_e.jaxis.axis == 2 || (devices.find(joy_id)->second.name() == "GUITAR_ROCKBAND_XB360" && _e.jaxis.axis == 4)) {
+ } else if (_e.jaxis.axis == 2 || (devices.find(joy_id)->second.name() == "GUITAR_ROCKBAND_XBOX360" && _e.jaxis.axis == 4)) {
event.button = input::WHAMMY_BUTTON;
if (_e.jaxis.value > 0) {
event.type = input::Event::PRESS;
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:44
|
Module: performous Branch: ssxml Commit: 01e877d755661803d2e09f8b69906e6a984f4522 Author: Tapio Vierros <tap...@gm...> Date: Fri Sep 17 14:04:39 2010 +0300 Update, refactor & improve the translation guide. --- lang/README | 64 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 44 insertions(+), 20 deletions(-) diff --git a/lang/README b/lang/README index 7916afc..205ac9c 100644 --- a/lang/README +++ b/lang/README @@ -1,27 +1,27 @@ -To add new languages: +Translation guide +================= -Download POEdit (http://www.poedit.net/) +We recommend using POEdit (http://www.poedit.net/) +For Windows, download it from the website. +Most Linux distros have it in their repositories. -Creating the catalog --------------------- - 1. Start POEdit - 2. Click File -> New Catalog - 3. Enter a project name (performous) - 4. Click the Paths tab at the top - 5. Click the New Item icon (second one, looks like a little square) - 6. Enter the path to the directory containing your plug-in file ("." tells POEdit to scan the directory that you will save the file to, usually only need to include ../game and ../data), press enter - 7. Click the Keywords tab at the top - 8. Click the New Item icon - 9. Enter _ (that's underscore), press enter - 12. Click Okay - 13. Choose a name for your .po file (performous) +NOTE: Don't generate the binary .mo files - they are + compiled (and installed) with Performous build -REMEMBER TO SAVE WITH YOU LOCALE NAME +Updating existing translations +------------------------------ + 1. Open the .po file in POEdit. + 2. Hit the Synchronize to source button in the toolbar. + 3. Start translating. + 4. Remember to save. -Example for English: -en.po +NOTES: + * Setup your name and email in POEdit preferences if you haven't used it before + * Also setup the Performous XML parser as instructed below + * POEdit C/C++ parser might not recognize .hh extension by default, so add that: + Edit -> Preferences -> Parsers -> C/C++ -> Edit -> List of extensions -Configuring the performous XML parser +Configuring the Performous XML parser ------------------------------------- These steps enable translation of the XML locate bits. 1. Click Edit -> Preferences @@ -36,6 +36,30 @@ These steps enable translation of the XML locate bits. Where $SOURCE_ROOT is the path to the performous sources root. 4. Click Okay +Creating a new catalog +---------------------- +These are the steps to create a new catalog, but easiest +is probably just copy one of the existing ones and start +from there (in which case you can skip these steps.) + + 1. Start POEdit + 2. Click File -> New Catalog + 3. Enter a project name (performous) + 4. Click the Paths tab at the top + 5. Click the New Item icon (second one, looks like a little square) + 6. Enter the path to the directory containing your plug-in file ("." tells POEdit to scan the directory that you will save the file to, usually only need to include ../game and ../data), press enter + 7. Click the Keywords tab at the top + 8. Click the New Item icon + 9. Enter _ (that's underscore), press enter + 12. Click Okay + 13. Choose a name for your .po file (performous) + 14. Follow the instructions above to enable XML translation + +REMEMBER TO SAVE WITH YOU LOCALE NAME + +Example for English: +en.po + Acknowledgements --------------- +---------------- Thanks to guide at http://codex.wordpress.org/User:Skippy/Creating_POT_Files |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:42
|
Module: performous
Branch: ssxml
Commit: 647e50208f75916fcc6c9260cbd3ff9a988be573
Author: Tapio Vierros <tap...@gm...>
Date: Thu Sep 16 15:12:22 2010 +0300
Tweak main menu.
---
game/screen_intro.cc | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/game/screen_intro.cc b/game/screen_intro.cc
index b327a75..d4f46ae 100644
--- a/game/screen_intro.cc
+++ b/game/screen_intro.cc
@@ -68,13 +68,13 @@ void ScreenIntro::draw_menu_options() {
double submenuanim = 1.0 - std::min(1.0, std::abs(m_submenuAnim.get()-m_menu.getSubmenuLevel()));
theme->back_h.dimensions.stretch(m_menu.dimensions.w(), theme->back_h.dimensions.h());
// Determine from which item to start
- int start_i = std::min((int)m_menu.curIndex(), (int)opts.size() - (int)showopts
+ int start_i = std::min((int)m_menu.curIndex() - 1, (int)opts.size() - (int)showopts
+ (m_menu.getSubmenuLevel() == 2 ? 1 : 0)); // Hack to counter side-effects from displaying the value inside the menu
if (start_i < 0 || opts.size() == showopts) start_i = 0;
for (size_t i = start_i, ii = 0; ii < showopts && i < opts.size(); ++i, ++ii) {
MenuOption const& opt = opts[i];
if (i == m_menu.curIndex()) { // Selection
- // Animate highlight moving
+ // Animate selection higlight moving
double selanim = m_selAnim.get() - start_i;
if (selanim < 0) selanim = 0;
theme->back_h.dimensions.left(x - sel_margin).center(start_y+0.003 + selanim*0.08);
@@ -86,8 +86,8 @@ void ScreenIntro::draw_menu_options() {
// If this is a config item, show the value below
if (opt.type == MenuOption::CHANGE_VALUE) {
++ii; // Use a slot for the value
- theme->option_selected.dimensions.left(x + sel_margin).center(-0.1 + ii*0.08);
- theme->option_selected.draw(opt.value->getValue(), submenuanim);
+ theme->option_selected.dimensions.left(x + sel_margin).center(-0.1 + (selanim+1)*0.08);
+ theme->option_selected.draw("< " + opt.value->getValue() + " >", submenuanim);
}
} else { // Regular option (not selected)
theme->option.dimensions.left(x).center(start_y + ii*0.08);
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 02:03:17
|
Module: performous Branch: master Commit: daf359cec1d9fa778666cf221e8d048f5204f0e4 Author: Lasse Karkkainen <tro...@tr...> Date: Wed Sep 22 05:03:04 2010 +0300 Remove unused outdated files --- game/unused/fftgraph.hh | 46 ------------ game/unused/folderview.cpp | 138 ----------------------------------- game/unused/hiscore.cc | 171 -------------------------------------------- game/unused/hiscore.hh | 102 -------------------------- tools/faac.hh | 82 --------------------- 5 files changed, 0 insertions(+), 539 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 01:39:39
|
Module: performous
Branch: master
Commit: 520741fd6f17b2aa477e9ef971ee502223556fe9
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Sep 19 17:47:12 2010 +0300
Fix mixup with music/vocals filenames.
---
tools/ss_extract.cpp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/ss_extract.cpp b/tools/ss_extract.cpp
index 6fb5ae7..dd5162b 100644
--- a/tools/ss_extract.cpp
+++ b/tools/ss_extract.cpp
@@ -188,7 +188,7 @@ struct Process {
std::cerr << cmd << std::endl;
if (std::system(cmd.c_str()) == 0) { // FIXME: std::system return value is not portable
fs::remove(song.vocals);
- song.music = path / ("vocals.ogg");
+ song.vocals = path / ("vocals.ogg");
}
}
}
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 01:39:37
|
Module: performous Branch: master Commit: bf2ceb69ee98710a48962ad40cdc63ec968a2968 Author: Lasse Karkkainen <tro...@tr...> Date: Sun Sep 19 08:49:44 2010 +0300 Massive ss_extract cleanup. --- tools/ss_extract.cpp | 172 +++++++++++++++++-------------------------------- tools/ss_helpers.hh | 68 ++++++++++++++++---- 2 files changed, 115 insertions(+), 125 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 01:39:34
|
Module: performous
Branch: master
Commit: 15bb93132a6a6ceae152fdb06e78edcda55b5ecc
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Sep 18 05:24:11 2010 +0300
Add a tool for extracting 'Disney Sing It' archive files
---
tools/CMakeLists.txt | 4 ++
tools/archive_extract.cpp | 123 +++++++++++++++++++++++++++++++++++++++++++++
tools/pak.cpp | 2 +-
3 files changed, 128 insertions(+), 1 deletions(-)
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index f59285d..1d2bbfd 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -54,6 +54,10 @@ if (Boost_FOUND)
target_link_libraries(ss_pak_extract ${Boost_LIBRARIES})
set(targets ${targets} ss_pak_extract)
+ add_executable(ss_archive_extract archive_extract.cpp)
+ target_link_libraries(ss_archive_extract ${Boost_LIBRARIES})
+ set(targets ${targets} ss_archive_extract)
+
if (Z_FOUND)
add_executable(itg_pck itg_pck.cc)
target_link_libraries(itg_pck ${Boost_LIBRARIES} ${Z_LIBRARIES})
diff --git a/tools/archive_extract.cpp b/tools/archive_extract.cpp
new file mode 100644
index 0000000..1d6e412
--- /dev/null
+++ b/tools/archive_extract.cpp
@@ -0,0 +1,123 @@
+// @file Tool for extracting 'Disney Sing It' archive/archive.log files
+
+#include <boost/filesystem.hpp>
+#include <algorithm>
+#include <cstring>
+#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <map>
+#include <sstream>
+#include <stdexcept>
+
+namespace {
+ void usage(char const* progname) {
+ std::cerr << "Usage: " << progname << " archive --extract [files]" << std::endl;
+ std::cerr << " " << progname << " archive --dump file" << std::endl;
+ std::cerr << " " << progname << " archive --list" << std::endl;
+ }
+
+ struct File {
+ size_t offset;
+ size_t size;
+ };
+
+ typedef std::map<std::string, File> Files;
+
+ Files readFiles(std::string archive) {
+ Files files;
+ archive += ".log";
+ std::ifstream archlog(archive.c_str(), std::ios::binary);
+ File f = { 4, 0 };
+ for (std::string name; archlog >> name >> f.size; f.offset += f.size) files[name] = f;
+ if (!archlog.eof()) throw std::runtime_error("Error reading " + archive);
+ return files;
+ }
+
+ void extract(std::ifstream& arch, Files::const_iterator it, std::ostream& output) {
+ File const& f = it->second;
+ std::vector<char> buf(f.size);
+ arch.seekg(f.offset);
+ arch.read(&buf[0], buf.size());
+ output.write(&buf[0], buf.size());
+ }
+
+ struct Extract {
+ Extract(std::ifstream& arch, Files const& files): m_arch(arch), m_files(files) {}
+ /// Extract one file
+ void operator()(std::string const& filename) {
+ Files::const_iterator it = m_files.find(filename);
+ if (it == m_files.end()) throw std::runtime_error("File not found in archive");
+ operator()(it);
+ }
+ /// Extract all files
+ void operator()() {
+ for (Files::const_iterator it = m_files.begin(); it != m_files.end(); ++it) operator()(it);
+ }
+ /// Extract one file by iterator
+ void operator()(Files::const_iterator it) {
+ std::string filename = it->first;
+ // Remove path elements from m_path until it matches the filename's beginning
+ while (m_path != filename.substr(0, m_path.size())) {
+ std::string::size_type pos = m_path.rfind('/');
+ if (pos == std::string::npos) m_path.clear();
+ else m_path.erase(pos);
+ }
+ // Try to create new folders as required
+ for (std::string::size_type pos; (pos = filename.find('/', m_path.size() + 1)) != std::string::npos;) {
+ m_path = filename.substr(0, pos);
+ boost::filesystem::create_directory(m_path);
+ }
+ // Extract the file
+ std::ofstream f(filename.c_str(), std::ios::binary);
+ if (!f.is_open()) throw std::runtime_error("Unable to create file: " + filename);
+ std::cout << filename << std::flush;
+ extract(m_arch, it, f);
+ std::cout << std::endl;
+ }
+ private:
+ std::ifstream& m_arch;
+ Files const& m_files;
+ std::string m_path;
+ };
+
+ std::ostream& operator<<(std::ostream& os, Files const& files) {
+ std::stringstream ss;
+ ss << std::setbase(16) << std::setfill('0');
+ for (Files::const_iterator it = files.begin(); it != files.end(); ++it) {
+ File const& f = it->second;
+ ss << "0x" << std::setw(8) << f.offset << ' ';
+ ss << "0x" << std::setw(8) << f.size << ' ';
+ ss << it->first << std::endl;
+ }
+ return os << ss.rdbuf() << std::flush;
+ }
+}
+
+int main(int argc, char** argv) {
+ std::ios::sync_with_stdio(false);
+ if( argc < 3 ) { usage(argv[0]); return EXIT_FAILURE; }
+ try {
+ std::ifstream arch(argv[1], std::ios::binary);
+ if (!arch) throw std::runtime_error("Unable to open " + std::string(argv[1]));
+ Files const files = readFiles(argv[1]);
+ if (files.empty()) throw std::runtime_error("No files found in archive");
+ if (!strcmp(argv[2],"--list")) std::cout << files;
+ else if (!strcmp(argv[2],"--dump")) {
+ if (argc != 4) { usage(argv[0]); return EXIT_FAILURE; }
+ Files::const_iterator it = files.find(argv[3]);
+ if (it == files.end()) throw std::runtime_error("File not found in archive");
+ extract(arch, it, std::cout);
+ } else if (!strcmp(argv[2],"--extract")) {
+ Extract extractor(arch, files);
+ if (argc == 3) extractor();
+ else std::for_each(argv + 3, argv + argc, extractor);
+ } else { usage(argv[0]); return EXIT_FAILURE; }
+ } catch (std::exception& e) {
+ std::cerr << "Error: " << e.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+}
+
diff --git a/tools/pak.cpp b/tools/pak.cpp
index eeb3b5d..6d1c79b 100644
--- a/tools/pak.cpp
+++ b/tools/pak.cpp
@@ -30,7 +30,7 @@ namespace {
Pak::Pak(std::string const& filename) {
std::ifstream f(filename.c_str(), std::ios::binary);
- if (!f.is_open()) throw std::runtime_error("Could not open PAK file");
+ if (!f.is_open()) throw std::runtime_error("Could not open PAK file " + filename);
f.exceptions(std::ios::failbit);
bool enable_crc;
{
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 01:39:32
|
Module: performous
Branch: master
Commit: 3cc848ac8e570e82d1437ab2698c528a7169ec20
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Sep 18 05:23:28 2010 +0300
Add SingStar SuomiHitit name transformation
---
tools/ss_helpers.hh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh
index 278f33e..d521f1a 100644
--- a/tools/ss_helpers.hh
+++ b/tools/ss_helpers.hh
@@ -33,6 +33,7 @@ Glib::ustring prettyEdition(Glib::ustring str) {
if (str == "SingStar '80s") return "SingStar 80s";
if (str == "SingStar Schlager") return "SingStar Svenska Hits Schlager";
if (str == "SingStar Suomi Rock") return "SingStar SuomiRock";
+ if (str == "SS SuomiHitit") return "SingStar SuomiHitit";
return str;
}
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-09-22 01:39:29
|
Module: performous Branch: master Commit: a6bf0d1c9622d072300b98dd851ba6f61d6c74e4 Author: Lasse Karkkainen <tro...@tr...> Date: Tue Aug 31 19:22:51 2010 +0300 Break parts of ss_extract.cc into separete headers + cleanup. --- tools/ss_binary.hh | 176 ++++++++++++++++++++++++ tools/ss_extract.cpp | 362 +++++++------------------------------------------- tools/ss_helpers.hh | 76 +++++++++++ 3 files changed, 300 insertions(+), 314 deletions(-) |