! El Salón de Randolph Dwight, versión 1.0 ! Instrucciones de compilación para glulx: ! ! 1) Edita dwight.res y asegúrate de que la primera línea dice: ! CODE salonDwight.ulx ! ! 2) Genera salonDwight.bli ! > BRES salonDwight ! ! 3) Compila el juego y obtén la versión glulx ! > informbp -G salonDwight.inf ! ! 4) Empaquetalo todo en un fichero Blorb ! > BLC salonDwight.blc salonDwight.blb ! ! ! WARNING: Tal como está, necesitas una librería de JSJ llamada Capitulares, ! aún no publicada. Asi que si no te compila, lo siento... XD ! Constant Historia "El salón de Randolph Dwight."; Constant Titular "^Demostración técnica de ~LOCALIDAD2D.H~ y^ presentación de ~El extraño caso de Randolph Dwight~.^ (próximamente en sus pantallas)^ (c) 2002 El Clérigo Urbatain.^ Texto de la intro sacado del relato^ ~El caso de Randolph Dwight~ por Undeath.^"; Release 1; ! Esto desactiva los comandos LUGARES y OBJETOS Constant NO_LUGARES; ! Que imprima deducciones Constant IMPRIMIR_DEDUCCIONES; ! Esto indica la librería de física, la persona verbal para poner los mensajes adecuados Constant persona_verbal = 2; Constant HAY_CURIOSIDADES; ! Esta variable a 1 indica que la última cadena imprimida terminó en punto. Global hubo_punto; ! Eliminamos la linea de estado. !Replace DibujarLineaEstado; ! Elimino el anuncio original pa hacer unos cambios. Replace Anuncio; ! Fuera el Mirar original pa cambiarlo por el de localidad2D Replace MirarSub; ! Incluimos el primero de los ficheros requeridos por la librería Include "EParser"; Object MensajesLibreria with antes[; EmpujarDir: switch(ml_n) { 2: if (parent(otro)==localizacion) "Ya está lo suficientemente cerca."; } Coger: switch(ml_n) { 13: print "colocas ", (el) ml_o, " en ", (el) OBJETO_SACO, " para hacer sitio, y "; return true; } Dejar: switch(ml_n) { 3: ! No imrimo nada, pa eliminar la aclaración () return true; } IrAmbiguo: print "Debes decir hacia donde quieres ir.^"; return true; PonerSobre: switch(ml_n) { 5: ! idem return true; } Prompt: if (turnos<=1) print "^[Teclea AYUDA para información vital.]^>"; else print "^>"; return true; Meter: switch(ml_n) { 6: print "te ", (lo) ml_o, " quitas y "; return true; } Meterse: switch(ml_n) { 5: if (ml_o has soporte) { print "te sientas en ", (el) ml_o; } else { print "entras en ", (el) ml_o; } print ".^"; return true; 6: if (ml_o has soporte) print "te levantas "; else print "sales "; print (del) ml_o, ", y "; return true; 7: if (ml_o has soporte) { print "te sientas en ", (el) ml_o, ", y "; } else { print "entras en ", (el) ml_o, ", y "; } return true; } Mirar: switch(ml_n) { default: if (ml_o~=localizacion) { if (ml_o has soporte) print "^Sobre "; else print "^En "; print (el) ml_o; print " puedes ver "; } ! else print "^Puedes ver "; ! if (n==5) print "también "; ! EscribirListaDesde(child(ml_o), ! ESPANOL_BIT + BANDERAUX_BIT + RECURSIVO_BIT ! + INFOPARCIAL_BIT + BREVE_BIT + OCULTAR_BIT); ! if (ml_o~=localizacion) "."; ! "."; print "^"; <>; } Salir: switch(ml_n) { 3: if (ml_o has soporte) print "te levantas "; else print "sales "; print (del) ml_o, ".^"; return true; } Miscelanea: switch(ml_n) { 10: "Escribe algo, por favor."; 30: switch (random(2)) { 1: "Eso no está aqui."; 2: "No ves eso por aqui."; } } ]; Include "BajoNivel"; ! EsperarTecla y BorrarPantalla. Include "Localidad2D"; ! Librería Localidad2D #ifdef TARGET_GLULX; Include "dwight.bli"; Include "Capitular"; #endif; ! Definición del personaje protagonista: Constant LLEVAR_MAX = 2; ! Sólo 2 objetos en las manos. Personaje2D Randolph "Randolph Dwight" with nombre 'randolph' 'dwight', descripcion [ ; print "Te sientes cansado físicamente, pero aún puedes aguantar un rato antes de ir a dormir. "; InventarioDobleSub(); rtrue; ], pos_x 5, pos_y 4, mira_hacia obj_o, reaccionar_antes [; inv: InventarioDobleSub(); rtrue; ], has animado propio transparente; ! Incluimos la librería de acciones Include "Acciones"; ! Definición de objetos y localizaciones: class habitacion class Localidad2D, class LocCapitular, has luz; class objeto class Objeto2D; objeto bata "bata de franela" Randolph with nombre 'bata', adjetivos 'franela', articulo "mi", descripcion "Una lujosa bata de franela con motivos de cuadros escoceses en rojos y verdes pardos.", has prenda femenino puesto; objeto pijama "pijama" Randolph with nombre 'pijama', adjetivos 'marron', articulo "mi", descripcion "Es un pijama bastante abrigado, de color marrón.", has prenda puesto; objeto zapatillas "zapatillas" Randolph with nombre 'zapatillas', articulo "mis", has prenda puesto nombreplural; habitacion salon "salon" with nombre 'salon', descripcion "Tu salón enmoquetado, con paredes tapizadas y multitud de objetos valiosos para su contemplación, es tu lugar preferido de la mansión. Aqui pasas mucho tiempo releyendo tus obras favoritas o simplemente admirando alguno de tus muebles u objetos antiguos. Por las ventanas que dan a la calle no entra nada de luz, pues es noche cerrada de luna nueva, pero la hermosa lámpara de araña ilumina toda la habitación arrojando una bella luz multifacetada sobre las paredes.", max_x 7, max_y 7, antes [; Examinar: if (uno==obj_abajo) <>; if (uno==obj_arriba) "El techo está contruido con patrones cuadrados de escayola moldeada con motivo de una rosa de los vientos. De él cuelga una lámpara de araña."; ]; objeto moqueta "moqueta" salon with nombre 'moqueta', adjetivos 'florales' 'floral' 'burdeos' 'roja', articulo "la", descripcion "El suelo está completamente enmoquetado con motivos florales de color burdeos, y patrones cuadrados de color más oscuro.", has escenario femenino; objeto paredes_salon "paredes" salon with nombre 'paredes', articulo "las", descripcion "Las paredes están cubiertas con papel pintado color verde pardo con un patrón de un perro de caza entre filigranas de plantas y un pájaro caido entre la maleza. En las parte baja tiene un zócalo de madera.", has femenino nombreplural escenario transparente; object zocalo "zócalo de la pared" paredes_salon with nombre 'zocalo', adjetivos 'pared', descripcion "Es de madera oscura y sigue un patrón de cuadrados y rectángulos, definidos por un surco tallado."; objeto pared_norte_salon "pared norte" salon with nombre 'pared', adjetivos 'norte', articulo "la", descripcion "En la pared norte hay dos muebles de librería, uno al lado del otro, y un mueble vitrina con cajones.", has femenino escenario; objeto pared_sur_salon "pared sur" salon with nombre 'pared', adjetivos 'sur', articulo "la", descripcion "La pared sur tiene tres ventanas que dan a la calle y dos lámparas situadas entre ellas.", has femenino escenario; objeto pared_este_salon "pared este" salon with nombre 'pared', adjetivos 'este', articulo "la", descripcion "En la pared este está la salida del salón, y a cada lado hay dos mesitas semicirculares de pared.", has femenino escenario; objeto pared_oeste_salon "pared oeste" salon with nombre 'pared', adjetivos 'oeste', articulo "la", descripcion "En la pared oeste domina la chimenea de mármol, a su derecha está el espejo, y cerca de este una mesita redonda. Sobre la chimenea hay un cuadro al óleo con tu imagen, y en la zona de la derecha hay un cuadro sobre un caballo.", has femenino escenario; objeto aranna "lámpara de araña" salon with nombre 'lampara' 'araña', descripcion [; print "Es una lámpara de araña de cristal bastante grande y hermosa, con dos circunferencias de bombillas con carámbanos colgando y radios de perlas de cristal"; if (self has luz) "que proporcionan unos bonitos efectos de luz en las paredes y techos del salón."; else "."; ], pos_x 4, pos_y 4, has femenino escenario; Class ventana_salon class objeto, with nombre 'ventana', plural "ventanas que dan a la calle", descripcion "La ventana no arroja nada de luz natural a esta sala ya que es noche cerrada de luna nueva. Es cuadrada de dos hojas, hechas a base de cristales romboidales. Está cubierta con unas cortinas visillos de color púrpura.", antes [; BuscarEn: "Ahí afuera está todo oscuro. No alcanzas a ver nada."; ], has femenino escenario; objeto cortinas "cortinas de la ventana" salon with nombre_f 'cortinas', nombre_m 'visillos', adjetivos 'ventana' 'purpura', descripcion "Las cortinas cubren las ventanas parcialmente pues caen abriéndose hasta los extremos de las ventanas donde un cordón las sujeta. Son de color púrpura con flecos de color blanco.", has escenario femenino nombreplural; ventana_salon ventana_izq_salon "ventana más a la izquierda de la pared" salon with adjetivos 'mas' 'izquierda', pos_x 6, pos_y 1; ventana_salon ventana_der_salon "ventana más a la derecha de la pared" salon with adjetivos 'mas' 'derecha', pos_x 2, pos_y 1; ventana_salon ventana_central_salon "ventana central de la pared" salon with adjetivos 'central', pos_x 4, pos_y 1; Class lampara_pared class objeto, with nombre 'lampara', descripcion [; print "Es una lámpara adosada a la pared por una parte metálica con forma de escudo. De ella sale un brazo ondulado que soporta la lámpara en si; y sobre esta, una tulipa de dos filas de cristales, la más baja, de cristales cuadrados, y la superior trapezoidales, de forma que la tulipa se ensancha en la parte superior."; if (self has luz) "Está encendida."; else ""; ], has escenario femenino; lampara_pared lampara1_salon "lámpara más a la izquierda" salon with adjetivos 'mas' 'izquierda', pos_x 5, pos_y 1; lampara_pared lampara2_salon "lámpara más a la derecha" salon with adjetivos 'mas' 'derecha', pos_x 3, pos_y 1; objeto sillon "sillón orejero beige tapizado" salon with nombre 'sillon', adjetivos 'orejero', descripcion "Es un amplio sillón orejero tapizado de color beige, aunque bajo en altura.", pos_x 5, pos_y 5, mira_hacia obj_n, has entrable soporte; objeto mesita_redonda "mesita redonda tallada en forma de flor" salon with nombre 'mesita' 'mesa', adjetivos 'redonda', descripcion "Es redonda aunque está tallada en forma de flor. En la superficie tiene pintados sendos circulos en forma de flor hasta quedar en un punto en el centro. La mesa tiene una sóla pierna que luego se divide en tres pies.", pos_x 5, pos_y 6, has soporte; objeto libreria "mueble libreria simple y funcional" salon with nombre 'librería' 'mueble' 'estanterias' 'estanteria', adjetivos 'simple' 'funcional', descripcion "Es un mueble librería de cinco estanterías llenas de libros.", pos_x 5, pos_y 7, has estatico transparente; object libros "libros" libreria with nombre 'libros', descripcion "Son tus libros preferidos de tu gran colección de clásicos del mundo de la literatura, sobre todo de tus autores americanos y europeos favoritos; entre los que se encuentran Poe, Charles Dickens, Mark Twain, Lovecraft, entre otros. Salvo ~El retrato de Dorian Gray~, que es el que actualmente estás disfrutando.", has nombreplural escenario; objeto vitrina "mueble vitrina de color dorado donde tienes tus figurillas preferidas" salon with nombre_m 'mueble', nombre_f 'vitrina', adjetivos 'amarillo' 'dorado', descripcion "Es un mueble mixto, en la parte superior es una vitrina llena de figuras y adornos, y en la parte inferior tiene dos cajones. El mueble es de color dorado, coronado con unas florituras talladas, de forma recta en la parte de la vitrina y le nace un vientre en la zona de los cajones.", pos_x 3, pos_y 7, has transparente estatico; object figuras_vitrina "figuras de la vitrina" vitrina with nombre_fp 'figuras', nombre_mp 'adornos', adjetivos 'vitrina', descripcion "Diversas figuras que has ido coleccionando a lo largo de tu vida. Algunas encargadas a amigos que viajan mucho, asi que hay piezas muy valiosas y muy exóticas.", has escenario; Class silla class objeto, with nombre 'silla' 'sillas//p', plural "sillas", descripcion "El acolchado es de cuero tachonado. El resto es de madera noble de color oscuro, con formas onduladas. Tiene dos brazos y el espaldar está hecho con intrincados nervios que se entrelazan disminuyendo su anchura al descender.", has femenino entrable soporte; silla silla1 "silla" salon with pos_x 1, pos_y 1, mira_hacia obj_e; objeto pie "pie alto de madera" salon with nombre 'pie', adjetivos 'madera' 'alto', descripcion "Es un pié alto y estrecho de madera color miel.", pos_x 1, pos_y 2, has soporte; objeto jarron "jarron de porcelana china" pie with nombre 'jarron', adjetivos 'porcelana' 'chino' 'china', descripcion "Es un jarrón chino bellamente decorado con motivos de dragones orientales dorados sobre fondo negro."; objeto mesa_aguja "mesa de aguja de color miel" salon with pos_x 7, pos_y 6, nombre 'mesa', adjetivos 'aguja', plural "mesas de aguja", descripcion "Es una mesa semicircular con la parte alta barnizada con tonalidades de color dorado y color miel. De ahí hacia abajo es de color blanco con arcos dibujados dentro de cada uno un árbol.", has soporte femenino; objeto candelabro "candelabro de cinco brazos" mesa_aguja with nombre_m 'candelabro', nombre_f 'vela', nombre_fp 'velas', adjetivos 'cinco' 'brazos', plural "candelabros", descripcion "Es un candelabro de bronce de cinco brazos, y sobre estos cinco velas."; objeto sillon_trono "sillón trono" salon with nombre_m 'sillon' 'trono', descripcion "Es una sillón alta con las partes de madera de color miel; tiene el espaldar muy alto con el borde de madera tallada y está completamente tapizado hasta el asiento con una tela color granate con intrincadas filigranas y motivos reales de color dorado: una corona en lo alto, dos leones enfrentados y un escudo de armas.", pos_x 2, pos_y 4, mira_hacia obj_o, has soporte entrable; objeto mesita_cuadrada "mesita cuadrada que usas habitualmente para leer" salon with nombre 'mesa' 'mesita', adjetivos 'cuadrada' 'normal', articulo "la", descripcion "Es una mesita cuadrada normal y corriente aunque funcional. Es de color claro, sin adornos ni cajones, y es de cuatro patas. Desentona con el resto de muebles valiosos y antiguos, pero es que es tu mesa ideal como soporte para tus lecturas favoritas en el sillón trono, al calor del hogar.", pos_x 1, pos_y 3, has soporte femenino; objeto libro "retrato de Dorian Grey" mesita_cuadrada with nombre 'libro' 'retrato' 'dorian' 'grey', adjetivos 'oscar' 'wilde', articulo "el", descripcion "Es el libro que actualmente estás releyendo, uno de tus preferidos. Pero no es hora de lectura."; objeto lampara_mesa "lampara de mesa" mesita_cuadrada with nombre 'lampara', adjetivos 'mesa', descripcion "Es una lámpara de mesa con el pié de cerámica color violeta, bastante alto que se estrecha, salvo por un ensanchamiento a mitad de altura. En lo alto está la mampara de tela de color beige con encajes negros en su parte baja, alta y por los nervios que le dan forma de falda ancha.", has femenino conmutable; objeto pedestal "pedestal de granito gris" salon with nombre 'pedestal', adjetivos 'granito' 'gris', pos_x 7, pos_y 1, has soporte estatico; objeto busto "busto de piedra" pedestal with nombre 'busto', descripcion "Una cabeza de piedra de una persona con pelo peinado con ralla en medio y un bigote recortado, que no sabes quien es, pues estaba ya en la casa cuendo la compraste."; objeto chimenea "gran chimenea de piedra tallada" salon with nombre 'chimenea', adjetivos 'piedra' 'grabada', articulo "la", descripcion "La gran chimenea tallada de piedra domina la habitación completamente, aún a pesar de estar apagada. Sin duda es el elemento de la casa que más te impresionó y que más tuvo que ver a la hora de tomar la decisión de comprarla. Es bastante grande, de piedra tallada en toda su magnitud salvo el tiro de ladrillo que asciende imponente hasta el techo, con un sello grabado sobre la chimenea. Los laterales de la chimenea tienen grabados sendas columnas con hiedra a su alrededor. Más arriba los laterales sobresalen y tienen grabados sendas guerreras amazonas. La repisa tiene tallado un ojo dentro de un párpado romboidal. Sobre la repisa hay un mural con tres motivos geométricos rectangulares, los exteriores vacíos y el interior grabado con zenefas entrelazadas; entre cada uno de estos motivos rectangulares hay cuatro monjes guerreros, en posición erguida, vestidos con túnica con la capucha echada sin que se les vea la cara, los brazos cruzados en el pecho sosteniedo una espada larga que les llega hasta los pies. Ya sobre el mural, sale el tiro de la chimenea donde hay un grabado circular que en su interior hay una forma ondulada que parte del centro y se expande a tres brazos, cada uno de ellos termina ensanchándose en una protuberancia que en su interior contiene una espiral.", pos_x 1, pos_y 4, has estatico entrable femenino; objeto espejo "espejo" salon with nombre 'espejo', articulo "el", pos_x 1, pos_y 5, descripcion "Es un espejo bastante alto, que permite verte de cuerpo entero. Es extraño, pues a pesar de ser del siglo 17, la superficie del espejo permanece sin tacha y totalmente lisa. El marco es enteramente de oro labrado con multitud de figuras que cubren toda su extensión. Algunas de estas son motivos zoomorfos, también hay imágenes de humanoides, y otras son realmente bizarras, seres extraños, cruzes de razas o seres que jamás habias visto antes. Se podría decir que es un compendio de las razas del mundo... aunque no de este: en las partes bajas comienzan animales comunes de la naturaleza, y conforme van ascendiendo por los marcos, las malformaciones, los cruces de razas, las abominaciones surgen, aumentando con la altura la rareza de estas. En lo más alto dominan unos semidioses aberrantes que rodean a la figura más imponente de todo el marco: un monstruo de un sólo ojo inyectado en sangre, con una boca ávida, abierta y redonda, como un vortex repleto de colmillos a lo largo de una garganta sin fondo. Detrás de la cabeza emergen unos tentáculos que avanzan por el marco y llegan hasta mitad de altura del espejo, rodeando y a veces estrujando a alguna de las criaturas.", antes [; Coger, Meter, Empujar: "Es demasiado pesado."; BuscarEn: print "Ves a un apacible anciano con poco pelo blanco y un poco de calva. Tiene los ojos caidos, con unas bolsas debajo que indican el cansancio físico que tienes. Estás perfectamente afeitado. "; InventarioDobleSub(); rtrue; ]; objeto puerta_salon "puerta de entrada del salón" salon with nombre 'puerta' 'pasillo', articulo "la", pos_x 7, pos_y 4, despues [; Meterse: if (self has abierto) { banderafin=3; BorrarPantalla(); print "^^"; ImpCapitular("Antes de cruzar la puerta, echas una mirada atrás: te encanta ese espejo, podrías haberte tirado asi toda la noche, examinándolo; pero el sueño y el sentido común te dicen que podras seguir admirándolo al día siguiente. Y haciendo caso a tu voz interior subes a acostarse.^"); return true; } else "Está cerrada."; ], has femenino estatico abrible abierto entrable; ! Definición de rutinas: [ Inicializar ; hubo_punto=true; @setiosys 1 MiFiltro; ! Con esto, se redirige la salida a la rutina filtro Intro(); CambiarJugador(Randolph); localizacion=salon; modomirar=2; return 2; ! Esto evita que se imprima el anuncio. ]; [ Intro ; Anuncio(); EsperarTecla(); BorrarPantalla(); print "^^"; ImpCapitular("Partiendo del corazón mismo de la maldita ciudad de Deable Dom, nace la tortuosa Crow's Lane: una callejuela empedrada y empinada. Dicho infame callejón es conocido por conducir al camposanto; y por ser por donde pasan todos los cortejos fúnebres que en la localidad se celebran. Siguiendo sus inusitadas curvas se puede recorrer los barrios de peor renombre de la urbe. Allí donde la civilización comienza a dispersarse se alza la Casa Anthien, aunque pocos viandantes suelen fijarse en ella. En dicha casa, Ralph Anthien, ha montado una tienda de antigüedades; algo pequeña pero satisfactoria para sus necesidades. No tiene mucha clientela, ni vende demasiados objetos antiguos al día, pero sus clientes suelen ser de las castas más altas de ésta mítica ciudad, ya que el elevado precio de sus productos no hace que estén al alcance de la mano de cualquiera.^"); EsperarTecla(); BorrarPantalla(); print "^^"; ImpCapitular("Disfrutas de una mañana invernal cuando apareces por la tienda del viejo Ralph; tú Randolph Dwight, un cliente y amigo suyo."); print " Antaño eras un gran abogado, uno de los mejores de la zona, pero acuñaste mucho dinero rápidamente gracias a unos importantes casos, y hace ya algunos años que dejaste el bufete para dedicarte a tus propias aficiones, entre ellas la colección de antiguedades. Esta vez has fijado tu atención en uno de los objetos más raros y valiosos de la tienda de Ralph, un espejo: un extraño espejo de origen presumiblemente francés del siglo XVII; su marco es de oro pulido, sobrecargado de detalles y diversas imágenes inquietantes, típicas del arte Barroco, que era el más extendido en aquella época. Su brillante superficie no parecía haber notado el fluctuante paso de los siglos: seguía reluciendo como si el escultor hubiese acabado de perfilar su intrincada silueta esa misma noche. Y era precisamente su imperturbabilidad al paso de tiempo lo que le disgustaba a Ralph. Ves una urgencia mayor que de costumbre en deshacerse del espejo, quería venderlo sin demasiados regateos; y por fin, esa misma mañana, lo había conseguido. Por todo lo contrario, tú, estas bastante orgulloso de esta nueva adquisición.^"; EsperarTecla(); BorrarPantalla(); print "^^"; ImpCapitular("Con amabilidad y sosiego, tu caracter habitual, te despides de Ralph, aunque sin poder disimular un poco el gozo por haber adquirido una pieza tan valiosa para tu colección; y te diriges a tu enorme mansión en las afueras de Deable Dom cerca del Crowley's Park, un sitio tranquilo y agradable al menos en apariencia, ya que siendo un hombre un poco chapado a la antigua usanza, no dudas en admitir que eres algo estrafalario, bastante solitario y de vida sencilla, a pesar de ser prácticamente millonario.^"); EsperarTecla(); BorrarPantalla(); print "^^"; ImpCapitular("La Casa Dwight es una de las más grandes de la zona; sin competir, por supuesto, con la Casa Letha. Es un enorme caserón de tres plantas con aspecto Renacentista, de amplios ventanales y extensas terrazas, toda una reliquia histórica. Su interior no es menos; lleno de muebles recargados de detalles crea un extraño ambiente recargado, como si vivieses anclado en diferentes pasados a la vez. Con bastante gozo ves como el espejo encaja perfectamente en la pared oeste de tu enmoquetado salón, junto a la chimenea. Parece hecho a medida para esa habitación. Definitivamente, estas maravillado con este espejo."); print"^^ Llevas una vida de apacible millonario, sana y tranquila, dedicada casi por completo a la contemplación de obras de arte y a dar largos paseos por los lugares más solitarios de la ciudad. En esto último empleas la tarde hasta que decides volver a casa cuando ya se te hace tarde. Y ya habíendo cenado fuera, llegado al hogar, te dispones para acostarte. Pero antes, decides volver a tu querido salón para volver a examinar detenidamente el espejo.^"; ImpCapitularFin(); EsperarTecla(); BorrarPantalla(); print "^"; ]; [ Curiosidades ; ImpCapitular("Has jugado a una demostración técnica de una librería llamada localizacion2D.h, mayoritariamente para mi futuro uso personal. Ahora mismo está en versión beta rebeta, por lo que tendrá miles de bugs, chapuzas infames contra natura de informate y otras cosas abominables que no quiero ni nombrar. Pero para demostrar el sistema de movimiento nuevo que tenía en mente, creo que sobra y basta. Asi que por eso las gramáticas de movimiento no tienen implementados cosas como CAMINAR ADELANTE, CAMINAR DE LADO, GIRA 90 GRADOS, MEDIA VUELTA, DATE MEDIA VUELTA, etc; gramáticas que en un futuro si habrá, pero que ahora no, por falta de tiempo límite para el concurso nanocomp3.^^"); ImpCapitular("Además esto es una presentación de mi futuro juego ~El extraño caso de Randolph Dwight~, sobre el mismo personaje, que está basado en un relato de mi buen amigo Undeath (autor de Por la necedad humana, el relato, si ya conoceis el juego del mismo nombre). Espero poder sacarlo para fin de año y asi entrar en los premios hispanos 2002. Pero aviso: el juego definitivo NO usará el sistema este de localidad2D.h.^^"); ImpCapitular("Como puedes ver, el aspecto en glulx es magnífico. Las maravillosas letras capitulares pertenecen a una librería inédita de JSJ, que no se cuando verá la luz, pero que yo presento aqui en exclusiva :)^^"); ImpCapitular("Sabes... hay otra librería por ahí, de espacios en 2D o en 3D, de Baltasar, el Arquero. La razón de no haber hecho el sistema sobre su librería (perfectamente posible), es porque me gusta hacer las cosas desde 0 por mi mismo.^^"); ImpCapitular("Y eso es todo, espero que te haya gustado y ya volverás a saber más de Randolph Dwight este fin de año...^^ Hasta luego y... recuerda siempre la palabra mágica...^^"); ImpCapitular("X"); ImpCapitular("Y"); ImpCapitular("Z"); ImpCapitular("Z"); ImpCapitular("Y^^"); ]; ! Mensajes para finales especiales si la variable banderafin es mayor ! que 2, llamará a esta rutina. [ MensajeMuerte; switch (banderafin) { 3: TextoLlamativo(" Te has ido a dormir. "); default: TextoLlamativo(" FINAL IMPOSIBLE "); } banderafin=2; ]; ! Linea de estado inexistente. ![ DibujarLineaEstado; ]; ! !#ifdef TARGET_GLULX; ![ InitGlkWindow winrock; !switch (winrock) { !GG_STATUSWIN_ROCK: rtrue; !} !rfalse; ! si olvidas esta linea el programa no funcionara !]; !#endif; ! Inventario guapo. [ InventarioDobleSub i cuenta1 cuenta2; objectloop (i in jugador) { if (i hasnt puesto) { give i banderaux; cuenta1++; } else { give i ~banderaux; cuenta2++; } } if (cuenta1==0) print "No tienes nada en las manos"; else { print "Tienes "; EscribirListaDesde(child(jugador), INFOTOTAL_BIT + ESPANOL_BIT + RECURSIVO_BIT + BANDERAUX_BIT); } if (cuenta2==0) ". Y estas completamente desnudo."; print ". Además, llevas puesto "; objectloop (i in jugador) { if (i hasnt puesto) give i ~banderaux; else give i banderaux; } EscribirListaDesde(child(jugador),ESPANOL_BIT + RECURSIVO_BIT + BANDERAUX_BIT); "."; ]; [ Anuncio i; if (Historia ~= 0) { print "^"; #ifdef TARGET_ZCODE; #IFV5; style bold; #ENDIF; ! IFV5 ImpCapitular(Historia); #IFV5; style roman; #ENDIF; ! IFV5 #ifnot; ! TARGET_GLULX; glk ($0086, 3); ! set header style ImpCapitular(Historia); glk ($0086, 0); ! set normal style #endif; } if (Titular ~= 0) print (string) Titular; #ifdef TARGET_ZCODE; print "Revisión ", (0 --> 1) & $03ff, " / Número de serie "; for (i = 18: i < 24: i++) print (char) 0 -> i; #ifnot; ! TARGET_GLULX; print "Revisión "; @aloads 52 0 i; print i; print " / Número de serie "; for (i = 0: i < 6: i++) print (char) 54 -> i; #endif; ! TARGET_ print " / Inform v"; inversion; print " Librería ", (string) RevisionLib, " "; #ifdef STRICT_MODE; print "S"; #endif; ! STRICT_MODE #ifdef INFIX; print "X"; #ifnot; #ifdef DEBUG; print "D"; #endif; ! DEBUG #endif; ! INFIX new_line; ]; ! Rutinillas para manejo de las letras Global hubo_punto; [ Mayusculas c; if ((c>='a')&&(c<='z')) c=c-'a'+'A'; return c; ]; [ NoEsEspacio c; return (~~(c==' ' or 9)); ]; ! Filtro que examina la salida letra a letra [ MiFiltro c; if (hubo_punto) c=Mayusculas(c); glk(128, c); ! Esta es la orden que envia el caracter a pantalla if (c=='.' or 10 or 13 or '>') hubo_punto=true; else if (NoEsEspacio(c)) hubo_punto=false; ]; ! Pongo mirar para eliminar simplemente el nombre de la localidad: [ MirarSub allow_abbrev visibility_levels i j k; if (parent(jugador)==0) return ErrorDeEjecucion(10); .MovedByInitial; if (localizacion == laoscuridad) { techo_de_visibilidad = laoscuridad; AnotarLlegada(); } else { visibility_levels = FindVisibilityLevels(); if (techo_de_visibilidad == localizacion) { AnotarLlegada(); if (techo_de_visibilidad ~= localizacion) jump MovedByInitial; } } ! Printing the top line: e.g. ! Octagonal Room (on the table) (as Frodo) ! ELIMINADO LA LINEA DEL NOMBRE DE LA LOCALIDAD. new_line; ! The room descripcion (if visible) if (modomirar<3 && techo_de_visibilidad==localizacion) { if ((allow_abbrev~=1) || (modomirar==2) || (localizacion hasnt visitado)) { if (localizacion.describir~=NULL) EjecutarRutinas(localizacion,describir); else { if (localizacion.descripcion==0) ErrorDeEjecucion(11,localizacion); else ImprimirOEjecutar(localizacion,descripcion); } } } if (visibility_levels == 0) Local(laoscuridad); else { for (i=jugador, j=visibility_levels: j>0: j--, i=parent(i)) give i banderaux; for (j=visibility_levels: j>0: j--) { for (i=jugador, k=0: k ayuda; [ ayudaSub ; print "^"; ImpCapitular("Muy poco convencional, como juego, es esta aventura conversacional. Necesitarás unos comandos muy distintos de los habituales para moverte y mirar en derredor."); print "^^ Para empezar olvídate de Norte, Sur, Este u Oeste, para moverte por las habitaciones. En cambio debes usar IR HACIA .^^ Y para profundizar con el entorno, usa MIRAR para describir lo que hay en la localización, o M como abreviatura, pero no es el habitual. Mirar a secas te dirá lo que hay frente a ti. Además deberás MIRAR HACIA ATRÁS, MIRAR HACIA LA DERECHA, o MIRAR HACIA LA IZQUIERDA, para explorar bien el lugar. También puedes usar GIRAR A LA IZQUIERDA o GIRAR A LA DERECHA.^^ El resto de acciones son las habituales, sólo que el personaje se moverá hacia donde está el objeto destino de tu acción para realizarla.^^ Cuando te canses de disfrutar del salón de Randolph Dwight, PASA POR LA PUERTA y terminará esta demostración técnica. Porque... esto no es un juego, es una nano técnica para la nanocomp3.^^ Por cierto, esto está en pañales, está repleto de bugs y muchos conocidos, asi que no te rías demasiado :), por ejemplo, si te metes en una silla, te ves a ti mismo, y si luego sales, ya no vuelve a funcionar el sistema de visión. Asi que procura no sentarte en ningún lado :)^^ Disfruta del salón..."; ];