Modernize project codebase (#906)

* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides

* Add safety checks and fix a issue with vector going OOR
This commit is contained in:
ModMaker101 2026-03-08 19:08:36 -04:00 committed by GitHub
parent 88798b501d
commit 28614b922f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
1373 changed files with 20086 additions and 19527 deletions

View file

@ -21,35 +21,40 @@ MerchantRecipeList::~MerchantRecipeList()
MerchantRecipe *MerchantRecipeList::getRecipeFor(shared_ptr<ItemInstance> buyA, shared_ptr<ItemInstance> buyB, int selectionHint)
{
if (selectionHint > 0 && selectionHint < m_recipes.size())
if (buyA == nullptr)
{
return nullptr;
}
if (selectionHint > 0 && selectionHint < static_cast<int>(m_recipes.size()))
{
// attempt to match vs the hint
MerchantRecipe *r = m_recipes.at(selectionHint);
if (buyA->id == r->getBuyAItem()->id && ((buyB == NULL && !r->hasSecondaryBuyItem()) || (r->hasSecondaryBuyItem() && buyB != NULL && r->getBuyBItem()->id == buyB->id)))
if (buyA->id == r->getBuyAItem()->id && ((buyB == nullptr && !r->hasSecondaryBuyItem()) || (r->hasSecondaryBuyItem() && buyB != nullptr && r->getBuyBItem()->id == buyB->id)))
{
if (buyA->count >= r->getBuyAItem()->count && (!r->hasSecondaryBuyItem() || buyB->count >= r->getBuyBItem()->count))
{
return r;
}
}
return NULL;
return nullptr;
}
for (int i = 0; i < m_recipes.size(); i++)
for (size_t i = 0; i < m_recipes.size(); i++)
{
MerchantRecipe *r = m_recipes.at(i);
if (buyA->id == r->getBuyAItem()->id && buyA->count >= r->getBuyAItem()->count
&& ((!r->hasSecondaryBuyItem() && buyB == NULL) || (r->hasSecondaryBuyItem() && buyB != NULL && r->getBuyBItem()->id == buyB->id && buyB->count >= r->getBuyBItem()->count)))
&& ((!r->hasSecondaryBuyItem() && buyB == nullptr) || (r->hasSecondaryBuyItem() && buyB != nullptr && r->getBuyBItem()->id == buyB->id && buyB->count >= r->getBuyBItem()->count)))
{
return r;
}
}
return NULL;
return nullptr;
}
bool MerchantRecipeList::addIfNewOrBetter(MerchantRecipe *recipe)
{
bool added = false;
for (int i = 0; i < m_recipes.size(); i++)
for (size_t i = 0; i < m_recipes.size(); i++)
{
MerchantRecipe *r = m_recipes.at(i);
if (recipe->isSame(r))
@ -69,32 +74,32 @@ bool MerchantRecipeList::addIfNewOrBetter(MerchantRecipe *recipe)
MerchantRecipe *MerchantRecipeList::getMatchingRecipeFor(shared_ptr<ItemInstance> buy, shared_ptr<ItemInstance> buyB, shared_ptr<ItemInstance> sell)
{
for (int i = 0; i < m_recipes.size(); i++)
for (size_t i = 0; i < m_recipes.size(); i++)
{
MerchantRecipe *r = m_recipes.at(i);
if (buy->id == r->getBuyAItem()->id && buy->count >= r->getBuyAItem()->count && sell->id == r->getSellItem()->id)
{
if (!r->hasSecondaryBuyItem() || (buyB != NULL && buyB->id == r->getBuyBItem()->id && buyB->count >= r->getBuyBItem()->count))
if (!r->hasSecondaryBuyItem() || (buyB != nullptr && buyB->id == r->getBuyBItem()->id && buyB->count >= r->getBuyBItem()->count))
{
return r;
}
}
}
return NULL;
return nullptr;
}
void MerchantRecipeList::writeToStream(DataOutputStream *stream)
{
stream->writeByte((byte) (m_recipes.size() & 0xff));
for (int i = 0; i < m_recipes.size(); i++)
stream->writeByte(static_cast<byte>(m_recipes.size() & 0xff));
for (size_t i = 0; i < m_recipes.size(); i++)
{
MerchantRecipe *r = m_recipes.at(i);
Packet::writeItem(r->getBuyAItem(), stream);
Packet::writeItem(r->getSellItem(), stream);
shared_ptr<ItemInstance> buyBItem = r->getBuyBItem();
stream->writeBoolean(buyBItem != NULL);
if (buyBItem != NULL)
stream->writeBoolean(buyBItem != nullptr);
if (buyBItem != nullptr)
{
Packet::writeItem(buyBItem, stream);
}
@ -149,7 +154,7 @@ CompoundTag *MerchantRecipeList::createTag()
CompoundTag *tag = new CompoundTag();
ListTag<CompoundTag> *list = new ListTag<CompoundTag>(L"Recipes");
for (int i = 0; i < m_recipes.size(); i++)
for (size_t i = 0; i < m_recipes.size(); i++)
{
MerchantRecipe *merchantRecipe = m_recipes.at(i);
list->add(merchantRecipe->createTag());
@ -166,6 +171,10 @@ void MerchantRecipeList::push_back(MerchantRecipe *recipe)
MerchantRecipe *MerchantRecipeList::at(size_t index)
{
if (index >= m_recipes.size())
{
return nullptr;
}
return m_recipes.at(index);
}