1 // Emacs style mode select -*- C++ -*-
2 //---------------------------------------------------------------------------
3 //
4 // $Id: p_info.h 1368 2017-11-01 01:17:48Z wesleyjohnson $
5 //
6 // Copyright(C) 2000 Simon Howard
7 //
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the Free Software
20 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21 //
22 // $Log: p_info.h,v $
23 // Revision 1.5  2001/08/06 23:57:09  stroggonmeth
24 // Removed portal code, improved 3D floors in hardware mode.
25 //
26 // Revision 1.4  2001/08/02 19:15:59  bpereira
27 // fix player reset in secret level of doom2
28 //
29 // Revision 1.3  2001/06/30 15:06:01  bpereira
30 // fixed wrong next level name in intermission
31 //
32 // Revision 1.2  2000/11/03 03:27:17  stroggonmeth
33 // Again with the bug fixing...
34 //
35 // Revision 1.1  2000/11/03 02:00:44  stroggonmeth
36 // Added p_info.c and p_info.h
37 //
38 //
39 //--------------------------------------------------------------------------
40 
41 #ifndef P_INFO_H
42 #define P_INFO_H
43 
44 #include "doomtype.h"
45 #include "d_items.h"
46   // NUMWEAPONS
47 #include "command.h"
48 
49 void P_Load_LevelInfo(void);
50 
51 void P_CleanLine(char *line);
52 
53 extern char *info_interpic;
54 extern char *info_levelname;
55 extern char *info_levelpic;
56 extern char *info_music;
57 extern int info_partime;
58 extern char *info_levelcmd[128];
59 extern char *info_skyname;
60 extern char *info_creator;
61 extern char *info_nextlevel;
62 extern char *info_nextsecret;
63 extern char *info_intertext;
64 extern char *info_backdrop;
65 extern int info_scripts;        // whether the current level has scripts
66 
67 extern boolean default_weaponowned[NUMWEAPONS];
68 
69 // level menu
70 // level authors can include a menu in their level to
71 // activate special features
72 
73 typedef struct
74 {
75   char *description;
76   int scriptnum;
77 } levelmenuitem_t;
78 
79 #define isnumchar(c) ( (c) >= '0' && (c) <= '9')
80 int isExMy(char *name);
81 int isMAPxy(char *name);
82 /*#define isExMy(s) ( (tolower((s)[0]) == 'e') && \
83                     (isnumchar((s)[1])) &&      \
84                     (tolower((s)[2]) == 'm') && \
85                     (isnumchar((s)[3])) &&      \
86                     ((s)[4] == '\0') )
87 #define isMAPxy(s) ( (strlen(s) == 5) && \
88                      (tolower((s)[0]) == 'm') && \
89                      (tolower((s)[1]) == 'a') && \
90                      (tolower((s)[2]) == 'p') && \
91                      (isnumchar((s)[3])) &&      \
92                      (isnumchar((s)[4])) &&      \
93                      ((s)[5] == '\0'))*/
94 
95 void P_Register_Info_Commands(void);
96 char * P_LevelName(void);
97 const char * P_LevelNameByNum( int episode, int map );
98 
99 #endif
100