//============================================
//XNvgpCu REMY
//Dictionary W[
//CommonDatagfBNViBdB
//============================================

//----------------------------------------------
//gF
//1. REMY_Dictionary_Create()ŐVfBNVi쐬B
//@ ߂lIDAĂ̂ŎĂB
//2. REMY_Dictionary_Set(dictionay, key, vlue)Œlݒ肷B
//   PCreateœꂽIDgpB
//@ QKeyĈ݁B
//@ R͉łOKB
//3. REMY_Dictionary_Get(dictionay, key)Œl擾B
//----------------------------------------------


let const_DictionaryPrefix = "REMY_DICT_";

//fBNVȉmF
function REMY_Dictionary_Initialize()
{
	if(!IsCommonDataAreaExists("REMY_DICT_BASE"))
	{
		CreateCommonDataArea("REMY_DICT_BASE");
		SetCommonDataEx("REMY_DICT_BASE", "CurrentID", 0);
	}
}


//fBNVi̍쐬B
//߂lFfBNViID
function REMY_Dictionary_Create()
{
	REMY_Dictionary_Initialize();

	//fBNViID̐
	let current_id = GetCommonDataEx("REMY_DICT_BASE", "CurrentID");
	let current_id_str = "";
	local{
		let figure = trunc(log10(current_id)) + 1;
		if(figure < 3){ figure = 3; }
		ascent(i in 0..figure)
		{
			let n = trunc(current_id / (10 ^ i)) % 10;
			current_id_str = ["0","1","2","3","4","5","6","7","8","9"][n] ~ current_id_str;
		}
	}
	
	let id_string = const_DictionaryPrefix ~ current_id_str;	

	//
	if(!IsCommonDataAreaExists(id_string)){
		CreateCommonDataArea(id_string);
		SetCommonDataEx("REMY_DICT_BASE", "CurrentID", current_id + 1);
	}
	return id_string;

}

//fBNVi폜
function REMY_Dictionary_Delete(let dictionary)
{
	if(!IsCommonDataAreaExists(dictionary)){
		RaiseError("`̃fBNViQƂ܂","fBNVi");
	}
	ClearCommonDataEx(dictionary);
}

//fBNViɒlǉ
function REMY_Dictionary_Set(let dictionary, let key, let value)
{
	if(!IsCommonDataAreaExists(dictionary)){
		RaiseError("`̃fBNViQƂ܂","fBNVi");
	}
	SetCommonDataEx(dictionary, key, value);
}

//fBNVi̒lQ
function REMY_Dictionary_Get(let dictionary, let key)
{
	if(!IsCommonDataAreaExists(dictionary)){
		RaiseError("`̃fBNViQƂ܂","fBNVi");
	}
	return GetCommonDataEx(dictionary, key);
}

//fBNVi̒l폜
function REMY_Dictionary_Remove(let dictionary, let key)
{
	if(!IsCommonDataAreaExists(dictionary)){
		RaiseError("`̃fBNViQƂ܂","fBNVi");
	}
	DeleteCommonDataEx(dictionary, key);
}


