From bf83959b4ae4aa09b8cad551ebfd4811a240ee8a Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 16 May 2020 01:30:33 +0200 Subject: [PATCH] allow setting the resource dir; autoconf should move *.dat file to resource dir --- Makefile.am | 4 ++-- commandline.cpp | 9 +++++++++ nonisotropic.cpp | 2 +- reg3.cpp | 1 + 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index be5c758e..729e2dd3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,9 @@ bin_PROGRAMS = hyperrogue hyperroguedir = $(datadir)/hyperrogue hyperrogue_SOURCES = hyper.cpp savepng.cpp -hyperrogue_CPPFLAGS = -DFONTDESTDIR=\"$(pkgdatadir)/DejaVuSans-Bold.ttf\" -DMUSICDESTDIR=\"$(pkgdatadir)/hyperrogue-music.txt\" -DSOUNDDESTDIR=\"$(pkgdatadir)/sounds/\" +hyperrogue_CPPFLAGS = -DFONTDESTDIR=\"$(pkgdatadir)/DejaVuSans-Bold.ttf\" -DMUSICDESTDIR=\"$(pkgdatadir)/hyperrogue-music.txt\" -DSOUNDDESTDIR=\"$(pkgdatadir)/sounds/\" -DRESOURCEDESTDIR=\"$(pkgdatadir)/\" hyperrogue_CXXFLAGS = -O2 -std=c++11 ${AM_CXXFLAGS} -dist_hyperrogue_DATA = hyperrogue-music.txt DejaVuSans-Bold.ttf +dist_hyperrogue_DATA = hyperrogue-music.txt DejaVuSans-Bold.ttf solv-geodesics.dat shyp-geodesics.dat ssol-geodesics.dat honeycomb-435.dat honeycomb-534.dat honeycomb-535.dat # docdir dist_doc_DATA = README.md diff --git a/commandline.cpp b/commandline.cpp index 286fc0c5..f1efa5f5 100644 --- a/commandline.cpp +++ b/commandline.cpp @@ -8,6 +8,14 @@ #include "hyper.h" namespace hr { +#ifdef RESOURCEDESTDIR +EX string rsrcdir = RESOURCEDESTDIR; +#endif + +#ifndef RESOURCEDESTDIR +EX string rsrcdir = ""; +#endif + #if CAP_COMMANDLINE EX const char *scorefile = "hyperrogue.log"; @@ -142,6 +150,7 @@ int arg::readCommon() { // first phase options if(argis("-s")) { PHASE(1); shift(); scorefile = argcs(); } + else if(argis("-rsrc")) { PHASE(1); shift(); rsrcdir = args(); } else if(argis("-nogui")) { PHASE(1); noGUI = true; } #ifndef EMSCRIPTEN else if(argis("-font")) { PHASE(1); shift(); fontpath = args(); } diff --git a/nonisotropic.cpp b/nonisotropic.cpp index df0a4759..6f616bb7 100644 --- a/nonisotropic.cpp +++ b/nonisotropic.cpp @@ -85,7 +85,7 @@ EX namespace sn { void tabled_inverses::load() { if(loaded) return; FILE *f = fopen(fname.c_str(), "rb"); - // if(!f) f = fopen("/usr/lib/soltable.dat", "rb"); + if(!f) f = fopen((rsrcdir + fname).c_str(), "rb"); if(!f) { addMessage(XLAT("geodesic table missing")); pmodel = mdPerspective; return; } ignore(fread(&PRECX, 4, 1, f)); ignore(fread(&PRECY, 4, 1, f)); diff --git a/reg3.cpp b/reg3.cpp index 60d963e7..42389d02 100644 --- a/reg3.cpp +++ b/reg3.cpp @@ -911,6 +911,7 @@ EX namespace reg3 { void load_ruleset(string fname) { FILE *f = fopen(fname.c_str(), "rb"); + if(!f) f = fopen((rsrcdir + fname).c_str(), "rb"); string buf; buf.resize(1000000); int qty = fread(&buf[0], 1, 1000000, f);