Convert player into a class
FossilOrigin-Name: 5b7b7d2fc5af4d512db195c4fbfb2aff01436db9bc1345d62263609ac129aa02
This commit is contained in:
parent
4596a656dc
commit
5835957d74
25 changed files with 211 additions and 166 deletions
|
@ -3,6 +3,7 @@
|
|||
#include "cube.h"
|
||||
|
||||
#import "Monster.h"
|
||||
#import "Player.h"
|
||||
|
||||
struct dynent {
|
||||
OFVector3D origin, velocity;
|
||||
|
@ -58,7 +59,7 @@ struct dynent {
|
|||
_eyeHeight = 3.2f;
|
||||
_aboveEye = 0.7f;
|
||||
_lastUpdate = lastmillis;
|
||||
_name = _team = @"";
|
||||
_name = @"";
|
||||
_state = CS_ALIVE;
|
||||
|
||||
[self resetToSpawnState];
|
||||
|
@ -98,9 +99,7 @@ struct dynent {
|
|||
copy->_lastUpdate = _lastUpdate;
|
||||
copy->_lag = _lag;
|
||||
copy->_ping = _ping;
|
||||
copy->_lifeSequence = _lifeSequence;
|
||||
copy->_state = _state;
|
||||
copy->_frags = _frags;
|
||||
copy->_health = _health;
|
||||
copy->_armour = _armour;
|
||||
copy->_armourType = _armourType;
|
||||
|
@ -118,7 +117,6 @@ struct dynent {
|
|||
copy->_blocked = _blocked;
|
||||
copy->_moving = _moving;
|
||||
copy->_name = [_name copy];
|
||||
copy->_team = [_team copy];
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
@ -150,9 +148,7 @@ struct dynent {
|
|||
.lastUpdate = _lastUpdate,
|
||||
.lag = _lag,
|
||||
.ping = _ping,
|
||||
.lifeSequence = _lifeSequence,
|
||||
.state = _state,
|
||||
.frags = _frags,
|
||||
.health = _health,
|
||||
.armour = _armour,
|
||||
.armourType = _armourType,
|
||||
|
@ -166,6 +162,19 @@ struct dynent {
|
|||
.blocked = _blocked,
|
||||
.moving = _moving };
|
||||
|
||||
for (int i = 0; i < NUMGUNS; i++)
|
||||
data.ammo[i] = _ammo[i];
|
||||
|
||||
memcpy(data.name, _name.UTF8String, min(_name.UTF8StringLength, 259));
|
||||
|
||||
if ([self isKindOfClass:Player.class]) {
|
||||
Player *player = (Player *)self;
|
||||
data.lifeSequence = player.lifeSequence,
|
||||
data.frags = player.frags;
|
||||
memcpy(data.team, player.team.UTF8String,
|
||||
min(player.team.UTF8StringLength, 259));
|
||||
}
|
||||
|
||||
if ([self isKindOfClass:Monster.class]) {
|
||||
Monster *monster = (Monster *)self;
|
||||
data.monsterState = monster.monsterState;
|
||||
|
@ -176,12 +185,6 @@ struct dynent {
|
|||
data.anger = monster.anger;
|
||||
}
|
||||
|
||||
for (int i = 0; i < NUMGUNS; i++)
|
||||
data.ammo[i] = _ammo[i];
|
||||
|
||||
memcpy(data.name, _name.UTF8String, min(_name.UTF8StringLength, 259));
|
||||
memcpy(data.team, _team.UTF8String, min(_team.UTF8StringLength, 259));
|
||||
|
||||
return [OFData dataWithItems:&data count:sizeof(data)];
|
||||
}
|
||||
|
||||
|
@ -217,9 +220,8 @@ struct dynent {
|
|||
_lastUpdate = d.lastUpdate;
|
||||
_lag = d.lag;
|
||||
_ping = d.ping;
|
||||
_lifeSequence = d.lifeSequence;
|
||||
_state = d.state;
|
||||
_frags = d.frags;
|
||||
|
||||
_health = d.health;
|
||||
_armour = d.armour;
|
||||
_armourType = d.armourType;
|
||||
|
@ -237,6 +239,15 @@ struct dynent {
|
|||
_blocked = d.blocked;
|
||||
_moving = d.moving;
|
||||
|
||||
_name = [[OFString alloc] initWithUTF8String:d.name];
|
||||
|
||||
if ([self isKindOfClass:Player.class]) {
|
||||
Player *player = (Player *)self;
|
||||
player.lifeSequence = d.lifeSequence;
|
||||
player.frags = d.frags;
|
||||
player.team = @(d.team);
|
||||
}
|
||||
|
||||
if ([self isKindOfClass:Monster.class]) {
|
||||
Monster *monster = (Monster *)self;
|
||||
monster.monsterState = d.monsterState;
|
||||
|
@ -246,9 +257,6 @@ struct dynent {
|
|||
monster.attackTarget = d.attackTarget;
|
||||
monster.anger = d.anger;
|
||||
}
|
||||
|
||||
_name = [[OFString alloc] initWithUTF8String:d.name];
|
||||
_team = [[OFString alloc] initWithUTF8String:d.team];
|
||||
}
|
||||
|
||||
- (void)resetMovement
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue