Sorry for double post, I just update the code to check if players were mounted, if they are, meditate is always on....
just use this instead of the void Client:

oManaRegen() above
Code:
void Client::DoManaRegen() {
/* Out of combat Mana Regen Multiplier added by Zydria */
//Set out of combat regen to default to off
int OOCRegen;
OOCRegen = 0;
char tmp[10];
char *tmp2;
if (database.GetVariable("OOCRegen", tmp, 9))
OOCRegen = strtod((const char*)tmp, &tmp2);
if (GetMana() >= max_mana)
return;
int32 level=GetLevel();
int32 regen = 0;
if (GetHorseId() != 0) {{
if(HasSkill(MEDITATE)) {
medding = true;
regen = (((GetSkill(MEDITATE)/10)+(level-(level/4)))/4)+4;
regen += spellbonuses.ManaRegen + itembonuses.ManaRegen;
CheckIncreaseSkill(MEDITATE, -10);
}
else
regen = 2+spellbonuses.ManaRegen+itembonuses.ManaRegen+(level/5);
}
else {
medding = false;
regen = 2+spellbonuses.ManaRegen+itembonuses.ManaRegen+(level/5);
}
if (IsSitting()){ //this should be changed so we dont med while camping, etc...
if(HasSkill(MEDITATE)) {
medding = true;
regen = (((GetSkill(MEDITATE)/10)+(level-(level/4)))/4)+4;
regen += spellbonuses.ManaRegen + itembonuses.ManaRegen;
CheckIncreaseSkill(MEDITATE, -10);
}
else
regen = 2+spellbonuses.ManaRegen+itembonuses.ManaRegen+(level/5);
}
else {
medding = false;
regen = 2+spellbonuses.ManaRegen+itembonuses.ManaRegen+(level/5);
}
regen += GetAA(aaMentalClarity);
regen += GetAA(aaBodyAndMindRejuvenation);
// if out of combat regen is turned on
if (OOCRegen == 1) {
// if character is in combat
if (IsEngaged())
{
// normal regen
regen = regen / 100;
}
//if not
else
{
// regen at normal regen * mpregen value
regen = (regen / 100) * RuleI(Character, ManaRegenMultiplier) ;
}
} else {
regen = (regen * RuleI(Character, ManaRegenMultiplier)) / 100;
}
SetMana(GetMana() + regen);
SendManaUpdatePacket();
}