0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-18 19:31:17 +03:00

комментарии и дополнительные изыскания

This commit is contained in:
bird_egop 2025-03-05 18:15:48 +03:00
parent 135777a4c6
commit 8c4fc8f096
6 changed files with 73 additions and 18 deletions

View File

@ -20,7 +20,7 @@ public class ClanInfo
/// Игра называет этот путь TreeName
/// </summary>
public string ResearchNResPath { get; set; }
public int UnkInt3 { get; set; }
public int Brains { get; set; }
public int AlliesMapCount { get; set; }
/// <summary>

View File

@ -118,7 +118,7 @@ public class MissionTmaParser
if (4 < clanFeatureSet)
{
clanTreeInfo.UnkInt3 = fileStream.ReadInt32LittleEndian();
clanTreeInfo.Brains = fileStream.ReadInt32LittleEndian();
}
if (5 < clanFeatureSet)

View File

@ -132,7 +132,7 @@ public class MissionTmaExplorer : IImGuiPanel
ImGui.SameLine();
ImGui.Text(clanInfo.ClanType.ToReadableString());
ImGui.Text("Скрипты поведения: ");
ImGui.Text("Скрипты поведения (Mission Scripts): ");
Utils.ShowHint("Пути к файлам .scr и .fml описывающих настройку объектов и поведение AI");
ImGui.SameLine();
ImGui.Text(clanInfo.ScriptsString);
@ -176,14 +176,14 @@ public class MissionTmaExplorer : IImGuiPanel
ImGui.Text("Отсутствует неизвестная часть");
}
ImGui.Text("Путь к файлу .trf: ");
Utils.ShowHint("Не до конца понятно, что означает, вероятно это NRes с деревом исследований");
ImGui.Text("Дерево исследований: ");
Utils.ShowHint("NRes с деревом исследований");
ImGui.SameLine();
ImGui.Text(clanInfo.ResearchNResPath);
ImGui.Text("Неизвестное число 3: ");
ImGui.Text("Количество мозгов (Brains))): ");
ImGui.SameLine();
ImGui.Text(clanInfo.UnkInt3.ToString());
ImGui.Text(clanInfo.Brains.ToString());
ImGui.Text("Матрица союзников");
Utils.ShowHint("Если 1, то кланы - союзники, и не нападают друг на друга");

View File

@ -1,6 +1,7 @@
using ImGuiNET;
using NResUI.Abstractions;
using NResUI.Models;
using ScrLib;
namespace NResUI.ImGuiUI;
@ -49,7 +50,7 @@ public class ScrExplorer : IImGuiPanel
ImGui.TableSetupColumn("Индекс встроенного скрипта");
ImGui.TableSetupColumn("UnkInner2");
ImGui.TableSetupColumn("UnkInner3");
ImGui.TableSetupColumn("Тип скрипта");
ImGui.TableSetupColumn("Тип действия");
ImGui.TableSetupColumn("UnkInner5");
ImGui.TableSetupColumn("Кол-во аргументов");
ImGui.TableSetupColumn("Аргументы");
@ -62,21 +63,66 @@ public class ScrExplorer : IImGuiPanel
ImGui.TableNextRow();
ImGui.TableNextColumn();
ImGui.Text(inner.ScriptIndex.ToString());
if (inner.ScriptIndex == 2)
{
Utils.ShowHint("Первый аргумент - номер проблемы");
}
if (inner.ScriptIndex == 4)
{
Utils.ShowHint("Первый аргумент - номер проблемы");
}
if (inner.ScriptIndex == 8)
{
Utils.ShowHint("Установить dCurrentProblem стейт (VARSET:arg0)");
}
if (inner.ScriptIndex == 20)
{
Utils.ShowHint("Первый аргумент - номер проблемы");
}
ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner2.ToString());
ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner3.ToString());
ImGui.TableNextColumn();
ImGui.Text(inner.Type.ToString());
ImGui.Text($"{(int) inner.Type}: {inner.Type:G}");
if (inner.Type == ScrEntryInnerType._0)
{
Utils.ShowHint("0 обязан иметь аргументы");
}
if (inner.Type == ScrEntryInnerType.CheckInternalState)
{
Utils.ShowHint("Для 5 вообще не нужны данные, игра проверяет внутренний стейт");
}
if (inner.Type == ScrEntryInnerType.SetVarsetValue)
{
Utils.ShowHint("В случае 6, игра берёт UnkInner2 (индекс в Varset) и устанавливает ему значение UnkInner3");
}
ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner5.ToString());
ImGui.TableNextColumn();
ImGui.Text(inner.ArgumentsCount.ToString());
ImGui.TableNextColumn();
ImGui.Text(string.Join(", ", inner.Arguments));
foreach (var argument in inner.Arguments)
{
if (ImGui.Button(argument.ToString()))
{
}
ImGui.SameLine();
}
ImGui.TableNextColumn();
ImGui.Text(inner.UnkInner7.ToString());
}
ImGui.EndTable();
}

View File

@ -33,13 +33,7 @@ public class ScrEntryInner
public int UnkInner2 { get; set; }
public int UnkInner3 { get; set; }
/// <summary>
/// 0,1,2,3,4,5,6,-1
/// </summary>
///
/// <para>1 - неизвестно</para>
/// <para>2 - noop</para>
public int Type { get; set; }
public ScrEntryInnerType Type { get; set; }
public int UnkInner5 { get; set; }
@ -48,4 +42,19 @@ public class ScrEntryInner
public List<int> Arguments { get; set; }
public int UnkInner7 { get; set; }
}
public enum ScrEntryInnerType
{
Unspecified = -1,
_0 = 0,
_1 = 1,
_2 = 2,
_3 = 3,
_4 = 4,
CheckInternalState = 5,
/// <summary>
/// В случае 6, игра берёт UnkInner2 (индекс в Varset) и устанавливает ему значение UnkInner3
/// </summary>
SetVarsetValue = 6,
}

View File

@ -31,7 +31,7 @@ public class ScrParser
entryInner.UnkInner2 = fs.ReadInt32LittleEndian();
entryInner.UnkInner3 = fs.ReadInt32LittleEndian();
entryInner.Type = fs.ReadInt32LittleEndian();
entryInner.Type = (ScrEntryInnerType)fs.ReadInt32LittleEndian();
entryInner.UnkInner5 = fs.ReadInt32LittleEndian();
entryInner.ArgumentsCount = fs.ReadInt32LittleEndian();