- Home /
Hashtable and ArrayList problem
This is my code
function PlugIn (itemSlots : int, missileTurret : MissileTurret)
{
/*
This function checks if there is room for an item,
and inserts it into the body if there is.
*/
var componentIndex : int;
var hashtableValueComparer : int;
var componentInserted : boolean;
hashtableValueComparer = 1;
componentInserted = false;
if(itemSlots <= availableOffensiveSlots)
{
//inserts the component into a slot if there is room
availableOffensiveSlots -= itemSlots;
componentIndex = offensiveComponents.Add(missileTurret);
while (!componentInserted)
{
//finds a physical slot on the body to insert the component into
if(!offensiveComponentPlacement.ContainsValue(hashtableValueComparer))
{
//inserts if the slot is open
offensiveComponentPlacement[componentIndex] = hashtableValueComparer;
componentInserted = true;
}
else
{
//goes to the next value if there is no room
hashtableValueComparer ++;
componentInserted = false;
}
}
//add weight to total weight
}
else
{
//gives an error message if there is no room for the component
print("Not enough room to plug in the offensive component");
}
}
My problem right now is that the key in the hashtable is linked to the index in the array. That means if something is removed from the array (and it almost certainly will be in the Unplug function), the items in the array are moved, so then the items are now associated with the wrong value in the hashtable. How can I work around this?
(sorry about the spaces in the code. IDK why it turned out like that when I copy/pasted it)
I'm slotting weapons on a mech (for the most part). The array holds all the properties of the weapon, and the hashtable holds what physical slot the weapon is in.
Your answer
Follow this Question
Related Questions
Default Null Value for Key Not Found in Dictionary? 1 Answer
Find specific element when duplicates exist in list. 1 Answer
What type of array should I use to handle a convoy? 0 Answers
C# array not behaving as expected 0 Answers
Wierd Animation Bug 0 Answers