summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Appert <dappert>2010-12-22 20:22:30 +0000
committerDamien Appert <dappert>2010-12-22 20:22:30 +0000
commitda826d3bf832bf9440db1705d5aa4bdc64e96481 (patch)
tree2ef491098f291f4f5005a7430e68fc334c2f5b05
parent4804cc49c3e0308ddd47756c46c56dc43c8ecb00 (diff)
download2010-netlemmings-da826d3bf832bf9440db1705d5aa4bdc64e96481.tar.gz
2010-netlemmings-da826d3bf832bf9440db1705d5aa4bdc64e96481.tar.bz2
2010-netlemmings-da826d3bf832bf9440db1705d5aa4bdc64e96481.zip
script
git-svn-id: file:///var/svn/2010-netlemmings/trunk@209 077b3477-7977-48bd-8428-443f22f7bfda
-rwxr-xr-xscripts/genererTerrain.sh450
1 files changed, 450 insertions, 0 deletions
diff --git a/scripts/genererTerrain.sh b/scripts/genererTerrain.sh
new file mode 100755
index 0000000..c961fc7
--- /dev/null
+++ b/scripts/genererTerrain.sh
@@ -0,0 +1,450 @@
+#!/bin/bash -e
+
+echo "-- genererTerrain v2 --"
+echo "Initialisation des paramettres:"
+BASEPATH="$(dirname $0)/.."
+path="$BASEPATH/styles"
+echo "Creation du chemin vers les dossiers sytles ..."
+pathDst="$BASEPATH/level/3_test"
+echo "Creation du chemin vers le dossier 3_test ..."
+style="unknown"
+numObjet="0"
+typeObjet="0"
+numTerrain="0"
+numTerrainStop="0"
+echo "Initialisation des variables pour generer la map ..."
+xObjet=0
+wObjet=0
+hObjet=0
+fObjet=1
+hDoor=16
+yObjet=200
+yTerrain=106
+echo "Initialisation des variables pour positionner les terrain sur la map ..."
+cpt=0
+cptFrame=1
+cptT=0
+echo "Initialisation des compteurs pour l'execution du script ..."
+mode=0
+wTerrain=0
+hTerrainStop=0
+wTerrainStop=0
+stepTerrain=20
+numStyle=0
+echo "Initialisation des variables pour la répartition des objets sur la map ..."
+numObjetTest=99
+cptTestObjet=15
+echo "Initialisation des variables pour construire le test des objets sur la map ..."
+information=0
+
+
+> $pathDst/lvlTempT.ini
+echo "Creation d'un fichier temporaire pour stocker des données ..."
+
+echo "
+# Terrain
+# id, xpos, ypos, modifier
+# modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
+" >> $pathDst/lvlTempT.ini
+
+
+if [ $# -ge 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 [ $# -ge 2 ]
+ then
+ case $2 in
+ '-i' | '-information' )
+ information=1
+ ;;
+ *)
+ echo "USE : $0 <styleMap> [[<-i|-information>] <ID_objet> ] "
+ ;;
+ esac
+ else
+ information=$information
+fi
+
+if [ $# -ge 3 ]
+ then
+ numObjetTest=$3
+ if [ $(ls $path/$style | grep -ce "^$style""o_$numObjetTest.gif$") -ne 1 ]
+ then echo "Objet [$style""o_$numObjetTest.gif] unknown !";
+ numObjetTest=99;
+ echo "Default: All Object load"
+ else echo "Style $style""o_$numObjetTest.gif load";
+ echo "numObjetTest $numObjetTest"
+ fi
+ else
+ numObjetTest=99
+ echo "Default: All Object load"
+fi
+
+
+if [ $style = "brick" ]
+ then numTerrain=1;
+ numStyle=1;
+ numTerrainStop=30
+ else
+ if [ $style = "bubble" ]
+ then numTerrain=45;
+ numStyle=2
+ numTerrainStop=60
+ else
+ if [ $style = "crystal" ]
+ then numTerrain=27;
+ numStyle=3
+ numTerrainStop=32
+ else
+ if [ $style = "dirt" ]
+ then numTerrain=29;
+ numStyle=4
+ numTerrainStop=24
+ else
+ if [ $style = "fire" ]
+ then numTerrain=1;
+ numStyle=5
+ numTerrainStop=21
+ else
+ if [ $style = "marble" ]
+ then numTerrain=9;
+ numStyle=6
+ numTerrainStop=47
+ else
+ if [ $style = "pillar" ]
+ then numTerrain=44;
+ numStyle=7
+ numTerrainStop=13
+ else
+ if [ $style = "rock" ]
+ then numTerrain=13;
+ numStyle=8
+ numTerrainStop=46
+ else
+ if [ $style = "snow" ]
+ then numTerrain=31;
+ numStyle=9
+ numTerrainStop=16
+ 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' ')
+hTerrainStop=$(giftopnm -comment $path/$style/$style"_"$numTerrainStop".gif" | head -n2 | tail -n1 | cut -f2 -d' ')
+wTerrainStop=$(giftopnm -comment $path/$style/$style"_"$numTerrainStop".gif" | head -n2 | tail -n1 | cut -f1 -d' ')
+
+wTerrain=$(($wTerrain - ($wTerrain%2)))
+hTerrainStop=$(($hTerrainStop - ($hTerrainStop%2)))
+wTerrainStop=$(($wTerrainStop - ($wTerrainStop%2)))
+
+
+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)" > $pathDst/lvl200$numStyle.ini
+
+
+for k in $(grep "type_" $path/$style/$style.ini | tr ' ' '-')
+do
+
+ hDoor=16
+ yObjet=200
+ yTerrain=$(($hDoor+90))
+
+ for j in $(seq 1 $cptTestObjet)
+ do
+ #echo "j == $j"
+ #echo "numObjetTest ==> $numObjetTest"
+
+ if [ $numObjetTest -eq 99 ]
+ then numObjet=$(echo $k | tr '-' ' ' | cut -f2 -d'_' | cut -f1 -d' ')
+ else numObjet=$numObjetTest
+ fi
+ #echo "numObjet ==> $numObjet"
+ if [ $numObjetTest -eq 99 ]
+ then typeObjet=$(echo $k | tr '-' ' ' | cut -f2 -d'=' | cut -f2 -d' ' )
+ else typeObjet=$(grep "type_$numObjet" $path/$style/$style.ini | cut -f2 -d'=' | cut -f2 -d' ')
+ fi
+
+ typeObjet=$(echo "$typeObjet" | sed -e "s/\\n//g" | sed -e "s/\\r//g" )
+
+ #echo "typeObjet ==> $typeObjet"
+
+ 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' ' )
+
+ wObjet=$(($wObjet - ($wObjet%2)))
+ hObjet=$(($hObjet - ($hObjet%2)))
+
+
+ if [ $numObjetTest -ne 99 ]
+ then
+ if [ $typeObjet -eq "5" ]
+ then mode=4
+ else
+ if [ $typeObjet -eq "6" ]
+ then mode=4
+ else
+ if [ $typeObjet -eq "7" ]
+ then mode=0
+ else mode=99
+ fi
+ fi
+ fi
+ else
+ # Trois boucles
+
+
+
+ if [ $typeObjet -eq "5" ]
+ then case $j in
+ 0)
+ mode=0 ;;
+ 1)
+ mode=4 ;;
+ 2)
+ mode=99 ;;
+ *)
+ mode=99 ;;
+ esac
+ else
+ if [ $typeObjet -eq "6" ]
+ then case $j in
+ 0)
+ mode=0 ;;
+ 1)
+ mode=4 ;;
+ 2)
+ mode=8 ;;
+ *)
+ mode=99 ;;
+ esac
+ else
+ if [ $typeObjet -eq "7" ]
+ then case $j in
+ 0)
+ mode=0 ;;
+ 1)
+ mode=4 ;;
+ 2)
+ mode=8 ;;
+ *)
+ mode=99 ;;
+ esac
+ else mode=99
+ fi
+ fi
+ fi
+ fi
+
+ if [ $information -eq 1 -a $mode -eq 99 -a $j -eq 1 ]
+ then echo "----------------------------------"
+ echo "File: "$style"_"$numObjet".gif:"
+ echo "Style_Map: "$numStyle
+ echo "Type_Objet: "$typeObjet
+ echo "Mode: "$mode
+ echo "Width: "$wObjet
+ echo "Height_GIF: "$hObjet
+ else mode=$mode
+ fi
+
+ if [ $mode -lt 99 ]
+ then
+
+ fObjet=$(grep "frames_$numObjet" $path/$style/$style.ini | cut -f2 -d'=' | cut -f2 -d' ')
+ cptFrame=0
+ fObjet=$(echo "$fObjet" | sed -e "s/\\n//g" | sed -e "s/\\r//g" )
+ while [ "$cptFrame" -ne "$fObjet" -a "$cptFrame" -ne "99" ]
+ do
+ cptFrame=$(($cptFrame+1))
+ done
+ #echo $cptFrame
+ if [ $cptFrame -eq 0 ]
+ then cptFrame=1
+ fi
+ hObjet=$(($hObjet/$cptFrame))
+ hObjet=$(($hObjet - ($hObjet%2)))
+
+ if [ $information -eq 1 -a $j -eq 1 ]
+ then echo -e "\t----------------------------------"
+ echo -e "\t File: "$style"_"$numObjet".gif:"
+ echo -e "\t Style_Map: "$numStyle
+ echo -e "\t /!\ Type_Objet: "$typeObjet
+ echo -e "\t Mode: "$mode
+ echo -e "\t Width: "$wObjet
+ echo -e "\t Height: "$hObjet
+ else mode=$mode
+ fi
+
+ if [ $hObjet -gt 90 ]
+ then yTerrain=$(($hDoor + $hObjet ))
+ else yTerrain=$yTerrain
+ fi
+
+ if [ $yTerrain -ge 320 ]
+ then break
+ else yTerrain=$yTerrain
+ fi
+
+ #Entry
+ # pour tous les object
+ if [ true -o "$cpt" -eq "0" -o $numObjetTest -ne 99 ] #pour les objets specifiques
+ then
+ echo "object_$cpt = 1, $xObjet, $hDoor, $mode, 0" >> $pathDst/lvl200$numStyle.ini
+ cpt=$(($cpt+1))
+
+ #echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> $pathDst/lvlTempT.ini
+ #xObjet=$(($xObjet + $stepTerrain))
+ #cptT=$(($cptT+1))
+
+ if [ $numObjetTest -eq 99 ] #pour all
+ then
+ for i in $(seq 1 6)
+ do
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> $pathDst/lvlTempT.ini
+ xObjet=$(($xObjet + $stepTerrain))
+ yTerrain=$(($yTerrain+$i*2))
+ cptT=$(($cptT+1))
+ done
+
+ if [ "$cpt" -eq "1" ]
+ then
+ for i in $(seq 1 6)
+ do
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 8" >> $pathDst/lvlTempT.ini
+ xObjet=$(($xObjet + $stepTerrain))
+ yTerrain=$(($yTerrain-$i*2))
+ cptT=$(($cptT+1))
+ done
+ else
+ cptT=$cptT
+ fi
+ else
+ cptT=$cptT
+ fi #FIN pour all
+ else
+ cptT=$cptT
+ fi #FIN pour les objets specifiques
+
+ if [ $numObjetTest -ne 99 ]
+ then stepTerrain=40
+ else stepTerrain=20
+ fi
+
+ maxT=$(($wObjet/$stepTerrain + 6 ))
+
+ for i in $(seq 1 $maxT)
+ do
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 0" >> $pathDst/lvlTempT.ini
+ cptT=$(($cptT+1))
+ yTerrain=$(($yTerrain+4))
+ echo "terrain_$cptT = $numTerrain, $xObjet, $yTerrain, 2" >> $pathDst/lvlTempT.ini
+ yTerrain=$(($yTerrain-4))
+ 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
+ #echo "here"
+
+ # if [ $yObjet -ge 0 -a $xObjet -ge 0 -a $yObjet -lt 320 -a $xObjet -lt 3300 ]
+ # then
+
+ yObjet=$(($yObjet+$j*2-$cptTestObjet/2))
+ xObjet=$(($xObjet-($maxT-2)*$stepTerrain))
+ yObjet=$(($yObjet - ($yObjet%2)))
+ echo "object_$cpt = $numObjet, $xObjet, $yObjet, $mode, 0" >> $pathDst/lvl200$numStyle.ini
+ cpt=$(($cpt+1))
+ xObjet=$(($xObjet + $wObjet))
+
+ yObjet=$(($yTerrain-$hTerrainStop+10))
+ yObjet=$(($yObjet - ($yObjet%2)))
+ echo "terrain_$cptT = $numTerrainStop, $xObjet, $yObjet, 0" >> $pathDst/lvlTempT.ini
+ xObjet=$(($xObjet + $wTerrainStop - 10))
+
+
+ if [ $xObjet -ge 3000 ]
+ then xObjet=0;
+ hDoor=$(($yTerrain + 10)) ;
+ yTerrain=$(($hDoor + 90))
+ else
+ xObjet=$xObjet
+ fi
+ # else
+ # xObjet=$xObjet
+ # fi
+ else
+ echo "objet $numObjet de type $typeObjet IGNORER"
+ #echo "==> Objet ignorer"
+ fi
+
+ if [ $numObjetTest -eq 99 -a $j -eq 3 ]
+ then break
+ else numObjetTest=$numObjetTest
+ fi
+
+ done
+
+ if [ $numObjetTest -ne 99 ]
+ then break
+ else numObjetTest=$numObjetTest
+ fi
+
+done
+
+cat $pathDst/lvlTempT.ini >> $pathDst/lvl200$numStyle.ini
+rm $pathDst/lvlTempT.ini
+
+#Name
+#typeObjet=$(echo "$typeObjet" | sed -e "s/\\n//")
+echo "name = Test $style($numStyle) O($numObjet) T($typeObjet) M($mode) " >> $pathDst/lvl200$numStyle.ini
+
+exit 0
+