- for(i = 0; i < level_subsets.num_items; ++i)
- {
- subset_load_menu->additem(MN_ACTION,level_subsets.item[i],0,0, i+1);
- }
- subset_load_menu->additem(MN_HL,"",0,0);
- subset_load_menu->additem(MN_BACK,"Back",0,0);
-
- subset_new_menu->additem(MN_LABEL,"New Level Subset",0,0);
- subset_new_menu->additem(MN_HL,"",0,0);
- subset_new_menu->additem(MN_TEXTFIELD,"Enter Name",0,0);
- subset_new_menu->additem(MN_ACTION,"Create",0,0, MNID_CREATESUBSET);
- subset_new_menu->additem(MN_HL,"",0,0);
- subset_new_menu->additem(MN_BACK,"Back",0,0);
-
- subset_settings_menu->additem(MN_LABEL,"Level Subset Settings",0,0);
- subset_settings_menu->additem(MN_HL,"",0,0);
- subset_settings_menu->additem(MN_TEXTFIELD,"Title",0,0);
- subset_settings_menu->additem(MN_TEXTFIELD,"Description",0,0);
- subset_settings_menu->additem(MN_HL,"",0,0);
- subset_settings_menu->additem(MN_ACTION,"Save Changes",0,0);
- subset_settings_menu->additem(MN_HL,"",0,0);
- subset_settings_menu->additem(MN_BACK,"Back",0,0);
-
- level_settings_menu->arrange_left = true;
- level_settings_menu->additem(MN_LABEL,"Level Settings",0,0);
- level_settings_menu->additem(MN_HL,"",0,0);
- level_settings_menu->additem(MN_TEXTFIELD,"Name ",0,0);
- level_settings_menu->additem(MN_TEXTFIELD,"Author ",0,0);
- level_settings_menu->additem(MN_STRINGSELECT,"Theme ",0,0);
- level_settings_menu->additem(MN_STRINGSELECT,"Song ",0,0);
- level_settings_menu->additem(MN_STRINGSELECT,"Bg-Image",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Length ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Time ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Gravity",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Top Red ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Top Green ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Top Blue ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Bottom Red ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Bottom Green",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Bottom Blue",0,0);
- level_settings_menu->additem(MN_HL,"",0,0);
- level_settings_menu->additem(MN_ACTION,"Apply Changes",0,0,MNID_APPLY);
-
- select_tilegroup_menu->arrange_left = true;
- select_tilegroup_menu->additem(MN_LABEL,"Select Tilegroup",0,0);
- select_tilegroup_menu->additem(MN_HL,"",0,0);
- std::vector<TileGroup>* tilegroups = TileManager::tilegroups();
- for(std::vector<TileGroup>::iterator it = tilegroups->begin(); it != tilegroups->end(); ++it )
- {
-
- select_tilegroup_menu->additem(MN_ACTION,const_cast<char*>((*it).name.c_str()),0,0);
- tilegroups_map[(*it).name] = new ButtonPanel(screen->w - 64,96, 64, 318);
- i = 0;
- for(std::vector<int>::iterator sit = (*it).tiles.begin(); sit != (*it).tiles.end(); ++sit, ++i)
- tilegroups_map[(*it).name]->additem(new Button(const_cast<char*>(("images/tilesets/" + TileManager::instance()->get(*sit)->filenames[0]).c_str()), const_cast<char*>((*it).name.c_str()),(SDLKey)(i+'a'),0,0,32,32),(*sit));
- }
- select_tilegroup_menu->additem(MN_HL,"",0,0);
-
- SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
-
- return 0;
+if(sector)
+ {
+ // don't scroll before the start or after the level's end
+ float width = sector->solids->get_width() * 32;
+ float height = sector->solids->get_height() * 32;
+
+ if(scroll.x < -screen->w/2)
+ scroll.x = -screen->w/2;
+ if(scroll.x > width - screen->w/2)
+ scroll.x = width - screen->w/2;
+ if(scroll.y < -screen->h/2)
+ scroll.y = -screen->h/2;
+ if(scroll.y > height - screen->h/2)
+ scroll.y = height - screen->h/2;
+
+ // set camera translation, since BadGuys like it
+ sector->camera->set_scrolling((int)scroll.x, (int)scroll.y);
+
+ if(left_button && mouse_moved)
+ for(unsigned int x = 0; x < selection.size(); x++)
+ for(unsigned int y = 0; y < selection[x].size(); y++)
+ change((int)(scroll.x + event.button.x) + (x*32),
+ (int)(scroll.y + event.button.y) + (y*32), selection[x][y],
+ cur_layer);
+ }