Advertisement
Guest User

MAP.H D2D 1.30(?)

a guest
Jan 17th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.59 KB | None | 0 0
  1. /**************************************************************************\
  2. *                                                                          *
  3. *  Форматы карт Doom'а 2D                                       Версия 2   *
  4. *                                                                          *
  5. *  Prikol Software                                           10.VII.1996   *
  6. *                                                                          *
  7. *  Разрешается свободно распространять этот файл, при условии сохранения   *
  8. *  ссылки на Prikol Software, версии и даты выпуска файла.                 *
  9. *                                                                          *
  10. *  Этот include-файл расчитан на WATCOM C 10.0 и DOS4GW                    *
  11. *  Вы можете переделать его на любой другой язык/компилятор, но сохраните  *
  12. *  этот файл (если собираетесь его распространять), а в своем укажите,     *
  13. *  что он изменен (переделан).                                             *
  14. *                                                                          *
  15. \**************************************************************************/
  16.  
  17. #pragma pack(1)
  18.  
  19. /* Старый формат - версия 1.04 alpha (и раньше)
  20.  
  21.   названия текстур (old_wall_t)
  22.     кончается пустой строкой (old_wall_t.n[0]==0)
  23.  
  24.   фон           - массив 100x100 байт - номера текстур
  25.  
  26.   тип стенок    - массив 100x100 байт:
  27.     0 - пусто
  28.     1 - стена
  29.     2 - закрытая дверь
  30.     3 - открытая дверь
  31.     4 - ступенька
  32.  
  33.   передний план - массив 100x100 байт - номера текстур
  34.  
  35.   вещи, монстры и др. (old_thing_t)
  36.     кончается нулевым типом (old_thing_t.t==0)
  37.  
  38.   переключатели (old_switch_t)
  39.     кончается нулевым типом (old_switch_t.t==0)
  40.  
  41. */
  42.  
  43. typedef struct{
  44.   char n[8];            // название текстуры
  45.   char t;           // тип: 0-сплошная 1-"решётка"
  46. }old_wall_t;
  47.  
  48. typedef struct{
  49.   short x,y;            // координаты
  50.   short t;          // тип
  51.   unsigned short f;     // флаги
  52. }old_thing_t;
  53.  
  54. typedef struct{
  55.   unsigned char x,y;        // координаты/8
  56.   unsigned char t;      // тип
  57.   unsigned char tm;     // должно быть 0
  58.   unsigned char a,b;        // обычно - координаты/8 двери
  59.   unsigned short c;     // не используется (вроде бы)
  60. }old_switch_t;
  61.  
  62. /* Новый формат - начиная с версии 1.05 alpha
  63.  
  64.   заголовок карты (map_header_t)
  65.  
  66.   блоки (map_block_t)
  67.     кончается блоком MB_END (map_block_t.t==MB_END)
  68.  
  69. */
  70.  
  71. typedef struct{
  72.   char id[8];           // "подпись" - "Doom2D\x1A"
  73.   short ver;            // версия карты
  74. }map_header_t;
  75.  
  76. typedef struct{
  77.   short t;          // тип блока
  78.   short st;         // подтип (метод упаковки, например)
  79.                 // если не используется, то должен быть 0
  80.                 // (для будущей совместимости)
  81.   int sz;           // размер (сколько байт после этой структуры)
  82. }map_block_t;
  83.  
  84. enum{
  85.   MB_COMMENT=-1,MB_END=0,
  86.   MB_WALLNAMES,MB_BACK,MB_WTYPE,MB_FRONT,MB_THING,MB_SWITCH,
  87.   MB_MUSIC,MB_SKY,
  88.   MB_SWITCH2,
  89.   MB__UNKNOWN
  90. };
  91.  
  92. /* Версия 0  (Doom2D версии 1.05 alpha)
  93.  
  94.   MB_COMMENT - комментарий
  95.  
  96.   MB_WALLNAMES - названия текстур (см. старую версию)
  97.     количество - по размеру блока
  98.  
  99.   MB_BACK,MB_WTYPE,MB_FRONT - фон,тип,передний план (см. старую версию)
  100.     подтип 0 - без упаковки (как в старой версии)
  101.  
  102.   MB_THING - вещи,монстры и др. (см. старую версию)
  103.     количество - по размеру блока
  104.  
  105.   MB_SWITCH - переключатели (см. старую версию)
  106.     количество - по размеру блока
  107.  
  108. */
  109.  
  110. /* Версия 1  (Doom2D версии 1.06 alpha)
  111.  
  112.   MB_WALLNAMES
  113.     добавлены псевдо-текстуры _WATER_*
  114.       где * это 0=вода,1=кислота,2=кровь
  115.  
  116.   MB_WTYPE
  117.     добавлен новый тип 5 - вода
  118.  
  119.   MB_MUSIC - новый блок - название музыки (8 байт)
  120.  
  121.   MB_SKY - новый блок - тип неба (2 байта - short)
  122.     1 = облака
  123.     2 = город
  124.     3 = ад
  125.  
  126. */
  127.  
  128. #define SW_PL_PRESS     1
  129. #define SW_MN_PRESS     2
  130. #define SW_PL_NEAR      4
  131. #define SW_MN_NEAR      8
  132. #define SW_KEY_R        16
  133. #define SW_KEY_G        32
  134. #define SW_KEY_B        64
  135.  
  136. typedef struct{
  137.   unsigned char x,y;        // координаты/8
  138.   unsigned char t;      // тип
  139.   unsigned char tm;     // должно быть 0
  140.   unsigned char a,b;        // обычно - координаты/8 двери
  141.   unsigned short c;     // не используется (вроде бы)
  142.   unsigned char f;      // флаги
  143. }switch2_t;
  144.  
  145. /* Версия 2  (Doom2D версии 1.17 alpha)
  146.  
  147.   блок MB_SWITCH заменен на MB_SWITCH2 (см. switch2_t)
  148.  
  149. */
  150.  
  151. #define LAST_MAP_VER 2  // Самая последняя версия карты
  152.  
  153. #pragma pack()
  154.  
  155. /*  КОНЕЦ  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement