diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/ui/playerconfig.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/client/ui/playerconfig.c b/src/client/ui/playerconfig.c index 6371026..a70655e 100644 --- a/src/client/ui/playerconfig.c +++ b/src/client/ui/playerconfig.c @@ -61,16 +61,27 @@ static void ReloadMedia(void) char *model = uis.pmi[m_player.model.curvalue].directory; char *skin = uis.pmi[m_player.model.curvalue].skindisplaynames[m_player.skin.curvalue]; + m_player.refdef.num_entities = 0; + Q_concat(scratch, sizeof(scratch), "players/", model, "/tris.md2", NULL); m_player.entities[0].model = R_RegisterModel(scratch); + if (!m_player.entities[0].model) + return; + + m_player.refdef.num_entities++; Q_concat(scratch, sizeof(scratch), "players/", model, "/", skin, ".pcx", NULL); m_player.entities[0].skin = R_RegisterSkin(scratch); - if (uis.weaponModel[0]) { - Q_concat(scratch, sizeof(scratch), "players/", model, "/", uis.weaponModel, NULL); - m_player.entities[1].model = R_RegisterModel(scratch); - } + if (!uis.weaponModel[0]) + return; + + Q_concat(scratch, sizeof(scratch), "players/", model, "/", uis.weaponModel, NULL); + m_player.entities[1].model = R_RegisterModel(scratch); + if (!m_player.entities[1].model) + return; + + m_player.refdef.num_entities++; } static void RunFrame(void) @@ -196,6 +207,7 @@ static qboolean Push(menuFrameWork_t *self) if (!uis.numPlayerModels) { PlayerModel_Load(); if (!uis.numPlayerModels) { + Com_Printf("No player models found.\n"); return qfalse; } } @@ -276,11 +288,7 @@ void M_Menu_PlayerConfig(void) VectorCopy(origin, m_player.entities[1].origin); VectorCopy(origin, m_player.entities[1].oldorigin); - m_player.refdef.num_entities = 1; - if (uis.weaponModel[0]) { - m_player.refdef.num_entities++; - } - + m_player.refdef.num_entities = 0; m_player.refdef.entities = m_player.entities; m_player.refdef.rdflags = RDF_NOWORLDMODEL; |