MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / RegisterModel

Method RegisterModel

ogsr_engine/xrGame/GamePersistent.cpp:92–120  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

90}
91
92void CGamePersistent::RegisterModel(IRenderVisual* V)
93{
94 // Check types
95 switch (V->getType())
96 {
97 case MT_SKELETON_ANIM:
98 case MT_SKELETON_RIGID: {
99 u16 def_idx = GMLib.GetMaterialIdx("default_object");
100 R_ASSERT2(GMLib.GetMaterialByIdx(def_idx)->Flags.is(SGameMtl::flDynamic), "'default_object' - must be dynamic");
101 IKinematics* K = smart_cast<IKinematics*>(V);
102 VERIFY(K);
103 int cnt = K->LL_BoneCount();
104 for (u16 k = 0; k < cnt; k++)
105 {
106 CBoneData& bd = K->LL_GetData(k);
107 if (*(bd.game_mtl_name))
108 {
109 bd.game_mtl_idx = GMLib.GetMaterialIdx(*bd.game_mtl_name);
110 R_ASSERT2(GMLib.GetMaterialByIdx(bd.game_mtl_idx)->Flags.is(SGameMtl::flDynamic), "Required dynamic game material");
111 }
112 else
113 {
114 bd.game_mtl_idx = def_idx;
115 }
116 }
117 }
118 break;
119 }
120}
121
122extern void clean_game_globals();
123extern void init_game_globals();

Callers 1

Instance_LoadMethod · 0.80

Calls 3

getTypeMethod · 0.80
isMethod · 0.80
LL_BoneCountMethod · 0.80

Tested by

no test coverage detected