summaryrefslogtreecommitdiff
path: root/sdl-test
diff options
context:
space:
mode:
authorDamien Appert <dappert>2010-11-04 13:40:44 +0000
committerDamien Appert <dappert>2010-11-04 13:40:44 +0000
commitcfe6e4d7d3acf279bb958d2222d1f29fea6b777b (patch)
tree0a823a2ab38d3cb17a2dbf9ce1e6b401433885a0 /sdl-test
parent38b41dda4ad1296249eefcd306e3db77d9b42128 (diff)
download2010-netlemmings-cfe6e4d7d3acf279bb958d2222d1f29fea6b777b.tar.gz
2010-netlemmings-cfe6e4d7d3acf279bb958d2222d1f29fea6b777b.tar.bz2
2010-netlemmings-cfe6e4d7d3acf279bb958d2222d1f29fea6b777b.zip
generation de terrain done
git-svn-id: file:///var/svn/2010-netlemmings/trunk@134 077b3477-7977-48bd-8428-443f22f7bfda
Diffstat (limited to 'sdl-test')
-rw-r--r--sdl-test/SDL_tuto/TestParserLemmingsLVL/fonctions_non_integrees.c16
-rwxr-xr-xsdl-test/SDL_tuto/TestParserLemmingsLVL/genereTerrain.sh252
-rw-r--r--sdl-test/SDL_tuto/TestParserLemmingsLVL/parse_ini.yy3
-rw-r--r--sdl-test/SDL_tuto/chap5-transparence/test_gif/main.c4
4 files changed, 220 insertions, 55 deletions
diff --git a/sdl-test/SDL_tuto/TestParserLemmingsLVL/fonctions_non_integrees.c b/sdl-test/SDL_tuto/TestParserLemmingsLVL/fonctions_non_integrees.c
index a493559..febe413 100644
--- a/sdl-test/SDL_tuto/TestParserLemmingsLVL/fonctions_non_integrees.c
+++ b/sdl-test/SDL_tuto/TestParserLemmingsLVL/fonctions_non_integrees.c
@@ -2130,7 +2130,6 @@ int stateLemming(struct gameInit *gInit){
}
int test_FillRect( SDL_Surface *t, SDL_Rect *to, Uint32 ccc){
-
SDL_FillRect(t, to, ccc);
return 0;
}
@@ -2151,6 +2150,8 @@ int stateLemming(struct gameInit *gInit){
SDL_UnlockSurface(t);
SDL_UnlockSurface(spr);*/
+
+
SDL_BlitSurface(spr,fr1, t,to1);
/* SDL_LockSurface(spr);
memcpy(spr->pixels,temp_pixels,size);
@@ -2180,12 +2181,12 @@ int stateLemming(struct gameInit *gInit){
if(from.y<0 || from.y > spr->h) {
//-DEBUG-printf("simple y\n");
- return 345;
+ return 45;
}
if(from.x<0 || from.x > spr->w) {
//-DEBUG-printf("simple x\n");
- return 346;
+ return 46;
}
if(to.y<0 || to.y > t->h) {
@@ -2502,7 +2503,7 @@ int stateLemming(struct gameInit *gInit){
objetAnim.y = (anim_objet(
gInit->mapI.map.tabDataSprO[k->ID].anim,
type,
- i*3,
+ i*ANIM_STEP_FPS,
of,
&k->data.po->cptState,
gInit)
@@ -3216,18 +3217,21 @@ int lancement (){
test_FillRect( pStencil, NULL, ccc_bgStencil);
//paint_terrain => pTerrain
+
+
err=paint_terrain(&gInit,0);
if(err!=0){return err;}
SDL_SetColorKey(pTerrain, SDL_SRCCOLORKEY|SDL_RLEACCEL, gInit.mapI.map.cmap.bgColor);
-
test_blit(pStencil, NULL, pStencilFixe, NULL);
SDL_SetColorKey(pStencilFixe, SDL_SRCCOLORKEY, ccc_bgStencil);
+ //==>
+ //-->
err=paint_objet_stencil (&gInit,cptFps);
if(err!=0){return err;}
test_blit(pStencil, NULL, pStencilFixe, NULL);
-
+ //<--
//Tant que l'utilisateur n'a pas quitter
while( quit == 0 )
diff --git a/sdl-test/SDL_tuto/TestParserLemmingsLVL/genereTerrain.sh b/sdl-test/SDL_tuto/TestParserLemmingsLVL/genereTerrain.sh
index 53b9309..d5e53c0 100755
--- a/sdl-test/SDL_tuto/TestParserLemmingsLVL/genereTerrain.sh
+++ b/sdl-test/SDL_tuto/TestParserLemmingsLVL/genereTerrain.sh
@@ -1,59 +1,219 @@
#!/bin/sh
+path="../../../styles"
+style="unknown"
+numObjet="0"
+typeObjet="0"
+numTerrain="0"
+xObjet=0
+wObjet=0
+hObjet=0
+fObjet=1
+yObjet=200
+hDoor=$(($yObjet-100))
+yTerrain=$(($yObjet-$hDoor/2))
+cpt=0
+cptFrame=1
+cptT=0
+mode=0
+wTerrain=0
+stepTerrain=20
+> ./lvlStyleT.ini
+
echo "
-# LVL extracted by Lemmini #LVL0023.LVL
-releaseRate = 70
-numLemmings = 80
-numToRescue = 64
-timeLimit = 5
-numClimbers = 10
-numFloaters = 5
-numBombers = 5
-numBlockers = 10
-numBuilders = 10
-numBashers = 5
-numMiners = 5
-numDiggers = 5
-xPos = 1088
-style = snow
+# Terrain
+# id, xpos, ypos, modifier
+# modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
+" >> ./lvlStyleT.ini
+
+
+if [ $# -eq 1 ]
+ then
+ style=$1
+ if [ $(ls $path | grep -ce "^$style$") -ne 1 ]
+ then echo "Style [$style] unknown !"
+ exit 0
+ else echo "Style $style load"
+ fi
+ else
+ style="fire"
+ echo "Default: Style $style load"
+fi
+
+if [ $style = "brick" ]
+ then numTerrain=5
+ else
+ if [ $style = "bubble" ]
+ then numTerrain=49
+ else
+ if [ $style = "crystal" ]
+ then numTerrain=27
+ else
+ if [ $style = "dirt" ]
+ then numTerrain=29
+ else
+ if [ $style = "fire" ]
+ then numTerrain=1
+ else
+ if [ $style = "marble" ]
+ then numTerrain=9
+ else
+ if [ $style = "pillar" ]
+ then numTerrain=0
+ else
+ if [ $style = "rock" ]
+ then numTerrain=13
+ else
+ if [ $style = "snow" ]
+ then numTerrain=24
+ else
+ echo "special is't good for test !";
+ exit 0
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+
+wTerrain=$(giftopnm -comment $path/$style/$style"_"$numTerrain".gif" | head -n2 | tail -n1 | cut -f1 -d' ')
+
+echo "# LVL extracted by Lemmini #LVL0041.LVL
+releaseRate = 1
+numLemmings = 99
+numToRescue = 1
+timeLimit = 20
+numClimbers = 99
+numFloaters = 99
+numBombers = 99
+numBlockers = 99
+numBuilders = 99
+numBashers = 99
+numMiners = 99
+numDiggers = 99
+xPos = 200
+style = $style
# Objects
# id, xpos, ypos, paint mode (), upside down (0,1)
-# paint modes: 8=VIS_ON_TERRAIN, 4=NO_OVERWRITE, 0=FULL (only one value possible)
-object_0 = 5, 1376, 104, 4, 0
+# paint modes: 8=VIS_ON_TERRAIN, 4=NO_OVERWRITE, 0=FULL (only one value possible)" > ./lvlStyle.ini
-# Terrain
-# id, xpos, ypos, modifier
-# modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
-"
-for j in $(seq 0 4)
-do
-for i in $(seq 0 4)
+for i in $(grep "type_" $path/$style/$style.ini | tr ' ' '-')
do
- numT=$(($i+$j*5))
- x=$(($i*100))
- y=$(($j*100))
- echo "terrain_$numT = 23,$x,$y,0"
-done
+
+yObjet=200
+hDoor=$(($yObjet-100))
+yTerrain=$(($yObjet-$hDoor/2))
+
+numObjet=$(echo $i | tr '-' ' ' | cut -f2 -d'_' | cut -f1 -d' ')
+typeObjet=$(echo $i | tr '-' ' ' | cut -f2 -d'=' | cut -f2 -d' ')
+
+wObjet=$(giftopnm -comment $path/$style/$style"o_"$numObjet".gif" | head -n2 | tail -n1 | cut -f1 -d' ' )
+#echo $wObjet
+hObjet=$(giftopnm -comment $path/$style/$style"o_"$numObjet".gif" | head -n2 | tail -n1 | cut -f2 -d' ' )
+
+if [ $typeObjet -eq "5" ]
+ then mode=4
+ else
+ if [ $typeObjet -eq "6" ]
+ then mode=4
+ else
+ if [ $typeObjet -eq "7" ]
+ then mode=4
+ else mode=99
+ fi
+ fi
+fi
+
+if [ $mode -lt 99 ]
+ then
+
+ fObjet=$(grep "frames_$numObjet" $path/$style/$style.ini | cut -f2 -d'=' | cut -f2 -d' ')
+ cptFrame=0
+ #echo $fObjet
+ while [ "$cptFrame" -ne "$fObjet" -a "$cptFrame" -ne "99" ]
+ do
+ cptFrame=$(($cptFrame+1))
+ done
+ #echo $cptFrame
+ hObjet=$(($hObjet/$cptFrame))
+
+ #Entry
+ echo "object_$cpt = 1, $xObjet, $hDoor, $mode, 0" >> ./lvlStyle.ini
+ cpt=$(($cpt+1))
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> ./lvlStyleT.ini
+ xObjet=$(($xObjet + $stepTerrain))
+ cptT=$(($cptT+1))
+
+ for i in $(seq 1 13)
+ do
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> ./lvlStyleT.ini
+ xObjet=$(($xObjet + $stepTerrain))
+ yTerrain=$(($yTerrain+$i))
+ cptT=$(($cptT+1))
+ done
+
+ if [ "$cpt" -eq "1" ]
+ then
+ for i in $(seq 1 13)
+ do
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> ./lvlStyleT.ini
+ xObjet=$(($xObjet + $stepTerrain))
+ yTerrain=$(($yTerrain-$i))
+ cptT=$(($cptT+1))
+ done
+ else cptT=$cptT
+ fi
+
+ for i in $(seq 1 5)
+ do
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> ./lvlStyleT.ini
+ xObjet=$(($xObjet + $stepTerrain))
+ cptT=$(($cptT+1))
+ done
+
+ if [ $typeObjet -eq "5" ]
+ then yObjet=$(($yTerrain+$hObjet))
+ else
+ if [ $typeObjet -eq "6" ]
+ then yObjet=$(($yTerrain-$hObjet))
+ else
+ if [ $typeObjet -eq "7" ]
+ then yObjet=$(($yTerrain-$hObjet))
+ else yObjet=$yTerrain
+ fi
+ fi
+ fi
+
+ #Trap
+
+ yObjet=$(($yObjet-20))
+ for dep in $(seq 1 20)
+ do
+ yObjet=$(($yObjet+5))
+ xObjet=$(($xObjet+1))
+ echo "object_$cpt = $numObjet, $xObjet, $yObjet, $mode, 0" >> ./lvlStyle.ini
+ cpt=$(($cpt+1))
+ done
+
+
+ xObjet=$(($xObjet + $wObjet))
+
+ else
+ echo "objet $numObjet de type $typeObjet IGNORER"
+fi
+
done
-echo "terrain_9999 = 1,2000,2000,0"
-echo "
-#Steel
-# id, xpos, ypos, width, height
-steel_0 = 1328, 80, 128, 16
-steel_1 = 1336, 96, 120, 16
-steel_2 = 1344, 112, 112, 16
-steel_3 = 1344, 128, 112, 16
-steel_4 = 1360, 144, 96, 16
-steel_5 = 1368, 160, 88, 8
-steel_6 = 1456, 80, 88, 24
-steel_7 = 1456, 104, 80, 24
-steel_8 = 1456, 128, 64, 24
-steel_9 = 1456, 152, 64, 16
+
+cat ./lvlStyleT.ini >> ./lvlStyle.ini
+rm ./lvlStyleT.ini
#Name
-name = Watch out, there's traps about
-"
+echo "name = test $style
+" >> ./lvlStyle.ini
-exit 0;
+exit 0
diff --git a/sdl-test/SDL_tuto/TestParserLemmingsLVL/parse_ini.yy b/sdl-test/SDL_tuto/TestParserLemmingsLVL/parse_ini.yy
index b6ae4e5..91147f7 100644
--- a/sdl-test/SDL_tuto/TestParserLemmingsLVL/parse_ini.yy
+++ b/sdl-test/SDL_tuto/TestParserLemmingsLVL/parse_ini.yy
@@ -91,7 +91,7 @@
Uint32 ccc_gimp = 0xffffff;
//Blanc cursor
- Uint32 ccc_cursor = 0xffffff;
+ Uint32 ccc_cursor = 0x000000;
//Noir colorKeyGif
Uint32 ccc_keyGif = 0x000000;
// lemming color
@@ -984,6 +984,7 @@ int main (int argc, char **argv)
}}}*/
res=lancement();
+ printf("code retour %d\n",res);
//fclose(yyin); fait dans lancement
return res;
diff --git a/sdl-test/SDL_tuto/chap5-transparence/test_gif/main.c b/sdl-test/SDL_tuto/chap5-transparence/test_gif/main.c
index 3803427..3061898 100644
--- a/sdl-test/SDL_tuto/chap5-transparence/test_gif/main.c
+++ b/sdl-test/SDL_tuto/chap5-transparence/test_gif/main.c
@@ -106,8 +106,8 @@ int load_files()
}
//on charge l'image qu'on va appliquer sur le fond
- gif1 = load_image( "brick_10.gif" );
- gif2 = load_image( "brick_10_gimp.gif" );
+ gif1 = load_image( "crystal_21.gif" );//load_image( "brick_10.gif" );
+ gif2 = load_image( "lemm_0.gif" );//load_image( "brick_10_gimp.gif" );
//si l'image se charge mal
if( (gif1 == NULL) || (gif2 == NULL) )