From fa36c710233b3a9bbe9c378dafe66e69c2908e16 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Wed, 29 Dec 2010 00:55:10 +1300 Subject: [PATCH] fix game failing to load compressed maps; convert 'a path beyond.' --- OpenRA.FileFormats/Filesystem/FileSystem.cs | 25 +- OpenRA.Game/ModData.cs | 2 +- mods/ra/maps/a-path-beyond.oramap | Bin 0 -> 5752 bytes mods/ra/maps/a-path-beyond/map.bin | Bin 81925 -> 0 bytes mods/ra/maps/a-path-beyond/map.yaml | 318 -------------------- 5 files changed, 16 insertions(+), 329 deletions(-) create mode 100644 mods/ra/maps/a-path-beyond.oramap delete mode 100644 mods/ra/maps/a-path-beyond/map.bin delete mode 100644 mods/ra/maps/a-path-beyond/map.yaml diff --git a/OpenRA.FileFormats/Filesystem/FileSystem.cs b/OpenRA.FileFormats/Filesystem/FileSystem.cs index ab34c81a3d..81ae616ca2 100644 --- a/OpenRA.FileFormats/Filesystem/FileSystem.cs +++ b/OpenRA.FileFormats/Filesystem/FileSystem.cs @@ -38,18 +38,23 @@ namespace OpenRA.FileFormats static IFolder OpenPackage(string filename) { - if (filename.EndsWith(".mix", StringComparison.InvariantCultureIgnoreCase)) - return new MixFile(filename, order++); - else if (filename.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)) - return new ZipFile(filename, order++); - else if (filename.EndsWith(".oramap", StringComparison.InvariantCultureIgnoreCase)) - return new ZipFile(filename, order++); - else if (filename.EndsWith(".Z", StringComparison.InvariantCultureIgnoreCase)) - return new InstallShieldPackage(filename, order++); - else - return new Folder(filename, order++); + return OpenPackage(filename, order++); } + public static IFolder OpenPackage(string filename, int order) + { + if (filename.EndsWith(".mix", StringComparison.InvariantCultureIgnoreCase)) + return new MixFile(filename, order); + else if (filename.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)) + return new ZipFile(filename, order); + else if (filename.EndsWith(".oramap", StringComparison.InvariantCultureIgnoreCase)) + return new ZipFile(filename, order); + else if (filename.EndsWith(".Z", StringComparison.InvariantCultureIgnoreCase)) + return new InstallShieldPackage(filename, order); + else + return new Folder(filename, order); + } + public static void Mount(string name) { var optional = name.StartsWith("~"); diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index e1b0fab4eb..8be768f12c 100755 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -62,7 +62,7 @@ namespace OpenRA { var paths = mods.SelectMany(p => FindMapsIn("mods/" + p + "/maps/")); - return paths.Select(p => new MapStub(new Folder(p, int.MaxValue))) + return paths.Select(p => new MapStub(FileSystem.OpenPackage(p, int.MaxValue))) .ToDictionary(m => m.Uid); } diff --git a/mods/ra/maps/a-path-beyond.oramap b/mods/ra/maps/a-path-beyond.oramap new file mode 100644 index 0000000000000000000000000000000000000000..de342aa0b6bc49058333b85f1ba382cd31565d24 GIT binary patch literal 5752 zcmZ{oXH-+$zQutEp@Sk)LzSX*1O*9%j?#C%+mK|&88T}q@QRjPEw zNRwU@2+8H#cgDEy-ErPrANE*#?%!Pd!}@=jx*C8Rw+RRcNC_lJa%Cs5Jc3HM2ndMf z2?>DLZ(VI(3EMil?OK{A-k!OGn_V%KodPV6TKEf(AnVxeU)kT{W+sX$<5xZKSMK{v zqXvEV#rWXX=z(Gp8L#TC1m^gdHJ0sh(L7-MyidqK#WSCEVqk?OO>-6Hw1~D1Lg|Iz6 zS&+lpy%|(7vY1wcNJLRt){kucmi^L(nk-7<6|*g21A!f(fv4yOM-^gfj{}nbxG%q|pn8>Gs4;ojdK?=VP}d+YblUi> zJMaY>&Q~0ePJ{p;qIUT-L{lIr&mW%A&4O&W8@LEGz*k4|rWkq9e>e`aZRbysk+BE( z7AG!a+}0^FIE5%*DcDW+r_Mxv5-eoJKE;#U`P-Dit{tGOBwQuT#!jF#ri7!;oxp&!E&qSBX0) zGNM!GH^rBjALtsvh|g%@TAH3u8JFM^zRWS2mM}39Om_Fn3TveT6Jv zJNr$B6H~N0GJm3w9xsgHj-m}uqh7m4%T2Af3_of-SWfcCB*_n zsFgvgy4N=G1VxfhSe{U6HXz0%AXGyOX$BF{dDp}AHK`5 z_)QLk0{lmC(h z+y})`&#xKze3isxkp&B4oSi0zcI4;BNpS^nOlSE7_=d0r^0T`f`JG|dugq1$1;f;J zkg(u}P8iS^xaR)D-9bu@M2Q6x+pU6t{95s;8lUgpsM)pbRAW>W#wJ_-g`Te#t%6k+PK;J{|y}d8(5+iN-)O4 z!?&ojK!R^-A$`ScL~I^|rV*{tnJNw1R7yCZzOI&-^6c*{Utle*_2f&1SxcODQQPUd ztA!Yl8BTImr1BXS4wzTy2sZ-mQX3f@>d=^?8tQy*HmdBH_R1lcbGqtB#7&T18j@|q z$GoNPMK{xOj`)Bb^_eoy9;^UYe5CO7Cx1Agd0Nq_-*_!Tu`HmGH?@fHKI&P0@HYRe z+ec-#R)V%pdI{ZC##CcaQ~RMT?B|frRXo2^U>dG+r!+%PQdmz8MD}z?1KCeHqmJ`| zeLUYINDYJUjCIX#t$HB{jNfl$NVIv}esjBDudm%A{@vZ$krYXcPv~CQNeYa@pp$Xu z@tMb(;EL`%!fe$A&vfEhZ(>w-^yvw1?pdnyyT!ibRDl8k(YLou*dqOIPsPPd@vzgn zArDeuj8c?--~Cg)GX9hyioe8s@>O~Pc?pTXD(Cv>4sfpw=Ripb$HL6Q>(<-BYT7kr zoTA0xbBkAiH-L4j>CC|3%pOr{J13AWsL^YrsyOoiy+Y#&DLvP}D7)8)Gu%S+tz zEpiv{(&fj^XB=Aj)pNwudIU{|COaV#9u+aiETwaMcG&RDMhEv%+{ z(9(LT3(vx?dj)V>@9pY{o$Amm3o_@x%U&j2C(Y2t8&Mbox06nDwo4Psc@sZs-HBRg zjy%if8K{R||87aiQ!7&lEwKE}?$M8feUnX5Kv_9UJvrD>a4vD}Mb z`hS06(uDbSvH$S^61z4a5+ai0&^A-Ng8wP^L(bvr>yO}Z6e?XBgRe6AWVymbbqJos>)cx{?_Fho)0eR*;0(W`K$ckgidF{Owt^ydK0BFDn zTqi{50@59z7TT=8;*+VQ=`lKL1RekNJ6kk6!_8J_>h(ozJS4FVcSSeBcjYOGdq;FG z9+iPI)2!!ZNUeH;Q-kC2LP}~Y&*U6i)bGogrcysZ#`8@)6U3|I@iG;si6$N8fs?c! zrjgIJ9{XyAg<*8~g4ty8T#T8l8C65bE^#vTpLh<`7n6kf?-C=5K!9?NdTpUq&gA#r^UG3(`N%mq0L${OJ}L2l)W{Ej@~oZw`P zx==doA%AiF3n~qlJ2HsS3S|C9fg~P0M*8uc{fWJZU4`xGX}N?vw00{9CS9W)QMxKb zPZJd~-jzNK&#ZrALzl05LbOQ~e_U{^z0=%#sk2A83}`KUThR3Lknj^}MDTDqMPX+B zZJ%|tL=nR@ZN>)Ym`vTO$3A4MDd8my5+fh&{3Q>NcRZb+XGni%upcI3koJ3w^*XjG z6?>I9$@O;dX50oO3rk4E=`OwNS+H^ON5_DDsZ-PRWxYNB@O_SEQkThJOG`4SiK!Jv@&TbW`B z7pBX+aiwu_g(3i0dPZ_b-|s5!2DY*~p5~^oK>|aUDYiN7o7Fqr8V}y+|H=Ql(v5~1 zpr)4doSQos&ZsqasRT=65iYSu-pk@MzK7X;_|6xC!fO1+(saFlAG33PQSauFX<6|h zT*yzoqttsv?7W#YhNWmP5UW$r?NFuSzN6fvV2t*0M?^$(w$1hRQG2FG4ihsshlFwaWWyNV(v zzuf1}xiY&H#VOUhTo3WyQOCqV*16LaicNVWFHO%RXDw2eDiQ1?k<2>qaB&k2*w^EtL%@@#O+)-c&`{fg<#{nY1_# z8+Dnea+p7aStcf>hcNWxE1W#M!p`$`4?RP%Q}^R%$W~x(Q8D=xC}>r;1!(*#>H)6R zLI6~yCNP4doZUC3%VGZY*;`tnp9ybK^MQJ{n0^rd>hw}@aWII4_XqT2Kf1l zB>f`UTGq@4OJm+OUQdNs@09_3iu*p-b3%D&irYEm=5^xTF5O_S6H38Pd=_a6b!A)( zEe?IbVm12Iie6KU9hCo@ecNnH^oWYiz@F(W(Sa1}19b^+vT-Z!tls0)J4e=5B%E78 z&6Z>U9qC2Ki4o#-#ivxkZvyYE1XN4FYIr&f*uN_7Rlk(eBBd*38f>8-fo(1`ES9<2 z*|TVM0^b_Cwx3^2u7Lp^16=OYSnd%@ywIu*BjP&b1S!~_jo27}v6U;+VqPF5NgmKt zJ3gTFzO&31r?mL+%%%9lfvx9$9pm%2__WNJxeMykZ(=<^srT;mrZGo$m}e|^b0Nxo zgY;C;?0SnK?F{Q3J*fFl%|a4QqRo*!RtAR`Ma!cwQ&);(a}(_%kx6X&q69t*Hrn;} zAJu;s!2FLQR@Bsos+hP(qVV^R)AXa0PjajBQeY=4eWfA(J$s*HZ;D!TqhpE`1rG#D z13+B2l)sIbjhB8!7)Y{-W3uj^0%pI~IT7>pRaMu0hquWfMco%bUNg>@>4td{oEs_3 z&RovZpO06zVLtx*Z*hEoI+&fUj=M3r7eU*mZnDlfjI|D(vN+vr_Kzz=7zaleO|HuE zZZU>M(q_Q7SiCkd?g=oXJIk2}Z<_f4?`QkfhX~}ut?x2^BXxw}F)%!%jGzE0C`- zwCak8nXW~{T7P_q4bZ1rQ{l-t?+3F{+o#9^{&pbnYgiuqD9JVJXo{?)g6lHPv@8av zeB7Z+@luLtuU8Zcf>)r(!ZOXpJn~KBpA=_IYN&RF^V`x}OP^SI!wT<t80)-rHQ@BghZg6R$N2IoM79HI3(-Mu73vpT_lt zS{w>UeZO(9FnG$@q>csK;8Vg*5nzVFKU5|#UKiI|*0>d#*KLo#QoW-|mR$&TFB_&2 zxDi$VuDl9ElQ-Ve&i!QuPi~}iG5)maHgMxTD}_H;kxVm0HfXe z5Yt+?)b~$oBL-|2ZRD!tBd`?=`6>U(-mb;#>uW;-?5V1M0F|4+^n3ld)mp@D8f!fK(Jb#2)`RsRk`(A1qb@6SBq;@n!_y6=v+K+2X9RUOcrq|UI>EAt* zpN*@_ZrZ5F;zQbj@t+2pgs+f~NOLP%#xxz)dbwLqnUbxu>0))Cz5?$}IbaGO>-$J{ zoa%xk`Ui07pSvuP-+Ldsd7_O5ey4Bg5eK!-@QwlZ>jCU`e zr|+v67b&+CX0uC&8Y~DsY+W@h7l^%l+}?M_drGxAtN-W_8zvvjrh9iVx6Yp&_K#j*mda{xzgVpAi>(QbKvxoPZ>gM~QoxO6+g>Q3d zpxtcXaSG8c8m|#)YI7(wdrz$K)NSl`yn$!x*{UM7Qp54ukHEFVd(+FcN6vxdLAj5l z8(N+6VD1%59s4!gk2@55msi>3;JfEu-*G6LtjM+++ea)*CH@?~4H@uBMqWcdEa(xc zp;!{|T)*eYomQECJA0x-kRgy9kVE6Q^6)i;YFv6*;SN1)Kw|W%`oMQ>F_7`9^r+*n zjP+5Njw2|`asfa0zL$yT^~VU^6o>by54RMb=IZGitCR8ssXm3?<9t8D#N&Bw);ql4 zxi*J#^*r#N>U~bxQ)nbBFtBydT)1>U%HpH_!PlIO@4aVmpLKp(jvsr|ozJ!P&uCxV zalnB*-_{#Hk!QZa!!w~I|2wAR=7{vy73>rnHa(}l*-n1_1Q6>d&hd!+q#P;sluJl0 z6iiRa1HZv$^SqF1koAU<{cz?%i6V!i`LINFQn6w#{|)1bf)ZuUvKtJVsk?V2ZW(W7 z7SfZ%Xrzx!3AxpU9Z<+}v34_Lm6RBWB!e4lW5;^9$;o_&9wxI6^^lhi&VC@$BNZ0O zb&n|#mU4LajzZw`X;sOu$tM=%oeD=ENH8Qz`3x^@fR+ja=K7(zZ$>je9*0!ySMuiZ zw|Bl$E>XK}B(CI*Sj*^spapFu(qkOD>lbxDhQEOAEtpf?h8*@&^IihK`WU!cRLWA# zNY@lh)28vh=l1W&)SB8XnNjsDVIxm>k=jXd=ldYMQbbqAw|YMWCxeNc4c< v|1W;8XYzmP?;7~Oq5q!Z{}3;)JLJEhzh+ujgP7zmhv<4aUq8?3|JwZvLB%no literal 0 HcmV?d00001 diff --git a/mods/ra/maps/a-path-beyond/map.bin b/mods/ra/maps/a-path-beyond/map.bin deleted file mode 100644 index cc3ccb0b29387b5a39917868c82e02b63b8af32f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81925 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