Ñò
¥¿’Oc           @   sø   d  d k  Z  d  d k l Z d  d k l Z d  d k l Z l Z e o d  d k l	 Z	 n d Z
 e e
 ƒ d Z e d „  e e
 ƒ Dƒ ƒ Z d Z e d „  e Dƒ ƒ Z d Z e d „  e Dƒ ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   IntType(   t   _xml(   t	   IS_CLIENTt   ITEM_DEFS_PATH(   t   i18nt   reservedt   vehiclet   vehicleChassist   vehicleTurrett
   vehicleGunt   vehicleEnginet   vehicleFuelTankt   vehicleRadiot   tankmant   optionalDevicet   shellt	   equipmenti   c         c   s'   x  |  ] } | d  | d f Vq Wd S(   i   i    N(    (   t   .0t   x(    (    s    scripts/common/items/__init__.pys	   <genexpr>!   s   	 c         c   s   x |  ] } t  | Vq Wd  S(   N(   t   ITEM_TYPE_INDICES(   R   R   (    (    s    scripts/common/items/__init__.pys	   <genexpr>*   s   	 c         c   s   x |  ] } t  | Vq Wd  S(   N(   R   (   R   R   (    (    s    scripts/common/items/__init__.pys	   <genexpr>2   s   	 c         C   sG   t  ƒ  a d d k l } | i |  ƒ d d k l } | i |  ƒ d  S(   Niÿÿÿÿ(   t   vehicles(   t   tankmen(   t   _readItemTypest   _g_itemTypest   itemsR   t   initR   (   t   preloadEverythingR   R   (    (    s    scripts/common/items/__init__.pyR   7   s
    	c         C   s   t  |  S(   N(   R   (   t   typeName(    (    s    scripts/common/items/__init__.pyt   getTypeInfoByNameL   s    c         C   s   t  t |  S(   N(   R   t   ITEM_TYPE_NAMES(   t	   typeIndex(    (    s    scripts/common/items/__init__.pyt   getTypeInfoByIndexN   s    c         C   sY   t  |  ƒ t j o |  d @} n t |  d ƒ d @} | t t ƒ j o t d ‚ n | S(   Ni   i    s   is not a 'compact descriptor'(   t   typeR    t   ordt   lenR   t	   Exception(   t   compactDescrt   typeID(    (    s    scripts/common/items/__init__.pyt   getTypeOfCompactDescrV   s    c          C   s  t  d }  t i |  ƒ } | d  j o t i d  |  d ƒ n d  |  f } h  } x¦t t ƒ D]˜\ } } | d j o q\ n t i | | | ƒ } | | f } g  } h  }	 | i	 d ƒ oÍ xÊ | d i
 ƒ  D]´ }
 t |
 i ƒ } |	 i	 | ƒ o t i | d | d ƒ n h | d 6t | ƒ d 6} t o< t i |
 i d ƒ ƒ | d <t i |
 i d	 ƒ ƒ | d	 <n | |	 | <| i | ƒ qÊ Wn h | d 6|	 d 6t | ƒ d
 6} t o< t i | i d ƒ ƒ | d <t i | i d	 ƒ ƒ | d	 <n | | | <q\ Wd  } d  } d  }
 t i |  t ƒ | S(   Ns   item_types.xmls   can not open or readR   t   tagss   tag name is not uniquet   namet   indext
   userStringt   descriptiont   tagNames(   R   t   ResMgrt   openSectiont   NoneR   t   raiseWrongXmlt	   enumerateR   t   getSubsectiont   has_keyt   valuest   internR(   R"   R   R   t
   makeStringt
   readStringt   appendt   tuplet   purget   True(   t   xmlPatht   sectiont   xmlCtxt   resR)   R(   t   itemSectiont   ctxR,   R'   t
   tagSectiont   tagNamet   tagDescrt   descr(    (    s    scripts/common/items/__init__.pyR   f   sR    
   
 (   s   reservedR   R   R   R	   R
   R   R   R   R   R   R   (	   R   R   R	   R
   R   R   R   R   R   (   R   R   R	   R
   R   R   (   R-   t   typesR    R   R   t	   constantsR   R   t   helpersR   R   R"   t   MAX_ITEM_TYPE_INDEXt   dictR1   R   t   SIMPLE_ITEM_TYPE_NAMESR9   t   SIMPLE_ITEM_TYPE_INDICESt   VEHICLE_COMPONENT_TYPE_NAMESt   VEHICLE_COMPONENT_TYPE_INDICESR   R   R   R&   R   (    (    (    s    scripts/common/items/__init__.pyt   <module>   s<                				