diff -wbBur hex-a-hop/gfx.cpp hex-a-hop.my/gfx.cpp --- hex-a-hop/gfx.cpp 2007-07-06 18:18:54.000000000 +0400 +++ hex-a-hop.my/gfx.cpp 2007-07-26 13:39:43.000000000 +0400 @@ -274,12 +274,11 @@ if ((SDL_focus & 6)==6) { videoExposed = 1; - x = TickTimer(); - while (x<10) + while (x<50) { - SDL_Delay(10-x); + SDL_Delay(50-x); x += TickTimer(); } @@ -288,7 +287,7 @@ else { // Not focussed. Try not to eat too much CPU! - SDL_Delay(150); + SDL_Delay(300); } // experimental... diff -wbBur hex-a-hop/hex_puzzzle.cpp hex-a-hop.my/hex_puzzzle.cpp --- hex-a-hop/hex_puzzzle.cpp 2007-07-06 18:18:54.000000000 +0400 +++ hex-a-hop.my/hex_puzzzle.cpp 2007-07-26 13:40:17.000000000 +0400 @@ -76,8 +76,10 @@ // printf("file_open( \"%s\", \"%s\" )\n", file, flags ); extern String base_path; static String filename; // static to reduce memory alloc/free calls. - if (file[0]=='\0' || file[1]!=':') //If a full path is specified, don't prepend base_path + if (file[0] != '/') //If a full path is specified, don't prepend base_path filename = base_path; + else + filename = ""; filename += file; // printf(" -> \"%s\"\n", filename ); @@ -1513,7 +1515,7 @@ double time; double undoTime; - #define MAX_UNDO 6 + #define MAX_UNDO 64 Undo undo[MAX_UNDO]; int numUndo; LevelInfo* currentLevelInfo; diff -wbBur hex-a-hop/menus.h hex-a-hop.my/menus.h --- hex-a-hop/menus.h 2007-07-06 18:18:54.000000000 +0400 +++ hex-a-hop.my/menus.h 2007-07-26 13:39:43.000000000 +0400 @@ -360,7 +360,8 @@ int freeSlot = -1; char* GetSlotName(int i, char * t) { - sprintf(t, "save%d.dat", i+1); + char *home = getenv("HOME"); + sprintf(t, "%s/.hex-a-hop/save%d.dat", home != NULL ? home : "", i+1); return t; }