nchristoph
Erfahrenes Mitglied
Ich bin gerade dabei, mir einen Modelviewer zu basteln.
Funktioniert ja so weit so gut, nur wenn ich den Viewer auf 0 zurücksetze, krieg ich eine exception.
Ich vermute, es liegt an meinem neuen Code zum Model setzen. Mit dem alten funktioniert es ohne crash, dafür langsamer als mit dem neuen.
Durchs debuggen bin ich nicht wirklich schlauer geworden, ich crashe immer in die Render dll der Engine. Meine Vermutung ist, das ich in der KillModel oder ResetModel Funktion nen Bock geschossen habe.
Funktioniert ja so weit so gut, nur wenn ich den Viewer auf 0 zurücksetze, krieg ich eine exception.
Ich vermute, es liegt an meinem neuen Code zum Model setzen. Mit dem alten funktioniert es ohne crash, dafür langsamer als mit dem neuen.
C++:
void CVGUIModel::ResetModel()
{
model = new cl_entity_t;
}
void CVGUIModel::KillModel()
{
delete model;
}
void CVGUIModel::SetModel(char *name)
{
cl_entity_t *player;
// Load it up with some bogus data
player = gEngfuncs.GetLocalPlayer();
if ( !player )
return;
int m_i;
char file[64];
sprintf(file,"models/player/%s/%s.mdl",name,name);
*model = *player;
model->model = gEngfuncs.CL_LoadModel( file, &m_i );
model->origin = Vector(0,0,-6);
model->index = 10000;
model->curstate.modelindex = m_i;
SetSequence("idle");
}
void CVGUIModel::SetSequence(char *name)
{
model->curstate.sequence = LookUpSequence(model,name);
model->prevstate.sequence = model->curstate.sequence;
model->baseline.sequence = model->curstate.sequence;
}