Skip to content

Commit 5639662

Browse files
authored
Merge pull request #7273 from Goober5000/more_fred_fixes_b
more FRED fixes when dialogs pop up, part 2
2 parents 780de87 + 0073532 commit 5639662

5 files changed

Lines changed: 11 additions & 4 deletions

File tree

fred2/fredrender.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,6 +1823,8 @@ void render_one_model_htl(object *objp) {
18231823
// if this object isn't fully created yet, don't render it
18241824
if (objp->type == OBJ_SHIP && Ships[objp->instance].create_time == 0)
18251825
return;
1826+
if (objp->type == OBJ_PROP && (!Props[objp->instance].has_value() || Props[objp->instance].value().create_time == 0))
1827+
return;
18261828

18271829
if (objp->type == OBJ_JUMP_NODE) {
18281830
return;

fred2/management.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1162,7 +1162,7 @@ int update_dialog_boxes()
11621162
return z;
11631163
}
11641164

1165-
z = Prop_editor_dialog.update_data();
1165+
z = Prop_editor_dialog.update_data(0);
11661166
if (z) {
11671167
nprintf(("Fred routing", "prop dialog save failed\n"));
11681168
Prop_editor_dialog.SetWindowPos(&Fred_main_wnd->wndTop, 0, 0, 0, 0,

fred2/propdlg.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ void prop_dlg::initialize_data(int full_update)
128128
m_flags_list.EnableWindow(enable);
129129
}
130130

131-
int prop_dlg::update_data()
131+
int prop_dlg::update_data(int redraw)
132132
{
133133
if (!GetSafeHwnd())
134134
return 0;
@@ -185,7 +185,9 @@ int prop_dlg::update_data()
185185
}
186186
}
187187

188-
update_map_window();
188+
if (redraw)
189+
update_map_window();
190+
189191
return 0;
190192
}
191193

fred2/propdlg.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class prop_dlg : public CDialog {
66
public:
77
int bypass_errors;
88
BOOL Create();
9-
int update_data();
9+
int update_data(int redraw = 1);
1010
void initialize_data(int full_update);
1111
void OnOK();
1212
prop_dlg(CWnd* pParent = NULL); // standard constructor

qtfred/src/mission/FredRenderer.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <mod_table/mod_table.h>
2828

2929
#include "mission/object.h"
30+
#include "prop/prop.h"
3031
#include "weapon/weapon.h"
3132

3233

@@ -797,6 +798,8 @@ void FredRenderer::render_one_model_htl(object* objp,
797798
// if this object isn't fully created yet, don't render it
798799
if (objp->type == OBJ_SHIP && Ships[objp->instance].create_time == 0)
799800
return;
801+
if (objp->type == OBJ_PROP && (!Props[objp->instance].has_value() || Props[objp->instance].value().create_time == 0))
802+
return;
800803

801804
if (objp->type == OBJ_JUMP_NODE) {
802805
return;

0 commit comments

Comments
 (0)