1 /*
2 
3 Copyright (C) 2015-2018 Night Dive Studios, LLC.
4 
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 
18 */
19 #ifndef __MFDEXT_H
20 #define __MFDEXT_H
21 
22 /*
23  * $Source: r:/prj/cit/src/inc/RCS/mfdext.h $
24  * $Revision: 1.21 $
25  * $Author: mahk $
26  * $Date: 1994/08/28 04:41:22 $
27  *
28  *
29  */
30 
31 // Includes
32 #include "player.h"
33 
34 // ---------
35 // Constants
36 // ---------
37 
38 // These are for the inventory system (invent.c)
39 #define MFD_INV_NULL          0
40 #define MFD_INV_DRUG          1
41 #define MFD_INV_HARDWARE      2
42 #define MFD_INV_GRENADE       3
43 #define MFD_INV_AMMO          4
44 #define MFD_INV_WEAPON        5
45 #define MFD_INV_GENINV        6
46 #define MFD_INV_SOFT_COMBAT   7
47 #define MFD_INV_SOFT_DEFENSE  8
48 #define MFD_INV_SOFT_MISC     9
49 #define MFD_INV_CATEGORIES   10
50 
51 #define MFD_INV_NOTYPE     0xFF
52 
53 // Which MFD?
54 #define MFD_LEFT  0
55 #define MFD_RIGHT 1
56 
57 // Flags for MFD Functions
58 #define MFD_CHANGEBIT      0x01 // Needs constant update of some sort
59 #define MFD_INCREMENTAL    0x02 // Uses standard MFD background
60 #define MFD_CHANGEBIT_FULL 0x04
61 #define MFD_NOSAVEREST     0x08 // don't save/restore me.
62 
63 // Flags for Expose Control
64 #define MFD_EXPOSE      0x01u
65 #define MFD_EXPOSE_FULL 0x02u
66 
67 // Type of each MFD slot
68 #define MFD_WEAPON_SLOT  0
69 #define MFD_ITEM_SLOT    1
70 #define MFD_MAP_SLOT     2
71 #define MFD_INFO_SLOT    4
72 #define MFD_TARGET_SLOT  3
73 #define MFD_SPECIAL_SLOT 5
74 
75 // MFD Functions
76 #define NOTIFY_ANY_FUNC     0xFF // for mfd_notify_func
77 #define MFD_EMPTY_FUNC         0
78 #define MFD_ITEM_FUNC          1
79 #define MFD_MAP_FUNC           2
80 #define MFD_TARGET_FUNC        3
81 #define MFD_ANIM_FUNC          4
82 #define MFD_WEAPON_FUNC        5
83 #define MFD_BIOWARE_FUNC       6
84 #define MFD_LANTERN_FUNC       7
85 #define MFD_3DVIEW_FUNC        8
86 #define MFD_ELEV_FUNC          9
87 #define MFD_GRENADE_FUNC      10
88 #define MFD_HUD_FUNC          11
89 #define MFD_FIXTURE_FUNC      12
90 #define MFD_KEYPAD_FUNC       13
91 #define MFD_EMAILMUG_FUNC     14
92 #define MFD_EMAILWARE_FUNC    15
93 #define MFD_PLOTWARE_FUNC     16
94 #define MFD_BARK_FUNC         17
95 #define MFD_ACCESSPANEL_FUNC  18
96 #define MFD_SHIELD_FUNC       19
97 #define MFD_MOTION_FUNC       20
98 #define MFD_SEVERED_HEAD_FUNC 21
99 #define MFD_TARGETWARE_FUNC   22
100 #define MFD_GUMP_FUNC         23
101 #define MFD_CARD_FUNC         24
102 #define MFD_BIOHELP_FUNC      25
103 #define MFD_GRIDPANEL_FUNC    26
104 #define MFD_GAMES_FUNC        27
105 #define MFD_CSPACE_FUNC       28
106 #define MFD_VIEWHELP_FUNC     29
107 #define MFD_GEAR_FUNC         30
108 
109 // -------
110 // Externs
111 // -------
112 
113 extern void set_inventory_mfd(ubyte l_class, ubyte type, uchar grab);
114 extern void init_newmfd();
115 extern void screen_init_mfd(uchar fullscrn);
116 extern void screen_init_mfd_draw();
117 extern void keyboard_init_mfd();
118 extern void mfd_update();
119 extern void mfd_notify_func(ubyte func, ubyte slot, uchar grab, MFD_Status stat, uchar FullRedraw);
120 extern void mfd_force_update_single(int which_mfd);
121 extern void mfd_force_update();
122 extern int mfd_grab(void);
123 extern int mfd_grab_func(int my_func, int my_slot);
124 extern uchar mfd_yield_func(int func, int *mfd_id);
125 extern void mfd_change_slot(ubyte mfd_id, ubyte l_new);
126 extern void save_mfd_slot(int mfd_id);
127 extern void restore_mfd_slot(int mfd_id);
128 
129 #endif // __MFDEXT_H
130