--[[Utils_Ui.script The vanilla Reinit() attempted to sort the arrays by default which caused some issues with the display of mutant loot when the amount increased in the window. I've made the no-sorting an optional feature instead of the default. This is only called during mutant looting anyway, but better safe than sorry.]] function utils_ui.UICellContainer:Reinit(t, tf, nosort) self:Reset() -- If no inventory is passed, this function will just clear cells if (not t) then return end -- Create cells self.ignore_scroll = true self:Print(nil, "Reset | START Number of cells: %s", #self.cell) local sort_order = self:GetSortMethod() if(nosort) then if self.showcase then for i,sec in pairs(t) do self:AddItem(nil,sec, tf and tf[i]) end else for i,obj in pairs(t) do self:AddItem(obj, nil, tf and tf[i]) end end else if self.showcase then for i,sec in spairs(t, sort_order) do self:AddItem(nil,sec, tf and tf[i]) end else for i,obj in spairs(t, sort_order) do self:AddItem(obj, nil, tf and tf[i]) end end end self.ignore_scroll = false self:Print(nil, "Reset | END Number of cells: %s", #self.cell) self:Scroll_Reinit() end --[[bind_crow.script Vanilla update() used a flawed method that would always return false and prevent crows from being lootable at all. It also was significalty less robust than Faustle's updated bind_monster update() function, but was checking all the exact same things so I simply ported it over. Considering my mod would have made existing fixes to crow looting fail I implemented it myself.]] function bind_crow.crow_binder:update(delta) -- standart update object_binder.update(self, delta) if not (self.object:alive()) then if (self.body_timer<=time_global()-120000) and (self.body_timer~=0) then printf("releasing object ["..self.object:name().."]") local se_obj = alife_object(self.object:id()) if (se_obj) then safe_release_manager.release(se_obj) end end --Alundaio -- By Faustle - Cloned over from bind_monster.script with minimial edits-tB if not (self.object:alive()) then local looted = se_load_var(self.object:id(),self.object:name(),"looted") if (not looted) then if (item_knife.is_equipped()) then if (item_knife.get_condition() < 0.15) then self.object:set_callback(callback.use_object, nil) self.object:set_tip_text(game.translate_string("st_body_knife_bad")) return end if (not item_knife.can_loot(self.object:section())) then self.object:set_callback(callback.use_object, nil) self.object:set_tip_text(game.translate_string("st_body_knife_weak")) else self.object:set_callback(callback.use_object, self.use_callback, self) self.object:set_tip_text(game.translate_string("st_body_loot")) end else self.object:set_callback(callback.use_object, nil) self.object:set_tip_text(game.translate_string("st_body_knife_needed")) return end else self.object:set_callback(callback.use_object, nil) self.object:set_tip_text("") end return end -- --Alundaio end end