public WorldForm() { InitializeComponent(); Icon = Resources.IconWorld; treeManager = new ObjectTreeManager(); treeManager.InitIcons(worldTree); InitWorldTree(); }
public SpoForm(Pointer <SuperObject> spo) { InitializeComponent(); SuperObject = spo; string spoNameRaw = Acp.XHIE_fn_szGetObjectName(SuperObject, Acp.XHIE_OI_TYPE.TOI_INSTANCE); spoNameUsable = spoNameRaw ?? $"{SuperObject.StructPtr->type} [{(int)SuperObject:X8}]"; Text = $"{spoNameUsable} - Properties"; Icon = Resources.IconSpo; familyName = ctbFamily.Text = Acp.XHIE_fn_szGetObjectName(SuperObject, Acp.XHIE_OI_TYPE.TOI_FAMILY) ?? "(Unknown)"; modelName = ctbModel.Text = Acp.XHIE_fn_szGetObjectName(SuperObject, Acp.XHIE_OI_TYPE.TOI_MODEL) ?? "(Unknown)"; instanceName = ctbInstance.Text = spoNameRaw ?? "(Unknown)"; ctbAddress.Text = $"0x{(int)SuperObject:X8}"; ctbType.Text = $"{SuperObject.StructPtr->type} (0x{(int)SuperObject.StructPtr->type:X})"; treeManager = new ObjectTreeManager(); treeManager.InitIcons(ctvChildren); if (SuperObject.StructPtr->type == SuperObjectType.Perso) { dsgvarManager = new DsgVarListManager(); dsgvarManager.InitIcons(clvDsgVars); Acp.XAI_fn_lEnumSpoDsgVars(SuperObject, dsgvarManager.GetInitDsgVarsCallback(clvDsgVars)); if (SuperObject.StructPtr->PersoData->dynam != null) { dynamManager = new DynamManager(SuperObject); dynamManager.InitListView(clvDynamBase, DynamicsBlockBase.DynamicsType.Base); dynamManager.InitListView(clvDynamAdvanced, DynamicsBlockBase.DynamicsType.Advanced); dynamManager.InitListView(clvDynamComplex, DynamicsBlockBase.DynamicsType.Complex); switch (dynamManager.DynamType) { case DynamicsBlockBase.DynamicsType.Base: crbDynamTypeBase.Checked = true; break; case DynamicsBlockBase.DynamicsType.Advanced: crbDynamTypeAdvanced.Checked = true; break; case DynamicsBlockBase.DynamicsType.Complex: crbDynamTypeComplex.Checked = true; break; } } else { ctpDynamics.Enabled = false; } } else { ctpDsgVars.Enabled = false; ctpDynamics.Enabled = false; } parentNode = treeManager.NewTreeNode("Children", IconId.List); ctvChildren.Nodes.Add(parentNode); MainFrame.Instance.LevelChanged += OnLevelChanged; UpdateSpoData(); }