// mel_placement - Check for Mana elemental placement needs and elevation.
void main()
{
    int nN=0;
    object oMana;
    object oElem;
    int nR;
    string sTag;
    location lLoc;
    oMana=GetObjectByTag("StrongManaPool",nN);
    while(oMana!=OBJECT_INVALID)
    { // traverse strong mana pools
      nR=d100();
      if (GetStringLength(GetLocalString(GetArea(oMana),"sTeamID"))<3)
      { // okay to create
      if (nR<11)
      { // create or upgrade
        oElem=GetLocalObject(oMana,"oElemental");
        if (oElem!=OBJECT_INVALID)
        { // elemental exists
          sTag=GetTag(oElem);
          lLoc=GetLocation(oElem);
          if (sTag=="MinorManaElemental")
          { // upgrade to mana elemental
            DestroyObject(oElem);
            oElem=CreateObject(OBJECT_TYPE_CREATURE,"manaelemental",lLoc);
            SetLocalObject(oMana,"oElemental",oElem);
            SetLocalObject(oElem,"oManaPool",oMana);
          } // upgrade to mana elemental
          else if (sTag=="ManaElemental")
          { // upgrade to greater mana elemental
            DestroyObject(oElem);
            oElem=CreateObject(OBJECT_TYPE_CREATURE,"greatermanaeleme",lLoc);
            SetLocalObject(oMana,"oElemental",oElem);
            SetLocalObject(oElem,"oManaPool",oMana);
          } // upgrade to greater mana elemental
        } // elemental exists
        else
        { // create elemental
          oElem=CreateObject(OBJECT_TYPE_CREATURE,"minormanaelement",GetLocation(oMana));
          SetLocalObject(oMana,"oElemental",oElem);
          SetLocalObject(oElem,"oManaPool",oMana);
        } // create elemental
      } // create or upgrade
      } // okay to create
      nN++;
      oMana=GetObjectByTag("StrongManaPool",nN);
    } // traverse strong mana pools

}