From 361247ccacdb517e24f62739e1c2f15f2edd226e Mon Sep 17 00:00:00 2001 From: Paul Liverman Date: Mon, 9 Feb 2015 22:32:13 -0800 Subject: [PATCH] achievement images added, Game Jolt thumb --- icons/Game Jolt thumbnail.png | Bin 0 -> 37596 bytes icons/achievements/failure.png | Bin 0 -> 574 bytes icons/achievements/gamejolt/bronze.jpg | Bin 0 -> 2086 bytes icons/achievements/gamejolt/gold.jpg | Bin 0 -> 2452 bytes icons/achievements/gamejolt/platinum.jpg | Bin 0 -> 1789 bytes icons/achievements/gamejolt/silver.jpg | Bin 0 -> 1639 bytes icons/achievements/h4x0r.png | Bin 0 -> 7266 bytes icons/achievements/l33t.png | Bin 0 -> 8645 bytes icons/achievements/the_answer.png | Bin 0 -> 889 bytes src/achievements/failure.png | Bin 0 -> 574 bytes src/achievements/gamejolt/bronze.jpg | Bin 0 -> 2086 bytes src/achievements/gamejolt/gold.jpg | Bin 0 -> 2452 bytes src/achievements/gamejolt/platinum.jpg | Bin 0 -> 1789 bytes src/achievements/gamejolt/silver.jpg | Bin 0 -> 1639 bytes src/achievements/h4x0r.png | Bin 0 -> 7266 bytes src/achievements/l33t.png | Bin 0 -> 8645 bytes src/achievements/the_answer.png | Bin 0 -> 889 bytes src/lib/gamejolt/init.lua | 276 ++++++++++++++++ src/lib/gamejolt/md5.lua | 393 +++++++++++++++++++++++ src/main.lua | 1 + 20 files changed, 670 insertions(+) create mode 100644 icons/Game Jolt thumbnail.png create mode 100644 icons/achievements/failure.png create mode 100644 icons/achievements/gamejolt/bronze.jpg create mode 100644 icons/achievements/gamejolt/gold.jpg create mode 100644 icons/achievements/gamejolt/platinum.jpg create mode 100644 icons/achievements/gamejolt/silver.jpg create mode 100644 icons/achievements/h4x0r.png create mode 100644 icons/achievements/l33t.png create mode 100644 icons/achievements/the_answer.png create mode 100644 src/achievements/failure.png create mode 100644 src/achievements/gamejolt/bronze.jpg create mode 100644 src/achievements/gamejolt/gold.jpg create mode 100644 src/achievements/gamejolt/platinum.jpg create mode 100644 src/achievements/gamejolt/silver.jpg create mode 100644 src/achievements/h4x0r.png create mode 100644 src/achievements/l33t.png create mode 100644 src/achievements/the_answer.png create mode 100644 src/lib/gamejolt/init.lua create mode 100644 src/lib/gamejolt/md5.lua diff --git a/icons/Game Jolt thumbnail.png b/icons/Game Jolt thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..adf6173eb86c905a5e9b6d9a764f6a75134a867a GIT binary patch literal 37596 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�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 Hr-UW|q)`$L literal 0 HcmV?d00001 diff --git a/icons/achievements/gamejolt/bronze.jpg b/icons/achievements/gamejolt/bronze.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c02f3fda1c864fbe4033823eaf8cbaa0f2ba12c3 GIT binary patch literal 2086 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 Uw8p;;3EhgCT#8RZ#qYfR7YNEd9smFU literal 0 HcmV?d00001 diff --git a/icons/achievements/gamejolt/platinum.jpg b/icons/achievements/gamejolt/platinum.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52956290f4924393f4c6b966ec541b212d8b9cb8 GIT binary patch literal 1789 zcma)6c{H2p8vnj*k_h@GM3<<8pbb@8(rFo$+LK0!ol$$MA|jO5QMI?FsHIAKDLR6f z(iwx%VwQtkTve1Qf)*3fCEDiJRw_5{y{G5?d4KQwyyrQ;-?N?Pk5@h+e+BHKJ2*Q4 zAPfM)6bF#M10cKjPP^E=&L&AZu-xUlf7Xg_760rlti&R1?41+=< zQ5Y;5jX|TaDp+L&uqrqlZpYNrAV^J3lSm|L?)eH3g+gI5Sb~ZQfe5KW#IM5t>&Slx zAT+=L7;q2*U=Rq0KzR?4rI-%^2SLT0{{;+=L@5Cv8i7%;@c$7MItYU!b^#z94&RAF z!T+7ILjn*|2ahsSa?>Tyf_ds1X@x%>ITcdPiY+>78%IV%ic&DR;(jd$LNFaOI1TR> z%p=IB0GvXBL2w8-3Dijl{%PMv>^f3#;vQn$qFSnsDbF~on{g`6aq58S0Bv;`A3(1+ zy$5!|i}KRU@w3V~J?P1NcE9iGPD3rm1um(vdvVE$d}OBgT91@+_Sd~WBLR);RzXRP zD_6P)FJXlKb2o$M&CG(1EclON!fPhrco>V`*hmWA;UZ~dy0zOs13L_gb} zVqG>>vJYb43i4_t9&Q>vXw4kBT!-nUs70N#P`2D>sJq{u-=o&~mPuGV{6r&6-;b=k z{DR+b_wUS=QRz@$o3GFIh3>^Tbs<-KASQNq=!t0$)WSc`h2;1Z{}^%oTN_qK#Kn)q z{1?S)1)=IE1{ZM7pQ?XN}|0K zN%pO~osUgmla?)8N$~=prh!tEno_tTnA_6y&QI>Ba}cd(Cal`lJfYBbz0Z%y~c6%7`dAje?f`CWzFYhxLDM8_EA9MQhcLa5~^L1`!Mc(ed@JoR?&j0u}G%#iONrUWEU0gqRZZx*y60- z9$P!73(qZFWaPw9?YqW~3IiQp+zQ>3!PVBV)U(Ygdsp`d+Qw;%@-hFP5V5?X8T|qF zh_so&DeKC8xrU{P_iuz2-΂pYw7sR$Tt8RPbofiGY49T$A1qMwCJ?ucJBvgQVZ z#~<$@ZA!)Z-&dbDVAb@}n@&!(9vaz9s2ukUe3F}oBu0Kxtr;f2nm#~oA8d&AwX#|x zTd3WhyC2LmaMHn@jy#cO%Qco@fdS{x($;xWk2kvdcMSD1!H4|NpH+!Cx7&qp+*EqA^P zo$eAm4w4~A@Yke z%j-K{0P>klfjOOJ?z9)IYG^A~J8tg8wRy(`2sStK_#wh{nsD>_({|Rt2VZYQl23O5 zWAMV&Y&Y4;7jn{@aIe>tt@#<@8IyTA;8$^z!OmHD+RsVvs{XTxsblMB%eTEk!EUR_F&jHmyYy6M`h7Q}b!jV0%1*vgL&MKxv$9!3eEKo+ z=2Or5>?&9U>XT~EFlY`imF~Fr(^Xrvn4+zdP_}5$v?oj(AC7$1XW$>EVg1>)gaZ`d z;TPyOtC8^*wM}Q(_ZE%cm<>PP??p6yEOQfo^E~+dAXep$H5fGYS=7jSa&hQ*;;}&f zsXq)-F;(LdEoVhHJkQJ7TuXCu{}c~bx{p-+&0tim%Q@LtqC`3Pb{n5e*6~Kv*NW|~ z9BO>8SDC!bD?fDXqba#J|Bjgq(xqU@SL&lo;|*gxd$XRkc$Uq&My+vww8}Xu=?|TZ zw$0Xi!=z^RM+#qiHvkmTs~<8L`WCZq#K&>FDg=hmN()%-+l4ayUs|E|YN> zf?ej$w`fb}+CI)+{W0l*NvEW#XghSh`1LDpgR5h93Ec79vCg>5-|Kj1D$sHfAJWJFZPx)0R}2P|DrHqSqhxo;UMTX+rrXE&t3&AisTDit|MH!q!?TAmdD)=kHm0}-GHrm{IT d0x^uKBG{Bxro0vXw(2Lc{_@KvcezSF`7e4<=??$^ literal 0 HcmV?d00001 diff --git a/icons/achievements/gamejolt/silver.jpg b/icons/achievements/gamejolt/silver.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe334ab021d13abb11348168651b6c7da1ed0b9c GIT binary patch literal 1639 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 literal 0 HcmV?d00001 diff --git a/icons/achievements/l33t.png b/icons/achievements/l33t.png new file mode 100644 index 0000000000000000000000000000000000000000..105e4b2fa2d022a13f082bca3f26dad38b3e9686 GIT binary patch literal 8645 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 Hr-UW|q)`$L literal 0 HcmV?d00001 diff --git a/src/achievements/gamejolt/bronze.jpg b/src/achievements/gamejolt/bronze.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c02f3fda1c864fbe4033823eaf8cbaa0f2ba12c3 GIT binary patch literal 2086 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 Uw8p;;3EhgCT#8RZ#qYfR7YNEd9smFU literal 0 HcmV?d00001 diff --git a/src/achievements/gamejolt/platinum.jpg b/src/achievements/gamejolt/platinum.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52956290f4924393f4c6b966ec541b212d8b9cb8 GIT binary patch literal 1789 zcma)6c{H2p8vnj*k_h@GM3<<8pbb@8(rFo$+LK0!ol$$MA|jO5QMI?FsHIAKDLR6f z(iwx%VwQtkTve1Qf)*3fCEDiJRw_5{y{G5?d4KQwyyrQ;-?N?Pk5@h+e+BHKJ2*Q4 zAPfM)6bF#M10cKjPP^E=&L&AZu-xUlf7Xg_760rlti&R1?41+=< zQ5Y;5jX|TaDp+L&uqrqlZpYNrAV^J3lSm|L?)eH3g+gI5Sb~ZQfe5KW#IM5t>&Slx zAT+=L7;q2*U=Rq0KzR?4rI-%^2SLT0{{;+=L@5Cv8i7%;@c$7MItYU!b^#z94&RAF z!T+7ILjn*|2ahsSa?>Tyf_ds1X@x%>ITcdPiY+>78%IV%ic&DR;(jd$LNFaOI1TR> z%p=IB0GvXBL2w8-3Dijl{%PMv>^f3#;vQn$qFSnsDbF~on{g`6aq58S0Bv;`A3(1+ zy$5!|i}KRU@w3V~J?P1NcE9iGPD3rm1um(vdvVE$d}OBgT91@+_Sd~WBLR);RzXRP zD_6P)FJXlKb2o$M&CG(1EclON!fPhrco>V`*hmWA;UZ~dy0zOs13L_gb} zVqG>>vJYb43i4_t9&Q>vXw4kBT!-nUs70N#P`2D>sJq{u-=o&~mPuGV{6r&6-;b=k z{DR+b_wUS=QRz@$o3GFIh3>^Tbs<-KASQNq=!t0$)WSc`h2;1Z{}^%oTN_qK#Kn)q z{1?S)1)=IE1{ZM7pQ?XN}|0K zN%pO~osUgmla?)8N$~=prh!tEno_tTnA_6y&QI>Ba}cd(Cal`lJfYBbz0Z%y~c6%7`dAje?f`CWzFYhxLDM8_EA9MQhcLa5~^L1`!Mc(ed@JoR?&j0u}G%#iONrUWEU0gqRZZx*y60- z9$P!73(qZFWaPw9?YqW~3IiQp+zQ>3!PVBV)U(Ygdsp`d+Qw;%@-hFP5V5?X8T|qF zh_so&DeKC8xrU{P_iuz2-΂pYw7sR$Tt8RPbofiGY49T$A1qMwCJ?ucJBvgQVZ z#~<$@ZA!)Z-&dbDVAb@}n@&!(9vaz9s2ukUe3F}oBu0Kxtr;f2nm#~oA8d&AwX#|x zTd3WhyC2LmaMHn@jy#cO%Qco@fdS{x($;xWk2kvdcMSD1!H4|NpH+!Cx7&qp+*EqA^P zo$eAm4w4~A@Yke z%j-K{0P>klfjOOJ?z9)IYG^A~J8tg8wRy(`2sStK_#wh{nsD>_({|Rt2VZYQl23O5 zWAMV&Y&Y4;7jn{@aIe>tt@#<@8IyTA;8$^z!OmHD+RsVvs{XTxsblMB%eTEk!EUR_F&jHmyYy6M`h7Q}b!jV0%1*vgL&MKxv$9!3eEKo+ z=2Or5>?&9U>XT~EFlY`imF~Fr(^Xrvn4+zdP_}5$v?oj(AC7$1XW$>EVg1>)gaZ`d z;TPyOtC8^*wM}Q(_ZE%cm<>PP??p6yEOQfo^E~+dAXep$H5fGYS=7jSa&hQ*;;}&f zsXq)-F;(LdEoVhHJkQJ7TuXCu{}c~bx{p-+&0tim%Q@LtqC`3Pb{n5e*6~Kv*NW|~ z9BO>8SDC!bD?fDXqba#J|Bjgq(xqU@SL&lo;|*gxd$XRkc$Uq&My+vww8}Xu=?|TZ zw$0Xi!=z^RM+#qiHvkmTs~<8L`WCZq#K&>FDg=hmN()%-+l4ayUs|E|YN> zf?ej$w`fb}+CI)+{W0l*NvEW#XghSh`1LDpgR5h93Ec79vCg>5-|Kj1D$sHfAJWJFZPx)0R}2P|DrHqSqhxo;UMTX+rrXE&t3&AisTDit|MH!q!?TAmdD)=kHm0}-GHrm{IT d0x^uKBG{Bxro0vXw(2Lc{_@KvcezSF`7e4<=??$^ literal 0 HcmV?d00001 diff --git a/src/achievements/gamejolt/silver.jpg b/src/achievements/gamejolt/silver.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe334ab021d13abb11348168651b6c7da1ed0b9c GIT binary patch literal 1639 zcma)6X;71A5PrXWxk(5)fC@x}AfkjQh#;0~Vi8Ru$T>x5u?Da~1PK)dq(C^Tg4jTa zRzUqkxyn(%csEmzpj^_Rl!6>8iJ%}50Bm)Sb0RTJ$H3^J)k$Xi^Ao7NRf%N?#8(`2MV2BtT#^3}j z27@IK@pu9rPb3qK3?Pz8B+>_`P^eT2#oWxy%zV+mfUsCBkwB!A$#gTSG1ctf!v9V5 zHvkn6gg^*GRDhyFFcs3PL83t)8ipW)&VPV{F<2ag#sdQMU;3{qWC9=nAqf+2$jmoONlG|?8g&QWKf&hel*I1lyy&%v}eahVU${DBUlFzNZr09=Y;95=>XeE zmhQ`neVN}Ld3DIHd?#L@vVHW$O-Wm*v-4sWv=VZB10 zushah=Z$yM^e1DLpvlNM55+vuC0rO264pi2c=xb2sz|wnaFB)Vv;&=6_V(v|2K!ty^9_ z+2Lir$gfE@TuQE@j*xL(&D!4P$HjNmzP*~Viq+htrAl-zzV^u_-ZmM7e8IdCN$qy< za94e=(1i`2=mjlWHi?`tVi{L*3{7HPWvjUR)Cxv>RL z*kb-5uo@X5wI@B>zEH{*m99G1DydNYUc1N5Zv&{2zC?Nk(~3|&fX@5tHP9Nn;o3s+ zI>)AO8iyCHclF>%s^+&AsoHkA>T(*|{L1a@mXy%SI6>(~G4aYr>WDLWOy|bwur$ZC z0V%`%g_u8J8V{~M@GUa&)PuN}R=Mo#UozThgM2-ZM=9+;_1djCLBqaH$`Ok_f_sie zyVxpzcODE2n~3da1RhKZ?*=|VZumYD?K237PfDJjVD06Ebp)SL*6Rv?Uagg zbjhh)zCb>$sN~Cv+y-_*cJ>qdC^CsT*a*ILo*34+T)y=PTIcsSR-O!eWlRS zVS+oK9iDmBvOegdsgsvtxwlT002t}0ssI2w=C_w00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D8}~^>K~#8N)tgy! zBg=8`8KHMO;+)|Ekl6R7yU{>5y0JBOVj(sX+?V0ZaJHi(>BwXGhHS-^!*W>R<0ULd z*bjDuAN(EsaPQZ+pXmOo3&dbZ&ZcuD*)h{X>z$*ttMCGS?a~0dxg7{wN`s~Hri8FwNkB>Y@5b{kM|ci3^3&= zIk~yHu`Fvb^xaY{7T>&iV;DxYTxPj)z4@na-n@SOdOn}?)X~uqGcSg&6uDf#-(OP{ zC7aE{SU#Vpt+{2v%6keNhQr~-Fcq0=N;aeNtV)&Db6Q^4<*=NlF|920Fh6yH3+{=> zH69T}aX0Y3!nCr%Q#{K&EXC72#U%39{UWDbD_R!+p((vyuTU@?r}j}Xvi(>h6-}h` zrX7i=qVZJPsBZg1zEEr@5KiRm?Hzws&G`Z$qiAn>w%0d38(ZG2mdhwAms{SQ&n3^c z?@rGr5)ZDy53FWH5t5Xblm#~r6*x?!GKsWOt+%L?>8#NhHVMEKnmw#3byLf# zT3XRELQxmoJX97OX4FEl z3e@pr3VFf_!y>T+6pTb;3DLGn506hu)!KME8%?IzBt8O~%?}&x&R}mOjI+CI zl`Eay-r2?FbpL=xt=>33JL~rPTi)+SrIDeQQ?*<;or`63e<~Nx=8{SdD7-@}Wyzsw zSE%pXA@Xsd%m>Wewj~~l_HF0FIFXg?lrT$=+xXrrc1>(Kt12gs?$5;j-#5ycqwbZs zRHr5Nu%;eXm03mIudFgDIm7}xy@9ktI9#zq)X%*XMu=%)WVv}p810jv)JHS zO)q?yNtZ(kE>Y2rYI#f7GO0`^ol$U)1gTjilS1+lgClTY?KOD`@7R!r)=g6IpxjMgF&-A*>%pw?Pj}qa`scZ+?`CH zwmXNT@srW`dboGF+dtXZ+G=;_+$vXkC#OHYxO`(;jjP9hb})bW=YR2U$0uKpCr_rc z8@tru*;3^rm~_h_VM<2*&sVi4jy65KxVktWbi3ErPv-|muV1_z><%t3FZL(nXV*6` zUj4A3X5z_A5;Q6l;WL%Zg~E|7kJsbf_HOSWG~#lf->>C#Uof(XMFk^T-q7-9D3(lR zRj)7j<)(LIYunGbNW>QqN(j38gCSQ-g+8N)u03O)o(+$O25i%Qw6V_RrpLSK_0qZJ z#q2)eHK>s?!*Z#=XJNX|^t}ugg_Hw_UW$0PNm)lFJwDQY93Lo?l&+Dj@9?M5P{%MtkEi zPDREH(triGx5m7*Ub&X6p`}Sf0M%;GI~>B;H$VAVyIyOzd(+9dS+CC~`~CiK)E_h( zt;u-QtTzbNTg?VBg4EJtNnj})hFuPsj;VJ7__H`Z&>sv_vkWY8w_sY2HnyO2R>cj{ z!#Esax$$4!}w8+jm8tPNHmI|OC>EFjUw$>BB~cmCKs)EGT?TlG76nE z0^w*d5^J_Q{!rMkY=%h_eaj(cHr$()ESpzeD%obCP_5N$%O)Z>3P!11sa4C>YE5Je zw@4$SwxtXu;nti+6FN9N8ji>P;hrm^S>9kDal2e0KxlV+$7ko0{kdny_p_h|HvIX}vjhnv+m0G1{{a51i|(HudvoyMOYN@#`18y;0w3wCqY1H+yn+jux1f zjhYY!|M@R|addjhLTrFl#ybB%`M?tNnB{79oV+$^hn=}B?}Y% zIMTd&@nSZapC6t4@a3~~Cd0_3KinPcNjnTjQ8PcDkf{+Ja@(IDnpW}o^S^9&=F|O~ zv-5Ard4Wn0vS>HU<=p8p34Z?kw0W>!dwJ6v4D6%1Gw55DrZdy$&#jkEv&n31@jKEx zNV6SR;#n=5N(%v{vl(zBkxnOI0;mz4!tX1Zu4vc_L+nb;m7zvN8j2};>^0F~cY)OK6q8TCJ2){e`$ z^sJ(s)YNfV-L;fUhk!;M65r5Cpi@?Rwt7;F=hRpt(`a{*A>6i)UX=$Yt@#UrwmS>_ z!RZ}4JZkD~BbOz~fCy;HhKOmbyw)(aNPDhigvlBwK#qE^>(%^?k4)dmk3_me0h1+`BjKyNXP*~0B#HGI< zCf`9Ce}rf(EBpeUAtU}%9y*nh9F}Vh2oCSWrCPb&nm?~kuVZSlSvIZ?db3`=Vil}H z?#GX3F!`s?4j!M)YjpvYOCKW}cQ*IE&|RcCtZ3cdXxJY%>dnz$*lsrNGr5$Z%<=IS zD{-lh&~(d9789v7f?fCQ5SsGlBC+J=w!qIVRM#)oCg{O)5}SfmWcbYayI^v`q44Y( z<+N?Ii<(uclx(}x?plV?>2~n)a?G+UWk|TW8kaI1HQt|i3ik2^Q!g0RnuDwo$#lUm zH9gO5`cdpWYHC*$Ef2yOMO#sIakR1H+w$#rd_uO&<|VQA`MiFi%-jBey!E-dy{0M( zA`_+i(3Ub>jcIZPGCfkhC|eUugH2`AD?T{FAczMZOUZg0b$l`L1&^<2EbWh9j7se@vo zlrxOaVsfq1?dNmKufP4xKmG0BbXwihv+Lvi`K#wQ?ZyN8Da%rZ6-U_NQic%XnjOq{ z2SaLNnw#gpY_|6&vu7t~KWTLi`onX}Zj>xF7nKbTc}yT!}%rfC~(v)9WG zkMxsr#d+k}8mi-gG8$+j9d(LZLv4JVKW(>nKPwmzGDKF1L_D6L#8aeBsU#Vb3{4+A zb6d&~mv~=>#HDDdvZ7HMSm)N-n`*&!HnIGdlIoT|zLOfF^E>h@Oc zP;#}5OO2xW{P{0MTspfsJzK=3R;gnY>$RFb8CT9u8qcoVrd{p!`n&xBNdwQ4h>$3d zTTW)ABSmr)qCYlD?2gW}1nnjE%Et2Y!Jb>gYAfu95 zVj4B8XxzP5mNIm)^sOCA4)0?r+}fqGFAyZjguqNzAZ;Z>B|sN}eOhtqO*&26&YNbw zU>LTQ(+j|RzG(7-90&L5Ob@0tr@FDZ2_gc-Xt<*0%9Sc9EeSE3t=8(Gw98@6vP+pP zz?ORFL|AKD%Cm-YURPc7e?^yVc5c*F7GruASL^gm?A$?P#?Wu9gb5t;JEI>q6WHw7nwv zWj{6j51j}nltrCX?z2ac91@o<^TXc)OOKE0U@3{>{Gis`wZKxMo_+i1pn3d9j~+cU zUYd6K(Wd97@G4(2*B=5EsVXDpgfEr=GdF|o(P&0dktc6=(<@?B&yGm;H@1B1 zn}Ds42$mVPw}W19KoXZIB*7YCjhNiGElzdZA3WTX1hLTV8G=_HDWEu#!~xId&Rc&d z&uJdl)T^tfXU7+3rHcUuKRuXVoS(wv(hlYC7E2jQ4&jzc&E)}7 z-kP2-fN$)E7O3nZ68jU8Ses6$D4F>IYuhn>)Oi2#$hfcHoU9i+~3YDt9KdW{+=EZ3P zFW5Hvz3kpm?zC2Ge6g`L(xyXo(o^&dJIH&w1AVoXga)?G9wv48! zxgXY)Y^zko#LMMswQ5;btJ$^;QzlbO8On2-J2LzfEX6(%T~xX zBH)Yp{Yn4&qwUgI^#pv|VPCuu)|<&kTOK8*M}tXVreIp~Or3REg_H%=2uBmB2|yZg zfs|N+l(T55?{GM47)D+r6emV?BX5NoMKw)R^tk83jD$m`hCTdYIF>|=7#}O4JedCU zU{0JlneFFIy0~b7k}+Q>`Za{#a7U4l;Y=*6fRoO}kRv8&5`)X}#GT?wws< z|D13aeIWoYS}owZ=1e+W`%iwn*XtEOjx?9&7i9gXM`tJd2NG!zW4Y=aou18)PCL7U z-e6>v%HT@g5Mi1?7qZ==4YXtwVkwOW@VGR@_ei=9k@#k{ypqe)Ab#TkHK%JiL&+90 zseBgj&KrtSP}PEx&1<;=69Q2RX;0@B-rJTle=s!nhpsQ!_Kl#VVhO zG(x0Hq=Cb#(|GaK*H3R=_Xc}=#Ot*hE|{#{DB?pZ^;UZ@=#?vFI+y*jeS5j+ku{rM z-d%PwhW^zDT@oW#pIyClNlflOXwgaI<47~?_h{|Arw!futPwM zHVtl3LpTZA5cb0*iY*7Cd(T~m}ItJ6pCDArvG;&L42xZA9L{0i4 zV_>G0PtnP`1*3@Zi}*foJb*Mr>m^GdjSDp88hN;$Z#7!0NW)_R}ApNA5q+|DxM%TEFpvVk$U8KdRru(Iw z+vN&yfu+{symTo;DK{X8S_X|Q!=9++EuJFT;AMvvnFj%C820Evba2T2;9p9Z8e%qV zi)ZO!Ff1W7_eChYP1@0TLh1zrSVgWyo7cw@s;1vXnrlbhpPj#W{&atGcs!q-%+H@b zz3#S}QaNRDWtgfp+7lU2#Mb=ZJgWX^-kDKx^g7z3V>bMhuYY-WaFo(bVooYrYNBM~gGiEW@nG}y)i zNF&fioYM&D0W-7-P31?L3Xtf^)3rl#i^X~AQihUAi1#OnHge#76N^GL=%kioXo#L$ zm%U1KN_C*IoJ~H$D$6#soJx-5QufID9@12_!EiF@^*WtiuiKmKfi=_JR=d~j?oVfR zr!g6gJFQkYmcR(_oYP1SSNUA-K;D%-@^Y1yx5O^poh|42?j*k4gFWOUPJ}xKIX!~5 ztzx^=tyGC>O777^8RV(f9Pp-OS>0|2#XyGl&uJjJSF{deK;I`%sqH%PIG2G%2 zX=&VIJW3HGnG*-cMX6?Tw(m}Bx~`*ylgWOgR*e(4WYw(u>C6IM9x4EiYljj`@7f{E zvu}9A5~P7)JQyK&0Ze&%Pe1m9T`>mZAt4f0lrOj-nOJJts=%d$B`rH;|LR@22e-W# zu-5Aj)5-X+zy0UmeET<5r+t1nfBo|7)uQ; z5E+sj-an`L?PLh63}zA}$-9?v3{1iygp_FG{Y12BT8Nq%;H^adok~j?@|uW3>0wF` zQD}rPY>|r#ZvmXDs)9WnA0HV;0mu1KEtN97b50}aw~=8^98sfY$N|lici~}ahtxdI zJ%Eq_a#}eIZfVd-TlUDM8O+SAAvgp!r;|x2l>D#%`+pvv9zK11Q!ST1AjyRtHd=Si zY2?&Mk8DWFu+eM*lC()U=p;4)5C~1VkMw{IYW4wgAW{fB#Mm&Z(Rku=mE>914jlxG zI>0t}X`>6Sxa!Q$dyz-%$e%@JSVJev!T-YJ!z8i{hk~TJgfW?{2x2Jrf3%=1Wq9YD zhF1uO2m@j(v}G-o%{_N|8^l1e;r1*9z9h^{zOUP71#!9Tl*8_H%1df`AbI&Vrcsrw zGda$tQ{C=hgjo)T!@;mf&i~LaGtwU}&uQd0QQjQ^$c|IuWivGl|97Cb9BQgkblQ2- zB%QTQi`a#*tdPHZ988fi)D7$QoaXH}QQ~_i_s!i|<_}1#9I7NlKr4|qE)jJlvU%Uv zCS*InjQpMki1?rJO%%~uiXiz@!|gI@#W!keE;wDqznm4Wq$ZS=9?%= zG$CT2WHOOViC?*eFx`(4?-VJ+iqkB+`Qayi6D5BD6PKcKr!C0Mtrm%egbEt&5$NLM zdHZvv1(-(ZU;(?)YzZ;S`Si^Jo`B=~oD_%N;QE(>Yj z-n88&ziqYKf*kh`Ul(^*%3v_Sle%`eh}zzM6Xo4b-7ag(Zr@_ z=a0VF_~MZ#szvNsHrGk6Z+eqPJ)xI9{;)R~+wg2}iO=ud-liO1P9eE#_C^z!UzzCSs*eL5v3j}6z(?twm9NiT5tPApnpZ-dXGqK!MQz2jd)Gxcbl`UjP6A07*qoM6N<$g6T6{TL1t6 literal 0 HcmV?d00001 diff --git a/src/achievements/l33t.png b/src/achievements/l33t.png new file mode 100644 index 0000000000000000000000000000000000000000..105e4b2fa2d022a13f082bca3f26dad38b3e9686 GIT binary patch literal 8645 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 0) then + error("trying to use bitwise operation on non-integer!") + end + end + + local function tbl2number(tbl) + local n = #tbl + + local rslt = 0 + local power = 1 + for i = 1, n do + rslt = rslt + tbl[i]*power + power = power*2 + end + + return rslt + end + + local function expand(tbl_m, tbl_n) + local big = {} + local small = {} + if(#tbl_m > #tbl_n) then + big = tbl_m + small = tbl_n + else + big = tbl_n + small = tbl_m + end + -- expand small + for i = #small + 1, #big do + small[i] = 0 + end + + end + + local to_bits -- needs to be declared before bit_not + + function bit_not(n) + local tbl = to_bits(n) + local size = max(#tbl, 32) + for i = 1, size do + if(tbl[i] == 1) then + tbl[i] = 0 + else + tbl[i] = 1 + end + end + return tbl2number(tbl) + end + + -- defined as local above + to_bits = function (n) + check_int(n) + if(n < 0) then + -- negative + return to_bits(bit_not(abs(n)) + 1) + end + -- to bits table + local tbl = {} + local cnt = 1 + while (n > 0) do + local last = math.mod(n,2) + if(last == 1) then + tbl[cnt] = 1 + else + tbl[cnt] = 0 + end + n = (n-last)/2 + cnt = cnt + 1 + end + + return tbl + end + + function bit_or(m, n) + local tbl_m = to_bits(m) + local tbl_n = to_bits(n) + expand(tbl_m, tbl_n) + + local tbl = {} + local rslt = max(#tbl_m, #tbl_n) + for i = 1, rslt do + if(tbl_m[i]== 0 and tbl_n[i] == 0) then + tbl[i] = 0 + else + tbl[i] = 1 + end + end + + return tbl2number(tbl) + end + + function bit_and(m, n) + local tbl_m = to_bits(m) + local tbl_n = to_bits(n) + expand(tbl_m, tbl_n) + + local tbl = {} + local rslt = max(#tbl_m, #tbl_n) + for i = 1, rslt do + if(tbl_m[i]== 0 or tbl_n[i] == 0) then + tbl[i] = 0 + else + tbl[i] = 1 + end + end + + return tbl2number(tbl) + end + + function bit_xor(m, n) + local tbl_m = to_bits(m) + local tbl_n = to_bits(n) + expand(tbl_m, tbl_n) + + local tbl = {} + local rslt = max(#tbl_m, #tbl_n) + for i = 1, rslt do + if(tbl_m[i] ~= tbl_n[i]) then + tbl[i] = 1 + else + tbl[i] = 0 + end + end + + return tbl2number(tbl) + end + + function bit_rshift(n, bits) + check_int(n) + + local high_bit = 0 + if(n < 0) then + -- negative + n = bit_not(abs(n)) + 1 + high_bit = 2147483648 -- 0x80000000 + end + + for i=1, bits do + n = n/2 + n = bit_or(floor(n), high_bit) + end + return floor(n) + end + + function bit_lshift(n, bits) + check_int(n) + + if(n < 0) then + -- negative + n = bit_not(abs(n)) + 1 + end + + for i=1, bits do + n = n*2 + end + return bit_and(n, 4294967295) -- 0xFFFFFFFF + end +end + +-- convert little-endian 32-bit int to a 4-char string +local function lei2str(i) + local f=function (s) return char( bit_and( bit_rshift(i, s), 255)) end + return f(0)..f(8)..f(16)..f(24) +end + +-- convert raw string to big-endian int +local function str2bei(s) + local v=0 + for i=1, #s do + v = v * 256 + byte(s, i) + end + return v +end + +-- convert raw string to little-endian int +local function str2lei(s) + local v=0 + for i = #s,1,-1 do + v = v*256 + byte(s, i) + end + return v +end + +-- cut up a string in little-endian ints of given size +local function cut_le_str(s,...) + local o, r = 1, {} + local args = {...} + for i=1, #args do + table.insert(r, str2lei(sub(s, o, o + args[i] - 1))) + o = o + args[i] + end + return r +end + +local swap = function (w) return str2bei(lei2str(w)) end + +local function hex2binaryaux(hexval) + return char(tonumber(hexval, 16)) +end + +local function hex2binary(hex) + local result, _ = hex:gsub('..', hex2binaryaux) + return result +end + +-- An MD5 mplementation in Lua, requires bitlib (hacked to use LuaBit from above, ugh) +-- 10/02/2001 jcw@equi4.com + +local FF = 0xffffffff +local CONSTS = { + 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, + 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, + 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, + 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, + 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, + 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, + 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, + 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, + 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, + 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, + 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, + 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, + 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, + 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, + 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, + 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391, + 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 +} + +local f=function (x,y,z) return bit_or(bit_and(x,y),bit_and(-x-1,z)) end +local g=function (x,y,z) return bit_or(bit_and(x,z),bit_and(y,-z-1)) end +local h=function (x,y,z) return bit_xor(x,bit_xor(y,z)) end +local i=function (x,y,z) return bit_xor(y,bit_or(x,-z-1)) end +local z=function (f,a,b,c,d,x,s,ac) + a=bit_and(a+f(b,c,d)+x+ac,FF) + -- be *very* careful that left shift does not cause rounding! + return bit_or(bit_lshift(bit_and(a,bit_rshift(FF,s)),s),bit_rshift(a,32-s))+b +end + +local function transform(A,B,C,D,X) + local a,b,c,d=A,B,C,D + local t=CONSTS + + a=z(f,a,b,c,d,X[ 0], 7,t[ 1]) + d=z(f,d,a,b,c,X[ 1],12,t[ 2]) + c=z(f,c,d,a,b,X[ 2],17,t[ 3]) + b=z(f,b,c,d,a,X[ 3],22,t[ 4]) + a=z(f,a,b,c,d,X[ 4], 7,t[ 5]) + d=z(f,d,a,b,c,X[ 5],12,t[ 6]) + c=z(f,c,d,a,b,X[ 6],17,t[ 7]) + b=z(f,b,c,d,a,X[ 7],22,t[ 8]) + a=z(f,a,b,c,d,X[ 8], 7,t[ 9]) + d=z(f,d,a,b,c,X[ 9],12,t[10]) + c=z(f,c,d,a,b,X[10],17,t[11]) + b=z(f,b,c,d,a,X[11],22,t[12]) + a=z(f,a,b,c,d,X[12], 7,t[13]) + d=z(f,d,a,b,c,X[13],12,t[14]) + c=z(f,c,d,a,b,X[14],17,t[15]) + b=z(f,b,c,d,a,X[15],22,t[16]) + + a=z(g,a,b,c,d,X[ 1], 5,t[17]) + d=z(g,d,a,b,c,X[ 6], 9,t[18]) + c=z(g,c,d,a,b,X[11],14,t[19]) + b=z(g,b,c,d,a,X[ 0],20,t[20]) + a=z(g,a,b,c,d,X[ 5], 5,t[21]) + d=z(g,d,a,b,c,X[10], 9,t[22]) + c=z(g,c,d,a,b,X[15],14,t[23]) + b=z(g,b,c,d,a,X[ 4],20,t[24]) + a=z(g,a,b,c,d,X[ 9], 5,t[25]) + d=z(g,d,a,b,c,X[14], 9,t[26]) + c=z(g,c,d,a,b,X[ 3],14,t[27]) + b=z(g,b,c,d,a,X[ 8],20,t[28]) + a=z(g,a,b,c,d,X[13], 5,t[29]) + d=z(g,d,a,b,c,X[ 2], 9,t[30]) + c=z(g,c,d,a,b,X[ 7],14,t[31]) + b=z(g,b,c,d,a,X[12],20,t[32]) + + a=z(h,a,b,c,d,X[ 5], 4,t[33]) + d=z(h,d,a,b,c,X[ 8],11,t[34]) + c=z(h,c,d,a,b,X[11],16,t[35]) + b=z(h,b,c,d,a,X[14],23,t[36]) + a=z(h,a,b,c,d,X[ 1], 4,t[37]) + d=z(h,d,a,b,c,X[ 4],11,t[38]) + c=z(h,c,d,a,b,X[ 7],16,t[39]) + b=z(h,b,c,d,a,X[10],23,t[40]) + a=z(h,a,b,c,d,X[13], 4,t[41]) + d=z(h,d,a,b,c,X[ 0],11,t[42]) + c=z(h,c,d,a,b,X[ 3],16,t[43]) + b=z(h,b,c,d,a,X[ 6],23,t[44]) + a=z(h,a,b,c,d,X[ 9], 4,t[45]) + d=z(h,d,a,b,c,X[12],11,t[46]) + c=z(h,c,d,a,b,X[15],16,t[47]) + b=z(h,b,c,d,a,X[ 2],23,t[48]) + + a=z(i,a,b,c,d,X[ 0], 6,t[49]) + d=z(i,d,a,b,c,X[ 7],10,t[50]) + c=z(i,c,d,a,b,X[14],15,t[51]) + b=z(i,b,c,d,a,X[ 5],21,t[52]) + a=z(i,a,b,c,d,X[12], 6,t[53]) + d=z(i,d,a,b,c,X[ 3],10,t[54]) + c=z(i,c,d,a,b,X[10],15,t[55]) + b=z(i,b,c,d,a,X[ 1],21,t[56]) + a=z(i,a,b,c,d,X[ 8], 6,t[57]) + d=z(i,d,a,b,c,X[15],10,t[58]) + c=z(i,c,d,a,b,X[ 6],15,t[59]) + b=z(i,b,c,d,a,X[13],21,t[60]) + a=z(i,a,b,c,d,X[ 4], 6,t[61]) + d=z(i,d,a,b,c,X[11],10,t[62]) + c=z(i,c,d,a,b,X[ 2],15,t[63]) + b=z(i,b,c,d,a,X[ 9],21,t[64]) + + return A+a,B+b,C+c,D+d +end + +---------------------------------------------------------------- + +function md5.sumhexa(s) + local msgLen = #s + local padLen = 56 - msgLen % 64 + + if msgLen % 64 > 56 then padLen = padLen + 64 end + + if padLen == 0 then padLen = 64 end + + s = s .. char(128) .. rep(char(0),padLen-1) .. lei2str(8*msgLen) .. lei2str(0) + + assert(#s % 64 == 0) + + local t = CONSTS + local a,b,c,d = t[65],t[66],t[67],t[68] + + for i=1,#s,64 do + local X = cut_le_str(sub(s,i,i+63),4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4) + assert(#X == 16) + X[0] = table.remove(X,1) -- zero based! + a,b,c,d = transform(a,b,c,d,X) + end + + return format("%08x%08x%08x%08x",swap(a),swap(b),swap(c),swap(d)) +end + +function md5.sum(s) + return hex2binary(md5.sumhexa(s)) +end + +return md5 diff --git a/src/main.lua b/src/main.lua index 1eed1f3..bf3f409 100644 --- a/src/main.lua +++ b/src/main.lua @@ -1,4 +1,5 @@ Gamestate = require "lib.gamestate" +Gamejolt = require "gamejolt" local menu = require "menu"