public void UpdateSegmentNumbering() { gl_panel.RemoveAllTextItems(); switch (m_show_3d_text_type) { default: break; case ShowTextType.MARK_SEGS: case ShowTextType.ALL_SEGS: foreach (Segment seg in m_level.EnumerateVisibleSegments()) { if ((m_show_3d_text_type == ShowTextType.MARK_SEGS) && !seg.marked && m_level.selected_segment != seg.num) { continue; } GLTextItem item = new GLTextItem(seg.FindCenter(), seg.num.ToString(), Color.Red, false); item.Facing = true; item.Scale = new Vector3(0.06f, 0.06f, 0.06f); gl_panel.AddTextItem(item); } break; case ShowTextType.POWERUPS: case ShowTextType.ROBOTS: case ShowTextType.MARK_ENTS: foreach (Entity ent in m_level.EnumerateAliveEntities()) { if (ent.m_segnum > -1 && m_level.segment[ent.m_segnum].m_hidden) { continue; } bool selected = (ent.num == m_level.selected_entity); if (m_show_3d_text_type == ShowTextType.POWERUPS) { if (ent.Type == EntityType.ITEM) { GLTextItem item = new GLTextItem(ent.position - Vector3.UnitY, (GetItemString(ent)), (selected ? Color.HotPink : Color.Orange), false); item.Facing = true; item.Scale = m_item_text_scale; gl_panel.AddTextItem(item); } } else if (m_show_3d_text_type == ShowTextType.ROBOTS) { if (ent.Type == EntityType.ENEMY) { GLTextItem item = new GLTextItem(ent.position - Vector3.UnitY, (GetRobotString(ent)), (selected ? Color.HotPink : Color.Red), false); item.Facing = true; item.Scale = m_item_text_scale; gl_panel.AddTextItem(item); } } else { if (ent.marked || selected) { GLTextItem item; if (ent.Type == EntityType.ITEM) { item = new GLTextItem(ent.position - Vector3.UnitY, (GetItemString(ent)), (selected ? Color.HotPink : Color.Orange), false); } else if (ent.Type == EntityType.ENEMY) { item = new GLTextItem(ent.position - Vector3.UnitY, (GetRobotString(ent)), (selected ? Color.HotPink : Color.Red), false); } else if (ent.Type == EntityType.PROP) { item = new GLTextItem(ent.position - Vector3.UnitY, GetPropString(ent), (selected ? Color.HotPink : Color.Orange), false); } else if (ent.Type == EntityType.SCRIPT) { item = new GLTextItem(ent.position - Vector3.UnitY, ((ScriptSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false); } else if (ent.Type == EntityType.TRIGGER) { item = new GLTextItem(ent.position - Vector3.UnitY, ((TriggerSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false); } else if (ent.Type == EntityType.SPECIAL) { item = new GLTextItem(ent.position - Vector3.UnitY, ((SpecialSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false); } else if (ent.Type == EntityType.DOOR) { item = new GLTextItem(ent.position - Vector3.UnitY, ((DoorSubType)ent.SubType).ToString(), (selected ? Color.HotPink : Color.Orange), false); } else { continue; } item.Facing = true; item.Scale = m_item_text_scale; gl_panel.AddTextItem(item); } } } break; } }