mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-02 20:42:28 +00:00
- License was intended to be GPLv3 per earlier commit of GPLv3 LICENSE FILE - This is confirmed by the inclusion of libraries that are incompatible with GPLv2 - This is also confirmed by KLS and the agreement of KLS's predecessors - Added GPLv3 license headers to the compilable source files - Removed Folly licensing in strings.h since the string functions do not match the Folly functions and are standard functions - this must have been left over from previous implementations - Removed individual contributor license headers since the project has been under the "developer" mantle for many years - Removed comments on files that were previously automatically generated since they've been manually modified multiple times and there are no automatic scripts referencing them (removed in 2023)
84 lines
2.7 KiB
C++
84 lines
2.7 KiB
C++
/* EQEmu: EQEmulator
|
|
|
|
Copyright (C) 2001-2026 EQEmu Development Team
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#pragma once
|
|
|
|
#include "common/types.h"
|
|
|
|
#ifndef ERRBUF_SIZE
|
|
#define ERRBUF_SIZE 1024
|
|
#endif
|
|
|
|
// These are helper macros for dealing with packets of variable length, typically those that contain
|
|
// variable length strings where it is not convenient to use a fixed length struct.
|
|
//
|
|
#define VARSTRUCT_DECODE_TYPE(Type, Buffer) *(Type *)Buffer; Buffer += sizeof(Type);
|
|
#define VARSTRUCT_DECODE_STRING(String, Buffer) strcpy(String, Buffer); Buffer += strlen(String)+1;
|
|
#define VARSTRUCT_ENCODE_STRING(Buffer, String) { int length = sprintf(Buffer, "%s", String); Buffer += length + 1; }
|
|
#define VARSTRUCT_ENCODE_INTSTRING(Buffer, Number) { int length = sprintf(Buffer, "%i", Number); Buffer += length + 1; }
|
|
#define VARSTRUCT_ENCODE_TYPE(Type, Buffer, Value) { *(Type *)Buffer = Value; Buffer += sizeof(Type); }
|
|
#define VARSTRUCT_SKIP_TYPE(Type, Buffer) Buffer += sizeof(Type);
|
|
|
|
#define VERIFY_PACKET_LENGTH(OPCode, Packet, StructName) \
|
|
if(Packet->size != sizeof(StructName)) \
|
|
{ \
|
|
LogNetcode("Size mismatch in " #OPCode " expected [{}] got [{}]", sizeof(StructName), Packet->size); \
|
|
DumpPacket(Packet); \
|
|
return; \
|
|
}
|
|
|
|
uint32 ResolveIP(const char* hostname, char* errbuf = 0);
|
|
bool ParseAddress(const char* iAddress, uint32* oIP, uint16* oPort, char* errbuf = 0);
|
|
|
|
float EQ13toFloat(int d);
|
|
float EQ19toFloat(int d);
|
|
float EQHtoFloat(int d);
|
|
int FloatToEQ13(float d);
|
|
int FloatToEQ19(float d);
|
|
int FloatToEQH(float d);
|
|
|
|
float EQ12toFloat(int d);
|
|
int FloatToEQ12(float d);
|
|
|
|
float EQ10toFloat(int d);
|
|
int FloatToEQ10(float d);
|
|
|
|
// this is also a 10 bit float
|
|
float EQSpeedRunToFloat(int d);
|
|
int FloatToEQSpeedRun(float d);
|
|
|
|
// brings heading back into EQ angles range
|
|
float FixHeading(float in);
|
|
|
|
uint32 SwapBits21And22(uint32 mask);
|
|
uint32 Catch22(uint32 mask);
|
|
|
|
// macro to catch fp errors (provided by noudness)
|
|
#define FCMP(a,b) (std::abs(a-b) < FLT_EPSILON)
|
|
|
|
#define _ITOA_BUFLEN 25
|
|
const char *itoa(int num); //not thread safe
|
|
#ifndef _WINDOWS
|
|
const char *itoa(int num, char* a,int b);
|
|
#endif
|
|
|
|
class InitWinsock {
|
|
public:
|
|
InitWinsock();
|
|
~InitWinsock();
|
|
};
|