aboutsummaryrefslogtreecommitdiff
path: root/src/connections.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/connections.hh')
-rw-r--r--src/connections.hh78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/connections.hh b/src/connections.hh
new file mode 100644
index 0000000..0aef82b
--- /dev/null
+++ b/src/connections.hh
@@ -0,0 +1,78 @@
+#ifndef TIBIA_CONNECTION_HH_
+#define TIBIA_CONNECTION_HH_ 1
+
+#include "common.hh"
+#include "crypto.hh"
+#include "enums.hh"
+
+struct TConnection;
+struct TPlayer;
+
+struct TKnownCreature {
+ KNOWNCREATURESTATE State;
+ uint32 CreatureID;
+ TKnownCreature *Next;
+ TConnection *Connection;
+};
+
+struct TConnection {
+ TPlayer *GetPlayer(void);
+ void Logout(int Delay, bool StopFight);
+ bool IsVisible(int x, int y, int z);
+ void EnterGame(void);
+ const char *GetIPAddress(void);
+ void Die(void);
+ KNOWNCREATURESTATE KnownCreature(uint32 CreatureID, bool UpdateFollows);
+ int GetSocket(void);
+ void EmergencyPing(void);
+
+ // TODO(fusion): Maybe rename this later?
+ bool Live(void) const {
+ return this->State == CONNECTION_LOGIN
+ || this->State == CONNECTION_GAME
+ || this->State == CONNECTION_DEAD
+ || this->State == CONNECTION_LOGOUT;
+ }
+
+ // DATA
+ // =================
+ uint8 InData[2048];
+ int InDataSize;
+ bool SigIOPending;
+ bool WaitingForACK;
+ uint8 OutData[16384];
+ uint8 field5_0x4806;
+ uint8 field6_0x4807;
+ int NextToSend;
+ int NextToCommit;
+ int NextToWrite;
+ bool Overflow;
+ bool WillingToSend;
+ uint8 field12_0x4816;
+ uint8 field13_0x4817;
+ TConnection *NextSendingConnection;
+ uint32 RandomSeed;
+ CONNECTIONSTATE State;
+ pid_t PID;
+ int Socket;
+ char IPAddress[16];
+ TXTEASymmetricKey SymmetricKey;
+ bool ConnectionIsOk;
+ bool ClosingIsDelayed;
+ uint8 field23_0x4852;
+ uint8 field24_0x4853;
+ uint32 TimeStamp;
+ uint32 TimeStampAction;
+ int TerminalType;
+ int TerminalVersion;
+ int TerminalOffsetX;
+ int TerminalOffsetY;
+ int TerminalWidth;
+ int TerminalHeight;
+ uint32 CharacterID;
+ char Name[31];
+ uint8 field35_0x4897;
+ TKnownCreature KnownCreatureTable[150];
+};
+
+#endif // TIBIA_CONNECTION_HH_