20100212
[gdash.git] / src / c64import.h
blobaa545c40befdb5085b9a26c91f93f48f9f231391
1 /*
2 * Copyright (c) 2007, 2008, 2009, Czirkos Zoltan <cirix@fw.hu>
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 #ifndef _GD_CAVEIMPORT_H
17 #define _GD_CAVEIMPORT_H
19 #include <glib.h>
20 #include "cave.h"
22 extern const char gd_bd_internal_chars[];
23 extern const GdElement gd_crazylight_import_table[];
25 /* file formats */
26 typedef enum _gd_cavefile_format {
27 GD_FORMAT_UNKNOWN, /* unknown format */
28 GD_FORMAT_BD1, /* boulder dash 1 */
29 GD_FORMAT_BD1_ATARI, /* boulder dash 1 atari version */
30 GD_FORMAT_DC1, /* boulder dash 1, deluxe caves 1 extension - non-sloped brick wall. */
31 GD_FORMAT_BD2, /* boulder dash 2 with rockford's extensions */
32 GD_FORMAT_BD2_ATARI, /* boulder dash 2, atari version */
33 GD_FORMAT_PLC, /* peter liepa construction kit */
34 GD_FORMAT_PLC_ATARI, /* peter liepa construction kit, atari version */
35 GD_FORMAT_DLB, /* no one's delight boulder dash */
36 GD_FORMAT_CRLI, /* crazy light construction kit */
37 GD_FORMAT_CRDR_7, /* crazy dream 7 */
38 GD_FORMAT_CRDR_9, /* crazy dream 9 - is a crli caveset with hardcoded mazes */
39 GD_FORMAT_FIRSTB, /* first boulder */
40 } GdCavefileFormat;
42 /* engines */
43 typedef enum _gd_engine {
44 GD_ENGINE_BD1,
45 GD_ENGINE_BD2,
46 GD_ENGINE_PLCK,
47 GD_ENGINE_1STB,
48 GD_ENGINE_CRDR7,
49 GD_ENGINE_CRLI,
50 GD_ENGINE_INVALID, /* fake */
51 } GdEngine;
52 extern const char *gd_engines[];
55 GdCavefileFormat gd_caveset_imported_get_format(const guint8 *buf);
56 GList* gd_caveset_import_from_buffer (const guint8 *buf, gsize length);
58 void gd_cave_set_engine_defaults(GdCave *cave, GdEngine engine);
59 GdEngine gd_cave_get_engine_from_string(const char *param);
60 GdPropertyDefault *gd_get_engine_default_array(GdEngine engine);
62 void gd_c64_import_init_tables();
64 #endif