1
0
forked from metin2/server

Rewrote network stack, started working on porting to 64-bit

This commit is contained in:
2022-03-12 11:39:41 +02:00
parent 64596d344c
commit a056345a7b
167 changed files with 1388 additions and 3085 deletions

View File

@@ -355,14 +355,14 @@ struct DynamicCharacterPtr {
/* <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
typedef struct character_point
{
long points[POINT_MAX_NUM];
int points[POINT_MAX_NUM];
BYTE job;
BYTE voice;
BYTE level;
DWORD exp;
long gold;
int gold;
int hp;
int sp;
@@ -378,16 +378,16 @@ typedef struct character_point
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
typedef struct character_point_instant
{
long points[POINT_MAX_NUM];
int points[POINT_MAX_NUM];
float fRot;
int iMaxHP;
int iMaxSP;
long position;
int position;
long instant_flag;
int instant_flag;
DWORD dwAIFlag;
DWORD dwImmuneFlag;
DWORD dwLastShoutPulse;
@@ -425,7 +425,7 @@ typedef struct trigger
{
BYTE type;
int (*func) (TRIGGERPARAM);
long value;
int value;
} TRIGGER;
class CTrigger
@@ -726,13 +726,13 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
void ApplyPoint(BYTE bApplyType, int iVal);
void CheckMaximumPoints(); // HP, SP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ밪 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB>ϰ<EFBFBD> <20><><EFBFBD>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
bool Show(long lMapIndex, long x, long y, long z = LONG_MAX, bool bShowSpawnMotion = false);
bool Show(int lMapIndex, int x, int y, int z = INT_MAX, bool bShowSpawnMotion = false);
void Sitdown(int is_ground);
void Standup();
void SetRotation(float fRot);
void SetRotationToXY(long x, long y);
void SetRotationToXY(int x, int y);
float GetRotation() const { return m_pointsInstant.fRot; }
void MotionPacketEncode(BYTE motion, LPCHARACTER victim, struct packet_motion * packet);
@@ -806,14 +806,14 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
void SetNowWalking(bool bWalkFlag);
void ResetWalking() { SetNowWalking(m_bWalking); }
bool Goto(long x, long y); // <20>ٷ<EFBFBD> <20>̵<EFBFBD> <20><>Ű<EFBFBD><C5B0> <20>ʰ<EFBFBD> <20><>ǥ <20><>ġ<EFBFBD><C4A1> BLENDING <20><>Ų<EFBFBD><C5B2>.
bool Goto(int x, int y); // <20>ٷ<EFBFBD> <20>̵<EFBFBD> <20><>Ű<EFBFBD><C5B0> <20>ʰ<EFBFBD> <20><>ǥ <20><>ġ<EFBFBD><C4A1> BLENDING <20><>Ų<EFBFBD><C5B2>.
void Stop();
bool CanMove() const; // <20>̵<EFBFBD><CCB5><EFBFBD> <20><> <20>ִ°<D6B4>?
void SyncPacket();
bool Sync(long x, long y); // <20><><EFBFBD><EFBFBD> <20><> <20>޼ҵ<DEBC><D2B5><EFBFBD> <20>̵<EFBFBD> <20>Ѵ<EFBFBD> (<28><> <20><> <20><><EFBFBD>ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD> <20><><EFBFBD><EFBFBD>)
bool Move(long x, long y); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB>ϰ<EFBFBD> Sync <20>޼ҵ带 <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20>Ѵ<EFBFBD>.
bool Sync(int x, int y); // <20><><EFBFBD><EFBFBD> <20><> <20>޼ҵ<DEBC><D2B5><EFBFBD> <20>̵<EFBFBD> <20>Ѵ<EFBFBD> (<28><> <20><> <20><><EFBFBD>ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD> <20><><EFBFBD><EFBFBD>)
bool Move(int x, int y); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB>ϰ<EFBFBD> Sync <20>޼ҵ带 <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20>Ѵ<EFBFBD>.
void OnMove(bool bIsAttack = false); // <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD> <20>Ҹ<EFBFBD><D2B8><EFBFBD>. Move() <20>޼ҵ<DEBC> <20>̿ܿ<CCBF><DCBF><EFBFBD><EFBFBD><EFBFBD> <20>Ҹ<EFBFBD> <20><> <20>ִ<EFBFBD>.
DWORD GetMotionMode() const;
float GetMoveMotionSpeed() const;
@@ -830,8 +830,8 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
bool SetSyncOwner(LPCHARACTER ch, bool bRemoveFromList = true);
bool IsSyncOwner(LPCHARACTER ch) const;
bool WarpSet(long x, long y, long lRealMapIndex = 0);
void SetWarpLocation(long lMapIndex, long x, long y);
bool WarpSet(int x, int y, int lRealMapIndex = 0);
void SetWarpLocation(int lMapIndex, int x, int y);
void WarpEnd();
const PIXEL_POSITION & GetWarpPosition() const { return m_posWarp; }
bool WarpToPID(DWORD dwPID);
@@ -857,10 +857,10 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
PIXEL_POSITION m_posDest;
PIXEL_POSITION m_posStart;
PIXEL_POSITION m_posWarp;
long m_lWarpMapIndex;
int m_lWarpMapIndex;
PIXEL_POSITION m_posExit;
long m_lExitMapIndex;
int m_lExitMapIndex;
DWORD m_dwMoveStartTime;
DWORD m_dwMoveDuration;
@@ -893,7 +893,7 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
void StartAffectEvent();
void ClearAffect(bool bSave=false);
void ComputeAffect(CAffect * pkAff, bool bAdd);
bool AddAffect(DWORD dwType, BYTE bApplyOn, long lApplyValue, DWORD dwFlag, long lDuration, long lSPCost, bool bOverride, bool IsCube = false);
bool AddAffect(DWORD dwType, BYTE bApplyOn, int lApplyValue, DWORD dwFlag, int lDuration, int lSPCost, bool bOverride, bool IsCube = false);
void RefreshAffect();
bool RemoveAffect(DWORD dwType);
bool IsAffectFlag(DWORD dwAff) const;
@@ -1122,7 +1122,7 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
bool SwapItem(BYTE bCell, BYTE bDestCell);
LPITEM AutoGiveItem(DWORD dwItemVnum, BYTE bCount=1, int iRarePct = -1, bool bMsg = true);
void AutoGiveItem(LPITEM item, bool longOwnerShip = false);
void AutoGiveItem(LPITEM item, bool intOwnerShip = false);
int GetEmptyInventory(BYTE size) const;
int GetEmptyDragonSoulInventory(LPITEM pItem) const;
@@ -1249,7 +1249,7 @@ class CHARACTER : public CEntity, public CFSM, public CHorseRider
void RewardGold(LPCHARACTER pkAttacker);
bool Shoot(BYTE bType);
void FlyTarget(DWORD dwTargetVID, long x, long y, BYTE bHeader);
void FlyTarget(DWORD dwTargetVID, int x, int y, BYTE bHeader);
void ForgetMyAttacker();
void AggregateMonster();