Server upload

RD Core / Commit #2

Commit Server upload

Alex Alex committed 18/10/2026 23:38 main Patch
1,106 files +223,404 -0
A src/itemloader.h +198-0 View file
@@ -0,0 +1,198 @@
1+/**
2+ * The Forgotten Server - a free and open-source MMORPG server emulator
3+ * Copyright (C) 2019 Mark Samman <mark.samman@gmail.com>
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 2 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 along
16+ * with this program; if not, write to the Free Software Foundation, Inc.,
17+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18+ */
19+
20+#ifndef FS_ITEMLOADER_H_107F1D3EECC94CD0A0F528843010D5D4
21+#define FS_ITEMLOADER_H_107F1D3EECC94CD0A0F528843010D5D4
22+
23+#include "fileloader.h"
24+
25+enum itemgroup_t {
26+ ITEM_GROUP_NONE,
27+
28+ ITEM_GROUP_GROUND,
29+ ITEM_GROUP_CONTAINER,
30+ ITEM_GROUP_WEAPON, //deprecated
31+ ITEM_GROUP_AMMUNITION, //deprecated
32+ ITEM_GROUP_ARMOR, //deprecated
33+ ITEM_GROUP_CHARGES,
34+ ITEM_GROUP_TELEPORT, //deprecated
35+ ITEM_GROUP_MAGICFIELD, //deprecated
36+ ITEM_GROUP_WRITEABLE, //deprecated
37+ ITEM_GROUP_KEY, //deprecated
38+ ITEM_GROUP_SPLASH,
39+ ITEM_GROUP_FLUID,
40+ ITEM_GROUP_DOOR, //deprecated
41+ ITEM_GROUP_DEPRECATED,
42+
43+ ITEM_GROUP_LAST
44+};
45+
46+/////////OTB specific//////////////
47+enum clientVersion_t {
48+ CLIENT_VERSION_750 = 1,
49+ CLIENT_VERSION_755 = 2,
50+ CLIENT_VERSION_760 = 3,
51+ CLIENT_VERSION_770 = 3,
52+ CLIENT_VERSION_780 = 4,
53+ CLIENT_VERSION_790 = 5,
54+ CLIENT_VERSION_792 = 6,
55+ CLIENT_VERSION_800 = 7,
56+ CLIENT_VERSION_810 = 8,
57+ CLIENT_VERSION_811 = 9,
58+ CLIENT_VERSION_820 = 10,
59+ CLIENT_VERSION_830 = 11,
60+ CLIENT_VERSION_840 = 12,
61+ CLIENT_VERSION_841 = 13,
62+ CLIENT_VERSION_842 = 14,
63+ CLIENT_VERSION_850 = 15,
64+ CLIENT_VERSION_854_BAD = 16,
65+ CLIENT_VERSION_854 = 17,
66+ CLIENT_VERSION_855 = 18,
67+ CLIENT_VERSION_860_OLD = 19,
68+ CLIENT_VERSION_860 = 20,
69+ CLIENT_VERSION_861 = 21,
70+ CLIENT_VERSION_862 = 22,
71+ CLIENT_VERSION_870 = 23,
72+ CLIENT_VERSION_871 = 24,
73+ CLIENT_VERSION_872 = 25,
74+ CLIENT_VERSION_873 = 26,
75+ CLIENT_VERSION_900 = 27,
76+ CLIENT_VERSION_910 = 28,
77+ CLIENT_VERSION_920 = 29,
78+ CLIENT_VERSION_940 = 30,
79+ CLIENT_VERSION_944_V1 = 31,
80+ CLIENT_VERSION_944_V2 = 32,
81+ CLIENT_VERSION_944_V3 = 33,
82+ CLIENT_VERSION_944_V4 = 34,
83+ CLIENT_VERSION_946 = 35,
84+ CLIENT_VERSION_950 = 36,
85+ CLIENT_VERSION_952 = 37,
86+ CLIENT_VERSION_953 = 38,
87+ CLIENT_VERSION_954 = 39,
88+ CLIENT_VERSION_960 = 40,
89+ CLIENT_VERSION_961 = 41,
90+ CLIENT_VERSION_963 = 42,
91+ CLIENT_VERSION_970 = 43,
92+ CLIENT_VERSION_980 = 44,
93+ CLIENT_VERSION_981 = 45,
94+ CLIENT_VERSION_982 = 46,
95+ CLIENT_VERSION_983 = 47,
96+ CLIENT_VERSION_985 = 48,
97+ CLIENT_VERSION_986 = 49,
98+ CLIENT_VERSION_1010 = 50,
99+ CLIENT_VERSION_1020 = 51,
100+ CLIENT_VERSION_1021 = 52,
101+ CLIENT_VERSION_1030 = 53,
102+ CLIENT_VERSION_1031 = 54,
103+ CLIENT_VERSION_1035 = 55,
104+ CLIENT_VERSION_1076 = 56,
105+ CLIENT_VERSION_1098 = 57,
106+};
107+
108+enum rootattrib_ {
109+ ROOT_ATTR_VERSION = 0x01,
110+};
111+
112+enum itemattrib_t {
113+ ITEM_ATTR_FIRST = 0x10,
114+ ITEM_ATTR_SERVERID = ITEM_ATTR_FIRST,
115+ ITEM_ATTR_CLIENTID,
116+ ITEM_ATTR_NAME,
117+ ITEM_ATTR_DESCR,
118+ ITEM_ATTR_SPEED,
119+ ITEM_ATTR_SLOT,
120+ ITEM_ATTR_MAXITEMS,
121+ ITEM_ATTR_WEIGHT,
122+ ITEM_ATTR_WEAPON,
123+ ITEM_ATTR_AMU,
124+ ITEM_ATTR_ARMOR,
125+ ITEM_ATTR_MAGLEVEL,
126+ ITEM_ATTR_MAGFIELDTYPE,
127+ ITEM_ATTR_WRITEABLE,
128+ ITEM_ATTR_ROTATETO,
129+ ITEM_ATTR_DECAY,
130+ ITEM_ATTR_SPRITEHASH,
131+ ITEM_ATTR_MINIMAPCOLOR,
132+ ITEM_ATTR_07,
133+ ITEM_ATTR_08,
134+ ITEM_ATTR_LIGHT,
135+
136+ //1-byte aligned
137+ ITEM_ATTR_DECAY2, //deprecated
138+ ITEM_ATTR_WEAPON2, //deprecated
139+ ITEM_ATTR_AMU2, //deprecated
140+ ITEM_ATTR_ARMOR2, //deprecated
141+ ITEM_ATTR_WRITEABLE2, //deprecated
142+ ITEM_ATTR_LIGHT2,
143+ ITEM_ATTR_TOPORDER,
144+ ITEM_ATTR_WRITEABLE3, //deprecated
145+
146+ ITEM_ATTR_WAREID,
147+
148+ ITEM_ATTR_LAST
149+};
150+
151+enum itemflags_t {
152+ FLAG_BLOCK_SOLID = 1 << 0,
153+ FLAG_BLOCK_PROJECTILE = 1 << 1,
154+ FLAG_BLOCK_PATHFIND = 1 << 2,
155+ FLAG_HAS_HEIGHT = 1 << 3,
156+ FLAG_USEABLE = 1 << 4,
157+ FLAG_PICKUPABLE = 1 << 5,
158+ FLAG_MOVEABLE = 1 << 6,
159+ FLAG_STACKABLE = 1 << 7,
160+ FLAG_FLOORCHANGEDOWN = 1 << 8, // unused
161+ FLAG_FLOORCHANGENORTH = 1 << 9, // unused
162+ FLAG_FLOORCHANGEEAST = 1 << 10, // unused
163+ FLAG_FLOORCHANGESOUTH = 1 << 11, // unused
164+ FLAG_FLOORCHANGEWEST = 1 << 12, // unused
165+ FLAG_ALWAYSONTOP = 1 << 13,
166+ FLAG_READABLE = 1 << 14,
167+ FLAG_ROTATABLE = 1 << 15,
168+ FLAG_HANGABLE = 1 << 16,
169+ FLAG_VERTICAL = 1 << 17,
170+ FLAG_HORIZONTAL = 1 << 18,
171+ FLAG_CANNOTDECAY = 1 << 19, // unused
172+ FLAG_ALLOWDISTREAD = 1 << 20,
173+ FLAG_UNUSED = 1 << 21, // unused
174+ FLAG_CLIENTCHARGES = 1 << 22, /* deprecated */
175+ FLAG_LOOKTHROUGH = 1 << 23,
176+ FLAG_ANIMATION = 1 << 24,
177+ FLAG_FULLTILE = 1 << 25, // unused
178+ FLAG_FORCEUSE = 1 << 26,
179+};
180+
181+//1-byte aligned structs
182+#pragma pack(1)
183+
184+struct VERSIONINFO {
185+ uint32_t dwMajorVersion;
186+ uint32_t dwMinorVersion;
187+ uint32_t dwBuildNumber;
188+ uint8_t CSDVersion[128];
189+};
190+
191+struct lightBlock2 {
192+ uint16_t lightLevel;
193+ uint16_t lightColor;
194+};
195+
196+#pragma pack()
197+/////////OTB specific//////////////
198+#endif
Top