diff --git a/src/HexManiac.Core/ViewModels/Map/IEventViewModel.cs b/src/HexManiac.Core/ViewModels/Map/IEventViewModel.cs
index 93c4c111..64bf7733 100644
--- a/src/HexManiac.Core/ViewModels/Map/IEventViewModel.cs
+++ b/src/HexManiac.Core/ViewModels/Map/IEventViewModel.cs
@@ -1274,11 +1274,22 @@ show:
public int ScriptAddress {
get => element.GetAddress("script");
- set => element.SetAddress("script", value);
+ set {
+ element.SetAddress("script", value);
+ NotifyPropertyChanged(nameof(CanCreateScript));
+ }
}
public void GotoScript() => gotoAddress(ScriptAddress);
+ public bool CanCreateScript => ScriptAddress == Pointer.NULL;
+ public void CreateScript() {
+ var start = element.Model.FindFreeSpace(element.Model.FreeSpaceStart, 0x10);
+ Token.ChangeData(element.Model, start, 2);
+ ScriptAddress = start;
+ gotoAddress(start);
+ }
+
private string scriptAddressText;
public string ScriptAddressText {
get {
diff --git a/src/HexManiac.WPF/Controls/MapTab.xaml b/src/HexManiac.WPF/Controls/MapTab.xaml
index 6855ac32..3e641764 100644
--- a/src/HexManiac.WPF/Controls/MapTab.xaml
+++ b/src/HexManiac.WPF/Controls/MapTab.xaml
@@ -703,6 +703,11 @@
Width="22" Height="18" IsTabStop="False" Padding="0,2" BorderBrush="{DynamicResource Backlight}">
+
+
+