entity_t and brush_t now converted to idEditorEntity and idEditorBrush

This commit is contained in:
Justin Marshall
2026-05-24 11:33:16 -07:00
parent d6d01e1faf
commit 3242531044
41 changed files with 1598 additions and 1540 deletions
+57 -57
View File
@@ -244,8 +244,8 @@ static const int OUTLINER_GAP = 6;
static CPtrArray s_outlinerHiddenEntities;
static CString s_outlinerVisibilityMapName;
static entity_t* s_outlinerVisibilityWorldEntity = NULL;
static entity_t* s_outlinerVisibilityFirstEntity = NULL;
static idEditorEntity* s_outlinerVisibilityWorldEntity = NULL;
static idEditorEntity* s_outlinerVisibilityFirstEntity = NULL;
static int s_outlinerVisibilityEntityCount = -1;
static int s_outlinerVisibilityMapModified = -999999;
static bool s_outlinerVisibilityInitialized = false;
@@ -254,16 +254,16 @@ static const char* Outliner_CurrentMapName() {
return currentmap ? currentmap : "";
}
static entity_t* Outliner_FirstMapEntity() {
static idEditorEntity* Outliner_FirstMapEntity() {
if (entities.next != NULL && entities.next != &entities) {
return entities.next;
}
return NULL;
}
static bool Outliner_ArrayContainsPtr(const CPtrArray& array, entity_t* ent) {
static bool Outliner_ArrayContainsPtr(const CPtrArray& array, idEditorEntity* ent) {
for (int i = 0; i < array.GetSize(); i++) {
if ((entity_t*)array.GetAt(i) == ent) {
if ((idEditorEntity*)array.GetAt(i) == ent) {
return true;
}
}
@@ -290,7 +290,7 @@ void Outliner_ResetEntityVisibility() {
static void Outliner_EnsureVisibilityMap() {
const char* mapName = Outliner_CurrentMapName();
const entity_t* firstEntity = Outliner_FirstMapEntity();
const idEditorEntity* firstEntity = Outliner_FirstMapEntity();
bool resetVisibility = false;
if (!s_outlinerVisibilityInitialized) {
@@ -321,9 +321,9 @@ static void Outliner_EnsureVisibilityMap() {
Outliner_SyncVisibilityMapIdentity();
}
static int Outliner_FindHiddenEntity(entity_t* ent) {
static int Outliner_FindHiddenEntity(idEditorEntity* ent) {
for (int i = 0; i < s_outlinerHiddenEntities.GetSize(); i++) {
if ((entity_t*)s_outlinerHiddenEntities.GetAt(i) == ent) {
if ((idEditorEntity*)s_outlinerHiddenEntities.GetAt(i) == ent) {
return i;
}
}
@@ -334,14 +334,14 @@ static void Outliner_PruneHiddenEntities(const CPtrArray& currentEntities) {
Outliner_EnsureVisibilityMap();
for (int i = s_outlinerHiddenEntities.GetSize() - 1; i >= 0; i--) {
entity_t* ent = (entity_t*)s_outlinerHiddenEntities.GetAt(i);
idEditorEntity* ent = (idEditorEntity*)s_outlinerHiddenEntities.GetAt(i);
if (!Outliner_ArrayContainsPtr(currentEntities, ent)) {
s_outlinerHiddenEntities.RemoveAt(i);
}
}
}
bool Outliner_IsEntityVisible(entity_t* ent) {
bool Outliner_IsEntityVisible(idEditorEntity* ent) {
if (ent == NULL) {
return true;
}
@@ -355,11 +355,11 @@ bool Outliner_HasHiddenEntities() {
return s_outlinerHiddenEntities.GetSize() > 0;
}
bool Outliner_IsEntityLinkVisible(entity_t* source, entity_t* target) {
bool Outliner_IsEntityLinkVisible(idEditorEntity* source, idEditorEntity* target) {
return Outliner_IsEntityVisible(source) && Outliner_IsEntityVisible(target);
}
void Outliner_SetEntityVisible(entity_t* ent, bool visible) {
void Outliner_SetEntityVisible(idEditorEntity* ent, bool visible) {
if (ent == NULL) {
return;
}
@@ -648,7 +648,7 @@ BOOL COutlinerDlg::PreTranslateMessage(MSG* pMsg) {
}
if (pMsg->wParam == VK_SPACE && pMsg->hwnd == m_tree.GetSafeHwnd()) {
entity_t* ent = SelectedEntity();
idEditorEntity* ent = SelectedEntity();
if (ent != NULL) {
ToggleEntityVisibility(ent, false);
return TRUE;
@@ -703,7 +703,7 @@ void COutlinerDlg::Refresh(bool force) {
return;
}
entity_t* oldSelection = SelectedEntity();
idEditorEntity* oldSelection = SelectedEntity();
const char* mapName = Outliner_CurrentMapName();
const bool hadPreviousRefresh = (m_lastMapModified != -999999);
@@ -739,7 +739,7 @@ void COutlinerDlg::Refresh(bool force) {
for (int i = 0; i < m_entities.GetSize(); i++) {
if (m_incoming.GetAt(i) == 0) {
CPtrArray stack;
HTREEITEM item = InsertEntityRecursive((entity_t*)m_entities.GetAt(i), TVI_ROOT, stack);
HTREEITEM item = InsertEntityRecursive((idEditorEntity*)m_entities.GetAt(i), TVI_ROOT, stack);
if (item != NULL) {
insertedAny = true;
}
@@ -752,7 +752,7 @@ void COutlinerDlg::Refresh(bool force) {
continue;
}
entity_t* ent = (entity_t*)m_entities.GetAt(i);
idEditorEntity* ent = (idEditorEntity*)m_entities.GetAt(i);
if (!m_filterText.IsEmpty()) {
CPtrArray filterStack;
if (!EntityOrDescendantMatches(ent, filterStack)) {
@@ -823,13 +823,13 @@ void COutlinerDlg::BuildGraph() {
}
if (entities.next != NULL) {
for (entity_t* ent = entities.next; ent != &entities; ent = ent->next) {
for (idEditorEntity* ent = entities.next; ent != &entities; ent = ent->next) {
AddEntityNode(ent);
}
}
for (int i = 0; i < m_entities.GetSize(); i++) {
entity_t* source = (entity_t*)m_entities.GetAt(i);
idEditorEntity* source = (idEditorEntity*)m_entities.GetAt(i);
if (source == NULL) {
continue;
}
@@ -855,13 +855,13 @@ void COutlinerDlg::BuildGraph() {
continue;
}
entity_t* target = (entity_t*)m_entities.GetAt(targetIndex);
idEditorEntity* target = (idEditorEntity*)m_entities.GetAt(targetIndex);
AddEdge(source, target);
}
}
}
void COutlinerDlg::AddEntityNode(entity_t* ent) {
void COutlinerDlg::AddEntityNode(idEditorEntity* ent) {
if (ent == NULL) {
return;
}
@@ -875,7 +875,7 @@ void COutlinerDlg::AddEntityNode(entity_t* ent) {
m_covered.Add(FALSE);
}
void COutlinerDlg::AddEdge(entity_t* source, entity_t* target) {
void COutlinerDlg::AddEdge(idEditorEntity* source, idEditorEntity* target) {
if (source == NULL || target == NULL) {
return;
}
@@ -895,7 +895,7 @@ void COutlinerDlg::AddEdge(entity_t* source, entity_t* target) {
}
}
bool COutlinerDlg::HasEdge(entity_t* source, entity_t* target) const {
bool COutlinerDlg::HasEdge(idEditorEntity* source, idEditorEntity* target) const {
for (int i = 0; i < m_edges.GetSize(); i++) {
const outlinerEdge_t& edge = m_edges.GetAt(i);
if (edge.source == source && edge.target == target) {
@@ -905,9 +905,9 @@ bool COutlinerDlg::HasEdge(entity_t* source, entity_t* target) const {
return false;
}
int COutlinerDlg::FindNode(entity_t* ent) const {
int COutlinerDlg::FindNode(idEditorEntity* ent) const {
for (int i = 0; i < m_entities.GetSize(); i++) {
if ((entity_t*)m_entities.GetAt(i) == ent) {
if ((idEditorEntity*)m_entities.GetAt(i) == ent) {
return i;
}
}
@@ -920,18 +920,18 @@ int COutlinerDlg::FindNodeByName(const char* name) const {
}
for (int i = 0; i < m_entities.GetSize(); i++) {
entity_t* ent = (entity_t*)m_entities.GetAt(i);
idEditorEntity* ent = (idEditorEntity*)m_entities.GetAt(i);
if (ent == NULL) {
continue;
}
const char* entName = ValueForKey(ent, "name");
const char* entName = ent->ValueForKey("name");
if (entName != NULL && entName[0] != '\0' && idStr::Icmp(entName, name) == 0) {
return i;
}
// Support old/ported maps that still use targetname, but do not require it.
const char* targetName = ValueForKey(ent, "targetname");
const char* targetName = ent->ValueForKey("targetname");
if (targetName != NULL && targetName[0] != '\0' && idStr::Icmp(targetName, name) == 0) {
return i;
}
@@ -964,7 +964,7 @@ void COutlinerDlg::ClearItemData() {
m_itemData.RemoveAll();
}
COutlinerDlg::outlinerItemData_t* COutlinerDlg::AllocItemData(entity_t* ent, bool cycleRef) {
COutlinerDlg::outlinerItemData_t* COutlinerDlg::AllocItemData(idEditorEntity* ent, bool cycleRef) {
outlinerItemData_t* data = new outlinerItemData_t;
data->entity = ent;
data->cycleRef = cycleRef;
@@ -972,7 +972,7 @@ COutlinerDlg::outlinerItemData_t* COutlinerDlg::AllocItemData(entity_t* ent, boo
return data;
}
entity_t* COutlinerDlg::EntityFromItem(HTREEITEM item) const {
idEditorEntity* COutlinerDlg::EntityFromItem(HTREEITEM item) const {
if (item == NULL || !m_tree.GetSafeHwnd()) {
return NULL;
}
@@ -985,7 +985,7 @@ entity_t* COutlinerDlg::EntityFromItem(HTREEITEM item) const {
return data->entity;
}
entity_t* COutlinerDlg::SelectedEntity() const {
idEditorEntity* COutlinerDlg::SelectedEntity() const {
if (!m_tree.GetSafeHwnd()) {
return NULL;
}
@@ -993,15 +993,15 @@ entity_t* COutlinerDlg::SelectedEntity() const {
return EntityFromItem(m_tree.GetSelectedItem());
}
CString COutlinerDlg::EntityDisplayName(entity_t* ent) const {
CString COutlinerDlg::EntityDisplayName(idEditorEntity* ent) const {
CString text;
if (ent == NULL) {
return "<null entity>";
}
const char* classname = ValueForKey(ent, "classname");
const char* name = ValueForKey(ent, "name");
const char* classname = ent->ValueForKey("classname");
const char* name = ent->ValueForKey("name");
if (ent == world_entity) {
text = "worldspawn";
@@ -1023,7 +1023,7 @@ CString COutlinerDlg::EntityDisplayName(entity_t* ent) const {
return text;
}
bool COutlinerDlg::EntityMatchesFilter(entity_t* ent) const {
bool COutlinerDlg::EntityMatchesFilter(idEditorEntity* ent) const {
if (m_filterText.IsEmpty()) {
return true;
}
@@ -1033,13 +1033,13 @@ bool COutlinerDlg::EntityMatchesFilter(entity_t* ent) const {
}
CString haystack;
const char* name = ValueForKey(ent, "name");
const char* name = ent->ValueForKey("name");
if (name != NULL && name[0] != '\0') {
haystack = name;
} else if (ent == world_entity) {
haystack = "worldspawn";
} else {
const char* classname = ValueForKey(ent, "classname");
const char* classname = ent->ValueForKey("classname");
haystack = (classname != NULL) ? classname : "";
}
@@ -1050,7 +1050,7 @@ bool COutlinerDlg::EntityMatchesFilter(entity_t* ent) const {
return haystack.Find(needle) >= 0;
}
bool COutlinerDlg::EntityOrDescendantMatches(entity_t* ent, CPtrArray& stack) const {
bool COutlinerDlg::EntityOrDescendantMatches(idEditorEntity* ent, CPtrArray& stack) const {
if (m_filterText.IsEmpty()) {
return true;
}
@@ -1082,16 +1082,16 @@ bool COutlinerDlg::EntityOrDescendantMatches(entity_t* ent, CPtrArray& stack) co
return matches;
}
bool COutlinerDlg::ArrayContains(const CPtrArray& array, entity_t* ent) const {
bool COutlinerDlg::ArrayContains(const CPtrArray& array, idEditorEntity* ent) const {
for (int i = 0; i < array.GetSize(); i++) {
if ((entity_t*)array.GetAt(i) == ent) {
if ((idEditorEntity*)array.GetAt(i) == ent) {
return true;
}
}
return false;
}
HTREEITEM COutlinerDlg::InsertEntityRecursive(entity_t* ent, HTREEITEM parent, CPtrArray& stack) {
HTREEITEM COutlinerDlg::InsertEntityRecursive(idEditorEntity* ent, HTREEITEM parent, CPtrArray& stack) {
if (ent == NULL) {
return NULL;
}
@@ -1141,7 +1141,7 @@ HTREEITEM COutlinerDlg::InsertEntityRecursive(entity_t* ent, HTREEITEM parent, C
return item;
}
HTREEITEM COutlinerDlg::FindTreeItemForEntity(entity_t* ent, HTREEITEM start) const {
HTREEITEM COutlinerDlg::FindTreeItemForEntity(idEditorEntity* ent, HTREEITEM start) const {
HTREEITEM item = start;
while (item != NULL) {
if (EntityFromItem(item) == ent) {
@@ -1204,7 +1204,7 @@ LRESULT COutlinerDlg::OnApplyTreeCheck(WPARAM wParam, LPARAM lParam) {
return 0;
}
entity_t* ent = EntityFromItem(item);
idEditorEntity* ent = EntityFromItem(item);
if (ent == NULL) {
return 0;
}
@@ -1216,7 +1216,7 @@ LRESULT COutlinerDlg::OnApplyTreeCheck(WPARAM wParam, LPARAM lParam) {
return 0;
}
void COutlinerDlg::CollectEntityAndChildren(entity_t* ent, CPtrArray& out, CPtrArray& stack) const {
void COutlinerDlg::CollectEntityAndChildren(idEditorEntity* ent, CPtrArray& out, CPtrArray& stack) const {
if (ent == NULL) {
return;
}
@@ -1245,7 +1245,7 @@ void COutlinerDlg::CollectEntityAndChildren(entity_t* ent, CPtrArray& out, CPtrA
stack.RemoveAt(stack.GetSize() - 1);
}
void COutlinerDlg::SetEntityVisibility(entity_t* ent, bool visible, bool includeChildren) {
void COutlinerDlg::SetEntityVisibility(idEditorEntity* ent, bool visible, bool includeChildren) {
if (ent == NULL) {
return;
}
@@ -1257,7 +1257,7 @@ void COutlinerDlg::SetEntityVisibility(entity_t* ent, bool visible, bool include
CollectEntityAndChildren(ent, entitiesToChange, stack);
for (int i = 0; i < entitiesToChange.GetSize(); i++) {
Outliner_SetEntityVisible((entity_t*)entitiesToChange.GetAt(i), visible);
Outliner_SetEntityVisible((idEditorEntity*)entitiesToChange.GetAt(i), visible);
}
}
else {
@@ -1267,7 +1267,7 @@ void COutlinerDlg::SetEntityVisibility(entity_t* ent, bool visible, bool include
ApplyVisibilityChange();
}
void COutlinerDlg::ToggleEntityVisibility(entity_t* ent, bool includeChildren) {
void COutlinerDlg::ToggleEntityVisibility(idEditorEntity* ent, bool includeChildren) {
if (ent == NULL) {
return;
}
@@ -1276,7 +1276,7 @@ void COutlinerDlg::ToggleEntityVisibility(entity_t* ent, bool includeChildren) {
SetEntityVisibility(ent, newVisible, includeChildren);
}
void COutlinerDlg::ShowOnlyEntityAndChildren(entity_t* ent) {
void COutlinerDlg::ShowOnlyEntityAndChildren(idEditorEntity* ent) {
if (ent == NULL) {
return;
}
@@ -1287,7 +1287,7 @@ void COutlinerDlg::ShowOnlyEntityAndChildren(entity_t* ent) {
CollectEntityAndChildren(ent, keepVisible, stack);
for (int i = 0; i < m_entities.GetSize(); i++) {
entity_t* candidate = (entity_t*)m_entities.GetAt(i);
idEditorEntity* candidate = (idEditorEntity*)m_entities.GetAt(i);
if (i == 0)
{
Outliner_SetEntityVisible(candidate, true);
@@ -1307,7 +1307,7 @@ void COutlinerDlg::ShowAllEntities() {
void COutlinerDlg::UpdateAllCheckmarks(HTREEITEM start) {
HTREEITEM item = start;
while (item != NULL) {
entity_t* ent = EntityFromItem(item);
idEditorEntity* ent = EntityFromItem(item);
if (ent != NULL) {
m_tree.SetCheck(item, Outliner_IsEntityVisible(ent) ? TRUE : FALSE);
}
@@ -1352,7 +1352,7 @@ void COutlinerDlg::OnTreeRightClick(NMHDR* pNMHDR, LRESULT* pResult) {
m_tree.SelectItem(item);
}
entity_t* ent = SelectedEntity();
idEditorEntity* ent = SelectedEntity();
const bool entVisible = Outliner_IsEntityVisible(ent);
CString toggleSelfText;
@@ -1408,7 +1408,7 @@ void COutlinerDlg::OnTreeRightClick(NMHDR* pNMHDR, LRESULT* pResult) {
*pResult = 0;
}
void COutlinerDlg::SelectEntityInMap(entity_t* ent, bool updateInspector) {
void COutlinerDlg::SelectEntityInMap(idEditorEntity* ent, bool updateInspector) {
if (ent == NULL) {
return;
}
@@ -1416,7 +1416,7 @@ void COutlinerDlg::SelectEntityInMap(entity_t* ent, bool updateInspector) {
Select_Deselect();
if (ent != world_entity) {
brush_t* firstBrush = ent->brushes.onext;
idEditorBrush* firstBrush = ent->brushes.onext;
if (firstBrush != NULL && firstBrush != &ent->brushes) {
Select_Brush(firstBrush, true, true);
}
@@ -1433,7 +1433,7 @@ void COutlinerDlg::SelectEntityInMap(entity_t* ent, bool updateInspector) {
Sys_UpdateWindows(W_ALL);
}
void COutlinerDlg::OpenEntityProperties(entity_t* ent) {
void COutlinerDlg::OpenEntityProperties(idEditorEntity* ent) {
if (ent == NULL || g_Inspectors == NULL) {
return;
}
@@ -1442,12 +1442,12 @@ void COutlinerDlg::OpenEntityProperties(entity_t* ent) {
g_Inspectors->SetMode(W_ENTITY);
}
bool COutlinerDlg::GetEntityCenter(entity_t* ent, idVec3& center) const {
bool COutlinerDlg::GetEntityCenter(idEditorEntity* ent, idVec3& center) const {
if (ent == NULL) {
return false;
}
if (GetVectorForKey(ent, "origin", center)) {
if (ent->GetVectorForKey("origin", center)) {
return true;
}
@@ -1455,7 +1455,7 @@ bool COutlinerDlg::GetEntityCenter(entity_t* ent, idVec3& center) const {
bounds.Clear();
bool haveBounds = false;
for (brush_t* b = ent->brushes.onext; b != NULL && b != &ent->brushes; b = b->onext) {
for (idEditorBrush* b = ent->brushes.onext; b != NULL && b != &ent->brushes; b = b->onext) {
bounds.AddPoint(b->mins);
bounds.AddPoint(b->maxs);
haveBounds = true;
@@ -1470,7 +1470,7 @@ bool COutlinerDlg::GetEntityCenter(entity_t* ent, idVec3& center) const {
return false;
}
void COutlinerDlg::MoveToEntity(entity_t* ent) {
void COutlinerDlg::MoveToEntity(idEditorEntity* ent) {
if (ent == NULL || g_pParentWnd == NULL) {
return;
}