MCPcopy Create free account
hub / github.com/REGoth-project/REGoth / NPC_SetModelVisual

Method NPC_SetModelVisual

src/components/VobClasses.cpp:249–304  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

247}
248
249void ::VobTypes::NPC_SetModelVisual(VobTypes::NpcVobInformation& vob, const std::string& visual)
250{
251 Handle::EntityHandle e = vob.entity;
252
253 // Initialize animations
254 Components::AnimationComponent& anim = Components::Actions::initComponent<Components::AnimationComponent>(vob.world->getComponentAllocator(), e);
255
256 // Strip extension
257 std::string libName = visual.substr(0, visual.find_last_of('.'));
258
259 anim.getAnimHandler().setWorld(*vob.world);
260 anim.getAnimHandler().loadMeshLibFromVDF(libName, vob.world->getEngine()->getVDFSIndex());
261
262 // Meshlib changed, re-get all animation
263 vob.playerController->getNpcAnimationHandler().initAnimations();
264
265 // TODO: Move to other place (MDS)
266 // Load all default animations
267 for (int i = 0; i < Logic::ModelVisual::NUM_ANIMATIONS; i++)
268 {
269 const char* name = Logic::ModelVisual::getAnimationName(static_cast<Logic::ModelVisual::EModelAnimType>(i));
270
271 anim.getAnimHandler().addAnimation(name);
272 }
273
274 for (int i = 0; i < 20; i++)
275 {
276 std::string ns = std::to_string(i + 1);
277 if (ns.size() == 1)
278 ns = "0" + ns;
279
280 anim.getAnimHandler().addAnimation("T_DIALOGGESTURE_" + ns);
281 }
282
283 anim.getAnimHandler().addAnimation("-S_RUNL");
284 anim.getAnimHandler().addAnimation("-S_WALKL");
285 anim.getAnimHandler().addAnimation("-S_FISTRUNL");
286 anim.getAnimHandler().addAnimation("-S_FISTWALKL");
287
288 anim.getAnimHandler().addAnimation("-S_RUN");
289 anim.getAnimHandler().addAnimation("-S_WALK");
290 anim.getAnimHandler().addAnimation("-S_FISTRUN");
291 anim.getAnimHandler().addAnimation("-S_FISTWALK");
292
293 anim.getAnimHandler().addAnimation("-T_JUMPB");
294 anim.getAnimHandler().addAnimation("-T_RUNSTRAFEL");
295 anim.getAnimHandler().addAnimation("-T_RUNSTRAFER");
296
297 // Fist
298 anim.getAnimHandler().addAnimation("-S_FISTATTACK");
299
300 // 1H
301 anim.getAnimHandler().addAnimation("-S_1HATTACK");
302
303 //anim.getAnimHandler().playAnimation("S_RUNL");
304}
305
306void ::VobTypes::NPC_SetHeadMesh(VobTypes::NpcVobInformation& vob, const std::string& visual, int headTextureIdx,

Callers

nothing calls this directly

Calls 6

setWorldMethod · 0.80
loadMeshLibFromVDFMethod · 0.80
getEngineMethod · 0.80
initAnimationsMethod · 0.80
addAnimationMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected