35 lines
827 B
C++
35 lines
827 B
C++
#include "Contents/WorldProximity.h"
|
|
#include "Network/Connection.h"
|
|
#include "Network/PacketLengths.h"
|
|
|
|
#include <cstring>
|
|
|
|
// OFFSET: 0x00AC93C0
|
|
// FUNCTION: fn_17683
|
|
void UpdateWorldProximityNotification(
|
|
unsigned char& notified,
|
|
std::function<bool()> nearby,
|
|
CConnection& connection,
|
|
const PacketLengths& lengths,
|
|
const std::uint32_t& accountId
|
|
) {
|
|
if (notified == 1) {
|
|
if (!nearby()) {
|
|
notified = 0;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if (nearby()) {
|
|
unsigned char packet[9];
|
|
const std::uint16_t id = 0x0BB0;
|
|
const std::uint16_t enabled = 1;
|
|
std::memcpy(packet, &id, sizeof(id));
|
|
std::memcpy(packet + 2, &accountId, sizeof(accountId));
|
|
std::memcpy(packet + 6, &enabled, sizeof(enabled));
|
|
packet[8] = 1;
|
|
connection.Send(lengths.FixedLength(id), packet);
|
|
notified = 1;
|
|
}
|
|
}
|