[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] [pingus] 2 new revisions pushed by address@hidden on 2011-1
From: |
pingus |
Subject: |
[Pingus-CVS] [pingus] 2 new revisions pushed by address@hidden on 2011-10-17 22:13 GMT |
Date: |
Mon, 17 Oct 2011 22:13:56 +0000 |
2 new revisions:
Revision: b37232484175
Author: Ingo Ruhnke <address@hidden>
Date: Mon Oct 17 14:54:34 2011
Log: Cleaned up some init code in EditorLevel
http://code.google.com/p/pingus/source/detail?r=b37232484175
Revision: b4b49dba9e5e
Author: Ingo Ruhnke <address@hidden>
Date: Mon Oct 17 15:13:14 2011
Log: Replaced load() and clear() member function in EditorLevel with
constr...
http://code.google.com/p/pingus/source/detail?r=b4b49dba9e5e
==============================================================================
Revision: b37232484175
Author: Ingo Ruhnke <address@hidden>
Date: Mon Oct 17 14:54:34 2011
Log: Cleaned up some init code in EditorLevel
http://code.google.com/p/pingus/source/detail?r=b37232484175
Modified:
/src/editor/editor_level.cpp
/src/editor/editor_level.hpp
=======================================
--- /src/editor/editor_level.cpp Mon Oct 17 14:44:35 2011
+++ /src/editor/editor_level.cpp Mon Oct 17 14:54:34 2011
@@ -22,7 +22,6 @@
#include "editor/level_obj.hpp"
#include "editor/level_obj_factory.hpp"
#include "editor/generic_level_obj.hpp"
-#include "editor/level_data.hpp"
#include "pingus/pingus_level.hpp"
#include "pingus/prefab_file.hpp"
#include "util/log.hpp"
@@ -40,16 +39,26 @@
levelname(),
description(),
ambient_light(255, 255, 255),
- size(),
- number_of_pingus(),
- number_to_save(),
- actions(),
- time(),
+ size(1920, 1200),
+ number_of_pingus(50),
+ number_to_save(20),
+ actions({
+ { "basher", 20 },
+ { "blocker", 20 },
+ { "bomber", 20 },
+ { "bridger", 20 },
+ { "climber", 20 },
+ { "digger", 20 },
+ { "floater", 20 },
+ { "jumper", 20 },
+ { "miner", 20 },
+ { "slider", 20 }
+ }),
+ time(-1),
author(),
music(),
objects()
{
- // Do nothing
}
/** Destructor */
@@ -91,52 +100,13 @@
EditorLevel::EditorLevel() :
impl(new LevelImpl)
{
- set_impl_defaults();
}
-/** simply replace the current level implementation with a new blank
- one */
void
-EditorLevel::clear_impl()
+EditorLevel::clear()
{
impl.reset(new LevelImpl);
}
-
-/** assuming we have a valid implementation, set default values */
-void
-EditorLevel::set_impl_defaults()
-{
- impl->levelname = "";
- impl->description = "";
- impl->author = "";
- impl->music = "";
-
- impl->ambient_light = Color(255,255,255);
- impl->size = Size(1920, 1200);
-
- impl->number_of_pingus = 50;
- impl->number_to_save = 20;
-
- impl->actions.clear();
- impl->actions["basher"] = 20;
- impl->actions["blocker"] = 20;
- impl->actions["bomber"] = 20;
- impl->actions["bridger"] = 20;
- impl->actions["climber"] = 20;
- impl->actions["digger"] = 20;
- impl->actions["floater"] = 20;
- impl->actions["jumper"] = 20;
- impl->actions["miner"] = 20;
- impl->actions["slider"] = 20;
-
- impl->time = -1;
-}
-
-void
-EditorLevel::clear() {
- clear_impl();
- set_impl_defaults();
-}
// Default Destructor
EditorLevel::~EditorLevel()
=======================================
--- /src/editor/editor_level.hpp Mon Sep 12 16:30:49 2011
+++ /src/editor/editor_level.hpp Mon Oct 17 14:54:34 2011
@@ -45,13 +45,6 @@
/** Destructor */
~EditorLevel();
- /** get a new, blank level implementation without any valid settings */
- void clear_impl();
-
- /** Set valid default level implementation settings, assuming an
- existing implementation */
- void set_impl_defaults();
-
/** get a new implementation with default settings */
void clear();
==============================================================================
Revision: b4b49dba9e5e
Author: Ingo Ruhnke <address@hidden>
Date: Mon Oct 17 15:13:14 2011
Log: Replaced load() and clear() member function in EditorLevel with
constructor functions, first step to an MDI interface
http://code.google.com/p/pingus/source/detail?r=b4b49dba9e5e
Modified:
/src/editor/editor_level.cpp
/src/editor/editor_level.hpp
/src/editor/editor_screen.cpp
=======================================
--- /src/editor/editor_level.cpp Mon Oct 17 14:54:34 2011
+++ /src/editor/editor_level.cpp Mon Oct 17 15:13:14 2011
@@ -90,7 +90,88 @@
LevelImpl (const LevelImpl&);
LevelImpl& operator= (const LevelImpl&);
};
-
+
+std::unique_ptr<EditorLevel>
+EditorLevel::from_level_file(const Pathname& pathname)
+{
+ log_info(pathname.str());
+
+ // Load the level from the file - we don't care what it's res_name is.
+ PingusLevel plf(pathname);
+
+ std::unique_ptr<EditorLevel> level(new EditorLevel);
+
+ // Assign all of the level information to our LevelImpl
+ level->impl->levelname = plf.get_levelname();
+ level->impl->description = plf.get_description();
+ level->impl->ambient_light = plf.get_ambient_light();
+ level->impl->size = plf.get_size();
+ level->impl->number_of_pingus = plf.get_number_of_pingus();
+ level->impl->number_to_save = plf.get_number_to_save();
+ level->impl->actions = plf.get_actions();
+ level->impl->time = plf.get_time();
+ level->impl->author = plf.get_author();
+ level->impl->music = plf.get_music();
+
+ // remove obsolete "none" tag
+ if (level->impl->music == "none")
+ {
+ level->impl->music = "";
+ }
+
+ // Get the objects
+ std::vector<FileReader> objs = plf.get_objects();
+ for (std::vector<FileReader>::const_iterator i = objs.begin(); i !=
objs.end(); i++)
+ {
+ LevelObjPtr obj = LevelObjFactory::create(*i);
+ if (obj)
+ {
+ level->add_object(obj);
+ }
+ }
+
+ level->sort();
+
+ return level;
+}
+
+std::unique_ptr<EditorLevel>
+EditorLevel::from_prefab_file(const Pathname& pathname)
+{
+ log_info(pathname.str());
+
+ // Load the level from the file - we don't care what it's res_name is.
+ PrefabFile prefab = PrefabFile::from_path(pathname);
+
+ std::unique_ptr<EditorLevel> level(new EditorLevel);
+
+ // FIMXE: there would be better way to handle prefab size, but it's
+ // probably not worth the effort
+ level->impl->size.width = 1920;
+ level->impl->size.height = 1200;
+
+ // FIXME: overrides are getting ignored
+
+ // Get the objects
+ const std::vector<FileReader>& objs = prefab.get_objects();
+ for (auto i = objs.begin(); i != objs.end(); i++)
+ {
+ LevelObjPtr obj = LevelObjFactory::create(*i);
+ if (obj)
+ {
+ // move origin of the level to the center of it
+ obj->set_pos(obj->get_pos() +
Vector3f(static_cast<float>(level->impl->size.width)/2.0f,
+
static_cast<float>(level->impl->size.height)/2.0f));
+
+ level->add_object(obj);
+ }
+ }
+
+ level->sort();
+
+ return level;
+}
+
static bool LevelObjSort(const LevelObjPtr& a, const LevelObjPtr& b)
{
return (a->get_pos().z < b->get_pos().z);
@@ -102,13 +183,6 @@
{
}
-void
-EditorLevel::clear()
-{
- impl.reset(new LevelImpl);
-}
-
-// Default Destructor
EditorLevel::~EditorLevel()
{
}
@@ -209,87 +283,6 @@
// Write the file
System::write_file(filename, out_file.str());
}
-
-void
-EditorLevel::load_prefab(const Pathname& pathname)
-{
- log_info("EditorLevel::load_level: " << pathname.str());
-
- // Get a new level implementation with default settings. It is a
- // good idea to set the level defaults first, in case the level file
- // doesn't set everything.
- clear();
-
- // Load the level from the file - we don't care what it's res_name is.
- PrefabFile prefab = PrefabFile::from_path(pathname);
-
- // FIMXE: there would be better way to handle prefab size, but it's
- // probably not worth the effort
- impl->size.width = 1920;
- impl->size.height = 1200;
-
- // FIXME: overrides are getting ignored
-
- // Get the objects
- const std::vector<FileReader>& objs = prefab.get_objects();
- for (auto i = objs.begin(); i != objs.end(); i++)
- {
- LevelObjPtr obj = LevelObjFactory::create(*i);
- if (obj)
- {
- // move origin of the level to the center of it
- obj->set_pos(obj->get_pos() +
Vector3f(static_cast<float>(impl->size.width)/2.0f,
-
static_cast<float>(impl->size.height)/2.0f));
-
- add_object(obj);
- }
- }
-
- sort();
-}
-
-// Load an existing level from a file
-void
-EditorLevel::load_level(const Pathname& pathname)
-{
- log_info("EditorLevel::load_level: " << pathname.str());
-
- // Get a new level implementation with default settings. It is a
- // good idea to set the level defaults first, in case the level file
- // doesn't set everything.
- clear();
-
- // Load the level from the file - we don't care what it's res_name is.
- PingusLevel level(pathname);
-
- // Assign all of the level information to our LevelImpl
- impl->levelname = level.get_levelname();
- impl->description = level.get_description();
- impl->ambient_light = level.get_ambient_light();
- impl->size = level.get_size();
- impl->number_of_pingus = level.get_number_of_pingus();
- impl->number_to_save = level.get_number_to_save();
- impl->actions = level.get_actions();
- impl->time = level.get_time();
- impl->author = level.get_author();
- impl->music = level.get_music();
-
- if (impl->music == "none")
- impl->music = "";
-
- // Get the objects
- std::vector<FileReader> objs = level.get_objects();
- for (std::vector<FileReader>::const_iterator i = objs.begin(); i !=
objs.end(); i++)
- {
- LevelObjPtr obj = LevelObjFactory::create(*i);
- if (obj)
- {
- add_object(obj);
- }
- }
-
- sort();
-}
void
EditorLevel::sort()
=======================================
--- /src/editor/editor_level.hpp Mon Oct 17 14:54:34 2011
+++ /src/editor/editor_level.hpp Mon Oct 17 15:13:14 2011
@@ -36,26 +36,20 @@
class EditorLevel
{
+public:
+ static std::unique_ptr<EditorLevel> from_level_file(const Pathname&
pathname);
+ static std::unique_ptr<EditorLevel> from_prefab_file(const Pathname&
pathname);
+
public:
typedef std::list<LevelObjPtr> Objects;
- /** Construct new blank level */
EditorLevel();
-
- /** Destructor */
~EditorLevel();
- /** get a new implementation with default settings */
- void clear();
-
/** Save the level to a file. Returns true if successful */
void save_level(const std::string& filename);
void save_prefab(const std::string& filename);
- /** Load an existing level from a file */
- void load_level(const Pathname& pathname);
- void load_prefab(const Pathname& pathname);
-
Size get_size() const;
void set_size(const Size& s);
=======================================
--- /src/editor/editor_screen.cpp Tue Oct 11 08:42:27 2011
+++ /src/editor/editor_screen.cpp Mon Oct 17 15:13:14 2011
@@ -176,7 +176,7 @@
{
level_pathname = file;
viewport->clear_selection();
- plf->load_prefab(level_pathname);
+ plf = EditorLevel::from_prefab_file(level_pathname);
level_properties->set_level(plf.get());
action_properties->set_level(plf.get());
viewport->refresh();
@@ -185,7 +185,7 @@
{
level_pathname = file;
viewport->clear_selection();
- plf->load_level(level_pathname);
+ plf = EditorLevel::from_level_file(level_pathname);
level_properties->set_level(plf.get());
action_properties->set_level(plf.get());
viewport->refresh();
@@ -316,10 +316,10 @@
// FIXME: dialogs don't update
level_pathname = Pathname();
viewport->clear_selection();
- plf->clear();
+ plf.reset(new EditorLevel);
level_properties->set_level(plf.get());
action_properties->set_level(plf.get());
- viewport->refresh();
+ viewport->refresh();
}
void
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] [pingus] 2 new revisions pushed by address@hidden on 2011-10-17 22:13 GMT,
pingus <=