bool MapGeometryLoader::Build() { eqLogMessage(LogTrace, "Attempting to load %s.eqg as a standard eqg.", m_zoneName.c_str()); std::string filePath = m_eqPath + "\\" + m_zoneName; EQEmu::EQGLoader eqg; std::vector<std::shared_ptr<EQEmu::EQG::Geometry>> eqg_models; std::vector<std::shared_ptr<EQEmu::Placeable>> eqg_placables; std::vector<std::shared_ptr<EQEmu::EQG::Region>> eqg_regions; std::vector<std::shared_ptr<EQEmu::Light>> eqg_lights; if (eqg.Load(filePath, eqg_models, eqg_placables, eqg_regions, eqg_lights)) { return CompileEQG(eqg_models, eqg_placables, eqg_regions, eqg_lights); } eqLogMessage(LogTrace, "Attempting to load %s.eqg as a v4 eqg.", m_zoneName.c_str()); EQEmu::EQG4Loader eqg4; if (eqg4.Load(filePath, terrain)) { return CompileEQGv4(); } eqLogMessage(LogTrace, "Attempting to load %s.s3d as a standard s3d.", m_zoneName.c_str()); EQEmu::S3DLoader s3d; std::vector<EQEmu::S3D::WLDFragment> zone_frags; std::vector<EQEmu::S3D::WLDFragment> zone_object_frags; std::vector<EQEmu::S3D::WLDFragment> object_frags; if (!s3d.ParseWLDFile(filePath + ".s3d", m_zoneName + ".wld", zone_frags)) { return false; } if (!s3d.ParseWLDFile(filePath + ".s3d", "objects.wld", zone_object_frags)) { return false; } if (!s3d.ParseWLDFile(filePath + "_obj.s3d", m_zoneName + "_obj.wld", object_frags)) { return false; } return CompileS3D(zone_frags, zone_object_frags, object_frags); }
bool Map::Build(std::string zone_name, bool ignore_collide_tex) { LoadIgnore(zone_name); eqLogMessage(LogTrace, "Attempting to load %s.eqg as a standard eqg.", zone_name.c_str()); EQEmu::EQGLoader eqg; std::vector<std::shared_ptr<EQEmu::EQG::Geometry>> eqg_models; std::vector<std::shared_ptr<EQEmu::Placeable>> eqg_placables; std::vector<std::shared_ptr<EQEmu::EQG::Region>> eqg_regions; std::vector<std::shared_ptr<EQEmu::Light>> eqg_lights; if (eqg.Load(zone_name, eqg_models, eqg_placables, eqg_regions, eqg_lights)) { return CompileEQG(eqg_models, eqg_placables, eqg_regions, eqg_lights); } eqLogMessage(LogTrace, "Attempting to load %s.eqg as a v4 eqg.", zone_name.c_str()); EQEmu::EQG4Loader eqg4; if (eqg4.Load(zone_name, terrain)) { return CompileEQGv4(); } eqLogMessage(LogTrace, "Attempting to load %s.s3d as a standard s3d.", zone_name.c_str()); EQEmu::S3DLoader s3d; std::vector<EQEmu::S3D::WLDFragment> zone_frags; std::vector<EQEmu::S3D::WLDFragment> zone_object_frags; std::vector<EQEmu::S3D::WLDFragment> object_frags; if (!s3d.ParseWLDFile(zone_name + ".s3d", zone_name + ".wld", zone_frags)) { return false; } if (!s3d.ParseWLDFile(zone_name + ".s3d", "objects.wld", zone_object_frags)) { return false; } if (!s3d.ParseWLDFile(zone_name + "_obj.s3d", zone_name + "_obj.wld", object_frags)) { return false; } return CompileS3D(zone_frags, zone_object_frags, object_frags, ignore_collide_tex); }