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