Seria algo asi quizas?
$master_forum = 1;
$fid_list = array($master_forum);
foreach(cache_forums() as $fid => $forum)
{
if(my_strpos(','.$forum['parentlist'].',', ','.$master_forum.',') !== false) // este subforum esta dentro del master_forum
{
$fid_list[] = $fid;
continue;
}
}
// ya tenemos todos los FID que necesitamos en $fid_list
$query = $db->simple_select('threads', 'COUNT(tid) as threads', 'fid IN('.implode(',', $fid_list).')');
$total_threads = (int)$db->fetch_field($query, 'threads');
// Hay int $total_threads en este foro.
El codigo dudo funcione asi nomas pero podria guiarte, igual hay que verificar que solo consulte temas visibles para el usuario, no movidos, etc.
Podria ser muy tedioso, por eso mi duda sigue, que te planteas con el numero?