MCPcopy Create free account
hub / github.com/WolfireGames/overgrowth / SetFromDesc

Method SetFromDesc

Source/Objects/object.cpp:194–253  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192}
193
194bool Object::SetFromDesc(const EntityDescription &desc) {
195 for (const auto &field : desc.fields) {
196 switch (field.type) {
197 case EDF_ID: {
198 int id;
199 field.ReadInt(&id);
200 SetID(id);
201 break;
202 }
203 case EDF_NAME: {
204 std::string ename;
205 field.ReadString(&ename);
206 SetName(ename);
207 break;
208 }
209 case EDF_TRANSLATION: {
210 vec3 translation;
211 memread(translation.entries, sizeof(float), 3, field.data);
212 loaded_translation_ = translation;
213 SetTranslation(translation);
214 break;
215 }
216 case EDF_SCALE: {
217 vec3 scale;
218 memread(scale.entries, sizeof(float), 3, field.data);
219 loaded_scale_ = scale;
220 SetScale(scale);
221 break;
222 }
223 case EDF_ROTATION: {
224 vec4 rotation;
225 memread(rotation.entries, sizeof(float), 4, field.data);
226 loaded_rotation_ = quaternion(rotation.entries[0], rotation.entries[1], rotation.entries[2], rotation.entries[3]);
227 SetRotation(loaded_rotation_);
228 break;
229 }
230 case EDF_ROTATION_EULER: {
231 vec3 rotation;
232 memread(rotation.entries, sizeof(float), 3, field.data);
233 rotation_euler_ = rotation;
234 break;
235 }
236 case EDF_SCRIPT_PARAMS: {
237 ScriptParamMap spm;
238 ReadScriptParametersFromRAM(spm, field.data);
239 SetScriptParams(spm);
240 break;
241 }
242 case EDF_HOTSPOT_CONNECTED_TO: {
243 field.ReadIntVec(&unfinalized_connected_to);
244 break;
245 }
246 case EDF_HOTSPOT_CONNECTED_FROM: {
247 field.ReadIntVec(&unfinalized_connected_from);
248 break;
249 }
250 }
251 }

Callers

nothing calls this directly

Calls 7

memreadFunction · 0.85
ReadIntVecMethod · 0.80
quaternionClass · 0.70
SetNameFunction · 0.50
ReadIntMethod · 0.45
ReadStringMethod · 0.45

Tested by

no test coverage detected