int ManufactureSchematicImplementation::addIngredientToSlot(CreatureObject* player, SceneObject* satchel, TangibleObject* tano, int slot) { if (slot >= ingredientSlots.size()) return IngredientSlot::INVALID; Reference<IngredientSlot*> ingredientSlot = ingredientSlots.get(slot); if (ingredientSlot == NULL) return IngredientSlot::INVALID; bool wasEmpty = false; if(ingredientSlot->isFull()) return IngredientSlot::FULL; if(ingredientSlot->isEmpty()) wasEmpty = true; if(!ingredientSlot->add(player, satchel, tano)) return IngredientSlot::INVALIDINGREDIENT; if(wasEmpty) { updateIngredientCounter(); increaseComplexity(); // DMSCO6 *************************************************** ManufactureSchematicObjectDeltaMessage6* dMsco6 = new ManufactureSchematicObjectDeltaMessage6(_this.getReferenceUnsafeStaticCast()); dMsco6->insertToResourceSlot(slot); dMsco6->close(); player->sendMessage(dMsco6); // End DMSCO6 **************************************************** sendDelta7(ingredientSlot, slot, player); if(possibleSyncIssue) { sendMsco7(player); possibleSyncIssue = false; } } else { possibleSyncIssue = true; /// Delta 7 sendDelta7(ingredientSlot, slot, player); } // Start DMSCO3 *********************************************************** // Updates the Complexity ManufactureSchematicObjectDeltaMessage3* dMsco3 = new ManufactureSchematicObjectDeltaMessage3(_this.getReferenceUnsafeStaticCast()); dMsco3->updateComplexity(getComplexity()); dMsco3->close(); player->sendMessage(dMsco3); // End DMSCO3 ************************************************************* return IngredientSlot::OK; }