/**********************************************************
RunUO AoV C# script file
Official Age of Valor Script :: www.uovalor.com
Last modified by Red Squirrel on Sep-24-2011 10:26:45pm
Filepath: scripts\Misc\MapDefinitions.cs
Lines of code: 36

Description: 

***********************************************************/


using System;
using Server;

namespace Server.Misc
{
	public class MapDefinitions
	{
		public static void Configure()
		{
			/* Here we configure all maps. Some notes:
			 * 
			 * 1) The first 32 maps are reserved for core use.
			 * 2) Map 0x7F is reserved for core use.
			 * 3) Map 0xFF is reserved for core use.
			 * 4) Changing or removing any predefined maps may cause server instability.
			 */

			//main world maps:
			RegisterMap( 0, 0, 0, 7168, 4096, 4, "Felucca",		MapRules.FeluccaRules );
			RegisterMap( 1, 1, 1, 7168, 4096, 0, "Trammel",		MapRules.TrammelRules ); 
			RegisterMap( 2, 2, 2, 2304, 1600, 1, "Ilshenar",	MapRules.TrammelRules );
			RegisterMap( 3, 3, 3, 2560, 2048, 1, "Malas",		MapRules.TrammelRules );
			RegisterMap( 4, 4, 4, 1448, 1448, 1, "Tokuno",		MapRules.TrammelRules );
			RegisterMap( 5, 5, 5, 1280, 4096, 1, "Termur",		MapRules.TrammelRules );
			
			
			//main world maps - Duplicates:   (used to create something then transpose to real map)
			RegisterMap( 64, 0, 0, 7168, 4096, 4, "Felucca_temp",		MapRules.FeluccaRules );
			RegisterMap( 65, 1, 1, 7168, 4096, 0, "Trammel_temp",		MapRules.TrammelRules ); 
			RegisterMap( 66, 2, 2, 2304, 1600, 1, "Ilshenar_temp",		MapRules.TrammelRules );
			RegisterMap( 67, 3, 3, 2560, 2048, 1, "Malas_temp",			MapRules.TrammelRules );
			RegisterMap( 68, 4, 4, 1448, 1448, 1, "Tokuno_temp",			MapRules.TrammelRules );
			RegisterMap( 69, 5, 5, 1280, 4096, 1, "Termur_temp",			MapRules.TrammelRules );			
			
			
			//custom replicas:  (used for permanent stuff such as events)
			RegisterMap( 100, 0, 0, 7168, 4096, 4, "Felucca_alt",		MapRules.FeluccaRules );
			RegisterMap( 101, 3, 3, 2560, 2048, 1, "Malas_alt",			MapRules.FeluccaRules );
			RegisterMap( 102, 1, 1, 7168, 4096, 0, "Trammel_alt",		MapRules.FeluccaRules ); 
			RegisterMap( 103, 2, 2, 2304, 1600, 1, "Ilshenar_alt",		MapRules.FeluccaRules );
			RegisterMap( 104, 4, 4, 1448, 1448, 1, "Tokuno_alt",		MapRules.FeluccaRules );
			RegisterMap( 105, 5, 5, 1280, 4096, 1, "TerMur_alt",		MapRules.FeluccaRules );
						
			//internal:
			RegisterMap( 0x7F, 0x7F, 0x7F, Map.SectorSize, Map.SectorSize, 1, "Internal", MapRules.Internal );

			/* Example of registering a custom map:
			 * RegisterMap( 32, 0, 0, 6144, 4096, 3, "Iceland", MapRules.FeluccaRules );
			 * 
			 * Defined:
			 * RegisterMap( <index>, <mapID>, <fileIndex>, <width>, <height>, <season>, <name>, <rules> );
			 *  - <index> : An unreserved unique index for this map
			 *  - <mapID> : An identification number used in client communications. For any visible maps, this value must be from 0-3
			 *  - <fileIndex> : A file identification number. For any visible maps, this value must be 0, 2, 3, or 4
			 *  - <width>, <height> : Size of the map (in tiles)
			 *  - <name> : Reference name for the map, used in props gump, get/set commands, region loading, etc
			 *  - <rules> : Rules and restrictions associated with the map. See documentation for details
			*/
		}

		public static void RegisterMap( int mapIndex, int mapID, int fileIndex, int width, int height, int season, string name, MapRules rules )
		{
			Map newMap = new Map( mapID, mapIndex, fileIndex, width, height, season, name, rules );

			Map.Maps[mapIndex] = newMap;
			Map.AllMaps.Add( newMap );
		}
	}
}