Decoration: Stop DecoSimple::resolveNodeNames from complaining about no node name...
authorkwolekr <kwolekr@minetest.net>
Sun, 17 Nov 2013 07:22:24 +0000 (02:22 -0500)
committerkwolekr <kwolekr@minetest.net>
Sun, 17 Nov 2013 07:22:24 +0000 (02:22 -0500)
Fix warning message for spawnby nodes

Prevent type-punning warning caused by casting enum to int

src/mapgen.cpp
src/script/lua_api/l_mapgen.cpp

index 301601b6c4441fbb64c260b6df7afe39c2b0b129..f6311849139ad9956cc99fa7f1da0d984cb3a14a 100644 (file)
@@ -382,7 +382,7 @@ void Decoration::placeCutoffs(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
 void DecoSimple::resolveNodeNames(INodeDefManager *ndef) {
        Decoration::resolveNodeNames(ndef);
        
-       if (c_deco == CONTENT_IGNORE) {
+       if (c_deco == CONTENT_IGNORE && !decolist_names.size()) {
                c_deco = ndef->getId(deco_name);
                if (c_deco == CONTENT_IGNORE) {
                        errorstream << "DecoSimple::resolveNodeNames: decoration node '"
@@ -394,7 +394,7 @@ void DecoSimple::resolveNodeNames(INodeDefManager *ndef) {
                c_spawnby = ndef->getId(spawnby_name);
                if (c_spawnby == CONTENT_IGNORE) {
                        errorstream << "DecoSimple::resolveNodeNames: spawnby node '"
-                               << deco_name << "' not defined" << std::endl;
+                               << spawnby_name << "' not defined" << std::endl;
                        nspawnby = -1;
                        c_spawnby = CONTENT_AIR;
                }
index 822685e34d4eec0271d0eb723c5b8749d05ba8d5..b0ad202be043b65febc8975b8d01cea2d6b9b200 100644 (file)
@@ -522,11 +522,11 @@ int ModApiMapgen::l_place_schematic(lua_State *L)
        if (!read_schematic(L, 2, &dschem, getServer(L)))
                return 0;
                
-       Rotation rot = ROTATE_0;
+       int rot = ROTATE_0;
        if (lua_isstring(L, 3))
-               string_to_enum(es_Rotation, (int &)rot, std::string(lua_tostring(L, 3)));
+               string_to_enum(es_Rotation, rot, std::string(lua_tostring(L, 3)));
                
-       dschem.rotation = rot;
+       dschem.rotation = (Rotation)rot;
 
        if (lua_istable(L, 4)) {
                int index = 4;