コード例 #1
0
ファイル: unit.c プロジェクト: UweKopf/server
void name_unit(unit * u)
{
  if (u_race(u)->generate_name) {
    const char *gen_name = u_race(u)->generate_name(u);
    if (gen_name) {
      unit_setname(u, gen_name);
    } else {
      unit_setname(u, racename(u->faction->locale, u, u_race(u)));
    }
  } else {
    char name[32];
    const char * result;
    const struct locale * lang = u->faction ? u->faction->locale : default_locale;
    if (lang) {
      static const char * prefix[MAXLOCALES];
      int i = locale_index(lang);
      if (!prefix[i]) {
        prefix[i] = LOC(lang, "unitdefault");
        if (!prefix[i]) {
          prefix[i] = parameters[P_UNIT];
        }
      }
      result = prefix[i];
    } else {
      result = parameters[P_UNIT];
    }
    strlcpy(name, result, sizeof(name));
    strlcat(name, " ", sizeof(name));
    strlcat(name, itoa36(u->no), sizeof(name));
    unit_setname(u, name);
  }
}
コード例 #2
0
ファイル: faction.c プロジェクト: eressea/server
void save_special_items(unit *usrc)
{
    unit *u;
    region *r = usrc->region;
    faction *fm = get_monsters();
    static const race *rc_ghost;
    static int cache;

    if (rc_changed(&cache)) {
        rc_ghost = get_race(RC_TEMPLATE);
    }
    for (u = r->units; u; u = u->next) {
        if (u->faction == fm) {
            give_special_items(u, &usrc->items);
            return;
        }
    }
    u = create_unit(r, fm, 1, rc_ghost, 0, NULL, NULL);
    unit_setname(u, unit_getname(usrc));
    if (usrc->number > 1) {
        /* some units have plural names, it would be neat if they aren't single: */
        scale_number(u, 2);
    }
    set_racename(&u->attribs, "ghost");
    give_special_items(u, &usrc->items);
}
コード例 #3
0
ファイル: combatspells.c プロジェクト: ennorehling/eressea
int sp_igjarjuk(castorder *co) {
    unit *u;
    fighter *fm = co->magician.fig, *fi;
    const race *rc = get_race(RC_WYRM);
    fi = summon_allies(fm, rc, 1);
    u = fi->unit;
    unit_setname(u, "Igjarjuk");
    log_info("%s summons Igjarjuk in %s", unitname(fm->unit), regionname(u->region, 0));
    return co->level;
}