[Scummvm-cvs-logs] SF.net SVN: scummvm:[34606] scummvm/branches/gsoc2008-gui

Tanoku at users.sourceforge.net Tanoku at users.sourceforge.net
Sat Sep 20 13:21:51 CEST 2008


Revision: 34606
          http://scummvm.svn.sourceforge.net/scummvm/?rev=34606&view=rev
Author:   Tanoku
Date:     2008-09-20 11:21:35 +0000 (Sat, 20 Sep 2008)

Log Message:
-----------
- Merged the new RTL changes into the branch.
- Fixed conflicts.
- Added new RTL dialogs to the Theme Description files.

Full SVNMerge log:
==================
Merged revisions 33928,33930,33932-33936,33938-33940,33942-33943,33948,33950,33953,33967,33973,33976,33978,33980,33985,33991,33993,33999-34000,34006,34009,34011,34013,34015,34019,34021-34023,34025,34027-34028,34030,34032-34034,34036,34038-34039,34041,34046-34048,34050-34055,34057,34059-34065,34067,34072,34074,34076,34078-34081,34084,34086-34087,34089-34090,34093,34096-34102,34104,34107,34113,34116,34119,34122,34124,34126,34128,34131-34132,34135,34138,34141,34144,34146,34149,34152-34154,34156-34157,34160,34163-34164,34169,34173,34179-34194,34196-34198,34200-34201,34205-34206,34208-34217,34219-34225,34227-34228,34234-34237,34239-34249,34251-34279,34281-34284,34286-34288,34290-34320,34323-34324,34326,34328-34329,34332,34334,34336,34338-34340,34343-34353,34356-34357,34359-34371,34373,34375,34378,34381-34382,34384-34385,34389-34391,34393-34394,34396-34397,34399-34405,34407-34409,34411,34413,34415,34417-34420,34423-34426,34428-34438,34440-34454,34456-34458,34460,34462-34469,34472,34474,34479-34481,34483-34498,34501-34505,34508,34511-34518,34520-34524,34526-34563,34566-34569,34571-34590,34592,34595-34599,34602-34603 via svnmerge from 
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

........
  r33928 | peres001 | 2008-08-16 08:39:58 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Fixed label positioning in BRA.
........
  r33930 | peres001 | 2008-08-16 09:47:44 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Enabled interaction with movable zones - mainly NPCs - which are linked to animations.
........
  r33932 | anotherguest | 2008-08-16 10:49:36 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Enable CINE
........
  r33933 | peres001 | 2008-08-16 10:57:07 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Fixed half-invisible balloons.
........
  r33934 | fingolfin | 2008-08-16 13:37:36 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Replaced ARM_USE_GFX_ASM by USE_ARM_GFX_ASM
........
  r33935 | buddha_ | 2008-08-16 13:38:43 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Changed AdlibRegisterSoundInstrument's member variables from unsigned 16-bit to unsigned 8-bit. Maybe this'll fix the crash in AdlibSoundDriver::setupInstrument() eriktorbjorn was getting in Future Wars when teleporting from the photocopier room to the swamp. There was a OPLWriteReg(_opl, 0x80 | car, reg->sustainRelease) call with sustainRelease = 65452. Now there shouldn't be any such calls made because the sustainRelease value is always 8-bit now. Hopefully this won't break anything.
........
  r33936 | eriktorbjorn | 2008-08-16 13:50:36 +0200 (Sat, 16 Aug 2008) | 2 lines
  
  Removed unused variable.
........
  r33938 | athrxx | 2008-08-16 14:38:37 +0200 (Sat, 16 Aug 2008) | 4 lines
  
  - KYRA: FM-Towns/PC-98 Audio: fixed several bugs and got rid of some floating point arithmetic (or at least replaced some doubles with floats)
  - Improved support for PC-98 music: HOF tracks seem to be fine, KYRA should be okay, too (I can't compare with an emulator since I am missing the floppy boot disk with the executable)
  - There are still tempo issues. Some tracks play way too slow, others way too fast
  - PC-98 sound effects in Kyra 1 don't work (I would need the floppy disk with the executable for that)
........
  r33939 | peres001 | 2008-08-16 14:49:27 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Multiple balloons (answers) are now positioned correctly in BRA.
........
  r33940 | peres001 | 2008-08-16 15:10:54 +0200 (Sat, 16 Aug 2008) | 1 line
  
  Extended balloon manager to handle color constants and fixed color of text in balloons for BRA.
........
  r33942 | athrxx | 2008-08-16 16:25:03 +0200 (Sat, 16 Aug 2008) | 1 line
  
  KYRA: Fm-Towns Audio: fixed music fading
........
  r33943 | athrxx | 2008-08-16 17:24:52 +0200 (Sat, 16 Aug 2008) | 1 line
  
  KYRA: Fm-Towns Audio: fixed crash
........
  r33948 | lordhoto | 2008-08-16 23:51:56 +0200 (Sat, 16 Aug 2008) | 2 lines
  
  Cleanup.
........
  r33950 | buddha_ | 2008-08-17 00:15:57 +0200 (Sun, 17 Aug 2008) | 5 lines
  
  Workaround for bug #2054882 (FW: Impossible to survive entering monastery (regression)):
  For Future Wars o1_compareGlobalVar now compares global variable 255 to be equal to everything.
  The scripts probably tested global variable 255 for equality with some value (Maybe 143?)
  to see whether copy protection was properly passed.
........
  r33953 | lordhoto | 2008-08-17 00:30:47 +0200 (Sun, 17 Aug 2008) | 2 lines
  
  Properly close files opened when checking for config file on WIN32.
........
  r33967 | buddha_ | 2008-08-17 12:43:54 +0200 (Sun, 17 Aug 2008) | 1 line
  
  Forwardport of branch-0-12-0's r33966: Fix to Future Wars's rendering of type 0 overlays (i.e. color sprites). Objects with negative frame values are supposed to be jumped over (Verified with disassembly).
........
  r33973 | sev | 2008-08-17 20:58:23 +0200 (Sun, 17 Aug 2008) | 2 lines
  
  Patch #2045543: Possible fix for Drascula's decodeRLE()
........
  r33976 | buddha_ | 2008-08-17 22:53:18 +0200 (Sun, 17 Aug 2008) | 1 line
  
  Added some documentation about how data is unpacked in gfxConvertSpriteToRaw (Learned this from trying to implement convertPI1_2 i.e. gfxConvertSpriteToRaw myself to see if that was the problem with the Operation Stealth's labyrinth arcade sequence).
........
  r33978 | anotherguest | 2008-08-17 23:16:07 +0200 (Sun, 17 Aug 2008) | 1 line
  
  Improved filehandling for securer and quicker way to get ref to file session
........
  r33980 | athrxx | 2008-08-18 00:49:34 +0200 (Mon, 18 Aug 2008) | 4 lines
  
  KYRA: FM-Towns/PC-98 Audio:
  - improved accuracy
  - complete percussion channel support (does not work atm though, since the instrument data is missing)
  - some cleanup
........
  r33985 | peres001 | 2008-08-18 09:12:05 +0200 (Mon, 18 Aug 2008) | 3 lines
  
  * Split up blt routine (there is room for a ton of improvements)
  * Added scaling as a new blt option
  * Activated scaling for the main character in BRA
........
  r33991 | knakos | 2008-08-18 19:24:25 +0200 (Mon, 18 Aug 2008) | 1 line
  
  do away with the smush force redraw hack
........
  r33993 | athrxx | 2008-08-18 19:42:32 +0200 (Mon, 18 Aug 2008) | 3 lines
  
  KYRA: FM-Towns/PC-98 Audio:
  - adpcm decoding for rhythm channel
  - cleanup
........
  r33999 | knakos | 2008-08-18 20:15:32 +0200 (Mon, 18 Aug 2008) | 1 line
  
  switching to libTremolo
........
  r34000 | anotherguest | 2008-08-18 20:16:24 +0200 (Mon, 18 Aug 2008) | 1 line
  
  Do Deinit of pixel buffer when hiding menu.That saves 600KB in VGA games for low memory devices.
........
  r34006 | robinwatts | 2008-08-18 22:04:15 +0200 (Mon, 18 Aug 2008) | 8 lines
  
  Updates to the scummvm blitting code as discussed on the mailing list.
  
   1) Remove DS version of the ARM blitters in favour of the 'normal' ARM one.
   2) Update normal ARM blitter to use Carlo's clever algorithm.
   3) Update C version with Max Horns patch (slightly tweaked - counting down
  on loops is better, M'kay).
........
  r34009 | tramboi | 2008-08-18 22:43:44 +0200 (Mon, 18 Aug 2008) | 1 line
  
  Compile fix for 34006
........
  r34011 | anotherguest | 2008-08-18 23:09:46 +0200 (Mon, 18 Aug 2008) | 1 line
  
  Enable quick F5 save key for Touche!
........
  r34013 | anotherguest | 2008-08-18 23:19:18 +0200 (Mon, 18 Aug 2008) | 1 line
  
  Enable save game action key in Touche for WinCE devices.
........
  r34015 | athrxx | 2008-08-19 03:00:15 +0200 (Tue, 19 Aug 2008) | 2 lines
  
  fixed bug that caused a lockup in certain configurations when the music was fading
........
  r34019 | athrxx | 2008-08-19 08:31:57 +0200 (Tue, 19 Aug 2008) | 1 line
  
  fixed warnings
........
  r34021 | anotherguest | 2008-08-19 09:44:35 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Remove Deinit when hiding menu! UI infoprints needed the pixelbuffer.
........
  r34022 | peres001 | 2008-08-19 10:08:32 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fixed segfault when quitting BRA.
........
  r34023 | thebluegr | 2008-08-19 10:49:53 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fix for bug #2057194 - "IHNM: -x option crashes ScummVM, if savegame doesn't exist"
........
  r34025 | anotherguest | 2008-08-19 10:54:28 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Don't Use CEikonEnv::Static, get FS from system class instead
........
  r34027 | anotherguest | 2008-08-19 11:26:41 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Use the correct and specified datatype int32 instead of only int.
........
  r34028 | thebluegr | 2008-08-19 12:05:07 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fixed regression from commit #33576. Fixes bug #2056282 - "DRASCULA: can't use inventory objects"
........
  r34030 | thebluegr | 2008-08-19 12:12:35 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fix for bug #2057664 - "DRASCULA: No GUI warning when playing from CD"
........
  r34032 | fingolfin | 2008-08-19 12:52:39 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fixed GCC warning
........
  r34033 | fingolfin | 2008-08-19 12:58:35 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fixed 'make install' when building outside srcdir
........
  r34034 | buddha_ | 2008-08-19 13:55:20 +0200 (Tue, 19 Aug 2008) | 5 lines
  
  Fix for bug #2057637: FW: Spaceship glitches in demo (regression).
  This was caused by assuming in-place decompression is ok, it wasn't,
  although AFAIK the original did decompression in-place too.
  Changed unpacking to be done not in-place and the glitch vanished.
  Also changed the unpacker to also handle uncompressed input data.
........
  r34036 | buddha_ | 2008-08-19 15:05:38 +0200 (Tue, 19 Aug 2008) | 6 lines
  
  Fix for bug #2057656: FW: Assert during demo (regression).
  Future Wars's Amiga demo is trying to load collision data files
  'L8_MK.NEO' and 'L23_MK.NEO' that aren't supplied with the demo.
  Previous code crashed when a file couldn't be found,
  now it gives a warning instead.
........
  r34038 | peres001 | 2008-08-19 16:07:48 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Fixed bug in low-level parser. Block comments weren't interpreted correctly.
........
  r34039 | buddha_ | 2008-08-19 16:19:28 +0200 (Tue, 19 Aug 2008) | 2 lines
  
  Fix for bug #2057619: FW: Glitches in title display of demo (regression).
  Removed incorrect transparency data used for logo. Now it's shown correctly.
........
  r34041 | peres001 | 2008-08-19 16:36:05 +0200 (Tue, 19 Aug 2008) | 1 line
  
  Deleted debug code that slipped in.
........
  r34046 | peres001 | 2008-08-20 05:36:49 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  * Enlarged buffer for frame decoding. Crashes in the introduction were caused by a small buffer and subsequent out-of-bound writes.
  * Disabled debug code.
........
  r34047 | peres001 | 2008-08-20 06:02:12 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Engine now returns to the menu when intro is over.
........
  r34048 | eriktorbjorn | 2008-08-20 11:12:11 +0200 (Wed, 20 Aug 2008) | 4 lines
  
  I believe the setVolume() function has to be guarded by a mutex. (I added this to
  the Tinsel engine a while back to fix mysterious problems, but forgot to add it
  elsewhere.) Maybe this will fix the mysterious IHNM crashes, as well?
........
  r34050 | eriktorbjorn | 2008-08-20 11:15:59 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Moved the mutex locking a bit. (Consistent with how the AGOS engine does it.)
........
  r34051 | fingolfin | 2008-08-20 12:18:59 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Extended HashMap debug output
........
  r34052 | fingolfin | 2008-08-20 13:07:16 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Unified member names in container/storage classes Array, HashMap and String: _storage, _size, _capacity
........
  r34053 | lordhoto | 2008-08-20 16:03:34 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Committed patch #2050337 "KYRA/SCUMM: Thumbnail support/improvement". (Without Max' compressed backward seeking support for now)
........
  r34054 | lordhoto | 2008-08-20 16:24:16 +0200 (Wed, 20 Aug 2008) | 4 lines
  
  - Committed Max' compressed save backseeking support from patch #2050337 "KYRA/SCUMM: Thumbnail support/improvement"
  - Extended SCUMM engine to support savegames without thumbnail header. (Increased savegame version to prevent saves to be loaded from older ScummVM versions)
  - Fixed KYRA to properly support savegames without thumbnail header.
........
  r34055 | lordhoto | 2008-08-20 16:30:40 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Committed patch #2055831 "KYRA: ResFileEntry parent cache optimization".
........
  r34057 | buddha_ | 2008-08-20 16:56:46 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Fix compilation: Changed 'not' to '!'.
........
  r34059 | buddha_ | 2008-08-20 17:06:26 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Added graphics/thumbnail.cpp and graphics/thumbnail.h to MSVC project files.
........
  r34060 | lordhoto | 2008-08-20 17:08:00 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Cleanup of thumbnail saving/loading code.
........
  r34061 | lordhoto | 2008-08-20 17:12:36 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Oops fix save loading after last commit.
........
  r34062 | buddha_ | 2008-08-20 17:17:35 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Removed already deleted file engines/scumm/thumbnail.cpp from MSVC project files.
........
  r34063 | buddha_ | 2008-08-20 17:58:52 +0200 (Wed, 20 Aug 2008) | 1 line
  
  Renamed graphics/scaler/thumbnail.cpp to thumbnail_intern.cpp. Fixes compiling under MSVC.
........
  r34064 | athrxx | 2008-08-20 18:14:10 +0200 (Wed, 20 Aug 2008) | 1 line
  
  tempo fix
........
  r34065 | buddha_ | 2008-08-20 19:31:35 +0200 (Wed, 20 Aug 2008) | 4 lines
  
  Fix font loading:
  Fixes bug #2058539: OS: Assert starting demo (regression).
  May possibly also fix bug #2019344: FW: crash with Amiga Italian version (photocopy room),
  but not sure about that because I couldn't reproduce the bug myself.
........
  r34067 | athrxx | 2008-08-20 21:57:57 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  - add support for Italian floppy version
  - more work on fm-towns music tempo
........
  r34072 | lordhoto | 2008-08-20 23:23:30 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Fixed warning.
........
  r34074 | lordhoto | 2008-08-20 23:28:59 +0200 (Wed, 20 Aug 2008) | 2 lines
  
  Committed patch from bug #2062926 "GCC 4.x versions not detected by configure script".
........
  r34076 | athrxx | 2008-08-21 00:38:36 +0200 (Thu, 21 Aug 2008) | 1 line
  
  KYRA: Towns/PC-98-Audio: fix bug where pitch wheel is processed twice instead of once
........
  r34078 | athrxx | 2008-08-21 04:17:52 +0200 (Thu, 21 Aug 2008) | 1 line
  
  KYRA: Towns/PC-98-Audio: tempo fix for output rates other than 44100 Hz
........
  r34079 | athrxx | 2008-08-21 14:04:55 +0200 (Thu, 21 Aug 2008) | 1 line
  
  KYRA: Towns/PC-98-Audio: increased precision for envelope generator timing and tempo when using "odd" output rates like 48 kHz or 8 kHz
........
  r34080 | peres001 | 2008-08-21 14:11:24 +0200 (Thu, 21 Aug 2008) | 1 line
  
  Removed unused code and structures, and a bit of cleanup.
........
  r34081 | buddha_ | 2008-08-21 16:14:33 +0200 (Thu, 21 Aug 2008) | 4 lines
  
  Fix for bug #2057619: FW: Glitches in title display of demo (regression).
  This fix doesn't seem to break other Future Wars versions like r34039 did.
  Some versions of TITRE.ANI use 15 for transparency color, others use 0.
  Previously only one of the choices was supported, now both are recognized.
........
  r34084 | buddha_ | 2008-08-21 16:43:03 +0200 (Thu, 21 Aug 2008) | 1 line
  
  Fix typo.
........
  r34086 | eriktorbjorn | 2008-08-21 16:52:55 +0200 (Thu, 21 Aug 2008) | 2 lines
  
  Fixed warning.
........
  r34087 | athrxx | 2008-08-21 20:24:52 +0200 (Thu, 21 Aug 2008) | 1 line
  
  KYRA: Towns/PC-98-Audio: fixed bug where notes for which the hold flag was set were turned off nonetheless
........
  r34089 | peres001 | 2008-08-22 02:19:12 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Implement transition when entering a new location for BRA. Not pixel-perfect, but... let's e happy about it.
........
  r34090 | Kirben | 2008-08-22 05:37:43 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Add another 3DO version of Fatty Bear's Birthday Surprise.
........
  r34093 | peres001 | 2008-08-22 08:32:12 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Fixed error in parsing.
........
  r34096 | fingolfin | 2008-08-22 13:17:12 +0200 (Fri, 22 Aug 2008) | 1 line
  
  code formatting cleanup
........
  r34097 | fingolfin | 2008-08-22 13:19:41 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Moved POSIXFilesystemNode class declaration to a new header file, to enable subclassing
........
  r34098 | fingolfin | 2008-08-22 13:36:47 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Turned Windows, AmigaOS and POSIX FSFactories into plain classes; no need for them to be singletons (actually true for all other FS factories)
........
  r34099 | fingolfin | 2008-08-22 13:41:14 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Symbian backend does not have to implement config file methods, as long as they are identical to those in the SDL backend...
........
  r34100 | fingolfin | 2008-08-22 13:45:29 +0200 (Fri, 22 Aug 2008) | 1 line
  
  SDL backend: Simplified openConfigFileForReading/openConfigFileForWriting impl; also init _fsFactory in constructor, as it is needed to load the config file
........
  r34101 | fingolfin | 2008-08-22 13:49:34 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Turned SymbianFilesystemFactory from a singleton into a normal class; adapted symbian backend accordingly
........
  r34102 | buddha_ | 2008-08-22 14:11:51 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Designate fix for bug #2057619 as a hack, as that's what it is.
........
  r34104 | Kirben | 2008-08-22 15:01:23 +0200 (Fri, 22 Aug 2008) | 1 line
  
  Remove warning about change of config file location under Windows, since it is frequently repeated (due to code restructures). The information is mentioned in the README anyway.
........
  r34107 | Kirben | 2008-08-23 08:09:30 +0200 (Sat, 23 Aug 2008) | 1 line
  
  Another French version Humongous Catalog and another English DOS version of Fatty Bear's Birthday Surprise.
........
  r34113 | drmccoy | 2008-08-23 16:18:12 +0200 (Sat, 23 Aug 2008) | 2 lines
  
  Fixing _itemsMap access (bug #2069177)
........
  r34116 | Kirben | 2008-08-24 09:48:44 +0200 (Sun, 24 Aug 2008) | 1 line
  
  Add more versions of HE games.
........
  r34119 | aquadran | 2008-08-24 09:54:36 +0200 (Sun, 24 Aug 2008) | 1 line
  
  remove broken code, but i'll add better feature into compression tool
........
  r34122 | sev | 2008-08-24 23:28:20 +0200 (Sun, 24 Aug 2008) | 2 lines
  
  Fix inventory.
........
  r34124 | sev | 2008-08-24 23:31:20 +0200 (Sun, 24 Aug 2008) | 3 lines
  
  Italian version now has properly translated verbs area as well as numerous
  fixes to object names. So new version of packet.005 was prepared.
........
  r34126 | sev | 2008-08-24 23:32:37 +0200 (Sun, 24 Aug 2008) | 2 lines
  
  Fixes for Italian strings thanks to glorfindel & co.
........
  r34128 | sev | 2008-08-24 23:34:03 +0200 (Sun, 24 Aug 2008) | 2 lines
  
  New drascula.dat with fixed Italian strings
........
  r34131 | wjpalenstijn | 2008-08-25 00:09:55 +0200 (Mon, 25 Aug 2008) | 1 line
  
  new tools
........
  r34132 | buddha_ | 2008-08-25 01:16:37 +0200 (Mon, 25 Aug 2008) | 3 lines
  
  Fix for bug #2055912: FW: incrustSprite fails on savegame loading.
  What little testing I did, this seems to work, but more testing
  would be nice.
........
  r34135 | peres001 | 2008-08-25 08:32:08 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Added workaround for bug 2070751, long standing issue with item matching exposed after revision 32873.
........
  r34138 | knakos | 2008-08-25 10:11:52 +0200 (Mon, 25 Aug 2008) | 1 line
  
  patch 1984130: Add Tremolo info
........
  r34141 | knakos | 2008-08-25 10:48:46 +0200 (Mon, 25 Aug 2008) | 1 line
  
  patch 1868881: ini option to disable doubletap rmb
........
  r34144 | peres001 | 2008-08-25 11:35:22 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Fixed regression: show mouse and enable input in NS Demo.
........
  r34146 | buddha_ | 2008-08-25 14:00:38 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Added a warning to bug #2055912's fix committed in revision 34132.
........
  r34149 | lordhoto | 2008-08-25 15:52:10 +0200 (Mon, 25 Aug 2008) | 2 lines
  
  Added short delay(Millis) call while waiting for text input, should reduce CPU usage a little bit.
........
  r34152 | thebluegr | 2008-08-25 16:55:11 +0200 (Mon, 25 Aug 2008) | 3 lines
  
  Fix for bug #2073159 - "MICKEY: Incomplete computer message".
  
  Random numbers are calculated from 1 onwards in the preAGI engines, but there was an off-by one error. I'm currently hesitant to add this fix to the 0.12.0 branch, as I'm unsure if it has any possible regressions in Troll's Tale or Winnie the Pooh
........
  r34153 | buddha_ | 2008-08-25 17:04:48 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Added Cinematique archive file unpacker and script disassembler to tools. NOT polished code so caveat emptor.
........
  r34154 | thebluegr | 2008-08-25 17:07:05 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Fix for bug #2062024 - "DRASCULA: Error talking with blind man"
........
  r34156 | buddha_ | 2008-08-25 17:14:20 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Added info about cine_tools to tools/README. Also added a couple of FIXMEs to the cine_tools files about missing endian safeness.
........
  r34157 | lordhoto | 2008-08-25 17:14:29 +0200 (Mon, 25 Aug 2008) | 2 lines
  
  Implemented continous screen updating while waiting for text input in v2 GUI. (based on LoK implementation)
........
  r34160 | thebluegr | 2008-08-25 17:58:45 +0200 (Mon, 25 Aug 2008) | 2 lines
  
  Fix for original game bug with the wall plug in chapter 5.
  Fixes bug #2059621 - DRASCULA: Plug bug
........
  r34163 | buddha_ | 2008-08-25 19:41:00 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Reverted revision 34156 and revision 34153 (extract_cine and decine got properly placed in revision 34162).
........
  r34164 | knakos | 2008-08-25 19:43:56 +0200 (Mon, 25 Aug 2008) | 1 line
  
  Update readme
........
  r34169 | eriktorbjorn | 2008-08-25 20:47:27 +0200 (Mon, 25 Aug 2008) | 5 lines
  
  Refined the workaround for wrongly compressed audio. If the sample rate is given
  as 11025 Hz, it should be 11840 Hz. However, a fixed version of compress_queen
  won't necessarily produce files with that sample rate, since LAME will resample
  the sounds to 12000 Hz. I.e. we can only override the rate if it's exactly 11025.
........
  r34173 | wjpalenstijn | 2008-08-25 21:22:16 +0200 (Mon, 25 Aug 2008) | 1 line
  
  package tools_gui as scummvm_tools_gui
........
  r34179 | thebluegr | 2008-08-26 09:48:19 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Cleanup
........
  r34180 | thebluegr | 2008-08-26 10:05:36 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Merged talk_vonBraun and talk_vonBraunpuerta
........
  r34181 | thebluegr | 2008-08-26 10:21:21 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Simplified several calls to copyBackground()
........
  r34182 | thebluegr | 2008-08-26 10:35:02 +0200 (Tue, 26 Aug 2008) | 2 lines
  
  talk_dr_grande -> talk_drascula_big
  talk_baul -> talk_trunk
........
  r34183 | thebluegr | 2008-08-26 12:59:59 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Removed some unneeded sanity checks that have been introduced with the latest cleanups
........
  r34184 | Kirben | 2008-08-26 13:15:01 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Add more versions of HE games.
........
  r34185 | peres001 | 2008-08-26 14:15:11 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Cleanup.
........
  r34186 | thebluegr | 2008-08-26 14:34:05 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Correct fix for bug #2073159 - "MICKEY: Incomplete computer message"
........
  r34187 | lordhoto | 2008-08-26 15:51:26 +0200 (Tue, 26 Aug 2008) | 2 lines
  
  Fixed typo. (Thanks to salty-horse for spotting it).
........
  r34188 | lordhoto | 2008-08-26 15:56:58 +0200 (Tue, 26 Aug 2008) | 2 lines
  
  And for all of those who love recompiling most of ScummVM... fixed typo properly :-P
........
  r34189 | thebluegr | 2008-08-26 16:26:43 +0200 (Tue, 26 Aug 2008) | 1 line
  
  Fix for bug #2057200 - "IHNM: Invisible inventory objects"
........
  r34190 | thebluegr | 2008-08-27 12:00:32 +0200 (Wed, 27 Aug 2008) | 1 line
  
  Document some animations
........
  r34191 | fingolfin | 2008-08-27 19:41:05 +0200 (Wed, 27 Aug 2008) | 1 line
  
  cleanup
........
  r34192 | fingolfin | 2008-08-27 20:21:03 +0200 (Wed, 27 Aug 2008) | 1 line
  
  Slightly cleaned up version of patch #2072006: Enhance OSystem_SDL::setupIcon
........
  r34193 | fingolfin | 2008-08-27 20:38:06 +0200 (Wed, 27 Aug 2008) | 1 line
  
  Slightly modified form of patch #2043093: OS/2 patches for posix-fs
........
  r34194 | fingolfin | 2008-08-27 20:52:21 +0200 (Wed, 27 Aug 2008) | 1 line
  
  Partial commit of patch #2012839: Atari Patch for adding Native MIDI and Fix Compile
........
  r34196 | fingolfin | 2008-08-27 21:29:41 +0200 (Wed, 27 Aug 2008) | 1 line
  
  Fix bug #2078922: DW: Pushing ESC repeatedly at beginning causes odd behavior
........
  r34197 | fingolfin | 2008-08-27 22:31:22 +0200 (Wed, 27 Aug 2008) | 1 line
  
  FSNode code: Merged most versions of lastPathComponent() into one new AbstractFilesystemNode::lastPathComponent() method, with customizable path separator character
........
  r34198 | fingolfin | 2008-08-27 22:41:28 +0200 (Wed, 27 Aug 2008) | 1 line
  
  Removed various uses of scumm_stricmp by the more readable String::equalsIgnoreCase and String:: compareToIgnoreCase
........
  r34200 | fingolfin | 2008-08-28 11:03:43 +0200 (Thu, 28 Aug 2008) | 1 line
  
  Some extra HashMap tests
........
  r34201 | fingolfin | 2008-08-29 11:44:05 +0200 (Fri, 29 Aug 2008) | 1 line
  
  Made out-of-memory error in SCUMM a bit more verbose
........
  r34205 | lordhoto | 2008-08-30 00:04:15 +0200 (Sat, 30 Aug 2008) | 1 line
  
  Updated msvc8 and msvc9 project files for latest FS changes.
........
  r34206 | peres001 | 2008-08-30 12:27:20 +0200 (Sat, 30 Aug 2008) | 1 line
  
  Moved mouse cursor loading/handling to Input class.
........
  r34208 | eriktorbjorn | 2008-08-30 14:54:54 +0200 (Sat, 30 Aug 2008) | 2 lines
  
  Added a whitespace, just for salty-horse.
........
  r34209 | peres001 | 2008-08-30 17:49:54 +0200 (Sat, 30 Aug 2008) | 1 line
  
  Removed global g_system.
........
  r34210 | fingolfin | 2008-08-30 23:03:15 +0200 (Sat, 30 Aug 2008) | 1 line
  
  TINSEL: Added support for the 3,4 and 5 FLAGS (multi lingual) versions of DW (only 4 flags version has been tested; see also bug #2048383)
........
  r34211 | fingolfin | 2008-08-30 23:43:36 +0200 (Sat, 30 Aug 2008) | 1 line
  
  cleanup
........
  r34212 | fingolfin | 2008-08-30 23:51:13 +0200 (Sat, 30 Aug 2008) | 1 line
  
  TINSEL: Write config changes to disk
........
  r34213 | fingolfin | 2008-08-31 00:09:35 +0200 (Sun, 31 Aug 2008) | 1 line
  
  TINSEL: Remove some unused code; and duplicated the 4-FLAGS version detection entry (one copy for each language) for the user's convenience
........
  r34214 | fingolfin | 2008-08-31 00:10:48 +0200 (Sun, 31 Aug 2008) | 1 line
  
  TINSEL: The engine version is an integer, not a bitfield
........
  r34215 | fingolfin | 2008-08-31 00:16:59 +0200 (Sun, 31 Aug 2008) | 1 line
  
  cleanup
........
  r34216 | fingolfin | 2008-08-31 00:26:16 +0200 (Sun, 31 Aug 2008) | 1 line
  
  Fix (?) Solaris detection in some workaround code in the MT-32 emulator
........
  r34217 | drmccoy | 2008-08-31 01:59:46 +0200 (Sun, 31 Aug 2008) | 2 lines
  
  Added some The Last Dynasty stubs
........
  r34219 | peres001 | 2008-08-31 07:18:25 +0200 (Sun, 31 Aug 2008) | 1 line
  
  Uniformed the interface of Parallaction class (and its hierarchy) with regards of gui code, which is now independent of engine version.
........
  r34220 | peres001 | 2008-08-31 08:14:45 +0200 (Sun, 31 Aug 2008) | 1 line
  
  Moved save/load code into SaveLoad class.
........
  r34221 | peres001 | 2008-08-31 10:27:40 +0200 (Sun, 31 Aug 2008) | 1 line
  
  Removed extra semicolon detected by salty-horse pesky compiler.
........
  r34222 | peres001 | 2008-08-31 11:30:16 +0200 (Sun, 31 Aug 2008) | 2 lines
  
  Cleanup.
........
  r34223 | peres001 | 2008-08-31 12:24:32 +0200 (Sun, 31 Aug 2008) | 1 line
  
  More cleanup.
........
  r34224 | peres001 | 2008-08-31 12:43:32 +0200 (Sun, 31 Aug 2008) | 1 line
  
  Fixed leak with Input class, introduced in commit 34206.
........
  r34225 | drmccoy | 2008-08-31 13:37:07 +0200 (Sun, 31 Aug 2008) | 2 lines
  
  Shutting up a warning on systems where char is signed by default
........
  r34227 | peres001 | 2008-08-31 15:58:17 +0200 (Sun, 31 Aug 2008) | 4 lines
  
  * Added Archive, an interface for searching into file containers.
  * Added FSDirectory, an Archive implementation that models a directory from the filesystem.
  * Added SearchSet, an Archive implementation that allows searching multiple Archives.
  See patch 2034983 on sf.net.
........
  r34228 | fingolfin | 2008-08-31 17:30:07 +0200 (Sun, 31 Aug 2008) | 1 line
  
  Fix warnings
........
  r34234 | lordhoto | 2008-09-01 01:11:55 +0200 (Mon, 01 Sep 2008) | 2 lines
  
  Added newly added archive.cpp to the build system, just in case someone wants to play with the code and wonders about errors while linking.
........
  r34235 | thebluegr | 2008-09-01 12:07:48 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Updated all MSVC project files with the latest changes to the code (gob and parallaction engines and the file system)
........
  r34236 | thebluegr | 2008-09-01 12:09:48 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Silence MSVC warning about potentially uninitialized variable
........
  r34237 | fingolfin | 2008-09-01 12:54:03 +0200 (Mon, 01 Sep 2008) | 1 line
  
  New Queue class, from RTL branch
........
  r34239 | lordhoto | 2008-09-01 17:39:48 +0200 (Mon, 01 Sep 2008) | 2 lines
  
  Fixed warnings.
........
  r34240 | lordhoto | 2008-09-01 18:52:09 +0200 (Mon, 01 Sep 2008) | 3 lines
  
  - Added tests for newly added Common::Queue
  - Changed Common::Queue::front and Common::Queue::back to return references instead of values
........
  r34241 | fingolfin | 2008-09-01 19:30:03 +0200 (Mon, 01 Sep 2008) | 1 line
  
  First part of GSoC2008 RTL branch merge
........
  r34242 | fingolfin | 2008-09-01 19:46:05 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: AGI
........
  r34243 | fingolfin | 2008-09-01 19:46:53 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: AGOS
........
  r34244 | fingolfin | 2008-09-01 19:47:36 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: CINE
........
  r34245 | fingolfin | 2008-09-01 19:50:00 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: GOB
........
  r34246 | fingolfin | 2008-09-01 19:52:50 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: KYRA
........
  r34247 | fingolfin | 2008-09-01 19:55:52 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: QUEEN
........
  r34248 | lordhoto | 2008-09-01 20:14:55 +0200 (Mon, 01 Sep 2008) | 2 lines
  
  Cleanup.
........
  r34249 | lordhoto | 2008-09-01 20:26:28 +0200 (Mon, 01 Sep 2008) | 2 lines
  
  Formatting.
........
  r34251 | fingolfin | 2008-09-01 22:18:17 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: LURE
........
  r34252 | fingolfin | 2008-09-01 22:19:28 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: SAGA
........
  r34253 | fingolfin | 2008-09-01 22:20:20 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: SCUMM
........
  r34254 | fingolfin | 2008-09-01 22:20:57 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: SKY
........
  r34255 | fingolfin | 2008-09-01 22:21:30 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: SWORD1
........
  r34256 | fingolfin | 2008-09-01 22:21:53 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: SWORD2
........
  r34257 | fingolfin | 2008-09-01 22:22:10 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: TINSEL
........
  r34258 | fingolfin | 2008-09-01 22:22:29 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: TOUCHE
........
  r34259 | athrxx | 2008-09-01 22:23:25 +0200 (Mon, 01 Sep 2008) | 1 line
  
  - kyra: fm-towns/pc-98 audio: restructured  driver, added rhythm channel data
........
  r34260 | fingolfin | 2008-09-01 22:31:44 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Clarified some comments
........
  r34261 | fingolfin | 2008-09-01 22:41:43 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Clarified clarification ;)
........
  r34262 | fingolfin | 2008-09-01 23:06:32 +0200 (Mon, 01 Sep 2008) | 1 line
  
  Document each MetaEngineFeature (instead of listing just 'examples'). Wording could be better, feel free to improve it
........
  r34263 | fingolfin | 2008-09-01 23:13:11 +0200 (Mon, 01 Sep 2008) | 1 line
  
  TINSEL: Enabled listSaves support
........
  r34264 | fingolfin | 2008-09-01 23:30:38 +0200 (Mon, 01 Sep 2008) | 1 line
  
  cleanup
........
  r34265 | thebluegr | 2008-09-02 01:36:59 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Silence MSVC warning about empty switch statement
........
  r34266 | thebluegr | 2008-09-02 01:37:24 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Silence MSVC warning about empty switch statement
........
  r34267 | joostp | 2008-09-02 02:31:27 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  fix Virgin logo screen breakage that was introduced in the RTL merge
........
  r34268 | peres001 | 2008-09-02 03:58:55 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Merging more of the GSoC 2008 RTL branch: PARALLACTION
........
  r34269 | thebluegr | 2008-09-02 09:32:09 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Added new files to the MSVC projects (engines/dialogs.* and common/queue.h)
........
  r34270 | thebluegr | 2008-09-02 09:59:52 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Changed the MSVC optimization settings for the release version of all current engines, according to the settings proposed in patch #1877032 - "better optimization settings for msvc9". SSE has NOT been enabled by default though, as it's not available under 64-bit platforms. Updated the MSVC 8 -> MSVC 7/7.1 batch file accordingly
........
  r34271 | thebluegr | 2008-09-02 10:02:40 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Added the missing tinsel engine project files for MSVC 7/7.1
........
  r34272 | fingolfin | 2008-09-02 13:32:38 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Added two new global funcs which ease proper handling of 'path' strings: Common::lastPathComponent() and Common::normalizePath()
........
  r34273 | fingolfin | 2008-09-02 13:34:12 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Revised HashMap implementation
........
  r34274 | thebluegr | 2008-09-02 13:42:15 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Enabled the new optimizations for older versions of MSVC as well
  Also, included the tinsel engine library for the release version as well (fixes compilation of the release version)
........
  r34275 | lordhoto | 2008-09-02 15:05:43 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Added missing include.
........
  r34276 | lordhoto | 2008-09-02 15:11:54 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Handle OSystem::lockScreen fail in default OSystem::clearScreen implementation.
........
  r34277 | lordhoto | 2008-09-02 15:13:02 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Updated NULL backend for FS changes.
........
  r34278 | lordhoto | 2008-09-02 15:16:51 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Fixed copy&paste error when checking y and h of a widget on layout change.
........
  r34279 | lordhoto | 2008-09-02 15:17:40 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Fake 320x200 resolution instead of 200x320.
........
  r34281 | lordhoto | 2008-09-02 15:27:26 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Applied my patch from -devel, which reenables GMM opening via F6.
........
  r34282 | lordhoto | 2008-09-02 16:36:47 +0200 (Tue, 02 Sep 2008) | 4 lines
  
  Cleanup: Remove now unneeded KyraEngine_v1::quitGame.
  
  Peres proposal for this commit log was: 'fixing .... as peres pointed out in his very interesting mail on -devel that everybody should read'.
........
  r34283 | fingolfin | 2008-09-02 17:19:31 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Modified POSIX FSNode implementation to use Common::normalizePath & Common::lastPathComponent; added a TODO regarding relative paths
........
  r34284 | fingolfin | 2008-09-02 18:35:16 +0200 (Tue, 02 Sep 2008) | 1 line
  
  Change FilesystemNode::getChild to new desired behavior: namely, that it should return valid nodes even for names for which no child exists (yet?) -- mail to scummvm-devel pending
........
  r34286 | drmccoy | 2008-09-02 22:15:42 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Urban Runner stubs
........
  r34287 | drmccoy | 2008-09-02 23:29:06 +0200 (Tue, 02 Sep 2008) | 2 lines
  
  Added French Bargon Attack, as supplied by kizkoool in bugreport #2089734
........
  r34288 | athrxx | 2008-09-02 23:31:53 +0200 (Tue, 02 Sep 2008) | 1 line
  
  some minor bug fixes
........
  r34290 | Kirben | 2008-09-03 03:47:01 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Add Nintendo Wii versions of Freddi Fish 1 and Pajama Sam 1.
........
  r34291 | Kirben | 2008-09-03 04:06:11 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Add another Dutch demo of Pajama Sam 1.
........
  r34292 | thebluegr | 2008-09-03 09:32:59 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Updated gob MSVC project files for commit #34286
........
  r34293 | fingolfin | 2008-09-03 10:57:39 +0200 (Wed, 03 Sep 2008) | 1 line
  
  If launching scummvm with no game selected, clear the transient domain (and hence the effect of all command line args) before opening the launcher (may cause regressions)
........
  r34294 | fingolfin | 2008-09-03 10:58:19 +0200 (Wed, 03 Sep 2008) | 1 line
  
  In the launcher load dialog code, store the save_slot in the transient domain (fixing bug #2089740)
........
  r34295 | thebluegr | 2008-09-03 11:03:21 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Cleanup
........
  r34296 | thebluegr | 2008-09-03 11:55:29 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Silence MSVC warning about ambiguous usage of CLIP
........
  r34297 | thebluegr | 2008-09-03 11:58:28 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Commented out currently broken code, adding a FIXME
........
  r34298 | thebluegr | 2008-09-03 12:00:43 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Silence MSVC warning about uninitialized variables
........
  r34299 | thebluegr | 2008-09-03 12:10:45 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Fix for MSVC warning about ambiguous usage of MIN
........
  r34300 | fingolfin | 2008-09-03 12:11:36 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Added new StdioStream class, a thin wrapper around FILE
........
  r34301 | fingolfin | 2008-09-03 12:40:46 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Added new AbstractFilesystemNode::openForReading & ::openForWriting method, based on StdioStream; changed FilesystemNode to use them
........
  r34302 | fingolfin | 2008-09-03 13:22:51 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Moved FilesystemNode / FSList to namespace Common; also got rid of some 'typedef Common::String String;' name aliases
........
  r34303 | fingolfin | 2008-09-03 13:49:02 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Moved StdioStream to its own files inside backends
........
  r34304 | fingolfin | 2008-09-03 14:56:46 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Pushed AbstractFilesystemNode::openForReading() / openForWriting() impls out to backends
........
  r34305 | Kirben | 2008-09-03 15:49:24 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Added more versions of HE games.
........
  r34306 | thebluegr | 2008-09-03 16:06:54 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Updated MSVC project files for commit #34303
........
  r34307 | fingolfin | 2008-09-03 16:55:19 +0200 (Wed, 03 Sep 2008) | 1 line
  
  POSIX FSNode: got rid of Double-slashes in paths for childs of the root; simplified code
........
  r34308 | fingolfin | 2008-09-03 17:22:19 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Some cleanup by peres
........
  r34309 | fingolfin | 2008-09-03 17:58:40 +0200 (Wed, 03 Sep 2008) | 1 line
  
  TODO: bdf_getline seems to duplicate code from SeekableReadStream::readLine(_new) -> fix that
........
  r34310 | fingolfin | 2008-09-03 18:56:40 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Moved check for shouldRTL() from engines to scummvm_main
........
  r34311 | fingolfin | 2008-09-03 19:06:24 +0200 (Wed, 03 Sep 2008) | 1 line
  
  clarified comment
........
  r34312 | fingolfin | 2008-09-03 19:07:13 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Changed Archive::openFile to return a SeekableReadStream* instead of a FilePtr
........
  r34313 | fingolfin | 2008-09-03 19:39:18 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Modified Common::Str to use exponential growth for its storage; also changed the meaning of 'capacity' from 'max length of string' to 'size of storage' (i.e. added one)
........
  r34314 | fingolfin | 2008-09-03 19:46:42 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Removed unused readLine code from the MT-32 emu
........
  r34315 | fingolfin | 2008-09-03 19:53:25 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Renamed SeekableReadStream::readLine to SeekableReadStream::readLine_OLD; added a new alternate SeekableReadStream::readLine() instead
........
  r34316 | fingolfin | 2008-09-03 20:07:31 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Fixed Stream::readLine implementation to match its doxygen comment
........
  r34317 | fingolfin | 2008-09-03 20:38:01 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Fix nasty off-by-one errors
........
  r34318 | fingolfin | 2008-09-03 20:40:49 +0200 (Wed, 03 Sep 2008) | 1 line
  
  Changed some code to use the new Stream::readLine() method
........
  r34319 | lordhoto | 2008-09-03 21:07:38 +0200 (Wed, 03 Sep 2008) | 2 lines
  
  Minor formatting cleanup.
........
  r34320 | mthreepwood | 2008-09-03 23:37:19 +0200 (Wed, 03 Sep 2008) | 1 line
  
  correct a typo (thanks to salty-horse)
........
  r34323 | Kirben | 2008-09-04 10:11:35 +0200 (Thu, 04 Sep 2008) | 1 line
  
  Correct HE version for Wii version of Freddi Fish 1.
........
  r34324 | joostp | 2008-09-04 10:16:39 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  remove deprecated SCUMMVM_SAVEPATH define -- pass default savepath to DefaultSaveFileManager ctor
........
  r34326 | joostp | 2008-09-04 10:34:02 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  move save directory detection/creation from main() to OSystem_PSP::initBackend()
........
  r34328 | Kirben | 2008-09-04 16:12:27 +0200 (Thu, 04 Sep 2008) | 1 line
  
  Add missing case in o100_resourceRoutines.
........
  r34329 | drmccoy | 2008-09-04 19:39:22 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  Ooops, adding Lost in Time and Woodruff
........
  r34332 | drmccoy | 2008-09-04 21:20:51 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  Added another version of Lost in Time CD, as supplied by SiRoCs in bug report #2093672
........
  r34334 | fingolfin | 2008-09-04 22:03:08 +0200 (Thu, 04 Sep 2008) | 1 line
  
  Changed FSDirectory::getSubDirectory to return a FSDirectory pointer instead of a SharedPtr
........
  r34336 | eriktorbjorn | 2008-09-04 23:40:32 +0200 (Thu, 04 Sep 2008) | 2 lines
  
  Use readLine() instead of readLine_OLD().
........
  r34338 | anotherguest | 2008-09-05 13:06:27 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Updated buildscripts to support tinsel
........
  r34339 | anotherguest | 2008-09-05 13:09:29 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Updated package revision no to 0.13. Updated default engine list
........
  r34340 | anotherguest | 2008-09-05 13:31:51 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Updated Symbian OS file actions with ferror and fflush.
........
  r34343 | peres001 | 2008-09-05 13:41:39 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Removed useless dependencies from common/file.h in common code. When complete removal was not possibile, dependency has been pushed to the cpp files from the headers.
........
  r34344 | anotherguest | 2008-09-05 13:55:58 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Added two new files
........
  r34345 | fingolfin | 2008-09-05 13:59:33 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Ported AMIGA specific file buffering 'hack' from class File to StdioStream
........
  r34346 | anotherguest | 2008-09-05 14:02:15 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Updated filehandling for Symbian OS
........
  r34347 | anotherguest | 2008-09-05 14:30:19 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Updated build script with new dialog.cpp
........
  r34348 | anotherguest | 2008-09-05 14:53:43 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Still need to get that build working. Readjust buildscript
........
  r34349 | thebluegr | 2008-09-05 15:02:03 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Hopefully fixed the chaos with the SAGA volume values. This also fixes the broken volume introduced with the introduction of the RTL code in the engine
........
  r34350 | anotherguest | 2008-09-05 15:03:31 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Add missing dialogs.cpp
........
  r34351 | anotherguest | 2008-09-05 15:13:51 +0200 (Fri, 05 Sep 2008) | 1 line
  
  ADded Tinsel as supported engine strings
........
  r34352 | Kirben | 2008-09-05 15:35:27 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Use exact case numbers, to avoid unneeded subtractions.
........
  r34353 | anotherguest | 2008-09-05 16:11:23 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Enum needs to be minimum four chars to compile (32 bit number I guess)
........
  r34356 | fingolfin | 2008-09-05 19:23:44 +0200 (Fri, 05 Sep 2008) | 1 line
  
  whitespace 'fix'
........
  r34357 | eriktorbjorn | 2008-09-05 19:34:38 +0200 (Fri, 05 Sep 2008) | 2 lines
  
  Set the date for 0.12.0.
........
  r34359 | peres001 | 2008-09-05 20:24:41 +0200 (Fri, 05 Sep 2008) | 2 lines
  
  * Implemented a default matchPattern for Archive subclasses (courtesy of Fingolfin).
  * Fixed bug in FSDirectory::matchPattern.
........
  r34360 | peres001 | 2008-09-05 20:28:25 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Made FSDirectory use the default matchPattern implementation.
........
  r34361 | anotherguest | 2008-09-05 20:45:04 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Remove usage of main_features.inl and the file
........
  r34362 | anotherguest | 2008-09-05 20:49:13 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Change location of create fs factory for Symbian!
........
  r34363 | anotherguest | 2008-09-05 21:03:30 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Add symbian implementations to create read/write configfile handles
........
  r34364 | fingolfin | 2008-09-05 22:07:34 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Moved matchString from util.* to str.*; added new String::matchString method; fixed matchString doxygen comment (it confused pattern & string); added unit tests for matchString
........
  r34365 | fingolfin | 2008-09-05 22:08:29 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Make use of String::matchString
........
  r34366 | fingolfin | 2008-09-05 22:26:36 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Fix class FSDirectory (matchPattern would call getAllNames would call matchPattern would call ...); some cleanup
........
  r34367 | fingolfin | 2008-09-05 22:29:03 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Optimized matchString for the common case where there is a trailing * (if that is the case, abort immediately instead of scanning the rest of the string)
........
  r34368 | fingolfin | 2008-09-05 22:42:41 +0200 (Fri, 05 Sep 2008) | 1 line
  
  Some tweaks to help (?) OS/2
........
  r34369 | wjpalenstijn | 2008-09-05 22:53:30 +0200 (Fri, 05 Sep 2008) | 1 line
  
  additional Common::String tests
........
  r34370 | fingolfin | 2008-09-06 00:12:46 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Added simple ZipArchive class, and changed some GUI code to use it, instead of the ugly C API to the unzip code
........
  r34371 | fingolfin | 2008-09-06 00:14:43 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Updated some copyright strings to 2001-2008
........
  r34373 | fingolfin | 2008-09-06 00:16:29 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Added Chris to credits
........
  r34375 | Kirben | 2008-09-06 03:02:45 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Add debugInput opcode for HE 100 games.
........
  r34378 | Kirben | 2008-09-06 09:03:38 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Add Wii version of SPY Fox 1.
........
  r34381 | thebluegr | 2008-09-06 10:37:03 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Added missing common/archive.*
........
  r34382 | anotherguest | 2008-09-06 12:30:05 +0200 (Sat, 06 Sep 2008) | 2 lines
  
  Portdefs cleanup, use snprintf from SDL and not sprintf (Which can cause memory overwrites). 
  Use bsearch implementation from WINCE port.
........
  r34384 | fingolfin | 2008-09-06 18:46:28 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Added some unit tests for Stream::readLine_NEW, and clarified that readLine_NEW is essentially fgets in disguise
........
  r34385 | fingolfin | 2008-09-06 19:00:50 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Unlike ferror, our Stream::ioFailed() is also supposed to return true when the end of stream has been reached
........
  r34389 | fingolfin | 2008-09-06 22:34:21 +0200 (Sat, 06 Sep 2008) | 1 line
  
  ScummFile: Don't use the File::_ioFailed flag, rather track the io status separately;  also, changed eof() -> eos()
........
  r34390 | fingolfin | 2008-09-06 22:36:47 +0200 (Sat, 06 Sep 2008) | 1 line
  
  MT32 emu: eof -> eos
........
  r34391 | fingolfin | 2008-09-06 22:49:48 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Switched class File & DumpFile to use StdioStream internally
........
  r34393 | fingolfin | 2008-09-06 23:04:42 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Removed last traces of fopen / FILE from common/file.cpp
........
  r34394 | fingolfin | 2008-09-06 23:09:34 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Clarified / fixed some Common::Archive doxygen comments
........
  r34396 | fingolfin | 2008-09-06 23:23:08 +0200 (Sat, 06 Sep 2008) | 1 line
  
  Got rid of File::eof()
........
  r34397 | lordhoto | 2008-09-07 00:09:34 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Added hasArchive to SearchSet.
........
  r34399 | anotherguest | 2008-09-07 12:57:28 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Remove symbian defines from stdiostream.cpp
........
  r34400 | anotherguest | 2008-09-07 14:37:14 +0200 (Sun, 07 Sep 2008) | 1 line
  
  StdioStream implemented with Symbian file handling.
........
  r34401 | anotherguest | 2008-09-07 14:38:35 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Updated to include SymbianStream instead of StdioStream
........
  r34402 | anotherguest | 2008-09-07 14:39:56 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Need to have own implementation of snprintf and vsnprintf.
........
  r34403 | anotherguest | 2008-09-07 14:54:26 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Remove SYMBIAN special handing from default handler.
........
  r34404 | drmccoy | 2008-09-07 15:16:58 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Added another demo version of Gobliiins (bug #2098412)
........
  r34405 | anotherguest | 2008-09-07 15:17:21 +0200 (Sun, 07 Sep 2008) | 1 line
  
  H file cleanup, remove old vibra support
........
  r34407 | anotherguest | 2008-09-07 15:40:30 +0200 (Sun, 07 Sep 2008) | 3 lines
  
  Updated readme about usage of snprintf source
  Added vsnprintf implementation.
  Cleanout SymbianOS.cpp from old file functions.
........
  r34408 | fingolfin | 2008-09-07 17:16:45 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Temporary workaround for bug #2098279: ALL: Game path with no trailing backslash fails
........
  r34409 | drmccoy | 2008-09-07 17:21:52 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Clipping setMousePos() parameters to sane values
........
  r34411 | drmccoy | 2008-09-07 17:29:47 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Actually, /now/ the values are sane ^^; (also fixes Ween mouse position bug #2046244)
........
  r34413 | drmccoy | 2008-09-07 17:39:06 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Added a spanish floppy version of Gob3, as supplied by SiRoCs in bug report #2098621
........
  r34415 | drmccoy | 2008-09-07 18:27:04 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Added polish version of Woodruff, as supplied by goodoldgeorg in bug report #2098838
........
  r34417 | anotherguest | 2008-09-07 18:43:03 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Set default save path via save manager.
  Fix bug in symbian-fs GetChild function.
........
  r34418 | anotherguest | 2008-09-07 20:28:58 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Updated with two new variations, scumm and brokensword
........
  r34419 | anotherguest | 2008-09-07 20:30:07 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Slightly updated built script. Faster?
........
  r34420 | sev | 2008-09-07 20:36:40 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Generate drascula.dat by the latest create_drascula
........
  r34423 | anotherguest | 2008-09-07 21:19:45 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Symbian already store all paths with a trailing "\". 
  Quick fix waiting for proper solution
........
  r34424 | fingolfin | 2008-09-07 23:30:55 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Added new OSystem method addSysArchivesToSearchSet() [better name pending, suggestions welcome]
........
  r34425 | fingolfin | 2008-09-07 23:38:53 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Comment out some #defines in skydefs.h as they conflict with other headers (esp. T2 conflicts with some template defs)
........
  r34426 | fingolfin | 2008-09-07 23:43:36 +0200 (Sun, 07 Sep 2008) | 1 line
  
  added two FIXMEs to M4 -- somehow, adding two subdirs of CWD named 'goodstuf' and 'resource' to the list of default dirs doesn't sound very sensible to me ;)
........
  r34428 | lordhoto | 2008-09-07 23:46:37 +0200 (Sun, 07 Sep 2008) | 2 lines
  
  Moved Kyra resource code to a SearchSet/Archive based implementation, this removes dependencies on Common::File.
........
  r34429 | fingolfin | 2008-09-07 23:47:01 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Allow invoking FilesystemNode::getChild on non-dir nodes, by returning an invalid node in that case
........
  r34430 | fingolfin | 2008-09-07 23:47:46 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Made File::addDefaultDirectory(Recursive) ignore FSNodes which are not dirs / are invalid, instead of erroring out
........
  r34431 | fingolfin | 2008-09-07 23:51:59 +0200 (Sun, 07 Sep 2008) | 1 line
  
  oops
........
  r34432 | fingolfin | 2008-09-07 23:59:25 +0200 (Sun, 07 Sep 2008) | 1 line
  
  Add a priority param to OSystem::addSysArchivesToSearchSet (still in search for a better name ;)
........
  r34433 | fingolfin | 2008-09-08 00:00:04 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Fix warning about missing virtual destructor
........
  r34434 | fingolfin | 2008-09-08 00:10:58 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Replaced Engine::_gameDataPath (a String) by Engine::_gameDataDir (an FSNode); adapted code to that (by using getChild() to get subdirs, not string concatenation
........
  r34435 | lordhoto | 2008-09-08 00:30:34 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Got rid of all Common::File usages in Kyra.
........
  r34436 | lordhoto | 2008-09-08 00:35:13 +0200 (Mon, 08 Sep 2008) | 2 lines
  
  - Fixed regression in Resource::unloadPakFile
  - Changed priority value for OSystem::addSysArchivesToSearchSet call
........
  r34437 | fingolfin | 2008-09-08 00:37:27 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Changed md5_file(FSNode) to use FSNode::openForReading
........
  r34438 | lordhoto | 2008-09-08 00:41:57 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Changed priorities for search paths. (Just in case system specific data paths contain an outdated kyra.dat version)
........
  r34440 | thebluegr | 2008-09-08 10:07:06 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Cleanup
........
  r34441 | thebluegr | 2008-09-08 10:09:22 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Added kyra/resource_intern.* to the kyra MSVC project files
........
  r34442 | thebluegr | 2008-09-08 10:26:54 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Free the current voice lookup table a bit earlier in loadGlobalResources()
........
  r34443 | thebluegr | 2008-09-08 12:36:53 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Reduced calls to File::exists()
........
  r34444 | fingolfin | 2008-09-08 13:11:32 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Switched File::open, File::addDefaultDirectory to use a SearchSet internally. Code is a lot shorter & simpler now, far less failing fopen calls (good for NDS and other ports); drawback: regressions :). Good bug hunting to everybody
........
  r34445 | thebluegr | 2008-09-08 13:45:15 +0200 (Mon, 08 Sep 2008) | 1 line
  
  decompiler.cpp is not used anywhere by default. Remove it to prevent a warning under MSVC that the object file is empty (since DUMP_SCRIPT is not defined by default, the whole code in this file is not used)
........
  r34446 | thebluegr | 2008-09-08 13:57:49 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Changed WarnAsError to be true across all engines, in both debug and release builds
........
  r34447 | thebluegr | 2008-09-08 14:38:55 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Removed some unneeded conversions from the MSVC8->MSVC7/7.1 conversion tool
........
  r34448 | thebluegr | 2008-09-08 15:00:43 +0200 (Mon, 08 Sep 2008) | 5 lines
  
  Some more unification of options:
  - AdditionalIncludeDirectories is set to "../../;../../engines"
  - InlineFunctionExpansion is set to "0" for debug and "2" for release builds
  - DisableLanguageExtensions is set to "false" (disabling language extensions leads to some very weird errors)
  - Detect64BitPortabilityProblems is set to "false", as setting it to "true" throws loads of warnings too (mainly related to strlen, when trying to store its result in an integer)
........
  r34449 | thebluegr | 2008-09-08 16:00:26 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Don't use fileName both as a structure and as a function parameter
........
  r34450 | peres001 | 2008-09-08 16:38:07 +0200 (Mon, 08 Sep 2008) | 1 line
  
  Made searching the game path recursive (with the default depth of 4 levels). This is a temporary fix to make some games work, until we decide what to do with the file/directory searching.
........
  r34451 | lordhoto | 2008-09-08 20:48:39 +0200 (Mon, 08 Sep 2008) | 2 lines
  
  Fixed LoL file loading regression.
........
  r34452 | lordhoto | 2008-09-08 20:55:29 +0200 (Mon, 08 Sep 2008) | 2 lines
  
  Made some filenames uppercase for consistency.
........
  r34453 | anotherguest | 2008-09-08 23:54:04 +0200 (Mon, 08 Sep 2008) | 2 lines
  
  Updated/Fixed Symbian Filesystem handling.
  Does not store ending backslash on path, and will list any sub folder properly, by adding '\' when needed.
........
  r34454 | athrxx | 2008-09-08 23:57:38 +0200 (Mon, 08 Sep 2008) | 1 line
  
  HOF: msvc8 compile fix (ARRAYSIZE used with run-time allocated array)
........
  r34456 | peres001 | 2008-09-09 01:24:20 +0200 (Tue, 09 Sep 2008) | 1 line
  
  Documented commit 34450 (game path searched recursively).
........
  r34457 | thebluegr | 2008-09-09 08:47:41 +0200 (Tue, 09 Sep 2008) | 1 line
  
  Fix for bug #2101083 - "ANY - MSVC71 compilation fails due to warnings-as-errors"
........
  r34458 | thebluegr | 2008-09-09 09:05:47 +0200 (Tue, 09 Sep 2008) | 1 line
  
  Committed patch #2100962 - "Saga engine reduced memory usage"
........
  r34460 | thebluegr | 2008-09-09 13:20:34 +0200 (Tue, 09 Sep 2008) | 1 line
  
  Cleanup. Simplified converse()
........
  r34462 | thebluegr | 2008-09-09 14:57:12 +0200 (Tue, 09 Sep 2008) | 1 line
  
  Cleanup
........
  r34463 | thebluegr | 2008-09-09 14:57:57 +0200 (Tue, 09 Sep 2008) | 1 line
  
  Cleanup of exitRoom()
........
  r34464 | thebluegr | 2008-09-09 17:59:06 +0200 (Tue, 09 Sep 2008) | 4 lines
  
  - Cleanup and simplification
  - Moved several simple animations out of animation.cpp
  - Moved some animations with talk sequences inside drascula.dat
  - A new version of drascula.dat is needed (will be uploaded shortly)
........
  r34465 | thebluegr | 2008-09-09 17:59:52 +0200 (Tue, 09 Sep 2008) | 1 line
  
  New version of the create_drascula tool
........
  r34466 | thebluegr | 2008-09-09 18:00:28 +0200 (Tue, 09 Sep 2008) | 1 line
  
  New version of drascula.dat
........
  r34467 | lordhoto | 2008-09-09 20:09:46 +0200 (Tue, 09 Sep 2008) | 2 lines
  
  Changed static resource code to use Streams instead of operating on buffers.
........
  r34468 | thebluegr | 2008-09-10 08:57:32 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Fix in the Igor engine for bug #2101083 - "ANY - MSVC71 compilation fails due to warnings-as-errors"
........
  r34469 | thebluegr | 2008-09-10 08:59:55 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Fix for bug #2102828 - "AGOS - compilation error, uninitialized variable"
........
  r34472 | thebluegr | 2008-09-10 10:25:12 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Reduced game memory usage by about 400KB by only loading the current language strings, not all strings
........
  r34474 | fingolfin | 2008-09-10 11:20:38 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Small fix to help with compile problems on Amiga
........
  r34479 | thebluegr | 2008-09-10 14:03:42 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Merged all the methods to assign and set default palettes
........
  r34480 | thebluegr | 2008-09-10 15:06:40 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Removed the unused variable changeColor
........
  r34481 | lordhoto | 2008-09-10 20:01:02 +0200 (Wed, 10 Sep 2008) | 2 lines
  
  Cleanup.
........
  r34483 | vinterstum | 2008-09-10 21:46:08 +0200 (Wed, 10 Sep 2008) | 1 line
  
  Merged up iPhone backend changes from 0.12 to trunk
........
  r34484 | lordhoto | 2008-09-10 22:47:58 +0200 (Wed, 10 Sep 2008) | 2 lines
  
  Cleanup.
........
  r34485 | fingolfin | 2008-09-11 11:25:13 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Simplify check for a slash in the string *g*
........
  r34486 | fingolfin | 2008-09-11 11:26:27 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Added detection for 4-language floppy version of DW (see report on forum post 39703)
........
  r34487 | fingolfin | 2008-09-11 11:28:14 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Remove obsolete note about fopen
........
  r34488 | thebluegr | 2008-09-11 11:31:45 +0200 (Thu, 11 Sep 2008) | 5 lines
  
  - The game's cursor is now handled via ScummVM's cursor manager, instead of the game itself (this means that there might be regressions where the cursor is visible when it shouldn't be)
  - Removed the textSurface pointer, which was used in the Spanish version. Non-Spanish versions of the game hold the font data in the tableSurface buffer (which contains picture 96). The font data for Spanish versions is in picture 974. Now both versions load their font data from the tableSurface buffer
  - hay_que_load -> loadedDifferentChapter
  - Merged withoutVerb() and selectVerb()
  This is a big change, it might lead to regressions!
........
  r34489 | thebluegr | 2008-09-11 11:33:15 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Fixed the hotspot for the crosshair cursor
........
  r34490 | thebluegr | 2008-09-11 11:37:42 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Cleanup
........
  r34491 | thebluegr | 2008-09-11 14:04:45 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Code optimizations from Fingolfin
........
  r34492 | peres001 | 2008-09-11 15:24:01 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Added first version of the SearchManager, as it is presented in patch tracker item 2093502.
........
  r34493 | thebluegr | 2008-09-11 16:49:04 +0200 (Thu, 11 Sep 2008) | 5 lines
  
  - Merged openDoor() and closeDoor()
  - Cleaned up updateDoor()
  - Bugfixes to exitRoom() and gotoObject()
  - Moved cursor-related functions to interface.cpp
  - alapuertakeva -> roomExits
........
  r34494 | thebluegr | 2008-09-11 17:35:56 +0200 (Thu, 11 Sep 2008) | 1 line
  
  Cleanup
........
  r34495 | lordhoto | 2008-09-11 21:47:45 +0200 (Thu, 11 Sep 2008) | 2 lines
  
  Committed my patch #2105593 "Launcher/MetaEngine: Finnished removeSaveState".
........
  r34496 | lordhoto | 2008-09-11 22:20:02 +0200 (Thu, 11 Sep 2008) | 4 lines
  
  - Moved delete confirm dialog to SaveLoadChooser, allows the user to check which save he was trying to delete
  - Cleaned up the SaveLoadChooser / Launcher code
   -> Should reduce memory usage a little bit
........
  r34497 | lordhoto | 2008-09-11 22:34:46 +0200 (Thu, 11 Sep 2008) | 2 lines
  
  Little more cleanup.
........
  r34498 | anotherguest | 2008-09-11 23:32:40 +0200 (Thu, 11 Sep 2008) | 3 lines
  
  Added SymbianStream.h for SymbianStdioStream definition
  Renamed Symbian stream implementation to
  SymbianStdioStream instead of StdioStream.
........
  r34501 | Kirben | 2008-09-12 03:28:28 +0200 (Fri, 12 Sep 2008) | 1 line
  
  Fix compiling under mingw, when using latest mingw-runtime (3.15).
........
  r34502 | lordhoto | 2008-09-12 14:25:56 +0200 (Fri, 12 Sep 2008) | 2 lines
  
  Fixed slot 0 savefile name in Kyra3. (Now using 'New game' instead of 'German')
........
  r34503 | thebluegr | 2008-09-12 14:54:16 +0200 (Fri, 12 Sep 2008) | 5 lines
  
  - Moved more animation data inside drascula.dat
  - Merged copyRect and copyRectClip
  - Added enums for all the possible character directions and removed duplicate directions
  - Extended the talk sequence commands a bit
  - Removed unnecessary buffer faceBuffer and the unneeded casts between byte * and char * that were used
........
  r34504 | thebluegr | 2008-09-12 14:54:47 +0200 (Fri, 12 Sep 2008) | 1 line
  
  New version of the create_drascula tool
........
  r34505 | thebluegr | 2008-09-12 14:55:25 +0200 (Fri, 12 Sep 2008) | 1 line
  
  New version of drascula.dat
........
  r34508 | Kirben | 2008-09-13 02:33:40 +0200 (Sat, 13 Sep 2008) | 1 line
  
  Add missing targets.
........
  r34511 | anotherguest | 2008-09-13 10:34:38 +0200 (Sat, 13 Sep 2008) | 1 line
  
  Fixed drascula dat path and version nr.
........
  r34512 | anotherguest | 2008-09-13 10:35:38 +0200 (Sat, 13 Sep 2008) | 1 line
  
  Fixed rev nr. 130 will give wrong ver. in installation.
........
  r34513 | eriktorbjorn | 2008-09-13 17:23:23 +0200 (Sat, 13 Sep 2008) | 2 lines
  
  Indentation.
........
  r34514 | fingolfin | 2008-09-13 18:51:46 +0200 (Sat, 13 Sep 2008) | 1 line
  
  Big patch changing the signature of various Stream methods (some ports may need to be slightly tweaked to fix overloading errors/warnings)
........
  r34515 | sev | 2008-09-13 19:41:42 +0200 (Sat, 13 Sep 2008) | 2 lines
  
  Portability fixes.
........
  r34516 | fingolfin | 2008-09-13 22:04:19 +0200 (Sat, 13 Sep 2008) | 1 line
  
  SCUMM: Merged class BaseChunk & Chunk; got rid of MemoryChunk
........
  r34517 | fingolfin | 2008-09-13 22:22:52 +0200 (Sat, 13 Sep 2008) | 1 line
  
  SCUMM: Merged class Chunk & FileChunk
........
  r34518 | fingolfin | 2008-09-14 00:41:30 +0200 (Sun, 14 Sep 2008) | 1 line
  
  SCUMM: Got rid of class Chunk
........
  r34520 | lordhoto | 2008-09-14 16:01:24 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Rename save slots in KyraMetaEngine::removeSaveState, so it matches behavior in GUI_v2::deleteMenu at least a little bit more.
........
  r34521 | lordhoto | 2008-09-14 16:08:14 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Added a hack in KyraMetaEngine::listSaves to prevent slot 0 from being listed. Check comment for additional information.
........
  r34522 | lordhoto | 2008-09-14 16:58:37 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Only setup 'cdaudio' config default for FM-Towns/PC98.
........
  r34523 | lordhoto | 2008-09-14 17:35:40 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Fixed regression introduced with r34522. (Now games without 'cdaudio' config value set should startup again).
........
  r34524 | lordhoto | 2008-09-14 17:36:16 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Implemented opcode 151: o1_resetMaskRegion
........
  r34526 | thebluegr | 2008-09-14 18:21:31 +0200 (Sun, 14 Sep 2008) | 1 line
  
  Fix for bug #2110375 - "DRASCULA: Mouse visible in screen saver", a regression from moving mouse handling to OSystem
........
  r34527 | lordhoto | 2008-09-14 18:29:14 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Fixed thumbnail creation / loading in kyra.
........
  r34528 | lordhoto | 2008-09-14 18:48:20 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Typo.
........
  r34529 | thebluegr | 2008-09-14 20:00:06 +0200 (Sun, 14 Sep 2008) | 1 line
  
  Updated MSVC project files for the SCUMM engine - removed smush/chunk.*
........
  r34530 | lordhoto | 2008-09-14 20:19:22 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Committed patch by [md5] from bug tracker item #2100790 "GUI:Clicking "Load" when no games are added triggers a crash".
........
  r34531 | thebluegr | 2008-09-14 20:30:08 +0200 (Sun, 14 Sep 2008) | 1 line
  
  Slight cleanup of centerText()
........
  r34532 | lordhoto | 2008-09-14 20:59:43 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Fix for bug #2089275: "GUI: Returning to launcher may trigger an error".
........
  r34533 | lordhoto | 2008-09-14 21:05:05 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Fix potentional bug in Screen::setResolution.
........
  r34534 | lordhoto | 2008-09-14 21:16:08 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Fix for bug #2090879 "GUI: Launcher 'Load' dialog should preserve save slot index".
........
  r34535 | lordhoto | 2008-09-14 21:48:40 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Added autosave support in Kyra.
........
  r34536 | lordhoto | 2008-09-14 22:01:01 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Changed message when trying to open the load dialog for games not supporting direct loading.
........
  r34537 | lordhoto | 2008-09-14 22:42:50 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Added ScummVM logo to GMM.
........
  r34538 | lordhoto | 2008-09-14 22:52:40 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Minor improvement for GMM layout.
........
  r34539 | lordhoto | 2008-09-14 23:00:24 +0200 (Sun, 14 Sep 2008) | 3 lines
  
  - Added thumbnail support to launcher load dialog.
  - Adopted KYRA to support displaying thumbnails in load dialog (SCUMM engine has yet to follow)
........
  r34540 | lordhoto | 2008-09-14 23:13:40 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Added thumbnail support for launcher to SCUMM engine.
........
  r34541 | fingolfin | 2008-09-14 23:26:59 +0200 (Sun, 14 Sep 2008) | 1 line
  
  Fixed a typo & clarified a comment
........
  r34542 | fingolfin | 2008-09-14 23:32:45 +0200 (Sun, 14 Sep 2008) | 1 line
  
  Compilation fix for NDS
........
  r34543 | lordhoto | 2008-09-14 23:34:49 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Little cleanup.
........
  r34544 | fingolfin | 2008-09-14 23:39:45 +0200 (Sun, 14 Sep 2008) | 1 line
  
  Changed VPATH to vpath, to allow building NDS port in parallel to another port (for the records, this patch went to Neil in January, and he didn't complain)
........
  r34545 | lordhoto | 2008-09-14 23:41:27 +0200 (Sun, 14 Sep 2008) | 2 lines
  
  Cleanup.
........
  r34546 | fingolfin | 2008-09-15 00:12:59 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Another NDS compilation fix, plus a warning fix
........
  r34547 | fingolfin | 2008-09-15 00:15:13 +0200 (Mon, 15 Sep 2008) | 1 line
  
  NDS: Replaced -I- by modern -iquote
........
  r34548 | fingolfin | 2008-09-15 00:24:35 +0200 (Mon, 15 Sep 2008) | 1 line
  
  DS: Removed legacy GCC 2.x build code (NDS/DevKitPro uses GCC 3 or newer anyway); thinned down INCLUDES some more; added a FIXME to the elf->bin rule
........
  r34549 | wjpalenstijn | 2008-09-15 00:28:53 +0200 (Mon, 15 Sep 2008) | 6 lines
  
  Big patch changing semantics of ReadStream::eos():
  eos() now only returns true _after_ trying to read past the end of the stream.
  
  This has a large potential for regressions. Please test!
........
  r34550 | fingolfin | 2008-09-15 00:44:49 +0200 (Mon, 15 Sep 2008) | 1 line
  
  DS: Some more compile fixes (prope solution would of course be to overload ::openForReading & ::openForWriting)
........
  r34551 | lordhoto | 2008-09-15 01:14:38 +0200 (Mon, 15 Sep 2008) | 2 lines
  
  Fixed regression introduced with latest stream changes (it seems compressed savefiles ioFailed never returned true when only eos was set).
........
  r34552 | wjpalenstijn | 2008-09-15 08:51:15 +0200 (Mon, 15 Sep 2008) | 1 line
  
  fix listSaveGames
........
  r34553 | wjpalenstijn | 2008-09-15 08:52:00 +0200 (Mon, 15 Sep 2008) | 1 line
  
  replace ioFailed by err
........
  r34554 | thebluegr | 2008-09-15 11:17:18 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Proper check for eos(), after the latest changes to OSystem
........
  r34555 | fingolfin | 2008-09-15 12:05:36 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Fix SubReadStream by initing _eos to false in the constructor (spotted thanks to our unit tests)
........
  r34556 | fingolfin | 2008-09-15 14:37:18 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Corrected and shortened some file opening related warnings
........
  r34557 | Kirben | 2008-09-15 14:37:24 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Replace ioFailed by err.
........
  r34558 | thebluegr | 2008-09-15 15:37:28 +0200 (Mon, 15 Sep 2008) | 2 lines
  
  Rewrote the very confusing centerText() function into something that makes more sense, and matches the way that the original printed text on screen (in most cases)
  Fixes bugs #2102657 - "DRASCULA: Crash when talking to the piano player" and #2111820 - "DRASCULA: Dialog texts too long"
........
  r34559 | thebluegr | 2008-09-15 15:45:10 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Fixed the phrase told by the protagonist when he talks to the blind man the second time
........
  r34560 | thebluegr | 2008-09-15 16:17:51 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Remove a workaround in textFitsCentered(). The blind man's dialog is a bit better placed now
........
  r34561 | thebluegr | 2008-09-15 16:35:11 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Show the blind man's dialog text at a bit better place
........
  r34562 | wjpalenstijn | 2008-09-15 21:19:30 +0200 (Mon, 15 Sep 2008) | 1 line
  
  fix eos() behaviour for CompressedInSaveFile
........
  r34563 | wjpalenstijn | 2008-09-15 21:34:06 +0200 (Mon, 15 Sep 2008) | 1 line
  
  also check for premature end-of-stream when loading
........
  r34566 | fingolfin | 2008-09-15 23:55:50 +0200 (Mon, 15 Sep 2008) | 1 line
  
  Turned compressed savefile wrapper into a generic stream wrapper
........
  r34567 | fingolfin | 2008-09-16 00:37:45 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Fixed compiler warnings
........
  r34568 | fingolfin | 2008-09-16 00:43:20 +0200 (Tue, 16 Sep 2008) | 1 line
  
  DS: Backported 0.12 changes to trunk
........
  r34569 | thebluegr | 2008-09-16 09:16:26 +0200 (Tue, 16 Sep 2008) | 2 lines
  
  - Fixed centerText() to print text at the correct height
  - Removed some duplicate code
........
  r34571 | thebluegr | 2008-09-16 10:10:08 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Added a workaround to skip the silence in the beginning and end of file 3.als. Fixes bug #2111815 - "DRASCULA: Voice delayed"
........
  r34572 | thebluegr | 2008-09-16 10:12:13 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Assign _lang to the appropriate enum values
........
  r34573 | thebluegr | 2008-09-16 10:24:42 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Removed the confirmation speech when a game is saved - it's "99.als" instead of "s99.als", but the main problem is that it's not translated in the English version and it's in Spanish (plus it's creepy and annoying...)
........
  r34574 | thebluegr | 2008-09-16 12:44:07 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Cleaned up and fixed the cutscene with Von Braun's story. Fixes bugs #2111804 - "DRASCULA: Cut scene bugs" and #2059648 - "DRASCULA: VonBraun's song"
........
  r34575 | thebluegr | 2008-09-16 12:53:57 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Fixed some glitches in the last part of Von Braun's story
........
  r34576 | fingolfin | 2008-09-16 13:42:21 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Modified uncompress in common/zlib.h to return a bool, so that we don't have to #include the real zlib.h; fixed PSP backend to not run uncompress inside an assert (which would cause it to not be invoked when turning off asserts)
........
  r34577 | thebluegr | 2008-09-16 13:49:40 +0200 (Tue, 16 Sep 2008) | 3 lines
  
  - Moved some includes away from drascula.h
  - Moved grr() to talk.cpp
  - Removed the unnecessary parameter length from isTalkFinished()
........
  r34578 | fingolfin | 2008-09-16 13:50:10 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Merged common/gzip-stream.* and common/zlib.*
........
  r34579 | lordhoto | 2008-09-16 13:54:37 +0200 (Tue, 16 Sep 2008) | 2 lines
  
  Removed assert leftover.
........
  r34580 | fingolfin | 2008-09-16 13:57:45 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Fix sign warnings in unit tests
........
  r34581 | lordhoto | 2008-09-16 16:10:55 +0200 (Tue, 16 Sep 2008) | 6 lines
  
  Added "querySaveMetaInfos" to MetaEngine.
   -> Allows easy addition of save state specific infos like playtime, save date atc.
   -> Removed MetaEngine::loadThumbnailFromSlot, superseded by meta infos
   -> Changed SCUMM / KYRA to implement the newly added functionallity
   -> Removed hack in KYRAs listSavefiles, which is now handled via meta infos
........
  r34582 | lordhoto | 2008-09-16 16:22:51 +0200 (Tue, 16 Sep 2008) | 2 lines
  
  Cleanup.
........
  r34583 | lordhoto | 2008-09-16 16:56:02 +0200 (Tue, 16 Sep 2008) | 2 lines
  
  Added support for SCUMM savestates date/time and playtime info in the launcher load dialog.
........
  r34584 | lordhoto | 2008-09-16 16:59:52 +0200 (Tue, 16 Sep 2008) | 2 lines
  
  Added whitespace in playtime textfield.
........
  r34585 | fingolfin | 2008-09-16 22:12:25 +0200 (Tue, 16 Sep 2008) | 1 line
  
  Removed tons of unused 'length' variables, to silence compiler warnings
........
  r34586 | fingolfin | 2008-09-17 18:31:25 +0200 (Wed, 17 Sep 2008) | 1 line
  
  adding Info.plist to svn:ignore
........
  r34587 | fingolfin | 2008-09-17 18:38:01 +0200 (Wed, 17 Sep 2008) | 1 line
  
  DS: Removing some dead code; merged (parts of) std_cwd into GBAMPSaveFileManager::listSavefiles
........
  r34588 | fingolfin | 2008-09-17 18:50:19 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Adding *.dSYM (generated by gcc on OSX these days) to svn:ignore
........
  r34589 | fingolfin | 2008-09-17 19:31:29 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Moved base/game.* to engines/game.*
........
  r34590 | lordhoto | 2008-09-17 19:46:55 +0200 (Wed, 17 Sep 2008) | 2 lines
  
  Fixed bug in SaveLoadChooser reflowLayout, which prevented widgets from being properly hidden.
........
  r34592 | fingolfin | 2008-09-17 20:16:06 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Patch #2112604: Update for the man page
........
  r34595 | fingolfin | 2008-09-17 20:26:44 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Patch #2043093 (again - new patch): OS/2 patches for posix-fs
........
  r34596 | fingolfin | 2008-09-17 20:56:13 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Patch #2060517: SCUMM: engine sets incorrect talkspeed value
........
  r34597 | fingolfin | 2008-09-17 20:56:54 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Added some noteworthy improvements due to Chris Page & GSoC 2008
........
  r34598 | fingolfin | 2008-09-17 20:59:09 +0200 (Wed, 17 Sep 2008) | 1 line
  
  Simplified & fixed SearchManager
........
  r34599 | fingolfin | 2008-09-18 10:19:00 +0200 (Thu, 18 Sep 2008) | 1 line
  
  Added 'native' implementations for FSDirectory::matchPattern & SearchSet::getAllNames (untested)
........
  r34602 | thebluegr | 2008-09-19 12:25:40 +0200 (Fri, 19 Sep 2008) | 1 line
  
  Updated MSVC project files with the latest changes (moved base/game.* to engines/game.*)
........
  r34603 | thebluegr | 2008-09-19 15:58:09 +0200 (Fri, 19 Sep 2008) | 1 line
  
  Changed tinsel's volume range (0-127) to match ScummVM's (0-255)
........

Revision Links:
--------------
    http://scummvm.svn.sourceforge.net/scummvm/?rev=32873&view=rev
    http://scummvm.svn.sourceforge.net/scummvm/?rev=34132&view=rev
    http://scummvm.svn.sourceforge.net/scummvm/?rev=34156&view=rev
    http://scummvm.svn.sourceforge.net/scummvm/?rev=34153&view=rev
    http://scummvm.svn.sourceforge.net/scummvm/?rev=34162&view=rev

Modified Paths:
--------------
    scummvm/branches/gsoc2008-gui/AUTHORS
    scummvm/branches/gsoc2008-gui/NEWS
    scummvm/branches/gsoc2008-gui/README
    scummvm/branches/gsoc2008-gui/backends/events/default/default-events.cpp
    scummvm/branches/gsoc2008-gui/backends/events/default/default-events.h
    scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.h
    scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.h
    scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/wii/wii-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/wii/wii-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/wii/wii-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/windows/windows-fs-factory.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/windows/windows-fs-factory.h
    scummvm/branches/gsoc2008-gui/backends/fs/windows/windows-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/midi/seq.cpp
    scummvm/branches/gsoc2008-gui/backends/module.mk
    scummvm/branches/gsoc2008-gui/backends/platform/dc/dc-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/dc/selector.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/dc/vmsave.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm7/Makefile
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm7/source/main.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/makefile
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/blitters_arm.s
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/cdaudio.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/dsmain.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/dsmain.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/dsoptions.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/dsoptions.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/gbampsave.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/gbampsave.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/osystem_ds.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/osystem_ds.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/portdefs.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/ramsave.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/ramsave.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/touchkeyboard.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/source/touchkeyboard.h
    scummvm/branches/gsoc2008-gui/backends/platform/ds/makefile
    scummvm/branches/gsoc2008-gui/backends/platform/iphone/iphone_keyboard.m
    scummvm/branches/gsoc2008-gui/backends/platform/iphone/iphone_main.m
    scummvm/branches/gsoc2008-gui/backends/platform/iphone/iphone_video.m
    scummvm/branches/gsoc2008-gui/backends/platform/iphone/osys_iphone.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/iphone/osys_iphone.h
    scummvm/branches/gsoc2008-gui/backends/platform/null/null.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ps2/rawsavefile.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ps2/rawsavefile.h
    scummvm/branches/gsoc2008-gui/backends/platform/ps2/savefile.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ps2/savefile.h
    scummvm/branches/gsoc2008-gui/backends/platform/psp/osys_psp.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/psp/osys_psp_gu.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/psp/portdefs.h
    scummvm/branches/gsoc2008-gui/backends/platform/psp/psp_main.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/sdl/sdl.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/sdl/sdl.h
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/AdaptAllMMPs.pl
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/README
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S60/ScummVM_S60.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S80/ScummVM_S80.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S90/Scummvm_S90.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/mmp/scummvm_base.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/src/SymbianActions.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/src/SymbianOS.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/src/SymbianOS.h
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/src/portdefs.h
    scummvm/branches/gsoc2008-gui/backends/platform/wince/CEActionsPocket.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/wince/CEActionsSmartphone.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/wince/CELauncherDialog.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/wince/CELauncherDialog.h
    scummvm/branches/gsoc2008-gui/backends/platform/wince/Makefile
    scummvm/branches/gsoc2008-gui/backends/platform/wince/README-WinCE.txt
    scummvm/branches/gsoc2008-gui/backends/platform/wince/wince-sdl.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/wince/wince-sdl.h
    scummvm/branches/gsoc2008-gui/backends/saves/compressed/compressed-saves.cpp
    scummvm/branches/gsoc2008-gui/backends/saves/default/default-saves.cpp
    scummvm/branches/gsoc2008-gui/backends/saves/default/default-saves.h
    scummvm/branches/gsoc2008-gui/base/commandLine.cpp
    scummvm/branches/gsoc2008-gui/base/main.cpp
    scummvm/branches/gsoc2008-gui/base/module.mk
    scummvm/branches/gsoc2008-gui/base/plugins.cpp
    scummvm/branches/gsoc2008-gui/base/plugins.h
    scummvm/branches/gsoc2008-gui/base/version.cpp
    scummvm/branches/gsoc2008-gui/common/advancedDetector.cpp
    scummvm/branches/gsoc2008-gui/common/advancedDetector.h
    scummvm/branches/gsoc2008-gui/common/array.h
    scummvm/branches/gsoc2008-gui/common/config-file.cpp
    scummvm/branches/gsoc2008-gui/common/config-manager.cpp
    scummvm/branches/gsoc2008-gui/common/events.h
    scummvm/branches/gsoc2008-gui/common/file.cpp
    scummvm/branches/gsoc2008-gui/common/file.h
    scummvm/branches/gsoc2008-gui/common/fs.cpp
    scummvm/branches/gsoc2008-gui/common/fs.h
    scummvm/branches/gsoc2008-gui/common/hash-str.h
    scummvm/branches/gsoc2008-gui/common/hashmap.cpp
    scummvm/branches/gsoc2008-gui/common/hashmap.h
    scummvm/branches/gsoc2008-gui/common/iff_container.h
    scummvm/branches/gsoc2008-gui/common/keyboard.h
    scummvm/branches/gsoc2008-gui/common/list.h
    scummvm/branches/gsoc2008-gui/common/md5.cpp
    scummvm/branches/gsoc2008-gui/common/md5.h
    scummvm/branches/gsoc2008-gui/common/memorypool.cpp
    scummvm/branches/gsoc2008-gui/common/memorypool.h
    scummvm/branches/gsoc2008-gui/common/module.mk
    scummvm/branches/gsoc2008-gui/common/ptr.h
    scummvm/branches/gsoc2008-gui/common/str.cpp
    scummvm/branches/gsoc2008-gui/common/str.h
    scummvm/branches/gsoc2008-gui/common/stream.cpp
    scummvm/branches/gsoc2008-gui/common/stream.h
    scummvm/branches/gsoc2008-gui/common/system.cpp
    scummvm/branches/gsoc2008-gui/common/system.h
    scummvm/branches/gsoc2008-gui/common/unarj.cpp
    scummvm/branches/gsoc2008-gui/common/unarj.h
    scummvm/branches/gsoc2008-gui/common/unzip.h
    scummvm/branches/gsoc2008-gui/common/util.cpp
    scummvm/branches/gsoc2008-gui/common/util.h
    scummvm/branches/gsoc2008-gui/common/xmlparser.cpp
    scummvm/branches/gsoc2008-gui/configure
    scummvm/branches/gsoc2008-gui/dists/engine-data/drascula.dat
    scummvm/branches/gsoc2008-gui/dists/engine-data/kyra.dat
    scummvm/branches/gsoc2008-gui/dists/macosx/Info.plist.in
    scummvm/branches/gsoc2008-gui/dists/msvc7/agi.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/agos.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/cine.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/cruise.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/drascula.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/gob.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/igor.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/kyra.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/lure.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/m4.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/made.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/parallaction.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/queen.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/saga.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/scumm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/scummvm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/sky.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/sword1.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/sword2.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc7/touche.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/agi.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/agos.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/cine.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/cruise.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/drascula.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/gob.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/igor.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/kyra.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/lure.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/m4.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/made.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/parallaction.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/queen.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/saga.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/scumm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/scummvm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/sky.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/sword1.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/sword2.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/touche.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/agi.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/agos.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/cine.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/cruise.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/drascula.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/gob.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/igor.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/kyra.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/lure.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/m4.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/made.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/parallaction.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/queen.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/saga.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/scumm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/scummvm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/sky.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/sword1.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/sword2.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/tinsel.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8/touche.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc8_to_msvc7_71.bat
    scummvm/branches/gsoc2008-gui/dists/msvc9/agi.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/agos.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/cine.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/cruise.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/drascula.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/gob.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/igor.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/kyra.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/lure.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/m4.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/made.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/parallaction.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/queen.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/saga.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/scumm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/scummvm.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/sky.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/sword1.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/sword2.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/tinsel.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc9/touche.vcproj
    scummvm/branches/gsoc2008-gui/dists/redhat/scummvm-tools.spec
    scummvm/branches/gsoc2008-gui/dists/scummvm.6
    scummvm/branches/gsoc2008-gui/dists/scummvm.rc
    scummvm/branches/gsoc2008-gui/dists/scummvm.rc.in
    scummvm/branches/gsoc2008-gui/engines/agi/agi.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/agi.h
    scummvm/branches/gsoc2008-gui/engines/agi/cycle.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/loader_v3.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/op_cmd.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/op_test.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/preagi.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/preagi.h
    scummvm/branches/gsoc2008-gui/engines/agi/preagi_common.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/preagi_mickey.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/preagi_mickey.h
    scummvm/branches/gsoc2008-gui/engines/agi/preagi_troll.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/preagi_winnie.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/agi/wagparser.h
    scummvm/branches/gsoc2008-gui/engines/agos/agos.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/agos.h
    scummvm/branches/gsoc2008-gui/engines/agos/animation.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/event.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/gfx.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/input.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/midi.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/midi.h
    scummvm/branches/gsoc2008-gui/engines/agos/oracle.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/res.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/script.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/script_e1.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/script_e2.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/script_s1.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/script_ww.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/subroutine.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/verb.cpp
    scummvm/branches/gsoc2008-gui/engines/agos/window.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/anim.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/bg.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/cine.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/gfx.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/main_loop.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/part.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/prc.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/script_fw.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/texte.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/texte.h
    scummvm/branches/gsoc2008-gui/engines/cine/unpack.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/unpack.h
    scummvm/branches/gsoc2008-gui/engines/cine/various.cpp
    scummvm/branches/gsoc2008-gui/engines/cine/various.h
    scummvm/branches/gsoc2008-gui/engines/cruise/object.cpp
    scummvm/branches/gsoc2008-gui/engines/cruise/vars.h
    scummvm/branches/gsoc2008-gui/engines/cruise/volume.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/actors.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/animation.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/converse.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/drascula.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/drascula.h
    scummvm/branches/gsoc2008-gui/engines/drascula/graphics.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/interface.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/objects.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/palette.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/rooms.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/drascula/talk.cpp
    scummvm/branches/gsoc2008-gui/engines/engine.cpp
    scummvm/branches/gsoc2008-gui/engines/engine.h
    scummvm/branches/gsoc2008-gui/engines/gob/dataio.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/dataio.h
    scummvm/branches/gsoc2008-gui/engines/gob/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/draw.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/draw.h
    scummvm/branches/gsoc2008-gui/engines/gob/game_v1.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/game_v2.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/gob.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/gob.h
    scummvm/branches/gsoc2008-gui/engines/gob/goblin.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/inter.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/inter.h
    scummvm/branches/gsoc2008-gui/engines/gob/inter_bargon.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/inter_v1.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/inter_v2.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/map.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/map.h
    scummvm/branches/gsoc2008-gui/engines/gob/module.mk
    scummvm/branches/gsoc2008-gui/engines/gob/mult.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/palanim.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/parse.h
    scummvm/branches/gsoc2008-gui/engines/gob/parse_v1.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/parse_v2.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/sound/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/util.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/video.h
    scummvm/branches/gsoc2008-gui/engines/gob/videoplayer.cpp
    scummvm/branches/gsoc2008-gui/engines/igor/parts/part_22.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/gui.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/gui.h
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_hof.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_hof.h
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_lok.h
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_mr.h
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_v2.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/gui_v2.h
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_hof.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_hof.h
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_lok.h
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_mr.h
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_v1.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_v1.h
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_v2.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/kyra_v2.h
    scummvm/branches/gsoc2008-gui/engines/kyra/lol.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/lol.h
    scummvm/branches/gsoc2008-gui/engines/kyra/module.mk
    scummvm/branches/gsoc2008-gui/engines/kyra/resource.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/resource.h
    scummvm/branches/gsoc2008-gui/engines/kyra/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/saveload_hof.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/saveload_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/saveload_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/scene_hof.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/scene_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/screen.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/screen.h
    scummvm/branches/gsoc2008-gui/engines/kyra/screen_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/screen_lok.h
    scummvm/branches/gsoc2008-gui/engines/kyra/script.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/script.h
    scummvm/branches/gsoc2008-gui/engines/kyra/script_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/script_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/sequences_hof.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/sequences_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/sound.h
    scummvm/branches/gsoc2008-gui/engines/kyra/sound_towns.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/sprites.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/staticres.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/text.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/text_hof.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/text_lok.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/text_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/timer_mr.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/vqa.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/vqa.h
    scummvm/branches/gsoc2008-gui/engines/lure/animseq.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/events.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/events.h
    scummvm/branches/gsoc2008-gui/engines/lure/fights.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/game.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/game.h
    scummvm/branches/gsoc2008-gui/engines/lure/intro.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/lure.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/lure.h
    scummvm/branches/gsoc2008-gui/engines/lure/menu.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/scripts.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/lure/sound.h
    scummvm/branches/gsoc2008-gui/engines/lure/surface.cpp
    scummvm/branches/gsoc2008-gui/engines/m4/converse.cpp
    scummvm/branches/gsoc2008-gui/engines/m4/globals.cpp
    scummvm/branches/gsoc2008-gui/engines/m4/m4.cpp
    scummvm/branches/gsoc2008-gui/engines/m4/mads_anim.cpp
    scummvm/branches/gsoc2008-gui/engines/m4/midi.cpp
    scummvm/branches/gsoc2008-gui/engines/m4/resource.cpp
    scummvm/branches/gsoc2008-gui/engines/made/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/made/music.cpp
    scummvm/branches/gsoc2008-gui/engines/made/pmvplayer.cpp
    scummvm/branches/gsoc2008-gui/engines/made/redreader.cpp
    scummvm/branches/gsoc2008-gui/engines/made/screenfx.cpp
    scummvm/branches/gsoc2008-gui/engines/metaengine.h
    scummvm/branches/gsoc2008-gui/engines/module.mk
    scummvm/branches/gsoc2008-gui/engines/parallaction/balloons.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/callables_ns.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/dialogue.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/disk.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/disk_br.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/disk_ns.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/exec_br.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/exec_ns.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/gfxbase.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/graphics.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/graphics.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/gui_br.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/gui_ns.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/input.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/input.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/objects.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/objects.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/parallaction.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/parallaction.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/parallaction_br.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/parallaction_ns.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/parser.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/parser.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/parser_br.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/parallaction/staticres.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/input.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/journal.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/logic.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/midiadlib.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/queen.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/queen.h
    scummvm/branches/gsoc2008-gui/engines/queen/resource.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/queen/talk.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/animation.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/input.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/interface.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/introproc_ihnm.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/music.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/music.h
    scummvm/branches/gsoc2008-gui/engines/saga/rscfile.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/saga.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/saga.h
    scummvm/branches/gsoc2008-gui/engines/saga/scene.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/sfuncs.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/sndres.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/sndres.h
    scummvm/branches/gsoc2008-gui/engines/saga/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/saga/sound.h
    scummvm/branches/gsoc2008-gui/engines/saga/sprite.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/detection_tables.h
    scummvm/branches/gsoc2008-gui/engines/scumm/dialogs.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/dialogs.h
    scummvm/branches/gsoc2008-gui/engines/scumm/file.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/file.h
    scummvm/branches/gsoc2008-gui/engines/scumm/file_nes.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/file_nes.h
    scummvm/branches/gsoc2008-gui/engines/scumm/gfx.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/gfx.h
    scummvm/branches/gsoc2008-gui/engines/scumm/gfxARM.s
    scummvm/branches/gsoc2008-gui/engines/scumm/he/cup_player_he.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/he/intern_he.h
    scummvm/branches/gsoc2008-gui/engines/scumm/he/script_v100he.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/he/script_v70he.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/he/script_v72he.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/he/script_v90he.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/input.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/insane/insane.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/insane/insane.h
    scummvm/branches/gsoc2008-gui/engines/scumm/insane/insane_iact.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/module.mk
    scummvm/branches/gsoc2008-gui/engines/scumm/resource.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/resource_v4.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/saveload.h
    scummvm/branches/gsoc2008-gui/engines/scumm/script.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/script_v5.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/script_v6.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/script_v8.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/scumm-md5.h
    scummvm/branches/gsoc2008-gui/engines/scumm/scumm.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/scumm.h
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/channel.h
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/imuse_channel.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/saud_channel.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/smush_player.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/smush_player.h
    scummvm/branches/gsoc2008-gui/engines/sky/control.cpp
    scummvm/branches/gsoc2008-gui/engines/sky/intro.cpp
    scummvm/branches/gsoc2008-gui/engines/sky/intro.h
    scummvm/branches/gsoc2008-gui/engines/sky/logic.cpp
    scummvm/branches/gsoc2008-gui/engines/sky/mouse.cpp
    scummvm/branches/gsoc2008-gui/engines/sky/sky.cpp
    scummvm/branches/gsoc2008-gui/engines/sky/sky.h
    scummvm/branches/gsoc2008-gui/engines/sky/skydefs.h
    scummvm/branches/gsoc2008-gui/engines/sword1/animation.cpp
    scummvm/branches/gsoc2008-gui/engines/sword1/control.cpp
    scummvm/branches/gsoc2008-gui/engines/sword1/control.h
    scummvm/branches/gsoc2008-gui/engines/sword1/credits.cpp
    scummvm/branches/gsoc2008-gui/engines/sword1/logic.cpp
    scummvm/branches/gsoc2008-gui/engines/sword1/music.cpp
    scummvm/branches/gsoc2008-gui/engines/sword1/sword1.cpp
    scummvm/branches/gsoc2008-gui/engines/sword1/sword1.h
    scummvm/branches/gsoc2008-gui/engines/sword2/animation.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/controls.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/function.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/palette.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/resman.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/screen.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/sound.h
    scummvm/branches/gsoc2008-gui/engines/sword2/startup.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/sword2.cpp
    scummvm/branches/gsoc2008-gui/engines/sword2/sword2.h
    scummvm/branches/gsoc2008-gui/engines/tinsel/config.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/config.h
    scummvm/branches/gsoc2008-gui/engines/tinsel/cursor.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/dw.h
    scummvm/branches/gsoc2008-gui/engines/tinsel/inventory.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/music.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/music.h
    scummvm/branches/gsoc2008-gui/engines/tinsel/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/sound.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/sound.h
    scummvm/branches/gsoc2008-gui/engines/tinsel/tinlib.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/tinsel.cpp
    scummvm/branches/gsoc2008-gui/engines/tinsel/tinsel.h
    scummvm/branches/gsoc2008-gui/engines/touche/detection.cpp
    scummvm/branches/gsoc2008-gui/engines/touche/menu.cpp
    scummvm/branches/gsoc2008-gui/engines/touche/opcodes.cpp
    scummvm/branches/gsoc2008-gui/engines/touche/saveload.cpp
    scummvm/branches/gsoc2008-gui/engines/touche/touche.cpp
    scummvm/branches/gsoc2008-gui/engines/touche/touche.h
    scummvm/branches/gsoc2008-gui/graphics/dxa_player.cpp
    scummvm/branches/gsoc2008-gui/graphics/dxa_player.h
    scummvm/branches/gsoc2008-gui/graphics/font.cpp
    scummvm/branches/gsoc2008-gui/graphics/iff.cpp
    scummvm/branches/gsoc2008-gui/graphics/module.mk
    scummvm/branches/gsoc2008-gui/graphics/scaler.h
    scummvm/branches/gsoc2008-gui/graphics/surface.cpp
    scummvm/branches/gsoc2008-gui/graphics/surface.h
    scummvm/branches/gsoc2008-gui/gui/ThemeEngine.cpp
    scummvm/branches/gsoc2008-gui/gui/about.cpp
    scummvm/branches/gsoc2008-gui/gui/browser.cpp
    scummvm/branches/gsoc2008-gui/gui/browser.h
    scummvm/branches/gsoc2008-gui/gui/credits.h
    scummvm/branches/gsoc2008-gui/gui/launcher.cpp
    scummvm/branches/gsoc2008-gui/gui/launcher.h
    scummvm/branches/gsoc2008-gui/gui/massadd.cpp
    scummvm/branches/gsoc2008-gui/gui/massadd.h
    scummvm/branches/gsoc2008-gui/gui/newgui.cpp
    scummvm/branches/gsoc2008-gui/gui/options.cpp
    scummvm/branches/gsoc2008-gui/gui/theme.cpp
    scummvm/branches/gsoc2008-gui/gui/theme.h
    scummvm/branches/gsoc2008-gui/gui/themebrowser.cpp
    scummvm/branches/gsoc2008-gui/gui/themebrowser.h
    scummvm/branches/gsoc2008-gui/gui/themes/default.inc
    scummvm/branches/gsoc2008-gui/gui/themes/scummclassic/classic_layout.stx
    scummvm/branches/gsoc2008-gui/gui/themes/scummclassic/classic_layout_320.stx
    scummvm/branches/gsoc2008-gui/gui/themes/scummclassic.zip
    scummvm/branches/gsoc2008-gui/gui/themes/scummodern/scummodern_layout.stx
    scummvm/branches/gsoc2008-gui/gui/themes/scummodern/scummodern_layout_320.stx
    scummvm/branches/gsoc2008-gui/gui/themes/scummodern.zip
    scummvm/branches/gsoc2008-gui/gui/widget.cpp
    scummvm/branches/gsoc2008-gui/ports.mk
    scummvm/branches/gsoc2008-gui/sound/adpcm.cpp
    scummvm/branches/gsoc2008-gui/sound/audiocd.cpp
    scummvm/branches/gsoc2008-gui/sound/flac.cpp
    scummvm/branches/gsoc2008-gui/sound/flac.h
    scummvm/branches/gsoc2008-gui/sound/mididrv.cpp
    scummvm/branches/gsoc2008-gui/sound/mididrv.h
    scummvm/branches/gsoc2008-gui/sound/mixer.cpp
    scummvm/branches/gsoc2008-gui/sound/mods/infogrames.cpp
    scummvm/branches/gsoc2008-gui/sound/mods/infogrames.h
    scummvm/branches/gsoc2008-gui/sound/mp3.cpp
    scummvm/branches/gsoc2008-gui/sound/mp3.h
    scummvm/branches/gsoc2008-gui/sound/softsynth/mt32/mt32_file.cpp
    scummvm/branches/gsoc2008-gui/sound/softsynth/mt32/mt32_file.h
    scummvm/branches/gsoc2008-gui/sound/softsynth/mt32/partial.cpp
    scummvm/branches/gsoc2008-gui/sound/softsynth/mt32/synth.cpp
    scummvm/branches/gsoc2008-gui/sound/softsynth/mt32/tables.cpp
    scummvm/branches/gsoc2008-gui/sound/softsynth/mt32.cpp
    scummvm/branches/gsoc2008-gui/sound/vorbis.cpp
    scummvm/branches/gsoc2008-gui/sound/vorbis.h
    scummvm/branches/gsoc2008-gui/sound/wave.cpp
    scummvm/branches/gsoc2008-gui/test/common/bufferedreadstream.h
    scummvm/branches/gsoc2008-gui/test/common/bufferedseekablereadstream.h
    scummvm/branches/gsoc2008-gui/test/common/hashmap.h
    scummvm/branches/gsoc2008-gui/test/common/seekablesubreadstream.h
    scummvm/branches/gsoc2008-gui/test/common/str.h
    scummvm/branches/gsoc2008-gui/test/common/subreadstream.h
    scummvm/branches/gsoc2008-gui/tools/create_drascula/create_drascula.cpp
    scummvm/branches/gsoc2008-gui/tools/create_drascula/create_drascula.h
    scummvm/branches/gsoc2008-gui/tools/create_drascula/staticdata.h
    scummvm/branches/gsoc2008-gui/tools/create_kyradat/create_kyradat.cpp
    scummvm/branches/gsoc2008-gui/tools/create_kyradat/hof_floppy.h
    scummvm/branches/gsoc2008-gui/tools/create_kyradat/pak.h
    scummvm/branches/gsoc2008-gui/tools/credits.pl
    scummvm/branches/gsoc2008-gui/tools/md5table.c
    scummvm/branches/gsoc2008-gui/tools/scumm-md5.txt

Added Paths:
-----------
    scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.h
    scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.h
    scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbianstream.cpp
    scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbianstream.h
    scummvm/branches/gsoc2008-gui/backends/midi/stmidi.cpp
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/dist/
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/dist/readme_ds.txt
    scummvm/branches/gsoc2008-gui/backends/platform/ds/logog.bmp
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/mmp/scummvm_tinsel.mmp.in
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/src/vsnprintf.h
    scummvm/branches/gsoc2008-gui/common/archive.cpp
    scummvm/branches/gsoc2008-gui/common/archive.h
    scummvm/branches/gsoc2008-gui/common/queue.h
    scummvm/branches/gsoc2008-gui/common/zlib.cpp
    scummvm/branches/gsoc2008-gui/common/zlib.h
    scummvm/branches/gsoc2008-gui/dists/msvc7/tinsel.vcproj
    scummvm/branches/gsoc2008-gui/dists/msvc71/tinsel.vcproj
    scummvm/branches/gsoc2008-gui/engines/dialogs.cpp
    scummvm/branches/gsoc2008-gui/engines/dialogs.h
    scummvm/branches/gsoc2008-gui/engines/game.cpp
    scummvm/branches/gsoc2008-gui/engines/game.h
    scummvm/branches/gsoc2008-gui/engines/gob/inter_v5.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/inter_v6.cpp
    scummvm/branches/gsoc2008-gui/engines/gob/video_v6.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/resource_intern.cpp
    scummvm/branches/gsoc2008-gui/engines/kyra/resource_intern.h
    scummvm/branches/gsoc2008-gui/engines/parallaction/saveload.h
    scummvm/branches/gsoc2008-gui/graphics/scaler/thumbnail_intern.cpp
    scummvm/branches/gsoc2008-gui/graphics/thumbnail.cpp
    scummvm/branches/gsoc2008-gui/graphics/thumbnail.h
    scummvm/branches/gsoc2008-gui/test/common/queue.h
    scummvm/branches/gsoc2008-gui/test/common/stream.h

Removed Paths:
-------------
    scummvm/branches/gsoc2008-gui/backends/platform/ds/arm9/dist/readme_ds.txt
    scummvm/branches/gsoc2008-gui/backends/platform/symbian/src/main_features.inl
    scummvm/branches/gsoc2008-gui/base/game.cpp
    scummvm/branches/gsoc2008-gui/base/game.h
    scummvm/branches/gsoc2008-gui/common/zlib.cpp
    scummvm/branches/gsoc2008-gui/common/zlib.h
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/chunk.cpp
    scummvm/branches/gsoc2008-gui/engines/scumm/smush/chunk.h
    scummvm/branches/gsoc2008-gui/engines/scumm/thumbnail.cpp
    scummvm/branches/gsoc2008-gui/graphics/scaler/thumbnail.cpp

Property Changed:
----------------
    scummvm/branches/gsoc2008-gui/
    scummvm/branches/gsoc2008-gui/dists/macosx/
    scummvm/branches/gsoc2008-gui/test/


Property changes on: scummvm/branches/gsoc2008-gui
___________________________________________________________________
Modified: svn:ignore
   - config.log
scummvm
scummvm-static
config.h
config.mk
.gdb_history
dumps
Credits.rtf
*.mshark

   + config.log
scummvm
scummvm-static
config.h
config.mk
.gdb_history
dumps
Credits.rtf
*.mshark
*.dSYM

Modified: svnmerge-integrated
   - /scummvm/trunk:1-33919
   + /scummvm/trunk:1-34604

Modified: scummvm/branches/gsoc2008-gui/AUTHORS
===================================================================
--- scummvm/branches/gsoc2008-gui/AUTHORS	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/AUTHORS	2008-09-20 11:21:35 UTC (rev 34606)
@@ -168,9 +168,12 @@
        Johannes Schickel    
 
     Miscellaneous:
-       David Corrales-Lopez  - Filesystem access improvements
+       David Corrales-Lopez  - Filesystem access improvements (GSoC 2007
+                               task)
        Jerome Fisher         - MT-32 emulator
        Jochen Hoenicke       - Speaker & PCjr sound support, Adlib work
+       Chris Page            - Return to launcher, savestate improvements,
+                               leak fixes, ... (GSoC 2008 task)
        Robin Watts           - ARM assembly routines for nice speedups on
                                several ports; improvements to the sound mixer
 

Modified: scummvm/branches/gsoc2008-gui/NEWS
===================================================================
--- scummvm/branches/gsoc2008-gui/NEWS	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/NEWS	2008-09-20 11:21:35 UTC (rev 34606)
@@ -2,10 +2,22 @@
         http://scummvm.sourceforge.net/daily/ChangeLog
 
 0.13.0 (????-??-??)
+ General:
+   - Added MIDI driver for Atari ST / FreeMint.
+   - Added a 'Load' button to the Launcher (not supported by all engines).
+   - Added a new global main menu (GMM) dialog usable from all engines.
+   - Added the ability to return to the launcher from running games (via the GMM).
+
  New Games:
    - Added support for Discworld.
 
-0.12.0 (????-??-??)
+ KYRA:
+   - Added support for Auto-save feature.
+
+ SCUMM:
+   - Fixed a long-time bug which caused talkspeed and talkdelay to be mixed up.
+
+0.12.0 (2008-08-31)
  New Games:
    - Added support for The Legend of Kyrandia: Book Two: Hand of Fate.
    - Added support for The Legend of Kyrandia: Book Three: Malcolm's Revenge.

Modified: scummvm/branches/gsoc2008-gui/README
===================================================================
--- scummvm/branches/gsoc2008-gui/README	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/README	2008-09-20 11:21:35 UTC (rev 34606)
@@ -39,10 +39,12 @@
  * 5.1 Command Line Options
  * 5.2 Language Options
  * 5.3 Graphics Filters
- * 5.4 Hotkeys
+ * 5.4 Global Menu
+ * 5.5 Hotkeys
 6.0) Savegames
  * 6.1 Autosaves
  * 6.2 Converting savegames
+ * 6.3 Viewing/Loading savegames from the command line
 7.0) Music and Sound
  * 7.1 Adlib emulation
  * 7.2 FluidSynth MIDI emulation
@@ -182,17 +184,23 @@
      Gobliiins                                   [gob1]
      Gobliins 2                                  [gob2]
      Goblins 3                                   [gob3]
+     Lost in Time                                [lostintime]
+     The Bizarre Adventures of Woodruff
+         and the Schnibble                       [woodruff]
      Ween: The Prophecy                          [ween]
 
 Other Games:
      Beneath a Steel Sky                         [sky]
      Broken Sword 1: The Shadow of the Templars  [sword1]
      Broken Sword 2: The Smoking Mirror          [sword2]
+     Drascula: The Vampire Strikes Back          [drascula]
      Flight of the Amazon Queen                  [queen]
      Future Wars                                 [fw]
      Inherit the Earth: Quest for the Orb        [ite]
      Nippon Safes Inc.                           [nippon]
      The Legend of Kyrandia                      [kyra1]
+     The Legend of Kyrandia: The Hand of Fate    [kyra2]
+     The Legend of Kyrandia: Malcolm's Revenge   [kyra3]
      Touche: The Adventures of the Fifth
          Musketeer                               [touche]
 
@@ -781,6 +789,7 @@
   -h, --help               Display a brief help text and exit
   -z, --list-games         Display list of supported games and exit
   -t, --list-targets       Display list of configured targets and exit
+  --list-saves=TARGET      Display a list of savegames for the game (TARGET) specified
 
   -c, --config=CONFIG      Use alternate configuration file
   -p, --path=PATH          Path to where the game is installed
@@ -968,7 +977,38 @@
 will be scaled to 1280x960 and 1920x1440.
 
 
-5.4) Hot Keys:
+5.4) Global Menu:
+---- ------------
+
+The Global Menu is a general menu which is available to all of the game engines 
+by pressing F6.  From this menu there are the following buttons: Resume, 
+Options, About, Return to Launcher, and Quit. Selecting 'Options' will display 
+a dialog where basic audio settings, such as volume levels, can be adjusted.  
+Selecting 'Return to Launcher' will close the current game and return the user 
+back to the ScummVM Launcher, where another game may be selected to play.
+
+Note: Returning to the Launcher is not supported by all of the engines, 
+     and the button will be disabled in the Global Menu if it is not supported.
+
+Engines which currently support Returning to the Launcher are:
+
+        AGI
+        AGOS
+        CINE
+        GOB
+        KYRA
+        LURE
+        PARALLACTION
+        QUEEN
+        SAGA
+        SCUMM
+        SKY
+        SWORD1
+        SWORD2
+        TOUCHE
+
+
+5.5) Hot Keys:
 ---- ---------
 TODO
 TODO: Rework this section to clearly state which hotkeys are implemented in *all*
@@ -982,6 +1022,7 @@
 other games.
 
     Common:
+        F6                     - Displays the Global Menu
         Cmd-q                  - Quit (Mac OS X)
         Ctrl-q                 - Quit (other unices including Linux)
         Ctrl-z OR Alt-x        - Quit (other platforms)
@@ -1138,45 +1179,93 @@
 
 6.1) Autosaves:
 ---- ----------
-For some games (namely "Beneath a Steel Sky", "Flight of the Amazon
-Queen" and all SCUMM games), ScummVM will by default automatically
-save the current state every five minutes (adjustable via the
-"autosave_period" config setting). For the SCUMM engine, it will save
-in Slot 0. This savestate can then be loaded again via Ctrl-0, or the
-F5 menu.
+For some games, (namely "Beneath a Steel Sky", "Flight of the Amazon Queen", 
+all AGI games, and all SCUMM games), ScummVM will by default automatically
+save the current state every five minutes (adjustable via the "autosave_period"
+config setting). For the AGI and SCUMM engines, it will save in Slot 0. For the
+SCUMM engine, this savestate can then be loaded again via Ctrl-0, or the F5
+menu.
 
 
 6.2) Converting Savegames:
----- ----------
-Using savegames from original versions, isn't supported by all game engines. Only
-the following games, can use savedgames from their original versions.
+---- ---------------------
+Using savegames from original versions, isn't supported by all game engines. 
+Only the following games, can use savegames from their original versions.
 
      Elvira 1
-          - Add 8 bytes (savedgame name) to the start of the savegame file
-          - Rename the savedgame to 'elvira1.xxx'
+          - Add 8 bytes (savegame name) to the start of the savegame file
+          - Rename the savegame to 'elvira1.xxx'
 
      Elvira 2
-          - Add 8 bytes (savedgame name) to the start of the savegame file
-          - Rename the savedgame to 'elvira2-pc.xxx' (DOS version) or
+          - Add 8 bytes (savegame name) to the start of the savegame file
+          - Rename the savegame to 'elvira2-pc.xxx' (DOS version) or
             'elvira2.xxx' (Other versions)
 
     Waxworks
-          - Add 8 bytes (savedgame name) to the start of the savegame file
-          - Rename the savedgame to 'waxworks-pc.xxx' (DOS version) or
+          - Add 8 bytes (savegame name) to the start of the savegame file
+          - Rename the savegame to 'waxworks-pc.xxx' (DOS version) or
             'waxworks.xxx' (Other versions)
 
      Simon the Sorcerer 1
-          - Rename the savedgame to 'simon1.xxx'
+          - Rename the savegame to 'simon1.xxx'
  
     Simon the Sorcerer 1
-          - Rename the savedgame to 'simon2.xxx'
+          - Rename the savegame to 'simon2.xxx'
  
     The Feeble Files
-          - Rename the savedgame to 'feeble.xxx'
+          - Rename the savegame to 'feeble.xxx'
 
 Where 'xxx' is exact the saved game slot (ie 001) under ScummVM
 
 
+6.3) Viewing/Loading savegames from the command line:
+---- ------------------------------------------------
+
+--list-saves:
+
+     This switch may be used to display a list of the current savegames
+     of the specified target game and their corresponding save slots.
+
+     Usage: --list-saves=[TARGET], where [TARGET] is the target game.
+
+     Engines which currently support --list-saves are:
+
+             AGI
+             AGOS
+             CINE
+             KYRA
+             LURE
+             PARALLACTION
+             QUEEN
+             SAGA
+             SCUMM
+             SKY
+             SWORD1
+             SWORD2
+             TOUCHE
+
+--save-slot/-x:
+
+     This switch may be used to load a savegame directly from the command line.
+
+     Usage: --save-slot[SLOT] or -x[SLOT], where [SLOT] is the save slot number.
+
+     Engines which currently support --save-slot/-x are:
+
+             AGI
+             CINE
+             KYRA
+             LURE
+             PARALLACTION
+             QUEEN
+             SAGA
+             SCUMM
+             SKY
+             SWORD1
+             SWORD2
+             TOUCHE
+
+
 7.0) Music and Sound:
 ---- ----------------
 

Modified: scummvm/branches/gsoc2008-gui/backends/events/default/default-events.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/events/default/default-events.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/events/default/default-events.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -93,7 +93,8 @@
 	_boss(boss),
 	_buttonState(0),
 	_modifierState(0),
-	_shouldQuit(false) {
+	_shouldQuit(false),
+	_shouldRTL(false) {
 
 	assert(_boss);
 
@@ -200,6 +201,9 @@
 	_boss->unlockMutex(_timeMutex);
 	_boss->unlockMutex(_recorderMutex);
 
+	if (!artificialEventQueue.empty())
+		artificialEventQueue.clear();
+
 	if (_playbackFile != NULL) {
 		delete _playbackFile;
 	}
@@ -349,7 +353,11 @@
 	uint32 time = _boss->getMillis();
 	bool result;
 
-	result = _boss->pollEvent(event);
+	if (!artificialEventQueue.empty()) {
+		event = artificialEventQueue.pop();
+		result = true;
+	} else 	
+		result = _boss->pollEvent(event);
 
 	if (_recordMode != kPassthrough)  {
 
@@ -375,7 +383,6 @@
 		switch (event.type) {
 		case Common::EVENT_KEYDOWN:
 			_modifierState = event.kbd.flags;
-
 			// init continuous event stream
 			// not done on PalmOS because keyboard is emulated and keyup is not generated
 #if !defined(PALMOS_MODE)
@@ -384,7 +391,41 @@
 			_currentKeyDown.flags = event.kbd.flags;
 			_keyRepeatTime = time + kKeyRepeatInitialDelay;
 #endif
+			// Global Main Menu
+			// FIXME: F6 is not the best trigger, it conflicts with some games!!!
+			if (event.kbd.keycode == Common::KEYCODE_F6) {
+				if (g_engine && !g_engine->isPaused()) {
+					Common::Event menuEvent;
+					menuEvent.type = Common::EVENT_MAINMENU;
+					
+					// FIXME: GSoC RTL branch passes the F6 key event to the
+					// engine, and also enqueues a EVENT_MAINMENU. For now,
+					// we just drop the key event and return an EVENT_MAINMENU
+					// instead. This way, we don't have to add special cases
+					// to engines (like it was the case for LURE in the RTL branch).
+					//
+					// However, this has other consequences, possibly negative ones.
+					// Like, what happens with key repeat for the trigger key?
+					
+					//pushEvent(menuEvent);
+					event = menuEvent;
+
+					// FIXME: Since now we do not push another MAINMENU event onto
+					// our event stack, the GMM would never open, so we have to do
+					// that here. Of course when the engine would handle MAINMENU
+					// as an event now and open up the GMM itself it would open the
+					// menu twice.
+					if (g_engine && !g_engine->isPaused())
+						g_engine->mainMenuDialog();
+
+					if (_shouldQuit)
+						event.type = Common::EVENT_QUIT;
+					else if (_shouldRTL)
+						event.type = Common::EVENT_RTL;
+				}
+			}
 			break;
+
 		case Common::EVENT_KEYUP:
 			_modifierState = event.kbd.flags;
 			if (event.kbd.keycode == _currentKeyDown.keycode) {
@@ -401,6 +442,7 @@
 			_mousePos = event.mouse;
 			_buttonState |= LBUTTON;
 			break;
+
 		case Common::EVENT_LBUTTONUP:
 			_mousePos = event.mouse;
 			_buttonState &= ~LBUTTON;
@@ -410,11 +452,26 @@
 			_mousePos = event.mouse;
 			_buttonState |= RBUTTON;
 			break;
+
 		case Common::EVENT_RBUTTONUP:
 			_mousePos = event.mouse;
 			_buttonState &= ~RBUTTON;
 			break;
 
+		case Common::EVENT_MAINMENU:
+			if (g_engine && !g_engine->isPaused())
+				g_engine->mainMenuDialog();
+
+			if (_shouldQuit)
+				event.type = Common::EVENT_QUIT;
+			else if (_shouldRTL)
+				event.type = Common::EVENT_RTL;
+			break;
+
+		case Common::EVENT_RTL:
+			_shouldRTL = true;
+			break;
+
 		case Common::EVENT_QUIT:
 			if (ConfMan.getBool("confirm_exit")) {
 				if (g_engine)
@@ -425,6 +482,7 @@
 					g_engine->pauseEngine(false);
 			} else
 				_shouldQuit = true;
+
 			break;
 
 		default:
@@ -447,4 +505,14 @@
 	return result;
 }
 
+void DefaultEventManager::pushEvent(Common::Event event) {
+
+	// If already received an EVENT_QUIT, don't add another one
+	if (event.type == Common::EVENT_QUIT) {
+		if (!_shouldQuit)
+			artificialEventQueue.push(event);
+	} else 
+		artificialEventQueue.push(event);	
+}
+
 #endif // !defined(DISABLE_DEFAULT_EVENTMANAGER)

Modified: scummvm/branches/gsoc2008-gui/backends/events/default/default-events.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/events/default/default-events.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/events/default/default-events.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -48,6 +48,7 @@
 	int _buttonState;
 	int _modifierState;
 	bool _shouldQuit;
+	bool _shouldRTL;
 
 	class RandomSourceRecord {
 	public:
@@ -107,6 +108,7 @@
 	~DefaultEventManager();
 
 	virtual bool pollEvent(Common::Event &event);
+	virtual void pushEvent(Common::Event event);
 	virtual void registerRandomSource(Common::RandomSource &rnd, const char *name);
 	virtual void processMillis(uint32 &millis);
 
@@ -114,6 +116,8 @@
 	virtual int getButtonState() const { return _buttonState; }
 	virtual int getModifierState() const { return _modifierState; }
 	virtual int shouldQuit() const { return _shouldQuit; }
+	virtual int shouldRTL() const { return _shouldRTL; }
+	virtual void resetRTL() { _shouldRTL = false; }
 };
 
 #endif

Copied: scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.cpp (from rev 34603, scummvm/trunk/backends/fs/abstract-fs.cpp)
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -0,0 +1,40 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ */
+
+#include "backends/fs/abstract-fs.h"
+
+const char *AbstractFilesystemNode::lastPathComponent(const Common::String &str, const char sep) {
+	// TODO: Get rid of this eventually! Use Common::lastPathComponent instead
+	if(str.empty())
+		return "";
+
+	const char *start = str.c_str();
+	const char *cur = start + str.size() - 2;
+
+	while (cur >= start && *cur != sep) {
+		--cur;
+	}
+
+	return cur + 1;
+}

Modified: scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/abstract-fs.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -43,22 +43,21 @@
  */
 class AbstractFilesystemNode {
 protected:
-	friend class FilesystemNode;
-	typedef Common::String String;
-	typedef FilesystemNode::ListMode ListMode;
+	friend class Common::FilesystemNode;
+	typedef Common::FilesystemNode::ListMode ListMode;
 
 	/**
-	 * Returns the child node with the given name. If no child with this name
-	 * exists, returns 0. When called on a non-directory node, it should
-	 * handle this gracefully by returning 0.
+	 * Returns the child node with the given name. When called on a non-directory
+	 * node, it should handle this gracefully by returning 0.
+	 * When called with a name not matching any of the files/dirs contained in this
+	 * directory, a valid node shold be returned, which returns 'false' upon calling
+	 * the exists() method. The idea is that this node can then still can be used to
+	 * create a new file via the openForWriting() method.
 	 *
 	 * Example:
 	 *			Calling getChild() for a node with path "/foo/bar" using name="file.txt",
 	 *			would produce a new node with "/foo/bar/file.txt" as path.
 	 *
-	 * @note This function will append a separator char (\ or /) to the end of the
-	 * path if needed.
-	 *
 	 * @note Handling calls on non-dir nodes gracefully makes it possible to
 	 * switch to a lazy type detection scheme in the future.
 	 *
@@ -72,6 +71,19 @@
 	 */
 	virtual AbstractFilesystemNode *getParent() const = 0;
 
+	/**
+	 * Returns the last component of a given path.
+	 *
+	 * Examples:
+	 *			/foo/bar.txt would return /bar.txt
+	 *			/foo/bar/    would return /bar/
+	 *
+	 * @param str String containing the path.
+	 * @param sep character used to separate path components
+	 * @return Pointer to the first char of the last component inside str.
+	 */
+	static const char *lastPathComponent(const Common::String &str, const char sep);
+
 public:
 	/**
 	 * Destructor.
@@ -149,9 +161,26 @@
 	 */
 	virtual bool isWritable() const = 0;
 
-	/* TODO:
-	bool isFile();
-	*/
+
+	/**
+	 * Creates a SeekableReadStream instance corresponding to the file
+	 * referred by this node. This assumes that the node actually refers
+	 * to a readable file. If this is not the case, 0 is returned.
+	 *
+	 * @return pointer to the stream object, 0 in case of a failure
+	 */
+	virtual Common::SeekableReadStream *openForReading() = 0;
+
+	/**
+	 * Creates a WriteStream instance corresponding to the file
+	 * referred by this node. This assumes that the node actually refers
+	 * to a readable file. If this is not the case, 0 is returned.
+	 *
+	 * @return pointer to the stream object, 0 in case of a failure
+	 */
+	virtual Common::WriteStream *openForWriting() = 0;
 };
 
+
+
 #endif //BACKENDS_ABSTRACT_FS_H

Modified: scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -26,8 +26,6 @@
 #include "backends/fs/amigaos4/amigaos4-fs-factory.h"
 #include "backends/fs/amigaos4/amigaos4-fs.cpp"
 
-DECLARE_SINGLETON(AmigaOSFilesystemFactory);
-
 AbstractFilesystemNode *AmigaOSFilesystemFactory::makeRootFileNode() const {
 	return new AmigaOSFilesystemNode();
 }
@@ -36,7 +34,7 @@
 	return new AmigaOSFilesystemNode();
 }
 
-AbstractFilesystemNode *AmigaOSFilesystemFactory::makeFileNodePath(const String &path) const {
+AbstractFilesystemNode *AmigaOSFilesystemFactory::makeFileNodePath(const Common::String &path) const {
 	return new AmigaOSFilesystemNode(path);
 }
 #endif

Modified: scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -25,7 +25,6 @@
 #ifndef AMIGAOS_FILESYSTEM_FACTORY_H
 #define AMIGAOS_FILESYSTEM_FACTORY_H
 
-#include "common/singleton.h"
 #include "backends/fs/fs-factory.h"
 
 /**
@@ -33,19 +32,11 @@
  *
  * Parts of this class are documented in the base interface class, FilesystemFactory.
  */
-class AmigaOSFilesystemFactory : public FilesystemFactory, public Common::Singleton<AmigaOSFilesystemFactory> {
+class AmigaOSFilesystemFactory : public FilesystemFactory {
 public:
-	typedef Common::String String;
-
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
-
-protected:
-	AmigaOSFilesystemFactory() {};
-
-private:
-	friend class Common::Singleton<SingletonBaseType>;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 };
 
 #endif /*AMIGAOS_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/amigaos4/amigaos4-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -36,8 +36,8 @@
 #endif
 
 #include "common/util.h"
-#include "engines/engine.h"
 #include "backends/fs/abstract-fs.h"
+#include "backends/fs/stdiostream.h"
 
 #define ENTER() /* debug(6, "Enter") */
 #define LEAVE() /* debug(6, "Leave") */
@@ -52,8 +52,8 @@
 class AmigaOSFilesystemNode : public AbstractFilesystemNode {
 protected:
 	BPTR _pFileLock;
-	String _sDisplayName;
-	String _sPath;
+	Common::String _sDisplayName;
+	Common::String _sPath;
 	bool _bIsDirectory;
 	bool _bIsValid;
 
@@ -74,9 +74,9 @@
 	/**
 	 * Creates a AmigaOSFilesystemNode for a given path.
 	 *
-	 * @param path String with the path the new node should point to.
+	 * @param path Common::String with the path the new node should point to.
 	 */
-	AmigaOSFilesystemNode(const String &p);
+	AmigaOSFilesystemNode(const Common::String &p);
 
 	/**
 	 * FIXME: document this constructor.
@@ -96,17 +96,20 @@
 	virtual ~AmigaOSFilesystemNode();
 
 	virtual bool exists() const;
-	virtual String getDisplayName() const { return _sDisplayName; };
-	virtual String getName() const { return _sDisplayName; };
-	virtual String getPath() const { return _sPath; };
+	virtual Common::String getDisplayName() const { return _sDisplayName; };
+	virtual Common::String getName() const { return _sDisplayName; };
+	virtual Common::String getPath() const { return _sPath; };
 	virtual bool isDirectory() const { return _bIsDirectory; };
 	virtual bool isReadable() const;
 	virtual bool isWritable() const;
 
-	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
 	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
 
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
+
 	/**
 	 * Creates a list with all the volumes present in the root node.
 	 */
@@ -116,7 +119,7 @@
 /**
  * Returns the last component of a given path.
  *
- * @param str String containing the path.
+ * @param str Common::String containing the path.
  * @return Pointer to the first char of the last component inside str.
  */
 const char *lastPathComponent(const Common::String &str) {
@@ -148,10 +151,10 @@
 	LEAVE();
 }
 
-AmigaOSFilesystemNode::AmigaOSFilesystemNode(const String &p) {
+AmigaOSFilesystemNode::AmigaOSFilesystemNode(const Common::String &p) {
 	ENTER();
 
-	int len = 0, offset = p.size();
+	int offset = p.size();
 
 	//assert(offset > 0);
 
@@ -161,7 +164,7 @@
 	}
 
 	_sPath = p;
-	_sDisplayName = lastPathComponent(_sPath);
+	_sDisplayName = ::lastPathComponent(_sPath);
 	_pFileLock = 0;
 	_bIsDirectory = false;
 
@@ -299,14 +302,14 @@
 	return nodeExists;
 }
 
-AbstractFilesystemNode *AmigaOSFilesystemNode::getChild(const String &n) const {
+AbstractFilesystemNode *AmigaOSFilesystemNode::getChild(const Common::String &n) const {
 	ENTER();
 	if (!_bIsDirectory) {
 		debug(6, "Not a directory");
 		return 0;
 	}
 
-	String newPath(_sPath);
+	Common::String newPath(_sPath);
 
 	if (_sPath.lastChar() != '/')
 		newPath += '/';
@@ -368,10 +371,10 @@
 
 				struct ExAllData *ead = data;
 				do {
-					if ((mode == FilesystemNode::kListAll) ||
-						(EAD_IS_DRAWER(ead) && (mode == FilesystemNode::kListDirectoriesOnly)) ||
-						(EAD_IS_FILE(ead) && (mode == FilesystemNode::kListFilesOnly))) {
-						String full_path = _sPath;
+					if ((mode == Common::FilesystemNode::kListAll) ||
+						(EAD_IS_DRAWER(ead) && (mode == Common::FilesystemNode::kListDirectoriesOnly)) ||
+						(EAD_IS_FILE(ead) && (mode == Common::FilesystemNode::kListFilesOnly))) {
+						Common::String full_path = _sPath;
 						full_path += (char*)ead->ed_Name;
 
 						BPTR lock = IDOS->Lock((STRPTR)full_path.c_str(), SHARED_LOCK);
@@ -566,4 +569,12 @@
 	return myList;
 }
 
+Common::SeekableReadStream *AmigaOSFilesystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *AmigaOSFilesystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
 #endif //defined(__amigaos4__)

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -45,7 +45,7 @@
 	}
 }
 
-AbstractFilesystemNode *DSFilesystemFactory::makeFileNodePath(const String &path) const {
+AbstractFilesystemNode *DSFilesystemFactory::makeFileNodePath(const Common::String &path) const {
 	if (DS::isGBAMPAvailable()) {
 		return new DS::GBAMPFileSystemNode(path);
 	} else {

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -35,11 +35,9 @@
  */
 class DSFilesystemFactory : public FilesystemFactory, public Common::Singleton<DSFilesystemFactory> {
 public:
-	typedef Common::String String;
-
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 
 protected:
 	DSFilesystemFactory() {};

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -24,6 +24,7 @@
 #include "common/util.h"
 //#include <NDS/ARM9/console.h> //basic print funcionality
 #include "backends/fs/ds/ds-fs.h"
+#include "backends/fs/stdiostream.h"
 #include "dsmain.h"
 #include "fat/gba_nds_fat.h"
 
@@ -55,7 +56,7 @@
 	}
 }
 
-DSFileSystemNode::DSFileSystemNode(const String& path) {
+DSFileSystemNode::DSFileSystemNode(const Common::String& path) {
 //	consolePrintf("--%s ",path.c_str());
 
 	char disp[128];
@@ -70,7 +71,7 @@
 
 	strcpy(disp, pathStr + lastSlash + 1);
 
-	_displayName = String(disp);
+	_displayName = Common::String(disp);
 	_path = path;
 //	_isValid = true;
 //	_isDirectory = false;
@@ -98,7 +99,7 @@
 //	consolePrintf("%s - Found: %d, Dir: %d\n", pathStr, _isValid, _isDirectory);
 }
 
-DSFileSystemNode::DSFileSystemNode(const String& path, bool isDir) {
+DSFileSystemNode::DSFileSystemNode(const Common::String& path, bool isDir) {
 //	consolePrintf("--%s ",path.c_str());
 
 	char disp[128];
@@ -112,7 +113,7 @@
 
 	strcpy(disp, pathStr + lastSlash + 1);
 
-	_displayName = String(disp);
+	_displayName = Common::String(disp);
 	_path = path;
 	_isValid = true;
 	_isDirectory = isDir;
@@ -167,10 +168,10 @@
 			_zipFile->getFileName(n);
 
 //			consolePrintf("file: %s\n", n);
-			if ( (_zipFile->isDirectory() && ((mode == FilesystemNode::kListDirectoriesOnly) || (mode == FilesystemNode::kListAll)) )
-				|| (!_zipFile->isDirectory() && ((mode == FilesystemNode::kListFilesOnly) || (mode == FilesystemNode::kListAll)) ) )
+			if ( (_zipFile->isDirectory() && ((mode == Common::FilesystemNode::kListDirectoriesOnly) || (mode == Common::FilesystemNode::kListAll)) )
+				|| (!_zipFile->isDirectory() && ((mode == Common::FilesystemNode::kListFilesOnly) || (mode == Common::FilesystemNode::kListAll)) ) )
 			{
-				DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/" + String(n), _zipFile->isDirectory());
+				DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/" + Common::String(n), _zipFile->isDirectory());
 				dsfsn->_isDirectory = _zipFile->isDirectory();
 				dirList.push_back((dsfsn));
 			}
@@ -195,7 +196,7 @@
 			}
 		}
 
-		p = new DSFileSystemNode(String(path, lastSlash));
+		p = new DSFileSystemNode(Common::String(path, lastSlash));
 		((DSFileSystemNode *) (p))->_isDirectory = true;
 	} else {
 		p = new DSFileSystemNode();
@@ -204,6 +205,14 @@
 	return p;
 }
 
+Common::SeekableReadStream *DSFileSystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *DSFileSystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
 //////////////////////////////////////////////////////////////////////////
 // GBAMPFileSystemNode - File system using GBA Movie Player and CF card //
 //////////////////////////////////////////////////////////////////////////
@@ -216,7 +225,7 @@
 	_path = "mp:/";
 }
 
-GBAMPFileSystemNode::GBAMPFileSystemNode(const String& path) {
+GBAMPFileSystemNode::GBAMPFileSystemNode(const Common::String& path) {
 //	consolePrintf("'%s'",path.c_str());
 
 	char disp[128];
@@ -245,13 +254,13 @@
 	}
 //	consolePrintf("Path: %s  (%d)\n", check, success);
 
-	_displayName = String(disp);
+	_displayName = Common::String(disp);
 	_path = path;
 	_isValid = success == FT_FILE;
 	_isDirectory = success == FT_DIR;
 }
 
-GBAMPFileSystemNode::GBAMPFileSystemNode(const String& path, bool isDirectory) {
+GBAMPFileSystemNode::GBAMPFileSystemNode(const Common::String& path, bool isDirectory) {
 //	consolePrintf("'%s'",path.c_str());
 
 	char disp[128];
@@ -265,7 +274,7 @@
 
 	strcpy(disp, pathStr + lastSlash + 1);
 
-	_displayName = String(disp);
+	_displayName = Common::String(disp);
 	_path = path;
 	_isValid = true;
 	_isDirectory = isDirectory;
@@ -313,8 +322,8 @@
 
 	while (entryType != TYPE_NO_MORE) {
 
-		if ( ((entryType == TYPE_DIR) && ((mode == FilesystemNode::kListDirectoriesOnly) || (mode == FilesystemNode::kListAll)))
-		||   ((entryType == TYPE_FILE) && ((mode == FilesystemNode::kListFilesOnly) || (mode == FilesystemNode::kListAll))) ) {
+		if ( ((entryType == TYPE_DIR) && ((mode == Common::FilesystemNode::kListDirectoriesOnly) || (mode == Common::FilesystemNode::kListAll)))
+		||   ((entryType == TYPE_FILE) && ((mode == Common::FilesystemNode::kListFilesOnly) || (mode == Common::FilesystemNode::kListAll))) ) {
 			GBAMPFileSystemNode* dsfsn;
 
 			consolePrintf("Fname: %s\n", fname);
@@ -322,9 +331,9 @@
 			if (strcmp(fname, ".") && strcmp(fname, "..")) {
 
 				if (!strcmp(path, "/")) {
-					dsfsn = new GBAMPFileSystemNode("mp:" + String(path) + String(fname), entryType == TYPE_DIR);
+					dsfsn = new GBAMPFileSystemNode("mp:" + Common::String(path) + Common::String(fname), entryType == TYPE_DIR);
 				} else {
-					dsfsn = new GBAMPFileSystemNode("mp:" + String(path) + String("/") + String(fname), entryType == TYPE_DIR);
+					dsfsn = new GBAMPFileSystemNode("mp:" + Common::String(path) + Common::String("/") + Common::String(fname), entryType == TYPE_DIR);
 				}
 
 //				dsfsn->_isDirectory = entryType == DIR;
@@ -358,7 +367,7 @@
 			}
 		}
 
-		p = new GBAMPFileSystemNode(String(path, lastSlash));
+		p = new GBAMPFileSystemNode(Common::String(path, lastSlash));
 		p->_isDirectory = true;
 	} else {
 		p = new GBAMPFileSystemNode();
@@ -367,6 +376,14 @@
 	return p;
 }
 
+Common::SeekableReadStream *GBAMPFileSystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *GBAMPFileSystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
 // Stdio replacements
 #define MAX_FILE_HANDLES 32
 
@@ -399,6 +416,7 @@
 	if (DS::isGBAMPAvailable()) {
 		FAT_chdir("/");
 
+		// Turn all back slashes into forward slashes for gba_nds_fat
 		char* p = realName;
 		while (*p) {
 			if (*p == '\\') *p = '/';
@@ -422,8 +440,12 @@
 
 	// Allocate a file handle
 	int r = 0;
-	while (handle[r].used) r++;
+	while (handle[r].used) {
+		r++;
+		assert(r < MAX_FILE_HANDLES);
+	}
 
+#ifdef GBA_SRAM_SAVE
 	if (strchr(mode, 'w')) {
 //		consolePrintf("Writing %s\n", realName);
 		handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, true);
@@ -431,6 +453,7 @@
 //		consolePrintf("Reading %s\n", realName);
 		handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, false);
 	}
+#endif
 
 	if (handle[r].sramFile) {
 		handle[r].used = true;
@@ -512,69 +535,6 @@
 			return bytes / size;
 		}
 		return numItems;
-
-/*		int item = 0;
-		u8* data = (u8 *) ptr;
-		while ((item < numItems) && (!FAT_feof((FAT_FILE *) handle))) {
-
-
-			int bytes = 0;
-			while ((bytes < size) && (!FAT_feof((FAT_FILE *) handle))) {
-				*data++ = FAT_fgetc((FAT_FILE *) handle);
-				bytes++;
-			}
-
-			item++;
-
-		}
-
-		return item;
-*/
-		int items = 0;
-
-		//for (int r = 0; r < numItems; r++) {
-			if (!std_feof(handle)) {
-/*				for (int t = 0; t < size; t++) {
-					if (feof(handle)) eof = true;
-					*(((char *) (ptr)) + r * size + t) = getc(handle);
-				}*/
-				int left = size * numItems;
-				int bytesRead = -1;
-
-				while ((left > 0) && (!FAT_feof((FAT_FILE *) handle))) {
-					int amount = left > 8192? 8192: left;
-//					do {
-						bytesRead = FAT_fread((void *) ptr, 1, amount, (FAT_FILE *) handle);
-/*						if (bytesRead == 0) {
-							consolePrintf("Pos:%d items:%d num:%d amount:%d read:%d\n", ftell(handle), items, numItems, amount, bytesRead);
-							left++;
-
-							int pos = ftell(handle);
-
-							fseek(handle, 0, SEEK_SET);
-							int c = getc(handle);
-							fseek(handle, pos - 1024, SEEK_SET);
-							fread(ptr, 1024, 1, handle);
-							swiWaitForVBlank();
-							//while (true);
-						}
-
-					} while (bytesRead == 0);
-*/
-					left -= bytesRead;
-					ptr = ((char *) (ptr)) + bytesRead;
-				}
-
-				items = numItems - (left / size);
-
-//				FAT_fread((void *) ptr, size, 1, ((int) (handle)) - 1);
-//				ptr = ((char *) (ptr)) + size;
-			}
-//		}
-
-//		consolePrintf("...done %d \n", items)
-
-		return items;
 	}
 
 	if (handle->sramFile) {
@@ -641,10 +601,6 @@
 	}
 }
 
-void std_fprintf(FILE* handle, const char* fmt, ...) {
-	consolePrintf(fmt);
-}
-
 bool std_feof(FILE* handle) {
 //	consolePrintf("feof ");
 
@@ -660,44 +616,12 @@
 	return handle->pos >= handle->size;
 }
 
-void std_fflush(FILE* handle) {
+int std_fflush(FILE* handle) {
 	//FIXME: not implemented?
 //	consolePrintf("fflush ");
+	return 0;
 }
 
-char* std_fgets(char* str, int size, FILE* file) {
-//	consolePrintf("fgets file=%d ", file);
-
-	if (DS::isGBAMPAvailable()) {
-		char* s = str;
-		while ((*s++ = std_getc(file)) >= 32) {
-//			consolePrintf("%d ", *s);
-		}
-		*s = 0;
-
-//		consolePrintf("Read:%s\n", str);
-
-		return str;
-	}
-
-	if (file->sramFile) {
-		file->pos--;
-		int p = -1;
-		do {
-			file->pos++;
-			p++;
-			file->sramFile->read((char *) &str[p], 1);
-//			consolePrintf("%d,", str[p]);
-		} while ((str[p] >= 32) && (!std_feof(file)) && (p < size));
-		str[p + 1] = 0;
-		file->pos++;
-//		consolePrintf("Read:%s\n", str);
-		return str;
-	}
-
-	return NULL;
-}
-
 long int std_ftell(FILE* handle) {
 	if (DS::isGBAMPAvailable()) {
 		return FAT_ftell((FAT_FILE *) handle);
@@ -731,92 +655,20 @@
 	return 0;
 }
 
+int std_ferror(FILE* handle) {
+	//FIXME: not implemented?
+//	consolePrintf("ferror ");
+	return 0;
+}
+
 void std_clearerr(FILE* handle) {
 	//FIXME: not implemented?
 //	consolePrintf("clearerr ");
 }
 
-int std_getc(FILE* handle) {
-	if (DS::isGBAMPAvailable()) {
-		char c;
-		FAT_fread(&c, 1, 1, (FAT_FILE *) handle);
-
-		return c;
-	}
-
-//	consolePrintf("fgetc ");
-	return 0;				// Not supported yet
+void std_fprintf(FILE* handle, const char* fmt, ...) {
+	consolePrintf(fmt);
 }
 
-char* std_getcwd(char* dir, int dunno) {
-//	consolePrintf("getcwd ");
-	dir[0] = '\0';
-	return dir;			// Not supported yet
-}
 
-void std_cwd(char* dir) {
-	char buffer[128];
-	strcpy(buffer, dir);
-	char* realName = buffer;
-
-	if (DS::isGBAMPAvailable()) {
-		if ((strlen(dir) >= 4) && (dir[0] == 'm') && (dir[1] == 'p') && (dir[2] == ':') && (dir[3] == '/')) {
-			realName += 4;
-		}
-
-	//	consolePrintf("Real cwd:%d\n", realName);
-
-		char* p = realName;
-		while (*p) {
-			if (*p == '\\') *p = '/';
-			p++;
-		}
-
-	//	consolePrintf("Real cwd:%d\n", realName);
-		FAT_chdir(realName);
-	} else {
-		if ((strlen(dir) >= 4) && (dir[0] == 'd') && (dir[1] == 's') && (dir[2] == ':') && (dir[3] == '/')) {
-			realName += 4;
-		}
-
-		char* p = realName;
-		while (*p) {
-			if (*p == '\\') *p = '/';
-			p++;
-		}
-
-		strcpy(currentDir, realName);
-		if (*(currentDir + strlen(currentDir) - 1) == '/') {
-			*(currentDir + strlen(currentDir) - 1) = '\0';
-		}
-//		consolePrintf("CWD: %s\n", currentDir);
-	}
-}
-
-int std_ferror(FILE* handle) {
-	return 0;
-}
-
 } // namespace DS
-
-/**
- * Returns the last component of a given path.
- *
- * Examples:
- *			/foo/bar.txt would return /bar.txt
- *			/foo/bar/    would return /bar/
- *
- * @param str String containing the path.
- * @return Pointer to the first char of the last component inside str.
- */
-const char *lastPathComponent(const Common::String &str) {
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '/' && *cur != '\\') {
-		--cur;
-	}
-
-	return cur + 1;
-}
-

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ds/ds-fs.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -41,12 +41,10 @@
  */
 class DSFileSystemNode : public AbstractFilesystemNode {
 protected:
-	typedef class Common::String String;
-
 	static ZipFile* _zipFile;
 
-	String _displayName;
-	String _path;
+	Common::String _displayName;
+	Common::String _path;
 	bool _isDirectory;
 	bool _isValid;
 
@@ -61,7 +59,7 @@
 	 *
 	 * @param path String with the path the new node should point to.
 	 */
-	DSFileSystemNode(const String &path);
+	DSFileSystemNode(const Common::String &path);
 
 	/**
 	 * Creates a DSFilesystemNode for a given path.
@@ -69,7 +67,7 @@
 	 * @param path String with the path the new node should point to.
 	 * @param path true if path is a directory, false otherwise.
 	 */
-	DSFileSystemNode(const String& path, bool isDir);
+	DSFileSystemNode(const Common::String& path, bool isDir);
 
 	/**
 	 * Copy constructor.
@@ -77,9 +75,9 @@
 	DSFileSystemNode(const DSFileSystemNode *node);
 
 	virtual bool exists() const { return true; }		//FIXME: this is just a stub
-	virtual String getDisplayName() const {  return _displayName; }
-	virtual String getName() const {  return _displayName; }
-	virtual String getPath() const { return _path; }
+	virtual Common::String getDisplayName() const {  return _displayName; }
+	virtual Common::String getName() const {  return _displayName; }
+	virtual Common::String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
 	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
@@ -89,9 +87,12 @@
 	 */
 	virtual AbstractFilesystemNode *clone() const { return new DSFileSystemNode(this); }
 	virtual AbstractFilesystemNode *getChild(const Common::String& name) const;
-	virtual bool getChildren(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly, bool hidden = false) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
 
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
+
 	/**
 	 * Returns the zip file this node points to.
 	 * TODO: check this documentation.
@@ -107,10 +108,8 @@
  */
 class GBAMPFileSystemNode : public AbstractFilesystemNode {
 protected:
-	typedef class Common::String String;
-
-	String _displayName;
-	String _path;
+	Common::String _displayName;
+	Common::String _path;
 	bool _isDirectory;
 	bool _isValid;
 
@@ -125,7 +124,7 @@
 	 *
 	 * @param path String with the path the new node should point to.
 	 */
-	GBAMPFileSystemNode(const String &path);
+	GBAMPFileSystemNode(const Common::String &path);
 
 	/**
 	 * Creates a DSFilesystemNode for a given path.
@@ -133,7 +132,7 @@
 	 * @param path String with the path the new node should point to.
 	 * @param path true if path is a directory, false otherwise.
 	 */
-	GBAMPFileSystemNode(const String &path, bool isDirectory);
+	GBAMPFileSystemNode(const Common::String &path, bool isDirectory);
 
 	/**
 	 * Copy constructor.
@@ -141,9 +140,9 @@
 	GBAMPFileSystemNode(const GBAMPFileSystemNode *node);
 
 	virtual bool exists() const { return _isValid || _isDirectory; }
-	virtual String getDisplayName() const {  return _displayName; }
-	virtual String getName() const {  return _displayName; }
-	virtual String getPath() const { return _path; }
+	virtual Common::String getDisplayName() const {  return _displayName; }
+	virtual Common::String getName() const {  return _displayName; }
+	virtual Common::String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
 	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
@@ -153,8 +152,11 @@
 	 */
 	virtual AbstractFilesystemNode *clone() const { return new GBAMPFileSystemNode(this); }
 	virtual AbstractFilesystemNode *getChild(const Common::String& name) const;
-	virtual bool getChildren(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly, bool hidden = false) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
+
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
 };
 
 struct fileHandle {
@@ -179,15 +181,14 @@
 // Please do not remove any of these prototypes that appear not to be required.
 FILE*	std_fopen(const char* name, const char* mode);
 void	std_fclose(FILE* handle);
-int		std_getc(FILE* handle);
 size_t	std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle);
 size_t	std_fwrite(const void* ptr, size_t size, size_t numItems, FILE* handle);
 bool	std_feof(FILE* handle);
 long int std_ftell(FILE* handle);
 int		std_fseek(FILE* handle, long int offset, int whence);
 void	std_clearerr(FILE* handle);
-void	std_cwd(char* dir);
-void	std_fflush(FILE* handle);
+int		std_fflush(FILE* handle);
+int		std_ferror(FILE* handle);
 
 } //namespace DS
 

Modified: scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -36,7 +36,7 @@
 	return new PalmOSFilesystemNode();
 }
 
-AbstractFilesystemNode *PalmOSFilesystemFactory::makeFileNodePath(const String &path) const {
+AbstractFilesystemNode *PalmOSFilesystemFactory::makeFileNodePath(const Common::String &path) const {
 	return new PalmOSFilesystemNode(path);
 }
 #endif

Modified: scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -35,11 +35,9 @@
  */
 class PalmOSFilesystemFactory : public FilesystemFactory, public Common::Singleton<PalmOSFilesystemFactory> {
 public:
-	typedef Common::String String;
-
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 
 protected:
 	PalmOSFilesystemFactory() {};

Modified: scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/palmos/palmos-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -28,6 +28,7 @@
 #include "globals.h"
 
 #include "backends/fs/abstract-fs.h"
+#include "backends/fs/stdiostream.h"
 
 /**
  * Implementation of the ScummVM file system API based on PalmOS VFS API.
@@ -36,8 +37,8 @@
  */
 class PalmOSFilesystemNode : public AbstractFilesystemNode {
 protected:
-	String _displayName;
-	String _path;
+	Common::String _displayName;
+	Common::String _path;
 	bool _isDirectory;
 	bool _isValid;
 	bool _isPseudoRoot;
@@ -51,22 +52,25 @@
 	/**
 	 * Creates a POSIXFilesystemNode for a given path.
 	 *
-	 * @param path String with the path the new node should point to.
+	 * @param path Common::String with the path the new node should point to.
 	 */
-	PalmOSFilesystemNode(const String &p);
+	PalmOSFilesystemNode(const Common::String &p);
 
 	virtual bool exists() const { return _isValid; }
-	virtual String getDisplayName() const { return _displayName; }
-	virtual String getName() const { return _displayName; }
-	virtual String getPath() const { return _path; }
+	virtual Common::String getDisplayName() const { return _displayName; }
+	virtual Common::String getName() const { return _displayName; }
+	virtual Common::String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
 	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
 
-	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
 	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
 
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
+
 private:
 	/**
 	 * Adds a single WindowsFilesystemNode to a given list.
@@ -74,44 +78,20 @@
 	 *
 	 * @param list List to put the file entry node in.
 	 * @param mode Mode to use while adding the file entry to the list.
-	 * @param base String with the directory being listed.
+	 * @param base Common::String with the directory being listed.
 	 * @param find_data Describes a file that the FindFirstFile, FindFirstFileEx, or FindNextFile functions find.
 	 */
 	static void addFile(AbstractFSList &list, ListMode mode, const Char *base, FileInfoType* find_data);
 };
 
-/**
- * Returns the last component of a given path.
- *
- * Examples:
- *			/foo/bar.txt would return /bar.txt
- *			/foo/bar/    would return /bar/
- *
- * @param str String containing the path.
- * @return Pointer to the first char of the last component inside str.
- */
-const char *lastPathComponent(const Common::String &str) {
-	if(str.empty())
-		return "";
-
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '/') {
-		--cur;
-	}
-
-	return cur + 1;
-}
-
 void PalmOSFilesystemNode::addFile(AbstractFSList &list, ListMode mode, const char *base, FileInfoType* find_data) {
 	PalmOSFilesystemNode entry;
 	bool isDir;
 
 	isDir = (find_data->attributes & vfsFileAttrDirectory);
 
-	if ((!isDir && mode == FilesystemNode::kListDirectoriesOnly) ||
-		(isDir && mode == FilesystemNode::kListFilesOnly))
+	if ((!isDir && mode == Common::FilesystemNode::kListDirectoriesOnly) ||
+		(isDir && mode == Common::FilesystemNode::kListFilesOnly))
 		return;
 
 	entry._isDirectory = isDir;
@@ -136,9 +116,9 @@
 	_isPseudoRoot = false;
 }
 
-PalmOSFilesystemNode::PalmOSFilesystemNode(const String &p) {
+PalmOSFilesystemNode::PalmOSFilesystemNode(const Common::String &p) {
 	_path = p;
-	_displayName = lastPathComponent(_path);
+	_displayName = lastPathComponent(_path, '/');
 
 	UInt32 attr;
 	FileRef handle;
@@ -159,10 +139,10 @@
 	_isPseudoRoot = false;
 }
 
-AbstractFilesystemNode *PalmOSFilesystemNode::getChild(const String &n) const {
+AbstractFilesystemNode *PalmOSFilesystemNode::getChild(const Common::String &n) const {
 	assert(_isDirectory);
 
-	String newPath(_path);
+	Common::String newPath(_path);
 	if (_path.lastChar() != '/')
 		newPath += '/';
 	newPath += n;
@@ -215,17 +195,25 @@
 
 	if (!_isPseudoRoot) {
 		const char *start = _path.c_str();
-		const char *end = lastPathComponent(_path);
+		const char *end = lastPathComponent(_path, '/');
 
 		p = new PalmOSFilesystemNode();
-		p->_path = String(start, end - start);
+		p->_path = Common::String(start, end - start);
 		p->_isValid = true;
 		p->_isDirectory = true;
-		p->_displayName = lastPathComponent(p->_path);
+		p->_displayName = lastPathComponent(p->_path, '/');
 		p->_isPseudoRoot =(p->_path == "/");
 	}
 
 	return p;
 }
 
+Common::SeekableReadStream *PalmOSFilesystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *PalmOSFilesystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
 #endif // PALMOS_MODE

Modified: scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -26,19 +26,18 @@
 #include "backends/fs/posix/posix-fs-factory.h"
 #include "backends/fs/posix/posix-fs.cpp"
 
-DECLARE_SINGLETON(POSIXFilesystemFactory);
-
 AbstractFilesystemNode *POSIXFilesystemFactory::makeRootFileNode() const {
-	return new POSIXFilesystemNode();
+	return new POSIXFilesystemNode("/");
 }
 
 AbstractFilesystemNode *POSIXFilesystemFactory::makeCurrentDirectoryFileNode() const {
 	char buf[MAXPATHLEN];
 	getcwd(buf, MAXPATHLEN);
-	return new POSIXFilesystemNode(buf, true);
+	return new POSIXFilesystemNode(buf);
 }
 
-AbstractFilesystemNode *POSIXFilesystemFactory::makeFileNodePath(const String &path) const {
-	return new POSIXFilesystemNode(path, true);
+AbstractFilesystemNode *POSIXFilesystemFactory::makeFileNodePath(const Common::String &path) const {
+	assert(!path.empty());
+	return new POSIXFilesystemNode(path);
 }
 #endif

Modified: scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -25,7 +25,6 @@
 #ifndef POSIX_FILESYSTEM_FACTORY_H
 #define POSIX_FILESYSTEM_FACTORY_H
 
-#include "common/singleton.h"
 #include "backends/fs/fs-factory.h"
 
 /**
@@ -33,19 +32,10 @@
  *
  * Parts of this class are documented in the base interface class, FilesystemFactory.
  */
-class POSIXFilesystemFactory : public FilesystemFactory, public Common::Singleton<POSIXFilesystemFactory> {
-public:
-	typedef Common::String String;
-
+class POSIXFilesystemFactory : public FilesystemFactory {
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
-
-protected:
-	POSIXFilesystemFactory() {};
-
-private:
-	friend class Common::Singleton<SingletonBaseType>;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 };
 
 #endif /*POSIX_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -24,86 +24,21 @@
 
 #if defined(UNIX)
 
-#include "backends/fs/abstract-fs.h"
+#include "backends/fs/posix/posix-fs.h"
+#include "backends/fs/stdiostream.h"
+#include "common/algorithm.h"
 
-#ifdef MACOSX
-#include <sys/types.h>
-#endif
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <dirent.h>
 #include <stdio.h>
-#include <unistd.h>
 
-/**
- * Implementation of the ScummVM file system API based on POSIX.
- *
- * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
- */
-class POSIXFilesystemNode : public AbstractFilesystemNode {
-protected:
-	Common::String _displayName;
-	Common::String _path;
-	bool _isDirectory;
-	bool _isValid;
+#ifdef __OS2__
+#define INCL_DOS
+#include <os2.h>
+#endif
 
-public:
-	/**
-	 * Creates a POSIXFilesystemNode with the root node as path.
-	 */
-	POSIXFilesystemNode();
 
-	/**
-	 * Creates a POSIXFilesystemNode for a given path.
-	 *
-	 * @param path String with the path the new node should point to.
-	 * @param verify true if the isValid and isDirectory flags should be verified during the construction.
-	 */
-	POSIXFilesystemNode(const Common::String &path, bool verify);
-
-	virtual bool exists() const { return access(_path.c_str(), F_OK) == 0; }
-	virtual Common::String getDisplayName() const { return _displayName; }
-	virtual Common::String getName() const { return _displayName; }
-	virtual Common::String getPath() const { return _path; }
-	virtual bool isDirectory() const { return _isDirectory; }
-	virtual bool isReadable() const { return access(_path.c_str(), R_OK) == 0; }
-	virtual bool isWritable() const { return access(_path.c_str(), W_OK) == 0; }
-
-	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
-	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
-	virtual AbstractFilesystemNode *getParent() const;
-
-private:
-	/**
-	 * Tests and sets the _isValid and _isDirectory flags, using the stat() function.
-	 */
-	virtual void setFlags();
-};
-
-/**
- * Returns the last component of a given path.
- *
- * Examples:
- *			/foo/bar.txt would return /bar.txt
- *			/foo/bar/    would return /bar/
- *
- * @param str String containing the path.
- * @return Pointer to the first char of the last component inside str.
- */
-const char *lastPathComponent(const Common::String &str) {
-	if(str.empty())
-		return "";
-
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '/') {
-		--cur;
-	}
-
-	return cur + 1;
-}
-
 void POSIXFilesystemNode::setFlags() {
 	struct stat st;
 
@@ -111,15 +46,7 @@
 	_isDirectory = _isValid ? S_ISDIR(st.st_mode) : false;
 }
 
-POSIXFilesystemNode::POSIXFilesystemNode() {
-	// The root dir.
-	_path = "/";
-	_displayName = _path;
-	_isValid = true;
-	_isDirectory = true;
-}
-
-POSIXFilesystemNode::POSIXFilesystemNode(const Common::String &p, bool verify) {
+POSIXFilesystemNode::POSIXFilesystemNode(const Common::String &p) {
 	assert(p.size() > 0);
 
 	// Expand "~/" to the value of the HOME env variable
@@ -134,30 +61,85 @@
 	} else {
 		_path = p;
 	}
+	
+#ifdef __OS2__
+	// On OS/2, 'X:/' is a root of drive X, so we should not remove that last
+	// slash.
+	if (!(_path.size() == 3 && _path.hasSuffix(":/")))
+#endif
+	// Normalize the path (that is, remove unneeded slashes etc.)
+	_path = Common::normalizePath(_path, '/');
+	_displayName = Common::lastPathComponent(_path, '/');
 
-	_displayName = lastPathComponent(_path);
+	// TODO: should we turn relative paths into absolute ones?
+	// Pro: Ensures the "getParent" works correctly even for relative dirs.
+	// Contra: The user may wish to use (and keep!) relative paths in his
+	//   config file, and converting relative to absolute paths may hurt him...
+	//
+	// An alternative approach would be to change getParent() to work correctly
+	// if "_path" is the empty string.
+#if 0
+	if (!_path.hasPrefix("/")) {
+		char buf[MAXPATHLEN+1];
+		getcwd(buf, MAXPATHLEN);
+		strcat(buf, "/");
+		_path = buf + _path;
+	}
+#endif
+	// TODO: Should we enforce that the path is absolute at this point?
+	//assert(_path.hasPrefix("/"));
 
-	if (verify) {
-		setFlags();
-	}
+	setFlags();
 }
 
 AbstractFilesystemNode *POSIXFilesystemNode::getChild(const Common::String &n) const {
-	// FIXME: Pretty lame implementation! We do no error checking to speak
-	// of, do not check if this is a special node, etc.
+	assert(!_path.empty());
 	assert(_isDirectory);
+	
+	// Make sure the string contains no slashes
+	assert(!n.contains('/'));
 
+	// We assume here that _path is already normalized (hence don't bother to call
+	//  Common::normalizePath on the final path).
 	Common::String newPath(_path);
 	if (_path.lastChar() != '/')
 		newPath += '/';
 	newPath += n;
 
-	return new POSIXFilesystemNode(newPath, true);
+	return makeNode(newPath);
 }
 
 bool POSIXFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool hidden) const {
 	assert(_isDirectory);
 
+#ifdef __OS2__
+	if (_path == "/") {
+		// Special case for the root dir: List all DOS drives
+		ULONG ulDrvNum;
+		ULONG ulDrvMap;
+	
+		DosQueryCurrentDisk(&ulDrvNum, &ulDrvMap);
+	
+		for (int i = 0; i < 26; i++) {
+			if (ulDrvMap & 1) {
+				char drive_root[] = "A:/";
+				drive_root[0] += i;
+	
+                POSIXFilesystemNode *entry = new POSIXFilesystemNode();
+				entry->_isDirectory = true;
+				entry->_isValid = true;
+				entry->_path = drive_root;
+				entry->_displayName = "[" + Common::String(drive_root, 2) + "]";
+				myList.push_back(entry);
+			}
+	
+			ulDrvMap >>= 1;
+		}
+		
+		return true;
+	}
+#endif
+
 	DIR *dirp = opendir(_path.c_str());
 	struct dirent *dp;
 
@@ -175,13 +157,13 @@
 			continue;
 		}
 
-		Common::String newPath(_path);
-		if (newPath.lastChar() != '/')
-			newPath += '/';
-		newPath += dp->d_name;
+		// Start with a clone of this node, with the correct path set
+		POSIXFilesystemNode entry(*this);
+		entry._displayName = dp->d_name;
+		if (_path.lastChar() != '/')
+			entry._path += '/';
+		entry._path += entry._displayName;
 
-		POSIXFilesystemNode entry(newPath, false);
-
 #if defined(SYSTEM_NOT_SUPPORTING_D_TYPE)
 		/* TODO: d_type is not part of POSIX, so it might not be supported
 		 * on some of our targets. For those systems where it isn't supported,
@@ -215,13 +197,10 @@
 			continue;
 
 		// Honor the chosen mode
-		if ((mode == FilesystemNode::kListFilesOnly && entry._isDirectory) ||
-			(mode == FilesystemNode::kListDirectoriesOnly && !entry._isDirectory))
+		if ((mode == Common::FilesystemNode::kListFilesOnly && entry._isDirectory) ||
+			(mode == Common::FilesystemNode::kListDirectoriesOnly && !entry._isDirectory))
 			continue;
 
-		if (entry._isDirectory)
-			entry._path += "/";
-
 		myList.push_back(new POSIXFilesystemNode(entry));
 	}
 	closedir(dirp);
@@ -231,12 +210,39 @@
 
 AbstractFilesystemNode *POSIXFilesystemNode::getParent() const {
 	if (_path == "/")
-		return 0;
+		return 0;	// The filesystem root has no parent
 
+#ifdef __OS2__
+    if (_path.size() == 3 && _path.hasSuffix(":/"))
+        // This is a root directory of a drive
+        return makeNode("/");   // return a virtual root for a list of drives
+#endif
+
 	const char *start = _path.c_str();
-	const char *end = lastPathComponent(_path);
+	const char *end = start + _path.size();
+	
+	// Strip of the last component. We make use of the fact that at this
+	// point, _path is guaranteed to be normalized
+	while (end > start && *(end-1) != '/')
+		end--;
 
-	return new POSIXFilesystemNode(Common::String(start, end - start), true);
+	if (end == start) {
+		// This only happens if we were called with a relative path, for which
+		// there simply is no parent.
+		// TODO: We could also resolve this by assuming that the parent is the
+		//       current working directory, and returning a node referring to that.
+		return 0;
+	}
+
+	return makeNode(Common::String(start, end));
 }
 
+Common::SeekableReadStream *POSIXFilesystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *POSIXFilesystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
 #endif //#if defined(UNIX)

Copied: scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.h (from rev 34603, scummvm/trunk/backends/fs/posix/posix-fs.h)
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.h	                        (rev 0)
+++ scummvm/branches/gsoc2008-gui/backends/fs/posix/posix-fs.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -0,0 +1,86 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ */
+
+#ifndef POSIX_FILESYSTEM_H
+#define POSIX_FILESYSTEM_H
+
+#include "backends/fs/abstract-fs.h"
+
+#ifdef MACOSX
+#include <sys/types.h>
+#endif
+#include <unistd.h>
+
+/**
+ * Implementation of the ScummVM file system API based on POSIX.
+ *
+ * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
+ */
+class POSIXFilesystemNode : public AbstractFilesystemNode {
+protected:
+	Common::String _displayName;
+	Common::String _path;
+	bool _isDirectory;
+	bool _isValid;
+	
+	virtual AbstractFilesystemNode *makeNode(const Common::String &path) const {
+		return new POSIXFilesystemNode(path);
+	}
+	
+	/**
+	 * Plain constructor, for internal use only (hence protected).
+	 */
+	POSIXFilesystemNode() : _isDirectory(false), _isValid(false) {}
+
+public:
+	/**
+	 * Creates a POSIXFilesystemNode for a given path.
+	 *
+	 * @param path the path the new node should point to.
+	 */
+	POSIXFilesystemNode(const Common::String &path);
+
+	virtual bool exists() const { return access(_path.c_str(), F_OK) == 0; }
+	virtual Common::String getDisplayName() const { return _displayName; }
+	virtual Common::String getName() const { return _displayName; }
+	virtual Common::String getPath() const { return _path; }
+	virtual bool isDirectory() const { return _isDirectory; }
+	virtual bool isReadable() const { return access(_path.c_str(), R_OK) == 0; }
+	virtual bool isWritable() const { return access(_path.c_str(), W_OK) == 0; }
+
+	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
+	virtual AbstractFilesystemNode *getParent() const;
+
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
+
+private:
+	/**
+	 * Tests and sets the _isValid and _isDirectory flags, using the stat() function.
+	 */
+	virtual void setFlags();
+};
+
+#endif /*POSIX_FILESYSTEM_H*/

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -36,7 +36,7 @@
 	return new Ps2FilesystemNode();
 }
 
-AbstractFilesystemNode *Ps2FilesystemFactory::makeFileNodePath(const String &path) const {
+AbstractFilesystemNode *Ps2FilesystemFactory::makeFileNodePath(const Common::String &path) const {
 	// return new Ps2FilesystemNode(path);
 
 	Ps2FilesystemNode *nf = new Ps2FilesystemNode(path, true);

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -35,11 +35,9 @@
  */
 class Ps2FilesystemFactory : public FilesystemFactory, public Common::Singleton<Ps2FilesystemFactory> {	
 public:
-	typedef Common::String String;
-		
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 	
 protected:
 	Ps2FilesystemFactory() {};

Modified: scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/ps2/ps2-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -23,6 +23,7 @@
  */
 
 #include "backends/fs/abstract-fs.h"
+#include "backends/fs/stdiostream.h"
 #include <kernel.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -47,8 +48,8 @@
 friend class Ps2FilesystemFactory;
 
 protected:
-	String _displayName;
-	String _path;
+	Common::String _displayName;
+	Common::String _path;
 	bool _isDirectory;
 	bool _isRoot;
 
@@ -65,10 +66,10 @@
 	/**
 	 * Creates a PS2FilesystemNode for a given path.
 	 * 
-	 * @param path String with the path the new node should point to.
+	 * @param path Common::String with the path the new node should point to.
 	 */
-	Ps2FilesystemNode(const String &path);
-	Ps2FilesystemNode(const String &path, bool verify);
+	Ps2FilesystemNode(const Common::String &path);
+	Ps2FilesystemNode(const Common::String &path, bool verify);
 	
 	/**
 	 * Copy constructor.
@@ -77,9 +78,9 @@
 
 	virtual bool exists(void) const;
 
-	virtual String getDisplayName() const { return _displayName; }
-	virtual String getName() const { return _displayName; }
-	virtual String getPath() const { return _path; }
+	virtual Common::String getDisplayName() const { return _displayName; }
+	virtual Common::String getName() const { return _displayName; }
+	virtual Common::String getPath() const { return _path; }
 
 	virtual bool isDirectory() const {
 		return _isDirectory;
@@ -95,33 +96,14 @@
 	}
 
 	virtual AbstractFilesystemNode *clone() const { return new Ps2FilesystemNode(this); }
-	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
 	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
+
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
 };
 
-/**
- * Returns the last component of a given path.
- * 
- * @param str String containing the path.
- * @return Pointer to the first char of the last component inside str.
- */
-const char *lastPathComponent(const Common::String &str) {
-	if (str.empty())
-		return "";
-
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '/' && *cur != ':') {
-		--cur;
-	}
-
-	printf("romeo : lastPathComponent = %s\n", cur + 1);
-
-	return cur + 1;
-}
-
 Ps2FilesystemNode::Ps2FilesystemNode() {
 	_isDirectory = true;
 	_isRoot = true;
@@ -129,12 +111,12 @@
 	_path = "";
 }
 
-Ps2FilesystemNode::Ps2FilesystemNode(const String &path) {
+Ps2FilesystemNode::Ps2FilesystemNode(const Common::String &path) {
 	_path = path;
 	_isDirectory = true;
 	if (strcmp(path.c_str(), "") == 0) {
 		_isRoot = true;
-		_displayName = String("PlayStation 2");
+		_displayName = Common::String("PlayStation 2");
 	} else {
 		_isRoot = false;
 		const char *dsplName = NULL, *pos = path.c_str();
@@ -142,18 +124,18 @@
 			if (*pos++ == '/')
 				dsplName = pos;
 		if (dsplName)
-			_displayName = String(dsplName);
+			_displayName = Common::String(dsplName);
 		else
 			_displayName = getDeviceDescription(path.c_str());
 	}
 }
 
-Ps2FilesystemNode::Ps2FilesystemNode(const String &path, bool verify) {
+Ps2FilesystemNode::Ps2FilesystemNode(const Common::String &path, bool verify) {
 	_path = path;
 
 	if (strcmp(path.c_str(), "") == 0) {
 		_isRoot = true; /* root is always a dir*/
-		_displayName = String("PlayStation 2");
+		_displayName = Common::String("PlayStation 2");
 		_isDirectory = true;
 	} else {
 		_isRoot = false;
@@ -163,7 +145,7 @@
 				dsplName = pos;
 
 		if (dsplName) {
-			_displayName = String(dsplName);
+			_displayName = Common::String(dsplName);
 			if (verify)
 				_isDirectory = getDirectoryFlag(path.c_str());
 			else
@@ -228,7 +210,7 @@
 	return false;
 }
 
-AbstractFilesystemNode *Ps2FilesystemNode::getChild(const String &n) const {
+AbstractFilesystemNode *Ps2FilesystemNode::getChild(const Common::String &n) const {
 	if (!_isDirectory)
 		return NULL;
 
@@ -306,9 +288,9 @@
 			while ((dreadRes = fio.dread(fd, &dirent)) > 0) {
 				if (dirent.name[0] == '.')
 					continue; // ignore '.' and '..'
-				if (((mode == FilesystemNode::kListDirectoriesOnly) && (dirent.stat.mode & FIO_S_IFDIR)) ||
-					((mode == FilesystemNode::kListFilesOnly) && !(dirent.stat.mode & FIO_S_IFDIR)) ||
-					(mode == FilesystemNode::kListAll)) {
+				if (((mode == Common::FilesystemNode::kListDirectoriesOnly) && (dirent.stat.mode & FIO_S_IFDIR)) ||
+					((mode == Common::FilesystemNode::kListFilesOnly) && !(dirent.stat.mode & FIO_S_IFDIR)) ||
+					(mode == Common::FilesystemNode::kListAll)) {
 
 					dirEntry._isDirectory = (bool)(dirent.stat.mode & FIO_S_IFDIR);
 					dirEntry._isRoot = false;
@@ -344,7 +326,7 @@
 	}
 
 	if (slash)
-		return new Ps2FilesystemNode(String(_path.c_str(), slash - _path.c_str()));
+		return new Ps2FilesystemNode(Common::String(_path.c_str(), slash - _path.c_str()));
 	else
 		return new Ps2FilesystemNode();
 }
@@ -359,3 +341,10 @@
 		return "Harddisk";	
 }
 
+Common::SeekableReadStream *Ps2FilesystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *Ps2FilesystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}

Modified: scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -36,7 +36,7 @@
 	return new PSPFilesystemNode();
 }
 
-AbstractFilesystemNode *PSPFilesystemFactory::makeFileNodePath(const String &path) const {
+AbstractFilesystemNode *PSPFilesystemFactory::makeFileNodePath(const Common::String &path) const {
 	return new PSPFilesystemNode(path, true);
 }
 #endif

Modified: scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -35,11 +35,9 @@
  */
 class PSPFilesystemFactory : public FilesystemFactory, public Common::Singleton<PSPFilesystemFactory> {
 public:
-	typedef Common::String String;
-
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 
 protected:
 	PSPFilesystemFactory() {};

Modified: scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/psp/psp-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -26,6 +26,7 @@
 
 #include "engines/engine.h"
 #include "backends/fs/abstract-fs.h"
+#include "backends/fs/stdiostream.h"
 
 #include <sys/stat.h>
 #include <unistd.h>
@@ -39,8 +40,8 @@
  */
 class PSPFilesystemNode : public AbstractFilesystemNode {
 protected:
-	String _displayName;
-	String _path;
+	Common::String _displayName;
+	Common::String _path;
 	bool _isDirectory;
 	bool _isValid;
 
@@ -53,48 +54,27 @@
 	/**
 	 * Creates a PSPFilesystemNode for a given path.
 	 *
-	 * @param path String with the path the new node should point to.
+	 * @param path Common::String with the path the new node should point to.
 	 * @param verify true if the isValid and isDirectory flags should be verified during the construction.
 	 */
 	PSPFilesystemNode(const Common::String &p, bool verify);
 
 	virtual bool exists() const { return access(_path.c_str(), F_OK) == 0; }
-	virtual String getDisplayName() const { return _displayName; }
-	virtual String getName() const { return _displayName; }
-	virtual String getPath() const { return _path; }
+	virtual Common::String getDisplayName() const { return _displayName; }
+	virtual Common::String getName() const { return _displayName; }
+	virtual Common::String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual bool isReadable() const { return access(_path.c_str(), R_OK) == 0; }
 	virtual bool isWritable() const { return access(_path.c_str(), W_OK) == 0; }
 
-	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
 	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
+
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
 };
 
-/**
- * Returns the last component of a given path.
- *
- * Examples:
- *			/foo/bar.txt would return /bar.txt
- *			/foo/bar/    would return /bar/
- *
- * @param str String containing the path.
- * @return Pointer to the first char of the last component inside str.
- */
-const char *lastPathComponent(const Common::String &str) {
-	if(str.empty())
-		return "";
-
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '/') {
-		--cur;
-	}
-
-	return cur + 1;
-}
-
 PSPFilesystemNode::PSPFilesystemNode() {
 	_isDirectory = true;
 	_displayName = "Root";
@@ -106,7 +86,7 @@
 	assert(p.size() > 0);
 
 	_path = p;
-	_displayName = lastPathComponent(_path);
+	_displayName = lastPathComponent(_path, '/');
 	_isValid = true;
 	_isDirectory = true;
 
@@ -117,12 +97,12 @@
 	}
 }
 
-AbstractFilesystemNode *PSPFilesystemNode::getChild(const String &n) const {
+AbstractFilesystemNode *PSPFilesystemNode::getChild(const Common::String &n) const {
 	// FIXME: Pretty lame implementation! We do no error checking to speak
 	// of, do not check if this is a special node, etc.
 	assert(_isDirectory);
 
-	String newPath(_path);
+	Common::String newPath(_path);
 	if (_path.lastChar() != '/')
 		newPath += '/';
 	newPath += n;
@@ -157,8 +137,8 @@
 				entry._path += "/";
 
 			// Honor the chosen mode
-			if ((mode == FilesystemNode::kListFilesOnly && entry._isDirectory) ||
-			   (mode == FilesystemNode::kListDirectoriesOnly && !entry._isDirectory))
+			if ((mode == Common::FilesystemNode::kListFilesOnly && entry._isDirectory) ||
+			   (mode == Common::FilesystemNode::kListDirectoriesOnly && !entry._isDirectory))
 				continue;
 
 			myList.push_back(new PSPFilesystemNode(entry));
@@ -176,9 +156,17 @@
 		return 0;
 
 	const char *start = _path.c_str();
-	const char *end = lastPathComponent(_path);
+	const char *end = lastPathComponent(_path, '/');
 
-	return new PSPFilesystemNode(String(start, end - start), false);
+	return new PSPFilesystemNode(Common::String(start, end - start), false);
 }
 
+Common::SeekableReadStream *PSPFilesystemNode::openForReading() {
+	return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *PSPFilesystemNode::openForWriting() {
+	return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
 #endif //#ifdef __PSP__

Copied: scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.cpp (from rev 34603, scummvm/trunk/backends/fs/stdiostream.cpp)
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -0,0 +1,161 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#include "backends/fs/stdiostream.h"
+
+#include <errno.h>
+
+#if defined(MACOSX) || defined(IPHONE)
+#include "CoreFoundation/CoreFoundation.h"
+#endif
+
+
+#ifdef __PLAYSTATION2__
+	// for those replaced fopen/fread/etc functions
+	typedef unsigned long	uint64;
+	typedef signed long	int64;
+	#include "backends/platform/ps2/fileio.h"
+
+	#define fopen(a, b)			ps2_fopen(a, b)
+	#define fclose(a)			ps2_fclose(a)
+	#define fseek(a, b, c)			ps2_fseek(a, b, c)
+	#define ftell(a)			ps2_ftell(a)
+	#define feof(a)				ps2_feof(a)
+	#define fread(a, b, c, d)		ps2_fread(a, b, c, d)
+	#define fwrite(a, b, c, d)		ps2_fwrite(a, b, c, d)
+
+	//#define fprintf				ps2_fprintf	// used in common/util.cpp
+	//#define fflush(a)			ps2_fflush(a)	// used in common/util.cpp
+
+	//#define fgetc(a)			ps2_fgetc(a)	// not used
+	//#define fgets(a, b, c)			ps2_fgets(a, b, c)	// not used
+	//#define fputc(a, b)			ps2_fputc(a, b)	// not used
+	//#define fputs(a, b)			ps2_fputs(a, b)	// not used
+
+	//#define fsize(a)			ps2_fsize(a)	// not used -- and it is not a standard function either
+#endif
+
+#ifdef __DS__
+
+	// These functions replace the standard library functions of the same name.
+	// As this header is included after the standard one, I have the chance to #define
+	// all of these to my own code.
+	//
+	// A #define is the only way, as redefinig the functions would cause linker errors.
+
+	// These functions need to be #undef'ed, as their original definition
+	// in devkitarm is done with #includes (ugh!)
+	#undef feof
+	#undef clearerr
+	//#undef getc
+	//#undef ferror
+
+	#include "backends/fs/ds/ds-fs.h"
+
+
+	// Only functions used in the ScummVM source have been defined here!
+	#define fopen(name, mode)					DS::std_fopen(name, mode)
+	#define fclose(handle)						DS::std_fclose(handle)
+	#define fread(ptr, size, items, file)		DS::std_fread(ptr, size, items, file)
+	#define fwrite(ptr, size, items, file)		DS::std_fwrite(ptr, size, items, file)
+	#define feof(handle)						DS::std_feof(handle)
+	#define ftell(handle)						DS::std_ftell(handle)
+	#define fseek(handle, offset, whence)		DS::std_fseek(handle, offset, whence)
+	#define clearerr(handle)					DS::std_clearerr(handle)
+	#define fflush(file)						DS::std_fflush(file)
+	#define ferror(handle)						DS::std_ferror(handle)
+
+#endif
+
+StdioStream::StdioStream(void *handle) : _handle(handle) {
+	assert(handle);
+}
+
+StdioStream::~StdioStream() {
+	fclose((FILE *)_handle);
+}
+
+bool StdioStream::err() const {
+	return ferror((FILE *)_handle) != 0;
+}
+
+void StdioStream::clearErr() {
+	clearerr((FILE *)_handle);
+}
+
+bool StdioStream::eos() const {
+	return feof((FILE *)_handle) != 0;
+}
+
+int32 StdioStream::pos() const {
+	return ftell((FILE *)_handle);
+}
+
+int32 StdioStream::size() const {
+	int32 oldPos = ftell((FILE *)_handle);
+	fseek((FILE *)_handle, 0, SEEK_END);
+	int32 length = ftell((FILE *)_handle);
+	fseek((FILE *)_handle, oldPos, SEEK_SET);
+
+	return length;
+}
+
+bool StdioStream::seek(int32 offs, int whence) {
+	return fseek((FILE *)_handle, offs, whence) == 0;
+}
+
+uint32 StdioStream::read(void *ptr, uint32 len) {
+	return fread((byte *)ptr, 1, len, (FILE *)_handle);
+}
+
+uint32 StdioStream::write(const void *ptr, uint32 len) {
+	return fwrite(ptr, 1, len, (FILE *)_handle);
+}
+
+bool StdioStream::flush() {
+	return fflush((FILE *)_handle) == 0;
+}
+
+StdioStream *StdioStream::makeFromPath(const Common::String &path, bool writeMode) {
+	FILE *handle = fopen(path.c_str(), writeMode ? "wb" : "rb");
+
+#ifdef __amigaos4__
+	//
+	// Work around for possibility that someone uses AmigaOS "newlib" build
+	// with SmartFileSystem (blocksize 512 bytes), leading to buffer size
+	// being only 512 bytes. "Clib2" sets the buffer size to 8KB, resulting
+	// smooth movie playback. This forces the buffer to be enough also when
+	// using "newlib" compile on SFS.
+	//
+	if (handle && !writeMode) {
+		setvbuf(handle, NULL, _IOFBF, 8192);
+	}
+#endif
+
+
+	if (handle)
+		return new StdioStream(handle);
+	return 0;
+}

Copied: scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.h (from rev 34603, scummvm/trunk/backends/fs/stdiostream.h)
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.h	                        (rev 0)
+++ scummvm/branches/gsoc2008-gui/backends/fs/stdiostream.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef BACKENDS_FS_STDIOSTREAM_H
+#define BACKENDS_FS_STDIOSTREAM_H
+
+#include "common/scummsys.h"
+#include "common/noncopyable.h"
+#include "common/stream.h"
+#include "common/str.h"
+
+class StdioStream : public Common::SeekableReadStream, public Common::WriteStream, public Common::NonCopyable {
+protected:
+	/** File handle to the actual file. */
+	void *_handle;
+
+public:
+	/**
+	 * Given a path, invokes fopen on that path and wrap the result in a
+	 * StdioStream instance.
+	 */
+	static StdioStream *makeFromPath(const Common::String &path, bool writeMode);
+
+	StdioStream(void *handle);
+	virtual ~StdioStream();
+
+	bool err() const;
+	void clearErr();
+	bool eos() const;
+
+	virtual uint32 write(const void *dataPtr, uint32 dataSize);
+	virtual bool flush();
+
+	virtual int32 pos() const;
+	virtual int32 size() const;
+	bool seek(int32 offs, int whence = SEEK_SET);
+	uint32 read(void *dataPtr, uint32 dataSize);
+};
+
+#endif

Modified: scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -26,8 +26,6 @@
 #include "backends/fs/symbian/symbian-fs-factory.h"
 #include "backends/fs/symbian/symbian-fs.cpp"
 
-DECLARE_SINGLETON(SymbianFilesystemFactory);
-
 AbstractFilesystemNode *SymbianFilesystemFactory::makeRootFileNode() const {
 	return new SymbianFilesystemNode(true);
 }
@@ -38,7 +36,7 @@
 	return new SymbianFilesystemNode(path);
 }
 
-AbstractFilesystemNode *SymbianFilesystemFactory::makeFileNodePath(const String &path) const {
+AbstractFilesystemNode *SymbianFilesystemFactory::makeFileNodePath(const Common::String &path) const {
 	return new SymbianFilesystemNode(path);
 }
 #endif

Modified: scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.h
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.h	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs-factory.h	2008-09-20 11:21:35 UTC (rev 34606)
@@ -25,7 +25,6 @@
 #ifndef SYMBIAN_FILESYSTEM_FACTORY_H
 #define SYMBIAN_FILESYSTEM_FACTORY_H
 
-#include "common/singleton.h"
 #include "backends/fs/fs-factory.h"
 
 /**
@@ -33,19 +32,11 @@
  *
  * Parts of this class are documented in the base interface class, FilesystemFactory.
  */
-class SymbianFilesystemFactory : public FilesystemFactory, public Common::Singleton<SymbianFilesystemFactory> {
+class SymbianFilesystemFactory : public FilesystemFactory {
 public:
-	typedef Common::String String;
-
 	virtual AbstractFilesystemNode *makeRootFileNode() const;
 	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
-	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
-
-protected:
-	SymbianFilesystemFactory() {};
-
-private:
-	friend class Common::Singleton<SingletonBaseType>;
+	virtual AbstractFilesystemNode *makeFileNodePath(const Common::String &path) const;
 };
 
 #endif /*SYMBIAN_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs.cpp
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs.cpp	2008-09-20 10:32:59 UTC (rev 34605)
+++ scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbian-fs.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -24,12 +24,16 @@
 
 #if defined (__SYMBIAN32__)
 #include "backends/fs/abstract-fs.h"
+#include "backends/fs/symbian/symbianstream.h"
+#include "backends/platform/symbian/src/symbianos.h"
 
 #include <dirent.h>
 #include <eikenv.h>
 #include <f32file.h>
 #include <bautils.h>
 
+#define KDriveLabelSize 30
+
 /**
  * Implementation of the ScummVM file system API based on POSIX.
  *
@@ -37,12 +41,11 @@
  */
 class SymbianFilesystemNode : public AbstractFilesystemNode {
 protected:
-	String _displayName;
-	String _path;
-	bool _isDirectory;
-	bool _isValid;
-	bool _isPseudoRoot;
-
+	Common::String _displayName;
+	Common::String _path;
+	TBool _isDirectory;
+	TBool _isValid;
+	TBool _isPseudoRoot;
 public:
 	/**
 	 * Creates a SymbianFilesystemNode with the root node as path.
@@ -54,57 +57,36 @@
 	/**
 	 * Creates a SymbianFilesystemNode for a given path.
 	 *
-	 * @param path String with the path the new node should point to.
+	 * @param path Common::String with the path the new node should point to.
 	 */
-	SymbianFilesystemNode(const String &path);
+	SymbianFilesystemNode(const Common::String &path);
 
 	virtual bool exists() const {
 		TFileName fname;
-		TPtrC8 ptr((const unsigned char*)_path.c_str(),_path.size());
+		TPtrC8 ptr((const unsigned char*) _path.c_str(), _path.size());
 		fname.Copy(ptr);
-		TBool fileExists = BaflUtils::FileExists(CEikonEnv::Static()->FsSession(), fname);
+		TBool fileExists = BaflUtils::FileExists(static_cast<OSystem_SDL_Symbian*> (g_system)->FsSession(), fname);
 		return fileExists;
 	}
-	virtual String getDisplayName() const { return _displayName; }
-	virtual String getName() const { return _displayName; }
-	virtual String getPath() const { return _path; }
+	virtual Common::String getDisplayName() const { return _displayName; }
+	virtual Common::String getName() const { return _displayName; }
+	virtual Common::String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
 	virtual bool isReadable() const { return access(_path.c_str(), R_OK) == 0; }	//FIXME: this is just a stub
 	virtual bool isWritable() const { return access(_path.c_str(), W_OK) == 0; }	//FIXME: this is just a stub
 
-	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const Common::String &n) const;
 	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
 	virtual AbstractFilesystemNode *getParent() const;
+
+	virtual Common::SeekableReadStream *openForReading();
+	virtual Common::WriteStream *openForWriting();
 };
 
 /**
- * Returns the last component of a given path.
- *
- * Examples:
- *			c:\foo\bar.txt would return "\bar.txt"
- *			c:\foo\bar\    would return "\bar\"
- *
- * @param str Path to obtain the last component from.
- * @return Pointer to the first char of the last component inside str.
- */
-const char *lastPathComponent(const Common::String &str) {
-	if(str.empty())
-		return "";
-
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '\\') {
-		--cur;
-	}
-
-	return cur + 1;
-}
-
-/**
  * Fixes the path by changing all slashes to backslashes.
  *
- * @param path String with the path to be fixed.
+ * @param path Common::String with the path to be fixed.
  */
 static void fixFilePath(Common::String& aPath){
 	TInt len = aPath.size();
@@ -118,54 +100,47 @@
 
 SymbianFilesystemNode::SymbianFilesystemNode(bool aIsRoot) {
 	_path = "";
-	_isValid = true;
-	_isDirectory = true;
+	_isValid = ETrue;
+	_isDirectory = ETrue;
 	_isPseudoRoot = aIsRoot;
 	_displayName = "Root";
 
 }
 
-SymbianFilesystemNode::SymbianFilesystemNode(const String &path) {
+SymbianFilesystemNode::SymbianFilesystemNode(const Common::String &path) {
 	if (path.size() == 0)
-		_isPseudoRoot = true;
+		_isPseudoRoot = ETrue;
 	else
-		_isPseudoRoot = false;
+		_isPseudoRoot = EFalse;
 
 	_path = path;
 
 	fixFilePath(_path);
 
-	_displayName = lastPathComponent(_path);
+	_displayName = lastPathComponent(_path, '\\');
 
 	TEntry fileAttribs;
 	TFileName fname;
 	TPtrC8 ptr((const unsigned char*)_path.c_str(),_path.size());
 	fname.Copy(ptr);
 
-	if (CEikonEnv::Static()->FsSession().Entry(fname, fileAttribs) == KErrNone) {
-		_isValid = true;
+	if (static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession().Entry(fname, fileAttribs) == KErrNone) {
+		_isValid = ETrue;
 		_isDirectory = fileAttribs.IsDir();
 	} else {
-		_isValid = false;
-		_isDirectory = false;
+		_isValid = ETrue;
+		_isDirectory = EFalse;
 	}
 }
 
-AbstractFilesystemNode *SymbianFilesystemNode::getChild(const String &n) const {
+AbstractFilesystemNode *SymbianFilesystemNode::getChild(const Common::String &n) const {
 	assert(_isDirectory);
-	String newPath(_path);
+	Common::String newPath(_path);
 
 	if (_path.lastChar() != '\\')
 		newPath += '\\';
-	newPath += n;
 
-	TPtrC8 ptr((const unsigned char*) newPath.c_str(), newPath.size());
-	TFileName fname;
-	fname.Copy(ptr);
-	TBool isFolder = EFalse;
-	BaflUtils::IsFolder(CEikonEnv::Static()->FsSession(), fname, isFolder);
-	if (!isFolder)
-		return 0;
+	newPath += n;	
 
 	return new SymbianFilesystemNode(newPath);
 }
@@ -177,19 +152,19 @@
 
 	if (_isPseudoRoot) {
 		// Drives enumeration
-		RFs fs = CEikonEnv::Static()->FsSession();
+		RFs& fs = static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession();
 		TInt driveNumber;
 		TChar driveLetter;
 		TUint driveLetterValue;
 		TVolumeInfo volumeInfo;
-		TBuf8<30> driveLabel8;
-		TBuf8<30> driveString8;
+		TBuf8<KDriveLabelSize> driveLabel8;
+		TBuf8<KDriveLabelSize> driveString8;
 
 		for (driveNumber=EDriveA; driveNumber<=EDriveZ; driveNumber++) {
 			TInt err = fs.Volume(volumeInfo, driveNumber);
 			if (err != KErrNone)
 				continue;
-			if (fs.DriveToChar(driveNumber,driveLetter) != KErrNone)
+			if (fs.DriveToChar(driveNumber, driveLetter) != KErrNone)
 				continue;
 
 			driveLetterValue = driveLetter;
@@ -205,40 +180,46 @@
 			sprintf(path,"%c:\\", driveNumber+'A');
 
 			SymbianFilesystemNode entry(false);
-			entry._displayName = (char*)driveString8.PtrZ(); // drive_name
-			entry._isDirectory = true;
-			entry._isValid = true;
-			entry._isPseudoRoot = false;
+			entry._displayName = (char*) driveString8.PtrZ(); // drive_name
+			entry._isDirectory = ETrue;
+			entry._isValid = ETrue;
+			entry._isPseudoRoot = EFalse;
 			entry._path = path;
 			myList.push_back(new SymbianFilesystemNode(entry));
 		}
 	} else {
-		TPtrC8 ptr((const unsigned char*)_path.c_str(),_path.size());
+		TPtrC8 ptr((const unsigned char*) _path.c_str(), _path.size());
 		TFileName fname;
-		fname.Copy(ptr);
 		TBuf8<256>nameBuf;
 		CDir* dirPtr;
-		if (CEikonEnv::Static()->FsSession().GetDir(fname,KEntryAttNormal|KEntryAttDir,0,dirPtr)==KErrNone) {
+		fname.Copy(ptr);
+
+		if (_path.lastChar() != '\\')
+			fname.Append('\\');
+		
+		if (static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession().GetDir(fname, KEntryAttNormal|KEntryAttDir, 0, dirPtr) == KErrNone) {
 			CleanupStack::PushL(dirPtr);
 			TInt cnt=dirPtr->Count();
 			for (TInt loop=0;loop<cnt;loop++) {
 				TEntry fileentry=(*dirPtr)[loop];
 				nameBuf.Copy(fileentry.iName);
-				SymbianFilesystemNode entry(false);
-				entry._isPseudoRoot = false;
+				SymbianFilesystemNode entry(EFalse);
+				entry._isPseudoRoot = EFalse;
 
-				entry._displayName =(char*)nameBuf.PtrZ();
+				entry._displayName =(char*) nameBuf.PtrZ();
 				entry._path = _path;
-				entry._path +=(char*)nameBuf.PtrZ();
+
+				if (entry._path.lastChar() != '\\')
+					entry._path+= '\\';
+
+				entry._path +=(char*) nameBuf.PtrZ();
 				entry._isDirectory = fileentry.IsDir();
 
 				// Honor the chosen mode
-				if ((mode == FilesystemNode::kListFilesOnly && entry._isDirectory) ||
-					(mode == FilesystemNode::kListDirectoriesOnly && !entry._isDirectory))
+				if ((mode == Common::FilesystemNode::kListFilesOnly && entry._isDirectory) ||
+					(mode == Common::FilesystemNode::kListDirectoriesOnly && !entry._isDirectory))
 					continue;
-
-				if (entry._isDirectory)
-					entry._path += "\\";
+			
 				myList.push_back(new SymbianFilesystemNode(entry));
 			}
 			CleanupStack::PopAndDestroy(dirPtr);
@@ -254,21 +235,30 @@
 	// Root node is its own parent. Still we can't just return this
 	// as the GUI code will call delete on the old node.
 	if (!_isPseudoRoot && _path.size() > 3) {
-		p = new SymbianFilesystemNode(false);
+		p = new SymbianFilesystemNode(EFalse);
 		const char *start = _path.c_str();
-		const char *end = lastPathComponent(_path);
+		const char *end = lastPathComponent(_path, '\\');
 
-		p->_path = String(start, end - start);
-		p->_isValid = true;
-		p->_isDirectory = true;
-		p->_displayName = lastPathComponent(p->_path);
+		p->_path = Common::String(start, end - start);
+		p->_isValid = ETrue;
+		p->_isDirectory = ETrue;
+		p->_displayName = lastPathComponent(p->_path, '\\');
 	}
 	else
 	{
-		p = new SymbianFilesystemNode(true);
+		p = new SymbianFilesystemNode(ETrue);
 	}
 
 	return p;
 }
 
+Common::SeekableReadStream *SymbianFilesystemNode::openForReading() {
+	return SymbianStdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *SymbianFilesystemNode::openForWriting() {
+	return SymbianStdioStream::makeFromPath(getPath().c_str(), true);
+}
 #endif //#if defined (__SYMBIAN32__)
+
+

Copied: scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbianstream.cpp (from rev 34603, scummvm/trunk/backends/fs/symbian/symbianstream.cpp)
===================================================================
--- scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbianstream.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2008-gui/backends/fs/symbian/symbianstream.cpp	2008-09-20 11:21:35 UTC (rev 34606)
@@ -0,0 +1,274 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */	
+
+#include "common/scummsys.h"
+#include "backends/fs/symbian/symbianstream.h"
+#include "common/system.h"
+#include "backends/platform/symbian/src/symbianos.h"
+
+#include <f32file.h>
+
+#define KInputBufferLength 128
+
+// Symbian libc file functionality in order to provide shared file handles
+class TSymbianFileEntry {
+public:
+	RFile _fileHandle;
+	char _inputBuffer[KInputBufferLength];
+	TInt _inputBufferLen;
+	TInt _inputPos;
+	TInt _lastError;
+	TBool _eofReached;
+};
+
+TSymbianFileEntry*	CreateSymbianFileEntry(const char* name, const char* mode) {
+	TSymbianFileEntry* fileEntry = new TSymbianFileEntry;
+	fileEntry->_inputPos = KErrNotFound;
+	fileEntry->_lastError = 0;
+	fileEntry->_eofReached = EFalse;
+	
+	if (fileEntry != NULL) {
+		TInt modeLen = strlen(mode);
+
+		TPtrC8 namePtr((unsigned char*) name, strlen(name));
+		TFileName tempFileName;
+		tempFileName.Copy(namePtr);
+
+		TInt fileMode = EFileRead;
+
+		if (mode[0] == 'a')
+			fileMode = EFileWrite;
+
+		if (!((modeLen > 1 && mode[1] == 'b') || (modeLen > 2 && mode[2] == 'b'))) {
+			fileMode |= EFileStreamText;
+		}
+
+		if ((modeLen > 1 && mode[1] == '+') || (modeLen > 2 && mode[2] == '+')) {
+			fileMode = fileMode| EFileWrite;
+		}
+
+		fileMode = fileMode| EFileShareAny;
+
+		switch(mode[0]) {
+		case 'a':
+			if (fileEntry->_fileHandle.Open(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {
+				if (fileEntry->_fileHandle.Create(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {
+					delete fileEntry;
+					fileEntry = NULL;
+				}
+			}
+			break;
+		case 'r':
+			if (fileEntry->_fileHandle.Open(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list