ReplaceItemWithNewLambda.c
/**@class ReplaceItemWithNewLambda
* @brief adds automatic QuickBar handling
**/
class ReplaceItemWithNewLambda : ReplaceItemWithNewLambdaBase
{
PlayerBase m_Player;
int m_IndexQB;
void ReplaceItemWithNewLambda(EntityAI old_item, string new_item_type, PlayerBase player)
{
m_Player = player;
m_IndexQB = -1;
if (m_Player)
m_IndexQB = m_Player.FindQuickBarEntityIndex(old_item);
}
/**@fn CopyOldPropertiesToNew
* @brief copy properties from old object to the created one
*
* @NOTE: This is supposed to be overriden in derived classes, like for example right now.
**/
override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
{
super.CopyOldPropertiesToNew(old_item, new_item);
if (m_Player && m_IndexQB != -1)
{
m_Player.SetQuickBarEntityShortcut(new_item, m_IndexQB, true);
}
}
override void OnSuccess(EntityAI new_item)
{
super.OnSuccess(new_item);
if (m_Player && m_IndexQB != -1)
{
m_Player.SetQuickBarEntityShortcut(new_item, m_IndexQB, true);
}
}
};