a
    V$cA#                     @   s  d dl mZmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlZd dlZdgdgdgdgdgdgdgdd	gdd	gd
gddgddgddgddgddgddgddgddgddgddgddgddgdZg ZG dd deZedd edd edd eef edd eef edd edd edd edd ed d ed!d ed"d ed#d$ ed%d ed&d ed'i  ed(i  ed)i  ed*deedf ed+deedf ed,d- ed.d ed/deedf ed0deeedf ed1d2 ed3d ed4d ed5d6 ed7d6 ed8d ed9d ed:deedf ed;d ed<dedef ed=d> ed?d> ed@d edAd edBd G dCdD dDejjZeej _e ej _!dS )E    )divisionabsolute_importwith_statementprint_functionunicode_literals)PY2
basestringbchrbordchropenpystrrangeroundstrtobytesunicodeNrollback	game_menuhide_windowsrollforwarddismissbutton_selectbutton_alternate
focus_leftbar_leftfocus_right	bar_rightfocus_upbar_up
focus_downbar_down)pad_leftshoulder_presspad_lefttrigger_pospad_back_presspad_guide_presspad_start_presspad_y_presspad_rightshoulder_presspad_righttrigger_presspad_a_presspad_b_presspad_dleft_presspad_leftx_negpad_rightx_negpad_dpright_presspad_leftx_pospad_rightx_pospad_dpup_presspad_lefty_negpad_righty_negpad_dpdown_presspad_lefty_pospad_righty_posc                   @   s   e Zd ZdZdddZdS )
Preferencez4
    Represents information about a preference.
    Nc                 C   s,   || _ || _|r|nt|| _t|  d S N)namedefaulttypetypesall_preferencesappend)selfr:   r;   r=    rA   renpy/preferences.py__init__G   s    zPreference.__init__)N)__name__
__module____qualname____doc__rC   rA   rA   rA   rB   r8   B   s   r8   
fullscreenFskip_unseentext_cpsafm_time
afm_enableTusing_afm_enablevoice_sustain
mouse_moveshow_empty_window
wait_voiceafm_after_clicktransitions   video_image_fallbackskip_after_choicesvolumesmutejoymapphysical_sizevirtual_sizerendererautoperformance_testlanguageself_voicingself_voicing_volume_drop      ?emphasize_audiopad_enabledmobile_rollback_sidedisabledesktop_rollback_sidegl_npotgl_powersavegl_framerate
gl_tearingfont_transform	font_size      ?font_line_spacingsystem_cursorhigh_contrastaudio_when_minimizedc                   @   s  e Zd ZdZeeZddkrdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZi Zi Zi ZdZdZdZdZdZdZd	ZdZdZ d
Z!d
Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd Z5dd Z6d d! Z7d"d# Z8dS )$Preferencesz<
    Stores preferences that will one day be persisted.
       r   FTrT   Nr]   rb   rf   rn   c                 C   s0   t D ]&}t| |jst| |jt|j qdS )zD
        Initializes the preference that have not been set.
        N)r>   hasattrr:   setattrcopyr;   )r@   prA   rA   rB   init   s    zPreferences.initc                 C   sx   | j dkrd| _ d}tD ]Z}t| |jd}t|tr>|d}t||jsd|j||j}t	| |jt

|j q|S )z?
        Checks that preferences have the right types.
        r]   TNzutf-8z7Preference {} has wrong type. {!r} is not of type {!r}.)ri   r>   getattrr:   
isinstancebytesdecoder=   formatrv   rw   r;   )r@   errorrx   vrA   rA   rB   check   s    


zPreferences.checkc                 C   s   |    d S r9   ry   )r@   versionrA   rA   rB   after_upgrade   s    zPreferences.after_upgradec                 C   s   |    d S r9   r   r@   rA   rA   rB   rC     s    zPreferences.__init__c                 C   s(   t jjs|dkrd| j|< || j|< d S )Nr   F)renpyconfigpreserve_volume_when_mutedrX   rW   )r@   mixervolumerA   rA   rB   
set_volume  s    
zPreferences.set_volumec                 C   s2   || j vrdS tjjs(| j|dr(dS | j | S )N        F)rW   r   r   r   rX   getr@   r   rA   rA   rB   
get_volume  s
    
zPreferences.get_volumec                 C   s6   || j |< tjjs2|s2| j|ddkr2d| j|< d S )Nrn   r   )rX   r   r   r   rW   r   )r@   r   rX   rA   rA   rB   set_mute  s    
zPreferences.set_mutec                 C   s   || j vrdS | j| S )NF)rW   rX   r   rA   rA   rB   get_mute  s    
zPreferences.get_mutec                 C   s8   t jj dg D ] }| j|d | j|d qd S )Nmainrn   F)r   audiomusicget_all_mixersrW   
setdefaultrX   )r@   irA   rA   rB   init_mixers"  s    zPreferences.init_mixersc                 C   s   t jj S r9   )r   r   r   r   r   rA   rA   rB   r   '  s    zPreferences.get_all_mixersc                 C   s   t | t |kS r9   )varsr@   otherrA   rA   rB   __eq__*  s    zPreferences.__eq__c                 C   s
   | |k S r9   rA   r   rA   rA   rB   __ne__-  s    zPreferences.__ne__)9rD   rE   rF   rG   lenr>   __version__rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rU   rV   rW   rX   rY   rZ   r[   r\   r^   r_   r`   ra   rc   rd   re   rg   rh   ri   rj   rk   rl   rm   ro   rp   rq   rr   ry   r   r   rC   r   r   r   r   r   r   r   r   rA   rA   rA   rB   rs      sj   		rs   )"
__future__r   r   r   r   r   renpy.compatr   r   r	   r
   r   r   r   r   r   r   r   r   rw   r   pad_bindingsr>   objectr8   intfloattupler<   boolObjectrs   gamepreferencesrA   rA   rA   rB   <module>   s   8!





























 