Files

64 lines
1.1 KiB
C
Raw Permalink Normal View History

2014-03-05 20:54:24 -04:30
/**
* Copyright (c) 2014, Miguel Angel Astor Romero. All rights reserved.
* See the file LICENSE for more details.
*/
#ifndef MAP_H
#define MAP_H
2014-03-06 01:58:49 -04:30
#define MAX_MAP_SIZE 64
#define MAX_OBJECTS 512
#define MAX_STR 128
2014-03-05 20:54:24 -04:30
typedef enum FLOOR_TYPES {
VOID = 0,
SOLID_WALL,
SECRET_WALL,
CLEAR_WALL,
NEON_WALL,
WINDOW_WALL,
EMPTY_FLOOR,
RUG,
WATER,
BAR
} floor_t;
2014-03-05 20:54:24 -04:30
typedef enum OBJECT_TYPES {
DOOR = 0,
KEY,
PERSON,
PLAYER_START,
EXIT,
DIALOG,
NONE = 9989
} obj_t;
2014-03-05 20:54:24 -04:30
typedef enum ERROR_CODES {
NO_ERROR = 0,
FILE_NOT_FOUND,
OUT_OF_MEMORY,
PREMATURE_EOF,
MAP_TOO_LARGE,
INVALID_KEY
} errcode_t;
2014-03-05 20:54:24 -04:30
typedef struct MAP_CELL{
floor_t f;
2014-03-05 20:54:24 -04:30
} map_cell_t;
2014-03-06 01:58:49 -04:30
typedef struct OBJECT {
obj_t type;
short x, y, eX, eY, sX, sY;
short id;
short dId;
char name[MAX_STR];
char target[MAX_STR];
char dialog[MAX_STR];
unsigned char unlocked;
2014-03-06 01:58:49 -04:30
} game_obj_t;
2014-03-05 20:54:24 -04:30
extern errcode_t readMapData(const char *, map_cell_t ***, int *, int *);
2014-03-06 01:58:49 -04:30
extern errcode_t readMapObjects(const char *, game_obj_t **, int *);
2014-03-05 20:54:24 -04:30
#endif