- there are no roads in astral space
This commit is contained in:
Enno Rehling 2008-05-20 14:28:31 +00:00
parent 66d7cc0fdf
commit 390bf522f7
3 changed files with 8 additions and 4 deletions

View file

@ -1126,8 +1126,8 @@ roadto(const region * r, direction_t dir)
if (get_curse(r2->attribs, roads_ct)!=NULL) return true; if (get_curse(r2->attribs, roads_ct)!=NULL) return true;
} }
if (r->terrain->max_road == 0) return false; if (r->terrain->max_road <= 0) return false;
if (r2->terrain->max_road == 0) return false; if (r2->terrain->max_road <= 0) return false;
if (rroad(r, dir) < r->terrain->max_road) return false; if (rroad(r, dir) < r->terrain->max_road) return false;
if (rroad(r2, dir_invert(dir)) < r2->terrain->max_road) return false; if (rroad(r2, dir_invert(dir)) < r2->terrain->max_road) return false;
return true; return true;

View file

@ -1667,7 +1667,8 @@ parse_terrains(xmlDocPtr doc)
terrain->_name = strdup((const char *)propValue); terrain->_name = strdup((const char *)propValue);
xmlFree(propValue); xmlFree(propValue);
terrain->max_road = (short)xml_ivalue(node, "road", -1); terrain->max_road = (short)xml_ivalue(node, "road", 0);
assert(terrain->max_road>=0);
terrain->size = xml_ivalue(node, "size", 0); terrain->size = xml_ivalue(node, "size", 0);
if (xml_bvalue(node, "forbidden", false)) terrain->flags |= FORBIDDEN_REGION; if (xml_bvalue(node, "forbidden", false)) terrain->flags |= FORBIDDEN_REGION;

View file

@ -195,13 +195,16 @@ region_setresource(region& r, const char * type, int value)
static void static void
region_setroad(region& r, int dir, lua_Number size) region_setroad(region& r, int dir, lua_Number size)
{ {
rsetroad(&r, (direction_t)dir, (short)(r.terrain->max_road * size)); if (r.terrain->max_road>0) {
rsetroad(&r, (direction_t)dir, (short)(r.terrain->max_road * size));
}
} }
static lua_Number static lua_Number
region_getroad(region& r, int dir) region_getroad(region& r, int dir)
{ {
lua_Number result = rroad(&r, (direction_t)dir); lua_Number result = rroad(&r, (direction_t)dir);
if (r.terrain->max_road<=0 || result<=0) return 0;
return r.terrain->max_road / result; return r.terrain->max_road / result;
} }