# Maintainer: Erich Eckner <arch at eckner dot net>
pkgname=openttd-git
pkgver=29572.3db7cf54f
_commit=${pkgver#*.}
pkgrel=1
pkgdesc="A FOSS clone of Transport Tycoon Deluxe."
arch=('x86_64' 'i686' 'pentium4')
url="http://www.openttd.org"
license=('GPL2')
groups=()
_pinned_dependencies=(
  'gcc-libs=10.1.0'
  'glibc>=2.31'
  'libfluidsynth.so=2'
  'libfontconfig.so=1'
  'libfreetype.so=6'
  'libicui18n.so=67'
  'libicuuc.so=67'
  'libpng=1.6.37'
  'libunwind=1.3.1'
  'lzo=2.10'
  'sdl2=2.0.12'
  'xz=5.2.5'
  'zlib=1:1.2.11'
)
depends=(
  'hicolor-icon-theme'
  "${_pinned_dependencies[@]}"
)
makedepends=('git' 'cmake')
checkdepends=(
    'openttd-opengfx'
)
optdepends=(
    'openttd-opengfx: free graphics'
    'openttd-opensfx: free soundset'
    'openttd-openmsx: free music'
)
provides=('openttd')
conflicts=('openttd')
replaces=()
backup=()
options=()
source=(
    "${pkgname}::git://github.com/OpenTTD/OpenTTD.git#commit=${_commit}"
    "signaltunnel.patch"
    "sloped-stations.patch"
    "underground.patch"
    'opntitle.dat'
)
sha512sums=('SKIP'
            '0b4fdb655595a9bf4f8b0fd57d867cd875d0b528d09c8558ae865307885ae4b3f9fdb596affc3229cd57cc0dbe46c31c16e049e0fa9ee5f873465e4e3750fda7'
            '35c0fe0215d2157bb5594c01cd6d5c4d0f4e366bdfd0a71b3bfe55e80746e17dbf8b0429404c179e316d910243996e759dac065f8d9ef95d13b7523922ceaae7'
            '2948cfb4cafa236c1a444dea69f9b9b32853d7ac60e94a3408bca2652d4c7b788ca5cc760bc4df54e66064278e78808078dc70c95c303125c3e704e9741980e4'
            'a3fd5b230b7cdd67a1b6607887433c0cb85ba1dfd30cedfddf573a58b23ccce7c470a22cf7f65a29c173bba12976c5889482cef24f49c8c0a829883a71bcd87d')

pkgver() {
  printf '%s.%s\n' \
    "$((
      $(git -C "${srcdir}/${pkgname}" rev-list --count "${_commit}" ^f84ad5f7c) + 28004
    ))" \
    "$(
      git -C "${srcdir}/${pkgname}" rev-parse --short=9 "${_commit}"
    )"
}

prepare() {

    cd "${srcdir}/${pkgname}"
    cp "${srcdir}/opntitle.dat" media/baseset/

    ISODATE=$(
      date -d@$(
        git log -n1 --pretty=format:%ct
      ) +'%Y%m%d'
    )
    HASH=$(find {src,bin} -type f -exec sha512sum {} \; | sort | sha512sum - | cut -d' ' -f1)
    SHORTHASH=$(echo ${HASH} | cut -c1-8)
    printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' \
      "${ISODATE}-ewe-g${SHORTHASH}" \
      "${ISODATE}" \
      "0" \
      "${HASH}" \
      "0" \
      "0" \
      "${ISODATE:0:4}" \
      > .ottdrev
    sed -i '
      s,"\${CMAKE_SOURCE_DIR}/\.git","/dev/does/not/exist",
    ' cmake/scripts/FindVersion.cmake

#    for _p in "${srcdir}/"{signaltunnel,sloped-stations,underground}.patch; do
    for _p in "${srcdir}/"{signaltunnel,underground}.patch; do
      >&2 echo "patching ${_p##*/} ..."
      patch -p1 -i "${_p}"
      >&2 echo "... ok"
    done
}

build() {

    cd "${srcdir}/${pkgname}"
    mkdir build
    cd build
    cmake \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DPERSONAL_DIR=.openttd \
      ..
    make

#      -DBINARY_DIR=bin \
#      -DDATA_DIR=share/openttd \
#      -DICON_DIR=share/openttd \
#      -DMAN_DIR=share/man \

}

check() {
    cd "${srcdir}/${pkgname}/build"
    make test || true
}

package() {

    cd "${srcdir}/${pkgname}/build"
    make DESTDIR=$pkgdir install

    # Remove unnecessary languages
    cp $pkgdir/usr/share/games/openttd/lang/{english,german}.lng $srcdir
    rm $pkgdir/usr/share/games/openttd/lang/*
    install -m 644 $srcdir/{english,german}.lng $pkgdir/usr/share/games/openttd/lang

    # Remove junk
    rm -rf $pkgdir/usr/share/games/doc
    rm -rf $pkgdir/usr/share/games/openttd/scripts

}