summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2010-11-23 21:51:47 +0000
committerLudovic Pouzenc <ludovic@pouzenc.fr>2010-11-23 21:51:47 +0000
commit43fceec6d8ea5f0d0ee2875341ec92403508d714 (patch)
tree71d4d898976700bab5a8366fcaa1ca6e00a12f67 /src
parent9e3bee300875e1965a549ed1d5d85201d25a13e7 (diff)
download2010-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.c51
-rw-r--r--src/parser/parse_ini.lex1
-rw-r--r--src/test/CMakeLists.txt2
-rw-r--r--src/test/testfunc_001_lex.c2
-rwxr-xr-xsrc/test/testfunc_001_lex.sh2
-rw-r--r--src/test/testfunc_002_parse.c2
-rwxr-xr-xsrc/test/testfunc_002_parse.sh2
-rw-r--r--src/test/testfunc_003_loadress.c15
-rwxr-xr-xsrc/test/testfunc_003_loadress.sh29
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