summaryrefslogtreecommitdiff
authorzecke <zecke>2004-11-15 14:36:25 (UTC)
committer zecke <zecke>2004-11-15 14:36:25 (UTC)
commit2423fe1ba41caf6977afaf7df3156522b54db819 (patch) (unidiff)
treec6b6a8952c41c9677150a281c5698655a18e652d
parent5e6ce0ba567dd9c8ae33353fcf1d0554b34241e8 (diff)
downloadopie-2423fe1ba41caf6977afaf7df3156522b54db819.zip
opie-2423fe1ba41caf6977afaf7df3156522b54db819.tar.gz
opie-2423fe1ba41caf6977afaf7df3156522b54db819.tar.bz2
-Safe the replay via Global::applicationFileName
-do not use char casts to go from string to char* but use QFile::encodeName so it works for non latin1 people as well
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/sfcave/sfcave.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/noncore/games/sfcave/sfcave.cpp b/noncore/games/sfcave/sfcave.cpp
index 5dca427..d5aa38a 100644
--- a/noncore/games/sfcave/sfcave.cpp
+++ b/noncore/games/sfcave/sfcave.cpp
@@ -1,19 +1,20 @@
1#include <stdio.h> 1#include <stdio.h>
2#include <stdlib.h> 2#include <stdlib.h>
3#include <math.h> 3#include <math.h>
4#include <time.h> 4#include <time.h>
5 5
6#include <opie2/oapplicationfactory.h> 6#include <opie2/oapplicationfactory.h>
7#include <qpe/config.h> 7#include <qpe/config.h>
8#include <qpe/global.h>
8 9
9#include <qapplication.h> 10#include <qapplication.h>
10#include <qdir.h> 11#include <qdir.h>
11 12
12#include "helpwindow.h" 13#include "helpwindow.h"
13#include "sfcave.h" 14#include "sfcave.h"
14 15
15#define CAPTION "SFCave 1.13 by AndyQ" 16#define CAPTION "SFCave 1.13 by AndyQ"
16 17
17#define UP_THRUST 0.6 18#define UP_THRUST 0.6
18#define NO_THRUST 0.8 19#define NO_THRUST 0.8
19#define MAX_DOWN_THRUST 4.0 20#define MAX_DOWN_THRUST 4.0
@@ -134,27 +135,25 @@ OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<SFCave> )
134 135
135SFCave :: SFCave( QWidget *w, const char *name, WFlags fl ) 136SFCave :: SFCave( QWidget *w, const char *name, WFlags fl )
136 : QMainWindow( w, name, fl ) 137 : QMainWindow( w, name, fl )
137 138
138{ 139{
139 showMaximized(); 140 showMaximized();
140 movel = true; 141 movel = true;
141 int spd = 3; 142 int spd = 3;
142 143
143 144
144 replayIt = 0; 145 replayIt = 0;
145 146
146 replayFile = QDir::home().path(); 147 replayFile = Global::applicationFileName("sfcave", "replay");
147 replayFile += "/sfcave.replay";
148 printf( "%s\n", (const char *)replayFile );
149 148
150 sWidth = width(); 149 sWidth = width();
151 sHeight = height(); 150 sHeight = height();
152 segSize = sWidth/(MAPSIZE-1)+1; 151 segSize = sWidth/(MAPSIZE-1)+1;
153 152
154 currentMenuNr = 0; 153 currentMenuNr = 0;
155 currentGameType = 0; 154 currentGameType = 0;
156 currentGameDifficulty = 0; 155 currentGameDifficulty = 0;
157 156
158 setCaption( CAPTION ); 157 setCaption( CAPTION );
159 showScoreZones = false; 158 showScoreZones = false;
160 159
@@ -915,28 +914,28 @@ void SFCave :: saveScore()
915 cfg.setGroup( "settings" ); 914 cfg.setGroup( "settings" );
916 QString key = "highScore_"; 915 QString key = "highScore_";
917 916
918 cfg.writeEntry( key + gameTypes[currentGameType] + "_" + dificultyOption[currentGameDifficulty], highestScore[currentGameType][currentGameDifficulty] ); 917 cfg.writeEntry( key + gameTypes[currentGameType] + "_" + dificultyOption[currentGameDifficulty], highestScore[currentGameType][currentGameDifficulty] );
919 key += CURRENT_GAME_TYPE; 918 key += CURRENT_GAME_TYPE;
920 cfg.writeEntry( key, highestScore[currentGameType] ); 919 cfg.writeEntry( key, highestScore[currentGameType] );
921#endif 920#endif
922} 921}
923 922
924void SFCave :: saveReplay() 923void SFCave :: saveReplay()
925{ 924{
926 FILE *out; 925 FILE *out;
927 out = fopen( (const char *)replayFile, "w" ); 926 out = fopen( QFile::encodeName(replayFile).data(), "w" );
928 if ( !out ) 927 if ( !out )
929 { 928 {
930 printf( "Couldn't write to /home/root/sfcave.replay\n" ); 929 printf( "Couldn't write to %s\n", QFile::encodeName(replayFile).data() );
931 return; 930 return;
932 } 931 }
933 932
934 // Build up string of values 933 // Build up string of values
935 // Format is:: <landscape seed> <game type> <difficulty> <framenr> <framenr>....... 934 // Format is:: <landscape seed> <game type> <difficulty> <framenr> <framenr>.......
936 QString val; 935 QString val;
937 val.sprintf( "%d %d %d ", currentSeed, currentGameType, currentGameDifficulty ); 936 val.sprintf( "%d %d %d ", currentSeed, currentGameType, currentGameDifficulty );
938 937
939 QListIterator<int> it( replayList ); 938 QListIterator<int> it( replayList );
940 while( it.current() ) 939 while( it.current() )
941 { 940 {
942 QString tmp; 941 QString tmp;
@@ -946,31 +945,31 @@ void SFCave :: saveReplay()
946 ++it; 945 ++it;
947 } 946 }
948 val += "\n"; 947 val += "\n";
949 948
950 QString line; 949 QString line;
951 line.sprintf( "%d\n", val.length() ); 950 line.sprintf( "%d\n", val.length() );
952 fwrite( (const char *)line, 1, line.length(), out ); 951 fwrite( (const char *)line, 1, line.length(), out );
953 952
954 fwrite( (const char *)val, 1, val.length(), out ); 953 fwrite( (const char *)val, 1, val.length(), out );
955 954
956 fclose( out ); 955 fclose( out );
957 956
958 printf( "Replay saved to %s\n", (const char *)replayFile ); 957 printf( "Replay saved to %s\n", QFile::encodeName(replayFile).data() );
959 958
960} 959}
961 960
962void SFCave :: loadReplay() 961void SFCave :: loadReplay()
963{ 962{
964 FILE *in = fopen( (const char *)replayFile, "r" ); 963 FILE *in = fopen( QFile::encodeName(replayFile).data() , "r" );
965 964
966 if ( in == 0 ) 965 if ( in == 0 )
967 { 966 {
968 printf( "Couldn't load replay file!\n" ); 967 printf( "Couldn't load replay file!\n" );
969 return; 968 return;
970 } 969 }
971 970
972 // Read next line - contains the size of the options 971 // Read next line - contains the size of the options
973 char line[10+1]; 972 char line[10+1];
974 fgets( line, 10, in ); 973 fgets( line, 10, in );
975 974
976 int length = -1; 975 int length = -1;
@@ -994,25 +993,25 @@ void SFCave :: loadReplay()
994 993
995 replayList.clear(); 994 replayList.clear();
996 for ( ; it != list.end(); ++it ) 995 for ( ; it != list.end(); ++it )
997 { 996 {
998 int v = (*it).toInt(); 997 int v = (*it).toInt();
999 replayList.append( new int( v ) ); 998 replayList.append( new int( v ) );
1000 } 999 }
1001 1000
1002 delete data; 1001 delete data;
1003 1002
1004 fclose( in ); 1003 fclose( in );
1005 1004
1006 printf( "Replay loaded from %s\n", (const char *)replayFile ); 1005 printf( "Replay loaded from %s\n", QFile::encodeName(replayFile).data() );
1007} 1006}
1008 1007
1009 1008
1010//--------------- MENU CODE --------------------- 1009//--------------- MENU CODE ---------------------
1011void SFCave :: handleMenuKeys( QKeyEvent *e ) 1010void SFCave :: handleMenuKeys( QKeyEvent *e )
1012{ 1011{
1013 switch( e->key() ) 1012 switch( e->key() )
1014 { 1013 {
1015 case Qt::Key_Down: 1014 case Qt::Key_Down:
1016 currentMenuOption[currentMenuNr] ++; 1015 currentMenuOption[currentMenuNr] ++;
1017 if ( menuOptions[currentMenuNr][currentMenuOption[currentMenuNr]] == "" ) 1016 if ( menuOptions[currentMenuNr][currentMenuOption[currentMenuNr]] == "" )
1018 currentMenuOption[currentMenuNr] = 0; 1017 currentMenuOption[currentMenuNr] = 0;