#!/bin/bash
#
# "$1" is usage.cfg
# "$2" is output file

DIR="$(cd "$(dirname "$0")" && pwd)"
WEAPONS_H="$DIR/../game/weapons.h"

source "$DIR"/wiki-common

noedit_header > "$2"
echo -e "To use these variable templates, replace [weap] with the weapon name, and (if given) [1|2] with either 1 or 2.\n" >> "$2"
table_header >> "$2"

IFS=$'\n'
for i in $(grep "^  *setdesc" "$1" | sed 's%^  *%%' | sort)
do
    VAR="$(format_name_weap "$i")"
    DESC="$(format_desc_weap "$i")"
    PARAM="$(format_param_weap "$i")"

    SRC_DEF="$(sed -n 's%.*\(G[A-Z]*VAR[A-Z]*([^,]*, a##'"$VAR"'[1,][^)]*)\).*%\1%p' "$WEAPONS_H")"

    SPLIT="$(echo "$SRC_DEF" | sed -n 's%.*'"$VAR"'[12].*%[1|2]%p')"

    SRC_TYPE="$(echo "$SRC_DEF" | sed 's%.*\(G[A-Z]*VAR[A-Z]*\)(([^,]*, a##'"$VAR"'.*%\1%')"
    case "$SRC_TYPE" in
        GVAR*)
            TYPE="integer" ;;
        GFVAR*)
            TYPE="float" ;;
        GSVAR*)
            TYPE="string" ;;
        *)
            TYPE="BUG" ;;
    esac

    SRC_IDF="$(echo "$SRC_DEF" | sed 's%.*G[A-Z]*VAR[A-Z]*(\([^,]*\),%\1%')"
    IDF_HEX=""
    # Currently only one case
    case "$SRC_IDF" in
        *IDF_HEX*)
            IDF_HEX="hex"
            ;;
    esac

    TYPE_STRING="$(echo "$IDF_HEX weapon $TYPE" | sed 's%^ %%')"

    MIN_MAX="n/a"
    DEFAULT="n/a"
    if [ "x$TYPE" != "xstring" ]
    then
        MIN_MAX="$(echo $SRC_DEF | sed 's%.*G[A-Z]*VAR[A-Z]*([^,]*, [^,]*, \([^,]*\), [^,]*, \([^,^)]*\).*%\1..\2%')"
    fi
    cat <<EOF >> "$2"
|-
| <nowiki>[weap]</nowiki>'''<nowiki>$VAR</nowiki>'''<nowiki>$SPLIT</nowiki> ''<nowiki>$PARAM</nowiki>''
| <nowiki>$DESC</nowiki>
| <nowiki>$TYPE_STRING</nowiki>
| <nowiki>$MIN_MAX</nowiki>
| <nowiki>$DEFAULT</nowiki>
EOF
done

table_end >> "$2"
