You have a cEntity reference. That can be cast to any (valid) descendant reference:
```cpp
void Fn1(const cEntity & a_Entity)
{
  if (a_Entity.IsMonster())
  {
    Fn2((const cMonster &)a_Entity);
  }
}

void Fn2(const cMonster & a_Monster)
...
```