Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 42836 - re-emerging drod-bin destroys save-game files
Summary: re-emerging drod-bin destroys save-game files
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-24 21:43 UTC by John Waymouth
Modified: 2004-08-09 07:51 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Waymouth 2004-02-24 21:43:53 UTC
I previously had drod-bin-1.6.3 emerged.  I played the game a lot, and I really enjoyed it.  I guess it got upgraded to 1.6.5 in an system-wide upgrade (emerge world), and it appears that my save game files were lost.

Drod saves its games in /opt/drod/bin/Data/, which is somewhat unorthodox.  Still, I wouldn't expect upgrading to destroy my saved games.  Maybe I'm not clear on the gentoo concept of an "upgrade", or maybe this ebuild needs to be tweaked.

Reproducible: Always
Steps to Reproduce:
1. emerge drod-bin-1.6.3, play for awhile to build a save game.
2. emerge drod-bin-1.6.5.
3. Start drod, and you will be prompted for your name, because your savegames have been overwritten.

Actual Results:  
See step 3.

Expected Results:  
I believe that the ebuild should check for existing save games, and at the VERY
least warn me that they'll be overwritten.  I did not expect this at all, so my
last backup was a ways back.

Portage 2.0.50 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.4.22)
=================================================================
System uname: 2.4.22 i686 Mobile Intel(R) Pentium(R) III CPU - M   900MHz
Gentoo Base System version 1.4.3.13
Autoconf: sys-devel/autoconf-2.58
Automake: sys-devel/automake-1.7.7
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=pentium3 -funroll-loops -pipe"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.1/share/config /usr/kde/3/share/config /usr/share/config
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-O3 -march=pentium3 -funroll-loops -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="http://128.213.5.34/gentoo/
http://mirror.clarkson.edu/pub/distributions/gentoo/ http://gentoo.seren.com/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acpi alsa arts avi berkdb cdr crypt cups dga doc dvd encode esd
foomaticdb gdbm gif gphoto2 gpm gtk gtk2 gtkhtml guile imlib java jpeg libg++
libwww mad mikmod mmx motif mozilla mpeg mysql ncurses nls oggvorbis opengl oss
pam pdflib perl png ppds python qt quicktime readline ruby sdl slang sse ssl
svga tcltk tcpd tetex truetype usb x86 xml2 xmms xv zlib"
Comment 1 SpanKY gentoo-dev 2004-02-24 21:47:25 UTC
we'll see what we can do about making sure save files arent nuked ...

but we dont have too much control over /opt/drod/bin/Data/ considering this is a binary-only game ...
Comment 2 John Waymouth 2004-02-24 22:30:34 UTC
Good point.  This also might be complicated by the fact that /opt/drod/bin/Data/drod1_6.dat might contain game data as well as save data.  Might want to talk to the developers on that.

If you can't just omit emerging these files, then I think a big fat warning and a chance to cancel would be fine.

BTW, in a bizarre twist, I think we were in the same class at WPI.
Comment 3 SpanKY gentoo-dev 2004-02-25 23:20:25 UTC
ok, we might be a little screwd with drod saved games unless we talk to upstream and have them fix the way they work ...

i did this:
emerge drod-bin
<play the game for a few hours and get to level 5>
qpkg -cm drod-bin -v
<shows only files in /opt/drod/bin/Data/ being modified>
mv /opt/drod/bin/Data/ /opt/drod/bin/Data.backup/
emerge drod-bin
<run drod and see my saved games are gone>

so now, if we look in Data/, we find these files we modified:
drod1_6.dat player.dat text.dat
from what i can tell by copying the backed up files over brand new ones in different combinations, in order to rully restore a saved game you have to have drod1_6.dat and player.dat from the old install ... only one or the other is not enough to restore the saved game

this presents a problem since all the level data is contained in drod1_6.dat ...

for now i've added this to the ebuild:
[ -e /opt/drod/bin/Data ] && cp -r /opt/drod/bin/Data{,.backup}
and then it'll output a warning saying that the saved games have been copied to Data.backup ... for a proper fix, i think we're gonna have to bug upstream to do 'the right thing' and save in the users home directory (like ~/.drod/)

as for your saved game, it looks like your plain outta luck, sorry :/

and yes, we've been in a few classes together ... ive given up on most of the students at WPI so i dont bother being active in class/mailing lists very often unless it's a friend or someone personally asks me
Comment 4 SpanKY gentoo-dev 2004-02-25 23:43:44 UTC
alrighty, i've e-mailed upstream describing the issue and requesting some enhancements (saved games in ${HOME}/.drod/) ...

i guess now we wait and see if they get back to us
Comment 5 John Waymouth 2004-02-26 02:20:31 UTC
Yeah, I already figured I was out of luck.  I've asked on the drod forum for someone to pity me and throw me a save file :)  Fortunately at the very least I've saved future people like me from losing their games entirely.  From what I can tell, not many updates actually change the level files, so it's often fine for the user to just manually move their backed up data files back.
Comment 6 Gerry 2004-08-09 07:51:05 UTC
This is fixed in DROD 1.6.6 (Sorry about the delay!).  The full setup will be out sometime today, maybe tomorrow -- I'll make an updated ebuild request when it's done (got some questions about the behavior of the current ebuild, but I'll ask them there).

The DROD 1.6.6 installer won't overwrite existing dat files (because there's not any need to do that -- the db format didn't change between any 1.6 versions).  Also, if any of the data (or the ini file) is read-only, local copies of all data files (and the ini) will be made in the user's home directory, under $HOME/.caravel/drod-1_6.  If all data and the ini are writable, it behaves the same as 1.6.5.  That should make everyone happy, right ? =)

Any questions or comments, feel free to email me at gerryj (at) caravelgames (dot) net.