#!/bin/bash

# misc.sh
# Functions that don't belong anywhere else, and some constants

datadir="$HOME/.rocksndiamonds"
levels="$datadir/levels"
packages="$datadir/packages"
packages_global="/usr/share/games/rocksndiamonds/packages"
packages_shared="$packages_global/shared"

tmp_dir="/tmp/rml-$USER" # used for downloads and tmp files

newline="
"
IFS=$newline

function get_tmp_filename () {
  file="$tmp_dir/tmp$RANDOM"
  while [ -e "$file" ]; do file="$tmp_dir/tmp$RANDOM"; done
  touch $file
}

function header () {
  clear
  echo ""
  echo "     Rocks'n'Diamonds Level Manager"
  echo "           (C) Tomi Belan 2006"
  echo ""
}

function launch_rnd () {
  clear
  rocksndiamonds -l $rlm_path/emptydir
  exit 0
}

function debug_message () {
  echo $1
  sleep 2
}

function get_val () {
  if [ "$1" == "-n" ]; then
    echo $2
  else
    header; echo $1
  fi
  read -e tmp
}

function getfile () { # args: URL, filename (if not autodetectable)
  [ -z "$2" ] && filename="${1##*/}" || filename="$2"
  [ -f "$tmp_dir/$filename" ] && return
  pushd "$tmp_dir" >/dev/null
  echo " ## Downloading $1"
  failed=
  wget -nv "$1"
  returncode=$?
  if ( [ -n "$returncode" ] && [ "$returncode" -gt 0 ] ) || [ ! -s "$filename" ]; then
    echo " ## Download failed"
    failed=true
  else
    echo " ## Download successful"
    gotfile=$tmp_dir/$filename
  fi
  popd >/dev/null
}

function main_menu () {
  if [ "$1" == "init" ]; then
    menu_title="Main menu"
    menu_data="
    Download new levelsets ~ menu download_menu
    Import downloaded levelsets ~ import_select
    Enable/disable levelsets ~ debug_message todo2
    -
    Manage my levelsets ~ debug_message todo4
    Make new levelset ~ debug_message todo5
    Publish my levels ~ debug_message todo6
    Delete levelsets ~ debug_message todo7
    -
    Preferences ~ debug_message todo9
    Launch Rocks'n'Diamonds ~ launch_rnd
    Quit RLM ~ menu_stop
    "
    return
  fi
}

function return_to_main_menu () {
  echo " ## Press Enter to return to main menu."
  read x
  menu_back
  return 1
}


