Code:
***************
*** 2440,2459 ****
--- 2440,2464 ----
errbuf);
safe_delete_array(query);
}
}
+ database.RunQuery(query, MakeAnyLenString(&query, "LOCK TABLES `character_pet_inventory` WRITE", errbuf));
+ printf(errbuf);
+
for(i=0; i<MAX_WORN_INVENTORY; i++) {
if(petinfo->Items[i]) {
database.RunQuery(query, MakeAnyLenString(&query,
"INSERT INTO `character_pet_inventory` (`char_id`, `pet`, `slot`, `item_id`) values (%u, 0, %u, %u)",
c->CharacterID(), i, petinfo->Items[i]), errbuf);
// should check for errors
safe_delete_array(query);
}
}
+ database.RunQuery(query, MakeAnyLenString(&query,"UNLOCK TABLES", errbuf));
+ printf(errbuf);
if(!database.RunQuery(query, MakeAnyLenString(&query,
"INSERT INTO `character_pet_info` (`char_id`, `pet`, `petname`, `petpower`, `spell_id`, `hp`, `mana`) "
"values (%u, 1, '%s', %u, %u, %u, %u) "
"ON DUPLICATE KEY UPDATE `petname`='%s', `petpower`=%i, `spell_id`=%u, `hp`=%u, `mana`=%u",
***************
*** 2581,2590 ****
--- 2586,2598 ----
LogFile->write(EQEMuLog::Error, "Error in LoadPetInfo query '%s': %s", query, errbuf);
safe_delete_array(query);
return;
}
+ database.RunQuery(query, MakeAnyLenString(&query, "LOCK TABLES `character_pet_inventory` WRITE", errbuf));
+ printf(errbuf);
+
if (database.RunQuery(query, MakeAnyLenString(&query,
"SELECT `pet`, `slot`, `item_id` FROM `character_pet_inventory` WHERE `char_id`=%u",
c->CharacterID()), errbuf, &result))
{
safe_delete_array(query);
***************
*** 2608,2614 ****
--- 2616,2625 ----
else {
LogFile->write(EQEMuLog::Error, "Error in LoadPetInfo query '%s': %s", query, errbuf);
safe_delete_array(query);
return;
}
+ // Unlock the character_pet_inventory table so people can read
+ database.RunQuery(query, MakeAnyLenString(&query, "UNLOCK TABLES",errbuf));
+ printf(errbuf);
}