diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2010-11-23 21:51:47 +0000 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2010-11-23 21:51:47 +0000 |
commit | 43fceec6d8ea5f0d0ee2875341ec92403508d714 (patch) | |
tree | 71d4d898976700bab5a8366fcaa1ca6e00a12f67 /src | |
parent | 9e3bee300875e1965a549ed1d5d85201d25a13e7 (diff) | |
download | 2010-netlemmings-43fceec6d8ea5f0d0ee2875341ec92403508d714.tar.gz 2010-netlemmings-43fceec6d8ea5f0d0ee2875341ec92403508d714.tar.bz2 2010-netlemmings-43fceec6d8ea5f0d0ee2875341ec92403508d714.zip |
Amélioration des tests et avancement du testfunc003. Il reste à récupérer la fionction load_image²
git-svn-id: file:///var/svn/2010-netlemmings/trunk@171 077b3477-7977-48bd-8428-443f22f7bfda
Diffstat (limited to 'src')
-rw-r--r-- | src/loader.c | 51 | ||||
-rw-r--r-- | src/parser/parse_ini.lex | 1 | ||||
-rw-r--r-- | src/test/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/test/testfunc_001_lex.c | 2 | ||||
-rwxr-xr-x | src/test/testfunc_001_lex.sh | 2 | ||||
-rw-r--r-- | src/test/testfunc_002_parse.c | 2 | ||||
-rwxr-xr-x | src/test/testfunc_002_parse.sh | 2 | ||||
-rw-r--r-- | src/test/testfunc_003_loadress.c | 15 | ||||
-rwxr-xr-x | src/test/testfunc_003_loadress.sh | 29 |
9 files changed, 76 insertions, 30 deletions
diff --git a/src/loader.c b/src/loader.c index 8c0154e..5a34a34 100644 --- a/src/loader.c +++ b/src/loader.c @@ -2,8 +2,14 @@ #include "loader.h" #include "utils.h" -#define PATH_STYLE "../styles/" +#define PATH_STYLE "../styles" +#define ccc_keyGif 0x00000000 + +SDL_Surface *loadImage(char *filepath, Uint32 colorKey) { +//FIXME Importer le vieux load_image ici ! + return (filepath[0]+colorKey)%1; +} int loadRessources(gameIni_t *gIni, gameRess_t *gRess) { int i; @@ -12,21 +18,46 @@ int loadRessources(gameIni_t *gIni, gameRess_t *gRess) { filepath = malloc(sizeof(char)*(strlen(PATH_STYLE)+strlen(gIni->style.name)+strlen("/om_00.gif")+1)); gRess->style.tiles=malloc(sizeof(SDL_Surface *)*gIni->style.tiles); - //(if null...) + if (gRess->style.tiles==NULL) { + logp(LOG_ERROR, "loadRessources(), malloc()"); + return 1; + } for(i=0; i < gIni->style.tiles ; ++i) { - sprintf(filepath, "%s/%s_%d.gif", PATH_STYLE, gIni->style.name, i); -//TODO gRess->style.tiles[i] = load_image(filepath,ccc_keyGif); + sprintf(filepath, "%s/%s/%s_%d.gif", PATH_STYLE, gIni->style.name, gIni->style.name, i); + gRess->style.tiles[i] = loadImage(filepath,ccc_keyGif); + if(gRess->style.tiles[i]==NULL) { + logs2(LOG_WARN, "loadRessources(), loadImage() error for ", filepath); + return 2; + } } gRess->style.objects=malloc(sizeof(SDL_Surface *)*gIni->style.objectCount); - //(if null...) + if (gRess->style.objects==NULL) { + logp(LOG_ERROR, "loadRessources(), malloc()"); + return 1; + } + gRess->style.objectMasks=malloc(sizeof(SDL_Surface *)*gIni->style.objectCount); - //(if null...) + if (gRess->style.objectMasks==NULL) { + logp(LOG_ERROR, "loadRessources(), malloc()"); + return 1; + } + + for(i=0; i < gIni->style.objectCount ; ++i) { - sprintf(filepath, "%s/%so_%d.gif", PATH_STYLE, gIni->style.name, i); -//TODO gRess->style.objects[i] = load_image(filepath,ccc_keyGif); - sprintf(filepath, "%s/%som_%d.gif", PATH_STYLE, gIni->style.name, i); -//TODO gRess->style.objectMasks[i] = load_image(filepath,ccc_keyGif); + sprintf(filepath, "%s/%s/%so_%d.gif", PATH_STYLE, gIni->style.name, gIni->style.name, i); + gRess->style.objects[i] = loadImage(filepath,ccc_keyGif); + if (gRess->style.objects[i]==NULL) { + logs2(LOG_WARN, "loadRessources(), loadImage() error for ", filepath); + return 2; + } + + sprintf(filepath, "%s/%s/%som_%d.gif", PATH_STYLE, gIni->style.name, gIni->style.name, i); + gRess->style.objectMasks[i] = loadImage(filepath,ccc_keyGif); + if (gRess->style.objectMasks[i]==NULL) { + logs2(LOG_WARN, "loadRessources(), loadImage() error for ", filepath); + return 2; + } } return 0; diff --git a/src/parser/parse_ini.lex b/src/parser/parse_ini.lex index 7b67af9..adaa070 100644 --- a/src/parser/parse_ini.lex +++ b/src/parser/parse_ini.lex @@ -95,6 +95,7 @@ COMMENT "#"[^\n]* "crazy_" { BEGIN(TYPE_OTHER); return DIFFICULTY; } "wicked_" { BEGIN(TYPE_OTHER); return DIFFICULTY; } "havoc_" { BEGIN(TYPE_OTHER); return DIFFICULTY; } +"pixels_" { BEGIN(TYPE_OTHER); return DIFFICULTY; } /* TYPE_* states for catching the '=' token and go in the right state machine for catching values */ diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 0695537..36c21eb 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -5,5 +5,5 @@ set(PARSER_FILES ../parser/lex.yy.c ../parser/y.tab.c) add_executable(testfunc_001_lex WIN32 testfunc_001_lex.c ${PARSER_FILES} ) add_executable(testfunc_002_parse WIN32 testfunc_002_parse.c ${PARSER_FILES} ) -add_executable(testfunc_003_loadress WIN32 testfunc_003_loadress.c ${PARSER_FILES} ../loader.c ) +add_executable(testfunc_003_loadress WIN32 testfunc_003_loadress.c ${PARSER_FILES} ../loader.c ../utils.c ) diff --git a/src/test/testfunc_001_lex.c b/src/test/testfunc_001_lex.c index 1938f5c..60146e4 100644 --- a/src/test/testfunc_001_lex.c +++ b/src/test/testfunc_001_lex.c @@ -13,7 +13,7 @@ int main(int argc, char **argv) { char *filepath=NULL; int res, pos, end; - if (argc<2) { + if (argc != 2) { fprintf(stderr, "Usage %s <ini_file>\n", argv[0]); return 1; } diff --git a/src/test/testfunc_001_lex.sh b/src/test/testfunc_001_lex.sh index e4be5e2..fdc96f6 100755 --- a/src/test/testfunc_001_lex.sh +++ b/src/test/testfunc_001_lex.sh @@ -12,7 +12,7 @@ function do_test() { fi if [ -n "$text" ] then echo "Erreur : spurious text : '$text'" - echo 253 + exit 253 fi done } diff --git a/src/test/testfunc_002_parse.c b/src/test/testfunc_002_parse.c index d0c4fcf..356b4d8 100644 --- a/src/test/testfunc_002_parse.c +++ b/src/test/testfunc_002_parse.c @@ -12,7 +12,7 @@ int main(int argc, char **argv) { int res, pos, end; gameIni_t gIni; - if (argc<2) { + if (argc != 2) { fprintf(stderr, "Usage %s <ini_file>\n", argv[0]); return 1; } diff --git a/src/test/testfunc_002_parse.sh b/src/test/testfunc_002_parse.sh index 3c60d43..29b7556 100755 --- a/src/test/testfunc_002_parse.sh +++ b/src/test/testfunc_002_parse.sh @@ -12,7 +12,7 @@ function do_test() { fi if [ -n "$text" ] then echo "Erreur : spurious text : '$text'" - echo 253 + exit 253 fi done } diff --git a/src/test/testfunc_003_loadress.c b/src/test/testfunc_003_loadress.c index a5af8d4..86e85ea 100644 --- a/src/test/testfunc_003_loadress.c +++ b/src/test/testfunc_003_loadress.c @@ -4,6 +4,7 @@ #include "parser.h" #include "loader.h" +#include "utils.h" #define PATH_STYLE "../styles" #define PATH_LEVEL "../level" @@ -22,15 +23,18 @@ void load_ini(gameIni_t *gIni, char *filepath) { } int main(int argc, char **argv) { + int res; char filepath[MAX_PATH_LEN]; gameIni_t gIni; gameRess_t gRess; if (argc != 3) { - fprintf(stderr, "Usage %s <levelpack_name> <level_number>\n", argv[0]); + fprintf(stderr, "Usage %s <levelpack_name> <ini_file>\n", argv[0]); return 1; } + openLog(NULL); + // Setting default values memset(&gIni,0,sizeof(gameIni_t)); @@ -39,7 +43,7 @@ int main(int argc, char **argv) { load_ini(&gIni, filepath); // Loading lvl ini file - snprintf(filepath, MAX_PATH_LEN, "%s/%s/lvl%04i.ini", PATH_LEVEL, argv[1], atoi(argv[2])); + snprintf(filepath, MAX_PATH_LEN, "%s/%s/%s", PATH_LEVEL, argv[1], argv[2]); load_ini(&gIni, filepath); // Check if we found a "style =" line in level ini file @@ -47,11 +51,16 @@ int main(int argc, char **argv) { fprintf(stderr, "No valid style detected\n"); exit(1); } + gIni.style.name=gIni.level.style; // Loading style ini file snprintf(filepath, MAX_PATH_LEN, "%s/%s/%s.ini", PATH_STYLE, gIni.level.style, gIni.level.style); load_ini(&gIni, filepath); - return loadRessources(&gIni, &gRess); + res=loadRessources(&gIni, &gRess); + + closeLog(NULL); + + return res; } diff --git a/src/test/testfunc_003_loadress.sh b/src/test/testfunc_003_loadress.sh index e5678ea..a5a3bcf 100755 --- a/src/test/testfunc_003_loadress.sh +++ b/src/test/testfunc_003_loadress.sh @@ -1,20 +1,25 @@ #!/bin/bash function do_test() { - text=$($*) - res=$? + text=$($*) + res=$? - if [ $res -ne 0 ] - then echo "Erreur : code retour $res" - exit $res - fi - if [ -n "$text" ] - then echo "Erreur : spurious text : '$text'" - echo 253 - fi + if [ $res -ne 0 ] + then echo "Erreur : code retour $res" + exit $res + fi + if [ -n "$text" ] + then echo "Erreur : spurious text : '$text'" + exit 253 + fi } -for l in $(seq 1 50) +find ../level -mindepth 1 -maxdepth 1 -type d | while read lp do - do_test src/test/testfunc_003_loadress 1_orig $l + find $lp -type f -name *.ini | while read l + do + do_test src/test/testfunc_003_loadress $(basename $lp) $(basename $l) + done + res=$? + [ $res -ne 0 ] && exit $res done |