Skip to content

Commit 021d4a9

Browse files
committed
Fix an unlikely modding hang.
1 parent d5243b9 commit 021d4a9

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

LuaUI/Widgets/unit_start_state.lua

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,8 +1147,16 @@ local function AddFactoryOfUnits(defName, plateDefName)
11471147
addUnit(plateDefName, name)
11481148
end
11491149
for i = 1, #ud.buildOptions do
1150-
addUnit(UnitDefs[ud.buildOptions[i]].name, name)
1151-
unitsToFactory[UnitDefs[ud.buildOptions[i]].name] = defName
1150+
local buildeeDef = UnitDefs[ud.buildOptions[i]]
1151+
local buildeeDefName = buildeeDef.name
1152+
addUnit(buildeeDefName, name)
1153+
1154+
-- sufficiently insane mods can have factories build each other,
1155+
-- leading to infinite recursion with "inherit from fac" states
1156+
if not buildeeDef.isFactory then
1157+
1158+
unitsToFactory[buildeeDefName] = defName
1159+
end
11521160
end
11531161
end
11541162

0 commit comments

Comments
 (0)