Wintermute Engine is no longer actively developed.
The original sources are archived on GitHub: wintermute-engine and wmelite. The runtime is now integrated into ScummVM, which runs Wintermute games on current systems.
Si quieres implementar una funcionalidad similar al resaltado de objetos activos, como en Tunguska, añade el siguiente código a game.script:
var ShowingHintIcons = false; //////////////////////////////////////////////////////////////////////////////// function ShowHintIcons() { // Pequeño arreglo de metamorphium. Eres libre de ignorarlo. if (Scene.GetLayer("hints") == null) ShowingHintIcons = false; // Fin del arreglo // Nos aseguramos de mostrar los iconos sólo una vez if(!ShowingHintIcons) { ShowingHintIcons = true; // creamos una nueva capa superior var HintLayer = Scene.AddLayer("hints"); // recorremos todas las entidades de la escena var MainLayer = Scene.MainLayer; var i; for(i = 0; i < MainLayer.NumNodes; i = i + 1) { var Node = MainLayer.GetNode(i); AddHintIcon(HintLayer, Node); } // recorremos todas las entidades y actores libres for(i = 0; i < Scene.NumFreeNodes; i = i + 1) { Node = Scene.GetFreeNode(i); AddHintIcon(HintLayer, Node); } // rotamos los iconos para un momento for(var t = 0; t <= 360; t = t + 15) { for(i = 0; i < HintLayer.NumNodes; i = i + 1) { var Icon = HintLayer.GetNode(i); Icon.Rotate = t; } Sleep(50); } // eliminamos la capa Scene.DeleteLayer(HintLayer); ShowingHintIcons = false; } } //////////////////////////////////////////////////////////////////////////////// function AddHintIcon(Layer, Node) { // sólo estamos interesados en las entidades visibles interactivas if(Node.Type!="entity" || !Node.Interactive || !Node.Active==true) return; // creamos el icono de ayuda // puedes mejorar esto, por ejemplo, para mostrar diferentes iconos dependiendo de las capacidades del 'Nodo' var Icon = Layer.AddEntity("icon"); Icon.SetSprite("sprites\system\cur_wait.sprite"); // Reemplaza esto con un sprite que marque el punto caliente Icon.X = Node.X; Icon.Y = Node.Y - (Node.Height / 2); Icon.Active = true; Icon.Interactive = false; Icon.Scalable = false; Icon.Rotatable = true; }
Ahora sólo necesitas llamar a este código desde alguna parte. Por ejemplo, si quieres mostrar los iconos de ayuda cuando el jugador pulsa espacio, edita game.script, busca la función de evento on “Keypress”, y añade algo como:
if(Keyboard.KeyCode==VK_SPACE) ShowHintIcons();
Este script está basado en el código original escrito por Mac.
