diff --git a/fred2/fredrender.cpp b/fred2/fredrender.cpp index 52f487f7118..773a6de5578 100644 --- a/fred2/fredrender.cpp +++ b/fred2/fredrender.cpp @@ -1820,6 +1820,10 @@ void render_one_model_htl(object *objp) { Assert(objp->type != OBJ_NONE); + // if this object isn't fully created yet, don't render it + if (objp->type == OBJ_SHIP && Ships[objp->instance].create_time == 0) + return; + if (objp->type == OBJ_JUMP_NODE) { return; } diff --git a/fred2/jumpnodedlg.cpp b/fred2/jumpnodedlg.cpp index e0b1a41c833..45c3400385e 100644 --- a/fred2/jumpnodedlg.cpp +++ b/fred2/jumpnodedlg.cpp @@ -166,7 +166,7 @@ void jumpnode_dlg::initialize_data(int full_update) GetDlgItem(IDC_NAME)->EnableWindow(enable); } -int jumpnode_dlg::update_data() +int jumpnode_dlg::update_data(int redraw) { const char *str; char old_name[255]; @@ -345,7 +345,8 @@ int jumpnode_dlg::update_data() } - update_map_window(); + if (redraw) + update_map_window(); return 0; } diff --git a/fred2/jumpnodedlg.h b/fred2/jumpnodedlg.h index 2919e174a3a..fccbd003f46 100644 --- a/fred2/jumpnodedlg.h +++ b/fred2/jumpnodedlg.h @@ -20,7 +20,7 @@ class jumpnode_dlg : public CDialog // Construction public: int bypass_errors; - int update_data(); + int update_data(int redraw = 1); void initialize_data(int full_update); void OnOK(); BOOL Create(); diff --git a/fred2/management.cpp b/fred2/management.cpp index 92321a5f663..c6af7ee81cd 100644 --- a/fred2/management.cpp +++ b/fred2/management.cpp @@ -1180,7 +1180,7 @@ int update_dialog_boxes() return z; } - z = Jumpnode_editor_dialog.update_data(); + z = Jumpnode_editor_dialog.update_data(0); if (z) { nprintf(("Fred routing", "jumpnode dialog save failed\n")); Jumpnode_editor_dialog diff --git a/qtfred/src/mission/FredRenderer.cpp b/qtfred/src/mission/FredRenderer.cpp index b92ccc10371..eb735609e30 100644 --- a/qtfred/src/mission/FredRenderer.cpp +++ b/qtfred/src/mission/FredRenderer.cpp @@ -794,6 +794,10 @@ void FredRenderer::render_one_model_htl(object* objp, Assert(objp->type != OBJ_NONE); + // if this object isn't fully created yet, don't render it + if (objp->type == OBJ_SHIP && Ships[objp->instance].create_time == 0) + return; + if (objp->type == OBJ_JUMP_NODE) { return; }