00001 #ifndef SKYE_H 00002 #define SKYE_H 00003 00004 //#define FIELD_WIDTH 25 00005 //#define FIELD_HEIGHT 16 00006 00007 typedef unsigned char map_square; 00008 //{{{ 00009 typedef struct map_r1 00010 { 00011 char name[32]; 00012 char author[32]; 00013 char unused[32]; 00014 map_square t[11][20]; 00015 } map_r1; 00016 //}}} 00017 //{{{ 00018 typedef struct map_r2 00019 { 00020 short width, height; 00021 short gamerules; 00022 short unused[5]; 00023 } map_r2; 00024 //}}} 00025 //{{{ 00026 // Level editor internal map format 00027 typedef struct editor_map 00028 { 00029 short width, height; 00030 short gamerules; 00031 00032 char name[64]; 00033 char author[64]; 00034 char hint[64]; 00035 char congrat[64]; 00036 map_square **t; 00037 } editor_map; 00038 //}}} 00039 00040 #define NUM_TILE_TYPES 44 00041 //{{{ 00042 // These first 31 tiles are the same as in Dillon Collins Kye 00043 // This is to allow binary compatibility with DCKye kyelev and kyelib 00044 // files. 00045 #define TILE_EMPTY 0 00046 #define TILE_KYE 1 00047 #define TILE_SLIDER_S 2 00048 #define TILE_SLIDER_E 3 00049 #define TILE_SLIDER_N 4 00050 #define TILE_SLIDER_W 5 00051 #define TILE_ROCKY_S 6 00052 #define TILE_ROCKY_E 7 00053 #define TILE_ROCKY_N 8 00054 #define TILE_ROCKY_W 9 00055 #define TILE_DIAMOND 10 00056 #define TILE_BLOCK 11 00057 #define TILE_FUZZY 12 00058 #define TILE_BOULDER 13 00059 #define TILE_TWIST_CW 14 00060 #define TILE_TWIST_CCW 15 00061 #define TILE_STICKY_EW 16 00062 #define TILE_STICKY_NS 17 00063 #define TILE_PUSHER_W 18 00064 #define TILE_PUSHER_E 19 00065 #define TILE_PUSHER_N 20 00066 #define TILE_PUSHER_S 21 00067 // DCKye has four values unused here, which probably were meant to 00068 // correspond to monsters. Rather than skipping numbers and making 00069 // a mess of the internal format, this will be handled in import/ 00070 // export code. 00071 #define TILE_UNUSED 22 00072 // Number points to the rounded corner/side on the numpad 00073 #define TILE_WALL_5 22 00074 #define TILE_WALL_3 23 00075 #define TILE_WALL_9 24 00076 #define TILE_WALL_7 25 00077 #define TILE_WALL_1 26 00078 #define TILE_WALL_2 27 00079 #define TILE_WALL_6 28 00080 #define TILE_WALL_8 29 00081 #define TILE_WALL_4 30 00082 #define TILE_EXPLODER 31 00083 #define TILE_PIT 32 00084 #define TILE_MAGNET_EW 33 00085 #define TILE_MAGNET_NS 34 00086 #define TILE_BLOB 35 00087 #define TILE_VIRUS 36 00088 #define TILE_TWISTER 37 00089 #define TILE_GNASHER 38 00090 #define TILE_SPIKE 39 00091 #define DOOR_EW 40 00092 #define DOOR_WE 41 00093 #define DOOR_NS 42 00094 #define DOOR_SN 43 00095 00096 // Not yet supported 00097 #define TILE_AUTOROCKY 44 00098 #define TILE_AUTOSLIDER 45 00099 #define TILE_BLACKY 46 00100 #define TILE_TIMER_0 47 00101 #define TILE_TIMER_1 48 00102 #define TILE_TIMER_2 49 00103 #define TILE_TIMER_3 50 00104 #define TILE_TIMER_4 51 00105 #define TILE_TIMER_5 52 00106 #define TILE_TIMER_6 53 00107 #define TILE_TIMER_7 54 00108 #define TILE_TIMER_8 55 00109 #define TILE_TIMER_9 56 00110 //}}} 00111 00112 //{{{ 00113 typedef struct file_header { 00114 char magic_bytes[4]; // Must be 'SKye' if this is an SKye-format level 00115 long revision; // Version of the file format. 00116 long num_levels; // Number of levels in the file 00117 } file_header; 00118 //}}} 00119 00120 #define RULESET_DCKYE 0 00121 #define RULESET_KYE92 1 00122 00123 #endif
1.3.6