Rooms

La manipulación de habitaciones en tiempo de ejecución es algo muy riesgoso. Se debe tomar en cuenta que las habitaciones cambian todo el tiempo debido a lo que ocurre dentro del juego. Esto normalmente solo ocurre para la habitación en turno y hay muchas rutinas descritas en anteriores secciones para manipular las instancias, los fondos y los tiles en la habitación actual. Pero los cambios en la habitación active se mantendrán si dicha habitación es persistente. Entonces, nunca se debieran manipular elementos de la habitación en turno o de cualquier otra habitación que sea persistente y que ya haya sido visitada antes. Tales cambios en general no serán percibidos pero en ocasiones podrían ocasionar errores inesperados. Debido al hecho de que las habitaciones están enlazadas de manera complicada no hay ninguna rutina que permita eliminar una habitación.

Las siguientes funciones están disponibles

room_set_width(ind,w) Establece el ancho (w) para la habitación con índice ind.
room_set_height(ind,h) Establece la altura (h) para la habitación con índice ind.
room_set_caption(ind,str) Establece el título (caption) para la habitación con índice ind.
room_set_persistent(ind,val) Establece si la habitación con índice ind será persistente o no (val).
room_set_code(ind,str) Configura el código de inicialización (str) para la habitación con índice ind.
room_set_background_color(ind,col,show) Configura las propiedades de color para la habitación con índice ind si no cuenta con una imagen de fondo. col indica el color y show indica si el color debe mostrarse o no.
room_set_background(ind,bind,vis,fore,back,x,y,htiled,vtiled,hspeed,vspeed,alpha) Establece el fondo con índice bind (0-7) como fondo para la habitación con índice ind. vis indica si el fondo será visible y fore si se trata de un fondo de primer plano. back es el índice de la imagen de fondo. x, y indican la posición de la imagen y htiled y vtiled indican si la imagen debe dividirse en tiles. hspeed y vspeed indican la velocidad con la que el fondo se mueve y alpha indica un valor de transparencia alfa (1 = sólido y más rápido).
room_set_view(ind,vind,vis,xview,yview,wview,hview,xport,yport,wport,hport,hborder,vborder,hspeed,vspeed,obj) Establece la vista con índice vind (0-7) para la habitación con índice ind. vis indica si la vista es visible. xview, yview, wview y hview indican la posición de la vista en la habitación. xport, yport, wport y hport indican la posición en pantalla. Cuando la vista debe seguir a un objeto hborder y vborder indican el borde mínimo visible que debe mantenerse alrededor del objeto. hspeed y vspeed indican la máxima velocidad con la que la vista puede moverse. obj es el índice del objeto o el índice de la instancia.
room_set_view_enabled(ind,val) Establece si las vistas deben habilitarse para la habitación con índice ind.
room_add() Agrega una nueva habitación. Devuelve el índice de la misma. Se debe notar que la habitación no formará parte del orden de habitaciones. Por lo que la nueva habitación no cuenta con habitaciones previa ni siguiente. Si se desea moverse a una habitación agregada se debe indicar el índice de la misma.
room_duplicate(ind) Agrega una copia de la habitación con índice ind. Devuelve el índice de la nueva habitación.
room_assign(ind,room) Asigna la habitación room al índice ind. Por tanto, esta función crea una copia de la habitación.
room_instance_add(ind,x,y,obj) Agrega a la habitación ind una nueva instancia del objeto obj, colocándola en la posición x, y. Devuelve el índice de la instancia.
room_instance_clear(ind) Elimina todas las instancias dentro de la habitación ind.
room_tile_add(ind,back,left,top,width,height,x,y,depth) Agrega un nuevo tile a la habitación en la posición indicada. Devuelve el índice del tile. back es el fondo del cual se toma el tile. Left, top, width y height indican la parte del fondo que forma al tile. x, y es la posición del tile en la habitación y depth es la profundidad del tile.
room_tile_add_ext(ind,back,left,top,width,height,x,y,depth,xscale, yscale,alpha) Lo mismo que la anterior rutina pero también se puede especificar un factor de escalado en las direcciones x e y, y una transparencia alpha para el tile.
room_tile_clear(ind) Elimina todos los tiles de la habitación indicada.