summaryrefslogtreecommitdiff
path: root/src/include/data_localgame.h
blob: cd24d633431c70d46173060293acc1cd740b7baa (plain)
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
#ifndef DATA_LOCALGAME_H
#define DATA_LOCALGAME_H

#include "data_types.h"

// Structures de données pour la partie en cours, sur l'ordinateur local

// Variables de configuration du jeu issues du fichier config.ini
typedef struct {
	SDL_Rect screen;
} gameConfig_t;

// Etat des différents objets de la map
typedef struct {
	// zOrder < 0 : dessiné avant le terrain, sinon après le terrain (0 est uen valeur réservée)
	int zOrder;
	// surfId : Index du SDL_Surface de l'objet consiédéré (confère gameGraphSurfaces_t / objectsSurf)
	int  surfId;
	// Information sur l'état de l'animation de l'objet
	int animFrames, currentAnimFrame;
	// Bounding box (plus petit rectangle qui continet tous les pixels de l'objet, utile pour updateGraphics())
	SDL_Rect *objectsBBox;
} gameGraphObjState_t;

// Ensemble des éléménts graphiques du jeu (sauf l'écran)
typedef struct {
	SDL_Surface *screen, *terrain, *stencil, **objectsSurf;
	gameGraphObjState_t *objectsStat;
} gameGraphSurfaces_t;

// Gestion de l'écran et de la caméra
typedef struct {
	SDL_Surface *screen;
	SDL_Rect viewport; 	// Viewport top-left corner coords in screen

	gameGraphSurfaces_t surfaces;

	int dirtRectsCount;
	SDL_Rect *dirtRects;	// Dirt rectangles to refresh for current tick
} gameGraphics_t;

// Paramètes de jeu envoyés par le serveur (niveau en cours, etc)
typedef struct {
	id_t	levelPack;
	id_t	level;
} serverParams_t;

#endif /*DATA_LOCALGAME_H*/