public bool LoadArea(CLRScriptBase script) { if (TemplateAreaId == 0) { // No template? Can't instance anything. Report failure. return(false); } if (AreaId != 0) { // Got an Id? Great! Job's already done. return(true); } // Guess we need an area. Check the cache first. if (DungeonStore.CachedAreas.ContainsKey(TemplateAreaId)) { if (DungeonStore.CachedAreas[TemplateAreaId].Count > 0) { AreaId = DungeonStore.CachedAreas[TemplateAreaId][0]; DungeonStore.CachedAreas[TemplateAreaId].Remove(DungeonStore.CachedAreas[TemplateAreaId][0]); script.SetLocalString(AreaId, "DUNGEON_NAME", DungeonName); PopulateArea(script); return(true); } } // No dice? OK, time to make an instance AreaId = script.CreateInstancedAreaFromSource(TemplateAreaId); if (script.GetIsObjectValid(AreaId) == CLRScriptBase.TRUE) { script.SetLocalString(AreaId, "DUNGEON_NAME", DungeonName); PopulateArea(script); return(true); } return(false); }