Cleaned up attachment removal code

Fixed rare issue with squads and movement groups not being defined at game start.
Fixed wrong type declarations in header files

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8407 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
TheBob
2017-06-12 17:09:25 +00:00
parent 5d6de52be9
commit 3c4da04532
10 changed files with 65 additions and 74 deletions
@@ -5108,7 +5108,7 @@ void SortSectorInventoryEmptyLBE() {
void SortSectorInventorySeparateAttachments()
{
// attachment ref and pointer
OBJECTTYPE gTempObject;
//OBJECTTYPE gTempObject;
OBJECTTYPE * gpTempObject = NULL;
// current item
@@ -5143,15 +5143,7 @@ void SortSectorInventorySeparateAttachments()
//WarmSteel - This actually still works with NAS, be it by accident
if (gpTempObject != NULL && pInventoryItem->object.RemoveAttachment(gpTempObject, pNewObj, x))
{
// Bob: sanity check! I think RemoveAttachment shouldn't be used like it was here.
if (gpTempObject->usItem > 0 && (gpTempObject->ubNumberOfObjects != 1 || gpTempObject->usItem > MAXITEMS || gpTempObject->ubMission != 0)) {
gpTempObject = pNewObj;
}
// Bob: not sure why was this a ref instead of a pointer,
// I'll leave it here so it gets cleaned up when going out of scope
// since DeleteObj() doesn't free all the memory
gTempObject = *gpTempObject;
gpTempObject = pNewObj;
AutoPlaceObjectToWorld(pSoldier, gpTempObject, true);
if (gpTempObject != NULL)