mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2025-09-27 10:30:06 +00:00
[refactor] Switch a bulk of the codebase to the new sendPacket() wrapper
Remaining files to go over: Nanos NPCManager Racing Trading Vendors
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
// helper function, not a packet handler
|
||||
void BuiltinCommands::setSpecialState(CNSocket* sock, CNPacketData* data) {
|
||||
sP_CL2FE_GM_REQ_PC_SPECIAL_STATE_SWITCH* setData = (sP_CL2FE_GM_REQ_PC_SPECIAL_STATE_SWITCH*)data->buf;
|
||||
auto setData = (sP_CL2FE_GM_REQ_PC_SPECIAL_STATE_SWITCH*)data->buf;
|
||||
Player *plr = PlayerManager::getPlayer(sock);
|
||||
|
||||
// HACK: work around the invisible weapon bug
|
||||
@@ -21,8 +21,8 @@ void BuiltinCommands::setSpecialState(CNSocket* sock, CNPacketData* data) {
|
||||
response.iReqSpecialStateFlag = setData->iSpecialStateFlag;
|
||||
response.iSpecialState = plr->iSpecialState;
|
||||
|
||||
sock->sendPacket((void*)&response, P_FE2CL_REP_PC_SPECIAL_STATE_SWITCH_SUCC, sizeof(sP_FE2CL_REP_PC_SPECIAL_STATE_SWITCH_SUCC));
|
||||
PlayerManager::sendToViewable(sock, (void*)&response, P_FE2CL_PC_SPECIAL_STATE_CHANGE, sizeof(sP_FE2CL_PC_SPECIAL_STATE_CHANGE));
|
||||
sock->sendPacket(response, P_FE2CL_REP_PC_SPECIAL_STATE_SWITCH_SUCC);
|
||||
PlayerManager::sendToViewable(sock, response, P_FE2CL_PC_SPECIAL_STATE_CHANGE);
|
||||
}
|
||||
|
||||
static void setGMSpecialSwitchPlayer(CNSocket* sock, CNPacketData* data) {
|
||||
@@ -37,8 +37,7 @@ static void gotoPlayer(CNSocket* sock, CNPacketData* data) {
|
||||
if (plr->accountLevel > 50)
|
||||
return;
|
||||
|
||||
sP_CL2FE_REQ_PC_GOTO* gotoData = (sP_CL2FE_REQ_PC_GOTO*)data->buf;
|
||||
INITSTRUCT(sP_FE2CL_REP_PC_GOTO_SUCC, response);
|
||||
auto gotoData = (sP_CL2FE_REQ_PC_GOTO*)data->buf;
|
||||
|
||||
DEBUGLOG(
|
||||
std::cout << "P_CL2FE_REQ_PC_GOTO:" << std::endl;
|
||||
@@ -55,7 +54,7 @@ static void setValuePlayer(CNSocket* sock, CNPacketData* data) {
|
||||
if (plr->accountLevel > 50)
|
||||
return;
|
||||
|
||||
sP_CL2FE_GM_REQ_PC_SET_VALUE* setData = (sP_CL2FE_GM_REQ_PC_SET_VALUE*)data->buf;
|
||||
auto setData = (sP_CL2FE_GM_REQ_PC_SET_VALUE*)data->buf;
|
||||
|
||||
INITSTRUCT(sP_FE2CL_GM_REP_PC_SET_VALUE, response);
|
||||
|
||||
@@ -95,7 +94,7 @@ static void setValuePlayer(CNSocket* sock, CNPacketData* data) {
|
||||
response.iSetValue = setData->iSetValue;
|
||||
response.iSetValueType = setData->iSetValueType;
|
||||
|
||||
sock->sendPacket((void*)&response, P_FE2CL_GM_REP_PC_SET_VALUE, sizeof(sP_FE2CL_GM_REP_PC_SET_VALUE));
|
||||
sock->sendPacket(response, P_FE2CL_GM_REP_PC_SET_VALUE);
|
||||
|
||||
// if one lowers their own health to 0, make sure others can see it
|
||||
if (plr->HP <= 0) {
|
||||
@@ -105,7 +104,7 @@ static void setValuePlayer(CNSocket* sock, CNPacketData* data) {
|
||||
dead.iDamage = plr->HP;
|
||||
dead.iHP = plr->HP = 0;
|
||||
|
||||
PlayerManager::sendToViewable(sock, (void*)&dead, P_FE2CL_PC_SUDDEN_DEAD, sizeof(sP_FE2CL_PC_SUDDEN_DEAD));
|
||||
PlayerManager::sendToViewable(sock, dead, P_FE2CL_PC_SUDDEN_DEAD);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,12 +115,12 @@ static void setGMSpecialOnOff(CNSocket *sock, CNPacketData *data) {
|
||||
if (plr->accountLevel > 30)
|
||||
return;
|
||||
|
||||
sP_CL2FE_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF *req = (sP_CL2FE_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF*)data->buf;
|
||||
auto req = (sP_CL2FE_GM_REQ_TARGET_PC_SPECIAL_STATE_ONOFF*)data->buf;
|
||||
|
||||
CNSocket *otherSock = PlayerManager::getSockFromAny(req->eTargetSearchBy, req->iTargetPC_ID, req->iTargetPC_UID,
|
||||
AUTOU16TOU8(req->szTargetPC_FirstName), AUTOU16TOU8(req->szTargetPC_LastName));
|
||||
if (otherSock == nullptr) {
|
||||
Chat::sendServerMessage(sock, "player to teleport not found");
|
||||
Chat::sendServerMessage(sock, "player not found");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -141,7 +140,7 @@ static void locatePlayer(CNSocket *sock, CNPacketData *data) {
|
||||
if (plr->accountLevel > 30)
|
||||
return;
|
||||
|
||||
sP_CL2FE_GM_REQ_PC_LOCATION *req = (sP_CL2FE_GM_REQ_PC_LOCATION*)data->buf;
|
||||
auto req = (sP_CL2FE_GM_REQ_PC_LOCATION*)data->buf;
|
||||
|
||||
CNSocket *otherSock = PlayerManager::getSockFromAny(req->eTargetSearchBy, req->iTargetPC_ID, req->iTargetPC_UID,
|
||||
AUTOU16TOU8(req->szTargetPC_FirstName), AUTOU16TOU8(req->szTargetPC_LastName));
|
||||
@@ -166,7 +165,7 @@ static void locatePlayer(CNSocket *sock, CNPacketData *data) {
|
||||
memcpy(resp.szTargetPC_FirstName, otherPlr->PCStyle.szFirstName, sizeof(resp.szTargetPC_FirstName));
|
||||
memcpy(resp.szTargetPC_LastName, otherPlr->PCStyle.szLastName, sizeof(resp.szTargetPC_LastName));
|
||||
|
||||
sock->sendPacket((void*)&resp, P_FE2CL_GM_REP_PC_LOCATION, sizeof(sP_FE2CL_GM_REP_PC_LOCATION));
|
||||
sock->sendPacket(resp, P_FE2CL_GM_REP_PC_LOCATION);
|
||||
}
|
||||
|
||||
static void kickPlayer(CNSocket *sock, CNPacketData *data) {
|
||||
@@ -176,7 +175,7 @@ static void kickPlayer(CNSocket *sock, CNPacketData *data) {
|
||||
if (plr->accountLevel > 30)
|
||||
return;
|
||||
|
||||
sP_CL2FE_GM_REQ_KICK_PLAYER *req = (sP_CL2FE_GM_REQ_KICK_PLAYER*)data->buf;
|
||||
auto req = (sP_CL2FE_GM_REQ_KICK_PLAYER*)data->buf;
|
||||
|
||||
CNSocket *otherSock = PlayerManager::getSockFromAny(req->eTargetSearchBy, req->iTargetPC_ID, req->iTargetPC_UID,
|
||||
AUTOU16TOU8(req->szTargetPC_FirstName), AUTOU16TOU8(req->szTargetPC_LastName));
|
||||
@@ -198,7 +197,7 @@ static void kickPlayer(CNSocket *sock, CNPacketData *data) {
|
||||
response.iExitCode = 3; // "a GM has terminated your connection"
|
||||
|
||||
// send to target player
|
||||
otherSock->sendPacket((void*)&response, P_FE2CL_REP_PC_EXIT_SUCC, sizeof(sP_FE2CL_REP_PC_EXIT_SUCC));
|
||||
otherSock->sendPacket(response, P_FE2CL_REP_PC_EXIT_SUCC);
|
||||
|
||||
// ensure that the connection has terminated
|
||||
otherSock->kill();
|
||||
@@ -211,7 +210,7 @@ static void warpToPlayer(CNSocket *sock, CNPacketData *data) {
|
||||
if (plr->accountLevel > 30)
|
||||
return;
|
||||
|
||||
sP_CL2FE_REQ_PC_WARP_TO_PC *req = (sP_CL2FE_REQ_PC_WARP_TO_PC*)data->buf;
|
||||
auto req = (sP_CL2FE_REQ_PC_WARP_TO_PC*)data->buf;
|
||||
|
||||
Player *otherPlr = PlayerManager::getPlayerFromID(req->iPC_ID);
|
||||
if (otherPlr == nullptr) {
|
||||
@@ -230,7 +229,7 @@ static void teleportPlayer(CNSocket *sock, CNPacketData *data) {
|
||||
if (plr->accountLevel > 30)
|
||||
return;
|
||||
|
||||
sP_CL2FE_GM_REQ_TARGET_PC_TELEPORT *req = (sP_CL2FE_GM_REQ_TARGET_PC_TELEPORT*)data->buf;
|
||||
auto req = (sP_CL2FE_GM_REQ_TARGET_PC_TELEPORT*)data->buf;
|
||||
|
||||
// player to teleport
|
||||
CNSocket *targetSock = PlayerManager::getSockFromAny(req->eTargetPCSearchBy, req->iTargetPC_ID, req->iTargetPC_UID,
|
||||
@@ -278,7 +277,7 @@ static void teleportPlayer(CNSocket *sock, CNPacketData *data) {
|
||||
}
|
||||
|
||||
static void itemGMGiveHandler(CNSocket* sock, CNPacketData* data) {
|
||||
sP_CL2FE_REQ_PC_GIVE_ITEM* itemreq = (sP_CL2FE_REQ_PC_GIVE_ITEM*)data->buf;
|
||||
auto itemreq = (sP_CL2FE_REQ_PC_GIVE_ITEM*)data->buf;
|
||||
Player* plr = PlayerManager::getPlayer(sock);
|
||||
|
||||
if (plr->accountLevel > 50) {
|
||||
@@ -288,7 +287,6 @@ static void itemGMGiveHandler(CNSocket* sock, CNPacketData* data) {
|
||||
|
||||
if (itemreq->eIL == 2) {
|
||||
// Quest item, not a real item, handle this later, stubbed for now
|
||||
// sock->sendPacket(new CNPacketData((void*)resp, P_FE2CL_REP_PC_GIVE_ITEM_FAIL, sizeof(sP_FE2CL_REP_PC_GIVE_ITEM_FAIL), sock->getFEKey()));
|
||||
} else if (itemreq->eIL == 1 && itemreq->Item.iType >= 0 && itemreq->Item.iType <= 10) {
|
||||
|
||||
if (Items::ItemData.find(std::pair<int32_t, int32_t>(itemreq->Item.iID, itemreq->Item.iType)) == Items::ItemData.end()) {
|
||||
@@ -310,7 +308,7 @@ static void itemGMGiveHandler(CNSocket* sock, CNPacketData* data) {
|
||||
|
||||
plr->Inven[itemreq->iSlotNum] = itemreq->Item;
|
||||
|
||||
sock->sendPacket((void*)&resp, P_FE2CL_REP_PC_GIVE_ITEM_SUCC, sizeof(sP_FE2CL_REP_PC_GIVE_ITEM_SUCC));
|
||||
sock->sendPacket(resp, P_FE2CL_REP_PC_GIVE_ITEM_SUCC);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user