コード例 #1
0
ファイル: parser.c プロジェクト: stanbery/atlantis
unit *getunitg(region *r, const faction *f)
{
    const char *s;

    s = getstr();

    if (!_strcmpl(s, "new")) {
        return getnewunit(r, f);
    }
    return findunitg(atoi(s));
}
コード例 #2
0
ファイル: parse.tab.c プロジェクト: rolandkrause/isb101
struct unittype *
makenumunit(double num,int *myerr)
{
  struct unittype *ret;
  ret=getnewunit();
  if (!ret){
    *myerr = E_PARSEMEM;
    return 0;  
  }
  ret->factor = num;
  *myerr = 0;
  return ret;
}
コード例 #3
0
ファイル: parser.c プロジェクト: stanbery/atlantis
int getunit(region * r, const faction *f, unit **uptr)
{
    int n;
    const char *s;
    unit *u;

    s = getstr();

    if (!_strcmpl(s, "new")) {
        unit *u = getnewunit(r, f);
        if (u) {
            *uptr = u;
            return U_UNIT;
        } else {
            *uptr = 0;
            return U_NOTFOUND;
        }
    }

    if (!region_isocean(r) && !_strcmpl(s, "peasants")) {
        *uptr = 0;
        return U_PEASANTS;
    }

    n = atoi(s);

    if (n == 0) {
        *uptr = 0;
        return U_NONE;
    }

    for (u=r->units;u;u=u->next) {
        if (u->no == n && !u->isnew) {
            *uptr = u;
            return U_UNIT;
        }
    }
    *uptr = 0;
    return U_NOTFOUND;
}