ivan: 053 -> 054 (#47950)
This commit is contained in:
parent
364d477236
commit
171752daee
@ -3,13 +3,13 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "ivan-${version}";
|
name = "ivan-${version}";
|
||||||
version = "053";
|
version = "054";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Attnam";
|
owner = "Attnam";
|
||||||
repo = "ivan";
|
repo = "ivan";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1r3fcccgpjmzzkg0lfmq76igjapr01kh97vz671z60jg7gyh301b";
|
sha256 = "0ayhp9qvxsi5dsgjvy43i3lpdis883g1xn2b8l5xkwxcqfnvsfmq";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
|
|||||||
hardeningDisable = ["all"];
|
hardeningDisable = ["all"];
|
||||||
|
|
||||||
# To store bone and high score files in ~/.ivan of the current user
|
# To store bone and high score files in ~/.ivan of the current user
|
||||||
patches = [./homedir.patch];
|
patches = [./new.patch];
|
||||||
|
|
||||||
# Enable wizard mode
|
# 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
|
# Help CMake find SDL_mixer.h
|
||||||
NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
|
NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
|
||||||
|
@ -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__)
|
|
33
pkgs/games/ivan/new.patch
Normal file
33
pkgs/games/ivan/new.patch
Normal file
@ -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();
|
@ -3406,8 +3406,6 @@ with pkgs;
|
|||||||
isync = callPackage ../tools/networking/isync { };
|
isync = callPackage ../tools/networking/isync { };
|
||||||
isyncUnstable = callPackage ../tools/networking/isync/unstable.nix { };
|
isyncUnstable = callPackage ../tools/networking/isync/unstable.nix { };
|
||||||
|
|
||||||
ivan = callPackage ../games/ivan { };
|
|
||||||
|
|
||||||
jaaa = callPackage ../applications/audio/jaaa { };
|
jaaa = callPackage ../applications/audio/jaaa { };
|
||||||
|
|
||||||
jackett = callPackage ../servers/jackett {
|
jackett = callPackage ../servers/jackett {
|
||||||
@ -20127,6 +20125,8 @@ with pkgs;
|
|||||||
|
|
||||||
instead-launcher = callPackage ../games/instead-launcher { };
|
instead-launcher = callPackage ../games/instead-launcher { };
|
||||||
|
|
||||||
|
ivan = callPackage ../games/ivan { };
|
||||||
|
|
||||||
ja2-stracciatella = callPackage ../games/ja2-stracciatella { };
|
ja2-stracciatella = callPackage ../games/ja2-stracciatella { };
|
||||||
|
|
||||||
klavaro = callPackage ../games/klavaro {};
|
klavaro = callPackage ../games/klavaro {};
|
||||||
|
Loading…
Reference in New Issue
Block a user