I haven't read through all of it because there were a lot of utilities:: that were making me dizzy, but I think this is your problem
if(indicator = true)
{
Sprite.SetImage(pMegusta->Image);
indicator = false;
}
else if(indicator = false)
{
Sprite.SetImage(pMudkip->Image);
indicator = true;
}
1. You need == not =
2. You need not compare to true or false at all!, and the second if condition is unnecessary. Change it to this
if(indicator)
{
Sprite.SetImage(pMegusta->Image);
indicator = false;
}
else
{
Sprite.SetImage(pMudkip->Image);
indicator = true;
}