pingus-cvs
[Top][All Lists]
Advanced

[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()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]