//-----------------------------------------------------------------------------
//	LOADADDRESS.VPC
//
//	Contains the DLL/EXE Load Addresses. Generates the $LOADADDRESS_??? Macro from
//	an easily updated table. This feature is primarily to facilitate the mandatory
//	fixed address specification of 360 DLLs and thus efficient 360 packing of DLLs
//	into memory.
//
//	Format:
//	$LoadAddressMacro	<MacroName>
//	{
//		<ProjectName>	<BaseAddress>
//	}
//
//	$LoadAddressMacroAuto	<MacroName> <BaseAddress>
//	{
//		<ProjectName>	<Length>
//	}
//
//	If "ProjectName" is not found, the "MacroName" will not be updated.
//	"ProjectName" is the internal short project name reference and is usually the name of
//	the project inside a group definition.
//
//	"Length" is either floating point MB or integer bytes, and is used to successively
//	to determine the next base address.
//-----------------------------------------------------------------------------

// Explicitly defined "empty" only for WINDOWS only because they are not required for WINDOWS projects
$Macro LOADADDRESS_DEVELOPMENT		" "		[$WINDOWS]
$Macro LOADADDRESS_RETAIL			" "		[$WINDOWS]

$LoadAddressMacro LOADADDRESS_DEVELOPMENT
{
	launcher_main			0x82000000	[$X360]
	simdtest				0x82000000	[$X360]
}

$LoadAddressMacro LOADADDRESS_RETAIL
{
	launcher_main			0x82000000	[$X360]
	simdtest				0x82000000	[$X360]
}

// Development versions require more memory to accomodate debug builds, release builds have to match debug for hybrid builds
$LoadAddressMacroAuto LOADADDRESS_DEVELOPMENT	0x82200000 [$X360]
{
	// top of chain, due to licensee lack of source restrictions
	vphysics				5.5

	tier0					2.0
	vstdlib					2.0
	filesystem_stdio		2.5
	datacache				2.5
	inputsystem				1.5
	launcher				2.0
	SoundEmitterSystem		2.0
	SceneFileCache			1.5
	vgui_dll				2.5
	gameui					6.0

	materialsystem			5.0
	vguimatsurface			4.0
	shaderapidx9			11.0
	stdshader_dx9			4.5
	studiorender			7.5

	engine					17.5
	client					17.5
	server					25.5

	// transient DLLs
	bsppack					3.0
	appchooser				8.5
	vxbdm					0.5
}

// Retail versions are expected to be minimally packed
$LoadAddressMacroAuto LOADADDRESS_RETAIL 0x82200000 [$X360]
{
	// top of chain, due to licensee lack of source restrictions
	vphysics				2.5

	tier0					1.0
	vstdlib					1.0
	filesystem_stdio		1.0
	datacache				1.0
	inputsystem				1.0
	launcher				1.0
	SoundEmitterSystem		1.0
	SceneFileCache			1.0
	vgui_dll				1.0
	gameui					2.0

	materialsystem			1.5
	vguimatsurface			1.5
	shaderapidx9			4.0
	stdshader_dx9			1.5
	studiorender			4.5

	engine					6.0
	client					10.5
	server					15.5

	// transient DLLs
	bsppack					1.5
	appchooser				1.5
	vxbdm					0.5
}