widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #15170
[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