← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/fix_immovabledescr_unpersist into lp:widelands

 

GunChleoc has proposed merging lp:~widelands-dev/widelands/fix_immovabledescr_unpersist into lp:widelands.

Commit message:
Fix unpersisting of LuaImmovableDescription for tribe immovables.

Requested reviews:
  Widelands Developers (widelands-dev)

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/fix_immovabledescr_unpersist/+merge/357941

This bug does not seem to be triggered currently; I found it while looking at the code.
-- 
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/fix_immovabledescr_unpersist into lp:widelands.
=== modified file 'src/scripting/lua_map.cc'
--- src/scripting/lua_map.cc	2018-10-27 09:45:14 +0000
+++ src/scripting/lua_map.cc	2018-10-29 11:05:36 +0000
@@ -1868,10 +1868,13 @@
 	UNPERS_STRING("name", name);
 	const World& world = get_egbase(L).world();
 	DescriptionIndex idx = world.get_immovable_index(name);
-	if (idx == INVALID_INDEX) {
-		throw LuaError((boost::format("Immovable '%s' doesn't exist.") % name).str());
-	}
-	set_description_pointer(world.get_immovable_descr(idx));
+	if (idx != INVALID_INDEX) {
+        set_description_pointer(world.get_immovable_descr(idx));
+    } else {
+        const Tribes& tribes = get_egbase(L).tribes();
+        idx = tribes.safe_immovable_index(name);
+        set_description_pointer(tribes.get_immovable_descr(idx));
+    }
 }
 
 /* RST


Follow ups