1 /* GemRB - Infinity Engine Emulator
2  * Copyright (C) 2003 The GemRB Project
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  *
19  */
20 
21 /**
22  * @file SClassID.h
23  * Defines ID numbers identifying the various plugins.
24  * Needed for loading the plugins on MS Windows.
25  * @author The GemRB Project
26  */
27 
28 #ifndef SCLASS_ID_H
29 #define SCLASS_ID_H
30 
31 namespace GemRB {
32 
33 /** Type of plugin ID numbers */
34 using SClass_ID = unsigned long;
35 
36 #define IE_2DA_CLASS_ID			0x000003F4
37 #define IE_ACM_CLASS_ID			0x00010000
38 #define IE_ARE_CLASS_ID			0x000003F2
39 #define IE_BAM_CLASS_ID			0x000003E8
40 #define IE_BCS_CLASS_ID			0x000003EF
41 #define IE_BS_CLASS_ID			0x100003EF
42 #define IE_BIF_CLASS_ID			0x00020000
43 #define IE_BIO_CLASS_ID			0x000003FE  //also .res
44 #define IE_BMP_CLASS_ID			0x00000001
45 #define IE_PNG_CLASS_ID			0x00000003
46 #define IE_CHR_CLASS_ID			0x000003FA
47 #define IE_CHU_CLASS_ID			0x000003EA
48 #define IE_CRE_CLASS_ID			0x000003F1
49 #define IE_DLG_CLASS_ID			0x000003F3
50 #define IE_EFF_CLASS_ID			0x000003F8
51 #define IE_GAM_CLASS_ID			0x000003F5
52 #define IE_IDS_CLASS_ID			0x000003F0
53 #define IE_INI_CLASS_ID			0x00000802
54 #define IE_ITM_CLASS_ID			0x000003ED
55 #define IE_MOS_CLASS_ID			0x000003EC
56 #define IE_MUS_CLASS_ID			0x00040000
57 #define IE_MVE_CLASS_ID			0x00000002
58 #define IE_BIK_CLASS_ID			0x00FFFFFF
59 #define IE_OGG_CLASS_ID			0x00000007
60 #define IE_PLT_CLASS_ID			0x00000006
61 #define IE_PRO_CLASS_ID			0x000003FD
62 #define IE_SAV_CLASS_ID			0x00050000
63 #define IE_SPL_CLASS_ID			0x000003EE
64 #define IE_SRC_CLASS_ID			0x00000803
65 #define IE_STO_CLASS_ID			0x000003F6
66 #define IE_TIS_CLASS_ID			0x000003EB
67 #define IE_TLK_CLASS_ID			0x00060000
68 #define IE_TOH_CLASS_ID			0x00070000
69 #define IE_TOT_CLASS_ID			0x00080000
70 #define IE_VAR_CLASS_ID			0x00090000
71 #define IE_VEF_CLASS_ID			0x000003FC
72 #define IE_VVC_CLASS_ID			0x000003FB
73 #define IE_WAV_CLASS_ID			0x00000004
74 #define IE_WED_CLASS_ID			0x000003E9
75 #define IE_WFX_CLASS_ID			0x00000005
76 #define IE_WMP_CLASS_ID			0x000003F7
77 #define IE_SCRIPT_CLASS_ID		0x000D0000
78 #define IE_GUI_SCRIPT_CLASS_ID		0x000E0000
79 
80 // !!! Update the PLUGIN_BASE_VERSION, if the list below is reordered !!!
81 // !!! or entries inserted in the middle.                             !!!
82 const unsigned long PLUGIN_BASE_VERSION = 0x1000 * 0xABCE;
83 using PluginID = unsigned long;
84 enum {
85 	PLUGIN_OPCODES_CORE = PLUGIN_BASE_VERSION+1,
86 	PLUGIN_OPCODES_ICEWIND,
87 	PLUGIN_OPCODES_TORMENT,
88 	PLUGIN_RESOURCE_KEY,
89 	PLUGIN_RESOURCE_DIRECTORY,
90 	PLUGIN_RESOURCE_CACHEDDIRECTORY,
91 	PLUGIN_RESOURCE_NULL,
92 	PLUGIN_IMAGE_WRITER_BMP,
93 	PLUGIN_COMPRESSION_ZLIB
94 };
95 
96 }
97 
98 #endif
99