task TInitializeSpellName(stage)
{
	let spellName = [];
	alternative(stage)
		case(1)
			{
			ascent(t in 0..11)
				{
				ascent(i in 0..3)
					{
					let name = [];
					alternative(t)
					case(0)
						{
						name = [""];
						}
					case(1)
						{
						name = [""];
						}
					case(2)
						{
						name = ["Letty 1"];
						}
					case(3)
						{
						name = ["Spirit Dance \"Yuki-onna's Unseasonal Dance\""];
						}
					case(4)
						{
						name = ["Letty 2"];
						}
					case(5)
						{
						name = ["Storm \"Tornado of Cold\""];
						}
					case(6)
						{
						name = ["Letty 3"];
						}
					case(7)
						{
						name = ["Force and Persuasion \"The North Wind and The Sun\""];
						}
					case(8)
						{
						name = ["Letty 4"];
						}
					case(9)
						{
						name = ["\"Flower Master of the Flowers of Winter\""];
						}
					case(10)
						{
						name = ["\"Perfect Winter Mastermind\""];
						}
					spellName = spellName ~ name;
					}
				}
			}
	SetCommonData("SPELL_NAMES",spellName);
	LoadCommonDataAreaA2("STAGE_UNLOCK",GetCurrentScriptDirectory ~ "data/SCORE");
	let unlock = [];
	if(!IsCommonDataAreaExists("STAGE_UNLOCK"))
		{
		CreateCommonDataArea("STAGE_UNLOCK");
		ascent(i in 0..length(spellName))
			{
			unlock = unlock ~ [true];
			}
		}
	else
		{
		let array = GetAreaCommonData("STAGE_UNLOCK","STAGE" ~ IntToString(stage) ~ "_SPELL",[]);
		if(length(array) < length(spellName))
			{
			ascent(i in 0..length(spellName)-length(array))
				{
				array = array ~ [true];
				}
			}
		ascent(i in 0..length(spellName))
			{
			unlock = unlock ~ [array[i]];
			}
		}
	SetAreaCommonData("STAGE_UNLOCK", "STAGE" ~ IntToString(stage) ~ "_SPELL",unlock);
	SaveCommonDataAreaA2("STAGE_UNLOCK",GetCurrentScriptDirectory ~ "data/SCORE");
}