ó
Ä‚Œ\c           @  s«   d  d l  m Z d  d l Z d  d l Z d  d l m Z d  d l Z e	 ƒ  Z
 d e j j j f d „  ƒ  YZ d e j j j f d „  ƒ  YZ d e j j f d	 „  ƒ  YZ d S(
   iÿÿÿÿ(   t   print_functionN(   t   rendert   ImageMapCropc           B  s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sD   
    This handles the cropping of uncached imagemap components.
    c         C  s)   t  t |  ƒ j ƒ  | |  _ | |  _ d  S(   N(   t   superR   t   __init__t   childt   rect(   t   selfR   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   *   s    	c         C  s
   |  j  g S(   N(   R   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   visit0   s    c         C  s+   t  |  j | | | | ƒ } | j |  j ƒ S(   N(   R   R   t
   subsurfaceR   (   R   t   widtht   heightt   stt   att   cr(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   3   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   %   s   		t   ImageCacheCropc           B  s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s=   
    This handles the cropping of an imagemap component.
    c         C  s)   t  t |  ƒ j ƒ  | |  _ | |  _ d  S(   N(   R   R   R   t   cachet   index(   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   =   s    	c         C  s   |  j  j |  j ƒ S(   N(   R   R   R   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   F   s    c         C  s   |  j  j |  j | | | | ƒ S(   N(   R   R   R   (   R   R
   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   I   s    (   R   R   R   R   R   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   8   s   			t   ImageMapCachec           B  sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C  sa   t  j ƒ  |  _ g  |  _ i  |  _ g  |  _ d  |  _ d  |  _ d  |  _ d  |  _	 t
 } | |  _ d  S(   N(   t   hashlibt   md5t	   imagerectt   hotspotst   areast   NoneR   t
   cache_rectt   cache_widtht   cache_heightt   Falset   enable(   R   R    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   O   s    							c         C  s/   |  j  d  k	 r |  j  g S|  j | d g Sd  S(   Ni    (   R   R   R   (   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   l   s    
c         C  s  t  | t j j j ƒ s0 t j j s0 |  j r= t | | ƒ S| | f } |  j	 j
 | d  ƒ } | d  k	 rn | S|  j j t | j ƒ ƒ |  j j t | ƒ ƒ t |  j ƒ } t |  | ƒ } |  j j | ƒ | |  j	 | <|  j j | d d | d d | f ƒ | S(   Ni   i   (   t
   isinstancet   renpyt   displayt   imt	   ImageBaset   configt   imagemap_cacheR    R   R   t   getR   R   t   updatet   reprt   identityt   lenR   R   t   appendR   (   R   t   dR   t   keyt   rvR   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   cropr   s     
)c         C  sþ   |  j  j ƒ  |  j  j ƒ  d  g t |  j  ƒ |  _ |  j  d d } d } d } d } x‹ |  j  D]€ \ } } } | | | k r˜ | | 7} d } d } n  | d | d | d | d f |  j | <| | 7} | | k  r` | } q` q` W| |  _ | | |  _ d  S(   Ni    i   i   (   R   t   sortt   reverseR   R,   R   R   R   (   R   R
   t   xt   yt   line_heightt   wt   ht   i(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   layout‰   s$    
	)
	c         C  s  | t  k r d  St  j | ƒ t j j | ƒ r3 d  St j j | ƒ } t j |  j |  j	 f t j
 d ƒ } xs t |  j ƒ D]b \ } \ } } |  j | \ } } }	 }
 t j j j j | ƒ j | ƒ } | j | | | f ƒ qy Wt j j | t j j | ƒ ƒ d  S(   Ni    (   t   cachedt   addR"   t   loadert   loadablet   get_patht   pygamet   SurfaceR   R   t   SRCALPHAt	   enumerateR   R   R#   R$   R   R(   R	   t   blitt   imaget   savet   exportst   fsencode(   R   t   filenamet   fnR   R9   R.   R   R4   R5   t   _wt   _ht   surf(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   write_cache¥   s    $"!c         C  s6   d } x% |  j  D] } | | d j ƒ  7} q W| d @S(   sU   
        Returns a hash of the contents of the image files. (As an integer.)
        i    iÿÿÿ(   R   t   get_hash(   R   R0   R9   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   image_file_hash»   s    c         C  sÍ   |  j  s d  Sd |  j j ƒ  |  j ƒ  f } t j j j rU t j j j d | } n  d | } d  |  _ |  j	 ƒ  t j
 j rœ y |  j | ƒ Wqœ qœ Xn  t j j | ƒ rÉ t j j j | ƒ |  _ n  d  S(   Ns   im-%s-%x.pngt   -s   cache/(   R   R   t	   hexdigestRP   R"   t   gamet   preferencest   languageR   R:   R&   t	   developerRN   R=   R>   R#   R$   t   ImageR   (   R   RI   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   finishÇ   s    	
	
c         C  sj   |  j  d  k rA |  j | \ } } t | | | | | ƒ j | ƒ St |  j  | | | | ƒ j |  j | ƒ S(   N(   R   R   R   R   R	   R   (   R   R   R
   R   R   R   R.   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   ß   s    (
   R   R   R   R   R1   R:   RN   RP   RX   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyR   M   s   							(   t
   __future__R    t   pygame_sdl2R@   t   renpy.displayR"   t   renpy.display.renderR   R   t   setR;   R#   t   coret   DisplayableR   R   t   objectt   ObjectR   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\imagemap.pyt   <module>   s   	