diff options
author | Damien Appert <dappert> | 2010-11-04 13:40:44 +0000 |
---|---|---|
committer | Damien Appert <dappert> | 2010-11-04 13:40:44 +0000 |
commit | cfe6e4d7d3acf279bb958d2222d1f29fea6b777b (patch) | |
tree | 0a823a2ab38d3cb17a2dbf9ce1e6b401433885a0 /sdl-test | |
parent | 38b41dda4ad1296249eefcd306e3db77d9b42128 (diff) | |
download | 2010-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')
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) )
|