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:
_ * DOALL 1
WHATO
PUTO 254
_ * DOALL 2
WHATO
PUTO 253
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:
_ * DOALL 254
WHATO
PUTO 1
_ * DOALL 253
WHATO
PUTO 2
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í:
_ * DOALL 3 WHATO PUTO 254
_ * DOALL 4 WHATO PUTO 253
_ * DOALL 254 WHATO PUTO 3
_ * DOALL 253
WHATO
PUTO 4
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:
_ GUERRERO EQ 24 1
LET 23 1
COPYFF 67 38
PROCESS 15
PROCESS 16
PROCESS 35
DESC
_ MAGO EQ 24 2
LET 23 2
COPYFF 69 38
PROCESS 19
PROCESS 20
PROCESS 35
DESC
...
_ GUERRERO EQ 67 255
MESSAGE 'Ese personaje está muerto.'
DONE
_ MAGO EQ 69 255
MESSAGE 'Ese personaje está muerto.'
DONE
...
_ _ EQ 23 1
COPYFF 38 67
PROCESS 17
PROCESS 18
_ _ EQ 23 2
COPYFF 38 69
PROCESS 21
PROCESS 22
...
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.