#ifndef DATA_INI_H #define DATA_INI_H #include #define LEVEL_WIDTH (1664*2) #define LEVEL_HEIGHT (160*2) #define MAX_NAMELEN 64 #define MAX_PARTICLE_COLORS 16 #define MAX_MUSICS_COUNT 32 #define MAX_DIFFICULTY_COUNT 8 #define MAX_OBJECTS_COUNT 256 #define MAX_TERRAINS_COUNT 1024 #define MAX_STEELS_COUNT 256 #define MAX_TILES_COUNT 128 #define MAX_SOUNDS_COUNT 24 #define MAX_LEMMANIM_COUNT 17 //////////////////////// LEVEL INI FILES //////////////////////// // 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 terrains int width, height; // Specific to steels }; struct levelIni { int releaseRate, numLemmings, numToRescue, timeLimit; int numClimbers, numFloaters, numBlockers, numBombers; int numBuilders, numBashers, numMiners, numDiggers; int xPos; // Initial camera position on level char style[MAX_NAMELEN], name[MAX_NAMELEN]; int superLemming; int objectCount, terrainCount, steelCount; struct levelItem objects[MAX_OBJECTS_COUNT]; struct levelItem terrains[MAX_TERRAINS_COUNT]; struct levelItem steels[MAX_STEELS_COUNT]; }; //////////////////////// LEVELPACK INI FILES //////////////////////// struct levelPackIni { char name[MAX_NAMELEN]; int maxFallDistance; char codeSeed[MAX_NAMELEN]; int musicCount, levelDifficultyCount; char music[MAX_MUSICS_COUNT][MAX_NAMELEN]; char levelDifficulty[MAX_DIFFICULTY_COUNT][MAX_NAMELEN]; }; //////////////////////// STYLE INI FILES //////////////////////// struct styleIni { Uint32 bgColor, debrisColor; int tiles, particleColorCount; Uint32 particleColor[MAX_PARTICLE_COLORS]; int objectCount; int frames[MAX_OBJECTS_COUNT]; int anim[MAX_OBJECTS_COUNT]; int type[MAX_OBJECTS_COUNT]; int sound[MAX_OBJECTS_COUNT]; }; /*////////////////////// MISC/LEMMING.INI FILE //////////////////////// struct lemmingAnim { int haveMask, haveImask; int lemmFrames, lemmDirs, lemmAnimType; int maskFrames, maskDirs, maskStartFrame; int imaskFrames, imaskDirs; int xPos, yPos, posFlags; }; struct miscIni { int lemmingAnimCount; struct lemmingAnim *lemmingAnims; }; */ //////////////////////// GLOBAL INI FILES //////////////////////// typedef struct { struct styleIni style; struct levelIni level; struct levelPackIni levelPack; //struct miscIni misc; } gameIni_t; #endif /*DATA_INI_H*/