summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/NetPlayer.h
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-01 21:23:39 +0200
committerAki <please@ignore.pl>2022-04-01 21:23:39 +0200
commit3c487c5cd69c53d6fea948643c0a76df03516605 (patch)
tree72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /StarsEx/NetPlayer.h
parent8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff)
downloadstarshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2
Moved Stars45 to StarsEx
Diffstat (limited to 'StarsEx/NetPlayer.h')
-rw-r--r--StarsEx/NetPlayer.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/StarsEx/NetPlayer.h b/StarsEx/NetPlayer.h
new file mode 100644
index 0000000..5867669
--- /dev/null
+++ b/StarsEx/NetPlayer.h
@@ -0,0 +1,97 @@
+/* Starshatter: The Open Source Project
+ Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
+ Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
+ Copyright (c) 1997-2006, Destroyer Studios LLC.
+
+ AUTHOR: John DiCamillo
+
+
+ OVERVIEW
+ ========
+ Network Player (Director) class
+*/
+
+#ifndef NetPlayer_h
+#define NetPlayer_h
+
+#include "Types.h"
+#include "Geometry.h"
+#include "Director.h"
+#include "SimObject.h"
+#include "List.h"
+#include "Text.h"
+
+// +--------------------------------------------------------------------+
+
+class Sim;
+class Ship;
+class NetMsg;
+class NetObjLoc;
+class NetObjHyper;
+class NetObjTarget;
+class NetObjEmcon;
+class NetSysDamage;
+class NetSysStatus;
+class NetWepTrigger;
+class NetWepRelease;
+class NetWepDestroy;
+class NetCommMsg;
+
+// +--------------------------------------------------------------------+
+
+class NetPlayer : public Director, public SimObserver
+{
+public:
+ static const char* TYPENAME() { return "NetPlayer"; }
+
+ NetPlayer(DWORD nid) : netid(nid), objid(0), ship(0), iff(0) { }
+ ~NetPlayer();
+
+ int operator == (const NetPlayer& p) const { return netid == p.netid; }
+
+ DWORD GetNetID() const { return netid; }
+ DWORD GetObjID() const { return objid; }
+ void SetObjID(DWORD o) { objid = o; }
+
+ int GetIFF() const { return iff; }
+ Ship* GetShip() const { return ship; }
+ void SetShip(Ship* s);
+
+ const char* Name() const { return name; }
+ void SetName(const char* n) { name = n; }
+ const char* SerialNumber() const { return serno; }
+ void SetSerialNumber(const char* n) { serno = n; }
+
+ virtual void ExecFrame(double seconds);
+
+ bool DoObjLoc(NetObjLoc* obj_loc);
+ bool DoObjHyper(NetObjHyper* obj_hyper);
+ bool DoObjTarget(NetObjTarget* obj_target);
+ bool DoObjEmcon(NetObjEmcon* obj_emcon);
+ bool DoWepTrigger(NetWepTrigger* trigger);
+ bool DoWepRelease(NetWepRelease* release);
+ bool DoCommMessage(NetCommMsg* comm_msg);
+ bool DoSysDamage(NetSysDamage* sys_damage);
+ bool DoSysStatus(NetSysStatus* sys_status);
+
+ virtual int Type() const { return 2; }
+
+ virtual bool Update(SimObject* obj);
+ virtual const char* GetObserverName() const;
+
+protected:
+ DWORD netid;
+ DWORD objid;
+ Text name;
+ Text serno;
+ Ship* ship;
+ int iff;
+
+ Point loc_error;
+ double bleed_time;
+};
+
+// +--------------------------------------------------------------------+
+
+#endif // NetPlayer_h
+