--- deliantra/server/common/player.C 2008/09/09 10:51:59 1.44 +++ deliantra/server/common/player.C 2009/01/08 00:54:55 1.50 @@ -48,8 +48,7 @@ if (op && op->type == PLAYER && op->arch - && op->arch->race - && !strcmp (op->arch->race, "dragon")) + && op->arch->race == shstr_dragon) return 1; return 0; @@ -358,7 +357,9 @@ buf << *cfpod++; while (*cfpod == '\n'); } - else if (*cfpod != ' ') + else if (*cfpod == ' ') + buf << '\n'; + else buf << ' '; // verbatim block? @@ -423,7 +424,7 @@ case 'G': // gender { - expand_cfpod (pl, nest, cfpod, end); + cfpod = expand_cfpod (pl, nest, cfpod, end); nest << '\0'; // zero-terminate const char *str = nest.linearise (); @@ -431,7 +432,7 @@ if (sep) { - if (pl->gender || 1) + if (pl->gender) buf.add (sep + 1, nest.size () - (sep - str) - 2); else buf.add (str, sep - str); @@ -463,12 +464,12 @@ buf << ""; cfpod = expand_cfpod (pl, buf, cfpod, -2); buf << "\n"; + + while (*cfpod == '\n') + buf << *cfpod++; } while (*cfpod == ' '); - while (*cfpod == '\n') - buf << *cfpod++; - break; } }