Ticket #123: outlinefix.diff

File outlinefix.diff, 1.9 KB (added by Vaporice, 10 years ago)

This fixes it

  • scripts/world.py

     
    238238                                                self.active_map.agent_layer) 
    239239        # no object returns an empty tuple 
    240240        if(i != ()): 
     241            front_y = 0 
     242            front_obj = None 
     243 
    241244            for obj in i: 
    242245                # check to see if this in our list at all 
    243246                if(self.data.objectActive(obj.getId())): 
    244                     # yes, so outline  
    245                     self.active_map.outline_render.addOutlined(obj, 0, \ 
     247                    # check if the object is on the foreground  
     248                    obj_map_coords = \ 
     249                                      obj.getLocation().getMapCoordinates() 
     250                    obj_screen_coords = self.active_map.cameras["main"]\ 
     251                                    .toScreenCoordinates(obj_map_coords) 
     252                     
     253                    if obj_screen_coords.y > front_y: 
     254                        #Object on the foreground 
     255                        front_y = obj_screen_coords.y 
     256                        front_obj = obj 
     257 
     258            if front_obj:                     
     259                self.active_map.outline_render.removeAllOutlines()  
     260                self.active_map.outline_render.addOutlined(front_obj, 0, \ 
    246261                                                               137, 255, 2) 
    247                     # get the text 
    248                     item = self.data.objectActive(obj.getId()) 
    249                     if(item is not None): 
    250                         self.displayObjectText(obj, item.name) 
     262                # get the text 
     263                item = self.data.objectActive(front_obj.getId()) 
     264                if(item is not None): 
     265                    self.displayObjectText(front_obj, item.name) 
    251266        else: 
    252267            # erase the outline 
    253268            self.active_map.outline_render.removeAllOutlines()