blob: d79f2638f926ab7789c8bdd9f8c20cb3c4452bbc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/* Starshatter: The Open Source Project
Copyright (c) 2021-2024, 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
*/
#pragma once
#include <cstdint>
#include <List.h>
#include <Text.h>
#include "Geometry.h"
#include "Director.h"
#include "SimObject.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(std::uint32_t nid) : netid(nid), objid(0), ship(0), iff(0) { }
~NetPlayer();
int operator == (const NetPlayer& p) const { return netid == p.netid; }
std::uint32_t GetNetID() const { return netid; }
std::uint32_t GetObjID() const { return objid; }
void SetObjID(std::uint32_t 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:
std::uint32_t netid;
std::uint32_t objid;
Text name;
Text serno;
Ship* ship;
int iff;
Point loc_error;
double bleed_time;
};
|