These patches are required to build with a modern GCC; most of them are taken from the Debian package. Upstream has disappeared. diff -r -u einstein-2.0.orig/convert.h einstein-2.0/convert.h --- einstein-2.0.orig/convert.h 2005-08-14 04:40:58.000000000 +0200 +++ einstein-2.0/convert.h 2016-03-05 18:25:08.488917021 +0100 @@ -5,6 +5,7 @@ #include <iostream> #include <sstream> #include <string> +#include <typeinfo> #include "exceptions.h" #include "unicode.h" diff -r -u einstein-2.0.orig/descr.cpp einstein-2.0/descr.cpp --- einstein-2.0.orig/descr.cpp 2005-08-17 15:42:29.000000000 +0200 +++ einstein-2.0/descr.cpp 2016-03-05 18:29:27.960352230 +0100 @@ -139,9 +139,9 @@ { currentPage = 0; //area.add(parentArea, false); - titleFont = new Font(L"nova.ttf", 26); - buttonFont = new Font(L"laudcn2.ttf", 14); - textFont = new Font(L"laudcn2.ttf", 16); + titleFont = new Font(L"DejaVuSans.ttf", 26); + buttonFont = new Font(L"DejaVuSans.ttf", 14); + textFont = new Font(L"DejaVuSans.ttf", 16); textHeight = (int)(textFont->getHeight(L"A") * 1.0); text = new TextParser(msg(L"rulesText"), *textFont, START_X, START_Y, CLIENT_WIDTH, CLIENT_HEIGHT); diff -r -u einstein-2.0.orig/font.h einstein-2.0/font.h --- einstein-2.0.orig/font.h 2005-08-16 00:33:17.000000000 +0200 +++ einstein-2.0/font.h 2016-03-05 18:22:05.563794039 +0100 @@ -3,7 +3,7 @@ #include <string> -#include <SDL_ttf.h> +#include <SDL/SDL_ttf.h> class Font diff -r -u einstein-2.0.orig/formatter.cpp einstein-2.0/formatter.cpp --- einstein-2.0.orig/formatter.cpp 2005-08-14 04:40:58.000000000 +0200 +++ einstein-2.0/formatter.cpp 2016-03-05 18:18:41.146882565 +0100 @@ -58,7 +58,7 @@ if ((c.type == INT_ARG) || (c.type == STRING_ARG) || (c.type == FLOAT_ARG) || (c.type == DOUBLE_ARG)) { - int no = (int)c.data; + long no = (long)c.data; args[no - 1] = c.type; } } @@ -123,7 +123,7 @@ std::wstring Formatter::format(std::vector<ArgValue*> &argValues) const { std::wstring s; - int no; + long no; for (int i = 0; i < commandsCnt; i++) { Command *cmd = &commands[i]; @@ -135,8 +135,8 @@ case STRING_ARG: case INT_ARG: - no = (int)cmd->data - 1; - if (no < (int)argValues.size()) + no = (long)cmd->data - 1; + if (no < (long)argValues.size()) s += argValues[no]->format(cmd); break; diff -r -u einstein-2.0.orig/game.cpp einstein-2.0/game.cpp --- einstein-2.0.orig/game.cpp 2005-08-23 00:44:54.000000000 +0200 +++ einstein-2.0/game.cpp 2016-03-05 18:29:27.960352230 +0100 @@ -33,7 +33,7 @@ screen.draw(8, 10, tile); SDL_FreeSurface(tile); - Font titleFont(L"nova.ttf", 28); + Font titleFont(L"DejaVuSans.ttf", 28); titleFont.draw(screen.getSurface(), 20, 20, 255,255,0, true, msg(L"einsteinPuzzle")); @@ -89,7 +89,7 @@ { lastRun = elapsed = lastUpdate = 0; stop(); - font = new Font(L"luximb.ttf", 16); + font = new Font(L"DejaVuSans.ttf", 16); } Watch::Watch(std::istream &stream) @@ -97,7 +97,7 @@ elapsed = readInt(stream); lastUpdate = 0; stop(); - font = new Font(L"luximb.ttf", 16); + font = new Font(L"DejaVuSans.ttf", 16); } Watch::~Watch() @@ -178,7 +178,7 @@ watch->stop(); Area area; area.add(background, false); - Font font(L"laudcn2.ttf", 16); + Font font(L"DejaVuSans.ttf", 16); area.add(new Window(280, 275, 240, 50, L"greenpattern.bmp", 6)); area.add(new Label(&font, 280, 275, 240, 50, Label::ALIGN_CENTER, Label::ALIGN_MIDDLE, 255,255,0, msg(L"paused"))); @@ -209,7 +209,7 @@ virtual void doAction() { sound->play(L"applause.wav"); watch->stop(); - Font font(L"laudcn2.ttf", 20); + Font font(L"DejaVuSans.ttf", 20); showMessageWindow(gameArea, L"marble1.bmp", 500, 70, &font, 255,0,0, msg(L"