Changeset 338 for trunk/game/scripts


Ignore:
Timestamp:
10/19/09 23:49:55 (10 years ago)
Author:
Kaydeth_parpg
Message:

Ticket #123: Patch by Vaporice. Fixed a little bug in the outline renderer where two objects could be outlined at the same time (which is bad). fixes[s:trac, t:123]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/scripts/world.py

    r327 r338  
    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 
Note: See TracChangeset for help on using the changeset viewer.