diff --git a/src/g_levellocals.h b/src/g_levellocals.h index 1574442d6c..f83d6d6f81 100644 --- a/src/g_levellocals.h +++ b/src/g_levellocals.h @@ -118,7 +118,7 @@ struct FLevelLocals node_t *HeadNode() const { - return &nodes[nodes.Size() - 1]; + return nodes.Size() == 0? nullptr : &nodes[nodes.Size() - 1]; } node_t *HeadGamenode() const { diff --git a/src/p_setup.cpp b/src/p_setup.cpp index d420ce2af2..eccad199e0 100644 --- a/src/p_setup.cpp +++ b/src/p_setup.cpp @@ -3957,7 +3957,7 @@ void P_SetupLevel (const char *lumpname, int position) } // set the head node for gameplay purposes. If the separate gamenodes array is not empty, use that, otherwise use the render nodes. - level.headgamenode = level.gamenodes.Size() > 0 ? &level.gamenodes[level.gamenodes.Size() - 1] : &level.nodes[level.nodes.Size() - 1]; + level.headgamenode = level.gamenodes.Size() > 0 ? &level.gamenodes[level.gamenodes.Size() - 1] : level.nodes.Size()? &level.nodes[level.nodes.Size() - 1] : nullptr; times[10].Clock(); P_LoadBlockMap (map);