mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-01 15:11:25 +00:00
ivan: init at 052
This commit is contained in:
parent
d90eea8cff
commit
3d9cd5d0c5
@ -2770,6 +2770,11 @@
|
|||||||
github = "nocoolnametom";
|
github = "nocoolnametom";
|
||||||
name = "Tom Doggett";
|
name = "Tom Doggett";
|
||||||
};
|
};
|
||||||
|
nonfreeblob = {
|
||||||
|
email = "nonfreeblob@yandex.com";
|
||||||
|
github = "nonfreeblob";
|
||||||
|
name ="nonfreeblob";
|
||||||
|
};
|
||||||
notthemessiah = {
|
notthemessiah = {
|
||||||
email = "brian.cohen.88@gmail.com";
|
email = "brian.cohen.88@gmail.com";
|
||||||
github = "notthemessiah";
|
github = "notthemessiah";
|
||||||
|
44
pkgs/games/ivan/default.nix
Normal file
44
pkgs/games/ivan/default.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{stdenv, fetchFromGitHub, libpng, cmake, SDL2, SDL2_mixer, pkgconfig, pcre}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "ivan-${version}";
|
||||||
|
version = "052";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Attnam";
|
||||||
|
repo = "ivan";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "1vvwb33jw4ppwsqlvaxq3b8npdzh9j9jfangyzszp5sfnnd7fj5b";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [SDL2 SDL2_mixer libpng pcre];
|
||||||
|
|
||||||
|
nativeBuildInputs = [cmake pkgconfig];
|
||||||
|
|
||||||
|
hardeningDisable = ["all"];
|
||||||
|
|
||||||
|
# To store bone and high score files in ~/.ivan of the current user
|
||||||
|
patches = [./homedir.patch];
|
||||||
|
|
||||||
|
# Enable wizard mode
|
||||||
|
cmakeFlags = ["-DCMAKE_CXX_FLAGS=-DWIZARD"];
|
||||||
|
|
||||||
|
# Help CMake find SDL_mixer.h
|
||||||
|
NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Graphical roguelike game";
|
||||||
|
longDescription = ''
|
||||||
|
Iter Vehemens ad Necem (IVAN) is a graphical roguelike game, which currently
|
||||||
|
runs in Windows, DOS, Linux, and OS X. It features advanced bodypart and
|
||||||
|
material handling, multi-colored lighting and, above all, deep gameplay.
|
||||||
|
|
||||||
|
This is a fan continuation of IVAN by members of Attnam.com
|
||||||
|
'';
|
||||||
|
homepage = https://attnam.com/;
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [nonfreeblob];
|
||||||
|
};
|
||||||
|
}
|
75
pkgs/games/ivan/homedir.patch
Normal file
75
pkgs/games/ivan/homedir.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
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__)
|
@ -3159,6 +3159,8 @@ 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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user