32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
-
+
|
int anger;
char name[260], team[260];
};
@implementation DynamicEntity
+ (size_t)serializedSize
{
return sizeof(dynent);
return sizeof(struct dynent);
}
- (instancetype)init
{
self = [super init];
_ammo = (int *)OFAllocZeroedMemory(NUMGUNS, sizeof(int));
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
-
+
|
return copy;
}
- (OFData *)dataBySerializing
{
// This is frighteningly *TERRIBLE*, but the format used by existing
// savegames.
dynent data = { .o = _o,
struct dynent data = { .o = _o,
.vel = _vel,
.yaw = _yaw,
.pitch = _pitch,
.roll = _roll,
.maxspeed = _maxspeed,
.outsidemap = _outsidemap,
.inwater = _inwater,
|
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
-
+
|
return [OFData dataWithItems:&data count:sizeof(data)];
}
- (void)setFromSerializedData:(OFData *)data
{
struct dynent d;
if (data.count != sizeof(dynent))
if (data.count != sizeof(struct dynent))
@throw [OFOutOfRangeException exception];
memcpy(&d, data.items, data.count);
_o = d.o;
_vel = d.vel;
_yaw = d.yaw;
|