Skip to content

Commit 4b98e74

Browse files
authored
Merge pull request #113 from Kozmeker/ImportFrameQOL
Map Editor Translokator Update Part 2
2 parents 29ce516 + 28be591 commit 4b98e74

24 files changed

+1120
-204
lines changed

M2FBX/M2FBX/Source/MTObject/MT_ObjectHandler.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ void MT_ObjectHandler::WriteBundleToFile(const std::string& FileName, const MT_O
8181
WriteObjectToFile(OutStream, *Object);
8282
}
8383

84+
// Write animations
85+
const MT_Animation* BundleAnim = Bundle.GetAnimation();
86+
FileUtils::Write<uint32_t>(OutStream, (BundleAnim != nullptr ? 1 : 0));
87+
if (BundleAnim)
88+
{
89+
BundleAnim->WriteToFile(OutStream);
90+
}
91+
8492
fclose(OutStream);
8593
}
8694

Mafia2Libs/Controls/RenderOptions.Designer.cs

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mafia2Libs/Controls/RenderOptions.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ private void Localise()
2525
TexBrowser.Description = Language.GetString("$SELECT_TEX_FOLDER");
2626
ExperimentalBox.Text = Language.GetString("$ENABLE_EXPERIMENTAL");
2727
Checkbox_EnableNavigation.Text = Language.GetString("$ENABLE_NAVIGATION");
28+
Checkbox_EnableTranslokatorTint.Text = Language.GetString("$TOGGLE_TRANSLOKATOR_TINT");
2829
}
2930

3031
private void LoadSettings()
@@ -36,6 +37,7 @@ private void LoadSettings()
3637
TexDirectoryBox.Text = ToolkitSettings.TexturePath;
3738
ExperimentalBox.Checked = ToolkitSettings.Experimental;
3839
Checkbox_EnableNavigation.Checked = ToolkitSettings.bNavigation;
40+
Checkbox_EnableTranslokatorTint.Checked = ToolkitSettings.bTranslokatorTint;
3941
UseMIPsBox.Checked = ToolkitSettings.UseMIPS;
4042
CheckBox_VSync.Checked = ToolkitSettings.VSync;
4143
}
@@ -104,5 +106,11 @@ private void Button_EnableNavigation_CheckedChanged(object sender, EventArgs e)
104106
ToolkitSettings.bNavigation = Checkbox_EnableNavigation.Checked;
105107
ToolkitSettings.WriteKey("EnableNavigation", "ModelViewer", ToolkitSettings.bNavigation.ToString());
106108
}
109+
110+
private void Button_EnableTranslokatorTint_CheckedChanged(object sender, EventArgs e)
111+
{
112+
ToolkitSettings.bTranslokatorTint = Checkbox_EnableTranslokatorTint.Checked;
113+
ToolkitSettings.WriteKey("EnableTranslokator", "ModelViewer", ToolkitSettings.bTranslokatorTint.ToString());
114+
}
107115
}
108116
}

Mafia2Libs/Forms/Docking/DockSceneTree.Designer.cs

Lines changed: 19 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mafia2Libs/Forms/Docking/DockSceneTree.cs

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Drawing;
55
using System.Numerics;
66
using System.Windows.Forms;
7+
using ResourceTypes.Actors;
78
using ResourceTypes.Translokator;
89
using Utils.Language;
910
using Utils.VorticeUtils;
@@ -29,6 +30,8 @@ public TreeNode SelectedNode {
2930

3031
public event EventHandler<TreeViewDragEventArgs> TreeViewNodeDropped;
3132

33+
public bool hasTranslokatorData = false;//this should be managed better in the future alongside openentrycontext
34+
3235
public DockSceneTree()
3336
{
3437
InitializeComponent();
@@ -313,6 +316,8 @@ private void OpenEntryContext(object sender, System.ComponentModel.CancelEventAr
313316
Export3DButton.Visible = false;
314317
EntryMenuStrip.Items[4].Visible = false;
315318
FrameActions.DropDownItems[3].Visible = false;
319+
EntryMenuStrip.Items[5].Visible = false;
320+
EntryMenuStrip.Items[6].Visible = false;
316321

317322
if (TreeView_Explorer.SelectedNode != null && TreeView_Explorer.SelectedNode.Tag != null)
318323
{
@@ -349,10 +354,20 @@ private void OpenEntryContext(object sender, System.ComponentModel.CancelEventAr
349354
}
350355
}
351356

352-
if (TreeView_Explorer.SelectedNode.Tag is Instance || TreeView_Explorer.SelectedNode.Tag is Object)
357+
if (TreeView_Explorer.SelectedNode.Tag is Instance || TreeView_Explorer.SelectedNode.Tag is Object)//this will need solid cleanup later
353358
{
354359
EntryMenuStrip.Items[0].Visible = true;
355360
}
361+
362+
if (TreeView_Explorer.SelectedNode.Tag is Object)
363+
{
364+
EntryMenuStrip.Items[5].Visible = true;
365+
}
366+
367+
if (TreeView_Explorer.SelectedNode.Tag is ActorEntry && hasTranslokatorData)
368+
{
369+
EntryMenuStrip.Items[6].Visible = true;
370+
}
356371
}
357372
}
358373

@@ -503,6 +518,36 @@ private void TreeView_Searcher_OnKeyUp(object sender, KeyEventArgs e)
503518
InternalGotoExplorerNode();
504519
}
505520
}
521+
522+
public TreeNode GetObjectGroupByActorType(TreeNode translokatorRoot, int ActorTypeID)
523+
{
524+
foreach (TreeNode ogNode in translokatorRoot.Nodes[0].Nodes)
525+
{
526+
if (ogNode.Tag is ObjectGroup og)
527+
{
528+
if (og.ActorType.ToString().Equals(((ActorTypes)ActorTypeID).ToString()))
529+
{
530+
return ogNode;
531+
}
532+
}
533+
}
534+
return null;
535+
}
536+
537+
public bool ObjectGroupHasObject(TreeNode ogNode, ulong frameRefHash)
538+
{
539+
foreach (TreeNode objNode in ogNode.Nodes)
540+
{
541+
if (objNode.Tag is Object obj)
542+
{
543+
if (obj.Name.Hash == frameRefHash)
544+
{
545+
return true;
546+
}
547+
}
548+
}
549+
return false;
550+
}
506551
}
507552
}
508553
public class TreeViewDragEventArgs : EventArgs

Mafia2Libs/Forms/MapEditor.Designer.cs

Lines changed: 20 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)