diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp index fa8265876..57b55b5cc 100644 --- a/code/nel/src/gui/group_html.cpp +++ b/code/nel/src/gui/group_html.cpp @@ -2011,7 +2011,6 @@ namespace NLGUI it = styles.find("background-image"); if (it != styles.end()) { - nlinfo("found background-image %s", it->second.c_str()); string image = (*it).second; string::size_type texExt = toLower(image).find("url("); // Url image diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp index 38e48cb21..d0a3557af 100644 --- a/code/ryzom/client/src/client_cfg.cpp +++ b/code/ryzom/client/src/client_cfg.cpp @@ -1046,7 +1046,7 @@ void CClientConfig::setValues() ///////////////////////// // NEW PATCHING SYSTEM // - READ_BOOL_DEV(PatchWanted) + READ_BOOL_FV(PatchWanted) #ifdef RZ_USE_CUSTOM_PATCH_SERVER READ_STRING_FV(PatchUrl) diff --git a/code/ryzom/client/src/entities.cpp b/code/ryzom/client/src/entities.cpp index d4725d2ae..23786b6b7 100644 --- a/code/ryzom/client/src/entities.cpp +++ b/code/ryzom/client/src/entities.cpp @@ -548,7 +548,6 @@ CShapeInstanceReference CEntityManager::createInstance(const string& shape, cons if (_LastRemovedInstance != -1) { idx = _LastRemovedInstance; - nlinfo("OK adding to index : %d", idx); _ShapeInstances[idx].Instance = instance; _ShapeInstances[idx].Primitive = primitive; _ShapeInstances[idx].ContextText = text; @@ -562,7 +561,6 @@ CShapeInstanceReference CEntityManager::createInstance(const string& shape, cons } else { - nlinfo("OK url, text = %s, %s", url.c_str(), text.c_str()); CShapeInstanceReference instref = CShapeInstanceReference(instance, text, url, !text.empty() || !url.empty()); instref.Primitive = primitive; idx = _ShapeInstances.size(); @@ -585,11 +583,15 @@ bool CEntityManager::deleteInstance(uint32 idx) { PACS->removePrimitive(primitive); } - _ShapeInstances[idx].Primitive = NULL; - _ShapeInstances[idx].Deleted = true; - _ShapeInstances[idx].LastDeleted = _LastRemovedInstance; - _LastRemovedInstance = idx; - + + if (!_ShapeInstances[idx].Deleted) + { + _ShapeInstances[idx].Primitive = NULL; + _ShapeInstances[idx].Deleted = true; + _ShapeInstances[idx].LastDeleted = _LastRemovedInstance; + _LastRemovedInstance = idx; + } + return true; } @@ -741,8 +743,6 @@ bool CEntityManager::setupInstance(uint32 idx, const vector &keys, const for (uint32 i=0; i < keys.size(); i++) { - nlinfo("Setup [%s] with [%s]", keys[i].c_str(), values[i].c_str()); - string param = keys[i]; if (param == "transparency") { @@ -915,15 +915,23 @@ CShapeInstanceReference CEntityManager::getShapeInstanceUnderPos(float x, float //= _ShapeInstances[i].SelectionBox; if(!_ShapeInstances[i].Instance.empty()) { _ShapeInstances[i].Instance.getShapeAABBox(bbox); + CVector bbox_min; + CVector bbox_max; + if (bbox.getCenter() == CVector::Null) { - bbox.setMinMax(CVector(-0.3f, -0.3f, -0.3f)+_ShapeInstances[i].Instance.getPos(), CVector(0.3f, 0.3f, 0.3f)+_ShapeInstances[i].Instance.getPos()); + bbox_min = CVector(-0.5f, -0.5f, -0.5f); + bbox_max = CVector(-0.5f, -0.5f, -0.5f); } else { - bbox.setMinMax((bbox.getMin()*_ShapeInstances[i].Instance.getScale().x)+_ShapeInstances[i].Instance.getPos(), (bbox.getMax()*_ShapeInstances[i].Instance.getScale().x)+_ShapeInstances[i].Instance.getPos()); + bbox_min = bbox.getMin(); + bbox_max = bbox.getMax(); } - if(bbox.intersect(pos, pos+dir*50.0f)) + + bbox.setMinMax((bbox_min*_ShapeInstances[i].Instance.getScale().x)+_ShapeInstances[i].Instance.getPos(), (bbox_max*_ShapeInstances[i].Instance.getScale().x)+_ShapeInstances[i].Instance.getPos()); + + if(bbox.intersect(pos, pos+dir*100.0f)) { float dist = (bbox.getCenter()-pos).norm(); if (dist < bestDist) diff --git a/code/ryzom/client/src/interface_v3/lua_ihm_ryzom.cpp b/code/ryzom/client/src/interface_v3/lua_ihm_ryzom.cpp index 547ce8061..bc4e01025 100644 --- a/code/ryzom/client/src/interface_v3/lua_ihm_ryzom.cpp +++ b/code/ryzom/client/src/interface_v3/lua_ihm_ryzom.cpp @@ -1204,8 +1204,20 @@ int CLuaIHMRyzom::getShapeIdAt(CLuaState &ls) uint32 x = (uint32)ls.toInteger(1); uint32 y = (uint32)ls.toInteger(2); + + uint32 w, h; + CViewRenderer &viewRender = *CViewRenderer::getInstance(); + viewRender.getScreenSize(w, h); + if(x >= w || y >= h) { + ls.push(-1); + return 1; + } + + float cursX = (float)x/(float)w; + float cursY = (float)y/(float)h; + sint32 instance_idx; - EntitiesMngr.getShapeInstanceUnderPos(x, y, instance_idx); + EntitiesMngr.getShapeInstanceUnderPos(cursX, cursY, instance_idx); ls.push(instance_idx); return 1; @@ -2177,7 +2189,6 @@ int CLuaIHMRyzom::addShape(CLuaState &ls) UMovePrimitive *primitive = instref.Primitive; if (primitive) { - nlinfo("ok"); NLMISC::CAABBox bbox; instance.getShapeAABBox(bbox); @@ -2188,11 +2199,7 @@ int CLuaIHMRyzom::addShape(CLuaState &ls) primitive->setPrimitiveType(UMovePrimitive::_2DOrientedBox); primitive->setSize((bbox.getMax().x - bbox.getMin().x)*scale, (bbox.getMax().y - bbox.getMin().y)*scale); primitive->setHeight((bbox.getMax().z - bbox.getMin().z)*scale); - //primitive->setSize(9.0f, 9.0f); - //primitive->setHeight(12.0f); - - nlinfo("%f, %f, %f", (bbox.getMax().x - bbox.getMin().x)*scale, (bbox.getMax().y - bbox.getMin().y)*scale, (bbox.getMax().z - bbox.getMin().z)*scale ); - + primitive->setCollisionMask(MaskColPlayer | MaskColNpc | MaskColDoor); primitive->setOcclusionMask(MaskColPlayer | MaskColNpc | MaskColDoor); primitive->setObstacle(true); diff --git a/code/ryzom/client/src/r2/tool.cpp b/code/ryzom/client/src/r2/tool.cpp index b9cbc874d..5d8e95cc2 100644 --- a/code/ryzom/client/src/r2/tool.cpp +++ b/code/ryzom/client/src/r2/tool.cpp @@ -202,7 +202,7 @@ void CTool::getMouseRightDown(bool &down, sint32 &x, sint32 &y) x = y = -1; return; } - down = cursor->getPointerMiddleDown(x, y); + down = cursor->getPointerRightDown(x, y); } @@ -372,7 +372,6 @@ bool CTool::raytrace(const NLMISC::CVector &segmentStart, const NLMISC::CVector { if (Landscape) { - nlinfo("landscape=%d,%d", segmentStart.x, segmentStart.y); // use a shortest distance for collision manager (for speed) CVector segmentEnd = segmentStart + 100.f * dir; float dist = Landscape->getRayCollision(segmentStart, segmentEnd); @@ -485,27 +484,19 @@ bool CTool::computeNearestValidSurfaceFromHeightMap(float x, float y, NLMISC::CV const CScenarioEntryPoints::CCompleteIsland *islandDesc = getEditor().getIslandCollision().getCurrIslandDesc(); if (!islandDesc) return false; - - nlinfo("have island"); - + sint mapX = (sint) (x - islandDesc->XMin); sint mapY = (sint) (y - islandDesc->YMin); - nlinfo("mapX,mapY=%d,%d island=%d,%d-%d,%d", mapX, mapY, islandDesc->XMin, islandDesc->YMin, islandDesc->XMax, islandDesc->YMax); if (mapX < 0 || mapY < 0 || mapX >= (islandDesc->XMax - islandDesc->XMin) || mapY >= (islandDesc->YMax - islandDesc->YMin)) return false; sint hmZ = heightMap(mapX, mapY); - nlinfo("HeightMap = %d", hmZ); if (hmZ >= 0x7ffe) return false; // not an accessible pos - - nlinfo("accessible pos"); - + if (!isIslandValidPos(heightMap, *islandDesc, x + 0.5f, y) || !isIslandValidPos(heightMap, *islandDesc, x - 0.5f, y) || !isIslandValidPos(heightMap, *islandDesc, x, y + 0.5f) || !isIslandValidPos(heightMap, *islandDesc, x, y - 0.5f)) return false; - - nlinfo("valid pos"); - + float z = 1.f + 2.f * hmZ; // this is a possibly valid position // compute nearest surface from here, and see if not far from the intersection @@ -524,9 +515,7 @@ bool CTool::computeNearestValidSurfaceFromHeightMap(float x, float y, NLMISC::CV inter1Found = inter1Found && normal1.z >= minAngleSin; inter2Found = inter2Found && normal2.z >= minAngleSin; if (!inter1Found && !inter2Found) return false; - - nlinfo("inter foud"); - + if (inter1Found && inter2Found) { // because z in heightmap in usually a 'ceil' of real height, tends to favor surface below @@ -543,7 +532,6 @@ bool CTool::computeNearestValidSurfaceFromHeightMap(float x, float y, NLMISC::CV { inter = inter2; } - nlinfo("inter = %d,%d", inter.x, inter.y); return true; } @@ -573,7 +561,6 @@ CTool::TRayIntersectionType CTool::computeLandscapeRayIntersection(const CWorldV { CVector delta = bias * (cardinals[k].x * worldViewRay.Right + cardinals[k].y * worldViewRay.Up); found = raytrace(worldViewRay.Origin + delta, worldViewRay.Dir, inter); - nlinfo("found"); } if (!found) { @@ -585,12 +572,10 @@ CTool::TRayIntersectionType CTool::computeLandscapeRayIntersection(const CWorldV const CArray2D &heightMap = getEditor().getIslandCollision().getHeightMap(); if (!heightMap.empty()) { - nlinfo("okidoi : %d, %d", inter.x, inter.y); // if heightmap is present, use it because it gives us more reliable information CVector surfPos; if (!computeNearestValidSurfaceFromHeightMap(inter.x, inter.y, surfPos)) return InvalidPacsPos; static volatile float threshold = 2.f; - nlinfo("found"); return (inter - surfPos).norm() < threshold ? ValidPacsPos : InvalidPacsPos; } @@ -601,7 +586,6 @@ CTool::TRayIntersectionType CTool::computeLandscapeRayIntersection(const CWorldV } else { - nlinfo("GR"); // see if pacs collisions are ok at that pos NLPACS::UGlobalPosition dummyPos; return getPacsType(inter, 2.f, dummyPos);