<?php

function read_configs($url)
{
	$input = file_get_contents($url);
	$preg_string = 'MACRO_CONFIG_INT\([A-Za-z])+';
}

$url = "http://github.com/GreYFoX/DDRace/raw/master/src/engine/shared/config_variables.h";
$url2 = "http://github.com/GreYFoX/DDRace/raw/master/src/game/variables.h";

$readString = file_get_contents($url);
$readString .= file_get_contents($url2);

preg_match_all('#\n\s*MACRO_CONFIG_(INT|STR)\([A-Za-z]*, ?([a-z_]*), ?([0-9]*), ?(.*), ?[A-Z_\|]*CFGFLAG_CLIENT[A-Z_\|]*, ?"(.*)", ?IConsole::CONSOLELEVEL_([A-Z]+)\)#' ,$readString, $array, PREG_SET_ORDER);

foreach($array as $key => $element)
{
	$array[$key]["name"] = $element[2];
	$array[$key]["description"] = $element[5];
	
	if($element[1] == "STR")
	{
		$array[$key]["type"] = "text";
		$array[$key]["default"] = str_replace('"', "", $element[4]);
		$array[$key]["range"] = $element[3];
	}
	else
	{
		preg_match_all('#([0-9]*), ?([0-9A-Z_]*)#', $element[4], $array2, PREG_SET_ORDER);
		$array[$key]["type"] = "number";
		$array[$key]["default"] = $element[3];
		if($array2[0][2] == "MAX_CLIENTS")
			$array2[0][2] = "16";
		$array[$key]["range"] = $array2[0][1]." - ".$array2[0][2];
	}
	
	foreach($array[$key] as $key2 => $element2)
	{
		if($element2 == "")
			$array[$key][$key2] = " ";
	}
}

usort($array, "cmp_client_settings");

$output = '
<table align="center" border="2" bordercolor="navy">
	<thead style="font-weight: bold;">
		<tr>
			<th style="padding: 3px;" align="center">Setting</th>
			<th style="padding: 3px;" align="center">Description</th>
			<th style="padding: 3px;" align="center">Type</th>
			<th style="padding: 3px;" align="center">Default</th>
			<th style="padding: 3px; width: 80px;" align="center">Min - Max / Max. Length</th>
		</tr>
	</thead>
	<tbody>';

foreach($array as $key => $element)
{
	$output .= '
		<tr>
			<td style= "padding: 3px;">
				'.$element["name"].'
			</td>
			<td style= "padding: 3px;">
				'.$element["description"].'
			</td>
			<td style= "padding: 3px;" align="center">
				'.$element["type"].'
			</td>
			<td style= "padding: 3px;" align="center">
				'.$element["default"].'
			</td>
			<td style= "padding: 3px;" align="center">
				'.$element["range"].'
			</td>
		</tr>';
}

$output .= '
	</tbody>
</table>';

function cmp_client_settings($a, $b)
{
	if($a["name"] > $b["name"])
		return 1;
	elseif($a["name"] < $b["name"])
		return -1;
	else
		return 0;
}

echo $output;

?>

