Skip to content

Commit

Permalink
Fix strange crashes
Browse files Browse the repository at this point in the history
  • Loading branch information
UnrealKaraulov committed Dec 17, 2023
1 parent 1141d2d commit 23e9dc5
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
7 changes: 3 additions & 4 deletions src/bsp/Bsp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6363,14 +6363,13 @@ int Bsp::duplicate_model(int modelIdx)
BSPMODEL& oldModel = models[modelIdx];
BSPMODEL& newModel = models[newModelIdx];
memcpy(&newModel, &oldModel, sizeof(BSPMODEL));

newModel.iFirstFace = remap.faces[oldModel.iFirstFace];
newModel.iHeadnodes[0] = remap.nodes[oldModel.iHeadnodes[0]];
newModel.iHeadnodes[0] = oldModel.iHeadnodes[0] < 0 ? -1 : remap.nodes[oldModel.iHeadnodes[0]];
for (int i = 1; i < MAX_MAP_HULLS; i++)
{
newModel.iHeadnodes[i] = remap.clipnodes[oldModel.iHeadnodes[i]];
newModel.iHeadnodes[i] = oldModel.iHeadnodes[i] < 0 ? -1 : remap.clipnodes[oldModel.iHeadnodes[i]];
}
newModel.nVisLeafs = 0; // techinically should match the old model, but leaves aren't duplicated yet
//newModel.nVisLeafs = 0; // techinically should match the old model, but leaves aren't duplicated yetx
return newModelIdx;
}

Expand Down
6 changes: 3 additions & 3 deletions src/editor/Command.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -321,11 +321,11 @@ void DuplicateBspModelCommand::undo()
ent->setOrAddKeyvalue("model", "*" + std::to_string(oldModelIdx));


renderer->loadLightmaps();
renderer->calcFaceMaths();
renderer->preRenderFaces();
renderer->preRenderEnts();
renderer->reloadTextures();
renderer->reloadLightmaps();
g_app->gui->refresh();

/*
Expand Down Expand Up @@ -419,12 +419,12 @@ void CreateBspModelCommand::execute()
//renderer->refreshModel(modelIdx);
//

renderer->loadLightmaps();
renderer->calcFaceMaths();
renderer->preRenderFaces();
renderer->preRenderEnts();
if (NeedreloadTextures)
renderer->reloadTextures();
renderer->reloadLightmaps();
renderer->addClipnodeModel(modelIdx);
//renderer->reload();

Expand Down Expand Up @@ -601,7 +601,7 @@ void EditBspModelCommand::refresh()
if (i == LUMP_LIGHTING && newLumps.lumps[i].size())
{
// renderer->updateLightmapInfos();
map->getBspRender()->reloadLightmaps();
map->getBspRender()->loadLightmaps();
}
else if (i == LUMP_ENTITIES && newLumps.lumps[i].size())
{
Expand Down
2 changes: 1 addition & 1 deletion src/editor/Renderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3334,7 +3334,7 @@ bool Renderer::splitModelFace()
map->getBspRender()->pushModelUndoState("Split Face", EDIT_MODEL_LUMPS);
map->resize_all_lightmaps();

mapRenderer->reloadLightmaps();
mapRenderer->loadLightmaps();
mapRenderer->calcFaceMaths();
mapRenderer->refreshModel(modelIdx);
updateModelVerts();
Expand Down

0 comments on commit 23e9dc5

Please sign in to comment.