Hi, the bugs is still here and I write a small patch to fix it.
It's probably not perfect but it's enough to share high-scores with other users on the computer. Regards, Florent.
diff -Nru crack-attack-1.1.14.old//data/multiplier_record ./data/multiplier_record --- crack-attack-1.1.14.old//data/multiplier_record 1970-01-01 01:00:00.000000000 +0100 +++ ./data/multiplier_record 2011-03-22 16:27:11.829772768 +0100 @@ -0,0 +1,20 @@ + +0 + +0 + +0 + +0 + +0 + +0 + +0 + +0 + +0 + +0 diff -Nru crack-attack-1.1.14.old//data/score_record ./data/score_record --- crack-attack-1.1.14.old//data/score_record 1970-01-01 01:00:00.000000000 +0100 +++ ./data/score_record 2011-03-22 16:27:11.829772768 +0100 @@ -0,0 +1,60 @@ +AluminumAngel +600 +*********** +580 +Fish Person +560 +SidekickSeven +540 +~5Moon Mellon +520 +Mr. Twinkles +500 +Cup +480 +~9Shadow +460 +enoyaw +440 + [ +420 +Book +400 +~8Plum +380 +Stankpants +360 +Food +340 +Mrs. Hidges +320 +~3Banana +300 +1337 h/|x0R +280 +Ladle Head +260 +~2Apple +240 +ScrollLock +220 + ] +200 +Tater-Tot +180 +~6Orange +160 +Sen-TR++ +140 +Happy Puppy +120 +Mr. Muddle +100 +Tony the Tortoise +80 +Rap Master B +60 +~1A~2B~3C +40 +Tod Tortellini +20 diff -Nru crack-attack-1.1.14.old//debian/crack-attack.postinst ./debian/crack-attack.postinst --- crack-attack-1.1.14.old//debian/crack-attack.postinst 2011-03-22 16:39:36.000000000 +0100 +++ ./debian/crack-attack.postinst 2011-03-22 16:37:58.485715148 +0100 @@ -4,6 +4,29 @@ set -e +DIR=/var/games/crack-attack +DATADIR=/usr/share/games/crack-attack +MULTI_FILE=multiplier_record +SINGLE_FILE=score_record + +case "$1" in + configure) + if ! [ -e "$DIR" ]; then + mkdir -p "$DIR" + chmod 755 $DIR + fi + if ! [ -f "$DIR/$MULTI_FILE" ]; then + cp $DATADIR/$MULTI_FILE $DIR/$MULTI_FILE + chmod 664 $DIR/$MULTI_FILE + fi + if ! [ -f "$DIR/$SINGLE_FILE" ]; then + cp $DATADIR/$SINGLE_FILE $DIR/$SINGLE_FILE + chmod 664 $DIR/$SINGLE_FILE + fi + chown -R root:games $DIR + +esac + if test -x /usr/bin/update-menus; then update-menus; fi #DEBHELPER# diff -Nru crack-attack-1.1.14.old//debian/crack-attack.postrm ./debian/crack-attack.postrm --- crack-attack-1.1.14.old//debian/crack-attack.postrm 2011-03-22 16:39:36.000000000 +0100 +++ ./debian/crack-attack.postrm 2011-03-22 16:37:58.485715148 +0100 @@ -4,6 +4,10 @@ set -e +if [ "$1" = "purge" ]; then + rm -rf /var/games/crack-attack +fi + if test -x /usr/bin/update-menus; then update-menus; fi #DEBHELPER# diff -Nru crack-attack-1.1.14.old//data/Makefile.am ./data/Makefile.am --- crack-attack-1.1.14.old//data/Makefile.am 2005-04-28 23:42:49.000000000 +0200 +++ ./data/Makefile.am 2011-03-22 16:27:11.829772768 +0100 @@ -1,2 +1,2 @@ -pkgdata_DATA = clock_0.tga clock_1.tga clock_2.tga clock_3.tga clock_4.tga clock_5.tga clock_6.tga clock_7.tga clock_8.tga clock_9.tga clock_extra.tga count_down_1.tga count_down_2.tga count_down_3.tga count_down_go.tga default_record flavor_1.tga flavor_2.tga font0_0.tga font0_1.tga font0_2.tga font0_3.tga font0_4.tga font0_5.tga font0_6.tga font0_7.tga font0_8.tga font0_9.tga font0_a.tga font0_and.tga font0_at.tga font0_b.tga font0_br.tga font0_c.tga font0_ca.tga font0_cb.tga font0_cc.tga font0_cd.tga font0_ce.tga font0_cf.tga font0_cg.tga font0_ch.tga font0_ci.tga font0_cj.tga font0_ck.tga font0_cl.tga font0_cln.tga font0_cm.tga font0_cma.tga font0_cn.tga font0_co.tga font0_cp.tga font0_cq.tga font0_cr.tga font0_cs.tga font0_ct.tga font0_cu.tga font0_cv.tga font0_cw.tga font0_cx.tga font0_cy.tga font0_cz.tga font0_d.tga font0_ds.tga font0_e.tga font0_ep.tga font0_eq.tga font0_f.tga font0_g.tga font0_gt.tga font0_h.tga font0_i.tga font0_j.tga font0_k.tga font0_l.tga font0_lt.tga font0_m.tga font0_mn.tga font0_n.tga font0_o.tga font0_p.tga font0_pd.tga font0_pe.tga font0_pl.tga font0_pr.tga font0_ps.tga font0_pu.tga font0_q.tga font0_qm.tga font0_r.tga font0_s.tga font0_sl.tga font0_t.tga font0_td.tga font0_u.tga font0_v.tga font0_w.tga font0_x.tga font0_y.tga font0_z.tga font0_za.tga font0_zb.tga font0_zc.tga font0_zd.tga garbage_flavor_000.tga garbage_flavor_001.tga garbage_flavor_002.tga garbage_flavor_003.tga garbage_flavor_004.tga garbage_flavor_005.tga garbage_flavor_logo.tga garbage_flavor_logo_x.tga garbage_lightmap_0.tga garbage_lightmap_1.tga garbage_lightmap_2.tga garbage_lightmap_3.tga garbage_lightmap_4.tga garbage_lightmap_5.tga logo.tga logo_x.tga message_anykey.tga message_game_over.tga message_loser.tga message_paused.tga message_waiting.tga message_winner.tga sign_10.tga sign_11.tga sign_12.tga sign_4.tga sign_5.tga sign_6.tga sign_7.tga sign_8.tga sign_9.tga sign_bonus.tga sign_x10.tga sign_x11.tga sign_x12.tga sign_x2.tga sign_x3.tga sign_x4.tga sign_x5.tga sign_x6.tga sign_x7.tga sign_x8.tga sign_x9.tga crack-attack.desktop crack-attack.xpm default_multiplier preview_normal.tga preview_extremely_reduced.tga preview_reduced.tga -EXTRA_DIST = ${pkgdata_DATA} +pkgdata_DATA = multiplier_record score_record clock_0.tga clock_1.tga clock_2.tga clock_3.tga clock_4.tga clock_5.tga clock_6.tga clock_7.tga clock_8.tga clock_9.tga clock_extra.tga count_down_1.tga count_down_2.tga count_down_3.tga count_down_go.tga default_record flavor_1.tga flavor_2.tga font0_0.tga font0_1.tga font0_2.tga font0_3.tga font0_4.tga font0_5.tga font0_6.tga font0_7.tga font0_8.tga font0_9.tga font0_a.tga font0_and.tga font0_at.tga font0_b.tga font0_br.tga font0_c.tga font0_ca.tga font0_cb.tga font0_cc.tga font0_cd.tga font0_ce.tga font0_cf.tga font0_cg.tga font0_ch.tga font0_ci.tga font0_cj.tga font0_ck.tga font0_cl.tga font0_cln.tga font0_cm.tga font0_cma.tga font0_cn.tga font0_co.tga font0_cp.tga font0_cq.tga font0_cr.tga font0_cs.tga font0_ct.tga font0_cu.tga font0_cv.tga font0_cw.tga font0_cx.tga font0_cy.tga font0_cz.tga font0_d.tga font0_ds.tga font0_e.tga font0_ep.tga font0_eq.tga font0_f.tga font0_g.tga font0_gt.tga font0_h.tga font0_i.tga font0_j.tga font0_k.tga font0_l.tga font0_lt.tga font0_m.tga font0_mn.tga font0_n.tga font0_o.tga font0_p.tga font0_pd.tga font0_pe.tga font0_pl.tga font0_pr.tga font0_ps.tga font0_pu.tga font0_q.tga font0_qm.tga font0_r.tga font0_s.tga font0_sl.tga font0_t.tga font0_td.tga font0_u.tga font0_v.tga font0_w.tga font0_x.tga font0_y.tga font0_z.tga font0_za.tga font0_zb.tga font0_zc.tga font0_zd.tga garbage_flavor_000.tga garbage_flavor_001.tga garbage_flavor_002.tga garbage_flavor_003.tga garbage_flavor_004.tga garbage_flavor_005.tga garbage_flavor_logo.tga garbage_flavor_logo_x.tga garbage_lightmap_0.tga garbage_lightmap_1.tga garbage_lightmap_2.tga garbage_lightmap_3.tga garbage_lightmap_4.tga garbage_lightmap_5.tga logo.tga logo_x.tga message_anykey.tga message_game_over.tga message_loser.tga message_paused.tga message_waiting.tga message_winner.tga sign_10.tga sign_11.tga sign_12.tga sign_4.tga sign_5.tga sign_6.tga sign_7.tga sign_8.tga sign_9.tga sign_bonus.tga sign_x10.tga sign_x11.tga sign_x12.tga sign_x2.tga sign_x3.tga sign_x4.tga sign_x5.tga sign_x6.tga sign_x7.tga sign_x8.tga sign_x9.tga crack-attack.desktop crack-attack.xpm default_multiplier preview_normal.tga preview_extremely_reduced.tga preview_reduced.tga +EXTRA_DIST = ${pkgdata_DATA} diff -Nru crack-attack-1.1.14.old/src/Game.h crack-attack-1.1.14/src/Game.h --- crack-attack-1.1.14.old/src/Game.h 2005-05-03 21:03:58.000000000 +0200 +++ crack-attack-1.1.14/src/Game.h 2011-03-22 14:34:01.034215169 +0100 @@ -82,6 +82,7 @@ # define GC_DATA_DIRECTORY(x) DATA_DIRECTORY x # endif # define GC_LOCAL_DATA_DIRECTORY GC_DD "." GC_BINARY GC_DD +# define GC_LOCAL_SCORE_DIRECTORY GC_DD "var" GC_DD "games" GC_DD GC_BINARY GC_DD # define GC_BINARY_LOCATION BINARY_DIRECTORY GC_DD GC_BINARY #else # define GC_DATA_DIRECTORY(x) ".." GC_DD "data" GC_DD x diff -Nru crack-attack-1.1.14.old/src/Score.cxx crack-attack-1.1.14/src/Score.cxx --- crack-attack-1.1.14.old/src/Score.cxx 2005-04-16 17:20:44.000000000 +0200 +++ crack-attack-1.1.14/src/Score.cxx 2011-03-22 14:26:39.181715512 +0100 @@ -122,7 +122,7 @@ { char file_name[256]; char buffer[256]; - TextureLoader::buildLocalDataFileName(GC_MULT_FILE_NAME, file_name); + TextureLoader::buildLocalRecordFileName(GC_MULT_FILE_NAME, file_name); ifstream new_file(file_name); if (new_file.fail()) return false; @@ -138,7 +138,7 @@ bool Score::readScoreRecord ( ) { char file_name[256]; - TextureLoader::buildLocalDataFileName((MetaState::mode & CM_X) + TextureLoader::buildLocalRecordFileName((MetaState::mode & CM_X) ? GC_X_REC_FILE_NAME : GC_REC_FILE_NAME, file_name); ifstream file(file_name); if (file.fail()) return false; @@ -156,7 +156,7 @@ void Score::writeScoreRecord ( ) { char file_name[256]; - TextureLoader::buildLocalDataFileName((MetaState::mode & CM_X) + TextureLoader::buildLocalRecordFileName((MetaState::mode & CM_X) ? GC_X_REC_FILE_NAME : GC_REC_FILE_NAME, file_name); ofstream file(file_name); if (file.fail()) { @@ -169,7 +169,7 @@ file.close(); // mult record - TextureLoader::buildLocalDataFileName(GC_MULT_FILE_NAME, file_name); + TextureLoader::buildLocalRecordFileName(GC_MULT_FILE_NAME, file_name); ofstream mult(file_name); if (mult.fail()) { cerr << "Error writing to score record file '" << file_name << "'." << endl; diff -Nru crack-attack-1.1.14.old/src/TextureLoader.h crack-attack-1.1.14/src/TextureLoader.h --- crack-attack-1.1.14.old/src/TextureLoader.h 2011-03-22 15:17:13.000000000 +0100 +++ crack-attack-1.1.14/src/TextureLoader.h 2011-03-22 14:43:03.821715614 +0100 @@ -79,6 +79,18 @@ #endif strncpy(file_name, s.str().data(), 256); } + + static inline void buildLocalRecordFileName ( const char base_name[256], + char file_name[256] ) + { + ostringstream s; +#ifndef _WIN32 + s << GC_LOCAL_SCORE_DIRECTORY << base_name << ends; +#else + s << GC_LOCAL_DATA_DIRECTORY << base_name << ends; +#endif + strncpy(file_name, s.str().data(), 256); + } }; #endif