Características de la Compilación 4.

CREADA la clase "entity" que engloba todos aquellos objetos que tienen, en cada unidad de tiempo, un determinado estado.

CREADA la clase "description_list" para listas dinámicas de descripciones, cada una con su comparando y máscara para seleccionarla según el estado de la habitación y el personaje.

CREADA la entidad "path" que contiene toda la información sobre una salida (unidireccional) de una habitación, incluyendo una lista dinámica de descripciones que funcionan exactamente igual que las de la propia habitación.

MODIFICADA la entidad "room" de modo que los punteros a diferentes descripciones quedan sustituidos por las listas dinámicas mencionadas.

MODIFICADO, por tanto, el formato de ficheros de habitaciones para que puedan contener dichas listas dinámicas con comparando y máscara, así como las funciones de lectura de ficheros. Ahora mismo, todas las salidas quedan en dos líneas (10 y 11) y las descripciones en una sola (la 50), lo que tal vez haga recomendable eliminar líneas sobrantes del formato en el futuro, cosa que se puede hacer en cualquier momento cambiando números en un par de condiciones "case". Las funciones de escritura de ficheros todavía no están modificadas, ya que de momento no se puede guardar el estado del mundo.

TERMINADO de encapsular el "grueso" del código en métodos de los objetos a los que concierne. Ya estaba encapsulado en la compilación 3 el código relativo a las habitaciones, ahora, con la creación de la entidad "character", lo que es el "prompt" y el "parser" no es más que la función de cambio de estado para personajes, y se comporta de manera coherente con el resto de funciones de cambio de estado.

MODIFICADA la función de mostrar habitaciones de manera que ya funciona con las listas dinámicas incluyendo el soporte para comparando y máscara (selección de descripciones), y añadida función para mostrar salidas que funciona de modo similar.

SUSTITUIDOS varios malloc() por new().

"Snapshot" (si se me permite la expresión) de la Compilación 4.

entrada / salida / comentarios

i/o flux: aetheria-compilation04-win.exe

Cargando modulo aetherworld... - el juego es modular, se le podría "mandar" desde la línea de comandos que cargase otro mundo completamente distinto al que yo estoy haciendo.
Maxroom puesto en 1000.
Cargando el mundo...
Habitaciones cargadas:
5 --> carga de habitaciones completada con exito. - mientras carga las habitaciones en memoria, el número se va incrementando mostrando cuántas lleva. De momento no hay más que cinco.
******************
Aetheria:
El pozo de Al-Arna
******************
- esto es lo que muestra la función intro(), que por supuesto habrá de hacerse más "elaborada..."

Pulsa ENTER para entrar en el juego... - (lo pulso)

COMANDO >>> mirar - cuando nos toca escoger lo que vamos a hacer, el juego nos muestra el prompt.

0001 - id de la habitación, esta información está para control de errores y se eliminará.
Plaza Vieja de Aetheria - título de la habitación, probablemente también se elimine para mayor realismo.

Te encuentras en una impresionante plaza pavimentada con enormes piedras. Una pl
aca en una esquina informa de que se trata de la Plaza Vieja.
- descripción que aparece porque no conocemos la ciudad.

Un simple vistazo basta para comprobar que fue, sin duda, el centro neurßlgico d
e la ciudad: una imponente catedral con dos estilizadas torres de piedra se alza
al Oeste, su fachada verdosa debido al musgo, pero excelentemente conservada a
pesar del paso de los siglos. En frente, al Este, hay un edificio de estilo simi
lar, funcional pero solemne, sobre cuya puerta se lee en grandes letras "Ayuntam
iento", dividido en dos por un gran arco que desemboca en otra plaza. Al Sur hay
una construcci¾n, algo mßs modesta, aunque tambiÚn antigua; un cartel de madera
indica que se trata de "La taberna de Kelis". Hacia el Norte arranca una ancha
calle adoquinada, mientras que un callej¾n que bordea la catedral conduce al Sud
oeste. No hay en la plaza ning·n obstßculo para pasear y admirar los monumentos. - descripción por defecto, que aparece siempre. Podemos ver que hay ciertos fallos en el formato, como por ejemplo que no aparecen las tildes. Esto se puede arreglar en cualquier momento mediante bibliotecas de características locales (locale.h).

La luz del sol se refleja en las ventanas y vidrieras de la gran catedral. - descripción que aparece porque hace buen tiempo.

COMANDO >>> ir por el arco - vemos que el parser es bastante "comprensivo", no hay por qué hablarle de forma muy telegráfica.

Te diriges hacia el arco. - descripción de la salida. Aquí pasan unas cuantas unidades de tiempo (en concreto, 30, las que se han definido para esa salida) hasta que termina el estado "GO" del personaje.

0004
Habitacion hacia la cual te teletransportas desde el teletransporte - esta descripción quedó aquí de antes, por supuesto no tiene ningún sentido, así que no hay que darle mayor importancia.

COMANDO >>>

...


Vade retro