From 648bad443bbaa4d53effa306444e69ef8d763da3 Mon Sep 17 00:00:00 2001 From: Onii-chan Date: Sun, 23 Aug 2020 09:04:38 +0200 Subject: [PATCH] Cleaned up NanoManager --- src/NanoManager.cpp | 38 ++++++++++++++++++-------------------- src/Player.hpp | 2 +- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/NanoManager.cpp b/src/NanoManager.cpp index 19c72cd..453185d 100644 --- a/src/NanoManager.cpp +++ b/src/NanoManager.cpp @@ -75,7 +75,7 @@ void NanoManager::nanoSummonHandler(CNSocket* sock, CNPacketData* data) { return; // malformed packet sP_CL2FE_REQ_NANO_ACTIVE* pkt = (sP_CL2FE_REQ_NANO_ACTIVE*)data->buf; - PlayerView plr = PlayerManager::players[sock]; + Player plr = PlayerManager::getPlayer(sock); // Send to client INITSTRUCT(sP_FE2CL_REP_NANO_ACTIVE_SUCC, resp); @@ -85,29 +85,29 @@ void NanoManager::nanoSummonHandler(CNSocket* sock, CNPacketData* data) { if (pkt->iNanoSlotNum > 2) return; - int nanoId = plr.plr.equippedNanos[pkt->iNanoSlotNum]; + int nanoId = plr.equippedNanos[pkt->iNanoSlotNum]; if (nanoId > 36) return; // sanity check - sNano nano = plr.plr.Nanos[nanoId]; + sNano nano = plr.Nanos[nanoId]; // Send to other players - for (CNSocket *s : PlayerManager::players[sock].viewable) { - INITSTRUCT(sP_FE2CL_NANO_ACTIVE, pkt); + for (CNSocket* s : PlayerManager::players[sock].viewable) { + INITSTRUCT(sP_FE2CL_NANO_ACTIVE, pkt); - pkt.iPC_ID = plr.plr.iID; - pkt.Nano = nano; + pkt.iPC_ID = plr.iID; + pkt.Nano = nano; - s->sendPacket((void*)&pkt, P_FE2CL_NANO_ACTIVE, sizeof(sP_FE2CL_NANO_ACTIVE)); + s->sendPacket((void*)&pkt, P_FE2CL_NANO_ACTIVE, sizeof(sP_FE2CL_NANO_ACTIVE)); } // update player - plr.plr.nano = nanoId; - PlayerManager::updatePlayer(sock, plr.plr); + plr.nano = nanoId; + PlayerManager::updatePlayer(sock, plr); DEBUGLOG( - std::cout << U16toU8(plr.plr.PCStyle.szFirstName) << U16toU8(plr.plr.PCStyle.szLastName) << " requested to summon nano slot: " << pkt->iNanoSlotNum << std::endl; + std::cout << U16toU8(plr.PCStyle.szFirstName) << U16toU8(plr.PCStyle.szLastName) << " requested to summon nano slot: " << pkt->iNanoSlotNum << std::endl; ) } @@ -116,7 +116,7 @@ void NanoManager::nanoSkillUseHandler(CNSocket* sock, CNPacketData* data) { return; // malformed packet sP_CL2FE_REQ_NANO_SKILL_USE* skill = (sP_CL2FE_REQ_NANO_SKILL_USE*)data->buf; - PlayerView plr = PlayerManager::players[sock]; + Player plr = PlayerManager::getPlayer(sock); // Send to client INITSTRUCT(sP_FE2CL_NANO_SKILL_USE_SUCC, resp); @@ -125,14 +125,10 @@ void NanoManager::nanoSkillUseHandler(CNSocket* sock, CNPacketData* data) { resp.iArg3 = skill->iArg3; resp.iBulletID = skill->iBulletID; resp.iTargetCnt = skill->iTargetCnt; - resp.iPC_ID = plr.plr.iID; + resp.iPC_ID = plr.iID; resp.iNanoStamina = 150; // Hardcoded for now sock->sendPacket((void*)&resp, P_FE2CL_NANO_SKILL_USE_SUCC, sizeof(sP_FE2CL_NANO_SKILL_USE_SUCC)); - - DEBUGLOG( - std::cout << U16toU8(plr.plr.PCStyle.szFirstName) << U16toU8(plr.plr.PCStyle.szLastName) << " requested to summon nano skill " << std::endl; - ) } void NanoManager::nanoSkillSetHandler(CNSocket* sock, CNPacketData* data) { @@ -180,21 +176,23 @@ void NanoManager::setNanoSkill(CNSocket* sock, int16_t nanoId, int16_t skillId) sock->sendPacket((void*)&resp, P_FE2CL_REP_NANO_TUNE_SUCC, sizeof(sP_FE2CL_REP_NANO_TUNE_SUCC)); + // Update the player + PlayerManager::updatePlayer(sock, plr); + DEBUGLOG( std::cout << U16toU8(plr.PCStyle.szFirstName) << U16toU8(plr.PCStyle.szLastName) << " set skill id " << skillId << " for nano: " << nanoId << std::endl; ) - // Update the player - PlayerManager::updatePlayer(sock, plr); } void NanoManager::resetNanoSkill(CNSocket* sock, int16_t nanoId) { if (nanoId > 36) return; - + Player plr = PlayerManager::getPlayer(sock); sNano nano = plr.Nanos[nanoId]; + // 0 is reset nano.iSkillID = 0; plr.Nanos[nanoId] = nano; diff --git a/src/Player.hpp b/src/Player.hpp index c80af83..28b0aac 100644 --- a/src/Player.hpp +++ b/src/Player.hpp @@ -17,7 +17,7 @@ struct Player { int slot; // player slot, not nano slot sPCStyle PCStyle; sPCStyle2 PCStyle2; - sNano Nanos[37]; + sNano Nanos[37]; // acquired nanos int equippedNanos[3]; int nano; // active nano (index into Nanos)