diff --git a/code/ryzom/client/src/village.cpp b/code/ryzom/client/src/village.cpp --- a/code/ryzom/client/src/village.cpp +++ b/code/ryzom/client/src/village.cpp @@ -85,7 +85,9 @@ NLMISC::CVector pos; - pos.z = sheet.Altitude; + NLMISC::CVector offsetPos; // Used because I believe _IG uses a different coord system. + pos.z = sheet.Altitude; + std::string zoneName; NLMISC::CVector2f zonePos; @@ -94,8 +96,13 @@ nlwarning("Village : invalid zone name (%s)", sheet.Zone.c_str()); return false; } - pos.x = zonePos.x + sheet.CenterX; - pos.y = zonePos.y + sheet.CenterY; + + pos.x = sheet.CenterX; + pos.y = sheet.CenterY; + + offsetPos = pos; + pos.x += zonePos.x; + pos.y += zonePos.y; _IG.init(scene, pos, sheet.ForceLoadDist, sheet.LoadDist, sheet.UnloadDist); _IG.setLoadedIGMap(loadedIGMap); @@ -108,7 +115,7 @@ // For each children for(uint k = 0; k < sheet.IGs.size(); ++k) { - _IG.addIG(sheet.IGs[k].IgName, sheet.IGs[k].ParentName, CVector::Null, CQuat::Identity); + _IG.addIG(sheet.IGs[k].IgName, sheet.IGs[k].ParentName, offsetPos, CQuat::Identity); } _Scene = scene; _IsOutpost= false;