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 DATA_INI_H
#define DATA_INI_H
// Original game level size is fixed to 1664x160. We want to display all the game with a x2 zoom
#define LEVEL_WIDTH 1664*2
#define LEVEL_HEIGHT 160*2
#include "SDL/SDL_stdinc.h"
//////////////////////// LEVEL INI FILES ////////////////////////
struct skills {
int releaseRate, numLemmings, numToRescue, timeLimit;
int numClimbers, numFloaters, numBlockers, numBombers, numBuilders, numBashers, numMiners, numDiggers;
};
// Item should be an object, terrain or steel
struct levelItem {
int id, xpos, ypos; // Common to all types (but no id for steel)
int paintMode, ud; // Specific to objects
int modifier; // Specific to terrain
int width, height; // Specific to steels
};
struct levelIni {
struct skills initSkills;
int xPos;
char *style, *name;
int superLemming;
int objectCount, terrainCount, steelCount;
struct levelItem *objects, *terrains, *steels;
};
//////////////////////// LEVELPACK INI FILES ////////////////////////
struct levelPackIni {
int maxFallDistance;
char *codeSeed;
};
//////////////////////// STYLE INI FILES ////////////////////////
// frames_, amin_, type_ sound_ quadruplet entries from style ini files
struct styleObjects {
int frames, anim, type, sound;
};
// Various keys at the beginning of style ini files
struct styleIni {
char *name;
uint32_t bgColor, debrisColor;
int tiles, particleColorCount, objectCount;
uint32_t *particleColor;
struct styleObjects *objects;
};
//////////////////////// GLOBAL INI FILES ////////////////////////
typedef struct {
struct styleIni style;
struct levelIni level;
struct levelPackIni levelPack;
int firstPass;
} gameIni_t;
#endif /*DATA_INI_H*/
|