TECNICAS AVANZADAS DE PROGRAMACION DE AVENTURAS

Por... Javier San José

En esta nueva entrega veremos los procesos que nos permitirán cambiar de un personaje a otro:

Estos dos procesos sirven para que cuando cambiemos al Guerrero, los objetos que llevaba figuren como cogidos o puestos. Así, pasamos los de la localidad auxiliar 1 a llevados y los de la localidad auxiliar 2 a puestos. Habrá que hacer otros dos procesos para cuando pasemos del Guerrero a otro personaje:

De esta forma cuando cambiemos del Guerrero a otro personaje, los objetos del primero se guardarán en las localidades auxiliares, mientras que los del segundo pasarán de sus localidades auxiliares a ser llevados o puestos. Los procesos 19 al 30 contendrán las correspondientes entradas para el resto de los personajes. Así:

Esto serían para el Mago. Igualmente haríamos otros tantos procesos para el Enano y la Sacerdotisa. Los procesos que nos permitirán cambiar de personaje son los siguientes:

La bandera 24 es usada como bandera de trabajo, y contendrá el número del personaje al que queremos cambiar. En el Proceso 31 comprobamos a qué personaje se quiere cambiar (EQ 24 1 si queremos cambiar al Guerrero). Una vez que sepamos a cuál de los personajes queremos cambiar, colocamos su número en la bandera 23 (LET 23 1 si cambiamos al Guerrero), nos colocamos en la localidad de ese personaje (COPYFF 67 38 en el caso del Guerrero, lo cual pone la localidad del Guerrero como localidad actual) y por último ponemos sus objetos como llevados o puestos (PROCESS 15, PROCESS 16 para el Guerrero).

El Proceso 35 es un proceso implicado en el manejo de localidades oscuras (se explicará más adelante) y sólo se usará en caso de que haya alguna de estas. El Proceso 32 es el que deberá ser llamado desde la Tabla de Respuestas. EN él miramos si el personaje al que queremos cambiar está muerto (EQ 67 255 para el Guerrero) y si es así imprimimos un mensaje y salimos del proceso.

Un personaje muerto tiene como número de localidad la 255. Luego comprobamos el personaje actual guardando su localidad y sus objetos en las localidades auxiliares, y finalmente llamamos al Proceso 31 para seleccionar al nuevo personaje con lo que completamos el proceso. En la Tabla de Respuestas aparecerá una entrada de la forma:

       CAMBIAR _           GT      34     25
                           LT      34     30
                           COPYFF  34     24
                           MINUS   24     25
                           NOTSAME 23     24
                           PROCESS 32
                           DONE

Esta entrada lo primero que hace es comprobar si el nombre del personaje al que queremos cambiar es el nombre de uno de los personajes, es decir, si está entre el 26 y el 29 (inclusives), que son los números de los nombres de los personajes en el vocabulario:

       26 ->   Guerrero
       27 ->   Mago
       28 ->   Enano
       29 ->   Sacerdotisa

Se recomienda que se definan como nombres propios y con números consecutivos siendo el Guerrero el primero, el Mago el segundo, y así sucesivamente. Una vez seguros de que es el nombre de uno de los personajes lo copiamos en la bandera 24 y le restamos 25 para que nos quede un número entre el 1 y el 4. Miramos después que el personaje al que queremos cambiar no sea el que manejamos (NOTSAME 23 24) y si no lo es lo cambiamos (PROCESS 32) completando así el proceso.

Y hasta aquí llega esta entrega. En la próxima veremos más cosas sobre control de múltiples personajes.