[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3083 - trunk/pingus/src/editor
From: |
grumbel at BerliOS |
Subject: |
[Pingus-CVS] r3083 - trunk/pingus/src/editor |
Date: |
Wed, 5 Sep 2007 04:32:43 +0200 |
Author: grumbel
Date: 2007-09-05 04:32:42 +0200 (Wed, 05 Sep 2007)
New Revision: 3083
Modified:
trunk/pingus/src/editor/editor_screen.cpp
trunk/pingus/src/editor/editor_viewport.cpp
trunk/pingus/src/editor/editor_viewport.hpp
trunk/pingus/src/editor/level_objs.cpp
trunk/pingus/src/editor/level_objs.hpp
trunk/pingus/src/editor/panel.cpp
Log:
- implemented object flipping and rotation
Modified: trunk/pingus/src/editor/editor_screen.cpp
===================================================================
--- trunk/pingus/src/editor/editor_screen.cpp 2007-09-05 02:21:07 UTC (rev
3082)
+++ trunk/pingus/src/editor/editor_screen.cpp 2007-09-05 02:32:42 UTC (rev
3083)
@@ -250,25 +250,25 @@
void
EditorScreen::objects_flip_vertical()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->vflip_selected_objects();
}
void
EditorScreen::objects_flip_horizontal()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->hflip_selected_objects();
}
void
EditorScreen::objects_rotate_left()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->rotate_270_selected_objects();
}
void
EditorScreen::objects_rotate_right()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->rotate_90_selected_objects();
}
void
Modified: trunk/pingus/src/editor/editor_viewport.cpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.cpp 2007-09-05 02:21:07 UTC (rev
3082)
+++ trunk/pingus/src/editor/editor_viewport.cpp 2007-09-05 02:32:42 UTC (rev
3083)
@@ -290,6 +290,42 @@
}
}
+void
+EditorViewport::hflip_selected_objects()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ {
+
(*i)->set_modifier(ResourceModifierNS::horizontal_flip((*i)->get_modifier()));
+ }
+}
+
+void
+EditorViewport::vflip_selected_objects()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ {
+
(*i)->set_modifier(ResourceModifierNS::vertical_flip((*i)->get_modifier()));
+ }
+}
+
+void
+EditorViewport::rotate_90_selected_objects()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ {
+ (*i)->set_modifier(ResourceModifierNS::rotate_90((*i)->get_modifier()));
+ }
+}
+
+void
+EditorViewport::rotate_270_selected_objects()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ {
+ (*i)->set_modifier(ResourceModifierNS::rotate_270((*i)->get_modifier()));
+ }
+}
+
} // Editor namespace
/* EOF */
Modified: trunk/pingus/src/editor/editor_viewport.hpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.hpp 2007-09-05 02:21:07 UTC (rev
3082)
+++ trunk/pingus/src/editor/editor_viewport.hpp 2007-09-05 02:32:42 UTC (rev
3083)
@@ -124,7 +124,12 @@
void on_secondary_button_click(int x, int y);
void delete_selected_objects();
+ void vflip_selected_objects();
+ void hflip_selected_objects();
+ void rotate_90_selected_objects();
+ void rotate_270_selected_objects();
+
private:
EditorViewport();
EditorViewport (const EditorViewport&);
Modified: trunk/pingus/src/editor/level_objs.cpp
===================================================================
--- trunk/pingus/src/editor/level_objs.cpp 2007-09-05 02:21:07 UTC (rev
3082)
+++ trunk/pingus/src/editor/level_objs.cpp 2007-09-05 02:32:42 UTC (rev
3083)
@@ -190,6 +190,22 @@
refresh_sprite();
}
+/** Set the object's modifier */
+void
+LevelObj::set_modifier(ResourceModifierNS::ResourceModifier modifier)
+{
+ // Set modifier
+ if (attribs & CAN_ROTATE)
+ desc.modifier = modifier;
+ refresh_sprite();
+}
+
+ResourceModifierNS::ResourceModifier
+LevelObj::get_modifier() const
+{
+ return desc.modifier;
+}
+
// Writes the attributes for the file
void
LevelObj::write_properties(FileWriter &fw)
Modified: trunk/pingus/src/editor/level_objs.hpp
===================================================================
--- trunk/pingus/src/editor/level_objs.hpp 2007-09-05 02:21:07 UTC (rev
3082)
+++ trunk/pingus/src/editor/level_objs.hpp 2007-09-05 02:32:42 UTC (rev
3083)
@@ -247,6 +247,11 @@
/** Set the object's modifier */
void set_modifier(const std::string m);
+ /** Set the object's modifier */
+ void set_modifier(ResourceModifierNS::ResourceModifier modifier);
+
+ ResourceModifierNS::ResourceModifier get_modifier() const;
+
/** Set the object's section header name */
void set_section_name(const std::string sn) { section_name = sn; }
Modified: trunk/pingus/src/editor/panel.cpp
===================================================================
--- trunk/pingus/src/editor/panel.cpp 2007-09-05 02:21:07 UTC (rev 3082)
+++ trunk/pingus/src/editor/panel.cpp 2007-09-05 02:32:42 UTC (rev 3083)
@@ -150,34 +150,54 @@
{
editor->get_gui_manager()->add(this, true);
- add_button("core/editor/document-new", "New level",
&EditorScreen::level_new);
- add_button("core/editor/document-open", "Open level...",
&EditorScreen::level_load);
- add_button("core/editor/document-save", "Save level...",
&EditorScreen::level_save);
- add_button("core/editor/document-save-as", "Save level as...",
&EditorScreen::level_save_as);
+ add_button("core/editor/document-new", "New level",
+ &EditorScreen::level_new);
+ add_button("core/editor/document-open", "Open level...",
+ &EditorScreen::level_load);
+ add_button("core/editor/document-save", "Save level...",
+ &EditorScreen::level_save);
+ add_button("core/editor/document-save-as", "Save level as...",
+ &EditorScreen::level_save_as);
add_separator();
- add_button("core/editor/play", "Play level...", &EditorScreen::level_play);
+ add_button("core/editor/play", "Play level...",
+ &EditorScreen::level_play);
add_separator();
- add_button("core/editor/actions", "Configure actions",
&EditorScreen::show_action_properties);
- add_button("core/editor/document-properties", "Configure level",
&EditorScreen::show_level_properties);
- add_button("core/editor/object-properties", "Display object properties",
&EditorScreen::show_object_properties);
+ add_button("core/editor/actions", "Configure actions",
+ &EditorScreen::show_action_properties);
+ add_button("core/editor/document-properties", "Configure level",
+ &EditorScreen::show_level_properties);
+ add_button("core/editor/object-properties", "Display object properties",
+ &EditorScreen::show_object_properties);
add_separator();
- add_button("core/editor/delete", "Delete the selected objects",
&EditorScreen::objects_delete);
+ add_button("core/editor/delete", "Delete the selected objects",
+ &EditorScreen::objects_delete);
add_separator();
- add_button("core/editor/object-top", "Raise object to top",
&EditorScreen::objects_raise_to_top);
- add_button("core/editor/object-up", "Raise object",
&EditorScreen::objects_raise);
- add_button("core/editor/object-down", "Lower object",
&EditorScreen::objects_lower);
- add_button("core/editor/object-bottom", "Lower object to bottom",
&EditorScreen::objects_lower_to_bottom);
+ add_button("core/editor/object-top", "Raise object to top",
+ &EditorScreen::objects_raise_to_top);
+ add_button("core/editor/object-up", "Raise object",
+ &EditorScreen::objects_raise);
+ add_button("core/editor/object-down", "Lower object",
+ &EditorScreen::objects_lower);
+ add_button("core/editor/object-bottom", "Lower object to bottom",
+ &EditorScreen::objects_lower_to_bottom);
add_separator();
- add_button("core/editor/object-flip-horizontal", "Flip object horizontally",
&EditorScreen::objects_flip_horizontal);
- add_button("core/editor/object-flip-vertical", "Flip object vertically",
&EditorScreen::objects_flip_vertical);
+ add_button("core/editor/object-flip-horizontal", "Flip object horizontally",
+ &EditorScreen::objects_flip_horizontal);
+ add_button("core/editor/object-flip-vertical", "Flip object vertically",
+ &EditorScreen::objects_flip_vertical);
add_separator();
- add_button("core/editor/object-rotate-left", "Rotate object 90 degree",
&EditorScreen::objects_rotate_left);
- add_button("core/editor/object-rotate-right", "Rotate object -90 degree",
&EditorScreen::objects_rotate_right);
+ add_button("core/editor/object-rotate-left", "Rotate object 90 degree",
+ &EditorScreen::objects_rotate_left);
+ add_button("core/editor/object-rotate-right", "Rotate object -90 degree",
+ &EditorScreen::objects_rotate_right);
add_separator();
- add_button("core/editor/snap-grid", "Snap objects to grid",
&EditorScreen::toggle_grid_snap);
- add_button("core/editor/objects", "Show object insertion window",
&EditorScreen::toggle_object_selector);
+ add_button("core/editor/snap-grid", "Snap objects to grid",
+ &EditorScreen::toggle_grid_snap);
+ add_button("core/editor/objects", "Show object insertion window",
+ &EditorScreen::toggle_object_selector);
add_separator();
- add_button("core/editor/help", "Display help", &EditorScreen::toggle_help);
+ add_button("core/editor/help", "Display help",
+ &EditorScreen::toggle_help);
}
Panel::~Panel()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3083 - trunk/pingus/src/editor,
grumbel at BerliOS <=