From 6e9ff8e381ceed150c498eaf01f1f58215c343b0 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Tue, 11 Aug 2009 01:24:40 +0000 Subject: [PATCH] Finally fixed the string extraction for Kyrandia 1 Amiga. This should make the intro/outro strings work fine again. svn-id: r43246 --- dists/engine-data/kyra.dat | Bin 257322 -> 257348 bytes engines/kyra/gui_lok.cpp | 5 ++++- tools/create_kyradat/create_kyradat.cpp | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat index c945b7863bca83f2438119dda4ce360cb46b0967..6bcb6930a323ce43541e9508ec1e1c84267c382e 100644 GIT binary patch delta 11508 zcmZvi37AyHwa2T6B?>5mGu_jTEW@H~nPC>zJTd9%?wM((H@bTmKyg68;8Vc$`S79F z1rxWAh@}!lK}1CnL`8840wyS*K?CG{DoBh&q9!f`^}VPVc)tIsTXpN)LBG$BIloiO zsdMU{I=A|6c(3=a_j=#;RpdZYhu5=br;jV0n9nhX@r zXLC8mrh#R$M7?I~fTHQvRHB%OW|HaZLSl-V<1HGoRlXBAz3LnM*%nO}shQVrLc0(R zn6YJYqAg)@yX;dEy7(?AbJ=7en`z2s5?-HIftwT2R1)hbH0RVj?Xx^q=fSbFvB2hp zJA~K$F3`qQYtat4Pu^8h;mo?wa5LzvIj}gHDJJr@-kA4#%+9lHu4z~AwR;LIo=;|4 zJaXndYE{U2;B5fJDj8EAJJrm3T#oJ%bQWIZw)XqwHBi;XkN*VRn2Hu!8e3D=iP!ub z6hLXb<*xwECt5SfY{rYy;Y;DYY}$I{(`t~ZiTw0fDuI8z&Xo&mu3FqkJfB$@)dujQK=7SuCjVe19eOUnZWIrlg)%$#c7gBc)4dF{xNKg)N;= zB$PR^xcHe|)HPgk$Mwr||k)Lfn{s$Oydk}WN`cdLzgf*!N6zb+V17f2TWC4V|2Y9wqw_NtC+~Cw~UK8_0}Od z^%k<1Q(8$s<(}gldu!=0b3Y0?=dNR>c*YkvooLLS&uE>unCm$87IQbJ-eT5sN{ev~ z+{UrDn$Pb(CFt~f#M)Qq*`DHbys>Wyr`}pNa_X(+PmI=kYY9JUXRD{Rxc2>&V{b7R z$){o9!=!61#D3mkj?%8xs7f*H*@va#B;x%uNJT&AI%hsblhpU4v>xwoAEK+G1dJ7oE<(~ z`V_5zp95%HL(q2&0PX?grvT8?&#^-Q@=Nle9>GyZK|5u9=#Fni&Pud3MfI5h6np{M zzhd~cFCYSW9Ozz3-r*5sYm`j)+A94djAg5a*Gm827s6( zs!=_VPNJIJOx^U})Mzu1w>QDgr1|~@$SM%sv_|gl8FVh&Wj2Z`K(uZHs4XirtbEOE z9u4LK*tlu96Of(XnjTPnP1rR2?ltUh8#hfiy{?0#dBG9WKLU@AVZ0J3LDH~k!x#YfY# z|L%*ArbSR29}RZ`x(Qi>Q$OMHQ7{r0GeKE=blWTBzTV~M+yk8rh*k~wR0l-MBOtSY zXj+t&rNN&(|G5o_R=fk`4~Xe;1fft>E@CiCE-Hin{@~I{`lQfBa<@OrmkvSl4 zvNoxi###W1WjLtTNn8xEC7Mb_TdLaf$)bAeN=y+8zay{vt9P;VI0A$ky)B!KSEaH| zS(-}h1#Ov*gDswnS~}{4H?AH>HNNkAM2rgkNvhHpqXGecnJ;1<(LNKqJ)#SI@wFUy zM$kFhJ<$1$S*+}>Sz|Jl$lw4|2bEZSMxfK{vzT2L5QXMwE>Wn8CmN%zDHzn86Gtmx z5PO#v=k*KN_h_*Ql77@2#7iuJY#ua{Z-;EleepKLPA|^ldm2I)`l_fD<^3&DHJE5( zL{-M(T1HeIDV$9Vsp4LAFrq3-Q8vI1t*S|pWJFbx!eK;JkzykwZf!3Pa-__5ME8Mq z@LJdKdX8MnXL013{s2d=>2Gl4+Wsj=uJJu9?Tk*XYknnTwXXeR8FI^cF_|OR?d=@7 z=3m8;YyNE$LMZa?M}Nk!$`F47nA&_=qFde5co7 zJAS=(KS!?piwM~&UaW-drFh!1?*Xv%PAD)Wz;ipHIv{rN0y$!iZKj@`z)-K7s@cW6 z05VVK{LSAV=Wa21f zB6|}fZm5BC^ev3I4FWrpsQnHge*$5DMpNJO$BKOVH z5g=g=1Qr28hk)E?phjI16YDzPMu6m@ko^%LxQE~H?#^WTdf}}l8 z;zo$Z<0QWbSv#D>W7Jx2d6Gw7#T-uHG63fALJmP&3C285&0Ygyd!Ep7AnS1=)2}uT zCuuVzyXA?T@gF{i6B-6&9Ztk)B;^ z-K$tFuX+T2iRIXfduqKxe$hYZY`)bzZ|2p9boI9xYVPWZUg%MCKH)%A!=Jb8q!M58 zZYzGM%vY+9R>Bv}a_N9R{ocC&he~{RVEN2|a%cBCv-iw|hd}iHGwAO?W)B+nHJB~) z)riqYPAc^kzXaS@?kjo&Q5hfD$JxU4s$x_6j~R8Zjmc4wN9|au>{M-2jJo&8)Yf6t zy+C_66=?f|wa+)(kX+&83r(yC{D zHNGuKJ*?92TxvVlS?%fyGCM5f z%u+hqRO&*}Rc#EZ@$?4*sH=6C#g)X1sTOx0tN5Ezm}4EULb}7qQN9jV@oOlOuvmUL ztWU|;HFE7J^_f6M_8uM@`^Pb)EJjl;*@nr97(PEpM{|0_sbfi(%uF?J_nNPiGlrk} zllkLS&r}OttSUEI8%Iv)th46ym?$?74~-n!;4>HHtRDStDBSS44q7db4v#c%Rn0rQ zovvHcF&c<_mFOJ_qP{o~UL$iOf=;fHO+om4fI@pNs+~>W0=3kMn-n#krd$G;$x_o! zhKR;o=jp@@g&LEYD84;%w}QA#vD28bVw?POL@+${JaU*FRqY({+$;pEtVZ;jtK6x7 zC3JPmTy|36ME7}e_Qs#l*`vbmN7hmP0oXV)aedMPh?|b!5aj1ca5d zPgxKkdW8P_4yEYyNRVdFoupyQRqZPzQ8zZou@rY|JX&GxFviC#UMSNO)5ENL)W}Om zMa~@Yzz_INjd-hkXjEie$0N*pY~0ev6hFy>s_X6Y=%|SEvTD-l2_Rcftheq_?N5EY zi@FYv#&Fi+XMo1)6h56n)>yR>i}hTC*lGUy7RBA2PS2d?PrcAZq+1Kg7#_qP9$hV$ z|2P==^-HQxd%B3rN!I6Xx#Pz{XTxv02>OAUDgdV3z73}0`aRp&Sm1`e4o=^{VRgLu z9){U6hP*QLls zXrZvlTf2R+yso;!S+WzW%%*eEg3ndQfysrjEWV~UC)2`2RfI%yHvy&9pwZEc5Vm-uhX2!{|_Cm#1v?&3s61 z9vyPNa<%bf+Gp>$U1}m=U!NVXE8LLE##(&s_qYnQ=LWp5X*Qd$=lqB_%!n8sbmrH< zZg*bv7{mFgyXAtKipUhJ_D#QEK1kX(z0N*A?3Zsr`_4Y>i&#FJN=^5L_>eqNQ{i-2 zZ3Cb9Bk+dSB0fLy#b3T_aBX!8TSo7(zk0ZiH8mI2&#&I|`3w0VhWo`KlREV*cLQ`fd`Uy+^273QT_o_h{8wGy zaP|At%sWd=lWDT5zGCL05BQ+e^}j&U(PSo_$h5jeT)i0GK|#jdihCZ{i`j<_poG~{ zFGlczIt-L#-8U6n)8x4B-Eg7o3G% bR$X8E(zwv_e;;?jxci@5KJtR?SAX&UpT_qn delta 11510 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.platform == Common::kPlatformAmiga) { // English Amiga version - offsetOptions = 8; + offset = 23; + offsetOn = 23; + offsetOptions = 32; walkspeedGarbageOffset = 2; + offsetMainMenu = 23; } assert(offset + 27 < _vm->_guiStringsSize); diff --git a/tools/create_kyradat/create_kyradat.cpp b/tools/create_kyradat/create_kyradat.cpp index 2e53efbaff9..26fb1a6eff2 100644 --- a/tools/create_kyradat/create_kyradat.cpp +++ b/tools/create_kyradat/create_kyradat.cpp @@ -500,7 +500,7 @@ bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32 if (g->special == kAmigaVersion) { if (i + 1 >= size) ++entries; - else if (!data[i+1]) + else if (!data[i+1] && !(i & 1)) continue; else ++entries; @@ -616,7 +616,7 @@ bool extractStrings(PAKFile &out, const Game *g, const byte *data, const uint32 // we need to strip some aligment zeros out here int dstPos = 0; for (uint32 i = 0; i < size; ++i) { - if (!data[i]) { + if (!data[i] && !(i & 1)) { if (i + 1 > size) continue; else if (i + 1 < size && !data[i+1])