#!/bin/bash

while true; do
  read -p  "Do you have the doom3 game files? The demo mode will be installed if you answer No. [Y/n]" yn
  case $yn in
      [Yy]* ) choice=User_Supplied; break;;
      [Nn]* ) choice=Download_Demo; break;;
      * ) echo "Please answer yes or no.";;
  esac
done

# fix broken install due to @techcoder20

# Remove packages if necessary
pkgToRemoveListFull="sdl2-image sdl2-mixer sdl2-ttf"
pkgToRemoveList=""
for pkgToRemove in $(echo $pkgToRemoveListFull); do
  $(dpkg --status $pkgToRemove &> /dev/null)
  if [[ $? -eq 0 ]]; then
    pkgToRemoveList="$pkgToRemoveList $pkgToRemove"
  fi
done

if [[ ! -z "$pkgToRemoveList" ]]; then
  sudo apt-get --yes --purge remove $pkgToRemoveList || error "Could not remove packages"
fi

#Installing dependencies
install_packages libfontconfig-dev automake libtool libfreeimage-dev \
libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev libtiff5-dev libwebp-dev libasound2-dev \
libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxss-dev \
freeglut3-dev libvorbisfile3 libcurl4 cmake build-essential \
libsdl2-ttf-dev libsdl2-dev libsdl2-mixer-dev || error "Failed to install dependencies"

cd /tmp
git_clone https://github.com/dhewm/dhewm3 || error "Failed to clone dhewm3 from github" #Cloning dhewm3 repository
cd dhewm3/neo || exit
mkdir build || error "Failed to create build folder"
cd build || exit
cmake .. -DONATIVE=ON || error "Failed to build dhewm3"
make -j$(nproc) || error "Failed to build dhewm3"


Download_Demo () {
  cd ~
  rm -f Doom3DemoGameFiles.zip
  wget https://github.com/techcoder20/RPIDoom3Installer/releases/download/v1.0.0/Doom3DemoGameFiles.zip || error "Failed to download game files"
  unzip Doom3DemoGameFiles.zip || error "Failed to extract game files"
  rm -f Doom3DemoGameFiles.zip
  cd /tmp/dhewm3/neo/build || error "Could not move to dhewm3 directory"
  cp base.so d3xp.so dhewm3 libidlib.a ~/Doom3Demo || error "Failed to copy necessary files to Doom3Demo Folder"
  echo "[Desktop Entry]
Version=1.0
Type=Application
Name=Doom3Demo
Path=$HOME/Doom3Demo
Icon=${DIRECTORY}/apps/Doom 3/icon-64.png
Exec=$HOME/Doom3Demo/dhewm3
Categories=Game;
Terminal=false" | tee $HOME/.local/share/applications/Doom3Demo.desktop >/dev/null || error "Failed to create menu button!"
}

User_Supplied () {
  mkdir -p ~/Doom3GameFiles || error "Failed to create Doom3GameFiles Folder"
  warning "YOU MUST place the game files in ~/Doom3GameFiles for the game to work"
  sleep 5
  cd /tmp/dhewm3/neo/build || error "Could not move to dhewm3 directory"
  cp base.so d3xp.so dhewm3 libidlib.a ~/Doom3GameFiles || error "Failed to copy necessary files to Doom3GameFile Folder"
  echo "[Desktop Entry]
Version=1.0
Type=Application
Name=Doom3
Path=$HOME/Doom3GameFiles
Icon=${DIRECTORY}/apps/Doom 3/icon-64.png
Exec=$HOME/Doom3GameFiles/dhewm3
Categories=Game;
Terminal=false" | tee $HOME/.local/share/applications/Doom3.desktop >/dev/null || error "Failed to create menu button!"
}

$choice

rm -rf /tmp/dhewm3
