From 83862685b0952d8ed0290845494d2969c43ab6da Mon Sep 17 00:00:00 2001 From: Nicolas LIENART Date: Wed, 5 Jun 2019 23:46:29 +0200 Subject: [PATCH] terrains inconstructibles --- level/level1.itd | 3 ++- level/level1.ppm | Bin 116 -> 117 bytes level/level2.itd | 1 + level/level3.itd | 1 + src/initmap/cases.c | 3 +++ src/initmap/display.c | 3 +++ src/initmap/itd-file.c | 14 +++++++++++++- src/initmap/structures.h | 7 +++++-- 8 files changed, 28 insertions(+), 4 deletions(-) diff --git a/level/level1.itd b/level/level1.itd index ff60a95..b66d71b 100644 --- a/level/level1.itd +++ b/level/level1.itd @@ -9,6 +9,7 @@ noeud 255 0 0 in 0 255 0 out 0 0 255 construct 0 0 0 +inconstructible 255 0 234 # Construction Data laser 1 1 2 2 0 200 100 missile 2 1 1 1 0 300 150 @@ -31,4 +32,4 @@ waves 4 1 2 2 0.5 0 6 0 0 2 1 2 0.5 4 1 0 0 3 2 2 0.5 2 3 0 0 -4 3 2 0.5 0 2 1 1 \ No newline at end of file +4 3 2 0.5 0 2 1 1 diff --git a/level/level1.ppm b/level/level1.ppm index 4c83c5533bb5eead88f6ab70e78f440c7c6a264d..d213210f713c17b86d67ecb1007ba7f407f38ad6 100644 GIT binary patch delta 29 gcmXRZouI^IXfRP(k^eu#D+Vz54+IRaCI%}40F7e`w*UYD delta 28 ccmXRdnV`gIG*Ly7p8*E`|NjqUP7F~509`8vw*UYD diff --git a/level/level2.itd b/level/level2.itd index a44cd35..d6d3db7 100644 --- a/level/level2.itd +++ b/level/level2.itd @@ -9,6 +9,7 @@ noeud 255 0 0 in 0 255 0 out 0 0 255 construct 0 0 0 +inconstructible 255 0 234 # Construction Data (DEGAT ALIM CAD PORTEE RANGE VAL VAL) laser 1 1 5 2 0 200 100 missile 2 1 2 1 0 300 150 diff --git a/level/level3.itd b/level/level3.itd index 99d3f36..3a668b4 100644 --- a/level/level3.itd +++ b/level/level3.itd @@ -9,6 +9,7 @@ noeud 255 0 0 in 0 255 0 out 0 0 255 construct 0 0 0 +inconstructible 255 0 234 # Construction Data (DEGAT ALIM CAD PORTEE RANGE VAL VAL) laser 1 1 5 2 0 200 100 missile 2 1 2 1 0 300 150 diff --git a/src/initmap/cases.c b/src/initmap/cases.c index 4ecb996..92d5ec8 100644 --- a/src/initmap/cases.c +++ b/src/initmap/cases.c @@ -30,6 +30,8 @@ TypeCase* case_loadFromPPM() } else if (case_RGBCompare(*pixel_ppm, mapData->outCol)) { cases[i] = SORTIE; nbSortie++; + } else if (case_RGBCompare(*pixel_ppm, mapData->inconstructibleCol)) { + cases[i] = INCONSTRUCTIBLE; } else { cases[i] = CHEMIN; } @@ -59,6 +61,7 @@ void case_initPlateau() printf("ERROR ALLOC : mapData"); exit(EXIT_FAILURE); } + int argent = 2000; plateau->idListInfos = GL_INVALID_VALUE; diff --git a/src/initmap/display.c b/src/initmap/display.c index 8d763f4..912089b 100644 --- a/src/initmap/display.c +++ b/src/initmap/display.c @@ -631,6 +631,9 @@ void display_mapList(GLuint id) case SORTIE: sprite_displayFixedTexture(REINE_TEX); break; + case INCONSTRUCTIBLE: + sprite_displayFixedTexture(REMOVE_TEX); + break; default: sprite_displayFixedTexture(TERRAIN_1_TEX + rand()%5); break; diff --git a/src/initmap/itd-file.c b/src/initmap/itd-file.c index a5cc1fd..093be4c 100644 --- a/src/initmap/itd-file.c +++ b/src/initmap/itd-file.c @@ -461,6 +461,18 @@ int itd_checkForMapData(FILE* file) return CHK_ERROR_FILE; } } + if (strcmp("inconstructible", label) == 0) { + if (itd_getColor(file, color) == CHK_SUCCESS) { + mapData->inconstructibleCol = *color; + mapData->contentState |= MDATA_INCONSTRUCTIBLE; + return CHK_SUCCESS; + } + + else { + fseek(file, originalPosition, SEEK_SET); + return CHK_ERROR_FILE; + } + } if (strcmp("in", label) == 0) { if (itd_getColor(file, color) == CHK_SUCCESS) { @@ -647,7 +659,7 @@ void idt_load(char* itd_path) } - int allFlags = (MDATA_IMG | MDATA_ENERGY | MDATA_IN | MDATA_OUT | MDATA_PATH | MDATA_NODE | MDATA_CONSTRUCT | MDATA_INFOSNODE | MDATA_WAVES); + int allFlags = (MDATA_IMG | MDATA_ENERGY | MDATA_IN | MDATA_OUT | MDATA_PATH | MDATA_NODE | MDATA_CONSTRUCT | MDATA_INFOSNODE | MDATA_WAVES | MDATA_INCONSTRUCTIBLE); if (mapData->contentState == allFlags) { printf("file is valid\n"); mapData->cases = case_loadFromPPM(); diff --git a/src/initmap/structures.h b/src/initmap/structures.h index 257e037..32715ed 100644 --- a/src/initmap/structures.h +++ b/src/initmap/structures.h @@ -21,7 +21,8 @@ typedef enum MapDataContent { MDATA_CONSTRUCT = 32, MDATA_NODE = 64, MDATA_INFOSNODE = 128, - MDATA_WAVES = 256 + MDATA_WAVES = 256, + MDATA_INCONSTRUCTIBLE = 512 } MapDataContent; typedef enum GameState { @@ -110,7 +111,8 @@ typedef enum TypeCase { CHEMIN, NOEUD, ENTREE, - SORTIE + SORTIE, + INCONSTRUCTIBLE } TypeCase; typedef struct ConstructionData { @@ -151,6 +153,7 @@ typedef struct MapData { RGBcolor pathCol; RGBcolor nodeCol; RGBcolor buildingCol; + RGBcolor inconstructibleCol; RGBcolor inCol; RGBcolor outCol; unsigned int contentState; -- 2.22.0