|
|
//class controls acces to rooms #include "mi_room.h" void MI_ROOM::init() { rooms.clear(); last_room = NULL; zero_tile = '-'; layer_w = layer_h = 0; } ROOM *MI_ROOM::get_room(string name) { return rooms[name]; } ROOM *MI_ROOM::create(string name) { ROOM *p; if(get_room(name)) { error("Room [%s] already exists"); return NULL; } p = new ROOM; p->init(); p->zero(zero_tile); p->layer_size(layer_w,layer_h); rooms[name] = p; last_name = name; last_room = p; return p; } void MI_ROOM::destroy(string name) { ROOM *p; p = get_room(name); if(p) { free(p); // rooms[name].erase(); FIXME } } void MI_ROOM::tile_bg(string name, deque&d) { rooms[name]->tile_bg(d); } void MI_ROOM::tile_mid(string name, deque &d) { rooms[name]->tile_mid(d); } void MI_ROOM::tile_fg(string name, deque &d) { rooms[name]->tile_fg(d); } void MI_ROOM::layer_size(int w, int h) { layer_w = w; layer_h = h; message("New layer size: [%i,%i]",w,h); } void MI_ROOM::layer_size(string name, int w, int h) { rooms[name]->layer_size(w,h); } void MI_ROOM::zero(char c) { zero_tile = c; } char MI_ROOM::zero() { return zero_tile; } int MI_ROOM::select(string name) { if(rooms[name]) { last_name = name; last_room = rooms[name]; return 1; } else { error("Selecting not existing room [%s]", name.c_str()); return 0; } } int MI_ROOM::tile_cw() { if(last_room) { return last_room->layer_w; } return 0; } int MI_ROOM::tile_ch() { if(last_room) { return last_room->layer_h; } return 0; } int MI_ROOM::tile_w() { if(last_room) { return last_room->tile_w; } return 0; } int MI_ROOM::tile_h() { if(last_room) { return last_room->tile_h; } return 0; } int MI_ROOM::tile(int l, int p) { if(last_room) { return last_room->layer[l][p]; } else { error("No room selected - use change_room"); return 0; } }
Generated by: georgik on armada on Sat Jul 24 07:07:15 2004, using kdoc 2.0a54. |