;ò v0@c@südZdkZdkZdkZdkZdkZdkZdkZdkZdk Zdk Tdk Z dk Z dk Z dkZdkZdkZdkZdkZgagagadaeadddgZd„Zd„Zd fd „ƒYZdS( s*Game news page handler, part of SOLARWOLF.N(s*is Main Menus Download Newss Visit WebsitecCsRtidƒ}|iƒiddƒ}ti||fƒtidƒ}ti||i ƒdƒa x7dddfD]&}ti|dƒ}t i|ƒquWt it itd d d ƒd d d ffƒt it itdƒdddffƒt it itdƒdddffƒtiitidƒdƒatidddƒdS(Nsmenu_news_on.pngi s download.pngis downerrors newversionsdownoks.gifi$sitalicii–iÈiixiúis ship-up.pngi¦ÿÿÿs select_chooses startlifes levelskip(sgfxsloadsimgsget_rectsmovesrsimagessappends animstrips get_widthsdownimgssisfontsstxtsFontsNonespygames transformsrotatesshipssndspreload(simgsisr((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysload_game_resourcess.((cCsúytitiƒiƒ}Wnd|_dSnXd|_y•ti dƒ}ti dƒ}t |dƒ}xH|D]@}ti|d|ƒ}|o|i|iƒtiƒqsqsW|iƒd|_daWn"ttfj od|_nXdS(Niis<.*> *snewsswsi(surllibsurlopensgamesnews_urls readlinessnewssgamenewssdowncursrescompilestags make_datanames newsfilenamesopensfslinessubslswritesrstripsosslinesepsclosessuccesssnews_downloadedsIOErrorsOSError(sgamenewssfslstagsnewss newsfilenamesline((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys downloadfunc1s*  "   sGameNewscBs×tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsda||_t|_g|_g|_t|_d|_|i ƒd|_ t |_ ddf|_ d|_ d|_t|_ttiƒg|_d|_d|_d|_d|_g|_|iƒd|_d|_|i|iddƒd|_d|_dS( Nis0.0i”i i<iii(snews_downloadeds prevhandlersselfsimagessimgssboxessNonesthreads newsversionsloadnewsssuccesssdownimgss downloadpossclockssdowncurs lastdownrectsshipsget_rects shipimagesdonesabortedslinesizescurrentsgamelists buildlists shipmovexs shipmoveysmovetos tempwindowedslaunchthebrowser(sselfs prevhandler((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys__init__Js6                     cCsdS(N((sself((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysstartingkscCs:|iodt_tiƒn|it_d|_dS(Ni( sselfs tempwindowedsgamesdisplaysgfxsswitchfullscreens prevhandlershandlersdone(sself((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysquitos    cCs€tdditdd|ddfdƒ}|ii|ƒtdditdd|ddfdƒ}|ii|ƒdS(NiiidiÈstopleftiŒië(sfontsstextstitlestsselfsimgssappendsmessage(sselfstitlesmessagest((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys makebadnewsws..cCs$t|dit|d|ƒSdS(Nii(sfontssfontstext(sselfsfontstext((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys rendertext~scCsÐ|iƒg|_g|_tidƒ} tii | ƒ oti dƒ} ntii | ƒoWt | ƒi ƒd} | o|iddƒdSn| diƒd|_g}t}} g}xŒ| dD]€}|iƒ}| o5|o|i|| |fƒnt}} g}qÓ| o |}qÓ| o |} qÓ|i|ƒqÓWd}xl|D]P\}}}|iitid|d fd ƒƒd |id_d |id_|i d|ƒ\} }|i#d |ƒ} |ii| | fƒ|i d |ƒ\} }|i#| i%d|dƒ}|ii| |fƒ| i&}xZ|D]R}|i d|ƒ\} }|i#d|fƒ}|i&}|ii| |fƒqTW|d7}qdWn|iddƒdS(Nsnewsis sInvalid News Fileiiÿÿÿÿi–iiif2.0f0.0i<ii idisCannot Download News((sselfs cleartextsimgssboxessgames make_datanames newsfilenamesosspathsisfiles get_resourcesopens readlinessnewss makebadnewsssplits newsversions newsitemssNonestitlesdatesbodyslinesrstripsappendstopstsdsobjboxsBoxsrotspeedsrotates rendertextstextsrsmovestrectsrightsbottomsb(sselfsbodysbsdstitlestopslinesrststextsdatesnewss newsfilenamestrects newsitems((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysloadnews‚sb          &  cCs`|i oQd|_tittd|gƒ}d|_|iƒ||_t i dƒndS(Nis FETCHNEWSis startlife( sselfsthreadssuccesss threadingsThreadsNones downloadfuncsdowncursstartssndsplay(sselfsthread((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysdownload_start±s     cCs$t|_tidƒ|iƒdS(Ns levelskip(sNonesselfsthreadssndsplaysloadnews(sself((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysdownload_finished»s  cCs|d|df|_dS(Nii(spossselfsshippos(sselfspos((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysmovetoÁscCsR|iodSn|iodSn|itijo-d|_d|_ti dƒ|i ƒn|iti jo|i ƒSn|iti tifjo­|iti jo!|idt|iƒ|_n|idt|iƒ|_ti dƒ|i|idi}|i|idi}|i||fƒ|iƒndS(Nis select_chooses select_move(sselfsdonesisreleases translatedsinputsABORTsabortedssndsplaysquitsPRESSspressedsDOWNsUPscurrentslensgamelistsleftsxstopsysmovetos buildlist(sselfsisxsy((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysinputÅs(     ! cCsdS(N((sselfse((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pyseventßscCs<x5|iD]*}|d}|i|ƒti|ƒq WdS(Ni(sselfsimgssisrs backgroundsgfxsdirty(sselfsisr((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys cleartextâs    c Cs½|id7_|iƒ|io|iiƒ o|io|iƒnt}|i o/t i |i |i ƒƒ|i }t|_ n|i |i dƒ}t i |ƒt i|i t ƒ|i o¯x3|iD](\}}t i t ii||ƒƒqÖW|iƒ\}}|o/t ii||ƒ|_ t i|i |ƒnxk|iD]\}}t ii||ƒqTWn>x-|iD]"\}}t i |i |ƒƒq…Wt i |ƒ|i o†|iƒ|iƒt ii|i d|i dƒ}t i |ƒxm|iD]0}|i|i ƒ|i dƒ|i!t ƒqWn/x!|iD]}|i|i ƒqSW|i"ƒ|i#o8|i#d8_#|i# ot$i%t&i'ddƒq¹ndS(Niif1.0((sselfsclockss cleartextsthreadsisAlivessuccesssdownload_finishedsNonesclearmes lastdownrectsgfxsdirtys backgrounds shipimagesrs updatestarssdonesimagessimgssurfacesblitsdownimgsdownrectsdirty2simgsstextspossdrawlistsmoveshipsboxessbserasesticksdraws clearlistslaunchthebrowsers webbrowsersopensgamessite_url( sselfsbsdownimgsimgstextsdownrectsclearmespossr((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysrunésZ %             #       cCs|i oŽ|itijo3|id}|iƒ}|i |_ ||fSq™t o3|id}|iƒi |i ƒ}||fSq™t t fSn|idjo|id}n-|iddd|_|i|id}||iƒi |i ƒfSdS(Niiiii(sselfsdowncurs newsversionsgamesversionsdownimgssimgsget_rectsrs downloadpossmidtopsnews_downloadedsmovesNonesclocks(sselfsimgsr((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysdownimg!s      cCs tiidddf|ƒSdS(Ni(sgfxssurfacesfillsarea(sselfsarea((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys background6sc CsÎdddf} dddf}ddf\}}|iƒtdd}g|_d}xpt D]h}|i |jo | }n|}|i||||fd ƒ}|ii|ƒ|d 7}|d 7}q^WdS( NiÜiæiðiŒi–i iismidlefti!i(sclrsclr2soffsetxsoffsetysselfs clearlistsfontssfontsgamelistscursOptionssoptscurrentscstextsimgpossappend( sselfsoptsclr2scsimgposscursoffsetxsoffsetysfontsclr((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys buildlist:s     cCs_x+|iD] }ti|i|dƒƒq Wx*|iD]}d|_|i |iƒq8WdS(Ni( sselfsgamelistsosgfxsdirtys backgroundsboxessbsdeadserase(sselfsbso((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pys clearlistMs   cCs1x*|iD]}titii|Œƒq WdS(N(sselfsgamelistsosgfxsdirtyssurfacesblit(sselfso((sF/mnt/gmirror/ports/games/solarwolf/work/solarwolf-1.5/code/gamenews.pysdrawlistTs cCs¶t|idiƒ}|d|i|idjo|dc|i7