Inseparable boolean field for items changed to UINT8

0 = removable (as before)
1 = inseparable (as before)
2+ = replaceable = inseparable, but can be replaced by a similar item

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5247 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
MaddMugsy
2012-05-01 19:08:03 +00:00
parent 83c47e0c6b
commit c237ca4dff
4 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -5733,7 +5733,7 @@ void ItemDescAttachmentsCallback( MOUSE_REGION * pRegion, INT32 iReason )
if ( !gpItemPointerSoldier || EnoughPoints( gpItemPointerSoldier, AttachmentAPCost( gpItemPointer->usItem, gpItemDescObject, gpItemPointerSoldier ), 0, TRUE ) ) if ( !gpItemPointerSoldier || EnoughPoints( gpItemPointerSoldier, AttachmentAPCost( gpItemPointer->usItem, gpItemDescObject, gpItemPointerSoldier ), 0, TRUE ) )
{ {
// if ( (Item[ gpItemPointer->usItem ].fFlags & ITEM_INSEPARABLE) && ValidAttachment( gpItemPointer->usItem, gpItemDescObject->usItem ) ) // if ( (Item[ gpItemPointer->usItem ].fFlags & ITEM_INSEPARABLE) && ValidAttachment( gpItemPointer->usItem, gpItemDescObject->usItem ) )
if ( (Item[ gpItemPointer->usItem ].inseparable ) && ValidAttachment( gpItemPointer->usItem, gpItemDescObject ) ) if ( (Item[ gpItemPointer->usItem ].inseparable == 1) && ValidAttachment( gpItemPointer->usItem, gpItemDescObject ) )
{ {
iItemPosition = uiItemPos; iItemPosition = uiItemPos;
gbMessageBoxSubObject = (UINT8)ubStatusIndex; gbMessageBoxSubObject = (UINT8)ubStatusIndex;
+5 -1
View File
@@ -806,7 +806,11 @@ typedef struct
BOOLEAN defaultundroppable; BOOLEAN defaultundroppable;
BOOLEAN unaerodynamic; BOOLEAN unaerodynamic;
BOOLEAN electronic; BOOLEAN electronic;
BOOLEAN inseparable; UINT8 inseparable; //Madd:Normally, an inseparable attachment can never be removed.
//But now we will make it so that these items can be replaced, but still not removed directly.
//0 = removeable (as before)
//1 = inseparable (as before)
//2 = inseparable, but replaceable
CHAR16 szLongItemName[80]; CHAR16 szLongItemName[80];
CHAR16 szItemDesc[400]; CHAR16 szItemDesc[400];
+1 -1
View File
@@ -2308,7 +2308,7 @@ BOOLEAN ValidItemAttachmentSlot( OBJECTTYPE * pObj, UINT16 usAttachment, BOOLEAN
ubSlotIndex = usAttachmentSlotIndexVector[slotCount]; ubSlotIndex = usAttachmentSlotIndexVector[slotCount];
//WarmSteel - does this particular slot already hold an item? :( If we have a pAttachInSlot we're trying to switch, so then it doesn't matter. //WarmSteel - does this particular slot already hold an item? :( If we have a pAttachInSlot we're trying to switch, so then it doesn't matter.
if(!fIgnoreAttachmentInSlot && pAttachment->exists() && fAttemptingAttachment && (!ppAttachInSlot || Item[pAttachment->usItem].inseparable)){ if(!fIgnoreAttachmentInSlot && pAttachment->exists() && fAttemptingAttachment && (!ppAttachInSlot || Item[pAttachment->usItem].inseparable == 1)){
//If we have a parameter to return pAttachment to, store it, else the item does not attach to this slot. //If we have a parameter to return pAttachment to, store it, else the item does not attach to this slot.
fSimilarItems = TRUE; fSimilarItems = TRUE;
usSimilarItem = pAttachment->usItem; usSimilarItem = pAttachment->usItem;
+1 -1
View File
@@ -701,7 +701,7 @@ itemEndElementHandle(void *userData, const XML_Char *name)
else if(strcmp(name, "Inseparable") == 0) else if(strcmp(name, "Inseparable") == 0)
{ {
pData->curElement = ELEMENT; pData->curElement = ELEMENT;
pData->curItem.inseparable = (BOOLEAN) atol(pData->szCharData); pData->curItem.inseparable = (UINT8) atol(pData->szCharData);
} }
else if(strcmp(name, "BR_NewInventory") == 0) else if(strcmp(name, "BR_NewInventory") == 0)
{ {