/[ambar]/ambar/objeto.py
ViewVC logotype

Diff of /ambar/objeto.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.1 by pabloruiz, Tue Nov 5 22:58:22 2002 UTC revision 2.2 by amoyav, Sat Dec 7 23:09:36 2002 UTC
# Line 38  from interfazpnj import * Line 38  from interfazpnj import *
38    
39    
40    
41  class Objeto:  class Objeto(object):
42      """Un objeto dentro del juego.      """Un objeto dentro del juego.
43            
44      Contiene los siguientes atributos:      Contiene los siguientes atributos:
# Line 83  class Objeto: Line 83  class Objeto:
83      poniendolo en su estado inicial. Esta instancia podrá pasar a manos de pjs y pnjs, y se      poniendolo en su estado inicial. Esta instancia podrá pasar a manos de pjs y pnjs, y se
84      puede salvar a disco junto con la sala o el personaje que lo contiene.      puede salvar a disco junto con la sala o el personaje que lo contiene.
85    
   
86      Invariantes:      Invariantes:
87        __id != None        __id != None
88        __version != None        __version != None
# Line 133  class Objeto: Line 132  class Objeto:
132    
133      # Version del sistema de objetos (se incrementa cada vez que varian los atributos      # Version del sistema de objetos (se incrementa cada vez que varian los atributos
134      # de la clase Objeto)      # de la clase Objeto)
135      VERSION_OBJETO = '1.0'      VERSION_OBJETO = '1.0.1'
136    
137      DIR_DESC_OBJETOS = 'desc_objetos'      DIR_DESC_OBJETOS = 'desc_objetos'
138      EXT_DESC_OBJETOS = '.xml'      EXT_DESC_OBJETOS = '.xml'
# Line 397  class Objeto: Line 396  class Objeto:
396    
397          # Verificar la versión.          # Verificar la versión.
398          if not self.__dict__.has_key("_Objeto__version"):          if not self.__dict__.has_key("_Objeto__version"):
399              escribir("Cargado objeto " + self.id + " obsoleto: sin versión," +              raise ValueError("Cargado objeto " + self.id + " obsoleto: sin versión," +
400                       " cuando se esperaba " + Objeto.VERSION_OBJETO + ". Reseteando objeto.")                               " cuando se esperaba " + Objeto.VERSION_OBJETO)
401              if atributos.has_key('id'):  
402                  self.__dict__ = {'_Objeto__id':atributos['id']}          assert(Objeto.VERSION_OBJETO == "1.0.1")
403              else:          while self.__version != "1.0.1":
404                  self.__dict__ = {'_Objeto__id':atributos['_Objeto__id']}  
405              self.__inicializar_objeto()          # La versión 1.0.1 produce una ruptura con las anteriores ya que se migra al formato
406            # de clases de Python 2.2, y no es compatible con el anterior. Hay que borrar todas
407            # las salas, personajes y objetos.
408            #
409    
         assert(Objeto.VERSION_OBJETO == "1.0")  
           
         if self.__version != "1.0":  
410              escribir("Cargado objeto " + self.__id + " con versión desconocida: " +              escribir("Cargado objeto " + self.__id + " con versión desconocida: " +
411                       self.__version + ", cuando se esperaba " + Objeto.VERSION_OBJETO +                       self.__version + ", cuando se esperaba " + Objeto.VERSION_OBJETO)
                      ". Reseteando objeto.")  
             if atributos.has_key('id'):  
                 self.__dict__ = {'_Objeto__id':atributos['id']}  
             else:  
                 self.__dict__ = {'_Objeto__id':atributos['_Objeto__id']}  
             self.__inicializar_objeto()  
   
412                            
413                    
414  # Código para pruebas unitarias del módulo.  # Código para pruebas unitarias del módulo.

Legend:
Removed from v.2.1  
changed lines
  Added in v.2.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26