#!/bin/bash

find_src_files ()
{
    find "$1" \
    ! -wholename '*include*' \
    ! -wholename '*xcode*' \
    ! -wholename '*enet*' \
    \( \
        -name '*.c' \
        -or -name '*.h' \
        -or -name '*.cpp' \
        -or -name '*.hpp' \
    \)
}

extract_src_def ()
{
    echo "$1" | grep '^[^A-Z]*[A-Z]*([A-Z_0,| ]*'"$(echo "$2" | sed 's%\*%\\*%')"','
}

replace_escapes ()
{
    echo "$1" | sed -e ':again s%\([^^]\)\^"%\1ESC_QUOT%g; t again' -e 's%\([^^]\)\^n%\1 %g' -e 's%\^\(.\)%\1%g'
}

format_name ()
{
    replace_escapes "$1" | sed 's%^setdesc "\([^"]*\)".*%\1%'
}

format_name_weap ()
{
    replace_escapes "$1" | sed 's%^setdesc (concatword \$w \([^ ^)]*\).*%\1%'
}

format_desc ()
{
    replace_escapes "$1" | sed -e's%^setdesc "[^"]*" "\([^"]*\)".*%\1%' -e 's%ESC_QUOT%"%g'
}

format_desc_weap ()
{
    replace_escapes "$1" | sed -e 's%^setdesc ([^)]*) "\([^"]*\)".*%\1%' -e 's%ESC_QUOT%"%g'
}

format_param ()
{
    replace_escapes "$1" | sed -n 's%^setdesc "[^"]*" ".*" "\([^"]*\)"%\1%p'
}

format_param_weap ()
{
    replace_escapes "$1" | sed -n 's%^setdesc ([^)]*) ".*" "\([^"]*\)"%\1%p'
}

noedit_header ()
{
    echo -e "This page was automatically generated from the source of Red Eclipse, please do not edit it manually.\n"
}

table_header ()
{
    cat <<EOF
{| border="1" class="wikitable sortable"
! Name&nbsp;&&nbsp;Parameters
! class="unsortable"|Description
! Type
! class="unsortable"|Range
! class="unsortable"|Default&nbsp;Value
EOF
}

table_entry ()
{
    if [ -n "$2" ]
    then
        cat <<EOF
|-
| '''<nowiki>$1</nowiki>''' ''<nowiki>$2</nowiki>''
| <nowiki>$3</nowiki>
| <nowiki>$4</nowiki>
| <nowiki>$5</nowiki>
| <nowiki>$6</nowiki>
EOF
    else
        cat <<EOF
|-
| '''<nowiki>$1</nowiki>'''
| <nowiki>$3</nowiki>
| <nowiki>$4</nowiki>
| <nowiki>$5</nowiki>
| <nowiki>$6</nowiki>
EOF
    fi
}

table_header_simple ()
{
    cat <<EOF
{| border="1" class="wikitable sortable"
! Name&nbsp;&&nbsp;Parameters
! class="unsortable"|Description
! Type
EOF
}

table_entry_simple ()
{
    if [ -n "$2" ]
    then
        cat <<EOF
|-
| '''<nowiki>$1</nowiki>''' ''<nowiki>$2</nowiki>''
| <nowiki>$3</nowiki>
| <nowiki>$4</nowiki>
EOF
    else
        cat <<EOF
|-
| '''<nowiki>$1</nowiki>'''
| <nowiki>$3</nowiki>
| <nowiki>$4</nowiki>
EOF
    fi
}

table_end ()
{
    echo "|}"
}

