Fichiers hpp et structures
Bonsoir.
J'ai deux fichiers hpp :
Terrain.hpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| #ifndef _CLASS_TERRAIN_H
#define _CLASS_TERRAIN_H
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fstream>
#include <sstream>
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include "C_Case.hpp"
using namespace std;
/*
*/
struct Data_Decors
{
int Base_x;//L'emplacement de sa base en x sur l'image.
int Base_y;//l'emplacement de sa base en y sur l'image.
int Taille_x;//Le nombre de case en x que le décors prend.
int Taille_y;//Le nombre de case en y que le décors prend.
};
struct Data_Texture_Sol
{
int Width;//La largeur d'une texture
int Height;//La hauteur d'une texture
int nombre_textures;//Le nombre de textures qu'il y a par chipset
};
class C_Terrain
{
private:
//Taille de la map
int LONGUEUR;
int LARGEUR;
int Pos_x;
int Pos_y;
SDL_Surface **Img_Textures_sol;
SDL_Surface **Img_Textures_bord;
SDL_Surface **Img_Decors;
SDL_Surface **Img_Coffre;
SDL_Surface **Img_Charset;
SDL_Surface *Terrain;
TTF_Font *font;
void Affichage_Decors(int const x, int const y);
void Mise_a_jour();
//Data_Decors *Data_Decors;
vector<Data_Texture_Sol> m_DataTextureSolList;
class C_Case *Case;
int clicked;
public:
// Constructeur.
C_Terrain();
// Destructeur.
~C_Terrain();
//Chargement des set
int Init();
//Chargement, Sauvegarde de maps
int LoadMap(string fichier);
int NewMap(int const largeur, int const longueur);
int SaveMap(string Name);
//Affichage
void Affichage(SDL_Surface *cible);
//Connaitre les données
//Data_Decors *Get_DataDecors(int Decors);
Data_Texture_Sol *Get_DataTextureSol(int TextureSol);
//Clic sur une case
int Clic(int const numSritex, int const numSpritey, int const xsouris, int const ysouris, int const clic);
};
#endif |
Et Case.hpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #ifndef _CLASS_CASE_H
#define _CLASS_CASE_H
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
#include <stdlib.h>
#include <stdio.h>
#include <fstream>
#include <sstream>
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include "SDL_Event.hpp"
#include "C_Terrain.hpp"
using namespace std;
/*
CLASSE CASE
Liée à la classe C_Terrain, elle contient les informations sur la case.
*/
class C_Case
{
private:
int affich_x;//La position x de la case
int affich_y;//La position y de la case
short elevation;//La hauteur de la case, positif
int texture_sol;//La texture du sol de la case
Data_Texture_Sol *pointeur_texture_sol;//L'adresse de la texture
int texture_bord;//La texture du bord de la case
int decors;//Le décors placé sur la case
int Nr_texture;//Le Nr de la texture sur l'image
Data_Decors *pointeur_decors;//L'adresse du décors
int Decors_x;//la position X et Y du décors
int Decors_y;//
int Coffre;
int Item;
int PNJ;
int Charset;
int Angle_Charset;
int ID;
string Map;
public:
SDL_Events *Events;
class C_Terrain Terrain();
// Constructeur.
C_Case(SDL_Events &Event);
// Destructeur.
~C_Case();
int Get_TextureSol();
void SetData(string buf, int pos_x, int pos_y);
//Clic sur une case
int Clic();
};
#endif |
Mais lors de la compilation, ça plante à la ligne de Case.hpp :
Code:
1 2
|
Data_Texture_Sol *pointeur_texture_sol; |
'ISO forbids declaration of Data_Texture_Sol with no type'
En gros, le compilateur ne voit pas Data_Texture_Sol se trouvant dans Terrain.hpp. Pourquoi ? :(
Je travaille sous Code::Blocks.
Ne vous étonnez pas si le code est sal et étrange, je suis en train de remodeler mon programme.
En attendant votre réponse :)