
    UHj:	                    Z    d Z ddlmZ ddlZddlZddlmZ ddZd	dZe	dk(  r e        yy)
zESummarize scene event dispatch references and their condition blocks.    )annotationsN)Pathc                   g d}| D ]9  }|j                  dg       }g }g }t               }|D ]  }|j                  d      }|s|j                  dg       }	|	r|	d   d   nd}
|j                  d|d	d
|
        |j                  dg       D ])  }||v r|j                  |       |j                  |       +  |j                  dj	                  |d   |d   |d   d|j                  d|d   dz         d	t        |      dj                  |d d       xs ddj                  |d d       xs dd|d   d	             < |j                  d       dj                  |      S )N)z"# Scene Dispatch Reference Summary zW| map | scene | kind | dispatch | refs | condition blocks | condition linked | record |z3| --- | --- | ---: | --- | ---: | --- | --- | --- |eventDispatchRefsconditionVaconditionFirstDwordsr   hex?0x08x:conditionLinkedStringsz[| {map} | {scene} | {kind} | `{dispatch}` | {refs} | {conditions} | {linked} | `{record}` |map
sceneIdHex	eventKindeventDispatchVarecordVa   z, -   )r   scenekinddispatchrefs
conditionslinkedrecordr   
)getsetappendaddformatlenjoin)eventslineseventr   condition_blockslinked_strings
seen_linksref	conditionfirstheadr   s               :/home/exedev/hwanse/tools/summarize_scene_dispatch_refs.py	summarizer2   
   s   E  
yy,b1U
 	.C.IGG2B7E&+58E?D##b3q$?@''":B? .Z'v&%%f-	.	. 	ipp%LL);'eii(95;Lr;QRSVWXY99%5cr%:;Bsyy!45<E*-c23 q 		
#
: 
LL99U    c                    t        j                  t              } | j                  dt        t	        d             | j                  dt        t	        d             | j                         }t        j                  |j                  j                  d            }|j                  j                  j                  d	d	
       |j                  j                  t        |      d       t        dt!        |       d|j                          y )N)descriptionz--eventszout/scene_events.json)typedefaultz--outzout/scene_dispatch_summary.mdzutf-8)encodingT)parentsexist_okzwrote z dispatch summaries -> )argparseArgumentParser__doc__add_argumentr   
parse_argsjsonloadsr'   	read_textoutparentmkdir
write_textr2   printr%   )parserargsr'   s      r1   mainrJ   2   s    $$9F

t<S7TU
dD9X4YZDZZ--w-?@FHHOO$6HH	&)G<	F3v;-6txxj
ABr3   __main__)r'   z
list[dict]returnstr)rL   None)
r=   
__future__r   r;   r@   pathlibr   r2   rJ   __name__ r3   r1   <module>rS      s4    K "   %P	C zF r3   