Something wrong with folowing code (besch/writer/vehicle_writer.cc)
uint8 upgrades = 0;
do {
char buf[40];
sprintf(buf, "upgrade[%d]", upgrades);
str = obj.get(buf);
found = str.size() > 0;
if (found)
{
if (upgrades == 0 && !STRICMP(str.c_str(), "none"))
{
if (!STRICMP(str.c_str(), "none"))
{
str = "";
}
xref_writer_t::instance()->write_obj(fp, node, obj_vehicle, str.c_str(), false);
upgrades++;
}
}
} while (found);
!STRICMP(str.c_str(), "none") == false for first iteration so upgrades never incremented and we have infinite loop.