Add apotris
This commit is contained in:
parent
4ff4e7b859
commit
4dc6a6a61a
|
@ -54,6 +54,7 @@
|
|||
)
|
||||
// {
|
||||
overlays.default = final: prev: {
|
||||
apotris = final.callPackage ./packages/apotris { };
|
||||
attic = final.callPackage ./packages/attic { };
|
||||
attic-client = final.attic.override { clientOnly = true; };
|
||||
cups-dymo-patched = final.callPackage ./packages/cups-dymo { };
|
||||
|
|
78
packages/apotris/default.nix
Normal file
78
packages/apotris/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitea,
|
||||
cmake,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
python3,
|
||||
xxd,
|
||||
|
||||
SDL2,
|
||||
SDL2_mixer,
|
||||
libX11,
|
||||
libXScrnSaver,
|
||||
libXcursor,
|
||||
libXext,
|
||||
libXfixes,
|
||||
libXi,
|
||||
libXrandr,
|
||||
libogg,
|
||||
libopus,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "apotris";
|
||||
version = "4.0.2";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "gitea.com";
|
||||
owner = "akouzoukos";
|
||||
repo = pname;
|
||||
fetchSubmodules = true;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-w9uv7A1UIn82ORyyvT8dxWHUK9chVfJ191bnI53sANU=";
|
||||
};
|
||||
|
||||
patches = [ ./paths.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
xxd
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
SDL2_mixer
|
||||
libX11
|
||||
libXScrnSaver
|
||||
libXcursor
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXrandr
|
||||
libogg
|
||||
libopus
|
||||
zlib
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs --build tools
|
||||
substituteAllInPlace source/liba_window.cpp
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Multiplatform open-source block stacking game";
|
||||
mainProgram = "Apotris";
|
||||
homepage = "https://apotris.com";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
52
packages/apotris/paths.patch
Normal file
52
packages/apotris/paths.patch
Normal file
|
@ -0,0 +1,52 @@
|
|||
diff --git a/source/liba_window.cpp b/source/liba_window.cpp
|
||||
index 5c05b92..b3dfacf 100644
|
||||
--- a/source/liba_window.cpp
|
||||
+++ b/source/liba_window.cpp
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <iostream>
|
||||
#include <dirent.h>
|
||||
#include <cstdio>
|
||||
+#include <cstdlib>
|
||||
|
||||
#include "def.h"
|
||||
|
||||
@@ -85,7 +86,7 @@ void windowInit(){
|
||||
|
||||
refreshWindowSize();
|
||||
|
||||
- loadAudio("");
|
||||
+ loadAudio("@out@/");
|
||||
|
||||
nanotime_step_init(&stepper, (uint64_t) (NANOTIME_NSEC_PER_SEC / FPS_TARGET), nanotime_now_max(),nanotime_now,nanotime_sleep);
|
||||
|
||||
@@ -334,9 +335,20 @@ void toggleRendering(bool r){
|
||||
|
||||
void initRumble(){};
|
||||
|
||||
+static std::string savePath() {
|
||||
+ char *home;
|
||||
+ if((home = getenv("XDG_DATA_HOME")) != NULL) {
|
||||
+ return std::string(home) + "/Apotris.sav";
|
||||
+ }
|
||||
+ if((home = getenv("HOME")) != NULL) {
|
||||
+ return std::string(home) + "/.local/share/Apotris.sav";
|
||||
+ }
|
||||
+ return "Apotris.sav";
|
||||
+}
|
||||
+
|
||||
void loadSavefile(){
|
||||
|
||||
- std::ifstream input("Apotris.sav",std::ios::binary | std::ios::in);
|
||||
+ std::ifstream input(savePath(),std::ios::binary | std::ios::in);
|
||||
|
||||
if(savefile == nullptr)
|
||||
savefile = new Save();
|
||||
@@ -355,7 +367,7 @@ void loadSavefile(){
|
||||
|
||||
void saveSavefile(){
|
||||
|
||||
- std::ofstream output("Apotris.sav",std::ios::binary | std::ios::out);
|
||||
+ std::ofstream output(savePath(),std::ios::binary | std::ios::out);
|
||||
|
||||
char * dst = (char * ) savefile;
|
||||
|
Loading…
Reference in a new issue