Skip to content
Beta: this is a preview of the new SplitScreen.Me. Data may be reset before launch.

Warlords Battlecry III · handler “Warlords Battlecry III”

Version 1

Release notes

first

Released
Size
177 KB
Downloads
14
Check
Verified
SHA-256
41db2cbe8be2e1b5b2480d2d3e7d75b7b9ee1d9902f74ff1be96bb0bfe21915f
Download v1 (.nc)All versions

Files 3

PathSize
handler.js7.9 KB
handler/ddraw.dll361 KB
handler/ddraw.ini6.4 KB

handler.js

Plain text
Hub.Handler.Version = 1; // Released at https://hub.splitscreen.me/ on Tue May 13 2025 20:47:24 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "Xwb5LFebnhEACXKW2";
Hub.Maintainer.Name = "messenils";
Hub.Maintainer.Id = "5NNQPxAD7mmwGuvKp";

var answers10 = ["YES", "NO"];
Game.AddOption("Would you like to retain the original aspect ratio of your selected resolution?", "Selecting no will stretch the game to fit the viewing space.", "Aspect", answers10);

Game.DirSymlinkCopyInstead = ["HeroData"];
Game.FileSymlinkExclusions = ["ddraw.dll", "ddraw.ini"];
Game.UseNucleusEnvironment = true;
Game.HandlerInterval = 100;
Game.RequiresAdmin = true;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.ExecutableName = "Battlecry III.exe";
Game.GUID = "Warlords Battlecry III";
Game.GameName = "Warlords Battlecry III";
Game.IdInWindowTitle = true;
//Game.ChangeExe = true;
Game.MaxPlayers = 8;
Game.MaxPlayersOneMonitor = 8;
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Warlords Battlecry III";
Game.DontResize = true;
Game.DontReposition = true;
Game.SetWindowHookStart = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = false;
Game.Hook.XInputReroute = false;
Game.Hook.CustomDllEnabled = false;
Game.DocumentsConfigPath = "Warlords Battlecry III";
Game.DocumentsSavePath = "Warlords Battlecry III\\Saved Games";
Game.Description =
  "Instances smaller than 800x600 in resolution is not recommended. Wait until setup is complete before pressing END to lock input and allow each player to use their own cursor. Host a TCP/IP game and join with the rest. You can press END again to unlock input. While input is unlocked you can press CTRL+Q to close Nucleus and all of it's instances.";
Game.PauseBetweenContextAndLaunch = 4;
Game.PauseBetweenProcessGrab = 1;
Game.PauseBetweenStarts = 2;
Game.GamePlayBeforeGameSetup = true;
//USS deprecated options:

Game.HookSetCursorPos = false;
Game.HookGetCursorPos = false;
Game.HookGetKeyState = false;
Game.HookGetAsyncKeyState = false;
Game.HookGetKeyboardState = false;
Game.HookFilterRawInput = false;
Game.HookFilterMouseMessages = false;
Game.HookUseLegacyInput = false;
Game.HookDontUpdateLegacyInMouseMsg = false;
Game.HookMouseVisibility = false;

Game.SendNormalMouseInput = false;
Game.SendNormalKeyboardInput = false;
Game.SendScrollWheel = false;
Game.ForwardRawKeyboardInput = false;
Game.ForwardRawMouseInput = false;
Game.HookReRegisterRawInput = false;
Game.HookReRegisterRawInputMouse = false;
Game.HookReRegisterRawInputKeyboard = false;
Game.DrawFakeMouseCursor = false;

//ProtoInput:

Game.SupportsMultipleKeyboardsAndMice = true;

Game.ProtoInput.InjectStartup = false;
Game.ProtoInput.InjectRuntime_RemoteLoadMethod = true;
Game.ProtoInput.InjectRuntime_EasyHookMethod = false;
Game.ProtoInput.InjectRuntime_EasyHookStealthMethod = false;
Game.ProtoInput.FindWindowHook = false; //startup hook kræsj

Game.LockInputAtStart = false;
Game.LockInputSuspendsExplorer = true;
Game.ProtoInput.FreezeExternalInputWhenInputNotLocked = false;
Game.LockInputToggleKey = 0x23;

Game.ProtoInput.RenameHandlesHook = false;
Game.ProtoInput.RenameHandles = [];
Game.ProtoInput.RenameNamedPipes = [];

Game.ProtoInput.RegisterRawInputHook = true;
Game.ProtoInput.GetRawInputDataHook = true;
Game.ProtoInput.MessageFilterHook = true;
Game.ProtoInput.GetCursorPosHook = true;
Game.ProtoInput.SetCursorPosHook = true;
Game.ProtoInput.GetKeyStateHook = true;
Game.ProtoInput.GetAsyncKeyStateHook = true;
Game.ProtoInput.GetKeyboardStateHook = true;
Game.ProtoInput.CursorVisibilityHook = true;
Game.ProtoInput.ClipCursorHook = true;
Game.ProtoInput.FocusHooks = true;
Game.ProtoInput.DrawFakeCursor = true;
Game.ProtoInput.ClipCursorHookCreatesFakeClip = true;
Game.ProtoInput.EnableToggleFakeCursorVisibilityShortcut = false;

Game.ProtoInput.RawInputFilter = true;
Game.ProtoInput.MouseMoveFilter = true;
Game.ProtoInput.MouseActivateFilter = true;
Game.ProtoInput.WindowActivateFilter = true;
Game.ProtoInput.WindowActvateAppFilter = true;
Game.ProtoInput.MouseWheelFilter = true;
Game.ProtoInput.MouseButtonFilter = true;
Game.ProtoInput.KeyboardButtonFilter = true;

Game.ProtoInput.SendMouseWheelMessages = true;
Game.ProtoInput.SendMouseButtonMessages = true;
Game.ProtoInput.SendMouseMovementMessages = true;
Game.ProtoInput.SendKeyboardButtonMessages = true;
Game.ProtoInput.XinputHook = false;
Game.ProtoInput.UseOpenXinput = false;
Game.ProtoInput.UseDinputRedirection = false;
Game.ProtoInput.DinputDeviceHook = false;
Game.ProtoInput.DinputHookAlsoHooksGetDeviceState = false;

Game.ProtoInput.EnableFocusMessageLoop = false;
Game.ProtoInput.FocusLoopIntervalMilliseconds = 5;
Game.ProtoInput.FocusLoop_WM_ACTIVATE = false;
Game.ProtoInput.FocusLoop_WM_ACTIVATEAPP = false;
Game.ProtoInput.FocusLoop_WM_NCACTIVATE = false;
Game.ProtoInput.FocusLoop_WM_SETFOCUS = false;
Game.ProtoInput.FocusLoop_WM_MOUSEACTIVATE = false;
Game.ProtoInput.WindowActivateFilter = false;
Game.ProtoInput.BlockedMessages = [0x0008];
Game.Play = function() {
  var aspect = Context.Options["Aspect"];

  var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ddraw.dll";
  var savePkgOrigin = Context.ScriptFolder + "\\ddraw.dll";
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var savePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ddraw.ini";
  var savePkgOrigin = Context.ScriptFolder + "\\ddraw.ini";
  System.IO.File.Copy(savePkgOrigin, savePath, true);

  var iniPath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\ddraw.ini";
  var dict = [
    Context.FindLineNumberInTextFile(iniPath, "width=", Nucleus.SearchType.StartsWith) + "|width=" + Context.Width,
    Context.FindLineNumberInTextFile(iniPath, "height=", Nucleus.SearchType.StartsWith) + "|height=" + Context.Height,
    Context.FindLineNumberInTextFile(iniPath, "custom_width=", Nucleus.SearchType.StartsWith) + "|custom_width=" + Context.Width,
    Context.FindLineNumberInTextFile(iniPath, "custom_height=", Nucleus.SearchType.StartsWith) + "|custom_height=" + Context.Height,
    Context.FindLineNumberInTextFile(iniPath, "posX=", Nucleus.SearchType.StartsWith) + "|posX=" + Context.PosX,
    Context.FindLineNumberInTextFile(iniPath, "posY=", Nucleus.SearchType.StartsWith) + "|posY=" + Context.PosY
  ];
  Context.ReplaceLinesInTextFile(iniPath, dict);
  if (aspect == "NO") {
    var dict = [Context.FindLineNumberInTextFile(iniPath, "maintas=", Nucleus.SearchType.StartsWith) + "|maintas=false"];
    Context.ReplaceLinesInTextFile(iniPath, dict);
  }

  //resolution 00 00 00 00 =800x600 01 00 00 00= 768x1024 02 00 00 00 = 1024x1268 03 00 00 00 = 1600x1200
  if (Context.Width >= 1600 && Context.Height >= 1200) {
    Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Enlight\\Warlords Battlecry III\\Options", "ResolutionSelected", "", Nucleus.RegType.Binary);
  } else if (Context.Width >= 1280 && Context.Height >= 1024) {
    Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Enlight\\Warlords Battlecry III\\Options", "ResolutionSelected", "", Nucleus.RegType.Binary);
  } else if (Context.Width >= 1024 && Context.Height >= 768) {
    Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Enlight\\Warlords Battlecry III\\Options", "ResolutionSelected", "", Nucleus.RegType.Binary);
  } else if (Context.Width >= 800 && Context.Height >= 600) {
    Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Enlight\\Warlords Battlecry III\\Options", "ResolutionSelected", "", Nucleus.RegType.Binary);
  }
  //sound 00-99
  if (Context.PlayerID > 0) {
    Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Enlight\\Warlords Battlecry III\\Options", "MusicVolume", "�", Nucleus.RegType.Binary);
  } else {
    Context.EditRegKey("HKEY_CURRENT_USER", "SOFTWARE\\Enlight\\Warlords Battlecry III\\Options", "MusicVolume", "", Nucleus.RegType.Binary);
  }
};