summaryrefslogtreecommitdiffstats
path: root/src/BlockID.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/BlockID.h')
-rw-r--r--src/BlockID.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/BlockID.h b/src/BlockID.h
index bb06722d2..8f2cee02e 100644
--- a/src/BlockID.h
+++ b/src/BlockID.h
@@ -1,7 +1,13 @@
#pragma once
+// The following hackery is to allow typed C++ enum for C++ code, yet have ToLua process the values.
+// ToLua doesn't understand typed enums, so we use preprocessor to hide it from ToLua.
+
+enum ENUM_BLOCK_ID : BLOCKTYPE
+#if 0
+enum ENUM_BLOCK_ID // tolua_export
+#endif
// tolua_begin
-enum ENUM_BLOCK_ID
{
E_BLOCK_AIR = 0,
E_BLOCK_STONE = 1,
@@ -221,6 +227,10 @@ enum ENUM_BLOCK_ID
};
// tolua_end
+
+
+
+
// tolua_begin
enum ENUM_ITEM_ID
{
@@ -1086,7 +1096,7 @@ class cIniFile;
// tolua_begin
/// Translates a blocktype string into blocktype. Takes either a number or an items.ini alias as input. Returns -1 on failure.
-extern BLOCKTYPE BlockStringToType(const AString & a_BlockTypeString);
+extern int BlockStringToType(const AString & a_BlockTypeString);
/// Translates an itemtype string into an item. Takes either a number, number^number, number:number or an items.ini alias as input. Returns true if successful.
extern bool StringToItem(const AString & a_ItemTypeString, cItem & a_Item);