1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-04-01 21:06:43 +00:00

[General] Modernize packet style for PlayerJournal

This commit is contained in:
David Cernat 2019-10-21 07:01:36 +03:00
parent 1ab5916078
commit 4f98d67ed4
4 changed files with 34 additions and 34 deletions

View file

@ -13,7 +13,7 @@ void QuestFunctions::ClearJournalChanges(unsigned short pid) noexcept
Player *player;
GET_PLAYER(pid, player, );
player->journalChanges.journalItems.clear();
player->journalChanges.clear();
}
unsigned int QuestFunctions::GetJournalChangesSize(unsigned short pid) noexcept
@ -21,7 +21,7 @@ unsigned int QuestFunctions::GetJournalChangesSize(unsigned short pid) noexcept
Player *player;
GET_PLAYER(pid, player, 0);
return player->journalChanges.count;
return player->journalChanges.size();
}
void QuestFunctions::AddJournalEntry(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId) noexcept
@ -36,7 +36,7 @@ void QuestFunctions::AddJournalEntry(unsigned short pid, const char* quest, unsi
journalItem.actorRefId = actorRefId;
journalItem.hasTimestamp = false;
player->journalChanges.journalItems.push_back(journalItem);
player->journalChanges.push_back(journalItem);
}
void QuestFunctions::AddJournalEntryWithTimestamp(unsigned short pid, const char* quest, unsigned int index, const char* actorRefId,
@ -56,7 +56,7 @@ void QuestFunctions::AddJournalEntryWithTimestamp(unsigned short pid, const char
journalItem.timestamp.month = month;
journalItem.timestamp.day = day;
player->journalChanges.journalItems.push_back(journalItem);
player->journalChanges.push_back(journalItem);
}
void QuestFunctions::AddJournalIndex(unsigned short pid, const char* quest, unsigned int index) noexcept
@ -69,7 +69,7 @@ void QuestFunctions::AddJournalIndex(unsigned short pid, const char* quest, unsi
journalItem.quest = quest;
journalItem.index = index;
player->journalChanges.journalItems.push_back(journalItem);
player->journalChanges.push_back(journalItem);
}
void QuestFunctions::SetReputation(unsigned short pid, int value) noexcept
@ -85,10 +85,10 @@ const char *QuestFunctions::GetJournalItemQuest(unsigned short pid, unsigned int
Player *player;
GET_PLAYER(pid, player, "");
if (index >= player->journalChanges.count)
if (index >= player->journalChanges.size())
return "invalid";
return player->journalChanges.journalItems.at(index).quest.c_str();
return player->journalChanges.at(index).quest.c_str();
}
int QuestFunctions::GetJournalItemIndex(unsigned short pid, unsigned int index) noexcept
@ -96,7 +96,7 @@ int QuestFunctions::GetJournalItemIndex(unsigned short pid, unsigned int index)
Player *player;
GET_PLAYER(pid, player, 0);
return player->journalChanges.journalItems.at(index).index;
return player->journalChanges.at(index).index;
}
int QuestFunctions::GetJournalItemType(unsigned short pid, unsigned int index) noexcept
@ -104,7 +104,7 @@ int QuestFunctions::GetJournalItemType(unsigned short pid, unsigned int index) n
Player *player;
GET_PLAYER(pid, player, 0);
return player->journalChanges.journalItems.at(index).type;
return player->journalChanges.at(index).type;
}
const char *QuestFunctions::GetJournalItemActorRefId(unsigned short pid, unsigned int index) noexcept
@ -112,7 +112,7 @@ const char *QuestFunctions::GetJournalItemActorRefId(unsigned short pid, unsigne
Player *player;
GET_PLAYER(pid, player, 0);
return player->journalChanges.journalItems.at(index).actorRefId.c_str();
return player->journalChanges.at(index).actorRefId.c_str();
}
int QuestFunctions::GetReputation(unsigned short pid) noexcept

View file

@ -732,17 +732,25 @@ void LocalPlayer::addSpells()
void LocalPlayer::addJournalItems()
{
for (const auto &journalItem : journalChanges.journalItems)
for (const auto &journalItem : journalChanges)
{
MWWorld::Ptr ptrFound;
if (journalItem.type == JournalItem::ENTRY)
{
LOG_APPEND(TimedLog::LOG_VERBOSE, "- type: ENTRY, quest: %s, index: %i, actorRefId: %s",
journalItem.quest.c_str(), journalItem.index, journalItem.actorRefId.c_str());
ptrFound = MWBase::Environment::get().getWorld()->searchPtr(journalItem.actorRefId, false);
if (!ptrFound)
ptrFound = getPlayerPtr();
}
else
{
LOG_APPEND(TimedLog::LOG_VERBOSE, "- type: INDEX, quest: %s, index: %i",
journalItem.quest.c_str(), journalItem.index);
}
try
{
@ -1504,7 +1512,7 @@ void LocalPlayer::sendQuickKey(unsigned short slot, int type, const std::string&
void LocalPlayer::sendJournalEntry(const std::string& quest, int index, const MWWorld::Ptr& actor)
{
journalChanges.journalItems.clear();
journalChanges.clear();
mwmp::JournalItem journalItem;
journalItem.type = JournalItem::ENTRY;
@ -1513,7 +1521,7 @@ void LocalPlayer::sendJournalEntry(const std::string& quest, int index, const MW
journalItem.actorRefId = actor.getCellRef().getRefId();
journalItem.hasTimestamp = false;
journalChanges.journalItems.push_back(journalItem);
journalChanges.push_back(journalItem);
getNetworking()->getPlayerPacket(ID_PLAYER_JOURNAL)->setPlayer(this);
getNetworking()->getPlayerPacket(ID_PLAYER_JOURNAL)->Send();
@ -1521,14 +1529,14 @@ void LocalPlayer::sendJournalEntry(const std::string& quest, int index, const MW
void LocalPlayer::sendJournalIndex(const std::string& quest, int index)
{
journalChanges.journalItems.clear();
journalChanges.clear();
mwmp::JournalItem journalItem;
journalItem.type = JournalItem::INDEX;
journalItem.quest = quest;
journalItem.index = index;
journalChanges.journalItems.push_back(journalItem);
journalChanges.push_back(journalItem);
getNetworking()->getPlayerPacket(ID_PLAYER_JOURNAL)->setPlayer(this);
getNetworking()->getPlayerPacket(ID_PLAYER_JOURNAL)->Send();

View file

@ -88,12 +88,6 @@ namespace mwmp
int type; // 0 - Cell load, 1 - Cell unload
};
struct JournalChanges
{
std::vector<JournalItem> journalItems;
unsigned int count;
};
struct FactionChanges
{
std::vector<Faction> factions;
@ -245,7 +239,7 @@ namespace mwmp
InventoryChanges inventoryChanges;
SpellbookChanges spellbookChanges;
QuickKeyChanges quickKeyChanges;
JournalChanges journalChanges;
std::vector<JournalItem> journalChanges;
FactionChanges factionChanges;
TopicChanges topicChanges;
BookChanges bookChanges;

View file

@ -13,20 +13,21 @@ void PacketPlayerJournal::Packet(RakNet::BitStream *bs, bool send)
{
PlayerPacket::Packet(bs, send);
uint32_t count;
if (send)
player->journalChanges.count = (unsigned int)(player->journalChanges.journalItems.size());
else
player->journalChanges.journalItems.clear();
count = static_cast<uint32_t>(player->journalChanges.size());
RW(player->journalChanges.count, send);
RW(count, send);
for (unsigned int i = 0; i < player->journalChanges.count; i++)
if (!send)
{
JournalItem journalItem;
if (send)
journalItem = player->journalChanges.journalItems.at(i);
player->journalChanges.clear();
player->journalChanges.resize(count);
}
for (auto &&journalItem : player->journalChanges)
{
RW(journalItem.type, send);
RW(journalItem.quest, send, true);
RW(journalItem.index, send);
@ -44,8 +45,5 @@ void PacketPlayerJournal::Packet(RakNet::BitStream *bs, bool send)
RW(journalItem.timestamp.day, send);
}
}
if (!send)
player->journalChanges.journalItems.push_back(journalItem);
}
}