void ObjectSelectorList::draw(DrawingContext& parent_gc) { DrawingContext& gc = *drawing_context; gc.clear(); gc.fill_screen(Color(100, 100, 100)); if (set) { gc.push_modelview(); gc.translate(0, static_cast<int>(offset)); for(Objects::const_iterator i = set->get_objects().begin(); i != set->get_objects().end(); ++i) { int x = (i - set->get_objects().begin()) % 5; int y = (i - set->get_objects().begin()) / 5; gc.draw((*i)->thumbnail, Vector2i(x * 48, y * 48)); gc.draw_rect(Rect(x * 48, y * 48, x * 48 + 48, y * 48 + 48), Color(155,155,155)); if (has_mouse_over() && current_object != -1 && (i - set->get_objects().begin()) == current_object) { gc.draw_fillrect(Rect(x * 48, y * 48, x * 48 + 48, y * 48 + 48), Color(255,255,255, 100)); gc.draw_rect(Rect(x * 48, y * 48, x * 48 + 48, y * 48 + 48), Color(255,255,255)); } } gc.pop_modelview(); } parent_gc.draw(gc); if (set && mode == OBJECT_DRAG) { Sprite sprite = set->get_objects()[current_object]->sprite; parent_gc.draw(sprite, real_mouse_pos - Vector2i(sprite.get_width()/2, sprite.get_height()/2) + sprite.get_offset(), 2000.0f); } }
void TileEditor::draw() { CL_Display::push_translate(get_screen_x(), get_screen_x()); //no_tile.draw(0, 0); CL_Display::fill_rect(CL_Rect(0, 0, 32, 32), CL_Color(155, 0, 155)); if (tile) { tile->get_sprite().draw(0, 0); CL_Display::flush(); for(int tile_y = 0; tile_y < 8; ++tile_y) for(int tile_x = 0; tile_x < 8; ++tile_x) { if (tile->get_col(tile_x, tile_y)) { CL_Display::fill_rect(CL_Rect(tile_x*16, tile_y*16, tile_x*16 + 16, tile_y*16 + 16), CL_Color(255, 0, 0, 128)); } } CL_Display::flush(); if (has_mouse_over()) { CL_Display::fill_rect(CL_Rect(CL_Point(int(mouse_pos.x)/16 * 16, int(mouse_pos.y)/16 * 16), CL_Size(16, 16)), CL_Color(255, 255, 255, 128)); } } else { } CL_Display::pop_modelview(); }