summary refs log tree commit diff
path: root/pkgs/games/ivan
diff options
context:
space:
mode:
authorFree Potion <42352817+freepotion@users.noreply.github.com>2018-10-06 17:59:26 +0300
committerxeji <36407913+xeji@users.noreply.github.com>2018-10-06 16:59:26 +0200
commit171752daee9aa2b4049d70a7cebe6a72d2838f90 (patch)
tree30653a83beb1a35dec1dc16d5dcfedae1e1fc779 /pkgs/games/ivan
parent364d47723692d88e391a9e19679707a1d3a29402 (diff)
downloadnixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.tar
nixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.tar.gz
nixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.tar.bz2
nixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.tar.lz
nixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.tar.xz
nixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.tar.zst
nixpkgs-171752daee9aa2b4049d70a7cebe6a72d2838f90.zip
ivan: 053 -> 054 (#47950)
Diffstat (limited to 'pkgs/games/ivan')
-rw-r--r--pkgs/games/ivan/default.nix8
-rw-r--r--pkgs/games/ivan/homedir.patch75
-rw-r--r--pkgs/games/ivan/new.patch33
3 files changed, 37 insertions, 79 deletions
diff --git a/pkgs/games/ivan/default.nix b/pkgs/games/ivan/default.nix
index 07b67fa6397..6d31369a159 100644
--- a/pkgs/games/ivan/default.nix
+++ b/pkgs/games/ivan/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   name = "ivan-${version}";
-  version = "053";
+  version = "054";
 
   src = fetchFromGitHub {
     owner = "Attnam";
     repo = "ivan";
     rev = "v${version}";
-    sha256 = "1r3fcccgpjmzzkg0lfmq76igjapr01kh97vz671z60jg7gyh301b";
+    sha256 = "0ayhp9qvxsi5dsgjvy43i3lpdis883g1xn2b8l5xkwxcqfnvsfmq";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
   hardeningDisable = ["all"];
 
   # To store bone and high score files in ~/.ivan of the current user
-  patches = [./homedir.patch];
+  patches = [./new.patch];
 
   # Enable wizard mode
-  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD"];
+  cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD" "-DFORCE_HOME_AS_STATE_DIR=ON"];
 
   # Help CMake find SDL_mixer.h
   NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
diff --git a/pkgs/games/ivan/homedir.patch b/pkgs/games/ivan/homedir.patch
deleted file mode 100644
index 312099f7ffd..00000000000
--- a/pkgs/games/ivan/homedir.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/FeLib/Include/hscore.h b/FeLib/Include/hscore.h
-index 4caf3ff..1a02845 100644
---- a/FeLib/Include/hscore.h
-+++ b/FeLib/Include/hscore.h
-@@ -31,11 +31,11 @@ class festring;
- class highscore
- {
-  public:
--  highscore(cfestring& = HIGH_SCORE_FILENAME);
-+  highscore();
-   truth Add(long, cfestring&);
-   void Draw() const;
--  void Save(cfestring& = HIGH_SCORE_FILENAME) const;
--  void Load(cfestring& = HIGH_SCORE_FILENAME);
-+  void Save() const;
-+  void Load();
-   truth LastAddFailed() const;
-   void AddToFile(highscore*) const;
-   truth MergeToFile(highscore*) const;
-diff --git a/FeLib/Source/hscore.cpp b/FeLib/Source/hscore.cpp
-index 2e5318d..ff9c174 100644
---- a/FeLib/Source/hscore.cpp
-+++ b/FeLib/Source/hscore.cpp
-@@ -23,7 +23,7 @@ cfestring& highscore::GetEntry(int I) const { return Entry[I]; }
- long highscore::GetScore(int I) const { return Score[I]; }
- long highscore::GetSize() const { return Entry.size(); }
- 
--highscore::highscore(cfestring& File) : LastAdd(0xFF), Version(HIGH_SCORE_VERSION) { Load(File); }
-+highscore::highscore() : LastAdd(0xFF), Version(HIGH_SCORE_VERSION) { Load(); }
- 
- truth highscore::Add(long NewScore, cfestring& NewEntry,
-                      time_t NewTime, long NewRandomID)
-@@ -98,8 +98,12 @@ void highscore::Draw() const
-   List.Draw();
- }
- 
--void highscore::Save(cfestring& File) const
-+void highscore::Save() const
- {
-+  std::string buffer(getenv("HOME"));
-+  buffer.append("/.ivan/ivan-highscore.scores");
-+  cfestring& File = buffer.c_str();
-+
-   outputfile HighScore(File);
-   long CheckSum = HIGH_SCORE_VERSION + LastAdd;
-   for(ushort c = 0; c < Score.size(); ++c)
-@@ -112,8 +116,12 @@ void highscore::Save(cfestring& File) const
- }
- 
- /* This function needs much more error handling */
--void highscore::Load(cfestring& File)
-+void highscore::Load()
- {
-+  std::string buffer(getenv("HOME"));
-+  buffer.append("/.ivan/ivan-highscore.scores");
-+  cfestring& File = buffer.c_str();
-+
-   {
-     inputfile HighScore(File, 0, false);
- 
-diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp
-index 8927305..c18e790 100644
---- a/Main/Source/game.cpp
-+++ b/Main/Source/game.cpp
-@@ -2380,7 +2380,9 @@ festring game::GetDataDir()
- festring game::GetBoneDir()
- {
- #ifdef UNIX
--  return LOCAL_STATE_DIR "/Bones/";
-+  festring BoneDir;
-+  BoneDir << getenv("HOME") << "/.ivan/Bones/";
-+  return BoneDir;
- #endif
- 
- #if defined(WIN32) || defined(__DJGPP__)
diff --git a/pkgs/games/ivan/new.patch b/pkgs/games/ivan/new.patch
new file mode 100644
index 00000000000..d0ed866b3f3
--- /dev/null
+++ b/pkgs/games/ivan/new.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 13e143e..a6f9176 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,10 +13,14 @@ set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
+ add_definitions(-DIVAN_VERSION="${PROJECT_VERSION}" -DUSE_SDL)
+ 
+ option(BUILD_MAC_APP "Build standalone application for MacOS" OFF)
++option(FORCE_HOME_AS_STATE_DIR "Statedir will be /.ivan/ in current user's homedir" OFF)
+ 
+ if(UNIX)
+   add_definitions(-DUNIX)
+   include(GNUInstallDirs)
++  if(FORCE_HOME_AS_STATE_DIR)
++    add_definitions(-DFORCE_HOME_AS_STATE_DIR)
++  endif(FORCE_HOME_AS_STATE_DIR)
+ 
+   if(BUILD_MAC_APP)
+     install(DIRECTORY Graphics Script Music Sound DESTINATION "ivan")
+diff --git a/Main/Source/game.cpp b/Main/Source/game.cpp
+index 323a185..012feb3 100644
+--- a/Main/Source/game.cpp
++++ b/Main/Source/game.cpp
+@@ -5191,6 +5191,9 @@ festring game::GetDataDir()
+ 
+ festring game::GetStateDir()
+ {
++#ifdef FORCE_HOME_AS_STATE_DIR
++  return GetHomeDir()+"/.ivan/";
++#endif
+ #ifdef UNIX
+ #ifdef MAC_APP
+   return GetHomeDir();