Fix objects being selected behind a node
authorNovatux <nathanael.courant@laposte.net>
Thu, 2 Jan 2014 13:26:21 +0000 (14:26 +0100)
committerNovatux <nathanael.courant@laposte.net>
Thu, 2 Jan 2014 13:26:21 +0000 (14:26 +0100)
src/game.cpp

index 33668fb44168580011ec827e2ca3ade393896004..c768440d3deabf62450e1febda54871e87a681c4 100644 (file)
@@ -239,6 +239,8 @@ PointedThing getPointedThing(Client *client, v3f player_position,
        INodeDefManager *nodedef = client->getNodeDefManager();
        ClientMap &map = client->getEnv().getClientMap();
 
+       f32 mindistance = BS * 1001;
+
        // First try to find a pointed at active object
        if(look_for_object)
        {
@@ -260,16 +262,15 @@ PointedThing getPointedThing(Client *client, v3f player_position,
                                                selection_box->MaxEdge + pos));
                        }
 
+                       mindistance = (selected_object->getPosition() - camera_position).getLength();
 
                        result.type = POINTEDTHING_OBJECT;
                        result.object_id = selected_object->getId();
-                       return result;
                }
        }
 
        // That didn't work, try to find a pointed at node
 
-       f32 mindistance = BS * 1001;
        
        v3s16 pos_i = floatToInt(player_position, BS);