Changeset 598


Ignore:
Timestamp:
07/24/10 17:48:44 (9 years ago)
Author:
beliar
Message:

Patch by Beliar.

  • Fixed crash when picking up items
  • changed displayObjectText of GameSceneView?, it now stores the id of the instance instead of the instance.
  • getObjectById of GameState? can now be called without a map_id, the method will now use its getMapOfObject method if no map is given.
Location:
trunk/game
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/game/objects/items/generic_item.xml

    r596 r598  
    11<?fife type="object"?> 
    2 <object id="generic_item" namespace="PARPG" blocking="1" static="0"> 
     2<object id="generic_item" namespace="PARPG" blocking="0" static="0"> 
    33        <image source="generic_item.png" direction="0" /> 
    44</object> 
  • trunk/game/scripts/gamesceneview.py

    r584 r598  
    4343        self.faded_objects = set() 
    4444 
    45     def displayObjectText(self, obj, text): 
     45    def displayObjectText(self, obj_id, text): 
    4646        """Display on screen the text of the object over the object. 
    47            @type obj: fife.instance 
    48            @param obj: object to draw over 
     47           @type obj_id: id of fife.instance 
     48           @param obj: id of object to draw over 
    4949           @type text: String 
    5050           @param text: text to display over object 
    5151           @return: None""" 
    52         obj.say(str(text), 1000) 
     52        try: 
     53            if obj_id: 
     54                obj = self.model.active_map.agent_layer.getInstance(obj_id) 
     55            else: 
     56                obj = None 
     57        except RuntimeError as error: 
     58            if error.args[0].split(',')[0].strip() == "_[NotFound]_": 
     59                obj = None 
     60            else: 
     61                raise 
     62        if obj: 
     63            obj.say(str(text), 1000) 
    5364 
    5465    def onWalk(self, click): 
     
    90101 
    91102 
     103    #def removeHighlight(self): 
     104         
     105     
    92106    def highlightFrontObject(self, mouse_coords): 
    93107        """Highlights the object that is at the  
     
    99113            if front_obj != None: 
    100114                if self.highlight_obj == None \ 
    101                             or front_obj.getId() != \ 
    102                             self.highlight_obj.getId(): 
    103                     if self.highlight_obj: 
    104                         self.displayObjectText(self.highlight_obj,"") 
     115                                    or front_obj.getId() != \ 
     116                                    self.highlight_obj: 
     117                    if self.model.game_state.hasObject(front_obj.getId()): 
     118                        self.displayObjectText(self.highlight_obj, "") 
    105119                    self.model.active_map.outline_renderer.removeAllOutlines() 
    106                     self.highlight_obj = front_obj 
     120                    self.highlight_obj = front_obj.getId() 
    107121                    self.model.active_map.outline_renderer.addOutlined( 
    108                                                     self.highlight_obj,  
     122                                                    front_obj,  
    109123                                                    0, 
    110124                                                    137, 255, 2) 
    111125                    # get the text 
    112                     item = self.model.objectActive( 
    113                                                     self.highlight_obj.getId()) 
     126                    item = self.model.objectActive(self.highlight_obj) 
    114127                    if item is not None: 
    115128                        self.displayObjectText(self.highlight_obj,  
  • trunk/game/scripts/gamestate.py

    r586 r598  
    8989        return None 
    9090     
    91     def getObjectById(self, obj_id, map_id): 
     91    def getObjectById(self, obj_id, map_id = None): 
    9292        """Gets an object by its object id and map id 
    9393           @type obj_id: String 
     
    9696           @param map_id: It id of the map containing the object. 
    9797           @returns: The object or None.""" 
     98        if not map_id: 
     99            map_id = self.getMapOfObject(obj_id) 
    98100        if not map_id in self.objects: 
    99101            self.objects[map_id] = {} 
Note: See TracChangeset for help on using the changeset viewer.